{"version":3,"file":"static/js/main.7bc9a857.js","mappings":"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B,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYC,OAEvB,CACI9sB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIpuB,IAAK,GACLyc,MAAOoQ,EAAAA,GAAYuB,MAEvB,CACIp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AAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,0BAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,gDAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0CAAzBA,EAAyB,0BAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EAAyB,wBAAzBA,EA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AC,EAAA90C,EACpB0rF,GADoB,IACpB,IAAA52C,EAAAlu1B,MAAAiu1B,EAAAC,EAAAj55B,KAAAi6rB,MAAoC,KAApC+1Q,EAAoCh3C,EAAAr82B,MAC5B6kL,EAAKwuuB,EADuBxuuB,GAE5B06sB,EAAO8zB,EAFqB9zB,KAG5Bn/4B,EAAOiz6B,EAHqBjz6B,KAKlC,SAAQm/4B,GACN,KAAKz9D,EAAA89D,IAALloD,UACE142B,KADF042B,YADF,MAIE,KAAK5V,EAAA89D,IAALvpD,WAJF,MAOE,KAAKvU,EAAA89D,IAAL7nD,WACE/42B,KAAA+42B,WADF331B,GAPF,MAUE,KAAK0h1B,EAAA89D,IAALznD,mBACEn52B,KAAAm52B,mBAAwB/31B,EAAxB,GAAiCA,EADnC,IAVF,MAaE,KAAK0h1B,EAAA89D,IAALrtM,QACEvztB,KAAAuztB,QADFnysB,GAbF,MAgBE,KAAK0h1B,EAAA89D,IAALvnD,SAGA,KAAKvW,EAAA89D,IAALtnD,eACEt52B,KAAAq52B,SAAcj41B,EADhB,IAnBF,MAsBE,KAAK0h1B,EAAA89D,IAALjoD,QACE342B,KADF242B,UAtBF,MAyBE,KAAK7V,EAAA89D,IAAL1nD,SACEl52B,KAAAk52B,SAAc931B,EAAd,GAAuBA,EADzB,IAzBF,MA4BE,KAAK0h1B,EAAA89D,IAALhoD,eACE542B,KAAA442B,eAAoBx31B,EADtB,IA5BF,MA+BE,KAAK0h1B,EAAA89D,IAAL/nD,eACE742B,KAAA642B,eAAoBz31B,EADtB,IA/BF,MAkCE,KAAK0h1B,EAAA89D,IAAL9nD,UACE942B,KAAA842B,UAAe131B,EADjB,IAlCF,MAqCE,KAAK0h1B,EAAA89D,IAALxnD,cACEp52B,KAAAo52B,cACEh41B,EADF,GAEEA,EAFF,GAGEA,EAHF,GAIEA,EAJF,GAKEA,EALF,GAMEA,EAPJ,IArCF,MA+CE,KAAK0h1B,EAAA89D,IAAL3nD,YACEj52B,KAAAi52B,YAAiB731B,EADnB,IA/CF,MAkDE,KAAK0h1B,EAAA89D,IAAL5nD,qBACEh52B,KAAAg52B,qBAA0B531B,EAD5B,IAlDF,MAqDE,KAAK0h1B,EAAA89D,IAALtpD,aACEt32B,KAAAs32B,aAAkBl21B,EADpB,IArDF,MAwDE,KAAK0h1B,EAAA89D,IAALppD,YACEx32B,KAAAw32B,YAAiBp21B,EADnB,IAxDF,MA2DE,KAAK0h1B,EAAA89D,IAALrpD,WACEv32B,KAAAu32B,WAAgBn21B,EADlB,IA3DF,MA8DE,KAAK0h1B,EAAA89D,IAALnpD,cACEz32B,KAAAy32B,cAAmBr21B,EADrB,IA9DF,MAiEE,KAAK0h1B,EAAA89D,IAALxmD,gBACEp62B,KAAAo62B,gBAAqBh51B,EAArB,GAA8BA,EAA9B,GAAuCA,EADzC,IAjEF,MAoEE,KAAK0h1B,EAAA89D,IAALzmD,kBACEn62B,KAAAm62B,kBAAuB/41B,EAAvB,GAAgCA,EAAhC,GAAyCA,EAD3C,IApEF,MAuEE,KAAK0h1B,EAAA89D,IAAL9mD,gBACE952B,KAAA852B,gBADF141B,GAvEF,MA0EE,KAAK0h1B,EAAA89D,IAAL5mD,cACEh62B,KAAAg62B,cADF541B,GA1EF,MA6EE,KAAK0h1B,EAAA89D,IAALrmD,YACEv62B,KAAAu62B,YAAiBn51B,EADnB,IA7EF,MAgFE,KAAK0h1B,EAAA89D,IAALlpD,QACE132B,KAAA032B,QAAat21B,EAAb,GAAsBA,EADxB,IAhFF,MAmFE,KAAK0h1B,EAAA89D,IAALjpD,mBACE332B,KAAA232B,mBAAwBv21B,EAD1B,IAnFF,MAsFE,KAAK0h1B,EAAA89D,IAALhpD,YACE532B,KAAA432B,YAAiBx21B,EADnB,IAtFF,MAyFE,KAAK0h1B,EAAA89D,IAAL/oD,UACE732B,KAAA632B,UAAez21B,EADjB,IAzFF,MA4FE,KAAK0h1B,EAAA89D,IAALh76B,KACEoa,KADFpa,OA5FF,MA+FE,KAAKk92B,EAAA89D,IAALzoD,OACEn42B,KADFm42B,SA/FF,MAkGE,KAAKrV,EAAA89D,IAAL/66B,OACEma,KADFna,SAlGF,MAqGE,KAAKi92B,EAAA89D,IAALxoD,WACEp42B,KADFo4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K2D,QACMtN,IACT2J,EAAKrB,GACL/92B,EAAK+92B,GACLO,KACsC,KAAlC3o4B,EAAMwtS,WAAW46lB,KACnB792B,EAAKs32B,EACLuG,OAEA792B,EAAKu12B,EACmB,IAApB6I,IAAyBO,GAASpH,IAExC6G,KACIp+2B,IAAOu12B,EACTz12B,EAAKi22B,GAEL8H,GAAc/92B,EACdA,EAAK812B,GAEH912B,IAAOy12B,GACL9/3B,EAAMjjG,OAASqr+B,IACjB792B,EAAKvqB,EAAMuxpB,OAAO62O,IAClBA,OAEA792B,EAAKu12B,EACmB,IAApB6I,IAAyBO,GAAS3I,IAEpCh22B,IAAOu12B,GACTuI,GAAkBoB,EAElBA,EADAp/2B,EAAK832B,EAAQ532B,KAGb692B,GAAcqB,EACdA,EAAKtJ,KAGPiI,GAAcqB,EACdA,EAAKtJ,IAITyI,GAAU5g9B,GAAO,CAAE2h9B,QAASvB,GAAa/j9B,OAAQol9B,GAE1CA,EACT,CAEA,SAAS0D,KACP,IAAI1D,EAAIp/2B,EAAIE,EAERviG,EAAuB,GAAdog9B,GAAmB,GAC5BsB,EAASd,GAAU5g9B,GAEvB,OAAI0h9B,GACFtB,GAAcsB,EAAOC,QACdD,EAAOrl9B,SAGhBol9B,EAAKrB,GACL/92B,EAAK+92B,GACLO,KACsC,KAAlC3o4B,EAAMwtS,WAAW46lB,KACnB792B,EAAK032B,EACLmG,OAEA792B,EAAKu12B,EACmB,IAApB6I,IAAyBO,GAAShH,IAExCyG,KACIp+2B,IAAOu12B,EACTz12B,EAAKi22B,GAEL8H,GAAc/92B,EACdA,EAAK812B,GAEH912B,IAAOy12B,GACL9/3B,EAAMjjG,OAASqr+B,IACjB792B,EAAKvqB,EAAMuxpB,OAAO62O,IAClBA,OAEA792B,EAAKu12B,EACmB,IAApB6I,IAAyBO,GAAS3I,IAEpCh22B,IAAOu12B,GACTuI,GAAkBoB,EAElBA,EADAp/2B,EAAK832B,EAAQ532B,KAGb692B,GAAcqB,EACdA,EAAKtJ,KAGPiI,GAAcqB,EACdA,EAAKtJ,GAGPyI,GAAU5g9B,GAAO,CAAE2h9B,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","sources":["icons/formCustomization/dependentFields.keepStyle.svg","icons/formCustomization/locked.keepStyle.svg","icons/initialBalances.keepStyle.svg","icons/login/mobile.keepStyle.svg","icons/login/pc.keepStyle.svg","icons/login/tablet.keepStyle.svg","icons/logos/evala.keepStyle.svg","icons/logos/idoklad.keepStyle.svg","icons/accountingAdjustment.svg","icons/add.svg","icons/addFilter.svg","icons/addMessage.svg","icons/addMinorAsset.svg","icons/addTo.svg","icons/addToFilled.svg","icons/addToMinorAsset.svg","icons/addUserRole.svg","icons/addchild.svg","icons/addparent.svg","icons/agenda.svg","icons/alert/error.svg","icons/alert/success.svg","icons/alert/warning.svg","icons/apps.svg","icons/archive.svg","icons/archiveFilled.svg","icons/arrow.svg","icons/assetDisposal.svg","icons/attachment.svg","icons/audittrail.svg","icons/automaticpairing.svg","icons/automaticpairingsettings.svg","icons/bankApi.svg","icons/bin.svg","icons/briefcase.svg","icons/bulkedit.svg","icons/calculator.svg","icons/cardLimit.svg","icons/caret.svg","icons/cashbox.svg","icons/chained.svg","icons/changePrice.svg","icons/check.svg","icons/checkDouble.svg","icons/checkbox.svg","icons/checkboxGroup.svg","icons/cleanFilter.svg","icons/close.svg","icons/collapse.svg","icons/collapseAll.svg","icons/confirm.svg","icons/connectionDialog/connected.svg","icons/connectionDialog/connectionError.svg","icons/connectionDialog/connectionWarn.svg","icons/connectionDialog/disconnected.svg","icons/containsTwoForms.svg","icons/copy.svg","icons/copyLink.svg","icons/copySimple.svg","icons/correction.svg","icons/costs.svg","icons/createStatement.svg","icons/cursor.svg","icons/customerPortal.svg","icons/dashboard/accountingJournal.svg","icons/dashboard/balanceSheet.svg","icons/dashboard/cbaEntryLedger.svg","icons/dashboard/customerPortalInvoicing.svg","icons/dashboard/customerPortalPayment.svg","icons/dashboard/customerSupport.svg","icons/dashboard/demoTenant.svg","icons/dashboard/documentJournal.svg","icons/dashboard/forPayment.svg","icons/dashboard/generalLedger.svg","icons/dashboard/inbox.svg","icons/dashboard/incomeStatement.svg","icons/dashboard/manual.svg","icons/dashboard/paymentJournal.svg","icons/dashboard/sendToAccountant.svg","icons/dashboard/tickets.svg","icons/date.svg","icons/datetime.svg","icons/demo.svg","icons/depreciation.svg","icons/discard.svg","icons/dislike.svg","icons/dislikeFilled.svg","icons/docList.svg","icons/docmenu.svg","icons/docsimple.svg","icons/document.svg","icons/documentDraft.svg","icons/documentFilled.svg","icons/documentSaved.svg","icons/documentTypes/correctiveInvoicesIssuedPlain.svg","icons/documentTypes/correctiveInvoicesReceived.svg","icons/documentTypes/internalDocumentCancel.svg","icons/documentTypes/internalDocuments.svg","icons/documentTypes/invoicesIssued.svg","icons/documentTypes/invoicesReceived.svg","icons/documentTypes/otherLiabilities.svg","icons/documentTypes/otherReceivables.svg","icons/documentTypes/proformaInvoicesIssued.svg","icons/documentTypes/proformaInvoicesIssuedTax.svg","icons/documentTypes/proformaInvoicesReceived.svg","icons/documentTypes/proformaInvoicesReceivedTax.svg","icons/documentTypes/taxDocument.svg","icons/documents/excel.svg","icons/documents/isdoc.svg","icons/documents/other.svg","icons/documents/pdf.svg","icons/documents/picture.svg","icons/documents/template.svg","icons/documents/text.svg","icons/documents/word.svg","icons/down.svg","icons/download.svg","icons/edit.svg","icons/editLock.svg","icons/editSimple.svg","icons/email.svg","icons/emoji.svg","icons/enter.svg","icons/exitSimple.svg","icons/expand.svg","icons/expandAll.svg","icons/export.svg","icons/exportCsv.svg","icons/exportExcel.svg","icons/exportPdf.svg","icons/exportReportFull.svg","icons/exportReportShort.svg","icons/fieldValidation/fieldValidationNegative.svg","icons/fieldValidation/fieldValidationPositive.svg","icons/fieldValidation/fieldValidationWarning.svg","icons/fileSimple.svg","icons/fillForm.svg","icons/filter.svg","icons/fitToPage.svg","icons/fitToWidth.svg","icons/floppyDisk.svg","icons/folder.svg","icons/folderAdd.svg","icons/folderLabels/FP.svg","icons/folderLabels/FV.svg","icons/folderLabels/PD.svg","icons/folderLabels/PDDOPP.svg","icons/folderLabels/PPD.svg","icons/folderLabels/VBU.svg","icons/folderLabels/VDDOPP.svg","icons/folderLabels/VPD.svg","icons/folderLabels/ZD.svg","icons/folderLabels/ZFP.svg","icons/folderLabels/ZFV.svg","icons/folderLabels/_folder.svg","icons/folderLabels/dots.svg","icons/folderOther.svg","icons/form.svg","icons/forward.svg","icons/fullScreenClose.svg","icons/fullScreenOpen.svg","icons/graph.svg","icons/hand.svg","icons/help.svg","icons/home.svg","icons/hotspots.svg","icons/image.svg","icons/incoming.svg","icons/incomingpayment.svg","icons/increaseOfPrice.svg","icons/info.svg","icons/interrupt.svg","icons/invoiceIssuedBig.svg","icons/invoiceReceivedBig.svg","icons/label.svg","icons/lastUpdated.svg","icons/lastUpdatedSimple.svg","icons/like.svg","icons/likeFilled.svg","icons/list.svg","icons/lock.svg","icons/lockFilled.svg","icons/lockclosed.svg","icons/lockopened.svg","icons/logos/evala.plain.svg","icons/logos/facebook.svg","icons/logos/google.svg","icons/logos/integrations/fakturoid.svg","icons/logos/integrations/idoklad.svg","icons/logout.svg","icons/massaccounting.svg","icons/menu.svg","icons/microChart/growthNegative.svg","icons/microChart/growthPositive.svg","icons/microChart/growthZero.svg","icons/more.svg","icons/moreoptions.svg","icons/note.svg","icons/noteFilled.svg","icons/notification.svg","icons/objectPage/MoneyS3.svg","icons/objectPage/VatControlStatement.svg","icons/objectPage/VatStatement.svg","icons/objectPage/VatViesStatement.svg","icons/objectPage/api.svg","icons/objectPage/cashbox.svg","icons/objectPage/dataBox.svg","icons/objectPage/exportBankTransactions.svg","icons/objectPage/exportCashReceipts.svg","icons/objectPage/exportDocuments.svg","icons/objectPage/integration.svg","icons/objectPage/isdocImport.svg","icons/objectPage/pohoda.svg","icons/objectPage/rossum.svg","icons/objectPage/storage.svg","icons/objectPage/subscription.svg","icons/oldImportClock.svg","icons/onedocpair.svg","icons/outgoing.svg","icons/outgoingpayment.svg","icons/paidDocument.svg","icons/pair.svg","icons/pairingAccruedItems.svg","icons/pairingDeposit.svg","icons/pairingExpenses.svg","icons/pairingGeneral.svg","icons/parameters.svg","icons/partialDepreciation.svg","icons/paymentRequest.svg","icons/pin.svg","icons/play.svg","icons/plus.svg","icons/print.svg","icons/query.svg","icons/radioButtonGroup.svg","icons/reductionOfPrice.svg","icons/refresh.svg","icons/refreshSimple.svg","icons/reorderrows.svg","icons/reorderrowssmall.svg","icons/resize.svg","icons/rubber.svg","icons/safe.svg","icons/search.svg","icons/searchSmall.svg","icons/send.svg","icons/sendDunningLetter.svg","icons/sendInvoice.svg","icons/sendMessage.svg","icons/setting.svg","icons/settingsSimple.svg","icons/sort.svg","icons/sortDown.svg","icons/sorting.svg","icons/statusIndicators/attachmentIndicator.svg","icons/statusIndicators/cs_cleared.svg","icons/statusIndicators/cs_notCleared.svg","icons/statusIndicators/cs_partiallyCleared.svg","icons/statusIndicators/doubleForm.svg","icons/statusIndicators/isdoc.svg","icons/statusIndicators/locked.svg","icons/statusIndicators/no.svg","icons/statusIndicators/noDataRead.svg","icons/statusIndicators/partlyLocked.svg","icons/statusIndicators/ps_notApplicable.svg","icons/statusIndicators/ps_notPosted.svg","icons/statusIndicators/ps_posted.svg","icons/statusIndicators/rossum.svg","icons/statusIndicators/ticket_done.svg","icons/statusIndicators/ticket_inProgress.svg","icons/statusIndicators/unlocked.svg","icons/statusIndicators/vat_notApplicable.svg","icons/statusIndicators/vat_notPosted.svg","icons/statusIndicators/vat_partial.svg","icons/statusIndicators/vat_posted.svg","icons/statusIndicators/warn.svg","icons/statusIndicators/yes.svg","icons/support.svg","icons/switch.svg","icons/synchronization.svg","icons/tablecaret.svg","icons/taxInvoice.svg","icons/taxPayerDeclaration.svg","icons/technicalImprovement.svg","icons/template.svg","icons/time.svg","icons/timeDependent.svg","icons/timeDependentFilled.svg","icons/unavailable.svg","icons/unchained.svg","icons/unpaidDocument.svg","icons/unrelatedItems.svg","icons/up.svg","icons/upload.svg","icons/uploadSimple.svg","icons/use_isdoc.svg","icons/use_rossum.svg","icons/user.svg","icons/valuehelp.svg","icons/valuehelpfilled.svg","icons/visible.svg","icons/visibleFilled.svg","icons/webInvoice.svg","icons/welcome/customer.svg","icons/welcome/demo.svg","icons/workDate.svg","icons/workDateFilled.svg","icons/zoomin.svg","icons/zoomout.svg","icons/zoomsmall.svg","static/images/evalaLogoSignature.svg","svg/menu/accountAnalysis.svg","svg/menu/billingPayCard.svg","svg/menu/billingPayWire.svg","svg/menu/coaTemplates.svg","svg/menu/correctiveInvoicesIssued.svg","svg/menu/internalDocuments.svg","svg/menu/openBalance.svg","svg/menu/otherLiability.svg","svg/menu/underConstruction.svg","HOC/withHideOnBlur.tsx","animations/LottieWrapper.tsx","animations/Animations.tsx","components/alert/Alert.styles.tsx","components/alert/Alert.tsx","components/alert/withAlert.tsx","components/auditTrail/AuditTrail.utils.tsx","components/auditTrail/Utils.ts","components/avatar/Avatar.styles.tsx","components/avatar/Avatar.tsx","components/avatar/SystemAvatarDef.ts","components/backgroundJobs/BackgroundJobs.utils.tsx","components/badge/Badge.utils.tsx","components/badge/Badge.styles.tsx","components/badge/Badge.tsx","components/bankAccountCheckbox/BankAccountCheckbox.styles.tsx","components/breadCrumb/BreadCrumb.styles.tsx","components/breadCrumb/BreadCrumb.tsx","components/breadCrumb/BreadCrumbItem.styles.tsx","components/breadCrumb/BreadCrumbItem.tsx","components/breadCrumb/BreadCrumbProvider.tsx","components/busyIndicator/BusyIndicator.styles.tsx","components/busyIndicator/loaders/busyL.svg","components/busyIndicator/loaders/busyM.svg","components/busyIndicator/loaders/busyXS.svg","components/busyIndicator/BusyIndicator.tsx","components/busyIndicator/BusyIndicator.utils.tsx","components/busyIndicator/withBusyIndicator.tsx","components/button/Button.styles.tsx","components/button/Button.tsx","components/button/Button.utils.ts","components/button/SegmentedButton.styles.tsx","components/button/SegmentedButton.tsx","components/charts/BarChart.tsx","components/charts/Charts.styles.tsx","components/charts/Charts.types.ts","components/charts/DoughnutChart.tsx","components/charts/LineChart.tsx","components/chat/Chat.styles.tsx","components/clickable/Clickable.styles.tsx","components/clickable/Clickable.tsx","components/clickable/Clickable.utils.ts","components/clickable/index.ts","components/alert/PopperAlert.tsx","components/clickableWithAlert/ClickableWithAlert.tsx","components/collapsibleContent/CollapsibleContent.styles.tsx","components/collapsibleContent/CollapsibleContent.tsx","components/collapsibleSection/CollapsibleSection.styles.tsx","components/collapsibleSection/CollapsibleSection.tsx","components/columnAutoSizer/ColumnAutoSizer.tsx","components/conditionalFilterDialog/ConditionalFilterDialog.utils.ts","components/inputs/editableText/ResponsiveEditableText.tsx","components/configurationList/CustomizationIcon.tsx","components/configurationList/Item.tsx","components/configurationList/Group.tsx","components/configurationList/Column.tsx","components/configurationList/ConfigurationList.styles.tsx","components/configurationList/ConfigurationList.tsx","components/configurationList/DnD.utils.styles.tsx","components/configurationList/DnD.utils.tsx","components/connectionDialog/ConnectionDialog.styles.tsx","components/connectionDialog/ConnectionDialog.tsx","components/customResizeObserver/CustomResizeObserver.tsx","components/dashboard/Dashboard.styles.tsx","components/dashboard/Dashboard.types.ts","components/dashboard/Dashboard.utils.ts","components/dashboard/DashboardTileBackground.tsx","components/dashboard/DashboardTileHeader.tsx","components/tiles/tableTile/TableTile.styles.tsx","components/tiles/tableTile/TableTile.tsx","components/tiles/linkTile/LinkTile.tsx","components/tiles/chartTile/ChartTile.styles.tsx","components/tiles/chartTile/ChartTile.tsx","components/dashboard/DashboardTile.tsx","components/dashboard/Dashboard.tsx","components/dialog/ConfirmationDialog.tsx","components/dialog/ConfirmationDialogProvider.tsx","components/dialog/Dialog.styles.tsx","../node_modules/re-resizable/lib/resizer.js","../node_modules/re-resizable/lib/index.js","components/dialog/Dialog.tsx","components/dialog/ModalBackdrop.tsx","components/dialog/withConfirmationDialog.tsx","components/dialog/withDialogContext.tsx","components/dialog/withPromisedComponent.tsx","components/drillDown/DrillDown.utils.tsx","components/drillDown/DrillDownLink.tsx","components/drillDown/SmartDrillDownFilters.tsx","components/objectExplorer/ObjectExplorer.styles.tsx","components/objectExplorer/ObjectExplorer.tsx","components/errorDetail/ErrorDetail.tsx","components/fastEntry/FastEntry.styles.tsx","components/fastEntry/FastEntry.tsx","components/fastEntry/FastEntryList.styles.tsx","components/fieldGroup/FieldGroup.styles.tsx","components/fieldGroup/FieldGroup.tsx","components/fileStrip/FileStrip.styles.tsx","components/fileStrip/FileStripItem.tsx","components/fileStrip/FileStrip.tsx","components/fileStrip/FileStrip.utils.tsx","components/fileUploadButton/FileUploadButton.tsx","components/fileUploader/File.utils.tsx","components/fileUploader/FileDropArea.tsx","components/fileUploader/File.tsx","components/fileUploader/FileGrid.tsx","components/fileUploader/FileInfoDialog.tsx","components/fileUploader/FileList.tsx","components/fileUploader/FileRenameDialog.tsx","components/fileUploader/FileUploader.styles.tsx","pages/inbox/OtherFolderWindow.tsx","components/fileUploader/FileUploader.tsx","components/fileUploader/HiddenFileInput.tsx","components/fileViewers/FileViewers.styles.tsx","components/fileViewers/textViewer/TextViewer.style.ts","components/fileViewers/textViewer/TextViewer.tsx","components/fileViewers/xmlViewer/XmlViewer.tsx","components/fileViewers/imgViewer/ImgViewer.styles.tsx","components/fileViewers/imgViewer/ImgViewer.tsx","components/fileViewers/NoPreview.tsx","components/fileViewers/FileViewers.utils.tsx","components/fileViewers/NoPreviewSquirrel.tsx","components/fileViewers/pdfViewer/PDFViewer.style.ts","../node_modules/react-pdf/node_modules/pdfjs-dist/legacy/build/pdf.worker.js","../node_modules/make-event-props/dist/esm/index.js","../node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/merge-class-names/dist/esm/index.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/react-pdf/dist/esm/Message.js","../node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-pdf/dist/esm/shared/propTypes.js","../node_modules/react-pdf/dist/esm/Document.js","../node_modules/react-pdf/dist/esm/OutlineContext.js","../node_modules/react-pdf/dist/esm/Ref.js","../node_modules/react-pdf/dist/esm/OutlineItem.js","../node_modules/react-pdf/dist/esm/Outline.js","../node_modules/merge-refs/dist/esm/index.js","../node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/react-pdf/dist/esm/Page/PageCanvas.js","../node_modules/react-pdf/dist/esm/Page/PageSVG.js","../node_modules/react-pdf/dist/esm/Page/TextLayerItem.js","../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/react-pdf/dist/esm/Page.js","../node_modules/react-pdf/dist/esm/entry.webpack.js","components/fileViewers/pdfViewer/PDFViewer.tsx","components/filterBar/FilterBar.styles.tsx","components/filterBar/FilterBar.utils.ts","components/filterBar/FilterBarItemReadOnly.tsx","components/filterBar/ReadOnlyGroup.tsx","components/focusManager/FocusManager.tsx","components/formGroup/FormGroupActions.style.ts","components/formGroup/FormGroupActions.tsx","components/formGroup/FormGroup.styles.tsx","components/formGroup/FormGroup.tsx","components/formGroup/GroupHeader.tsx","components/header/Header.styles.tsx","components/header/Header.tsx","components/hotspots/HotspotViewIds.ts","components/hotspots/Hotspots.utils.ts","components/icon/Icon.tsx","components/icon/Icon.styles.tsx","components/imageUploader/ImageUploader.styles.tsx","components/imageUploader/ImageUploaderImage.tsx","components/importSettings/ImportSettings.styles.tsx","components/importSettings/ImportSettingsDragItem.tsx","components/importSettings/ImportSettings.tsx","components/importSettings/ImportSettingsDropItem.tsx","components/inputs/checkbox/Checkbox.styles.tsx","components/inputs/checkbox/Checkbox.tsx","components/inputs/checkboxGroup/AutoSizedCheckboxGroup.tsx","components/inputs/checkboxGroup/CheckboxGroup.styles.tsx","components/inputs/checkboxGroup/CheckboxGroup.tsx","components/inputs/date/DatePicker.tsx","components/inputs/date/DatePickerBase.tsx","components/inputs/date/MonthYearSelector.styles.tsx","components/inputs/date/MonthYearSelector.tsx","components/inputs/date/TimePicker.tsx","components/inputs/date/popup/RelativeDateValues.tsx","components/inputs/date/popup/DateRangePickerPopup.styles.tsx","components/inputs/date/popup/DateRangePickerPopup.tsx","components/inputs/date/DateRangePicker.tsx","components/inputs/date/popup/DateTimePickerPopup.tsx","components/inputs/date/DateTimePicker.tsx","components/inputs/date/MonthYearPicker.tsx","components/inputs/date/popup/Calendar.styles.tsx","components/inputs/date/popup/Calendar.tsx","components/inputs/date/popup/Calendar.utils.tsx","components/inputs/date/popup/DatePickerPopup.tsx","components/inputs/date/popup/Day.styles.tsx","components/inputs/date/popup/Day.tsx","components/inputs/date/popup/MonthYearPopup.tsx","components/inputs/date/utils/DateUtils.tsx","components/inputs/editableText/EditableText.styles.tsx","components/inputs/editableText/EditableText.tsx","components/inputs/field/Field.styles.tsx","components/inputs/field/Field.tsx","components/inputs/field/FieldConfirmButtons.tsx","components/inputs/field/FieldsWrapper.styles.tsx","components/inputs/field/FieldsWrapper.tsx","components/inputs/field/Label.styles.tsx","components/inputs/field/Label.tsx","components/inputs/field/SubmittedInput.tsx","components/inputs/field/SyncSymbol.tsx","components/inputs/formError/FormError.styles.tsx","components/inputs/formError/FormError.tsx","components/inputs/formError/WithErrorAndTooltip.tsx","components/inputs/input/Input.styles.tsx","components/inputs/input/Input.tsx","components/inputs/input/PasswordInput.tsx","components/inputs/input/WithFormatter.tsx","components/inputs/input/InputWithCheckbox.tsx","components/inputs/input/withPasswordInput.tsx","components/inputs/numericInput/NumericInput.styles.tsx","components/inputs/numericInput/NumericInput.tsx","components/inputs/numericValueInputBase/NumericValueInputBase.tsx","components/inputs/numericValueInputBase/Stepper.styles.tsx","components/inputs/date/popup/ValuePicker.styles.tsx","components/inputs/date/popup/ValuePicker.tsx","components/inputs/numericValueInputBase/NumericValueInputBase.styles.tsx","components/inputs/numericValueInputBase/Stepper.tsx","components/inputs/radioButtonGroup/RadioButtonGroup.styles.tsx","components/inputs/radioButtonGroup/RadioButtonGroup.tsx","components/inputs/responsiveInput/ResponsiveInput.styles.tsx","components/inputs/select/Autocomplete.tsx","contexts/portalRootElement/withPortalRootElement.tsx","components/inputs/select/BasicSelect.tsx","contexts/portalRootElement/PortalRootElement.utils.tsx","components/inputs/select/IconSelect.tsx","components/inputs/select/MultiSelect.styles.tsx","components/inputs/select/MultiSelect.tsx","components/inputs/select/Select.styles.tsx","components/inputs/select/Select.types.ts","components/inputs/select/Select.utils.tsx","components/inputs/select/SelectAPI.ts","components/inputs/select/SelectInput.tsx","components/inputs/select/SelectMenuItem.tsx","components/inputs/select/SelectMenu.tsx","components/inputs/select/Select.tsx","components/inputs/switch/Switch.styles.tsx","components/inputs/switch/Switch.tsx","components/inputs/textArea/TextArea.styles.tsx","components/inputs/textArea/TextArea.tsx","components/inputs/utils.tsx","components/inputs/writeLine/NumericWriteLine.styles.tsx","components/inputs/writeLine/NumericWriteLine.tsx","components/inputs/writeLine/WriteLine.style.ts","components/inputs/writeLine/WriteLine.tsx","components/moreItems/MoreItems.styles.tsx","components/moreItems/MoreItems.tsx","components/navigation/DashboardBackground.tsx","components/navigation/NavDashboard.styles.tsx","components/navigation/NavDashboardItem.tsx","components/navigation/NavDashboard.tsx","components/navigation/NavMenu.styles.tsx","components/objectList/ListItem.styles.tsx","components/objectList/ListItem.tsx","components/objectList/ObjectList.styles.tsx","components/objectList/ObjectList.tsx","components/pairingFastEntryList/PairingFastEntryList.tsx","components/popover/Popover.styles.tsx","components/slideIn/SlideIn.tsx","components/popover/Popover.tsx","components/popover/Popover.utils.ts","components/popperTooltip/PopperTooltip.styles.tsx","components/popperTooltip/PopperTooltip.tsx","components/popperWrapper/PopperWrapper.styles.tsx","components/popperWrapper/PopperWrapper.tsx","components/progressBar/ProgressBar.styles.tsx","components/progressBar/ProgressBar.tsx","components/progressBar/ProgressBar.utils.tsx","components/purchaseWizardDialog/PurchaseFinishedDialog.tsx","components/purchaseWizardDialog/PurchaseWizard.styles.tsx","components/purchaseWizardDialog/PurchaseWizardDialogFormView.tsx","components/purchaseWizardDialog/PurchaseWizardDialog.tsx","components/purchaseWizardDialog/PurchaseWizardDialog.utils.ts","components/purchaseWizardDialog/PurchaseWizardTile.tsx","components/readOnlyList/ReadOnlyList.styles.tsx","components/readOnlyList/ReadOnlyList.tsx","components/readOnlyList/ReadOnlyListItem.tsx","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/simplebar/src/helpers.js","../node_modules/simplebar/src/scrollbar-width.js","../node_modules/simplebar/src/simplebar.js","../node_modules/simplebar-react/dist/simplebar-react.esm.js","components/scrollBar/ScrollBar.tsx","components/separator/Separator.styles.tsx","components/separator/Separator.tsx","components/simpleGridTable/SimpleGridTable.styles.tsx","components/simpleGridTable/SimpleGridTable.tsx","components/simpleTable/SimpleTable.styles.tsx","components/simpleTable/SimpleTable.tsx","components/simpleTable/SimpleTableWithPaginator.styles.tsx","components/paginator/Paginator.styles.tsx","components/paginator/Paginator.tsx","components/simpleTable/SimpleTableWithPaginator.tsx","components/simpleTimeline/SimpleTimeline.utils.ts","components/smart/FieldInfo.tsx","components/smart/GeneralFieldDefinition.tsx","components/smart/SelectionTableViewBase.tsx","components/smart/SelectionTableViewDialog.tsx","components/smart/Smart.utils.tsx","components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils.ts","components/bankAccountCheckbox/BankAccountCheckbox.tsx","components/smart/smartBankAccountFilter/SmartBankAccountFilter.tsx","components/smart/smartBankAccountFilter/index.ts","components/smart/smartFastEntryList/SmartFastEntryList.styles.tsx","components/fastEntry/FastEntryList.tsx","components/smart/smartFastEntryList/ErrorStepper.tsx","components/smart/smartFastEntryList/SearchField.tsx","components/smart/smartFastEntryList/SmartFastEntryList.utils.tsx","components/smart/smartFastEntryList/SmartFastEntryList.tsx","components/smart/smartFastEntryList/index.ts","components/smart/smartField/SmartField.tsx","components/inputs/fileInput/FileInput.styles.tsx","components/inputs/fileInput/FileInput.tsx","components/smart/smartFileInput/SmartFileInput.tsx","components/inputs/businessPartnerSelect/SingleBusinessPartnerSelect.tsx","components/inputs/checkboxGroup/SmartCheckboxGroup.tsx","components/inputs/colorPicker/ColorPicker.styles.tsx","components/inputs/colorPicker/ColorPicker.tsx","components/inputs/responsiveInput/ResponsiveInput.tsx","components/inputs/tokenInput/TokenInput.styles.tsx","components/inputs/tokenInput/TokenInput.tsx","components/smart/smartRadioButtonGroup/SmartRadioButtonGroup.tsx","components/smart/smartSelect/SmartAutocomplete.tsx","components/smart/smartSelect/SmartLabelSelect.tsx","components/smart/smartField/SmartFieldUtils.tsx","components/smart/smartFilterBar/CustomizationDialog.tsx","components/smart/smartFilterBar/SmartFilterBar.styles.tsx","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","components/filterBar/FilterBar.tsx","components/conditionalFilterDialog/ConditionalFilterDialog.styles.tsx","components/inputs/numericRange/NumericRange.styles.tsx","components/inputs/numericRange/NumericRange.tsx","components/conditionalFilterDialog/ConditionalFilterRow.tsx","components/conditionalFilterDialog/ConditionalFilterDialog.tsx","components/smart/smartFilterBar/SmartFilterField.tsx","components/smart/smartFilterBar/SmartFilterBar.tsx","components/smart/smartFilterBar/SmartFilterBar.types.ts","components/smart/smartFormDeleteButton/SmartDelete.utils.ts","components/smart/smartFormDeleteButton/SmartFormDeleteButton.styles.tsx","components/smart/smartFormDeleteButton/SmartFormDeleteButton.tsx","components/smart/smartFormGroup/SmartActionButton.tsx","components/smart/smartFormGroup/SmartFormGroupBase.tsx","components/smart/smartHeader/SmartHeader.styles.tsx","components/smart/smartSummaryItem/SmartSummaryItem.tsx","components/smart/smartHeader/SmartHeader.tsx","components/smart/smartPairingSelect/SmartPairingSelect.utils.tsx","components/smart/smartPairingSelect/PairingDocumentTableView.tsx","components/smart/smartPairingSelect/SmartPairingSelectBase.tsx","components/smart/smartSelect/SmartMultiSelect.tsx","components/smart/smartSelect/SmartSelect.tsx","components/smart/smartSelect/SmartSelectAPI.ts","components/smart/smartSelect/SmartSelectAPI.types.tsx","components/smart/smartSelect/SmartSelectBase.tsx","components/smart/smartTable/SmartHierarchyTable.tsx","components/smart/smartBulkChangeDialog/BulkChange.styles.tsx","components/smart/smartBulkChangeDialog/SmartBulkChange.utils.ts","components/smart/smartBulkChangeDialog/SmartBulkChangeField.tsx","components/smart/smartBulkChangeDialog/SmartBulkChangeFormGroup.tsx","components/smart/smartBulkChangeDialog/BulkChangeForm.tsx","components/smart/smartBulkChangeDialog/BulkChangeDialog.tsx","components/smart/smartTable/SmartODataTableBase.tsx","components/smart/smartTable/SmartReportTable.styles.tsx","components/smart/smartTable/SmartReportTable.tsx","components/smart/smartTable/SmartReportTable.utils.tsx","components/smart/smartTable/SmartTable.tsx","components/smart/smartTable/SmartTable.utils.ts","components/smart/smartTable/SmartTableBase.tsx","components/smart/smartTable/SmartTableManager.tsx","components/smart/smartTable/SmartTableStateBase.tsx","components/smart/smartTemporalPropertyButton/SmartTemporalPropertyButton.styles.tsx","components/inputs/valueHelper/ValueHelper.tsx","components/smart/smartValueHelper/SmartValueHelper.tsx","components/smart/smartValueHelper/ValueHelper.utils.ts","components/sortableList/SortableList.styles.tsx","../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","components/sortableList/SortableListPlaceholder.tsx","components/sortableList/SortableList.tsx","components/splitLayout/Pane.tsx","components/splitLayout/SplitLayout.styles.tsx","components/splitLayout/SplitLayout.tsx","components/summary/Summary.styles.tsx","components/summary/Summary.tsx","components/summary/SummaryItem.tsx","components/svgImage/SvgImage.styles.tsx","components/svgImage/SvgImage.tsx","components/table/NoData.tsx","components/table/Rows.styles.tsx","components/table/Table.styles.tsx","components/table/Table.types.ts","components/table/TableSortingDialog.styles.tsx","components/table/TableSortingDialog.tsx","components/table/TableUtils.tsx","../node_modules/react-window-infinite-loader/dist/index.esm.js","components/table/Rows.tsx","components/table/Table.tsx","components/table/TableWithAutoSizedColumns.tsx","components/table/withContextMenu.tsx","components/tabs/Tabs.styles.tsx","components/tabs/Tabs.tsx","components/text/Text.styles.tsx","components/text/Text.tsx","components/textEllipsis/TextEllipsis.styles.tsx","components/textEllipsis/TextEllipsis.tsx","components/ticketMessage/TicketMessage.utils.tsx","components/tiles/demoTenant/DemoTenantWrapper.tsx","components/tiles/incomeExpenseOverview/IncomeExpenseOverview.utils.ts","components/tiles/infoTile/InfoTile.styles.tsx","components/tiles/infoTile/InfoTile.tsx","components/tiles/linkTile/LinkTile.styles.tsx","components/token/Token.styles.tsx","components/token/Token.tsx","components/token/Tokenizer.styles.tsx","components/token/Tokenizer.tsx","components/token/Tokenizer.utils.ts","components/token/UserInitial.styles.tsx","components/token/UserInitial.tsx","components/toolbar/Toolbar.styles.tsx","components/toolbar/Toolbar.tsx","components/toolbar/Toolbar.types.tsx","components/toolbar/Toolbar.utils.tsx","components/toolbar/ToolbarButton.tsx","components/toolbar/VerticalToolbar.tsx","components/tooltip/Tooltip.style.ts","components/tooltip/Tooltip.tsx","components/tooltipIcon/TooltipIcon.styles.tsx","components/tooltipIcon/TooltipIcon.tsx","components/tooltipIcon/icons/TooltipIconInfo.tsx","components/tooltipIcon/icons/TooltipIconCopyLink.tsx","components/variantSelector/VariantOdata.ts","components/variantSelector/VariantSelector.styles.tsx","components/variantSelector/VariantDialog.tsx","components/variantSelector/VariantSelector.tsx","components/workDatePicker/WorkDatePicker.styles.tsx","components/workDatePicker/WorkDatePicker.tsx","constants.ts","contexts/appContext/AppContext.types.tsx","contexts/appContext/AppContext.utils.tsx","../node_modules/js-cookie/dist/js.cookie.mjs","contexts/authContext/Auth.utils.ts","contexts/authContext/AuthContext.tsx","contexts/authContext/withAuthContext.tsx","contexts/backgroundJobsContext/BackgroundJobsContext.utils.tsx","contexts/contexts.utils.tsx","contexts/domManipulator/DomManipulatorOrchestrator.ts","contexts/domManipulator/DomManipulatorProvider.tsx","contexts/domManipulator/withDomManipulator.tsx","contexts/permissionContext/PermissionContext.tsx","contexts/permissionContext/withPermissionContext.tsx","contexts/portalRootElement/PortalRootElementProvider.tsx","devtools/Devtools.utils.ts","enums.ts","global.style.tsx","global.types.ts","global.utils.ts","hooks/HideOnBlurHook.tsx","../node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","i18n.ts","keyName.ts","login/Login.utils.tsx","login/state/deviceSlice.ts","login/state/invitationSlice.ts","login/state/loginSlice.ts","login/state/sessionSlice.ts","login/state/store.ts","model/Model.tsx","model/StorageModel.tsx","model/TableStorage.tsx","model/Validator.ts","model/Validator.types.ts","notifications/Notification.utils.tsx","odata/BindingContext.ts","odata/Data.types.ts","../node_modules/is-plain-object/index.es.js","odata/Data.utils.ts","odata/EntityTypes.ts","odata/FieldInfo.utils.tsx","odata/GeneratedEntityTypes.ts","odata/GeneratedEnums.ts","odata/GeneratedEnums.utils.ts","odata/OData.ts","odata/OData.utils.ts","odata/ODataParser.ts","odata/ODataProvider.tsx","odata/PropertyTranslationCache.ts","components/smart/smartTemporalPropertyButton/SmartTemporalPropertyButton.tsx","odata/TemporalUtils.tsx","odata/withOData.tsx","pages/DialogPageBase.tsx","pages/DialogPage.tsx","pages/Page.tsx","pages/PageUtils.ts","pages/ParentChildPage.tsx","pages/SplitPage.tsx","components/draftTimeStamp/DraftTimestamp.styles.tsx","components/draftTimeStamp/DraftTimestamp.tsx","components/unsavedChangesPrompt/UnsavedChangesPrompt.tsx","pages/SplitPageBase.tsx","pages/accountAssignment/Account.utils.tsx","pages/accountAssignment/AccountAssignment.utils.shared.tsx","pages/accountAssignment/AccountAssignment.utils.tsx","pages/accountAssignment/AccountAssignmentFormView.tsx","pages/accountAssignment/AccountAssignmentDef.tsx","pages/accountAssignment/AccountAssignmentDialog.tsx","pages/admin/companyRoles/AssignedCompanyUsersTable.tsx","pages/admin/companyRoles/CompanyPermissionsTable.tsx","pages/admin/companyRoles/CompanyRolesDef.tsx","pages/admin/generalRoles/AssignedUsersTable.tsx","pages/admin/generalRoles/GeneralRoles.styles.tsx","pages/admin/generalRoles/GeneralRolesDef.tsx","pages/admin/generalRoles/PermissionsTable.tsx","pages/admin/itemTemplates/ItemTemplates.utils.shared.tsx","pages/admin/itemTemplates/ItemTemplates.utils.tsx","pages/admin/itemTemplates/ItemTemplatesFormView.tsx","pages/admin/itemTemplates/ItemTemplatesDef.tsx","svg/cardProviders/creditCard.svg","svg/cardProviders/mastercard.svg","svg/cardProviders/visa.svg","pages/admin/subscriptions/Subscriptions.utils.tsx","pages/admin/subscriptions/subpages/BillingPayments.def.tsx","pages/admin/subscriptions/subpages/Invoicing.def.tsx","pages/admin/users/Users.styles.tsx","pages/admin/users/SelectCompanyDialog.tsx","pages/admin/users/UsersTableView.tsx","pages/admin/users/Users.tsx","pages/admin/users/Users.utils.tsx","pages/admin/users/CompanyRolesList.tsx","pages/admin/users/PermissionsOverview.tsx","pages/admin/users/UsersFormView.tsx","pages/admin/users/UsersDef.tsx","pages/admin/vatRules/VatRules.consts.ts","pages/admin/vatRules/VatRules.utils.tsx","pages/admin/vatRules/VatRules.styles.tsx","pages/admin/vatRules/VatRulesFormView.tsx","pages/admin/vatRules/VatRulesDef.tsx","pages/asset/Asset.utils.tsx","pages/asset/PairingWithAssetTableView.tsx","pages/asset/fixedAsset/FixedAsset.utils.tsx","pages/asset/fixedAsset/FixedAssetChangePriceDef.tsx","pages/asset/fixedAsset/FixedAssetDisposalDialogFormView.tsx","pages/asset/fixedAsset/AccountingDepreciationPolicyTable.styles.tsx","pages/asset/fixedAsset/AccountingDepreciationPolicyTable.tsx","pages/asset/fixedAsset/TaxDepreciationPolicyTable.tsx","pages/asset/fixedAsset/PolicyDepreciationDialog.tsx","pages/asset/fixedAsset/FixedAssetFormView.tsx","pages/asset/fixedAsset/FixedAssetDef.tsx","pages/asset/fixedAsset/FixedAssetDisposalDef.tsx","pages/asset/fixedAsset/FixedAssetMassPdfExportDialog.tsx","pages/asset/minorAsset/MinorAsset.utils.tsx","components/smart/smartPairingSelect/SmartPairingSelect.tsx","pages/asset/minorAsset/MinorAssetDef.tsx","pages/asset/minorAsset/MinorAssetDocumentPairDef.tsx","pages/asset/minorAsset/MinorAssetFormView.tsx","pages/asset/minorAsset/MinorAsset.styles.tsx","pages/asset/minorAsset/PairingMinorAssetTableView.tsx","pages/asset/minorAsset/MinorAssetFormPage.tsx","pages/asset/minorAsset/withMinorAssetPairing.tsx","pages/asset/unorganizedAsset/UnorganizedAssetDef.tsx","pages/asset/fixedAsset/FixedAssetChangePriceFormView.tsx","pages/asset/unorganizedAsset/dialogs/AddToCostsDialogFormView.tsx","pages/asset/fixedAsset/PairingFixedAssetTableView.tsx","pages/asset/unorganizedAsset/dialogs/CompleteFixedAsset.tsx","pages/asset/unorganizedAsset/dialogs/CreateNewAssetDialog.tsx","pages/asset/unorganizedAsset/UnorganizedAssetTableView.tsx","pages/asset/unorganizedAsset/dialogs/AddToCostsDef.tsx","pages/banks/Pair.utils.tsx","pages/banks/PairTableAmountDialog.tsx","pages/banks/PairTableView.tsx","pages/banks/PairTableViewBase.tsx","pages/banks/Payments.utils.tsx","pages/banks/bankAccounts/Api.utils.tsx","pages/banks/bankAccounts/BankAccounts.styles.tsx","pages/banks/bankAccounts/BankAccounts.utils.ts","pages/banks/bankAccounts/BankAccountsDef.tsx","pages/banks/bankAccounts/apiSettingsDialog/BankAccountSettingsDef.tsx","pages/banks/bankStatements/BankStatements.utils.tsx","pages/banks/bankStatements/BankStatementsDef.tsx","pages/banks/bankStatements/BankStatementsFormView.tsx","pages/banks/bankTransactions/BankTransactionDocumentPairDef.tsx","pages/banks/bankTransactions/BankTransactionStatementPairDef.tsx","pages/banks/bankTransactions/BankTransactions.styles.tsx","pages/banks/AccountSplitDialog.tsx","pages/banks/bankTransactions/BankTransactions.utils.tsx","pages/banks/bankTransactions/BankTransactionPairTableView.tsx","pages/banks/bankTransactions/BankTransactionStatementPairTableView.tsx","pages/banks/bankTransactions/BankTransactionsFormView.tsx","pages/banks/bankTransactions/BankTransactionsDef.tsx","pages/businessPartner/BusinessPartner.shared.utils.tsx","pages/businessPartner/BusinessPartner.utils.ts","pages/businessPartner/BusinessPartnerFormView.tsx","pages/businessPartner/BusinessPartnerDef.tsx","pages/cashBasisAccounting/CashBasisAccounting.utils.tsx","pages/cashBasisAccounting/CustomCategoryTemporalDialog.tsx","pages/cashBoxes/CashBoxesDef.tsx","pages/cashBoxes/cashReceipts/CashReceipts.utils.tsx","components/checkboxFilter/CheckboxFilter.styles.tsx","components/checkboxFilter/CheckboxFilter.tsx","components/smart/smartCashBoxFilter/SmartCashBoxFilter.styles.tsx","components/smart/smartCashBoxFilter/SmartCashBoxFilter.tsx","pages/cashBoxes/cashReceipts/CashReceiptsDef.tsx","pages/cashBoxes/cashReceipts/CashReceiptsPairTableView.tsx","pages/cashBoxes/cashReceipts/CashReceiptsFormView.tsx","pages/cashBoxes/cashReceipts/CashReceiptsIssuedFormView.tsx","pages/cashBoxes/cashReceipts/CashReceiptsIssuedDef.tsx","pages/cashBoxes/cashReceipts/CashReceiptsReceivedFormView.tsx","pages/cashBoxes/cashReceipts/CashReceiptsReceivedDef.tsx","pages/cbaCategories/CbaCategoriesFormView.tsx","pages/cbaCategories/CbaCategoriesDef.tsx","pages/chartOfAccounts/ChartOfAccounts.utils.ts","pages/chartOfAccounts/ChartOfAccountsBaseFormView.tsx","pages/chartOfAccounts/ChartOfAccountsFormView.tsx","pages/chartOfAccounts/ChartOfAccountsDef.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplatesContext.ts","pages/chartOfAccountsTemplates/ChartOfAccountsTemplatesFormView.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplatesDef.tsx","pages/companies/Company.shared.utils.tsx","pages/companies/Company.styles.tsx","pages/companies/Company.utils.tsx","pages/companies/CompanyDashboard.styles.tsx","components/imageUploader/ImageUploader.tsx","pages/companies/CompanyFormAvatarWithName.tsx","pages/companies/CompanyDef.tsx","pages/companies/CompanyAvatarSelector.tsx","pages/companies/CompanyFormView.tsx","pages/companies/NewCustomers.def.tsx","pages/companies/TaxStatementSignatoryPerson.utils.tsx","pages/csvImport/CsvImport.styles.tsx","pages/csvImport/ChangeValueDialog.tsx","pages/csvImport/CsvImport.tsx","pages/csvImport/CsvImport.utils.tsx","pages/currencyUsedByCompany/CurrencyUsedByCompany.utils.tsx","pages/currencyUsedByCompany/CurrencyUsedByCompanyFormView.tsx","pages/currencyUsedByCompany/CurrencyUsedByCompanyDef.tsx","pages/customerPortalPayment/CustomerPortalPayment.styles.tsx","pages/customerPortalPayment/CustomerPortalPaymentFormView.tsx","pages/customerPortalPayment/CustomerPortalPaymentDef.tsx","pages/dataBox/DataBox.styles.tsx","pages/dataBox/DataBox.utils.tsx","pages/dataBox/DataBoxDef.tsx","pages/dataExport/DataExport.utils.tsx","pages/deletedItems/DeleteLog.def.tsx","pages/documents/Document.style.tsx","pages/documents/Document.utils.tsx","pages/documents/DocumentCommonDefs.tsx","pages/documents/DocumentDef.tsx","pages/inbox/RossumProgressDialog.tsx","pages/documents/SendInvoiceDialog.tsx","pages/documents/DocumentFormView.tsx","pages/documents/IssuedDocumentBaseFormView.tsx","pages/documents/NumberRangeTemporalFormDialog.tsx","pages/documents/ReceivedDocumentBaseFormView.tsx","components/smart/smartPairingSelect/SmartPairingMultiSelect.tsx","pages/documents/corrective/CommonCorrectiveSharedUtils.tsx","pages/documents/corrective/CorrectiveDocumentSharedPairDef.tsx","pages/documents/corrective/correctiveInvoiceIssued/CorrectiveInvoicesIssuedFormView.tsx","pages/documents/corrective/correctiveInvoiceIssued/CorrectiveInvoicesIssuedDef.tsx","pages/documents/corrective/correctiveInvoiceReceived/CorrectiveInvoicesReceivedFormView.tsx","pages/documents/corrective/correctiveInvoiceReceived/CorrectiveInvoicesReceivedDef.tsx","pages/documents/draftMassAccountingDialog/DraftMassAccountingDialog.def.tsx","pages/documents/draftMassAccountingDialog/DraftMassAccountingDialog.utils.tsx","pages/documents/extensions/accruals/Accruals.utils.ts","pages/documents/extensions/accruals/AccrualsDef.tsx","pages/documents/extensions/accruals/PairingAccrualsTableView.tsx","pages/documents/extensions/accruals/withAccruals.tsx","pages/documents/extensions/itemsSummary/ItemsSummary.styles.tsx","pages/documents/extensions/itemsSummary/ItemsSummary.tsx","pages/documents/corrective/extensions/correctiveItemsSummary/CorrectiveItemsSummary.tsx","pages/documents/extensions/itemsSummary/ItemsSummary.utils.tsx","pages/documents/extensions/proforma/Proforma.utils.ts","pages/documents/extensions/proforma/ProformaDef.tsx","pages/documents/extensions/proforma/PairingProformaTableView.tsx","pages/documents/extensions/proforma/withProforma.tsx","pages/documents/extensions/timeResolution/CloseTimeResDef.tsx","pages/documents/extensions/timeResolution/TimeResolution.utils.ts","pages/documents/extensions/timeResolution/TimePlanTable.tsx","pages/documents/extensions/timeResolution/TimeResolutionDef.tsx","pages/documents/extensions/timeResolution/TimeResolutionDialogFormView.tsx","pages/documents/extensions/timeResolution/CloseTimeResDialogFormView.tsx","pages/documents/extensions/timeResolution/withTimeResolution.tsx","pages/documents/internalDocument/InternalDocumentPairTableView.tsx","pages/documents/internalDocument/InternalDocumentFormView.tsx","pages/documents/internalDocument/InternalDocumentDef.tsx","pages/documents/internalDocument/InternalDocumentPairDef.tsx","pages/documents/invoicesIssued/InvoicesIssuedDef.tsx","pages/documents/invoicesIssued/InvoicesIssuedFormView.tsx","pages/documents/invoicesReceived/InvoicesReceivedDef.tsx","pages/documents/invoicesReceived/InvoicesReceivedFormView.tsx","pages/documents/otherLiability/OtherLiabilityFormView.tsx","pages/documents/otherLiability/OtherLiabilityDef.ts","pages/documents/otherReceivable/OtherReceivableFormView.tsx","pages/documents/otherReceivable/OtherReceivableDef.tsx","pages/documents/proformaInvoices/ProformaInvoice.utils.tsx","pages/documents/proformaInvoices/issued/ProformaInvoicesIssuedFormView.tsx","pages/documents/proformaInvoices/issued/ProformaInvoicesIssuedDef.tsx","pages/documents/proformaInvoices/received/ProformaInvoicesReceivedFormView.tsx","pages/documents/proformaInvoices/received/ProformaInvoicesReceivedDef.tsx","pages/electronicSubmission/ElectronicSubmission.utils.ts","pages/electronicSubmission/VatLockOverrideConfirmDialog.utils.tsx","pages/electronicSubmission/VatLockOverrideConfirmDialogFormView.tsx","pages/electronicSubmission/VatLockOverrideConfirmDialog.tsx","pages/electronicSubmission/VatSubmission.utils.tsx","pages/electronicSubmission/VatSubmissionDetail.styles.tsx","pages/electronicSubmission/YearSwitcher.styles.tsx","pages/fiscalYear/FiscalYear.utils.ts","pages/fiscalYear/FiscalYear.styles.tsx","pages/fiscalYear/FiscalYearDef.tsx","pages/fiscalYear/FiscalYearFormView.tsx","pages/fiscalYearClose/FiscalYearClose.def.tsx","pages/fiscalYearClose/FiscalYearClose.styles.tsx","pages/fiscalYearClose/FiscalYearClose.utils.tsx","pages/getDefByEntityType.ts","components/tiles/businessCardTile/BusinessCardTile.styles.tsx","components/tiles/businessCardTile/BusinessCardTile.tsx","components/tiles/todoList/TodoList.styles.tsx","components/tiles/todoList/TodoListItem.tsx","components/tiles/todoList/TodoList.tsx","components/tiles/todoList/TodoList.utils.ts","components/tiles/todoList/TodoListTile.tsx","pages/home/AgendaDashboardDef.tsx","pages/home/CustomerDashboardDef.tsx","pages/customerPortalPayment/CustomerPortalPaymentUtils.ts","pages/home/CustomerPortal.utils.tsx","pages/home/DashboardManager.ts","pages/home/Home.style.ts","components/tiles/agendaPerformanceOverview/AgendaPerformanceOverview.tsx","components/tiles/demoTenant/DemoTenant.styles.tsx","components/tiles/demoTenant/DemoTenant.tsx","components/tiles/agendaWorkOverview/AgendaWorkOverview.tsx","components/tiles/customerSupportTile/CustomerSupportTile.styles.tsx","components/tiles/customerSupportTile/CustomerSupportTile.tsx","components/tiles/incomeExpenseOverview/IncomeExpenseOverview.styles.tsx","components/tiles/incomeExpenseOverview/IncomeExpenseOverview.tsx","components/tiles/keyboardShortcutsTile/KeyboardShortcutsTile.styles.tsx","components/tiles/keyboardShortcutsTile/KeyboardShortcutsTile.tsx","static/images/purchaseTileMountains.svg","components/tiles/purchaseTile/PurchaseTile.styles.tsx","components/tiles/purchaseTile/PuchaseTile.tsx","static/images/welcome.svg","components/tiles/welcome/Welcome.styles.tsx","components/tiles/welcome/Welcome.tsx","pages/home/Home.utils.tsx","components/tiles/taxCalendar/TaxCalendar.styles.tsx","components/tiles/taxCalendar/TaxCalendar.tsx","components/tiles/taxCalendar/TaxCalendar.utils.ts","pages/home/TenantDashboardDef.tsx","pages/inbox/Inbox.styles.tsx","pages/inbox/Inbox.utils.tsx","pages/inbox/InboxDef.tsx","pages/inbox/InboxItemLogDef.tsx","components/smart/smartFileStrip/SmartFileStrip.tsx","pages/inbox/InboxFakeSplitter.tsx","pages/inbox/InboxFileDetailLayout.tsx","components/textExpandable/TextExpandable.styles.tsx","components/textExpandable/TextExpandable.tsx","components/chat/Message.tsx","pages/inbox/LinkWithTextInDialog.tsx","pages/inbox/EmailBodyMessage.tsx","components/chat/Chat.tsx","pages/inbox/InboxChat.tsx","pages/inbox/InboxFileDetail.tsx","components/fileViewers/NoPreviewAnt.tsx","pages/inbox/InboxMultipleFilesSelected.tsx","pages/inbox/InboxTableView.tsx","pages/inbox/InboxSplitPage.tsx","pages/inbox/RossumDialog.tsx","pages/inboxSettings/InboxCompanyEmailAddress.styles.tsx","pages/inboxSettings/InboxCompanyEmailAddress.tsx","pages/inboxSettings/InboxSettings.def.tsx","pages/integrations/Integration.def.tsx","pages/integrations/Integration.styles.tsx","pages/integrations/IntegrationSettings.def.tsx","pages/labelsHierarchy/LabelFormView.tsx","pages/labelsHierarchy/Labels.utils.ts","pages/labelsHierarchy/LabelsDef.tsx","pages/labelsHierarchy/labelsHierarchyFormView.tsx","pages/labelsHierarchy/labelsHierarchyDef.tsx","pages/messages/MessagesFormView.tsx","pages/messages/Messages.def.tsx","pages/messages/Messages.styles.tsx","pages/messages/SendMessageDialog.tsx","pages/numberRange/NumberRange.utils.tsx","pages/numberRange/NumberRangeFormView.tsx","pages/numberRange/numRangeWithProgressBar.styles.tsx","pages/numberRange/numRangeHelpTooltip.tsx","pages/numberRange/numRangeWithProgressBar.tsx","pages/numberRange/NumberRangeDef.tsx","pages/numberRange/NumberRangeFields.utils.tsx","pages/payroll/absenceCategory/AbsenceCategoryFormView.tsx","pages/payroll/absenceCategory/AbsenceCategory.def.tsx","components/calendar/Calendar.utils.tsx","components/calendar/Calendar.styles.tsx","components/calendar/Day.tsx","components/calendar/Calendar.tsx","pages/payroll/attendance/Attendance.styles.tsx","pages/payroll/attendance/AttendanceDayEditEntries.tsx","pages/payroll/attendance/AttendanceDaysList.tsx","pages/payroll/attendance/AttendanceFormView.tsx","pages/payroll/attendance/UsedWorkingPatternOverview.tsx","pages/payroll/attendance/Attendance.def.tsx","pages/payroll/attendance/Attendance.types.ts","pages/payroll/attendance/Attendance.utils.tsx","pages/payroll/deduction/Deduction.utils.tsx","pages/payroll/deduction/DeductionFormView.tsx","pages/payroll/deduction/groupDeductions/PairEmployeeTableView.tsx","pages/payroll/deduction/groupDeductions/GroupDeductionFormView.tsx","pages/payroll/deduction/individualDeductions/IndividualDeductionFormView.tsx","pages/payroll/deduction/commonDeduction.def.tsx","pages/payroll/deduction/groupDeductions/GroupDeduction.def.tsx","pages/payroll/deduction/individualDeductions/IndividualDeduction.def.tsx","pages/payroll/taxpayerDeclaration/TaxpayerDeclarationTableView.tsx","pages/payroll/employee/CarsDialog.tsx","pages/payroll/employee/EmployeeFormView.tsx","pages/payroll/employee/Employee.def.tsx","pages/payroll/employee/Employee.utils.tsx","pages/payroll/employment/Employment.utils.tsx","pages/payroll/employment/EmploymentFormView.tsx","pages/payroll/employment/Employment.styles.tsx","pages/payroll/employment/TemplateSummaryItem.tsx","pages/payroll/employment/EmploymentDef.tsx","pages/payroll/extraSalary/PickExtraSalaryTableView.tsx","pages/payroll/salaryComponent/PickSalaryComponentTableView.tsx","pages/payroll/employmentTemplate/EmploymentBaseFormView.tsx","pages/payroll/extraSalary/ExtraSalary.styles.tsx","pages/payroll/extraSalary/CollapsibleSectionToggleField.tsx","pages/payroll/extraSalary/LegislativeExtraSalariesSmartFastEntryList.tsx","pages/payroll/employmentTemplate/EmploymentTemplateFormView.tsx","pages/payroll/employmentTemplate/EmploymentTemplateDef.tsx","pages/payroll/extraSalary/ExtraSalaryFormView.tsx","pages/payroll/extraSalary/ExtraSalary.def.tsx","pages/payroll/extraSalary/ExtraSalary.utils.tsx","pages/payroll/governmentInstitution/BankAccountsFastEntry.tsx","pages/payroll/governmentInstitution/GovernmentInstitution.utils.tsx","pages/payroll/governmentInstitution/GovernmentInstitutionDef.tsx","pages/payroll/healthInsuranceCompany/HealthInsuranceCompanyFormView.tsx","pages/payroll/healthInsuranceCompany/HealthInsuranceCompany.def.tsx","pages/payroll/healthInsuranceCompany/insuranceCompanies.utils.tsx","pages/payroll/lifeInsuranceCompany/LifeInsuranceCompanyFormView.tsx","pages/payroll/lifeInsuranceCompany/LifeInsuranceCompany.def.tsx","pages/payroll/payslip/Payslip.def.tsx","pages/payroll/pensionInsuranceCompany/PensionInsuranceCompanyFormView.tsx","pages/payroll/pensionInsuranceCompany/PensionInsuranceCompany.def.tsx","pages/payroll/salaryAdvance/SalaryAdvanceFormView.tsx","pages/payroll/salaryAdvance/SalaryAdvance.def.tsx","pages/payroll/salaryComponent/SalaryComponentFormView.tsx","pages/payroll/salaryComponent/SalaryComponent.def.tsx","pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.types.ts","pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.utils.tsx","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/ButtonGroup.js","pages/payroll/taxpayerDeclaration/TaxpayerDeclarationFormView.tsx","pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.def.tsx","pages/payroll/workingPatterns/WorkingPatterns.utils.tsx","components/inputs/dayInput/DayInput.styles.tsx","components/inputs/dayInput/DayInput.tsx","components/calendarWithInputs/CalendarWithInputs.styles.tsx","components/calendarWithInputs/CalendarWithInputs.tsx","pages/payroll/workingPatterns/WorkingPattern.styles.tsx","pages/payroll/workingPatterns/SmartCalendarWrapper.tsx","pages/payroll/workingPatterns/WorkDayIntervalsFastEntry.tsx","pages/payroll/workingPatterns/WorkingPatternsFormView.tsx","pages/payroll/workingPatterns/WorkingPatternsDef.tsx","pages/recurringTasks/Draft.def.tsx","pages/recurringTasks/DraftForm.tsx","pages/recurringTasks/DraftPreviewInsideForm.tsx","components/inputs/radioButtonGroup/RadioListItem.tsx","pages/recurringTasks/TaskEditDialog.tsx","pages/recurringTasks/RecurringTaskFormView.tsx","pages/recurringTasks/RecurringTask.def.tsx","pages/recurringTasks/RecurringTask.styles.tsx","pages/recurringTasks/RecurringTask.utils.tsx","pages/recurringTasks/executions/Executions.def.tsx","pages/reports/CommonDefs.tsx","pages/reports/FiscalYearDepenedentReport.tsx","pages/reports/Report.utils.ts","pages/reports/ReportFilter.utils.ts","pages/reports/ReportIds.ts","pages/reports/ReportStorage.ts","pages/reports/ReportSplitPage.tsx","pages/reports/ReportView.styles.tsx","pages/reports/ReportView.tsx","pages/reports/VatReport.utils.tsx","pages/reports/accountAnalysis/AccountAnalysisDef.tsx","pages/reports/accountingJournal/AccountingJournalDef.tsx","pages/reports/aging/AgingBase.tsx","pages/reports/assetAnalysis/AssetAnalysis.utils.ts","pages/reports/assetAnalysis/AssetAnalysisDef.tsx","pages/reports/balanceSheet/sendBalanceSheetDialog.tsx","pages/reports/balanceSheet/BalanceSheet.tsx","pages/reports/balanceSheet/BalanceSheet.utils.tsx","pages/reports/cbaEntryLedger/CbaEntryLedgerDef.tsx","pages/reports/cbaIncomeExpense/cbaIncomeExpenseDef.tsx","components/inputs/writeLine/WriteLineGroup.styles.tsx","components/inputs/writeLine/WriteLineGroup.tsx","pages/reports/customFilterComponents/AgingInterval.tsx","pages/reports/customFilterComponents/ComposedDateRange.tsx","pages/reports/customFilterComponents/ComposedDateRange.utils.tsx","pages/reports/customFilterComponents/VatPeriodParameter.tsx","pages/reports/documentJournal/DocumentJournalDef.tsx","pages/reports/exchangeRates/ExchangeRate.utils.ts","pages/reports/exchangeRates/ExchangeRateDef.tsx","pages/reports/generalLedger/GeneralLedgerDef.tsx","pages/reports/incomeStatement/sendIncomeStatementDialog.tsx","pages/reports/incomeStatement/IncomeStatement.tsx","pages/reports/incomeStatement/IncomeStatement.styles.tsx","pages/reports/incomeStatement/IncomeStatement.utils.tsx","pages/reports/incomeStatement/IncomeStatementDef.tsx","pages/reports/paymentJournal/PaymentJournal.def.tsx","pages/reports/receivableAdjustments/ReceivableAdjustments.styles.tsx","pages/reports/receivableAdjustments/ReceivableAdjustments.utils.tsx","pages/reports/receivableAdjustments/ReceivableAdjustmentsDef.tsx","pages/reports/saldo/SaldoDef.tsx","pages/reports/vatControlStatementReport/VatControlStatementReportDef.tsx","pages/reports/vatStatementReport/VatStatementReportDef.tsx","pages/reports/vatVIESStatementReport/VatVIESStatementReportDef.tsx","components/relativeTime/relativeTime.tsx","components/ticketMessage/TicketMessage.styles.tsx","components/ticketMessage/MessageFile.tsx","components/ticketMessage/TicketMessageAttachments.tsx","components/ticketMessage/TicketMessage.tsx","components/ticketMessage/UploadedFiles.tsx","components/ticketMessage/TicketMessageInput.tsx","components/ticketMessage/TicketMessageStream.tsx","pages/tickets/SmartTicketMessageStream.tsx","pages/tickets/Tickets.styles.tsx","pages/tickets/TicketsFormView.tsx","pages/tickets/Tickets.def.tsx","pages/tickets/Tickets.utils.tsx","pages/userSetting/LogoutButton.tsx","components/simpleItemsList/SimpleItemsList.styles.tsx","components/simpleItemsList/SimpleItemsList.tsx","pages/userSetting/UserSetting.def.tsx","pages/userSetting/UserSetting.utils.ts","routes.ts","routes/Routes.utils.ts","testIds.js","static/images/waveMountain.svg","static/images/waveMountainComplex.svg","static/images/waveMountainPanorama.svg","static/images/waveSimple.svg","theme.ts","types/Boolean.ts","types/Currency.ts","types/Date.ts","types/Number.ts","utils/BankUtils.ts","utils/CacheCleaner.ts","utils/CompanyUtils.ts","utils/DraftUtils.tsx","utils/ExcelExport.ts","utils/FileStorage.ts","utils/LocalSettings.ts","utils/PairTableUtils.tsx","utils/RedirectUtils.ts","utils/Rossum.utils.ts","utils/accounting.tsx","utils/analytics.ts","utils/animationFrameThrottle.js","utils/customFetch.ts","utils/dom.utils.ts","utils/fetchWithMiddleware/FetchWithMiddleware.tsx","utils/fetchWithMiddleware/FetchWithMiddleware.utils.ts","utils/general.ts","utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils.ts","utils/keyboardShortcutsManager/KeyboardShortcutsManager.ts","utils/log.ts","utils/memoize.tsx","utils/memoizeOne.ts","utils/oneFetch.ts","utils/p13n.ts","utils/permissionUtils.tsx","utils/string.ts","utils/url.ts","utils/websocketManager/Websocket.utils.tsx","utils/websocketManager/WebsocketManager.tsx","pages/ObjectListPage.tsx","views/ObjectListView.tsx","views/View.styles.tsx","views/View.tsx","views/fileView/FileRenameWriteLine.tsx","components/smart/smartFileUploader/SmartFileUploader.tsx","views/fileView/FileView.styles.tsx","views/fileView/FileView.tsx","views/fileView/FileViewUtils.tsx","views/formView/DialogFormView.tsx","views/formView/DraftFormView.tsx","views/formView/FormCustomizationDialog.tsx","views/formView/Form.tsx","views/formView/Form.utils.ts","views/formView/FormStorage.tsx","views/formView/FormView.styles.tsx","components/simpleTimeline/SimpleTimelline.styles.tsx","components/simpleTimeline/SimpleTimeline.tsx","pages/payroll/SmartTemporalPropertyDialog.styles.tsx","pages/payroll/SmartTemporalPropertyDialog.tsx","views/formView/FormView.tsx","views/formView/PlugAndPlayForm.tsx","model/RefRegistrar.tsx","components/smart/smartFormGroup/SmartCollapsedBase.tsx","components/smart/smartFormGroup/SmartCollapsedFormGroup.tsx","components/smart/smartFormGroup/SmartCollapseToggle.tsx","components/smart/smartFormGroup/SmartFormGroup.tsx","components/smart/smartFormGroup/SmartFormTabs.tsx","components/smart/smartSimpleTable/SmartSimpleTable.tsx","views/formView/PureForm.tsx","views/formView/TemporalFormDialog.tsx","views/main/Main.utils.ts","views/main/Shell.types.ts","views/notFound/NotFound.styles.tsx","views/notFound/NotFound.tsx","views/table/ConfirmationButtons.tsx","components/slider/Slider.styles.tsx","components/slider/thumb.svg","components/slider/SliderBase.tsx","utils/pdfPrinting/Print.types.ts","components/dialog/DialogTwoColumnContentView.styles.tsx","components/dialog/DialogTwoColumnContentView.tsx","components/groupedFields/GroupedFields.styles.tsx","components/groupedFields/GroupedField.tsx","components/slider/Slider.tsx","utils/pdfPrinting/Print.utils.ts","utils/pdfPrinting/PdfPrinting.ts","utils/pdfPrinting/PrintDialog.styles.tsx","utils/pdfPrinting/PrintDialog.tsx","views/table/TablePrintDialog.tsx","views/table/TableToolbar.tsx","views/table/TableToolbar.utils.tsx","views/table/TableView.render.utils.tsx","views/table/TableView.styles.tsx","components/smart/smartTable/SmartTableSortingDialog.tsx","views/table/TableCustomizationDialog.utils.ts","views/table/TableCustomizationDialog.tsx","views/table/TableView.tsx","views/table/TableView.utils.tsx","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/autosize/dist/autosize.js","../node_modules/can-use-dom/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/isBetween.js","../node_modules/dayjs/plugin/isSameOrAfter.js","../node_modules/dayjs/plugin/isSameOrBefore.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/minMax.js","../node_modules/dayjs/plugin/quarterOfYear.js","../node_modules/dayjs/plugin/relativeTime.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/arrays.ts","../node_modules/fast-equals/src/dates.ts","../node_modules/fast-equals/src/maps.ts","../node_modules/fast-equals/src/objects.ts","../node_modules/fast-equals/src/regexps.ts","../node_modules/fast-equals/src/sets.ts","../node_modules/fast-equals/src/index.ts","../node_modules/file-saver/src/FileSaver.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/iban/iban.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.memoize/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lodash/lodash.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/mime/Mime.js","../node_modules/mime/index.js","../node_modules/mime/types/other.js","../node_modules/mime/types/standard.js","../node_modules/object-assign/index.js","../node_modules/papaparse/papaparse.min.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/polished/dist/polished.esm.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/components/Context.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/batch.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/components/Provider.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/connect.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/hooks/useSelector.js","../node_modules/use-memo-one/dist/use-memo-one.esm.js","../node_modules/react-beautiful-dnd/node_modules/react-redux/es/index.js","../node_modules/css-box-model/dist/css-box-model.esm.js","../node_modules/raf-schd/dist/raf-schd.esm.js","../node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js","../node_modules/react-beautiful-dnd/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-beautiful-dnd/node_modules/react-is/index.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-fast-compare/index.js","../node_modules/react-grid-layout/build/GridItem.js","../node_modules/react-grid-layout/build/ReactGridLayout.js","../node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","../node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","../node_modules/react-grid-layout/build/calculateUtils.js","../node_modules/react-grid-layout/build/components/WidthProvider.js","../node_modules/react-grid-layout/build/fastRGLPropsEqual.js","../node_modules/react-grid-layout/build/responsiveUtils.js","../node_modules/react-grid-layout/build/utils.js","../node_modules/react-grid-layout/index.js","../node_modules/react-grid-layout/node_modules/clsx/dist/clsx.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/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/withTranslation.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../pdfjs-dist/build/pdf/webpack/universalModuleDefinition","../pdfjs-dist/build/pdf/src/display/display_utils.js","../pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","../pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","../pdfjs-dist/build/pdf/src/shared/util.js","../pdfjs-dist/build/pdf/src/shared/compatibility.js","../pdfjs-dist/build/pdf/src/shared/is_node.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/global-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","../pdfjs-dist/build/pdf/node_modules/dommatrix/dist/dommatrix.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/object/from-entries.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.from-entries.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/clear-error-stack.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/install-error-cause.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/normalize-string-argument.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-apply.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios-pebble.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-webos-webkit.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.any.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","../pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","../pdfjs-dist/build/pdf/src/display/base_factory.js","../pdfjs-dist/build/pdf/src/display/api.js","../pdfjs-dist/build/pdf/src/display/font_loader.js","../pdfjs-dist/build/pdf/src/display/node_utils.js","../pdfjs-dist/build/pdf/src/display/annotation_storage.js","../pdfjs-dist/build/pdf/src/display/canvas.js","../pdfjs-dist/build/pdf/src/display/pattern_helper.js","../pdfjs-dist/build/pdf/src/display/worker_options.js","../pdfjs-dist/build/pdf/src/shared/message_handler.js","../pdfjs-dist/build/pdf/src/display/metadata.js","../pdfjs-dist/build/pdf/src/display/optional_content_config.js","../pdfjs-dist/build/pdf/src/display/transport_stream.js","../pdfjs-dist/build/pdf/src/display/xfa_text.js","../pdfjs-dist/build/pdf/src/display/annotation_layer.js","../pdfjs-dist/build/pdf/src/shared/scripting_utils.js","../pdfjs-dist/build/pdf/src/display/xfa_layer.js","../pdfjs-dist/build/pdf/src/display/text_layer.js","../pdfjs-dist/build/pdf/src/display/svg.js","../pdfjs-dist/build/pdf/src/display/node_stream.js","../pdfjs-dist/build/pdf/src/display/network_utils.js","../pdfjs-dist/build/pdf/src/display/content_disposition.js","../pdfjs-dist/build/pdf/src/display/network.js","../pdfjs-dist/build/pdf/src/display/fetch_stream.js","../pdfjs-dist/build/pdf/webpack/bootstrap","../pdfjs-dist/build/pdf/webpack/runtime/node module decorator","../pdfjs-dist/build/pdf/src/pdf.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/utils.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","../node_modules/react-resizable/build/Resizable.js","../node_modules/react-resizable/build/ResizableBox.js","../node_modules/react-resizable/build/propTypes.js","../node_modules/react-resizable/build/utils.js","../node_modules/react-resizable/index.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/Prompt.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/withRouter.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-side-effect/lib/index.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js","../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/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/constructors/createGlobalStyle.js","../node_modules/tiny-case/index.js","../node_modules/toml/index.js","../node_modules/toml/lib/compiler.js","../node_modules/toml/lib/parser.js","../node_modules/toposort/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/void-elements/index.js","../node_modules/warning/warning.js","../node_modules/yup/index.esm.js","../libraries/odata-metadata/src/InterfacesGen.ts","../libraries/odata-metadata/src/Metadata.ts","../libraries/odata-metadata/src/Metadata.utils.ts","../libraries/odata-metadata/src/MetadataParser.ts","../libraries/odata-metadata/src/index.ts","pages|sync|/^.*(/.def%7CDef)/..*$","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.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/classPrivateFieldLooseBase.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.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/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.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/unsupportedIterableToArray.js","../node_modules/big.js/big.mjs","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.segment.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.helper.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.options.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.stack.js","../node_modules/chart.js/src/plugins/plugin.filler/simpleArc.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.drawing.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/emittery/maps.js","../node_modules/emittery/index.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../webpack/bootstrap","../webpack/runtime/amd options","../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/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","dayjsConfig.ts","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","svg/menu/accountAssignment.svg","svg/menu/accountingJournal.svg","svg/menu/assetAnalysis.svg","svg/menu/attendance.svg","svg/menu/audit.svg","svg/menu/balance.svg","svg/menu/bankStatements.svg","svg/menu/bankTransactions.svg","svg/menu/cashReceipts.svg","svg/menu/cbaEntryLedger.svg","svg/menu/cbaIncomeExpense.svg","svg/menu/commitments.svg","svg/menu/companyRoles.svg","svg/menu/correctiveInvoicesReceived.svg","svg/menu/documentJournal.svg","svg/menu/electronicSubmission.svg","svg/menu/employees.svg","svg/menu/employment.svg","svg/menu/employmentTemplates.svg","svg/menu/exchangeRates.svg","svg/menu/extraSalaries.svg","svg/menu/fiscalYearClose.svg","svg/menu/fixedAsset.svg","svg/menu/generalLedger.svg","svg/menu/generalRoles.svg","svg/menu/inbox.svg","svg/menu/incomeStatement.svg","svg/menu/invoicesIssued.svg","svg/menu/invoicesReceived.svg","svg/menu/itemTemplates.svg","svg/menu/messages.svg","svg/menu/minorAsset.svg","svg/menu/otherReceivables.svg","svg/menu/paymentJournal.svg","svg/menu/proformaInvoicesIssued.svg","svg/menu/proformaInvoicesReceived.svg","svg/menu/receivableAdjustmentsMenu.svg","svg/menu/salaryAdvances.svg","svg/menu/salaryComponents.svg","svg/menu/saldo.svg","svg/menu/subscriptionExtensions.svg","svg/menu/subscriptionInvoicing.svg","svg/menu/subscriptionPayments.svg","svg/menu/subscriptionPlan.svg","svg/menu/unsortedAsset.svg","svg/menu/users.svg","svg/menu/vatControlStatementReport.svg","svg/menu/vatRules.svg","svg/menu/vatStetementReport.svg","svg/menu/vatViesStatementReport.svg","svg/menu/workingPatterns.svg","menu-def.ts","routes/PrivateRoute.tsx","components/smart/smartTable/SmartAuditTable.tsx","components/auditTrail/VersionSelect.tsx","components/auditTrail/AuditTrail.styles.tsx","components/auditTrail/AuditTrail.tsx","components/auditTrail/AuditTrailDialog.tsx","components/auditTrail/AuditTrailView.tsx","routes/FormRoute.tsx","pages/admin/itemTemplates/ItemTemplates.tsx","pages/admin/itemTemplates/index.ts","bundles/AdministrationBundle.tsx","pages/integrations/Integration.utils.tsx","pages/integrations/IntegrationFormView.tsx","pages/integrations/IntegrationSettingsFormView.tsx","pages/integrations/IntegrationSettingsDialog.tsx","pages/integrations/Integration.tsx","bundles/AgendaSettingsBundle.tsx","bundles/AssetBundle.tsx","bundles/AuditBundle.tsx","routes/FormDynamicEntityRoute.tsx","bundles/BankBundle.tsx","bundles/DocumentsBundle.tsx","bundles/InboxBundle.tsx","bundles/PayrollBundle.tsx","routes/CompanyDependentPrivateRoute.tsx","bundles/ReportsBundle.tsx","../node_modules/react-helmet/es/Helmet.js","components/breadCrumb/PageTitleSetter.tsx","pages/companies/ourOrganizationTile.svg","views/main/ExtendedShell.style.tsx","components/hotspots/Hotspots.styles.tsx","components/hotspots/Hotspot.tsx","components/hotspots/HotspotTooltipContent.styles.tsx","components/hotspots/EmojiPicker.styles.tsx","components/hotspots/EmojiPicker.tsx","components/hotspots/CommentImage.tsx","components/hotspots/HotspotTooltipContent.tsx","components/hotspots/NewHotspotTooltipContent.tsx","components/hotspots/Hotspots.tsx","components/hotspots/HotspotsContext.tsx","components/mobileWarningDialog/MobileWarningDialog.styles.tsx","components/mobileWarningDialog/MobileWarningDialog.tsx","components/pageLoader/pageLoaderContext.tsx","contexts/appContext/AppContext.tsx","components/progressWheel/ProgressWheel.styles.tsx","components/progressWheel/ProgressWheel.tsx","components/backgroundJobs/ProgressBanner.styles.tsx","components/backgroundJobs/ProgressBanner.tsx","components/backgroundJobs/BackgroundJobsPopup.styles.tsx","components/backgroundJobs/BackgroundJob.tsx","components/backgroundJobs/BackgroundJobsPopup.tsx","components/backgroundJobs/ProgressBannerWithBackgroundJobsPopup.tsx","pages/banks/bankTransactions/ConfirmationTransactionsDialog.tsx","contexts/backgroundJobsContext/BackgroundJobsContext.styles.tsx","contexts/backgroundJobsContext/BackgroundJobsContext.tsx","devtools/backgroundJobsHistory/BackgroundJobsHistoryTableView.tsx","devtools/backgroundJobsHistory/BackgroundJobsHistory.def.tsx","devtools/backgroundJobsHistory/BackgroundJobsHistory.tsx","notifications/Notifications.styles.tsx","notifications/NotificationAlert.tsx","notifications/PopperNotificationAlert.tsx","notifications/NotificationsContext.tsx","notifications/withNotifications.tsx","notifications/NotificationsRedirect.tsx","pages/accountAssignment/AccountAssignment.tsx","pages/businessPartner/BusinessPartner.tsx","components/smart/smartSelect/SmartIconSelect.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplates.utils.ts","pages/chartOfAccounts/NewTemplateDialog.tsx","pages/chartOfAccounts/ChartOfAccountsTableView.tsx","pages/chartOfAccounts/ChartOfAccounts.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplates.styles.tsx","pages/chartOfAccounts/ChartOfAccounts.styles.tsx","pages/chartOfAccountsTemplates/CoAEditableHeader.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplatesTableView.tsx","pages/chartOfAccountsTemplates/ChartOfAccountsTemplates.tsx","pages/companies/CompanyTile.tsx","pages/companies/OurOrganizationTile.styles.tsx","pages/companies/OurOrganizationTile.tsx","pages/companies/CompanyDashboard.tsx","pages/companies/TemplateEditPage.tsx","pages/companies/COATemplateSelection.tsx","pages/companies/CbaInitialYearSelection.tsx","pages/companies/CompanyWizard.styles.tsx","pages/companies/NewCustomersFormView.tsx","pages/companies/CompanyWizard.tsx","pages/companies/InitialAccountBalance.styles.tsx","pages/companies/InitialAccountsBalance.tsx","pages/connectIDokladScreen/ConnectIDokladScreen.styles.tsx","pages/connectIDokladScreen/idoklad.utils.ts","pages/connectIDokladScreen/ConnectIDokladScreen.tsx","pages/customerPortalPayment/CustomerPortalPaymentTableView.tsx","pages/customerPortalPayment/CustomerPortalPayment.tsx","pages/electronicSubmission/ElectronicSubmission.styles.tsx","pages/electronicSubmission/ElectronicSubmissionTableCell.tsx","pages/electronicSubmission/YearSwitcher.tsx","pages/electronicSubmission/ElectronicSubmissionOverviewGrid.tsx","pages/electronicSubmission/ElectronicSubmissionOverview.tsx","pages/electronicSubmission/AdditionalSubmissionDialog.utils.tsx","pages/electronicSubmission/AdditionalSubmissionDialog.tsx","pages/electronicSubmission/ClearingRatioDialog.tsx","pages/electronicSubmission/VatSubmissionDetail.tsx","pages/electronicSubmission/ElectronicSubmission.tsx","pages/electronicSubmission/ElectronicSubmissionAuditTrailTableView.tsx","pages/electronicSubmission/ElectronicSubmissionAuditTrail.tsx","pages/goodbyeScreen/GoodbyeScreen.styles.tsx","pages/goodbyeScreen/GoodbyeScreen.tsx","components/navigation/CompanySelector/Selector.styles.tsx","components/navigation/CompanySelector/CompanySelector.tsx","components/navigation/CompanySelector/withCompanySelector.tsx","components/navigation/CompanySelector/CustomerCompanySelector.tsx","svg/misc/userResearch.svg","pages/home/CloseCustomerPortalButton.tsx","pages/home/HomeDashboard.tsx","pages/home/Home.tsx","pages/home/linkedPages/linkedPagesUtils.tsx","pages/home/linkedPages/AgendaWorkOverview.tsx","pages/home/linkedPages/FiscalYearCloseOverview.tsx","pages/home/linkedPages/JournalEntriesLastMonth.tsx","pages/home/linkedPages/PostedDocumentsLastMonth.tsx","pages/home/SwitchToCustomerPortal.tsx","pages/tickets/TicketsTableView.tsx","pages/tickets/Tickets.tsx","pages/webInvoice/WebInvoice.styles.tsx","pages/webInvoice/WebInvoice.tsx","routes/NotFoundRoute.tsx","components/errorBoundary/ErrorBoundary.tsx","components/resizer/Resizer.styles.tsx","components/resizer/Resizer.tsx","components/navigation/NavMenu.tsx","views/errorPage/ErrorPage.tsx","views/main/Main.style.ts","components/hotspots/withHotspots.tsx","views/main/MenuRoutesSearch.tsx","views/main/ExtendedShell.tsx","components/search/Search.styles.tsx","notifications/Notification.tsx","notifications/Notifications.tsx","notifications/notificationsSettings/NotificationsSettings.styles.tsx","notifications/notificationsSettings/NotificationsSettings.tsx","notifications/NotificationsExtendedShell.tsx","notifications/SmartNotificationsExtendedShell.tsx","pages/home/DashboardConfigCheckbox.tsx","pages/home/DashboardCustomizationSection.tsx","pages/home/DashboardCustomization.tsx","components/resizer/withResizer.tsx","views/main/SettingsMenu.style.tsx","views/menu/Menu.tsx","views/main/AddMenu.tsx","views/main/AppsList.style.tsx","components/appButton/AppButton.styles.tsx","components/appButton/AppButton.tsx","views/main/AppsList.tsx","components/search/SearchWriteline.tsx","views/main/GlobalSearch.utils.tsx","components/search/SearchResultGroup.tsx","components/search/SearchResult.tsx","views/main/GlobalSearchResults.tsx","components/search/SearchIllustration.tsx","views/main/GlobalSearch.tsx","views/main/SettingsMenu.tsx","views/main/Shell.tsx","views/main/WrongEvalaVersionDialog.tsx","views/main/Main.tsx","views/main/SmartNavDashboard.tsx","static/images/remainingTrial/remains_2.svg","static/images/remainingTrial/remains_5.svg","static/images/remainingTrial/remains_8.svg","static/images/remainingTrial/remains_11.svg","static/images/remainingTrial/remains_14.svg","components/remainingTrialDialog/RemainingTrialDialog.styles.tsx","components/remainingTrialDialog/RemainingTrialDialog.tsx","views/main/SubscriptionChecker.tsx","App.tsx","static/images/waveLogging.svg","login/components/TenantSelector.tsx","login/LoginPage.styles.tsx","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/invalidArgFactory.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","login/state/hooks.ts","login/components/BackArrow.tsx","components/inputs/writeLine/PasswordWriteLine.tsx","login/components/LoginButtonGroup.tsx","login/components/LoginField.tsx","login/components/LoginForm.tsx","login/TenantPicker.utils.tsx","login/TenantRedirect.tsx","login/components/Redirects.tsx","login/Login.tsx","login/components/LoginCheckbox.tsx","login/components/RegisterForm.tsx","login/Register.tsx","svg/login/sign.svg","svg/login/bikerStatic.svg","login/components/Animation.tsx","login/LoginPage.tsx","login/TenantPicker.tsx","login/RoleConfirmation.tsx","login/Verify.tsx","hooks/useCounter.tsx","login/components/ResendLink.tsx","login/DevicePicker.tsx","login/TenantRegister.tsx","login/ResetPasswordRequest.tsx","login/ResetPassword.tsx","login/Invitation.tsx","login/EmailConfirm.tsx","login/Router.tsx","login/Logout.tsx","index.tsx"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDependentFieldskeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\n xmlSpace: \"preserve\",\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: \"M13.674 12.128H9.976a1.5 1.5 0 01-1.5-1.5V6.929a1.5 1.5 0 011.5-1.5h3.698a1.5 1.5 0 011.5 1.5v3.698a1.5 1.5 0 01-1.5 1.501zM13.674 24.308H9.976a1.5 1.5 0 01-1.5-1.5V19.11a1.5 1.5 0 011.5-1.5h3.698a1.5 1.5 0 011.5 1.5v3.698a1.5 1.5 0 01-1.5 1.5zM13.674 36.489H9.976a1.5 1.5 0 01-1.5-1.5V31.29a1.5 1.5 0 011.5-1.5h3.698a1.5 1.5 0 011.5 1.5v3.698a1.5 1.5 0 01-1.5 1.501zM21.751 9.086h13.5M21.826 21.1h13.35M21.751 33.113h13.5\",\n fill: \"none\",\n stroke: \"#4B4A5D\",\n strokeWidth: 3.038,\n strokeLinecap: \"round\",\n strokeMiterlimit: 10\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDependentFieldskeepStyle);\nexport default __webpack_public_path__ + \"static/media/dependentFields.keepStyle.ac4c0c5c6fb8d63f817d2c3e470a87a8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLockedkeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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: \"M12.438 20.372v-5.62a8.89 8.89 0 018.89-8.89 8.874 8.874 0 018.89 8.89v5.62\",\n fill: \"none\",\n stroke: \"#4B4A5D\",\n strokeWidth: 3.038,\n strokeLinecap: \"round\",\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.803 36.582a9.19 9.19 0 009.19-9.19v-6.081h-25v6.081a9.19 9.19 0 009.19 9.19h6.62z\",\n fill: \"none\",\n stroke: \"#4B4A5D\",\n strokeWidth: 3.038,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 21.493,\n cy: 28.74,\n r: 2.29,\n fill: \"#4B4A5D\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLockedkeepStyle);\nexport default __webpack_public_path__ + \"static/media/locked.keepStyle.dee3843690f865e43bc213c26e72812d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInitialBalanceskeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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: \"M33.916 22.644c-1.967.027-1.968-2.916 0-2.888 1.967-.027 1.967 2.916 0 2.888z\",\n fill: \"#E50142\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#98436D\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M2.014 8.488h38.648M2.014 33.732h38.648\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#771849\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M5.939 27.24V15.252l-3.767 2.74M25.649 15.052s-3.951.071-3.81 5.715 1.587 6.244 3.704 6.526c2.751-.282 3.281-2.187 3.492-5.997 0-4.657-1.164-5.927-3.386-6.244zM14.361 15.052s-3.951.071-3.81 5.715 1.587 6.244 3.704 6.526c2.751-.282 3.281-2.187 3.492-5.997 0-4.657-1.164-5.927-3.386-6.244zM33.257 25.317l-.454 3.538M40.608 21.316H38.15\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInitialBalanceskeepStyle);\nexport default __webpack_public_path__ + \"static/media/initialBalances.keepStyle.0a53c3fbe1bd1cbe6737b07a820f3b08.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMobilekeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\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: \"M125.394 43.002H74.605a7.552 7.552 0 00-7.552 7.553v98.89a7.553 7.553 0 007.552 7.553h50.789a7.553 7.553 0 007.553-7.553v-98.89a7.554 7.554 0 00-7.553-7.553zm-33.509 5.483h16.229a1.052 1.052 0 110 2.106H91.885a1.052 1.052 0 110-2.106zM100 154.091a3.468 3.468 0 110-6.937 3.468 3.468 0 010 6.937zm27.66-10.776H72.339V54.636h55.321v88.679z\",\n fill: \"#690048\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMobilekeepStyle);\nexport default __webpack_public_path__ + \"static/media/mobile.keepStyle.d84792463145f5809c05b3a7ea88e26b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPckeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#690048\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.432 42.501H32.74a4.878 4.878 0 00-4.879 4.879v82.416a4.878 4.878 0 004.879 4.879h134.692a4.878 4.878 0 004.879-4.879V47.38a4.88 4.88 0 00-4.879-4.879zm-67.346 4.766a1.605 1.605 0 110 3.21 1.605 1.605 0 010-3.21zm60.043 73.478c0 .783-.635 1.418-1.418 1.418H41.462a1.418 1.418 0 01-1.418-1.418V56.432c0-.783.635-1.418 1.418-1.418H158.71c.783 0 1.418.635 1.418 1.418v64.313zM187.025 140.53H12.986c-.37 0-.669.3-.669.669 0 9.002 7.298 16.299 16.299 16.299h142.768c9.002 0 16.299-7.297 16.299-16.299v-.011a.657.657 0 00-.658-.658zm-76.855 11.584H89.938a3.1 3.1 0 010-6.2h20.232a3.1 3.1 0 010 6.2z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPckeepStyle);\nexport default __webpack_public_path__ + \"static/media/pc.keepStyle.e708c764e83cfb13fcc82df5b8ac0936.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTabletkeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\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: \"M151.744 57.251c0-.461-.291-.835-.649-.835h-.784V42.01a8.342 8.342 0 00-8.342-8.342H70.862v-.637a.835.835 0 00-.835-.835h-8.692a.835.835 0 00-.835.835v.637h-3.902a8.343 8.343 0 00-8.343 8.342v117.452a8.342 8.342 0 008.343 8.342h85.37a8.342 8.342 0 008.342-8.342V92.168h.784c.359 0 .649-.374.649-.835V75.127c0-.461-.258-.451-.261-.835-.004-.461.261-.374.261-.835V57.251zM100 161.626a3.468 3.468 0 110-6.937 3.468 3.468 0 010 6.937zm44.593-14.952c0 .982-.796 1.778-1.778 1.778h-85.63a1.778 1.778 0 01-1.778-1.778V42.726c0-.982.796-1.778 1.778-1.778h85.629c.982 0 1.778.796 1.778 1.778v103.948z\",\n fill: \"#690048\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTabletkeepStyle);\nexport default __webpack_public_path__ + \"static/media/tablet.keepStyle.5ae9fa3d48c209a69a2c97c0c8d3c87c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEvalakeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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: \"M35.991 42.52H6.529A6.529 6.529 0 010 35.991V6.529A6.529 6.529 0 016.529 0h29.463a6.529 6.529 0 016.529 6.529v29.463a6.53 6.53 0 01-6.53 6.528z\",\n fill: \"#9E237C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.483 6.955c-4.662 2.97-8.535 7.29-10.719 12.395-.793 1.855-1.043 5.004 1.602 5.445 1.026.171 2.285-.212 3.259-.481 1.249-.346 2.464-.869 3.505-1.648.731-.547 1.617-1.254 1.758-2.217.145-.998-.467-1.784-1.464-1.936-1.041-.158-1.98.499-2.801 1.051a16.853 16.853 0 00-2.923 2.494 17.072 17.072 0 00-3.766 6.441c-.579 1.826-1.129 4.328.127 6.015 1.67 2.244 4.68.636 6.358-.721 2.434-1.968 4.355-4.581 6.344-6.972.511-.614-.369-1.503-.884-.884-1.189 1.43-2.356 2.862-3.604 4.243-1.285 1.423-2.613 2.921-4.371 3.765-1.034.496-2.321.75-2.978-.396-.37-.644-.393-1.475-.338-2.196.137-1.815.854-3.671 1.723-5.251a16.034 16.034 0 013.326-4.195 14.705 14.705 0 012.24-1.66c.503-.304 2.072-.859 1.628.232-.206.507-.722.905-1.153 1.22-1.449 1.059-3.451 1.725-5.244 1.854-3.339.241-.842-4.587-.113-5.893 2.186-3.92 5.338-7.216 9.119-9.624.676-.433.05-1.515-.631-1.081z\",\n fill: \"#FFF\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEvalakeepStyle);\nexport default __webpack_public_path__ + \"static/media/evala.keepStyle.c64e6f3b3d7546181b01fbc08e021dbe.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIdokladkeepStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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: \"M35.991 42.52H6.529A6.529 6.529 0 010 35.991V6.529A6.529 6.529 0 016.529 0h29.463a6.529 6.529 0 016.529 6.529v29.463a6.53 6.53 0 01-6.53 6.528z\",\n fill: \"#9E237C\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.522 27.937h5.279v5.243h-5.279z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.209 16.501a10.376 10.376 0 00-2.398-3.685c-1.073-1.073-2.403-1.92-3.991-2.543-1.588-.622-3.444-.933-5.568-.933h-5.891c-.966 0-1.679.252-2.14.756-.462.504-.692 1.154-.692 1.947v13.339h5.279V14.297h3.702c1.116 0 2.113.15 2.993.451.88.301 1.625.751 2.237 1.352a6.128 6.128 0 011.416 2.189c.332.858.499 1.835.499 2.929a8.39 8.39 0 01-.276 2.195c-.041.13-.085.26-.133.386a6.275 6.275 0 01-1.416 2.221c-.612.612-1.357 1.084-2.237 1.416-.88.333-1.878.499-2.993.499h-1.203v5.224h.856c2.124 0 3.98-.327 5.568-.982 1.588-.654 2.918-1.539 3.991-2.656 1.073-1.115 1.872-2.36 2.398-3.734.526-1.373.789-2.779.789-4.217v-.708a12.195 12.195 0 00-.79-4.361z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIdokladkeepStyle);\nexport default __webpack_public_path__ + \"static/media/idoklad.keepStyle.79d5523f20f1c4c68eb4c5417fda42c2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAccountingAdjustment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M24.2 36.3H12.1c-3.1 0-5.7-2.5-5.7-5.7V10c0-3.1 2.5-5.7 5.7-5.7h15.7c3.1 0 5.7 2.5 5.7 5.7v7.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M18.4 11.3h8M13.4 24.3h7M13.4 17.8h13\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.4,\n cy: 11.3,\n r: 1.5\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.8 22.2s-2.1-1.4-4.2-1c-2.6.5-3.3 3.4-1 4.9.1.1.3.1.4.2 1.7.9 3.4.5 4.6 1.4 1.4 1 2.2 4.1-.9 5.6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.5 37.3s2.1 1.4 4.2 1c2.7-.5 3.3-3.7.6-5.1-1.7-.9-3.4-.5-4.6-1.4-1.4-1-2.3-4.1.9-5.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAccountingAdjustment);\nexport default __webpack_public_path__ + \"static/media/accountingAdjustment.efc0b6920d9b4b54f451293cba581d2b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAdd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16.7 34.3v-8.5H8.3c-1.6 0-2.9-1.3-2.9-2.9v-3.2c0-1.6 1.3-2.9 2.9-2.9h8.5V8.3c0-1.6 1.3-2.9 2.9-2.9h3.2c1.6 0 2.9 1.3 2.9 2.9v8.5h8.5c1.6 0 2.9 1.3 2.9 2.9v3.2c0 1.6-1.3 2.9-2.9 2.9h-8.5v8.5c0 1.6-1.3 2.9-2.9 2.9h-1.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 21.3,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAdd);\nexport default __webpack_public_path__ + \"static/media/add.e9e7848748367656aa3bc2ff39aa03b0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddFilter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M15.7 9.1H5.8M10.8 4.1v10\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.7 9.1h15l-11.2 13v10.7l-2.9 2.1M17.7 38.4V22.1L15 18.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.7,\n cy: 17.4,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddFilter);\nexport default __webpack_public_path__ + \"static/media/addFilter.c48df6894557bd3c30d0ae0ab336d20f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddMessage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_dot\",\n d: \"M34.5 24.4c0 2-2.9 2-2.9 0 0-1.9 2.9-1.9 2.9 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M27.7 32.2c-.1 0-6.5 6-6.5 5.8v-5.7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M19.7 24.5h8.1M15.3 18.1h17.5\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28 32h7.2c2.6 0 4.7-2.1 4.7-4.7V15.2c0-2.6-2.1-4.7-4.7-4.7H19.6M8.3 21.9v5.4c0 2.6 2.1 4.7 4.7 4.7h8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M13.9 10.5H2.7M8.3 5v11.2\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.9 10.5H2.7M8.3 5v11.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddMessage);\nexport default __webpack_public_path__ + \"static/media/addMessage.22587a8f47b7567152d744a10c5f20b8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddMinorAsset(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M19.7 33.7l5.6 2.6 14.5-6.5V12.5M39.8 12.5L25.1 7l-14.9 6.1v3.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.2 13.1l15.1 5.5 14.5-6.1M25.3 19.1v15.5M30 22.2l5.2-2.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 30,\n cy: 27.2,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.7 26.8H8.5M14.1 21.2v11.2M19.7 26.8H8.5M14.1 21.2v11.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddMinorAsset);\nexport default __webpack_public_path__ + \"static/media/addMinorAsset.14409a38632343d816ebe7dcd983d38f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddTo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M26.5 13.8l7.5 7.5-7.5 7.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34 21.3h-7.8s-4.3.3-7.6-3.7c-4.1-5.4-8.3-5-8.3-5H3.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M33.9 21.3h-7.8s-4.3-.3-7.6 3.7c-4.1 5.4-8.3 5-8.3 5H3.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 39.4,\n cy: 21.3,\n r: 1.7\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.5 13.8l7.5 7.5-7.5 7.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddTo);\nexport default __webpack_public_path__ + \"static/media/addTo.a12534e190914b5d62f487d062f4094a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddToFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M34 21.3h-7.8s-4.3.3-7.6-3.7c-4.1-5.4-8.3-5-8.3-5H3.1v17.5h7.1s4.1.4 8.3-5c3.4-4 7.6-3.7 7.6-3.7l7.9-.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.5 13.8l7.5 7.5-7.5 7.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M34 21.3h-7.8s-4.3.3-7.6-3.7c-4.1-5.4-8.3-5-8.3-5H3.1v17.5h7.1s4.1.4 8.3-5c3.4-4 7.6-3.7 7.6-3.7l7.9-.1\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M34 21.3h-7.8s-4.3-.3-7.6 3.7c-4.1 5.4-8.3 5-8.3 5H3.1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.5 13.8l7.5 7.5-7.5 7.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 39.7,\n cy: 21.3,\n r: 1.7\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddToFilled);\nexport default __webpack_public_path__ + \"static/media/addToFilled.9d32c43ccfde8b2d83b7976789e2b2c0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddToMinorAsset(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M19.6 25.8h-4.8s-2.6.2-4.7-2.3C7.6 20.2 5 20.4 5 20.4H2.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.5 25.8h-4.8s-2.6-.2-4.7 2.3c-2.5 3.3-5.1 3.1-5.1 3.1H2.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15 21.2l4.6 4.6-4.6 4.6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20.2 33.9l4.9 2.3 14.6-6.5V12.4M39.7 12.4L25 6.9 10.1 13v3\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.1 13l15.1 5.5 14.5-6.1M25.2 18.9v15.6M29.9 22.1l5.2-2.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 29.9,\n cy: 27,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddToMinorAsset);\nexport default __webpack_public_path__ + \"static/media/addToMinorAsset.6712ad1d729b3bc11761e702f2c7c1c6.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _circle2, _path2, _circle3, _circle4, _circle5, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddUserRole(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.26,\n cy: 7.938,\n r: 4.048\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.564 17.54v-.727a3.844 3.844 0 00-3.845-3.845h-6.918a3.844 3.844 0 00-3.845 3.845v.727\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 18.657,\n cy: 16.698,\n r: 1.445\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.279 37.32v-3.412\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 34.088,\n cy: 37.32,\n r: 1.31\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.26,\n cy: 37.32,\n r: 1.31\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 8.432,\n cy: 37.32,\n r: 1.31\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8.432 37.32v-4.448a2.9 2.9 0 012.891-2.891h5.972\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M34.088 37.32v-4.448a2.9 2.9 0 00-2.891-2.891H25.95\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.28 24.562v2.528a2.9 2.9 0 01-2.891 2.891h-5.972\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddUserRole);\nexport default __webpack_public_path__ + \"static/media/addUserRole.c30bf192383514b9e2658fe2c6ebffa4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _path4, _path5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddchild(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16.8 21.8H8.5c-1.6 0-2.8-1.3-2.8-2.8v-3.2C5.7 14.2 7 13 8.5 13h8.3V4.6c0-1.6 1.3-2.8 2.8-2.8h3.2c1.6 0 2.8 1.3 2.8 2.8v8.3H34c1.6 0 2.8 1.3 2.8 2.8v3.2c0 1.6-1.3 2.8-2.8 2.8h-8.3v6c0 1.6-1.3 2.8-2.8 2.8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.8 21.8H8.5c-1.6 0-2.8-1.3-2.8-2.8v-3.2C5.7 14.2 7 13 8.5 13h8.3V4.6c0-1.6 1.3-2.8 2.8-2.8h3.2c1.6 0 2.8 1.3 2.8 2.8v8.3H34c1.6 0 2.8 1.3 2.8 2.8v3.2c0 1.6-1.3 2.8-2.8 2.8h-8.3v6c0 1.6-1.3 2.8-2.8 2.8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 17.3,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M30 32l4.4 4.4-4.4 4.3\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.8 21.8v14.6h15.8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M30 32l4.4 4.4-4.4 4.3\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.8 21.8v14.6h15.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddchild);\nexport default __webpack_public_path__ + \"static/media/addchild.7c522362573e0362b37331ac74d0ad7c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddparent(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 17.7,\n cy: 21.3,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.8 25.7V34c0 1.6-1.3 2.8-2.8 2.8h-3.2c-1.6 0-2.8-1.3-2.8-2.8v-8.3H4.6c-1.6 0-2.8-1.3-2.8-2.8v-3.2c0-1.6 1.3-2.8 2.8-2.8h8.3V8.5c0-1.6 1.3-2.8 2.8-2.8h3.2c1.6 0 2.8 1.3 2.8 2.8v8.3h5.6c1.6 0 3.1 1.3 3.1 2.8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.8 25.7V34c0 1.6-1.3 2.8-2.8 2.8h-3.2c-1.6 0-2.8-1.3-2.8-2.8v-8.3H4.6c-1.6 0-2.8-1.3-2.8-2.8v-3.2c0-1.6 1.3-2.8 2.8-2.8h8.3V8.5c0-1.6 1.3-2.8 2.8-2.8h3.2c1.6 0 2.8 1.3 2.8 2.8v8.3h5.6c1.6 0 3.1 1.3 3.1 2.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M38.6 25.7H21.8M36.4 21.3l4.3 4.4-4.3 4.4M38.6 25.7H21.8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M36.4 21.3l4.3 4.4-4.3 4.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddparent);\nexport default __webpack_public_path__ + \"static/media/addparent.aca1be3291e4b9402b6d8806d494a5d5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAgenda(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34.8 17.1v-6.4c0-3.1-2.5-5.7-5.7-5.7H13.9c-3.1 0-5.7 2.5-5.7 5.7v21.1c0 3.1 2.5 5.7 5.7 5.7h15V5.4M29.1 37.5s3-.6 4-1.7 1.7-2.4 1.7-4v.4-5.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 19,\n cy: 18.7,\n r: 3.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M24.7 27.8v-.6c0-1.7-1.4-3-3-3h-5.4c-1.7 0-3 1.4-3 3v.6\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 34.8,\n cy: 21.5,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAgenda);\nexport default __webpack_public_path__ + \"static/media/agenda.4ce44ae20470127d49062db17714eb77.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgError(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_red\",\n r: 19,\n cx: 21,\n cy: 21\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red_compl\",\n d: \"M30.53 26.99c.4.39.4 1.02.01 1.42h-.01l-2.12 2.12a.996.996 0 01-1.41 0l-6-6-6 6a.996.996 0 01-1.41 0l-2.12-2.13a.996.996 0 010-1.41l6-6-6-6a.996.996 0 010-1.41l2.12-2.12a.996.996 0 011.41 0l6 6 6-6a.996.996 0 011.41 0l2.12 2.12c.39.39.39 1.02 0 1.41l-6 6.01 5.99 5.99z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgError);\nexport default __webpack_public_path__ + \"static/media/error.97439bc4dbc882a0fbd3cf6ab6cb4cc3.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSuccess(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_green\",\n cx: 21,\n cy: 21,\n r: 19\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green_compl\",\n d: \"M33.44 15.43L20.05 28.81l-2.16 2.16c-.38.38-1 .38-1.38 0l-7.52-7.52c-.38-.38-.38-1 0-1.38l2.16-2.16c.38-.38 1-.38 1.38 0l4.68 4.68 12.69-12.7a.996.996 0 011.41 0l2.13 2.12c.39.39.39 1.03 0 1.42z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSuccess);\nexport default __webpack_public_path__ + \"static/media/success.74f7130d04e60e2ca34ed2774aacfeb2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWarning(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_fill_orange\",\n d: \"M41.71 35.85L22.94 3.96c-.62-1.05-1.99-1.4-3.05-.8-.34.19-.62.47-.81.8L.3 35.85c-.62 1.05-.25 2.39.81 3 .33.19.73.29 1.12.29h37.55c1.23 0 2.22-.98 2.22-2.19 0-.39-.1-.76-.29-1.1zm-18.69-1.83c-.56.55-1.35.9-2.21.9-1.73 0-3.13-1.37-3.13-3.07s1.4-3.08 3.13-3.08 3.14 1.38 3.14 3.08c0 .85-.34 1.62-.93 2.18zm.93-9.29c0 .69-.57 1.25-1.28 1.25h-3.71c-.71 0-1.28-.55-1.28-1.25V13.68c0-.69.57-1.25 1.28-1.25h3.7c.71 0 1.28.55 1.29 1.25v11.05z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange_compl\",\n d: \"M23.95 31.84c0 .85-.34 1.62-.93 2.18-.56.55-1.35.9-2.21.9-1.73 0-3.13-1.37-3.13-3.07s1.4-3.08 3.13-3.08 3.14 1.38 3.14 3.08zM23.95 13.69v11.05c0 .69-.57 1.25-1.28 1.25h-3.71c-.71 0-1.28-.55-1.28-1.25V13.69c0-.69.57-1.25 1.28-1.25h3.7c.71 0 1.28.55 1.29 1.25z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarning);\nexport default __webpack_public_path__ + \"static/media/warning.7f3bd1a60e97ebe44ed89696df6bd51b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgApps(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M11.334 24.64H8.235a1.836 1.836 0 01-1.831-1.831V19.71c0-1.007.824-1.831 1.831-1.831h3.099c1.007 0 1.831.824 1.831 1.831v3.099a1.836 1.836 0 01-1.831 1.831zM11.326 13.166H8.242a1.843 1.843 0 01-1.838-1.838V8.243c0-1.011.827-1.838 1.838-1.838h3.084c1.011 0 1.838.827 1.838 1.838v3.084a1.842 1.842 0 01-1.838 1.839zM11.319 36.115H8.25a1.852 1.852 0 01-1.846-1.846V31.2c0-1.015.831-1.846 1.846-1.846h3.069c1.015 0 1.846.831 1.846 1.846v3.069a1.852 1.852 0 01-1.846 1.846zM22.809 24.64H19.71a1.836 1.836 0 01-1.831-1.831V19.71c0-1.007.824-1.831 1.831-1.831h3.099c1.007 0 1.831.824 1.831 1.831v3.099a1.836 1.836 0 01-1.831 1.831zM22.802 13.166h-3.084a1.843 1.843 0 01-1.838-1.838V8.243c0-1.011.827-1.838 1.838-1.838h3.084c1.011 0 1.838.827 1.838 1.838v3.084a1.843 1.843 0 01-1.838 1.839zM22.794 36.115h-3.069a1.852 1.852 0 01-1.846-1.846V31.2c0-1.015.831-1.846 1.846-1.846h3.069c1.015 0 1.846.831 1.846 1.846v3.069c0 1.015-.83 1.846-1.846 1.846zM34.285 24.64h-3.099a1.836 1.836 0 01-1.831-1.831V19.71c0-1.007.824-1.831 1.831-1.831h3.099c1.007 0 1.831.824 1.831 1.831v3.099a1.836 1.836 0 01-1.831 1.831zM34.278 13.166h-3.084a1.843 1.843 0 01-1.838-1.838V8.243c0-1.011.827-1.838 1.838-1.838h3.084c1.011 0 1.838.827 1.838 1.838v3.084a1.843 1.843 0 01-1.838 1.839z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M31.666 36.115h-.465a1.852 1.852 0 01-1.846-1.846V31.2c0-1.015.831-1.846 1.846-1.846h3.069c1.015 0 1.846.831 1.846 1.846v.484\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 36.116,\n cy: 36.115,\n r: 1.445\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgApps);\nexport default __webpack_public_path__ + \"static/media/apps.72eafeaee11b1fe4ef389e9e8eb84bd8.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArchive(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.163 21.621h9.962\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.058 15.114V4.45h7.471l3.214 3.177h12.131v7.567\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M5.559 15.574h31.814v22.269H5.559z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.768,\n cy: 8.881,\n r: 1.399\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArchive);\nexport default __webpack_public_path__ + \"static/media/archive.20e2765bd5b2adc94e004d893f6238c2.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArchiveFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.07 15.343V4.68h7.471l3.214 3.176h12.131v7.568\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.78,\n cy: 9.11,\n r: 1.399\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_dark_dot\",\n d: \"M37.224 14.304H5.41a1.5 1.5 0 00-1.5 1.5v22.269a1.5 1.5 0 001.5 1.5h31.814a1.5 1.5 0 001.5-1.5V15.804a1.5 1.5 0 00-1.5-1.5zM26.818 22.45h-11a1.6 1.6 0 110-3.2h11a1.6 1.6 0 110 3.2z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArchiveFilled);\nexport default __webpack_public_path__ + \"static/media/archiveFilled.52f1e674fc144cd00406467bbcb732b2.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M17.9 30.8l-9.4-9.4 9.4-9.5M11.1 21.4h23\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.bd37bbe88541e93ab50a027767a55f7c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssetDisposal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M9.3 21.449l-4.594 4.593L9.3 30.636\",\n id: \"Vrstva_1\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M19.684 33.735l5.577 2.602 14.559-6.526v-17.3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M39.82 12.511L25.094 6.988 10.2 13.118v2.864\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.2 13.118l15.145 5.459 14.475-6.066M25.324 19.058v15.553M30.031 22.196l5.187-2.217\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 30.031,\n cy: 27.154,\n r: 1.444\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M18.244 26.007H7.028\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssetDisposal);\nexport default __webpack_public_path__ + \"static/media/assetDisposal.a01bcbe1e838dfa2aac24048b8c51231.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAttachment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M20.5 8.8l-12 12c-2.6 2.6-2 7.4.6 9.9l.7.7c2.6 2.6 6.9 3.1 10.1.7L35.1 17c1.2-1.2 0-2.6 0-2.6l-5-5c-.7-.7-2-.7-2.7 0L13.2 23.6c-1.1 1.1-1.1 2.8 0 3.8 1.1 1.1 2.8 1.1 3.8 0l11.2-11.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M20.5 8.8l-12 12c-2.6 2.6-2 7.4.6 9.9l.7.7c2.6 2.6 6.9 3.1 10.1.7L35.1 17c1.2-1.2 0-2.6 0-2.6l-5-5c-.7-.7-2-.7-2.7 0L13.2 23.6c-1.1 1.1-1.1 2.8 0 3.8 1.1 1.1 2.8 1.1 3.8 0l11.2-11.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttachment);\nexport default __webpack_public_path__ + \"static/media/attachment.e0a6841875365245ff1ccc05907ab922.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAudittrail(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M9 27.9C7.1 24.3 6.8 20 8.4 16c2.9-7.5 11.4-11.2 18.9-8.3s11.2 11.4 8.2 18.8c-2.4 6.2-8.6 9.8-14.9 9.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot_x0020_12\",\n cx: 15.4,\n cy: 33.8,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M29.9 22.3h-9.3V14M12.8 25.6L10 31.1l-5.5-2.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAudittrail);\nexport default __webpack_public_path__ + \"static/media/audittrail.e034f357746f4b1355320724e60c6c4b.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAutomaticpairing(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 35,\n cy: 28.3,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M35.6 20.9c.1-8-6.3-14.6-14.3-14.7-3.9-.1-7.4 1.1-10 3.5-2.3 2.2-2.5 2.7-2.5 2.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.6 32c-2.6 2.6-6.3 4.3-10.3 4.2-8 0-14.5-6.5-14.5-14.5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M40 18.8l-4.4 4.3-4.4-4.4\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M2.4 22.5l4.4-4.4 4 4.4M14.1 27.8l7.2-14.4 6.1 14.4M24.8 23.7h-8.1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.1 27.8l7.2-14.4 6.1 14.4M24.8 23.7h-8.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAutomaticpairing);\nexport default __webpack_public_path__ + \"static/media/automaticpairing.d4208ec3cdc2eea19149ad2ff4a1d3c5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAutomaticpairingsettings(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M28.1 22.5h4.2l3.5-6.1-3.5-6h-7l-3.5 6 2.2 3.8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.1 22.5h4.2l3.5-6.1-3.5-6h-7l-3.5 6 2.2 3.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M7.9 30.8l7.2-14.4 6 14.4M18.5 26.7h-8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M7.9 30.8l7.2-14.4 6 14.4M18.5 26.7h-8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 28.8,\n cy: 16.4,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAutomaticpairingsettings);\nexport default __webpack_public_path__ + \"static/media/automaticpairingsettings.e4e19be5b0eb82089e806e3e1bb0592a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBankApi(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M3 28.8l7.3-14.5 6.1 14.5M23 28.6V14.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M39 13.8v14.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M23.2 14.1s7.6-.9 8.4 3.3c.7 5.5-8.1 4.3-8.1 4.3M5.8 24.6h7.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 39,\n cy: 8.6,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBankApi);\nexport default __webpack_public_path__ + \"static/media/bankApi.0b4f9e92d053aa3bfcb6f789c7b2efd5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBin(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M6.2 13.4h30.2M14.5 13.4V9.6c0-2.1 1.7-3.8 3.8-3.8h5.3c2.1 0 3.8 1.7 3.8 3.8v3.8M10.6 31.1V13.4M31.5 13.4v17.7c0 3.1-2.5 5.7-5.7 5.7H13.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M24.1 29.2v-9M18.1 29.2v-3.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 18.1,\n cy: 20.2,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBin);\nexport default __webpack_public_path__ + \"static/media/bin.92568282df4afbe7d3c093985e00a6c2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBriefcase(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M10 19.9h22.2M27 10.9c0-3.1-2.5-5.7-5.7-5.7h-.1c-3.1 0-5.7 2.5-5.7 5.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M5 30.3V17c0-3.1 2.5-5.7 5.7-5.7h21.1c3.1 0 5.7 2.5 5.7 5.7v13.5c0 3.1-2.5 5.7-5.7 5.7H10.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 24.9,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBriefcase);\nexport default __webpack_public_path__ + \"static/media/briefcase.3a43d60937bbc4b1b6b1b6cd694ed914.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBulkedit(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M20.7 21.7L36.5 5.9l3.9 3.9-15.8 15.9-5.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M23.6 18.8c-.8-.4-1.7-.7-2.7-.7h-7.2c-3.1 0-5.6 2.5-5.6 5.7v7.3c0 3.1 2.6 5.6 5.6 5.6h7.2c3.1 0 5.7-2.5 5.7-5.6v-7.2\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M3.8 29.4c-1-1-1.7-2.4-1.7-4v-7.2c0-3.1 2.5-5.7 5.7-5.7H15c1.2 0 2.2.3 3.1.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.4,\n cy: 30.7,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBulkedit);\nexport default __webpack_public_path__ + \"static/media/bulkedit.ccf6adaaa3ddb94f90784bc3ec39e6eb.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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 xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Predloha\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M49.439 60.083v15.309M148.625 60.083v15.309M150.882 9.734H46.941c-8.177 0-14.806 6.629-14.806 14.806v150.675c0 8.177 6.629 14.806 14.806 14.806h103.941c8.177 0 14.806-6.629 14.806-14.806V24.54c0-8.177-6.629-14.806-14.806-14.806zM54.691 33.093h88.663v25.689H54.691V33.093zm22.903 135.04h-23v-23h23v23zm0-33.592h-23v-23h23v23zm0-32.858h-23v-23h23v23zm32.736 66.45h-23v-23h23v23zm0-33.592h-23v-23h23v23zm0-32.98h-23v-23h23v23zm33.103 66.572h-23v-23h23v23zm0-33.592h-23v-23h23v23zm0-32.98h-23v-23h23v23z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalculator);\nexport default __webpack_public_path__ + \"static/media/calculator.c0c7ff2658d4af1746004c89f856de23.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCardLimit(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30.369 27.966v-2.619c0-2.288 1.523-4.142 3.403-4.142.938 0 1.791.461 2.408 1.211.612.75.995 1.785.995 2.931v2.619M35.483 36.598c2.175 0 3.937-2.237 3.937-4.996v-3.525H28.463v3.525c0 2.759 1.763 4.996 3.937 4.996h3.083zM3.1 12.815h33.438M12.652 21.818h8.223\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M22.891 28.902H8.811c-3.154 0-5.712-2.148-5.712-4.798V10.72c0-2.65 2.557-4.798 5.712-4.798h22.015c3.154 0 5.712 2.148 5.712 4.798v4.973\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 7.892,\n cy: 21.818,\n r: 1.445\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCardLimit);\nexport default __webpack_public_path__ + \"static/media/cardLimit.544f5a3b7b6cb1936b0e804b39ace15b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCaret(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M33.9 14.9L21.3 27.6 8.6 14.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaret);\nexport default __webpack_public_path__ + \"static/media/caret.a0e6fe4452dd7f130e56ba63135ca7ea.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCashbox(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"IC_4L_main\",\n d: \"M102.8 62.4s11.3 6.5 22.3 0M129.6 73.7s-7.7-6.4-3-23c2.4-8.6 9.9-28.8 9.9-28.8-6.9 2.5-15.6 10.2-15.6 10.2-3.5-6.1-11.7-10.2-11.7-10.2l-.5 15.9c-9.1-8.5-21.5-8.1-21.5-8.1.4.2 27.2 27.5 9.9 44.1-11 10.6-20.5 17.5-25.9 26.1h.9c21.1 0 38.2 17.1 38.2 38.2 0 6.7-1.7 13-4.8 18.5 2.5.3 5 .4 7.7.4 33.2 0 47.2-20.8 47-39.9-.1-19.4-13.4-26.9-30.6-43.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M71.3 99.7c-20.7.5-37.3 17.4-37.3 38.2 0 21.1 17.1 38.2 38.2 38.2 14.4 0 26.9-8 33.4-19.7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M78.1 131.5s-1-6-6-6-6.3 6-6.3 6l12.9 9.8M66.4 141.3s1 6 6 6 6.3-6 6.3-6M72.2 120.3v5.2M72.2 147.3v5.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 72.2,\n cy: 137.9,\n r: 29\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 52.7,\n cy: 137.9,\n r: 3.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 91.5,\n cy: 137.9,\n r: 3.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashbox);\nexport default __webpack_public_path__ + \"static/media/cashbox.aee8e229b88bd4cc019d252be7e8ef58.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChained(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M35.8 7c-2.9-2.9-4.5-5.1-8.1-1.5l-6.2 6.2c-2.1 2.1-1.3 3.9-1.3 3.9l3.1-3.1s3.8-4.3 7.7-.8c3.5 3.5-.5 7.2-.5 7.2l-3.4 3.6s1.8.8 3.9-1.3l6.2-6.2c3.6-3.5 1.4-5.1-1.4-8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M15.3 27.5L27.7 15\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M7.2 35.5c2.9 2.9 4.5 5.1 8.1 1.5l6.2-6.2c2.1-2.1 1.3-3.9 1.3-3.9L19.6 30s-3.8 4.3-7.7.8c-3.5-3.5.5-7.2.5-7.2l3.4-3.6s-1.8-.8-3.9 1.3l-6.2 6.2c-3.6 3.5-1.4 5.1 1.5 8z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M27.1 22.5s1.8.8 3.9-1.3l6.2-6.2c3.6-3.6 1.4-5.2-1.5-8.1-2.9-2.9-4.5-5.1-8.1-1.5l-6.2 6.2c-2.1 2.1-1.3 3.9-1.3 3.9M15.8 20s-1.8-.8-3.9 1.3l-6.2 6.2c-3.6 3.6-1.4 5.2 1.5 8.1s4.5 5.1 8.1 1.5l6.2-6.2c2.1-2.1 1.3-3.9 1.3-3.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChained);\nexport default __webpack_public_path__ + \"static/media/chained.962e844727db96cedf3d3a68a247ef54.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChangePrice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M19.9 15.9H7.5M13.7 9.6v12.5M34.6 29.5H25M13.4 32.7L31.1 13\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChangePrice);\nexport default __webpack_public_path__ + \"static/media/changePrice.b32f39e86d887ece64fb1e7f05929c1e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCheck(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M8.9 22.9l7.2 7.1 17.5-17.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.8ba7d310cfad474a9e62544ff713ad47.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckDouble(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M3.14 22.9l7.129 7.129L27.808 12.49M16.197 24.386l5.643 5.643L39.379 12.49\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckDouble);\nexport default __webpack_public_path__ + \"static/media/checkDouble.0baa9e191c060213b7897e5f48429781.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckbox(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M26.2 32.7h-9.9c-3.4 0-6.1-2.7-6.1-6.1v-9.9c0-3.4 2.7-6.1 6.1-6.1h9.9c3.4 0 6.1 2.7 6.1 6.1v9.9c0 3.4-2.7 6.1-6.1 6.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.6 22.9l3.1 2.9 6.6-7.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckbox);\nexport default __webpack_public_path__ + \"static/media/checkbox.52e056786aed2800b331fcc971cd10fe.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckboxGroup(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M12.8 24.5H9.7c-1 0-1.8-.8-1.8-1.8v-3.1c0-1 .8-1.8 1.8-1.8h3.1c1 0 1.8.8 1.8 1.8v3.1c.1.9-.8 1.8-1.8 1.8zM12.8 13H9.7c-1 0-1.8-.8-1.8-1.8V8.1c0-1 .8-1.8 1.8-1.8h3.1c1 0 1.8.8 1.8 1.8v3.1c.1 1-.8 1.8-1.8 1.8zM12.8 35.9h-3c-1 0-1.8-.8-1.8-1.8V31c0-1 .8-1.8 1.8-1.8h3.1c1 0 1.8.8 1.8 1.8v3.1c0 1-.9 1.8-1.9 1.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20.7 9.6h13.4M20.7 21.1h13.4M20.7 32.6h13.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckboxGroup);\nexport default __webpack_public_path__ + \"static/media/checkboxGroup.dadb488fd106c17ea725589b4c8f959d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCleanFilter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M34.3 4.4l-7.2 11.3-6.5.4 9.7 6.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.2 18.5l-9.7 4.8s4.4 7 10.5 9.7c2.8 1.3 6.2-4.2 6.2-4.2M29.8 27.2s-1 3.7-2.4 5.7-3.3 3.5-3.3 3.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 34.3,\n cy: 33.9,\n r: 1.7\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCleanFilter);\nexport default __webpack_public_path__ + \"static/media/cleanFilter.97cafa95247af9e65735667dae9ef167.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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 xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M30.5 30.5L12 12M30.5 12L12 30.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.0a7c34cbd8fb9cacfe2ca616de26f750.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCollapse(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M30.1 20.6h-8.6v-8.5M22.1 20.2l9-9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.4 11.2h-5.2v20.1h20.1v-5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30.1 20.6h-8.6v-8.5M22.1 20.2l9-9\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.4 11.2h-5.2v20.1h20.1v-5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCollapse);\nexport default __webpack_public_path__ + \"static/media/collapse.a398604edccd82b7bfb5b72406417711.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCollapseAll(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13,\n cy: 10.7,\n r: 1.6\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6.2 22.6l6.8-6.8 6.8 6.8M13 18v15.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6.2 22.6l6.8-6.8 6.8 6.8M13 18v15.5M36.3 10.7l-17 .1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCollapseAll);\nexport default __webpack_public_path__ + \"static/media/collapseAll.1b8168fe799fc8e6efb0b6787a862ce3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgConfirm(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M10.9 18.9l4.7 4.8L33 6.6c1.1-1.1 3-1.1 4.1 0L39.4 9c1.1 1.1 1.1 3 0 4.1L15.6 36.7 3.2 24c-1.1-1.1-1.1-3 0-4.1l1-.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.9 18.9l4.7 4.8L33 6.6c1.1-1.1 3-1.1 4.1 0L39.4 9c1.1 1.1 1.1 3 0 4.1L15.6 36.7 3.2 24c-1.1-1.1-1.1-3 0-4.1l1-.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 7.5,\n cy: 15.6,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgConfirm);\nexport default __webpack_public_path__ + \"static/media/confirm.8e80c36793babe90d94f229941432e28.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _rect, _rect2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgConnected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 456 88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad\",\n x1: -2.246,\n y1: 52.321,\n x2: 182.89,\n y2: 52.321,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#612d87\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#a21a71\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-2\",\n y1: 46.438,\n x2: 182.595,\n y2: 46.438,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-3\",\n x1: 459.638,\n y1: 27.848,\n x2: 269.397,\n y2: 27.848,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-4\",\n x1: 459.638,\n y1: 21.881,\n x2: 269.003,\n y2: 21.881,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-5\",\n x1: 224.792,\n y1: 29.671,\n x2: 235.776,\n y2: 29.671,\n gradientTransform: \"rotate(-180 230.284 29.67)\",\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-6\",\n x1: 227.261,\n y1: 29.671,\n x2: 216.277,\n y2: 29.671,\n xlinkHref: \"#grad\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M181.64 32.662c-.718.036-16.782.792-36.635-6.195-2.439-.859-4.975-1.897-7.426-2.902-14.879-6.095-27.729-11.358-37.246 9.098-2.735 5.879-4.819 11.379-6.657 16.232-6.711 17.714-17.089 37.643-40.349 37.643-20.924 0-54.322-21.875-54.322-21.875\",\n stroke: \"url(#grad)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M181.345 26.669c-.164.01-15.659.715-34.348-5.863-2.296-.808-4.651-1.772-7.144-2.794-14.714-6.026-33.027-13.529-44.961 12.119-2.828 6.079-4.753 11.769-6.828 16.638-7.121 16.713-15.767 33.978-35.26 33.978-17.023 0-53.8-22.842-53.8-22.842\",\n stroke: \"url(#grad-2)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M270.647 32.332c.137-.009 13.73-.759 31.718 6.979l1.801.781c7.25 3.155 17.733 7.718 29.065 7.718 10.552 0 21.842-3.958 31.938-16.692 18.418-23.233 30.167-23.229 34.845-23.229 17.309 0 53.176 20.475 58.374 37.975\",\n stroke: \"url(#grad-3)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M270.253 26.345c.606-.041 15.074-.895 34.482 7.454l1.824.791c14.271 6.21 35.835 15.595 53.907-7.201 20.209-25.49 33.648-25.419 39.548-25.505 14.883-.217 43.646 13.31 58.374 32.622\",\n stroke: \"url(#grad-4)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M244.83 49.715h-10.304V9.627h10.304c11.063 0 20.044 8.981 20.044 20.044s-8.981 20.044-20.044 20.044z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M267.445 34.759h-2.571V24.582h2.571a3.01 3.01 0 013.008 3.008v4.162a3.01 3.01 0 01-3.008 3.008zM207.222 9.626h10.304v40.088h-10.304c-11.063 0-20.044-8.981-20.044-20.044s8.981-20.044 20.044-20.044z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M184.608 24.582h2.571v10.177h-2.571a3.01 3.01 0 01-3.008-3.008v-4.162a3.01 3.01 0 013.008-3.008z\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 226.042,\n y: 5.616,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n transform: \"rotate(180 230.284 29.67)\",\n stroke: \"url(#grad-5)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 217.527,\n y: 5.616,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n stroke: \"url(#grad-6)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgConnected);\nexport default __webpack_public_path__ + \"static/media/connected.4806aa159f21b1b6f0286ffb9b89f564.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _rect, _rect2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgConnectionError(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 582 88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M180.416 32.398c-.718.036-16.782.792-36.635-6.195-2.439-.859-4.975-1.897-7.426-2.902-14.879-6.095-27.729-11.358-37.246 9.098-2.735 5.879-4.819 11.379-6.657 16.232-6.711 17.714-17.089 37.643-40.349 37.643-20.924 0-54.322-21.875-54.322-21.875\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M180.121 26.405c-.164.01-15.659.715-34.348-5.863-2.296-.808-4.651-1.772-7.144-2.794-14.714-6.026-33.027-13.529-44.961 12.119-2.828 6.079-4.753 11.769-6.828 16.638-7.121 16.713-15.767 33.978-35.26 33.978-17.024 0-53.801-22.842-53.801-22.842M395.642 32.068c.137-.009 13.73-.759 31.718 6.979l1.801.781c7.25 3.155 17.733 7.718 29.065 7.718 10.552 0 21.842-3.958 31.938-16.692 18.418-23.233 30.167-23.229 34.845-23.229 17.309 0 53.176 20.475 58.374 37.975\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M395.248 26.081c.606-.041 15.074-.895 34.482 7.454l1.824.791c14.271 6.21 35.835 15.595 53.907-7.201 20.208-25.49 33.647-25.419 39.547-25.505 14.883-.217 43.646 13.31 58.374 32.622\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M283.667 11.387c10.493 0 19 8.507 19 19s-8.507 19-19 19-19-8.507-19-19 8.507-19 19-19\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red_compl\",\n d: \"M293.192 36.382c.4.39.4 1.02.01 1.42h-.01l-2.12 2.12a.996.996 0 01-1.41 0l-6-6-6 6a.996.996 0 01-1.41 0l-2.12-2.13a.996.996 0 010-1.41l6-6-6-6a.996.996 0 010-1.41l2.12-2.12a.996.996 0 011.41 0l6 6 6-6a.996.996 0 011.41 0h.01l2.12 2.12c.39.39.39 1.02 0 1.41l-6 6.01 5.99 5.99z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M369.909 49.581h-10.304V9.493h10.304c11.063 0 20.044 8.981 20.044 20.044s-8.981 20.044-20.044 20.044zM392.524 34.625h-2.571V24.448h2.571a3.01 3.01 0 013.008 3.008v4.162a3.01 3.01 0 01-3.008 3.008zM332.753 15.934h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM332.753 37.222h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM205.908 9.492h10.304V49.58h-10.304c-11.063 0-20.044-8.981-20.044-20.044s8.981-20.044 20.044-20.044z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M183.293 24.448h2.571v10.177h-2.571a3.01 3.01 0 01-3.008-3.008v-4.162a3.01 3.01 0 013.008-3.008z\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"SI_4L_stroke\",\n x: 351.121,\n y: 5.482,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n transform: \"rotate(180 355.363 29.537)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"SI_4L_stroke\",\n x: 216.213,\n y: 5.482,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgConnectionError);\nexport default __webpack_public_path__ + \"static/media/connectionError.c5a917fddb03a910fecd454d7490ab36.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _rect, _rect2, _path6, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgConnectionWarn(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 582 88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M180.416 32.398c-.718.036-16.782.792-36.635-6.195-2.439-.859-4.975-1.897-7.426-2.902-14.879-6.095-27.729-11.358-37.246 9.098-2.735 5.879-4.819 11.379-6.657 16.232-6.711 17.714-17.089 37.643-40.349 37.643-20.924 0-54.322-21.875-54.322-21.875\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M180.121 26.405c-.164.01-15.659.715-34.348-5.863-2.296-.808-4.651-1.772-7.144-2.794-14.714-6.026-33.027-13.529-44.961 12.119-2.828 6.079-4.753 11.769-6.828 16.638-7.121 16.713-15.767 33.978-35.26 33.978-17.024 0-53.801-22.842-53.801-22.842M395.642 32.068c.137-.009 13.73-.759 31.718 6.979l1.801.781c7.25 3.155 17.733 7.718 29.065 7.718 10.552 0 21.842-3.958 31.938-16.692 18.418-23.233 30.167-23.229 34.845-23.229 17.309 0 53.176 20.475 58.374 37.975\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M395.248 26.081c.606-.041 15.074-.895 34.482 7.454l1.824.791c14.271 6.21 35.835 15.595 53.907-7.201 20.208-25.49 33.647-25.419 39.547-25.505 14.883-.217 43.646 13.31 58.374 32.622M369.909 49.581h-10.304V9.493h10.304c11.063 0 20.044 8.981 20.044 20.044s-8.981 20.044-20.044 20.044z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M392.524 34.625h-2.571V24.448h2.571a3.01 3.01 0 013.008 3.008v4.162a3.01 3.01 0 01-3.008 3.008zM332.753 15.934h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM332.753 37.222h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM205.908 9.492h10.304V49.58h-10.304c-11.063 0-20.044-8.981-20.044-20.044s8.981-20.044 20.044-20.044z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M183.293 24.448h2.571v10.177h-2.571a3.01 3.01 0 01-3.008-3.008v-4.162a3.01 3.01 0 013.008-3.008z\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_main\",\n x: 351.121,\n y: 5.482,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n transform: \"rotate(180 355.363 29.537)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_main\",\n x: 216.213,\n y: 5.482,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M298.636 44.39l-18.778-31.896c-.621-1.05-1.986-1.403-3.055-.802a2.105 2.105 0 00-.811.802L257.223 44.39c-.621 1.05-.248 2.387.812 2.998.334.191.726.286 1.117.286h37.547c1.232 0 2.224-.983 2.224-2.186 0-.391-.096-.764-.286-1.098zm-18.693-1.833a3.146 3.146 0 01-2.215.897c-1.728 0-3.131-1.375-3.131-3.074s1.403-3.084 3.131-3.084 3.141 1.384 3.141 3.084c0 .85-.344 1.623-.926 2.177zm.926-9.289c0 .687-.573 1.251-1.279 1.251h-3.714a1.262 1.262 0 01-1.279-1.251V22.222c0-.687.573-1.251 1.279-1.251h3.704a1.27 1.27 0 011.289 1.251v11.046z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange_compl\",\n d: \"M280.869 40.38c0 .85-.344 1.623-.926 2.177a3.146 3.146 0 01-2.215.897c-1.728 0-3.131-1.375-3.131-3.074s1.403-3.084 3.131-3.084 3.141 1.384 3.141 3.084zM280.869 22.222v11.046c0 .687-.573 1.251-1.279 1.251h-3.714a1.262 1.262 0 01-1.279-1.251V22.222c0-.687.573-1.251 1.279-1.251h3.704a1.27 1.27 0 011.289 1.251z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgConnectionWarn);\nexport default __webpack_public_path__ + \"static/media/connectionWarn.88357da6ab59c156a33dc5c73a51cf75.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _rect, _rect2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDisconnected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 342 88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad\",\n x1: -2.721,\n y1: 41.741,\n x2: 94.115,\n y2: 41.741,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#612d87\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#a21a71\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-2\",\n x1: -2.975,\n y1: 31.853,\n x2: 94.061,\n y2: 31.853,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-3\",\n x1: 344.072,\n y1: 39.679,\n x2: 246.257,\n y2: 39.679,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-4\",\n x1: 344.491,\n y1: 33.248,\n x2: 245.857,\n y2: 33.248,\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-5\",\n x1: 201.546,\n y1: 30.387,\n x2: 212.53,\n y2: 30.387,\n gradientTransform: \"rotate(-180 207.038 30.387)\",\n xlinkHref: \"#grad\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad-6\",\n x1: 138.526,\n y1: 30.387,\n x2: 127.542,\n y2: 30.387,\n xlinkHref: \"#grad\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M92.865 33.409c-4.067.071-19.268-.129-36.595-6.226-2.439-.858-4.974-1.897-7.426-2.901-14.879-6.096-27.73-11.359-37.246 9.098-2.735 5.879-4.819 11.38-6.658 16.232C2.857 55.11.954 60.134-1.471 64.662\",\n stroke: \"url(#grad)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M-1.725 50.561c.346-.905.697-1.83 1.055-2.775 1.875-4.949 4-10.559 6.828-16.638C18.091 5.5 36.404 13.001 51.119 19.029c2.493 1.021 4.847 1.985 7.144 2.794 16.353 5.755 31.025 5.934 34.548 5.883\",\n stroke: \"url(#grad-2)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M342.822 30.833c-.265.329-.532.662-.8 1-10.096 12.734-21.385 16.692-31.938 16.692-11.332 0-21.814-4.562-29.065-7.718l-1.801-.781c-18.093-7.783-31.576-6.987-31.712-6.979\",\n stroke: \"url(#grad-3)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M247.107 28.462c.606-.042 15.074-.896 34.482 7.453l1.824.791c14.271 6.21 35.835 15.595 53.907-7.201a140.317 140.317 0 015.921-7.008\",\n stroke: \"url(#grad-4)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M221.584 50.431H211.28V10.343h10.304c11.063 0 20.044 8.981 20.044 20.044s-8.981 20.044-20.044 20.044zM244.199 35.476h-2.571V25.299h2.571a3.01 3.01 0 013.008 3.008v4.162a3.01 3.01 0 01-3.008 3.008zM184.427 16.785h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM184.427 38.072h18.369v5.917h-18.369a2.96 2.96 0 01-2.959-2.959 2.96 2.96 0 012.959-2.959zM118.488 10.343h10.304v40.088h-10.304c-11.063 0-20.044-8.981-20.044-20.044s8.981-20.044 20.044-20.044zM95.873 25.298h2.571v10.177h-2.571a3.01 3.01 0 01-3.008-3.008v-4.162a3.01 3.01 0 013.008-3.008z\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 202.796,\n y: 6.332,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n transform: \"rotate(180 207.038 30.387)\",\n stroke: \"url(#grad-5)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 128.792,\n y: 6.332,\n width: 8.484,\n height: 48.11,\n rx: 4.219,\n ry: 4.219,\n stroke: \"url(#grad-6)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisconnected);\nexport default __webpack_public_path__ + \"static/media/disconnected.f53222dcf0995dad5f4af86b922f354d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2, _circle3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgContainsTwoForms(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M32.8 28.5c1.7-.5 2.9-2.1 2.9-4V9c0-2.3-1.9-4.2-4.2-4.2H20.4c-1.1 0-2.1.4-2.8 1.1M22.4 24.5h-10\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M11.4 11.3h12.3c2.6 0 4.6 2.1 4.6 4.6V33c0 2.6-2.1 4.6-4.6 4.6H11.4c-2.6 0-4.6-2.1-4.6-4.6V15.9c0-2.5 2.1-4.6 4.6-4.6z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M17.7 11.3v5.6M23.6 11.3v5.6M11.7 11.3v5.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 17.7,\n cy: 17.7,\n r: 1.9\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 11.7,\n cy: 17.7,\n r: 0.7\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 23.6,\n cy: 17.7,\n r: 0.7\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M12.4 29.7h10\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgContainsTwoForms);\nexport default __webpack_public_path__ + \"static/media/containsTwoForms.c7a36f25ec36197ed2b4bc40440a0263.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCopy(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M31.1 37.5H18.9c-2.5 0-4.6-2.1-4.6-4.6V15.7c0-2.5 2.1-4.6 4.6-4.6h12.4c2.5 0 4.6 2.1 4.6 4.6v17.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20 27.6h10.5M24.8 21.7h5.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 20,\n cy: 21.7,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.6 28.7c-1.7-.5-2.9-2.1-2.9-4V9.2C6.6 6.9 8.5 5 10.8 5H22c1.1 0 2.1.4 2.8 1.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopy);\nexport default __webpack_public_path__ + \"static/media/copy.16e770a5e056b809d0872cc36ada49b5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCopyLink(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M15.3 27.5L27.7 15M27.2 22.5s1.8.8 3.9-1.3l6.2-6.2c3.6-3.6 1.4-5.2-1.5-8.1s-4.5-5.1-8.1-1.5l-6.2 6.2c-2.1 2.1-1.3 3.9-1.3 3.9M15.8 20s-1.8-.8-3.9 1.3l-6.2 6.2c-3.6 3.6-1.4 5.2 1.5 8.1s4.5 5.1 8.1 1.5l6.2-6.2c2.1-2.1 1.3-3.9 1.3-3.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopyLink);\nexport default __webpack_public_path__ + \"static/media/copyLink.3d49c4f9d11b07681ccbf819dc102c19.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCopySimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M20.128 34.999h9.565a3.344 3.344 0 003.344-3.344V18.34a3.344 3.344 0 00-3.344-3.344h-9.565a3.344 3.344 0 00-3.344 3.344v13.316a3.345 3.345 0 003.344 3.343z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M12.244 29.284a3.517 3.517 0 01-2.481-3.36V12.838a3.515 3.515 0 013.515-3.515h9.426a3.5 3.5 0 012.386.934\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopySimple);\nexport default __webpack_public_path__ + \"static/media/copySimple.e04e0ca916f523f1d014b4fa355182c7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCorrection(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M38.8 15.6c.7 4.1-2.1 8-6.2 8.9l-11.3 2.6c-.3.1-.6 0-.8-.2l-3.3-3.2c-.3-.3-.4-.9-.1-1.2 1.7-2.2 6.9-9.2 7.3-9.7 1.3-1.8 2.8-3.1 5-3.6 4.3-1 8.7 1.9 9.4 6.4zM14.1 27.4l1.4 1.3c.2.2.1.6-.2.7l-1.7.4c-.1 0-.3 0-.3-.1l-.6-.5c-.2-.1-.2-.4 0-.5l.9-1.3c.1-.1.3-.1.5 0z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 31,\n cy: 16.9,\n r: 3.1\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M3.6 33.8h9.5\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.1,\n cy: 19.5,\n r: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCorrection);\nexport default __webpack_public_path__ + \"static/media/correction.67bd031ee017c08a5bfc55a623f1c271.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCosts(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M22.3 34.4C14.2 36.1 6.2 31 4.5 22.9s3.3-16 11.4-17.8c7.4-1.6 14.4 2.2 16.9 9.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M22.2 14.2c-7.6-2.2-7.6 5.8-2.8 5.7 4.7-.1 5.3 7.5-3.1 5.2M19.2 12.5v.7M19.2 26.2v.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 27.8,\n cy: 19.9,\n r: 1.7\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M38.8 33.1l-5.5 5.5-5.5-5.5M33.3 37.1V19.7\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 10.6,\n cy: 20,\n r: 1.7,\n strokeWidth: 0\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCosts);\nexport default __webpack_public_path__ + \"static/media/costs.153dad7d7a999f36f2fc599ff056be5b.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _circle, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCreateStatement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n \"data-name\": \"Vrstva 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.31 5.709H15.284a5.675 5.675 0 00-5.675 5.675v11.374M33.461 22.759v-9.84M26.31 5.812l7.111 7.11M25.426 7.045v6.733h7.111\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 15.89,\n cy: 13.54,\n r: 1.445\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.178 29.074H14.891M21.535 22.43v13.287\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.178 29.074H14.891M21.535 22.43v13.287\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCreateStatement);\nexport default __webpack_public_path__ + \"static/media/createStatement.436140eda6d2f23b9737909ccccb7e99.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCursor(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 12.1,\n cy: 5.7,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.9 27.3l-7.5.2 2.8 6 1.3 2.9-3.7 1.8-4.4-9.2-5.9 7.9V10.4L29 23\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCursor);\nexport default __webpack_public_path__ + \"static/media/cursor.3eb037a781aefe39e76f0cfbc926f6d9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCustomerPortal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_sub\",\n d: \"M29.487 31.956V16.017h5.159v8.263M18.836 31.956V9.693h5.158v22.298M8.184 31.956V21.927h5.159v10.029\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 34.646,\n cy: 28.571,\n r: 1.399\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M5.489 32.826H37.03\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomerPortal);\nexport default __webpack_public_path__ + \"static/media/customerPortal.7d07377d48ce334ce427f2430a6e3747.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _linearGradient2, _path, _path2, _path3, _linearGradient3, _path4, _linearGradient4, _path5, _linearGradient5, _path6, _linearGradient6, _path7, _linearGradient7, _path8, _linearGradient8, _path9, _linearGradient9, _path10, _linearGradient10, _path11, _linearGradient11, _path12, _linearGradient12, _path13, _linearGradient13, _path14, _path15;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAccountingJournal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7642.318,\n y1: -968.737,\n x2: -7641.318,\n y2: -968.737\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000026870610020573485900000014812627570634251656_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.016,\n y1: 56.423,\n x2: 65.296,\n y2: 56.423\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000026870610020573485900000014812627570634251656_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.641 56.423h35.03\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M48.142 18.506s-.384-2.221-2.221-2.221c-1.838 0-2.331 2.221-2.331 2.221l4.772 3.618M43.809 22.124s.384 2.221 2.221 2.221c1.838 0 2.331-2.221 2.331-2.221M45.976 14.392v1.893M45.976 24.346v1.892\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M64.671 56.423V4.788H23.765v6.041M23.765 27.599v-4.016M23.765 44.298v-3.77M23.765 56.423v-7.665M23.765 36.069v-4.011M23.765 19.124v-3.836\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000029741800879746093930000008295998318181366180_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 19.704,\n y1: 21.353,\n x2: 27.246,\n y2: 21.353\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 21.351c0 .87-1.463 2.26-3.265 2.26-1.808 0-3.027-1.012-3.027-2.26 0-1.242 1.219-2.254 3.027-2.254 1.802-.001 3.265 1.387 3.265 2.254z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000029741800879746093930000008295998318181366180_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000098182650671108894500000016496478155077404596_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 19.704,\n y1: 13.061,\n x2: 27.246,\n y2: 13.061\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 13.058c0 .87-1.463 2.26-3.265 2.26-1.808 0-3.027-1.012-3.027-2.26 0-1.242 1.219-2.254 3.027-2.254 1.802 0 3.265 1.387 3.265 2.254z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000098182650671108894500000016496478155077404596_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000052102278889048555330000001928602132186416298_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 19.704,\n y1: 29.827,\n x2: 27.246,\n y2: 29.827\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 29.824c0 .87-1.463 2.26-3.265 2.26-1.808 0-3.027-1.012-3.027-2.26 0-1.242 1.219-2.254 3.027-2.254 1.802 0 3.265 1.388 3.265 2.254z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000052102278889048555330000001928602132186416298_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000140732741134974319970000011834306214895640763_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 19.704,\n y1: 38.301,\n x2: 27.246,\n y2: 38.301\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 38.298c0 .87-1.463 2.26-3.265 2.26-1.808 0-3.027-1.012-3.027-2.26 0-1.242 1.219-2.254 3.027-2.254 1.802 0 3.265 1.388 3.265 2.254z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000140732741134974319970000011834306214895640763_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000147206937215328013200000006831642555696751764_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 19.704,\n y1: 46.528,\n x2: 27.246,\n y2: 46.528\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 46.525c0 .87-1.463 2.26-3.265 2.26-1.808 0-3.027-1.012-3.027-2.26 0-1.242 1.219-2.254 3.027-2.254 1.802 0 3.265 1.387 3.265 2.254z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000147206937215328013200000006831642555696751764_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000111903599660070604680000000470807529458898616_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.996,\n y1: 17.204,\n x2: 29.058,\n y2: 17.204\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 21.351s4.078-4.214 0-8.292\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000111903599660070604680000000470807529458898616_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000099650338791013655720000006148506649080083594_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.996,\n y1: 8.915,\n x2: 29.058,\n y2: 8.915\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 13.061s4.078-4.214 0-8.292\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000099650338791013655720000006148506649080083594_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient10 || (_linearGradient10 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000138542257909067670230000007255681159146970283_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.996,\n y1: 25.681,\n x2: 29.058,\n y2: 25.681\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 29.827s4.078-4.214 0-8.292\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000138542257909067670230000007255681159146970283_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient11 || (_linearGradient11 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000150084963197623727950000014750120598098579093_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.996,\n y1: 34.157,\n x2: 29.058,\n y2: 34.157\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 38.304s4.078-4.214 0-8.292\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000150084963197623727950000014750120598098579093_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient12 || (_linearGradient12 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000144330425417538343820000009301024320840443286_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.996,\n y1: 42.447,\n x2: 29.058,\n y2: 42.447\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.621 46.593s4.078-4.214 0-8.292\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000144330425417538343820000009301024320840443286_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient13 || (_linearGradient13 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000132077848266340971740000007926448291018660012_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 25.997,\n y1: 49.923,\n x2: 29.057,\n y2: 49.923\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.622 46.525l.033.033c2.533 2.566 1.86 5.182 1.012 6.763\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000132077848266340971740000007926448291018660012_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M64.668 53.32H26.869a3.114 3.114 0 00-3.105 3.105 3.114 3.114 0 003.105 3.105h37.799v-6.21zM48.635 29.827h-5.319c-5.231 0-9.512-4.28-9.512-9.512 0-5.231 4.28-9.512 9.512-9.512h5.319c5.231 0 9.512 4.28 9.512 9.512s-4.28 9.512-9.512 9.512z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAccountingJournal);\nexport default __webpack_public_path__ + \"static/media/accountingJournal.4780d4355b5042d239d4a54e10ef4bd5.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _linearGradient2, _path2, _linearGradient3, _path3, _path4, _path5, _path6, _linearGradient4, _circle, _g, _linearGradient5, _circle2, _linearGradient6, _path7, _path8;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBalanceSheet(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7642.318,\n y1: -1052.43,\n x2: -7641.318,\n y2: -1052.43\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M42.516 50.393a2.522 2.522 0 01-2.514-2.514V7.744a2.522 2.522 0 012.514-2.514 2.522 2.522 0 012.514 2.514v40.135a2.521 2.521 0 01-2.514 2.514zM26.301 54.283v-3.325l13.7-5.71M45.031 45.158l13.915 5.8v3.325\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000109732520952091048830000016820852366237027496_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 44.406,\n y1: 9.796,\n x2: 69.761,\n y2: 9.796\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.136 7.993a3.595 3.595 0 01-3.115 3.565 3.358 3.358 0 01-1.365-.07 3.6 3.6 0 01-2.735-3.495h-16.89\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000109732520952091048830000016820852366237027496_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000151532493316809704540000003204514366152870563_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 15.621,\n y1: 9.796,\n x2: 40.626,\n y2: 9.796\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.001 7.993h-16.54a3.601 3.601 0 01-3.09 3.565 3.384 3.384 0 01-1.365-.065 3.602 3.602 0 01-2.76-3.5\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000151532493316809704540000003204514366152870563_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M7.862 39.69L19.676 9.796 31.489 39.69M53.51 39.69L65.324 9.796 77.138 39.69\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M66.698 31.618s-.243-1.408-1.408-1.408-1.478 1.408-1.478 1.408l3.025 2.294M63.951 33.912s.243 1.408 1.408 1.408 1.478-1.408 1.478-1.408M65.324 29.01v1.2M65.324 35.321v1.199\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M66.698 31.618s-.243-1.408-1.408-1.408-1.478 1.408-1.478 1.408l3.025 2.294M63.951 33.912s.243 1.408 1.408 1.408 1.478-1.408 1.478-1.408M65.324 29.01v1.2M65.324 35.321v1.199\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000101790898620914266540000009185332317335956658_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 57.889,\n y1: 32.695,\n x2: 72.76,\n y2: 32.695\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 65.324,\n cy: 32.695,\n r: 6.811,\n fill: \"none\",\n stroke: \"url(#SVGID_00000101790898620914266540000009185332317335956658_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M21.034 31.618s-.243-1.408-1.408-1.408-1.478 1.408-1.478 1.408l3.025 2.294M18.287 33.912s.243 1.408 1.408 1.408 1.478-1.408 1.478-1.408M19.66 29.01v1.2M19.66 35.321v1.199\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M21.034 31.618s-.243-1.408-1.408-1.408-1.478 1.408-1.478 1.408l3.025 2.294M18.287 33.912s.243 1.408 1.408 1.408 1.478-1.408 1.478-1.408M19.66 29.01v1.2M19.66 35.321v1.199\"\n })))), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000091725434891256946530000012802016857679293316_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 12.225,\n y1: 32.695,\n x2: 27.096,\n y2: 32.695\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 19.66,\n cy: 32.695,\n r: 6.811,\n fill: \"none\",\n stroke: \"url(#SVGID_00000091725434891256946530000012802016857679293316_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000131331687549055479940000008990379494986741648_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.372,\n y1: 56.677,\n x2: 61.709,\n y2: 56.677\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.692 59.068H26.389a2.399 2.399 0 01-2.392-2.392v0a2.399 2.399 0 012.392-2.392h32.303a2.399 2.399 0 012.392 2.392v0a2.399 2.399 0 01-2.392 2.392z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000131331687549055479940000008990379494986741648_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M31.491 39.653H7.861l.001-.002v.039c0 3.3 2.7 6 6 6h11.627c3.3 0 6-2.7 6-6v-.039l.002.002zM77.139 39.653h-23.63l.001-.002v.039c0 3.3 2.7 6 6 6h11.627c3.3 0 6-2.7 6-6v-.039l.002.002z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBalanceSheet);\nexport default __webpack_public_path__ + \"static/media/balanceSheet.addf4799d7a7531b30a67739022dbdf1.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCbaEntryLedger(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 27.312,\n y1: 56.413,\n x2: 63.592,\n y2: 56.413\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M27.937 56.413h35.029\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M37.165 39.597h13.192M39.364 42.366h8.469\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M62.966 53.311V4.778H22.034l.028 51.365\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M62.966 53.31H25.167a3.114 3.114 0 00-3.105 3.105 3.114 3.114 0 003.105 3.105h37.799v-6.21zM24.831 38.216v4.157M24.831 16.183v4.157M52.802 46.784H34.476a2.93 2.93 0 01-2.93-2.93v-5.5a2.93 2.93 0 012.93-2.93h18.326a2.93 2.93 0 012.93 2.93v5.5a2.93 2.93 0 01-2.93 2.93z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M39.445 23.906h10.432M47.421 20.603l3.335 3.335-3.375 3.533M47.1 16.583H36.292M38.749 19.886l-3.336-3.336 3.375-3.533\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCbaEntryLedger);\nexport default __webpack_public_path__ + \"static/media/cbaEntryLedger.e1b4f2d7694d5f575a06005a75559f8a.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _linearGradient2, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCustomerPortalInvoicing(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 20.422,\n y1: -1486.604,\n x2: 64.577,\n y2: -1486.604,\n gradientTransform: \"matrix(1 0 0 -1 0 -1432.673)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.407 47.809v4.234c-.035 4.963-5.222 4.799-5.222 4.799H21.047v3.212h42.905l-.047-3.212H51.768s-5.222.176-5.222-4.799v-4.234\",\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000138542085464439799280000012903100220084120978_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 8.957,\n y1: -1443.227,\n x2: 76.042,\n y2: -1443.227,\n gradientTransform: \"matrix(1 0 0 -1 0 -1432.673)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000138542085464439799280000012903100220084120978_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M9.582 10.554h65.835\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M9.193 4.246h66.615v42.896H9.193z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main_fill\",\n d: \"M22.151 25.043c-.164-.18-.419-.27-.762-.27-.344 0-.598.09-.762.27-.164.18-.247.411-.247.694a.97.97 0 00.247.682c.164.18.419.27.762.27.344 0 .598-.09.762-.27a.974.974 0 00.247-.682c0-.284-.082-.515-.247-.694zM39.336 29.088c-.16-.394-.389-.739-.688-1.037s-.659-.533-1.083-.705-.908-.258-1.45-.258c-.527 0-1.005.086-1.432.258a3.277 3.277 0 00-1.095.705 3.085 3.085 0 00-.694 1.037c-.16.394-.241.808-.241 1.243v.264c0 .428.076.835.229 1.221.153.386.378.729.676 1.032a3.15 3.15 0 001.089.71c.428.172.917.258 1.467.258.557 0 1.05-.086 1.479-.258s.789-.409 1.083-.71.518-.646.671-1.032c.153-.386.252-.792.252-1.221v-.264c0-.435-.103-.849-.263-1.243zm-1.788 2.298a1.444 1.444 0 01-.539.642c-.237.153-.535.229-.894.229-.344 0-.638-.076-.882-.229s-.428-.367-.55-.642a2.222 2.222 0 01-.183-.917c0-.359.063-.674.189-.945.126-.271.311-.485.556-.642.244-.157.535-.235.871-.235.344 0 .636.078.877.235.241.157.424.37.55.642s.189.586.189.945a2.251 2.251 0 01-.184.917zM24.151 31.774h1.88v1.867h-1.88zM21.458 27.306c-.344.009-.598.09-.762.27-.164.18-.247.411-.247.694v5.318h1.879v-6.281h-.87zM44.563 29.989l2.063-2.682h-1.925l-2.28 2.986V25.22h-.836c-.344 0-.598.09-.762.27-.165.18-.246.411-.246.694v7.403h1.845v-2.934h.607L45 33.587h2.075l-2.512-3.598zM48.93 25.218c-.338.016-.584.09-.744.27s-.241.411-.241.694v7.407h1.836v-8.37h-.851z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main_fill\",\n d: \"M31.517 27.702a3.703 3.703 0 00-.854-1.312 4.096 4.096 0 00-1.421-.905c-.565-.222-1.227-.333-1.983-.333h-2.097c-.344 0-.598.09-.762.27-.164.18-.247.411-.247.694v4.75h1.88v-3.947h1.318c.397 0 .752.054 1.066.16.313.107.579.268.797.481.218.214.386.474.505.779.118.306.178.653.178 1.043 0 .278-.033.539-.098.782a2.205 2.205 0 01-.553.929 2.23 2.23 0 01-.797.505 3.005 3.005 0 01-1.066.178h-.428v1.86h.305c.757 0 1.417-.117 1.983-.349a4.122 4.122 0 001.421-.945 3.93 3.93 0 00.854-1.329c.187-.489.281-.989.281-1.501v-.252a4.344 4.344 0 00-.282-1.558zM56.374 28.309a2.086 2.086 0 00-1.003-.831c-.439-.183-.971-.275-1.622-.275-.222 0-.433-.001-.71.006l-.488.028a1.783 1.783 0 00-.253.048.753.753 0 00-.376.214c-.164.18-.246.41-.246.692v.649a55.616 55.616 0 012.316-.08c.336 0 .581.078.734.235s.229.4.229.728v.012h-1.134c-.558 0-1.05.07-1.479.212-.428.141-.761.359-.997.653-.237.294-.355.671-.355 1.129 0 .421.096.782.286 1.083.191.302.457.533.797.694s.736.241 1.186.241l.06-.001.09.001c.429 0 .792-.056 1.09-.166.298-.111.531-.269.701-.475.023-.028.044-.058.065-.088v.569h1.456v-3.851c-.003-.581-.118-1.056-.347-1.427zm-1.421 2.951c-.015.313-.076.558-.183.734a.908.908 0 01-.407.373 1.372 1.372 0 01-.556.109c-.321 0-.568-.078-.739-.235a.79.79 0 01-.258-.613c0-.268.086-.479.258-.636s.418-.235.739-.235h1.146v.503zM64.372 25.49c-.164-.18-.419-.27-.762-.27h-.837v2.607a1.972 1.972 0 00-.721-.481c-.296-.118-.619-.177-1.021-.21-.093-.007-.188-.017-.286-.014-.446.014-.844.082-1.203.246a2.54 2.54 0 00-.923.688 3.507 3.507 0 00-.59 1.026 3.55 3.55 0 00-.206 1.26v.264c0 .451.073.871.218 1.261.145.389.35.728.613 1.014s.579.51.946.671a2.978 2.978 0 001.363.236 3.474 3.474 0 001.17-.224c.382-.152.686-.375.911-.667.044-.057.083-.118.119-.18v.869h1.456v-7.403c-.001-.283-.083-.514-.247-.693zm-1.553 5.14c0 .344-.071.638-.212.882-.142.244-.33.43-.567.556s-.493.189-.768.189a1.58 1.58 0 01-.825-.218 1.5 1.5 0 01-.573-.619 2.062 2.062 0 01-.206-.951c0-.359.069-.674.206-.945.137-.271.326-.483.567-.636.241-.153.514-.229.82-.229.275 0 .531.061.768.183.237.123.428.296.573.521s.218.507.218.842l-.001.425z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomerPortalInvoicing);\nexport default __webpack_public_path__ + \"static/media/customerPortalInvoicing.98390c967883a172b99ebdc87b3e21d8.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _path3, _linearGradient2, _path4, _linearGradient3, _path5, _path6, _linearGradient4, _ellipse, _linearGradient5, _ellipse2, _path7, _linearGradient6, _path8, _path9, _linearGradient7, _path10;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCustomerPortalPayment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7642.318,\n y1: -1223.085,\n x2: -7641.318,\n y2: -1223.085\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M34.958 20.329c-1.101-.933-8.776-.674-2.577 3.061M19.227 14.918s2.222.071 4.755-.818c2.533-.889 3.688-1.353 5.466-1.632s9.954.787 10.932 1.498\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M47.061 18.834s-1.289-.789-2.088.161c-.799.95.109 2.192.109 2.192l3.902-.858M47.006 22.681s1.289.789 2.088-.161c.799-.95-.109-2.192-.109-2.192M44.041 18.125l.956.841M49.071 22.549l.956.841\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M47.061 18.834s-1.289-.789-2.088.161c-.799.95.109 2.192.109 2.192l3.902-.858M47.006 22.681s1.289.789 2.088-.161c.799-.95-.109-2.192-.109-2.192M44.041 18.125l.956.841M49.071 22.549l.956.841\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000077286274236449769340000004203360460992570758_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 33.763,\n y1: 20.784,\n x2: 64.288,\n y2: 20.784\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000077286274236449769340000004203360460992570758_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M34.388 29.991l7.155 6.127 1.536 1.35 1.062.934.773-.92 1.823-2.168 16.927-20.128-13.669-12.02\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000016758753545345921400000005783106692340931465_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.509,\n y1: 13.192,\n x2: 50.62,\n y2: 13.192\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000016758753545345921400000005783106692340931465_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M49.995 3.166L33.134 23.218\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M48.451 8.851L35.822 23.866M58.442 17.638L45.814 32.653M39.302 30.666l2.601 2.288M52.354 8.543l5.794 5.096M45.814 32.653a2.732 2.732 0 00-3.911.301M58.442 17.638a2.88 2.88 0 01-.294-3.999M36.752 25.608a2.85 2.85 0 00-.939-1.75\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000036953357272048242580000008534753332377408926_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 39.389,\n y1: 27.841,\n x2: 43.035,\n y2: 27.841\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 41.212,\n cy: 27.841,\n rx: 1.198,\n ry: 1.225,\n fill: \"none\",\n stroke: \"url(#SVGID_00000036953357272048242580000008534753332377408926_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000026858334004837058950000013843882371932406706_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.288,\n y1: 13.693,\n x2: 54.934,\n y2: 13.693\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _ellipse2 || (_ellipse2 = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 53.111,\n cy: 13.693,\n rx: 1.198,\n ry: 1.225,\n fill: \"none\",\n stroke: \"url(#SVGID_00000026858334004837058950000013843882371932406706_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M52.366 8.528a2.732 2.732 0 01-3.911.301M56.653 56.553c-.448-.748-1.048-1.199-2.032-1.555-2.199-.798-11.178.206-14.59-.697-3.037-.803-9.882-7.763-9.882-7.763a2.398 2.398 0 01-.38-3.359 2.398 2.398 0 013.359-.38l6.355 4.709a3.285 3.285 0 001.955.645h9.675a.856.856 0 000-1.71h-5.357c-1.107 0-2.101-.499-2.004-2.004.025-1.039.879-1.565 1.973-1.582 3.571-.054 13.157.01 13.867.032 3.705.116 5.32 4.474 8.581 12.869\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000019676193497074142620000005573312342241608613_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -8327.374,\n y1: -7394.973,\n x2: -8322.146,\n y2: -7394.973,\n gradientTransform: \"scale(-1 1) rotate(-83.864 -45.078 -8266.748)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n transform: \"scale(-1) rotate(83.864 65.025 -70.323)\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000019676193497074142620000005573312342241608613_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M61.179 51.444h3.979v13.931h-3.979z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M18.761 26.364s3.955-1.422 6.043-.683c4.448 1.738 5.607 2.33 6.532 2.783.903.443 6.832 3.996 8.055 1.443 1.032-2.155-.899-3.015-1.367-3.291-2.039-1.201-5.644-3.226-5.644-3.226\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000058571060914100741920000003758920348705062045_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 106.429,\n y1: 236.396,\n x2: 111.659,\n y2: 236.396,\n gradientTransform: \"matrix(1 0 0 -1 -92.362 256.725)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000058571060914100741920000003758920348705062045_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M14.693 13.363h3.979v13.931h-3.979z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomerPortalPayment);\nexport default __webpack_public_path__ + \"static/media/customerPortalPayment.ac35ac005aa0c1bfe5fbcba143b0bcf1.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCustomerSupport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 44 125\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n x1: 29.308,\n y1: 20.687,\n x2: 38.105,\n y2: 20.687,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--main-brand-gradient-start, #4701bc)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"var(--main-brand-gradient-end, #df0552)\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"b\",\n x1: 29.309,\n y1: 104.854,\n x2: 38.103,\n y2: 104.854,\n xlinkHref: \"#a\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"c\",\n x1: 0,\n y1: 62.5,\n x2: 44,\n y2: 62.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--main-brand-gradient-start, #4701bc)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"var(--main-brand-gradient-end, #df0552)\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"line-gradient\",\n stroke: \"url(#a)\",\n fill: \"none\",\n strokeMiterlimit: 10,\n strokeWidth: 2.5,\n d: \"M36.873 2.187l-6.333 37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#b)\",\n fill: \"none\",\n strokeMiterlimit: 10,\n strokeWidth: 2.5,\n d: \"M30.54 87.187l6.333 35.333\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.281 2.5c.986 0 4.11.652 5.997 1.111 2.618.655 5.537 2.632 5.196 6.057l-3.832 22.533a2.235 2.235 0 00-.02.143c-.308 2.772-2.656 4.863-5.461 4.863-.178 0-.358-.009-.536-.026l-8.843-1.606a3.795 3.795 0 00-.584-.047c-.998 0-1.936.389-2.641 1.097a3.682 3.682 0 00-1.087 2.608l-.201 23.291.201 23.22a3.698 3.698 0 001.087 2.636 3.705 3.705 0 003.225 1.048l8.843-1.606c.179-.017.359-.026.537-.026 2.805 0 5.153 2.09 5.461 4.863.005.048.012.096.02.143l3.832 22.533c.341 3.425-2.578 5.402-5.18 6.053-1.902.463-5.024 1.114-6.012 1.114h-.282c-15.163 0-27.499-12.263-27.499-27.336v-65.33C2.5 14.763 14.836 2.5 29.999 2.5h.281m.001-2.5h-.282C13.431 0 0 13.358 0 29.836v65.328C0 111.642 13.431 125 29.999 125h.282c1.732 0 6.603-1.185 6.603-1.185 4.369-1.093 7.552-4.454 7.067-8.824l-3.845-22.61c-.453-4.073-3.919-7.087-7.945-7.087-.294 0-.59.016-.889.049l-8.938 1.624a1.226 1.226 0 01-1.365-1.218l-.201-23.248.201-23.248a1.227 1.227 0 011.365-1.218l8.938 1.624c.298.033.595.049.889.049 4.027 0 7.493-3.014 7.946-7.086l3.845-22.61c.485-4.37-2.698-7.731-7.067-8.824C36.884 1.185 32.013 0 30.281 0z\",\n fill: \"url(#c)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomerSupport);\nexport default __webpack_public_path__ + \"static/media/customerSupport.d47554609b53877fb864f5e1e1d650dd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDemoTenant(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 36.299,\n y1: 20.39,\n x2: 30.596,\n y2: 15.604\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.329 18.086c4.461 2.745 5.28-1.033 8.236-.177\",\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M29.33 10.539h8.236v10.794c0 .138.09.258.222.3 5.919 1.875 10.137 7.575 9.752 14.198-.405 6.974-6.026 12.662-12.995 13.143-8.189.565-15.008-5.911-15.008-13.979 0-6.189 4.012-11.502 9.576-13.36a.315.315 0 00.217-.298V10.539z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000154391132243843967290000011165587313978923422_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 27.359,\n y1: 35.554,\n x2: 28.056,\n y2: 30.594\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 27.708,\n cy: 33.074,\n r: 1.879,\n fill: \"none\",\n stroke: \"url(#SVGID_00000154391132243843967290000011165587313978923422_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000177449791966594666520000005617842187960653501_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.967,\n y1: 36.057,\n x2: 33.403,\n y2: 41.047\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 33.185,\n cy: 38.552,\n r: 1.879,\n fill: \"none\",\n stroke: \"url(#SVGID_00000177449791966594666520000005617842187960653501_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M37.417 60.49h-7.84a.247.247 0 01-.247-.247v-.365c0-.791.641-1.432 1.432-1.432h5.471c.791 0 1.432.641 1.432 1.432v.365a.248.248 0 01-.248.247z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000024683461559177304510000012912978120442236090_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.954,\n y1: 59.037,\n x2: 34.402,\n y2: 52.765\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.229 56.618c0 1.449-.776 1.826-1.732 1.826s-1.732-.378-1.732-1.826c0-1.449 1.732-3.42 1.732-3.42s1.732 1.971 1.732 3.42z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000024683461559177304510000012912978120442236090_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000050641332032408155040000005501906915406038437_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.247,\n y1: 27.714,\n x2: 38.412,\n y2: 27.714\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 35.33,\n cy: 27.714,\n r: 2.457,\n fill: \"#FFF\",\n stroke: \"url(#SVGID_00000050641332032408155040000005501906915406038437_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000109030893477138071210000002427921711135361424_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 35.618,\n y1: 5.172,\n x2: 31.482,\n y2: 12.633\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.764 10.5h-8.429a1.597 1.597 0 01-1.597-1.597v0c0-.882.715-1.597 1.597-1.597h8.429c.882 0 1.597.715 1.597 1.597v0c0 .882-.715 1.597-1.597 1.597z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000109030893477138071210000002427921711135361424_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000079473129491904954440000017000637799547603087_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 16.683,\n y1: 52.886,\n x2: 50.433,\n y2: 52.886\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000079473129491904954440000017000637799547603087_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M17.308 60.49l3.454-15.641h-2.037 29.267-1.771l3.587 16.073\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000070801978309592018740000011294882805792343435_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 57.771,\n y1: 40.965,\n x2: 73.873,\n y2: 40.965\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.396 40.97s4.447-2.126 7.426-1.068c4.251 1.51 5.876 2.529 7.426 2.413\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000070801978309592018740000011294882805792343435_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M61.421 33.411l-6.839 17.093a1.99 1.99 0 001.848 2.73h18.264a1.99 1.99 0 001.849-2.729L69.722 33.41a1.3 1.3 0 01-.093-.485V22.683h-8.114v10.241a1.33 1.33 0 01-.094.487zM63.745 25.705h1.616M63.745 29.142h1.616M63.745 32.579h1.616\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000147198515590651288250000012187269644956620983_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 64.375,\n y1: 24.521,\n x2: 66.891,\n y2: 17.609\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.826 22.683H61.44a1.618 1.618 0 01-1.618-1.618v0c0-.894.725-1.618 1.618-1.618h8.386c.894 0 1.618.725 1.618 1.618v0c0 .894-.724 1.618-1.618 1.618z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000147198515590651288250000012187269644956620983_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDemoTenant);\nexport default __webpack_public_path__ + \"static/media/demoTenant.1bad5ad2bb8b6f86b010cfec8f242172.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _linearGradient2, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocumentJournal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 27.312,\n y1: 56.498,\n x2: 63.592,\n y2: 56.498\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M27.937 56.498h35.029\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000062907578426688030540000016327707521672880301_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 5409.732,\n y1: 5391.099,\n x2: 5459.227,\n y2: 5391.099,\n gradientTransform: \"rotate(90 5410.503 5.269)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000062907578426688030540000016327707521672880301_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M24.673 5.123v48.244\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M62.966 53.396V4.863H22.034l.028 51.365\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M62.966 53.395H25.167a3.114 3.114 0 00-3.105 3.105 3.114 3.114 0 003.105 3.105h37.799v-6.21z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M41.09 30.004h6.328V43.852H37.129v-9.887\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M48.031 32.424h2.111V46.6l-10.29.035v-2.616M41.09 30.004l-3.961 3.961h3.961z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M31.496 12.226h24.279v6.038H31.496zM35.628 20.894h16.014v3.019H35.628z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentJournal);\nexport default __webpack_public_path__ + \"static/media/documentJournal.5332b0888ef8c10fa86755f48a1f1abb.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _path3, _linearGradient2, _path4, _linearGradient3, _path5, _path6, _linearGradient4, _ellipse, _linearGradient5, _ellipse2, _path7, _linearGradient6, _path8, _path9, _linearGradient7, _path10;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgForPayment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7642.318,\n y1: -1223.085,\n x2: -7641.318,\n y2: -1223.085\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M34.958 20.329c-1.101-.933-8.776-.674-2.577 3.061M19.227 14.918s2.222.071 4.755-.818c2.533-.889 3.688-1.353 5.466-1.632s9.954.787 10.932 1.498\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M47.061 18.834s-1.289-.789-2.088.161c-.799.95.109 2.192.109 2.192l3.902-.858M47.006 22.681s1.289.789 2.088-.161c.799-.95-.109-2.192-.109-2.192M44.041 18.125l.956.841M49.071 22.549l.956.841\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M47.061 18.834s-1.289-.789-2.088.161c-.799.95.109 2.192.109 2.192l3.902-.858M47.006 22.681s1.289.789 2.088-.161c.799-.95-.109-2.192-.109-2.192M44.041 18.125l.956.841M49.071 22.549l.956.841\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000077286274236449769340000004203360460992570758_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 33.763,\n y1: 20.784,\n x2: 64.288,\n y2: 20.784\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000077286274236449769340000004203360460992570758_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M34.388 29.991l7.155 6.127 1.536 1.35 1.062.934.773-.92 1.823-2.168 16.927-20.128-13.669-12.02\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000016758753545345921400000005783106692340931465_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.509,\n y1: 13.192,\n x2: 50.62,\n y2: 13.192\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000016758753545345921400000005783106692340931465_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M49.995 3.166L33.134 23.218\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M48.451 8.851L35.822 23.866M58.442 17.638L45.814 32.653M39.302 30.666l2.601 2.288M52.354 8.543l5.794 5.096M45.814 32.653a2.732 2.732 0 00-3.911.301M58.442 17.638a2.88 2.88 0 01-.294-3.999M36.752 25.608a2.85 2.85 0 00-.939-1.75\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000036953357272048242580000008534753332377408926_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 39.389,\n y1: 27.841,\n x2: 43.035,\n y2: 27.841\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 41.212,\n cy: 27.841,\n rx: 1.198,\n ry: 1.225,\n fill: \"none\",\n stroke: \"url(#SVGID_00000036953357272048242580000008534753332377408926_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000026858334004837058950000013843882371932406706_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.288,\n y1: 13.693,\n x2: 54.934,\n y2: 13.693\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _ellipse2 || (_ellipse2 = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 53.111,\n cy: 13.693,\n rx: 1.198,\n ry: 1.225,\n fill: \"none\",\n stroke: \"url(#SVGID_00000026858334004837058950000013843882371932406706_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M52.366 8.528a2.732 2.732 0 01-3.911.301M56.653 56.553c-.448-.748-1.048-1.199-2.032-1.555-2.199-.798-11.178.206-14.59-.697-3.037-.803-9.882-7.763-9.882-7.763a2.398 2.398 0 01-.38-3.359 2.398 2.398 0 013.359-.38l6.355 4.709a3.285 3.285 0 001.955.645h9.675a.856.856 0 000-1.71h-5.357c-1.107 0-2.101-.499-2.004-2.004.025-1.039.879-1.565 1.973-1.582 3.571-.054 13.157.01 13.867.032 3.705.116 5.32 4.474 8.581 12.869\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000019676193497074142620000005573312342241608613_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -8327.374,\n y1: -7394.973,\n x2: -8322.146,\n y2: -7394.973,\n gradientTransform: \"scale(-1 1) rotate(-83.864 -45.078 -8266.748)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n transform: \"scale(-1) rotate(83.864 65.025 -70.323)\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000019676193497074142620000005573312342241608613_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M61.179 51.444h3.979v13.931h-3.979z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M18.761 26.364s3.955-1.422 6.043-.683c4.448 1.738 5.607 2.33 6.532 2.783.903.443 6.832 3.996 8.055 1.443 1.032-2.155-.899-3.015-1.367-3.291-2.039-1.201-5.644-3.226-5.644-3.226\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000058571060914100741920000003758920348705062045_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 106.429,\n y1: 236.396,\n x2: 111.659,\n y2: 236.396,\n gradientTransform: \"matrix(1 0 0 -1 -92.362 256.725)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000058571060914100741920000003758920348705062045_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M14.693 13.363h3.979v13.931h-3.979z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgForPayment);\nexport default __webpack_public_path__ + \"static/media/forPayment.ac35ac005aa0c1bfe5fbcba143b0bcf1.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _path3, _path4, _linearGradient2, _path5, _linearGradient3, _path6, _linearGradient4, _path7, _linearGradient5, _path8, _linearGradient6, _path9, _linearGradient7, _path10, _linearGradient8, _path11, _linearGradient9, _path12, _linearGradient10, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGeneralLedger(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7747.177,\n y1: -880.664,\n x2: -7746.177,\n y2: -880.664\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M40.308 49.299H21.816a2.957 2.957 0 01-2.948-2.948V7.4a2.957 2.957 0 012.948-2.948h18.492M44.483 4.451h18.133a2.953 2.953 0 012.948 2.948V46.35a2.953 2.953 0 01-2.948 2.948H44.483\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M18.867 12.299h-3.983a2.953 2.953 0 00-2.948 2.948v38.957a2.957 2.957 0 002.948 2.948H39.07M65.564 12.299h4.551a2.953 2.953 0 012.948 2.948v38.957a2.957 2.957 0 01-2.948 2.948H45.459M44.483 4.451v1.04c0 1.147-.938 2.09-2.085 2.09s-2.09-.943-2.09-2.09v-1.04M44.483 49.299v.579c0 1.147-.938 2.09-2.085 2.09s-2.09-.943-2.09-2.09v-.579M45.459 57.152a3.214 3.214 0 01-.906 1.742 3.218 3.218 0 01-2.289.954 3.258 3.258 0 01-3.195-2.696\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M57.405 14.952s-.442-2.559-2.559-2.559-2.685 2.559-2.685 2.559l5.497 4.168M52.413 19.12s.442 2.559 2.559 2.559 2.685-2.559 2.685-2.559M54.909 10.214v2.179M54.909 21.679v2.18\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M57.405 14.952s-.442-2.559-2.559-2.559-2.685 2.559-2.685 2.559l5.497 4.168M52.413 19.12s.442 2.559 2.559 2.559 2.685-2.559 2.685-2.559M54.909 10.214v2.179M54.909 21.679v2.18\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000049211744707395374550000016738448970874053821_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 21.238,\n x2: 37.722,\n y2: 21.238\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000049211744707395374550000016738448970874053821_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M24.118 18.617h12.98v5.242h-12.98z\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000047018293657607289420000008348345749107987889_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 34.341,\n x2: 37.722,\n y2: 34.341\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000047018293657607289420000008348345749107987889_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M37.098 34.341h-12.98\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000099626113306428038750000001547619379863757238_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 29.1,\n x2: 37.722,\n y2: 29.1\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000099626113306428038750000001547619379863757238_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M37.098 29.1h-12.98\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000062877155280326853130000016711785385839392701_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 44.823,\n x2: 37.722,\n y2: 44.823\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000062877155280326853130000016711785385839392701_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M37.098 44.823h-12.98\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000160904979827196861500000006444181507019457446_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 39.582,\n x2: 37.722,\n y2: 39.582\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000160904979827196861500000006444181507019457446_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M37.098 39.582h-12.98\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000023244998556568249730000008595127286502031512_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 47.794,\n y1: 44.823,\n x2: 62.024,\n y2: 44.823\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000023244998556568249730000008595127286502031512_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M61.399 44.823h-12.98\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000013167643283796027010000007882740329497672882_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 47.794,\n y1: 39.582,\n x2: 62.024,\n y2: 39.582\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000013167643283796027010000007882740329497672882_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M61.399 39.582h-12.98\"\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000062155751202058960730000011938075164166648220_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 23.492,\n y1: 11.303,\n x2: 37.722,\n y2: 11.303\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000062155751202058960730000011938075164166648220_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M24.118 8.682h12.98v5.242h-12.98z\"\n })), _linearGradient10 || (_linearGradient10 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000069377537152615505610000014627321015855291813_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 47.794,\n y1: 31.72,\n x2: 62.024,\n y2: 31.72\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000069377537152615505610000014627321015855291813_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M48.419 29.099h12.98v5.242h-12.98z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGeneralLedger);\nexport default __webpack_public_path__ + \"static/media/generalLedger.5c66ffd2aaf88c720fbb3948aa608eff.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _linearGradient2, _path3, _linearGradient3, _path4, _linearGradient4, _path5, _linearGradient5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInbox(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7747.177,\n y1: -1052.43,\n x2: -7746.177,\n y2: -1052.43\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M33.328 35.411l9.053 6.21 8.959-6.21\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M67.736 19.204v36.512H17.073V19.204\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000109026870776882085970000016700769206380821692_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 12.479,\n y1: 16.515,\n x2: 72.521,\n y2: 16.515\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000109026870776882085970000016700769206380821692_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M13.104 14.141h58.793v4.749H13.104z\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000023999670137596718890000018076166959724656575_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 12.607,\n y1: 11.296,\n x2: 72.456,\n y2: 11.296\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000023999670137596718890000018076166959724656575_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M13.232 14.008l5.157-5.425h47.905l5.537 5.425\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000044171449843222914770000017893660447103754391_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.703,\n y1: 41.396,\n x2: 51.965,\n y2: 41.396\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000044171449843222914770000017893660447103754391_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M33.328 35.411h18.011v11.97H33.328z\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000030469133630430326980000013750799072908711582_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 22.9,\n y1: 27.592,\n x2: 61.528,\n y2: 27.592\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000030469133630430326980000013750799072908711582_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M23.525 27.592h37.378\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInbox);\nexport default __webpack_public_path__ + \"static/media/inbox.95ddbd3e1e0b8ced1fdbd03754789e1b.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _linearGradient2, _circle, _linearGradient3, _path2, _linearGradient4, _path3, _linearGradient5, _path4, _linearGradient6, _path5, _linearGradient7, _path6, _linearGradient8, _path7, _linearGradient9, _path8, _path9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIncomeStatement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7747.177,\n y1: -968.737,\n x2: -7746.177,\n y2: -968.737\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M50.078 9.51h4.174v6.048H31.167V9.51h3.989M35.156 9.51a6.132 6.132 0 01-.082-.993c0-3.68 3.375-6.662 7.543-6.662 4.164 0 7.543 2.982 7.543 6.662 0 .339-.029.668-.082.993\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000140014215550100744170000010521838680210035375_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 39.474,\n y1: 7.469,\n x2: 45.761,\n y2: 7.469\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 42.617,\n cy: 7.469,\n r: 2.518,\n fill: \"none\",\n stroke: \"url(#SVGID_00000140014215550100744170000010521838680210035375_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000032623037712097811710000004414443155605915572_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.287,\n y1: 38.909,\n x2: 55.739,\n y2: 38.909\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000032623037712097811710000004414443155605915572_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.912 38.909h25.202\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000047035459043766266240000015932539470392545980_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.287,\n y1: 44.013,\n x2: 55.739,\n y2: 44.013\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000047035459043766266240000015932539470392545980_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.912 44.013h25.202\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000145033024355095763590000002897189848546629538_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.287,\n y1: 49.116,\n x2: 55.739,\n y2: 49.116\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000145033024355095763590000002897189848546629538_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.912 49.116h25.202\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000069366016197314407960000007605464539976402832_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.287,\n y1: 54.219,\n x2: 55.739,\n y2: 54.219\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000069366016197314407960000007605464539976402832_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.912 54.219h25.202\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000085216410752330423140000012124327773125379751_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.584,\n y1: 30.705,\n x2: 37.446,\n y2: 30.705\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000085216410752330423140000012124327773125379751_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M33.209 22.5h3.612v16.409h-3.612z\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000121985030062874334970000001298141679410451074_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 40.278,\n y1: 33.776,\n x2: 45.14,\n y2: 33.776\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000121985030062874334970000001298141679410451074_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M40.903 28.642h3.612v10.267h-3.612z\"\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000013876949291232000570000004394444468659197327_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 48.13,\n y1: 36.152,\n x2: 52.991,\n y2: 36.152\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000013876949291232000570000004394444468659197327_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M48.755 33.394h3.612v5.515h-3.612z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M54.288 12.478h5.499c1.157 0 2.094 1.039 2.094 2.32v45.326c0 1.281-.938 2.32-2.094 2.32H25.213c-1.157 0-2.095-1.039-2.095-2.32V14.798c0-1.281.938-2.32 2.095-2.32h5.743\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIncomeStatement);\nexport default __webpack_public_path__ + \"static/media/incomeStatement.fb733f8fe3cf4561bc7bff9878fcd205.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _circle, _path7, _path8, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgManual(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_3\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_18\",\n x1: 60.251,\n y1: 13.693,\n x2: 65.995,\n y2: 13.693,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_181\",\n y1: 27.323,\n y2: 27.323,\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_182\",\n y1: 40.954,\n y2: 40.954,\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_183\",\n x1: 24.954,\n y1: 57.449,\n x2: 61.501,\n y2: 57.449,\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_184\",\n x1: 31.969,\n y1: 22.35,\n x2: 50.374,\n y2: 22.35,\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_185\",\n x1: 40.604,\n y1: 24.313,\n x2: 42.325,\n y2: 24.313,\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_186\",\n x1: 38.951,\n y1: 20.93,\n x2: 42.325,\n y2: 20.93,\n gradientTransform: \"rotate(90 40.638 20.93)\",\n xlinkHref: \"#grad_manual_18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"grad_manual_187\",\n x1: 40.568,\n y1: 18.273,\n x2: 42.453,\n y2: 18.273,\n xlinkHref: \"#grad_manual_18\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.876 8.719h4.494v7.995a1.953 1.953 0 01-1.952 1.952h-2.542V8.719h0z\",\n stroke: \"url(#grad_manual_18)\",\n fill: \"none\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.876 22.35h4.494v7.995a1.953 1.953 0 01-1.952 1.952h-2.542V22.35h0z\",\n stroke: \"url(#grad_manual_181)\",\n fill: \"none\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.876 35.981h4.494v7.995a1.953 1.953 0 01-1.952 1.952h-2.542v-9.947h0z\",\n stroke: \"url(#grad_manual_182)\",\n fill: \"none\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#grad_manual_183)\",\n fill: \"none\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M25.579 57.449h35.297\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M60.876 54.323V5.419H19.63l.029 51.758\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M60.876 54.322H22.788a3.138 3.138 0 00-3.129 3.129 3.138 3.138 0 003.129 3.129h38.088v-6.258z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 41.172,\n cy: 22.35,\n r: 8.578,\n stroke: \"url(#grad_manual_184)\",\n fill: \"none\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#grad_manual_185)\",\n d: \"M40.604 20.829h1.721v6.969h-1.721z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.64 19.243c.301 0 .546.245.546.546v2.665c0 .09-.073.163-.163.163h-.769a.163.163 0 01-.163-.163v-2.662a.55.55 0 01.549-.549z\",\n transform: \"rotate(-90 40.638 20.93)\",\n fill: \"url(#grad_manual_186)\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 41.511,\n cy: 18.273,\n r: 0.942,\n fill: \"url(#grad_manual_187)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgManual);\nexport default __webpack_public_path__ + \"static/media/manual.12af90d6bd04b6e52792bd6efc581148.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _path2, _path3, _linearGradient2, _path4, _linearGradient3, _path5, _linearGradient4, _path6, _linearGradient5, _path7, _linearGradient6, _path8, _linearGradient7, _path9, _path10, _linearGradient8, _path11, _linearGradient9, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPaymentJournal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 28.449,\n y1: 56.498,\n x2: 64.729,\n y2: 56.498\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.074 56.498h35.03\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M64.104 53.396V4.863H23.171l.028 51.365\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M64.104 53.395H26.305A3.114 3.114 0 0023.2 56.5a3.114 3.114 0 003.105 3.105h37.799v-6.21z\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000001623526769373819590000015219304879568802179_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 10.766,\n x2: 20.271,\n y2: 10.766\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000001623526769373819590000015219304879568802179_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 10.766h4.549\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000047754778567390992790000004995145894195665337_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 18.033,\n x2: 20.271,\n y2: 18.033\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000047754778567390992790000004995145894195665337_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 18.033h4.549\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000078752236935976353570000013354777101478038425_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 25.3,\n x2: 20.271,\n y2: 25.3\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000078752236935976353570000013354777101478038425_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 25.3h4.549\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000064311619902907735140000012872734289187236492_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 32.567,\n x2: 20.271,\n y2: 32.567\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000064311619902907735140000012872734289187236492_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 32.567h4.549\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000104696120313150623550000008718012645580788610_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 39.834,\n x2: 20.271,\n y2: 39.834\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000104696120313150623550000008718012645580788610_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 39.834h4.549\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000000920360666787645670000002559758003046701482_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.07,\n y1: 47.101,\n x2: 20.271,\n y2: 47.101\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000000920360666787645670000002559758003046701482_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M20.896 47.101h4.549\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M33.477 11.735h22.29v6.488h-22.29z\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000107562502822438818840000016678875241430712470_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 35.355,\n y1: 37.998,\n x2: 53.721,\n y2: 37.998\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.542 30.614h1.594c.42 0 .818.155 1.133.432 1.078.957 3.625 3.441 4.977 6.617.974 2.291.839 4.209.848 4.339.025.462-.281 2.66-2.858 3.03-1.548.222-3.764.336-5.703.348h.009c-1.939-.013-4.154-.126-5.703-.348-2.576-.369-2.883-2.568-2.858-3.03.008-.13-.126-2.048.848-4.339 1.351-3.176 3.898-5.661 4.977-6.617a1.71 1.71 0 011.133-.432h1.603z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000107562502822438818840000016678875241430712470_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000038375766522940839590000010025861250053930388_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 39.487,\n y1: 28.037,\n x2: 49.582,\n y2: 28.037\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.541 30.652h3.828a.555.555 0 00.488-.291l2.032-3.763a.554.554 0 00-.071-.631c-.307-.349-.941-.79-2.029-.383-1.652.618-1.506 1.157-3.551.315-1.427-.588-2.449.022-2.936.444a.552.552 0 00-.119.691l1.874 3.334a.555.555 0 00.484.284z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000038375766522940839590000010025861250053930388_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M46.11 36.885s-.278-1.607-1.607-1.607c-1.33 0-1.687 1.607-1.687 1.607l3.453 2.618M42.974 39.503s.278 1.607 1.607 1.607c1.33 0 1.687-1.607 1.687-1.607M44.542 33.908v1.37M44.542 41.11v1.37\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPaymentJournal);\nexport default __webpack_public_path__ + \"static/media/paymentJournal.11f608e8f8328a7cc2645400c413c519.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _linearGradient, _path3, _path4, _linearGradient2, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSendToAccountant(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\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 className: \"MI_4L_main\",\n d: \"M36.48 47.24l10.673 5.52a3.19 3.19 0 004.285-1.363 3.19 3.19 0 00-1.363-4.285l-16.887-8.734s-4.334-1.251-11.162 2.431\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M51.47 48.556l13.565-7.832a3.19 3.19 0 014.344 1.164 3.19 3.19 0 01-1.164 4.344L51.75 55.738s-8.973 5.488-15.935 1.538-8.435-3.973-9.707-4.162-4.351-.39-4.351-.39\"\n })), _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 14.572,\n y1: 46.833,\n x2: 22.383,\n y2: 46.833\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_1_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M15.197 39h6.56v15.665h-6.56z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M26.752 5.594v26.163h43.051V5.594\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000062164514631185634490000000467183745878386321_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 26.127,\n y1: 13.381,\n x2: 70.428,\n y2: 13.381\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000062164514631185634490000000467183745878386321_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M69.803 5.594H26.752l6.573 4.794 6.726 4.903 5.564 4.056 2.499 1.821.251-.179 2.285-1.642 5.663-4.068.371-.265 6.278-4.505 6.841-4.915\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSendToAccountant);\nexport default __webpack_public_path__ + \"static/media/sendToAccountant.c6ad1391f8f4bfbff0a3791cb3893aaa.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _linearGradient2, _path, _linearGradient3, _path2, _linearGradient4, _path3, _linearGradient5, _path4, _linearGradient6, _path5, _linearGradient7, _path6, _linearGradient8, _path7, _linearGradient9, _path8, _linearGradient10, _path9, _linearGradient11, _path10, _linearGradient12, _path11, _linearGradient13, _path12, _linearGradient14, _path13, _linearGradient15, _path14, _path15, _path16;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTickets(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -7747.177,\n y1: -1223.085,\n x2: -7746.177,\n y2: -1223.085\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000076586135623754648370000003368912020489755534_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 57.221,\n y1: 28.968,\n x2: 71.646,\n y2: 28.968\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.269 30.72h-9.671a1.751 1.751 0 01-1.752-1.752v0c0-.968.784-1.752 1.752-1.752h9.671c.968 0 1.752.784 1.752 1.752v0c0 .968-.784 1.752-1.752 1.752z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000076586135623754648370000003368912020489755534_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000106861763633848090670000016830439886506432693_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 43.455,\n y1: 34.192,\n x2: 50.807,\n y2: 34.192,\n gradientTransform: \"translate(0 .968)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000106861763633848090670000016830439886506432693_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M44.08 35.159h6.102\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000041266538693199321440000007558771446339868847_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 52.793,\n y1: 34.192,\n x2: 60.667,\n y2: 34.192,\n gradientTransform: \"translate(0 .968)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000041266538693199321440000007558771446339868847_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.418 35.159h6.624\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000026870470952983460270000006764124257439941554_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 62.654,\n y1: 34.192,\n x2: 71.646,\n y2: 34.192,\n gradientTransform: \"translate(0 .968)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000026870470952983460270000006764124257439941554_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M63.279 35.159h7.742\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000019663833169697388460000007422219855688397482_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 43.455,\n y1: 37.788,\n x2: 56.908,\n y2: 37.788,\n gradientTransform: \"translate(0 .968)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000019663833169697388460000007422219855688397482_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M44.08 38.756h12.203\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000149380553720001821480000001340449408014185373_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 58.895,\n y1: 37.788,\n x2: 71.646,\n y2: 37.788,\n gradientTransform: \"translate(0 .968)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000149380553720001821480000001340449408014185373_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M59.52 38.756h11.501\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000018925765579649546440000010202009205783075713_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16226.188,\n y1: -279.463,\n x2: -16207.335,\n y2: -279.463,\n gradientTransform: \"matrix(1 0 0 -1 16269.643 -237.111)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000018925765579649546440000010202009205783075713_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M44.08 42.352h17.603\"\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000121977403924442212530000008057588888428064405_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16235.526,\n y1: -279.463,\n x2: -16228.175,\n y2: -279.463,\n gradientTransform: \"matrix(1 0 0 -1 16299.82 -237.111)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000121977403924442212530000008057588888428064405_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M64.919 42.352h6.102\"\n })), _linearGradient10 || (_linearGradient10 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000157306303098493112450000005399910388307188364_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16271.305,\n y1: 17.957,\n x2: -16256.88,\n y2: 17.957,\n gradientTransform: \"matrix(-1 0 0 1 -16243.526 0)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.731 19.709h9.671c.968 0 1.752-.784 1.752-1.752v0c0-.968-.784-1.752-1.752-1.752h-9.671c-.968 0-1.752.784-1.752 1.752v0c0 .968.784 1.752 1.752 1.752z\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000157306303098493112450000005399910388307188364_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient11 || (_linearGradient11 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000173149098416895396670000016712176722497994139_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16265.872,\n y1: -719.449,\n x2: -16256.88,\n y2: -719.449,\n gradientTransform: \"rotate(180 -8121.763 -344.054)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000173149098416895396670000016712176722497994139_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M21.721 31.34h-7.742\"\n })), _linearGradient12 || (_linearGradient12 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000067221074732020112180000000656247443004711865_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16283.042,\n y1: -715.853,\n x2: -16275.424,\n y2: -715.853,\n gradientTransform: \"rotate(180 -8121.763 -344.054)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000067221074732020112180000000656247443004711865_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M38.891 27.744h-6.368\"\n })), _linearGradient13 || (_linearGradient13 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000078739751671352731120000013977764760616302741_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16273.436,\n y1: -715.853,\n x2: -16256.88,\n y2: -715.853,\n gradientTransform: \"rotate(180 -8121.763 -344.054)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000078739751671352731120000013977764760616302741_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M29.286 27.744H13.979\"\n })), _linearGradient14 || (_linearGradient14 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000183210753256625403560000002203283887175146399_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16265.313,\n y1: -712.257,\n x2: -16256.88,\n y2: -712.257,\n gradientTransform: \"rotate(180 -8121.763 -344.054)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000183210753256625403560000002203283887175146399_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M21.162 24.148h-7.183\"\n })), _linearGradient15 || (_linearGradient15 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000176027449323928205330000009371018099581278345_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -16284.797,\n y1: -712.257,\n x2: -16267.3,\n y2: -712.257,\n gradientTransform: \"rotate(180 -8121.763 -344.054)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000176027449323928205330000009371018099581278345_)\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M40.646 24.148H24.399\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M46.212 22.314v-4.412a6.6 6.6 0 00-6.6-6.6H15.377a6.6 6.6 0 00-6.6 6.6v12.389a6.6 6.6 0 006.6 6.6h3.364l-2.145 5.094 9.384-5.094h12.808\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M45.387 22.314h24.236a6.6 6.6 0 016.6 6.6v12.389a6.6 6.6 0 01-6.6 6.6h-3.364l2.145 5.094-9.384-5.094H45.387a6.6 6.6 0 01-6.6-6.6V28.914a6.601 6.601 0 016.6-6.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTickets);\nexport default __webpack_public_path__ + \"static/media/tickets.1403b96950dc6d99b01227b8c7c34ea6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M7.2 31.4V10.2h28.1v19.7c0 3.2-2.6 5.8-5.8 5.8H11.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M12.5 16h17.1v14.2H12.5zM21.3 16v14.2M12.5 23.2h17.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.5 6.8v5.6M28.9 6.8v5.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 25.4,\n cy: 19.7,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDate);\nexport default __webpack_public_path__ + \"static/media/date.92c487bc9595314416a9d911d70e07b9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDatetime(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34.5 12.2v-4H6.4v19.7c0 3.2 2.6 5.8 5.8 5.8h.6M12.7 4.8v5.6M28 4.8v5.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M31.8 27.7H26v-5.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 36.9,\n cy: 27.7,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M35.5 32.7c-2 2.9-5.5 4.8-9.3 4.6-5.9-.3-10.6-5.3-10.3-11.2.3-5.9 5.3-10.6 11.2-10.3 4.2.2 7.8 2.8 9.4 6.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDatetime);\nexport default __webpack_public_path__ + \"static/media/datetime.5fe2fe9aa4e78f82af6ab07c44f34298.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDemo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Predloha\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M156.352 72.516c0 27.164-42.929 93.533-53.849 109.976-1.19 1.792-3.815 1.792-5.006 0-10.92-16.443-53.849-82.812-53.849-109.976 0-31.122 25.23-56.352 56.352-56.352s56.352 25.229 56.352 56.352z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 100,\n cy: 72.516,\n r: 28.152\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDemo);\nexport default __webpack_public_path__ + \"static/media/demo.4e6ba6a92c4d5b56a365e65a724d58fa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDepreciation(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M11.2 18.2c-.7-6.6 4.1-12.4 10.7-13.1S34.3 9.2 35 15.8c.6 6-3.1 11.2-8.8 12.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M24.6 37.5l4.8-.7-.7-4.8M7.5 21.5l19.4 13.2M25.4 11.9c-6.5-1.9-6.5 5-2.4 4.9 4-.1 4.6 6.5-2.6 4.5M22.8 10.4v.6M22.8 22.1v.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 30.5,\n cy: 16.8,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDepreciation);\nexport default __webpack_public_path__ + \"static/media/depreciation.df945d43697e313f60229613fac551fc.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDiscard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 37.5,\n cy: 21.9,\n r: 1.7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M37.5 27.1v4.1c0 3.4-2.8 6.1-6.1 6.1H12.1c-3.4 0-6.1-2.8-6.1-6.1V11.9c0-3.4 2.8-6.1 6.1-6.1h15.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M29.2 29L14.3 14.1M27.7 15.6L14.3 29\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M27.5 5.7l10.1 11h-4.7c-3 0-5.4-2.4-5.4-5.4V7.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscard);\nexport default __webpack_public_path__ + \"static/media/discard.4d06ea657f3d25cfea53a53ef2091ce9.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDislike(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.9 27.4l6.6 5.7 2.6 6.6h4.3V29.1h8.5v-6l-4-10.2h-18zM7.9 26.6V12.9\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDislike);\nexport default __webpack_public_path__ + \"static/media/dislike.99e9d255cf77d5b4776a58aadfe283f8.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDislikeFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M16.9 27.7l6.5 5.7L26 40h4.3V29.4h8.6v-6l-4-10.2h-18z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.9 26.9V13.2\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDislikeFilled);\nexport default __webpack_public_path__ + \"static/media/dislikeFilled.5afceca448fcdfa93efaee1fc1923f05.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocList(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M8.2 25.8h25.2M8.2 33.7h25.2M8.2 17.4h25.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M8.2 9.2H29\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 33.4,\n cy: 9.2,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocList);\nexport default __webpack_public_path__ + \"static/media/docList.d1313b2945835412e47c579f84afa127.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocmenu(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 28.5,\n cy: 14,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.3 33.9h-4.8c-1.6 0-2.9-1.3-2.9-2.9v-4.8c0-1.6 1.3-2.9 2.9-2.9h4.8c1.6 0 2.9 1.3 2.9 2.9V31c0 1.6-1.3 2.9-2.9 2.9zM16.3 19.1h-4.8c-1.6 0-2.9-1.3-2.9-2.9v-4.8c0-1.6 1.3-2.9 2.9-2.9h4.8c1.6 0 2.9 1.3 2.9 2.9v4.8c0 1.6-1.3 2.9-2.9 2.9zM31 33.9h-4.8c-1.6 0-2.9-1.3-2.9-2.9v-4.8c0-1.6 1.3-2.9 2.9-2.9H31c1.6 0 2.9 1.3 2.9 2.9V31c0 1.6-1.3 2.9-2.9 2.9z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M33.9 12.3v3.9c0 1.7-1.4 3-3 3h-4.5c-1.7 0-3-1.4-3-3v-4.5c0-1.7 1.4-3 3-3h3.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocmenu);\nexport default __webpack_public_path__ + \"static/media/docmenu.9fce2ac45e1162a615c630c41bfbc848.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocsimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M26.3 14.6h-10M26.3 25.1h-10M16.2 19.9h10.1M27.4 35H15.1c-2.6 0-4.7-2.1-4.7-4.7v-17c0-2.6 2.1-4.7 4.7-4.7h12.3c2.6 0 4.7 2.1 4.7 4.7v17.1c0 2.5-2.1 4.6-4.7 4.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocsimple);\nexport default __webpack_public_path__ + \"static/media/docsimple.62f3229083d9a140e6023a90187d149c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocument(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M19.1 5.1h9.8c3.1 0 5.7 2.5 5.7 5.7v21c0 3.1-2.5 5.7-5.7 5.7H13.7C10.6 37.5 8 35 8 31.8v-21c0-2.5 1.7-4.7 4-5.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.3 19l5.5-5.4 5.5 5.4M21.8 15.1v13.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.1 5.1L12 12.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.8,\n cy: 33.6,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocument);\nexport default __webpack_public_path__ + \"static/media/document.3ac6807ba46bef3811a7f7477fb85922.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9, _circle10, _circle11, _circle12, _circle13, _circle14, _circle15, _circle16, _circle17, _circle18, _path, _circle19;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocumentDraft(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 13.2,\n cy: 5,\n r: 1.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 18.6,\n cy: 5,\n r: 1.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 23.9,\n cy: 5,\n r: 1.4\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 29.3,\n cy: 5,\n r: 1.4\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 13.2,\n cy: 37.5,\n r: 1.4\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 18.6,\n cy: 37.5,\n r: 1.4\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 23.9,\n cy: 37.5,\n r: 1.4\n })), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 29.3,\n cy: 37.5,\n r: 1.4\n })), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 8,\n cy: 31.9,\n r: 1.4\n })), _circle10 || (_circle10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 8,\n cy: 26.6,\n r: 1.4\n })), _circle11 || (_circle11 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 8,\n cy: 21.2,\n r: 1.4\n })), _circle12 || (_circle12 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 8,\n cy: 15.9,\n r: 1.4\n })), _circle13 || (_circle13 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 8,\n cy: 10.6,\n r: 1.4\n })), _circle14 || (_circle14 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 34.5,\n cy: 31.9,\n r: 1.4\n })), _circle15 || (_circle15 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 34.5,\n cy: 26.6,\n r: 1.4\n })), _circle16 || (_circle16 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 34.5,\n cy: 21.2,\n r: 1.4\n })), _circle17 || (_circle17 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 34.5,\n cy: 15.9,\n r: 1.4\n })), _circle18 || (_circle18 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dark_dot\",\n cx: 34.5,\n cy: 10.6,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.8 23.4h14.6M13.8 29.7h14.6\"\n })), _circle19 || (_circle19 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.8,\n cy: 12.7,\n r: 1.8\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentDraft);\nexport default __webpack_public_path__ + \"static/media/documentDraft.117342ef09e4fb91bd611a0847f84d7a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocumentFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M8 16.1v-5.4C8 8.2 9.7 6 12 5.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M19.1 5.1h9.8c3.1 0 5.7 2.5 5.7 5.7v21c0 3.1-2.5 5.7-5.7 5.7H13.7C10.6 37.5 8 35 8 31.8V16.2L19.1 5.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4D_main\",\n d: \"M16.3 19l5.5-5.4 5.5 5.4M21.8 15.1v13.8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M19.1 5.1L12 12.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.8,\n cy: 33.6,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentFilled);\nexport default __webpack_public_path__ + \"static/media/documentFilled.6f87e6c8685057fd89b6164ff99604ff.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDocumentSaved(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.6 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7V10.7C8 7.6 10.5 5 13.7 5h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.8 23.4h14.6M13.8 29.7h14.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.8,\n cy: 12.7,\n r: 1.8\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentSaved);\nexport default __webpack_public_path__ + \"static/media/documentSaved.ecfbf5a9ae6b0fece95ee3365e853d16.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCorrectiveInvoicesIssuedPlain(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M28.638 37.483h-14.98a5.669 5.669 0 01-5.669-5.669V10.706a5.669 5.669 0 015.669-5.669h15.205a5.669 5.669 0 015.669 5.669v21.44\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.803,\n cy: 12.704,\n r: 1.444\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M25.173 15.732l3.068-2.987-2.988-3.068M27.281 12.732l-7.786-.026M13.881 22.822l2.423 2.112 2.328-2.031 2.372 2.069 2.502-2.182 2.498 2.178 2.634-2.297M13.881 29.645l2.423 2.112 2.328-2.03 2.372 2.068 2.502-2.182 2.498 2.178 2.634-2.297\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCorrectiveInvoicesIssuedPlain);\nexport default __webpack_public_path__ + \"static/media/correctiveInvoicesIssuedPlain.50fdad806f9e81c8ce29f6d9db7af1f4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCorrectiveInvoicesReceived(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M28.638 37.483h-14.98a5.669 5.669 0 01-5.669-5.669V10.706a5.669 5.669 0 015.669-5.669h15.205a5.669 5.669 0 015.669 5.669v21.44\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.727,\n cy: 12.704,\n r: 1.444\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M22.487 15.732l-3.068-2.987 2.988-3.068M20.379 12.732l7.786-.026M14.105 22.92l2.422 2.112 2.329-2.03 2.372 2.068 2.502-2.182 2.498 2.178 2.634-2.297M14.105 29.743l2.422 2.112 2.329-2.03 2.372 2.069 2.502-2.182 2.498 2.178 2.634-2.297\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCorrectiveInvoicesReceived);\nexport default __webpack_public_path__ + \"static/media/correctiveInvoicesReceived.28db141efa9331529d4d7efaf7dbdbfb.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInternalDocumentCancel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.1 42.1\",\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 className: \"IC_4L_sub\",\n d: \"M13.6 19.3H28M19.3 12.5H28\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.6,\n cy: 12.5,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.6 24.5h5M23 24.5h5M13.6 29.7h5M23 29.7h5M27.6 4.8H13.4c-3.1 0-5.7 2.5-5.7 5.7v18.9M14.3 37.3h14.4c3.1 0 5.7-2.5 5.7-5.7V12.3\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.4 4.8L8.3 37.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInternalDocumentCancel);\nexport default __webpack_public_path__ + \"static/media/internalDocumentCancel.0f20eecbfba0d13182c112e2741ba8d4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInternalDocuments(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.8 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7V10.7c0-3.1 2.5-5.7 5.7-5.7H29c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 19.4h14.4M19.6 12.7h8.8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14,\n cy: 12.7,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 24.7h5M23.4 24.7h5M14 29.9h5M23.4 29.9h5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInternalDocuments);\nexport default __webpack_public_path__ + \"static/media/internalDocuments.8a6ce4610b954e6395ecddf16e0c8ed6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInvoicesIssued(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.8 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7V10.7c0-3.1 2.5-5.7 5.7-5.7H29c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 20.7h14.6v11H14zM14 26.2h14.6M21.2 20.7v11\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 20.7h14.6v11H14zM14 26.2h14.6M21.2 20.7v11\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14,\n cy: 12.7,\n r: 1.4\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M25.5 15.7l3.1-2.9-3-3.1M27.6 12.7h-7.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInvoicesIssued);\nexport default __webpack_public_path__ + \"static/media/invoicesIssued.d7e49b7cb0043f457a91f6f407189782.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInvoicesReceived(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.9 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7v-21c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 20.8h14.6v11H14zM14 26.2h14.6M21.2 20.8v10.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14 20.8h14.6v11H14zM14 26.2h14.6M21.2 20.8v10.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14,\n cy: 12.8,\n r: 1.4\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M23 15.8l-3.1-3 3-3.1M20.9 12.8h7.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInvoicesReceived);\nexport default __webpack_public_path__ + \"static/media/invoicesReceived.5a5268ffcf238f5c0a82ba239b8127d9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _circle2, _circle3, _circle4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOtherLiabilities(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.4 37.7h-15c-3.1 0-5.7-2.5-5.7-5.7V10.9c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.6 21.1h10.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.6,\n cy: 12.9,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.6 26.3h10.6M13.6 31.5h10.6M22.6 15.9L19.5 13l3-3.1M20.5 12.9h7.8\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 28.5,\n cy: 21.1,\n r: 0.2\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 28.6,\n cy: 26.2,\n r: 0.2\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 28.7,\n cy: 31.5,\n r: 0.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOtherLiabilities);\nexport default __webpack_public_path__ + \"static/media/otherLiabilities.95108a75fd4e458b697b174c161fb74d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _circle2, _circle3, _circle4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOtherReceivables(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.7 37.8h-15c-3.1 0-5.7-2.5-5.7-5.7V11c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.8 21.2h10.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.8,\n cy: 13,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.8 26.4h10.7M13.8 31.6h10.7M25.5 16.1l3-3-3-3.1M27.6 13.1l-7.8-.1\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 28.8,\n cy: 21.3,\n r: 0.2\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 28.9,\n cy: 26.3,\n r: 0.2\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 29,\n cy: 31.7,\n r: 0.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOtherReceivables);\nexport default __webpack_public_path__ + \"static/media/otherReceivables.e4756a828defc0e52b708eceaa79d749.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgProformaInvoicesIssued(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M29 37.7H14c-3.1 0-5.7-2.5-5.7-5.7V10.9c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.2 23.7h14.6M14.2 29.9h14.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.2,\n cy: 12.9,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M25.5 15.9l3.1-2.9-3-3.1M27.6 12.9h-7.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgProformaInvoicesIssued);\nexport default __webpack_public_path__ + \"static/media/proformaInvoicesIssued.5d3b106acfe03e176f1b846c1a891521.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgProformaInvoicesIssuedTax(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.803,\n cy: 19.124,\n r: 1.445\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.532 27.129V10.706a5.669 5.669 0 00-5.669-5.669H13.657a5.669 5.669 0 00-5.669 5.669v26.348\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M7.988 37.053l4.397-4.13 4.442 4.172 4.442-4.172 4.396 4.13 4.431-4.162 4.436 4.167\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M18.944 19.124h7.349M24.364 15.081l4.042 4.043-4.042 4.042\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgProformaInvoicesIssuedTax);\nexport default __webpack_public_path__ + \"static/media/proformaInvoicesIssuedTax.d06d7af0928cf9b50e3a3fa703c57a64.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgProformaInvoicesReceived(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.6 37.6h-15c-3.1 0-5.7-2.5-5.7-5.7V10.8c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.7 23.6h14.6M13.7 29.8h14.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.7,\n cy: 12.8,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M22.5 15.8l-3.1-2.9 3-3.1M20.4 12.8h7.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgProformaInvoicesReceived);\nexport default __webpack_public_path__ + \"static/media/proformaInvoicesReceived.1ffdfa84af1966d28a87b734f125b1d3.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgProformaInvoicesReceivedTax(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.834,\n cy: 19.147,\n r: 1.445\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.532 27.129V10.706a5.669 5.669 0 00-5.669-5.669H13.657a5.669 5.669 0 00-5.669 5.669v26.348\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M7.988 37.053l4.397-4.13 4.442 4.172 4.442-4.172 4.396 4.13 4.431-4.162 4.436 4.167\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.423 19.113h-7.349M23.003 23.155l-4.043-4.042 4.043-4.043\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgProformaInvoicesReceivedTax);\nexport default __webpack_public_path__ + \"static/media/proformaInvoicesReceivedTax.570f2672c524e70d1db24f216f3cc48a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTaxDocument(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34.5 27.1V10.7C34.5 7.6 32 5 28.9 5H13.7C10.5 5 8 7.6 8 10.7V37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8 37.1l4.4-4.2 4.4 4.2 4.5-4.2 4.4 4.2 4.4-4.2 4.4 4.2\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.5 21.3l9.6-9.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 16.7,\n cy: 12.1,\n r: 0.7\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 25.8,\n cy: 21.3,\n r: 2.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTaxDocument);\nexport default __webpack_public_path__ + \"static/media/taxDocument.c290531a5f700c3cda015df1201ee7c0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExcel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M38.2 46.1h36.5v13.7H38.2V32.6H56l.4 27.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M104.8 54.8V37l-19-17.4H28.6c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M85.9 19.7V37h18.9M113.5 103H79.9c-2.8 0-5.1-2.3-5.1-5.1V69c0-2.8 2.3-5.1 5.1-5.1h33.7c2.8 0 5.1 2.3 5.1 5.1v28.8c0 2.9-2.3 5.2-5.2 5.2zM102.1 77.1L92.6 90M92.6 77.1l9.5 12.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExcel);\nexport default __webpack_public_path__ + \"static/media/excel.5c287613452b0c252df474a924d66045.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIsdoc(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M99.9 54.8V37l-19-17.4H23.6c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M80.9 19.7V37h19M117.3 103H36.2c-2.8 0-5.1-2.3-5.1-5.1V69c0-2.8 2.3-5.1 5.1-5.1h81.1c2.8 0 5.1 2.3 5.1 5.1v28.8c0 2.9-2.3 5.2-5.1 5.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M66.8 77.4V90s9.9 1.5 9.9-6.6c0 0-.4-7.8-9.9-6zM42.1 77.2v12.9M58.3 78.5s-3.3-3.1-6.8-.9c-3 2.4-.3 5.2 3.7 5.8 5.7 1 5.3 6.8-.4 7.1-4.4.4-6-2.5-6-2.5M89.8 76.8s-6.3-1.1-6.7 6.6c0 6.1 2.8 7.2 6.3 7.2 3.3 0 5.7-2.2 5.7-7.1 0-4.2-2-6.4-5.3-6.7zM111.9 77.7s-8.9-4.5-10 5.4c-.9 10.9 10 6.7 10 6.7M28.6 56.2s1.9-10.7 9-19.2C45 29.6 57 27.9 57 27.9s-.9 14.7-7.9 19.7c-8.1 6.3-20.5 8.6-20.5 8.6z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M41.2 32.8s-2.9-1.9-6.7-3.1-6.2-1.8-6.2-1.8 1 9.4 4.8 15.4M43.6 51.2s3 1.9 5.8 2.8c2.9 1 7 1.8 7 1.8s.3-8.3-3.4-12.6M41.8 40l3.4.4.3 3.5M47 36.3l2.4.4.3 2.3M38.4 44.3l2.3.3.4 2.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIsdoc);\nexport default __webpack_public_path__ + \"static/media/isdoc.de528bbfefd770c1392c3c49760fa6a8.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOther(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 vectorEffect: \"non-scaling-stroke\",\n className: \"DI_4L_main\",\n d: \"M110.2 37l-19-17.4H34c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7V37h-19V19.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOther);\nexport default __webpack_public_path__ + \"static/media/other.052df549d9e63cdabd02de844723ea2d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPdf(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M99.5 54.8V37l-19-17.4H23.2c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M80.5 19.7V37h19M116.9 103H60.8c-2.8 0-5.1-2.3-5.1-5.1V69c0-2.8 2.3-5.1 5.1-5.1h56.1c2.8 0 5.1 2.3 5.1 5.1v28.8c0 2.9-2.3 5.2-5.1 5.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M86.1 77.4V90s9.9 1.5 9.9-6.6c0 0-.3-7.8-9.9-6zM69.6 90V77.4c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6M103.6 90V77.4h7.7M103.6 83.7h7.7M47.6 35s-6.8 21.6-13.2 28.6-9.2 2.9-8.5.5c.8-2.5 7.2-7.4 20.5-10.5s17.2-2.4 19.2-2c2.1.5 4.1 2.5 2.1 4.1-2.2 1.9-6.7 1.3-10-.6S46.6 46.4 43.6 36c-3-10.4 1.3-11.3 1.7-11.3.7-.1 5 .7 2.3 10.3z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPdf);\nexport default __webpack_public_path__ + \"static/media/pdf.85b7b61b868fcd5f35410c7da24396a6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _circle, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPicture(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M110.2 37l-19-17.4H34c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M91.3 19.7V37h18.9M109.7 103H46.3c-2.8 0-5.1-2.3-5.1-5.1V51.2c0-2.8 2.3-5.1 5.1-5.1h63.4c2.8 0 5.1 2.3 5.1 5.1v46.6c0 2.9-2.3 5.2-5.1 5.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M48.6 92.7l18.6-32.9 19 32.9\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M82.5 86.3l10.4-11.4 12.3 15.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"DI_4L_main\",\n cx: 98.8,\n cy: 59.8,\n r: 6.5\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M58.6 74.9l4.1 7.6 5-6.2 4 4.5 4.3-5.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPicture);\nexport default __webpack_public_path__ + \"static/media/picture.554186d3b790c270e0beef86cec00b5e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTemplate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M110.2 37l-19-17.4H34c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M91.3 19.7V37h18.9M109.3 103.1H45.9c-2.8 0-5.1-2.3-5.1-5.1V51.4c0-2.8 2.3-5.1 5.1-5.1h63.4c2.8 0 5.1 2.3 5.1 5.1V98c0 2.8-2.3 5.1-5.1 5.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n strokeDasharray: \"6,6\",\n d: \"M86 62v-3H62v24h10\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M72 66h24v24H72z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTemplate);\nexport default __webpack_public_path__ + \"static/media/template.b86d39c0d0b5bff268a78edbc2b6ffb3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgText(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M99.5 54.8V37l-19-17.4H23.2c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M80.5 19.7V37h19M116.9 103H60.8c-2.8 0-5.1-2.3-5.1-5.1V69c0-2.8 2.3-5.1 5.1-5.1h56.1c2.8 0 5.1 2.3 5.1 5.1v28.8c0 2.9-2.3 5.2-5.1 5.2zM100.1 77h11.7M93.8 77.1L84.3 90M84.3 77.1L93.8 90M105.9 77.9v12.2M66.7 77h11.7M72.5 77.9v12.2M33.7 49.8h16.8M33.7 41h20.5M33.3 32.6h21.1M58.5 43.6l8.1-8.3 4 3.6-8.4 8.4M55.8 46.5l-.1 3.2h3.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgText);\nexport default __webpack_public_path__ + \"static/media/text.47abf0a68a76e80d7b9de1171efde792.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWord(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M39.9 46.1H80M39.9 32.6h17.8M106.6 54.8V37l-19-17.4H30.3c-2 0-3.7 1.6-3.7 3.7V118c0 2 1.6 3.7 3.7 3.7h72.6c2 0 3.7-1.6 3.7-3.7v-5.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M87.6 19.7V37h19M115.3 103H81.6c-2.8 0-5.1-2.3-5.1-5.1V69c0-2.8 2.3-5.1 5.1-5.1h33.7c2.8 0 5.1 2.3 5.1 5.1v28.8c0 2.9-2.3 5.2-5.1 5.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M87.8 77.2L94.1 90l4.3-12.6M109.1 77.2L102.8 90l-4.4-12.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWord);\nexport default __webpack_public_path__ + \"static/media/word.f2c0e82984020c458e0fd83851868815.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M26.8 22.9l-5.5 5.7-5.8-5.6M21.2 26.8l-.1-12.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.8 22.9l-5.5 5.7-5.8-5.6M21.2 26.8l-.1-12.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 21.3,\n r: 13.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDown);\nexport default __webpack_public_path__ + \"static/media/down.63c0815ebee3fcd1278376a184b44c50.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDownload(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27.9 22.1l-6.6 6.7-6.7-6.7M21.3 27.9V13.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M27.9 22.1l-6.6 6.7-6.7-6.7M21.3 27.9V13.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 8.5,\n r: 1.5\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M33.5 32.1c0 1.9-1.4 3.4-3.1 3.4H12.2c-1.7 0-3.1-1.5-3.1-3.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownload);\nexport default __webpack_public_path__ + \"static/media/download.1f5c1f589b72fcc9eae6639fbf06c5b5.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEdit(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 4.2,\n cy: 37.6,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.8 15.7L16.2 32.2l-7.6 2.3 2.3-7.6L29.7 8.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M36 12.5l3-3c1.2-6.7-5.4-5.4-5.4-5.4l-3 3 5.4 5.4z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.9 26.9l5.3 5.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEdit);\nexport default __webpack_public_path__ + \"static/media/edit.8826b0c2476bd94ec0271b91ad11e37c.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEditLock(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.096 15.929v-4.858a7.685 7.685 0 017.685-7.685 7.672 7.672 0 017.686 7.686v4.858\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 18.132,\n cy: 22.585,\n r: 1.98\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.642 21.475v-5.546H6.922v5.502a7.809 7.809 0 007.809 7.809h5.959\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.932 34.275l13.67-13.67L39 24.003l-13.67 13.67-4.859 1.461 1.461-4.859z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditLock);\nexport default __webpack_public_path__ + \"static/media/editLock.a77def6c073cd5a0db999b0ec76c384c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEditSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M29.9 18L17.8 30.1l-5.7 1.7 1.7-5.6 12.1-12.1M29.2 10.7l4 4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditSimple);\nexport default __webpack_public_path__ + \"static/media/editSimple.0e475a0747b57bf98eb6126edb50262a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEmail(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M7.1 13.9l14.2 7.7L34.9 14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30 33.1H12.5c-3.1 0-5.6-2.5-5.6-5.6V15.1c0-3.1 2.5-5.6 5.6-5.6H30c3.1 0 5.6 2.5 5.6 5.6v12.4c0 3-2.5 5.6-5.6 5.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmail);\nexport default __webpack_public_path__ + \"static/media/email.0b5284972afddef90291c3972cdca151.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEmoji(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 21.2,\n r: 14.9\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 16.9,\n cy: 18.3,\n r: 1.2\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 26.1,\n cy: 18.3,\n r: 1.2\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15.3 26.1s1.4 3.3 6 3.3 5.9-3.4 5.9-3.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji);\nexport default __webpack_public_path__ + \"static/media/emoji.37ba88f716e65e12cfd32f77c81aa10f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEnter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M14.4 31.7L7 24.2l7.4-7.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M9.6 24.2h26V10.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnter);\nexport default __webpack_public_path__ + \"static/media/enter.69730fbf0fe6e71c8cd704ce7e6d58e3.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExitSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M11.644 28.723l-7.535-7.535 7.535-7.536M6.185 21.188h21.412M20.097 15.402V7.236h17.541v28.25H20.097v-8.5\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExitSimple);\nexport default __webpack_public_path__ + \"static/media/exitSimple.77cd6a459cf3920c466bf992a267c26a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExpand(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M22.5 11.2h8.6v8.6M29.9 12.4L17.2 25M16.4 11.2h-5.2v20.1h20.1v-5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M22.5 11.2h8.6v8.6M29.9 12.4L17.2 25M16.4 11.2h-5.2v20.1h20.1v-5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExpand);\nexport default __webpack_public_path__ + \"static/media/expand.f566ec2cc00ba803b8f6004f0def7e74.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExpandAll(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13,\n cy: 31.4,\n r: 1.6\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M26.5 16.7h9.8M26.5 24.1h9.8M26.5 31.4h9.8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.8 19.5L13 26.3l-6.8-6.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M36.3 9.4l-17 .1c-3.5 0-6.4 2.9-6.4 6.4v10.5\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.8 19.5L13 26.3l-6.8-6.8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M36.3 9.4l-17 .1c-3.5 0-6.4 2.9-6.4 6.4v10.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExpandAll);\nexport default __webpack_public_path__ + \"static/media/expandAll.5f2cfb1cd6d22f0b90c4c650fe31b181.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"3 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M30.8 5.2h-11c-3.1 0-5.7 2.5-5.7 5.7v5.4M38 26.3v5.6c0 3.1-2.5 5.7-5.7 5.7H19.8c-3.1 0-5.7-2.5-5.7-5.7v-4.5M38 12.4v13.9M30.8 5.3l7.1 7.1M29.9 6.5v6.7H37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M22.1 16.2l5.5 5.5-5.5 5.5M26.1 21.7H10.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 5.6,\n cy: 21.7,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExport);\nexport default __webpack_public_path__ + \"static/media/export.c15bc1bd271ba10aa042c229f59b3ade.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportCsv(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M15.8 10.6c0-3.1 2.5-5.7 5.7-5.7h11M39.7 12.1v12M32.5 5l7.1 7.1M31.6 6.2V13h7.1M15.4 16.6l5.4 5.5-5.4 5.5M19.3 22.1H7.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 2.8,\n cy: 22.1,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30.7 35.7v2.9M35.3 29.9h4.3v7.4h-4.3zM21.7 29.9h4.5v7.4h-4.5z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportCsv);\nexport default __webpack_public_path__ + \"static/media/exportCsv.dec7715be11321b8a0f590d4adc55200.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportExcel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M15.5 10.6c0-3.1 2.5-5.7 5.7-5.7h11M39.4 12.1v6M32.2 5l7.1 7.1M31.3 6.2V13h7.1M15.1 16.6l5.5 5.5-5.5 5.5M19 22.1H7.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 2.5,\n cy: 22.1,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M39 30.8H21.9v6.5H39V24.5h-8.3l-.2 12.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportExcel);\nexport default __webpack_public_path__ + \"static/media/exportExcel.1de0d14ac50f106a7828c9fca327bea4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportPdf(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M15.5 10.5c0-3.1 2.5-5.7 5.7-5.7h11M39.3 12.1v13M32.2 4.9l7.1 7.2M31.3 6.2v6.7h7.1M15 16.6l5.5 5.5-5.5 5.4M19 22.1H7.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 2.5,\n cy: 22,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M29.8 21.5c-.8 3.6-3.2 12-6.2 15.2s-5.4.7-5.1-.4c.6-2.8 3.3-3.4 9.5-4.9 6.2-1.4 8.4-1.7 9.3-1.5 2.6.5 3.3 2.7 2.4 3.4-1 .9-2.7 1-4.2.2s-8.1-6.5-9.4-11.3c-1.6-3.5 1.3-4.1 1.5-4.1.2 0 3-.2 2.2 3.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportPdf);\nexport default __webpack_public_path__ + \"static/media/exportPdf.679c0115f1b01eee3e5cb87d63a1016f.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _circle2, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportReportFull(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14,\n cy: 12.9,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.8 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7v-21c0-3.1 2.5-5.7 5.7-5.7H29c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 22.1,\n cy: 23.5,\n r: 8.1\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M19.1 16.2l3.4 7.4 7.7.8M22.5 23.6l4.3-6.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportReportFull);\nexport default __webpack_public_path__ + \"static/media/exportReportFull.6b49ab2903f09929c6618534ca655012.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportReportShort(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M18 16c-3 1.2-5 4.1-5 7.5 0 4.5 3.6 8.1 8.1 8.1 4.2 0 7.6-3.2 8.1-7.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M18 16l3.4 7.6 7.8.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 13.6,\n cy: 12.9,\n r: 1.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.5 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7v-21c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportReportShort);\nexport default __webpack_public_path__ + \"static/media/exportReportShort.36a3a69504767e7829e2bf6b1833cff7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFieldValidationNegative(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_fill_red\",\n d: \"M11.277 33.095l-1.806-1.806a1.167 1.167 0 010-1.649l19.604-19.604a1.167 1.167 0 011.649 0l1.806 1.806a1.167 1.167 0 010 1.649L12.926 33.095a1.167 1.167 0 01-1.649 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M9.471 11.842l1.806-1.806a1.167 1.167 0 011.649 0L32.529 29.64a1.167 1.167 0 010 1.649l-1.806 1.806a1.167 1.167 0 01-1.649 0L9.471 13.491a1.165 1.165 0 010-1.649z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFieldValidationNegative);\nexport default __webpack_public_path__ + \"static/media/fieldValidationNegative.74a6bdc821bbf1716b6fb0c55a52adca.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFieldValidationPositive(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_fill_green\",\n d: \"M17.811 31.242l-1.817 1.817a1.159 1.159 0 01-1.638 0l-8.593-8.593a1.159 1.159 0 010-1.638l1.817-1.817a1.159 1.159 0 011.638 0l8.593 8.593a1.159 1.159 0 010 1.638z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M14.375 33.095l-1.806-1.806a1.167 1.167 0 010-1.649l19.604-19.604a1.167 1.167 0 011.649 0l1.806 1.806a1.167 1.167 0 010 1.649L16.024 33.095a1.167 1.167 0 01-1.649 0z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFieldValidationPositive);\nexport default __webpack_public_path__ + \"static/media/fieldValidationPositive.f2fdb461355e10a94ffce320fdf6cc68.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFieldValidationWarning(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_fill_orange\",\n d: \"M37.293 32.778L22.675 7.459c-.67-1.16-2.344-1.16-3.014 0L5.043 32.778c-.67 1.16.167 2.61 1.507 2.61h29.236c1.339 0 2.177-1.45 1.507-2.61zm-16.275-.744a2.443 2.443 0 110-4.887 2.443 2.443 0 010 4.887zm2.443-8.087a.999.999 0 01-.999.999h-2.889a.999.999 0 01-.999-.999v-8.765c0-.552.447-.999.999-.999h2.889c.552 0 .999.447.999.999v8.765z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFieldValidationWarning);\nexport default __webpack_public_path__ + \"static/media/fieldValidationWarning.743a060d63029560fe8ccf39a95e5848.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFileSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M33.8 15.2l-9-9.9h-15c-.6 0-1.1.5-1.1 1.1v29.7c0 .6.5 1.1 1.1 1.1h22.8c.6 0 1.1-.5 1.1-1.1V15.2h-9V5.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFileSimple);\nexport default __webpack_public_path__ + \"static/media/fileSimple.a4ee762816697edd9b456a0dd928fc4e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFillForm(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M32.75 14.5l-13.5 13.1-4.8.9 1-4.8 13.5-13\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.75 14.5l-13.5 13.1-4.8.9 1-4.8 13.5-13M32.15 7.4l4.1 4.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.85 8.3h-10.2c-2.6 0-4.7 2.1-4.7 4.7v18c0 2.6 2.1 4.7 4.7 4.7h14.3c2.6 0 4.7-2.1 4.7-4.7v-5.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFillForm);\nexport default __webpack_public_path__ + \"static/media/fillForm.6dcd5098f248d3e55c18ee52966f179b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFilter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M17.3 35.9V19.6L6.1 6.6h30.3l-11.2 13v10.7l-3 2.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 14.9,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFilter);\nexport default __webpack_public_path__ + \"static/media/filter.ea7baf76712386009c1bf319b3721436.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFitToPage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.6 37.5h-15c-3.1 0-5.7-2.5-5.7-5.7V10.7C8 7.6 10.5 5 13.7 5h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.6 24.6l-3.1-3 3-3.1M12.5 21.6l4.9-.1M28.1 18.4l3 3-2.9 3.1M30.2 21.4l-5.1.1M18.4 13l3-3 3 3M21.4 10.9l.1 6.9M24.6 29.9l-3 3.1-3.1-3M21.6 32.1l-.1-6.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 21.5,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFitToPage);\nexport default __webpack_public_path__ + \"static/media/fitToPage.322f3a7cad5e8a83c517082a003c7411.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFitToWidth(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M8 37.4v-10c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7v10M34.5 5.7v5.5M28.6 16.6h-15C10.5 16.6 8 14 8 10.9V5.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.6 35.4l-3.1-3 3-3.1M12.5 32.4l4.9-.1M28.1 29.2l3 3-2.9 3.1M30.2 32.2l-5.1.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 32.3,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFitToWidth);\nexport default __webpack_public_path__ + \"static/media/fitToWidth.40f242652f303813055e1fce14b82045.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFloppyDisk(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M22.1 8.6v8.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M28.1 7.3H13.7C10.5 7.3 8 9.5 8 12.2v18.2c0 2.7 2.5 4.9 5.7 4.9h15.2c3.1 0 5.7-2.2 5.7-4.9V14.9l-6.5-7.6zM11 8.6h16.8v5.3c0 1.7-1.3 3-3 3H14c-1.7 0-3-1.3-3-3V8.6zm20.5 24.9H11V21c0-1.4 1-2.5 2.3-2.5h15.8c1.3 0 2.3 1.1 2.3 2.5v12.5z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFloppyDisk);\nexport default __webpack_public_path__ + \"static/media/floppyDisk.7960051cd1c4aa7aef162e65af35123a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFolder(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M4.8 22.1V8.5c0-.7.5-1.2 1.2-1.2h11.2c2.2 0 4 1.8 4 4v.9h15.2c.7 0 1.2.5 1.2 1.2v19.8c0 .7-.5 1.2-1.2 1.2L6 34.3c-.7 0-1.2-.5-1.2-1.2V18.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolder);\nexport default __webpack_public_path__ + \"static/media/folder.851b6b1d6b662f0658a16e73944d9d19.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFolderAdd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M13.3 30.5H3.4M8.4 25.6v9.9M6.3 20.5V8.2c0-.7.5-1.2 1.2-1.2h11.2c2.2 0 4 1.8 4 4v.9h15.2c.7 0 1.2.5 1.2 1.2v19.8c0 .7-.5 1.2-1.2 1.2H17.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolderAdd);\nexport default __webpack_public_path__ + \"static/media/folderAdd.72984e76395d764b2dcf2784ff1c3370.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 29.5 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M2.2 66.2V53.6h7.7M2.2 59.9h7.7M17.4 66.4V53.8c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFp);\nexport default __webpack_public_path__ + \"static/media/FP.1917e5361941bbadfb518b0aaccdc705.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFv(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 28.9 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M2.2 66.1V53.5H10M2.2 59.8H10M15.4 53.8l5.9 12.7 5.4-12.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFv);\nexport default __webpack_public_path__ + \"static/media/FV.4eac2c72ffdad8f9a5a94efe1169ce15.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 30.9 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M18.7 53.8v12.6s9.9 1.5 9.9-6.6c0 .1-.4-7.7-9.9-6zM2.4 66.3V53.7c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPd);\nexport default __webpack_public_path__ + \"static/media/PD.076494528490038d78fbcec3f50fe16f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _ellipse;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPddopp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 89.3 120\",\n xmlSpace: \"preserve\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M18.1 53.8v12.5s9.9 1.4 9.9-6.5c0 0-.4-7.7-9.9-6zM2.4 53.8v12.5s9.9 1.4 9.9-6.5c-.1 0-.4-7.7-9.9-6zM45.4 66.4V53.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5M61.2 66.4V53.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5M76.9 66.3V53.7c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n cx: 36.7,\n cy: 63.4,\n rx: 3.5,\n ry: 3.1\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPddopp);\nexport default __webpack_public_path__ + \"static/media/PDDOPP.0216d4f9cfdce3343d6fb548ad49387f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPpd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 46.1 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M33.9 53.8v12.5s9.9 1.4 9.9-6.5c-.1 0-.4-7.7-9.9-6zM2.3 66.4V53.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5M18.1 66.4V53.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPpd);\nexport default __webpack_public_path__ + \"static/media/PPD.cbaa520e0bd07c32e3f014a5d5e5820b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVbu(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 48.5 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M19.7 69.6v-6.2c10.4-1.2 9.9 3.1 9.9 3.1s.7 3.5-8.6 3.2l-1.3-.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M19.7 63.1v-6.2c10.4-1.2 9.9 3.1 9.9 3.1s.7 3.5-8.6 3.2l-1.3-.1zM2.4 56.8l6 12.7 5.3-12.7M34.8 56.8s-.4 12.7 5.9 12.7 5.4-12.7 5.4-12.7M41.2 54.2l1.9-4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVbu);\nexport default __webpack_public_path__ + \"static/media/VBU.85b33aa2f6dff05e14cfa5adb58fa6b9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _ellipse;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVddopp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 90.5 120\",\n xmlSpace: \"preserve\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M76.8 52.6l5.9 12.8 5.4-12.8M18.1 52.8v12.5s9.9 1.4 9.9-6.5c0 0-.3-7.7-9.9-6zM2.4 52.8v12.5s9.9 1.4 9.9-6.5c0 0-.3-7.7-9.9-6zM45.4 65.4V52.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5M61.2 65.4V52.9c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.8-8.6 3.5\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n cx: 36.8,\n cy: 62.3,\n rx: 3.5,\n ry: 3.1\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVddopp);\nexport default __webpack_public_path__ + \"static/media/VDDOPP.510afab4e81d9dcc0bebfefe81e97918.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVpd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 48.2 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M35.9 53.8v12.6s9.9 1.5 9.9-6.6c0 .1-.3-7.7-9.9-6zM20.1 66.3V53.7c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6M2.3 53.6l6 12.7 5.4-12.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVpd);\nexport default __webpack_public_path__ + \"static/media/VPD.17b10a83672fb140efa287cd366c6098.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 32.5 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M20.4 53.8v12.6s9.9 1.5 9.9-6.6c0 .1-.3-7.7-9.9-6zM2.2 53.4h10.5L2.2 66.3h10.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZd);\nexport default __webpack_public_path__ + \"static/media/ZD.a053b07a282d6da2f835c2bff33562ac.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZfp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 45.4 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M33.2 66.4V53.8c10.4-1.4 9.9 3.4 9.9 3.4s.7 3.9-8.6 3.6M2.2 53.6h10.4L2.2 66.4h10.4M19.6 66.4V53.8h7.7M19.6 60.1h7.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZfp);\nexport default __webpack_public_path__ + \"static/media/ZFP.5b0a3d8e28c03efb193968296e30ee6f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZfv(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 46.2 120\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M19.5 66.3V53.7h7.7M19.5 60h7.7M32.6 53.6l6 12.8 5.3-12.8M2.2 53.6h10.5L2.2 66.4h10.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZfv);\nexport default __webpack_public_path__ + \"static/media/ZFV.ac6b5bfbb538ea9dac094fc07b620028.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFolder(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 120 120\",\n xmlSpace: \"preserve\",\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 className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n d: \"M9.6 64.2V21.8c0-2.1 1.7-3.8 3.8-3.8h34.8c6.8 0 12.4 5.6 12.4 12.4v2.7h47.3c2 0 3.7 1.6 3.7 3.7v61.6c0 2-1.7 3.7-3.7 3.7H13.3c-2 0-3.7-1.6-3.7-3.7V52\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolder);\nexport default __webpack_public_path__ + \"static/media/_folder.5bdc0db052b714e2c68dab320a5c28f2.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDots(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 40.4 120\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n cx: 6.3,\n cy: 60,\n r: 3.9\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n cx: 20.5,\n cy: 60,\n r: 3.9\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main lighter\",\n vectorEffect: \"non-scaling-stroke\",\n cx: 34.1,\n cy: 60,\n r: 3.9\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDots);\nexport default __webpack_public_path__ + \"static/media/dots.9df23297ae74b412d0a4b7125c0a5cd8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFolderOther(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 id: \"IC_4L_main\",\n className: \"IC_4L_main\",\n d: \"M4.8 22.6V9c0-.7.5-1.2 1.2-1.2h11.2c2.2 0 4 1.8 4 4v.9h15.2c.7 0 1.2.5 1.2 1.2v19.8c0 .7-.5 1.2-1.2 1.2L6 34.8c-.7 0-1.2-.5-1.2-1.2V18.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 14.9,\n cy: 23.3,\n r: 0.6\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 23.4,\n r: 0.6\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 27.6,\n cy: 23.3,\n r: 0.6\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolderOther);\nexport default __webpack_public_path__ + \"static/media/folderOther.fa2de5c92e7768797172b3f4a3187488.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2, _circle3, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgForm(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.6 37.5h-15C10.5 37.5 8 35 8 31.9V10.7C8 7.6 10.5 5 13.7 5h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.3 5v7M28.6 5v7M13.9 5v7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 12.9,\n r: 2.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 13.9,\n cy: 12.9,\n r: 0.8\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 28.6,\n cy: 12.9,\n r: 0.8\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.7 21.3h12.5M14.7 27.8h12.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgForm);\nexport default __webpack_public_path__ + \"static/media/form.dd918d88ade497a3f7e71d0d31f08575.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgForward(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M20.9 8.9l12.7 12.6-12.7 12.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.2 9l12.6 12.6-12.6 12.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgForward);\nexport default __webpack_public_path__ + \"static/media/forward.3f51917cf9679135cc247c5f1de77539.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFullScreenClose(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"d\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M5.7 5.87l9.8 9.81M26.96 27.35l9.8 9.8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6.81 17.92H17.9V6.82M36.33 25.7H25.24v11.09\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.87,\n cy: 21.8,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFullScreenClose);\nexport default __webpack_public_path__ + \"static/media/fullScreenClose.8d741530a9a1dbd59ff021b0ff2f09e0.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFullScreenOpen(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"d\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.71 9.91l7.36 7.36M25.38 25.8l7.36 7.36\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M24.01 35.42h11.1V24.33M18.36 7.53H7.27v11.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 21.44,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFullScreenOpen);\nexport default __webpack_public_path__ + \"static/media/fullScreenOpen.faeedc9db801ac27b3bccb9142e5d07a.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGraph(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Predloha\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M143.277 73.866h32.248v95.541h-32.248zM24.547 99.258h32.248v70.15H24.547zM83.912 32.19h32.248v137.217H83.912z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.866 171.362h177.362\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M143.277 75.332h32.248v95.541h-32.248zM24.547 100.724h32.248v70.15H24.547zM83.912 33.656h32.248v137.217H83.912z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGraph);\nexport default __webpack_public_path__ + \"static/media/graph.9aeba397ca0e9ebe4cda3bb2e7ef196d.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHand(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 23,\n cy: 27,\n r: 1.4\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M24.6 20.4V6.8c0-.6-.3-1.1-.7-1.4-.4-.4-1-.6-1.7-.6-1.3 0-2.4.9-2.4 2v14.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15.1 24.5V10.7c0-1.1 1-2 2.4-2 .7 0 1.2.2 1.7.6s.7.9.7 1.4v10.7M24.6 20.4V9.6c0-1.1 1.1-2 2.4-2 .7 0 1.2.2 1.7.6.3.3.6.8.6 1.4V20.5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.8 32.5c.9-4.3 1.2-9.3 1.2-9.3v-7.8c0-.6-.3-1.1-.7-1.4-.4-.4-1-.6-1.7-.6-1.3 0-2.4.9-2.4 2v5.1M15.1 24.5l-1-1.4-1.1-1.7c-.4-.7-1.2-1.2-2.1-1.2-.3 0-.7.1-1 .2-1.2.5-1.7 1.7-1.1 2.7l4.2 7.7 2.1 3.9 2.5 3h13.6M24.6 20.4V6.8c0-.6-.3-1.1-.7-1.4-.4-.4-1-.6-1.7-.6-1.3 0-2.4.9-2.4 2v14.6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15.1 24.5V10.7c0-1.1 1-2 2.4-2 .7 0 1.2.2 1.7.6s.7.9.7 1.4v10.7M24.6 20.4V9.6c0-1.1 1.1-2 2.4-2 .7 0 1.2.2 1.7.6.3.3.6.8.6 1.4V20.5\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.8 32.5c.9-4.3 1.2-9.3 1.2-9.3v-7.8c0-.6-.3-1.1-.7-1.4-.4-.4-1-.6-1.7-.6-1.3 0-2.4.9-2.4 2v5.1M15.1 24.5l-1-1.4-1.1-1.7c-.4-.7-1.2-1.2-2.1-1.2-.3 0-.7.1-1 .2-1.2.5-1.7 1.7-1.1 2.7l4.2 7.7 2.1 3.9 2.5 3h13.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHand);\nexport default __webpack_public_path__ + \"static/media/hand.c42d76291898f8d4d683dcc104474078.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHelp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_3\",\n \"data-name\": \"Layer 3\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_8548\",\n className: \"IC_4L_main\",\n d: \"M18.486 35.036s-3.942-3.944-15.867-2.856V11.993c11.925-1.088 15.869 2.855 15.869 2.855v20.186h-.003z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_8549\",\n className: \"IC_4L_main\",\n d: \"M34.35 15.929v16.25c-11.921-1.092-15.863 2.856-15.863 2.856V14.846a10.94 10.94 0 014.659-2.203\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_8550\",\n className: \"IC_4L_sub\",\n d: \"M32.173 15.929h5.533a2.302 2.302 0 002.195-2.399V8.109a2.301 2.301 0 00-2.195-2.399H25.343a2.302 2.302 0 00-2.195 2.399v5.421a2.304 2.304 0 002.195 2.399h1.025l-1.87 4.303 7.673-4.303h.003z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_8551\",\n className: \"IC_4L_dot\",\n d: \"M27.861 11.295a1.445 1.445 0 111.443-1.447v.004c0 .797-.646 1.443-1.443 1.443\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHelp);\nexport default __webpack_public_path__ + \"static/media/help.bd8b7650617c713d634d6e8a1fe8ed1d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHome(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M3.9 16.3l17.4-12 17.3 12M7.8 32.6v-19\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M35 13.8v18.8c0 3.1-2.5 5.7-5.7 5.7H12.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M17.7 31.7V28c0-2.1 1.7-3.8 3.8-3.8 2.1 0 3.8 1.7 3.8 3.8v3.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 30,\n cy: 21.3,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHome);\nexport default __webpack_public_path__ + \"static/media/home.7ecc6c38dcfa8a8f9b9aaf0854bb9ce3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHotspots(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16 34.7c-3.7-1.5-6.8-4.4-8.3-8.5-2.8-7.5 1-15.9 8.6-18.7s15.9 1 18.7 8.6c2.8 7.5-1 15.9-8.6 18.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.5 14.1s8.4-2.4 8.8 3c0 0 .8 2.5-4.4 4.4-5.6 2-4.3 5.7-3.7 6.4.5.6 2.5 3 8.7 1.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 35.9,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHotspots);\nexport default __webpack_public_path__ + \"static/media/hotspots.f21387353b0b5cfef9da9a2991656e69.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgImage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 23.3,\n cy: 21.2,\n r: 1.5\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6 15.6h25.3v17.7H6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M11.2 10.5h25.3v18.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M10.8 27.7s1.2-3 4.6-2.8 4.4 2.6 7.6 2.7c2.1 0 3.5-1 3.5-1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgImage);\nexport default __webpack_public_path__ + \"static/media/image.58e1f0002b39b881bcbe603f4c507785.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIncoming(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\n xmlSpace: \"preserve\",\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 className: \"SI_4L_stroke_green\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M31.463 20.86H11.421M18.444 28.28l-7.387-7.42 7.387-7.415\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIncoming);\nexport default __webpack_public_path__ + \"static/media/incoming.19e2e0a5c806eb2cd62901cf0ce25335.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIncomingpayment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M12.422 20.523h12.896\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 30.874,\n cy: 20.463,\n r: 1.696\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M15.54 26.113l-5.59-5.59 5.59-5.589\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIncomingpayment);\nexport default __webpack_public_path__ + \"static/media/incomingpayment.bf0b950bd428435a0a1698905773fbc6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIncreaseOfPrice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M25.6 22.4C18 20.2 18 28.1 22.8 28c4.7-.1 5.3 7.5-3.1 5.2M22.6 20.7v.7M22.6 34.3v.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 32.9,\n cy: 40.8,\n r: 1.7\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M33 35.4V17.2h6.8L22.7 2.1 5.8 17.5h7v23.3H28\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIncreaseOfPrice);\nexport default __webpack_public_path__ + \"static/media/increaseOfPrice.2c0ef5e0a92fc32085968adc037aa598.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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 xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M26.6 8.3c3.7 1.5 6.8 4.4 8.3 8.5 2.8 7.5-1 15.9-8.6 18.7s-15.9-1-18.7-8.6 1-15.9 8.6-18.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.5,\n cy: 7.5,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M18.7 15.3l3.6-1.1L19 26.1s-1.3 5.1 4.9.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.dfb791455f8712a2fd3d7364d2f93534.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _circle, _path, _circle2, _circle3, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInterrupt(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_3\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 5.914,\n cy: 28.524,\n r: 1.399\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M8.574 24.42l2.652-4.22h12.889l4.693 4.613 9.197 2.367v6.156H34.07M25.978 33.336H17.99M11.165 33.336H5.914\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 14.578,\n cy: 34.079,\n r: 3.413\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 29.76,\n cy: 34.079,\n r: 3.413\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.775 6.991l-7.91 7.91M26.865 6.991l7.91 7.91\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInterrupt);\nexport default __webpack_public_path__ + \"static/media/interrupt.d805b5c895d7f7490ed59c354d8397ce.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInvoiceIssuedBig(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M60.6 36.1h34.5M77.8 104.7v-49M60.6 64.3h34.5M60.6 72.7h34.5M60.6 81.2h33.7M95.1 89.2H62.2M95.1 96.6H60.6M60.6 45.1h34.5M60.6 84.8V55.7h34.5v49H60.6V91.3M45.5 44.7H31.2V31.2c0-3.8 3.2-6.9 7.2-6.9 3.9 0 7.2 3.1 7.2 6.9v13.5z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M38.4 24.2h64.5c3.9 0 7.2 3.1 7.2 6.9v87.5H52.4M45.5 44.6v14.5M36.3 71l-1.6 12.2v15.2l1.6 14.2\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M36.3 70.7v.3l9.2-11.8 2.2-2.9c1.3-1.6 3.6-1.9 5.2-.6.9.7 1.4 1.8 1.4 2.9 0 .8-.3 1.6-.8 2.3l-7.8 9.9-1.2 13.5 3.8 8.5 7.7-7.5c1.2-1.2 3.1-1.4 4.5-.5.3.2.5.4.8.6.8.8 1.2 2 1 3.1 0 .2-.1.5-.2.7-.2.5-.5 1-.9 1.4l-.7.7-12.4 12.1v9.2M31.2 112.6h21.2v14H31.2z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInvoiceIssuedBig);\nexport default __webpack_public_path__ + \"static/media/invoiceIssuedBig.e8d86499d8fbe4baba7a24da62450e1f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInvoiceReceivedBig(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 141.7 141.7\",\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 className: \"DI_4L_main\",\n d: \"M38.6 46.7H23.4V32.4c0-4 3.4-7.3 7.6-7.3 4.2 0 7.6 3.3 7.6 7.3v14.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M31.2 24.9h64.9c4.2 0 7.6 3.3 7.6 7.3v22M118.6 105.1v14H24.2v-14M118.6 105.1V64.7l-15-10.5M38.6 54.6L24.2 64.7v40.4M38.6 74.7v-28M103.6 74.9V54.2M53.3 37.1h36.5M71.6 96.7V57.9M53.3 67h36.5M53.3 75.9h36.5M53.3 84.9H89M76.6 93.3H65.5M53.3 46.6h36.5M53.3 84.9v-27h36.5v26.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M118.6 64.7l-15 10.2-13.8 9.4-.8.6-12.4 8.4-5 3.4-.6.4-5.5-3.8-12.2-8.4-14.7-10.2-14.4-10\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInvoiceReceivedBig);\nexport default __webpack_public_path__ + \"static/media/invoiceReceivedBig.ebe18231a51f1ea32dd323dd2e8b75b5.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLabel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 28.7,\n cy: 14.6,\n r: 2.3\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.8 34.3l-4.7-4.7c-2-2-2-5.2 0-7.2L23 8.5l11.6-.2.3 12.2L21 34.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M15.4 23l4.9 4.9M19.3 18.8l4.9 4.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLabel);\nexport default __webpack_public_path__ + \"static/media/label.c39feaa9050527ec3c4e5037566dc5fb.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLastUpdated(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34 26.6c-1.5 3.7-4.4 6.8-8.5 8.3-7.5 2.8-15.9-1-18.7-8.6s1-15.9 8.6-18.7 15.9 1 18.7 8.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 35.2,\n cy: 21.3,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.5 27.6L20 21.3v-7.4M36.2 10.9l-1.7 5.9-6-1.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLastUpdated);\nexport default __webpack_public_path__ + \"static/media/lastUpdated.32116b11c62aa8df2e875e29a763e004.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLastUpdatedSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34 26.6c-1.5 3.7-4.4 6.8-8.5 8.3-7.5 2.8-15.9-1-18.7-8.6s1-15.9 8.6-18.7 15.9 1 18.7 8.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.5 27.6L20 21.3v-7.4M36.2 10.9l-1.7 5.9-6-1.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLastUpdatedSimple);\nexport default __webpack_public_path__ + \"static/media/lastUpdatedSimple.702fd07185963a2270d65295cfc0f8df.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLike(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M13.3 14.5l6.5-5.7 2.6-6.6h4.3v10.6h8.6v6l-4 10.3h-18zM7.3 15.3V29\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLike);\nexport default __webpack_public_path__ + \"static/media/like.525c3aa31514bdb063f3aca5e9a45fb7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLikeFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M13.3 14.8l6.5-5.7 2.6-6.6h4.3v10.6h8.6v6l-4 10.3h-18z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M7.3 15.6v13.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLikeFilled);\nexport default __webpack_public_path__ + \"static/media/likeFilled.6511bc38f45797c4d9d8c70e2a64bcd1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgList(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M14 20.1h14.6v11H14zM14 25.4h14.6M21.1 20.1v11\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.6 37.5h-15C10.5 37.5 8 35 8 31.9V10.7C8 7.6 10.5 5 13.7 5h15.2c3.1 0 5.7 2.5 5.7 5.7v21.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.3 5v7M28.6 5v7M13.9 5v7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 12.9,\n r: 2.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 13.9,\n cy: 12.9,\n r: 0.8\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 28.6,\n cy: 12.9,\n r: 0.8\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgList);\nexport default __webpack_public_path__ + \"static/media/list.7a8b467fca17fc5308f81246356d8cf0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLock(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M12 20.8v-5.6c0-4.9 4-8.9 8.9-8.9 2.5 0 4.7 1 6.3 2.6 1.6 1.6 2.6 3.8 2.6 6.3v5.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8.7 30.2v-9.4h25.1v6.4c0 5-4 9-9 9H10\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 28.5,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLock);\nexport default __webpack_public_path__ + \"static/media/lock.8d1a49a4a045c19f77dbf4b853da7b28.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLockFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M12.1 20.6V15c0-4.9 4-8.9 8.9-8.9 2.5 0 4.7 1 6.3 2.6 1.6 1.6 2.6 3.8 2.6 6.3v5.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M8.9 36V20.6H34V27c0 5-4 9-9 9H8.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 28.4,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLockFilled);\nexport default __webpack_public_path__ + \"static/media/lockFilled.df535eb67c1f6b73bf92b45bd85e077e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLockclosed(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M14.1 19.4v-5.2c0-4.6 3-8.3 6.8-8.3 1.9 0 3.6.9 4.8 2.4 1.2 1.5 2 3.6 2 5.9v5.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M24.3 36.7c4.3 0 7.9-4.5 7.9-10v-7.1H10.3v7.1c0 5.5 3.5 10 7.9 10h6.1z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLockclosed);\nexport default __webpack_public_path__ + \"static/media/lockclosed.7368e2e8042eec96583a852fe62248a2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLockopened(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M24.3 36.9c4.3 0 7.9-4.5 7.9-10v-7.1H10.3v7.1c0 5.5 3.5 10 7.9 10h6.1zM14.1 11.7c1-3.6 3-6 6.8-6 1.9 0 3.6.9 4.8 2.4 1.2 1.5 2 3.6 2 5.9v5.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M24.3 36.9c4.3 0 7.9-4.5 7.9-10v-7.1H10.3v7.1c0 5.5 3.5 10 7.9 10h6.1zM14.1 11.7c1-3.6 3-6 6.8-6 1.9 0 3.6.9 4.8 2.4 1.2 1.5 2 3.6 2 5.9v5.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLockopened);\nexport default __webpack_public_path__ + \"static/media/lockopened.fe8d75bb73c354d1be47cdedae021dab.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEvalaplain(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_evalalogo\",\n d: \"M25.483 6.955c-4.662 2.97-8.535 7.29-10.719 12.395-.793 1.855-1.043 5.004 1.602 5.445 1.026.171 2.285-.212 3.259-.481 1.249-.346 2.464-.869 3.505-1.648.731-.547 1.617-1.254 1.758-2.217.145-.998-.467-1.784-1.464-1.936-1.041-.158-1.98.499-2.801 1.051a16.853 16.853 0 00-2.923 2.494 17.072 17.072 0 00-3.766 6.441c-.579 1.826-1.129 4.328.127 6.015 1.67 2.244 4.68.636 6.358-.721 2.434-1.968 4.355-4.581 6.344-6.972.511-.614-.369-1.503-.884-.884-1.189 1.43-2.356 2.862-3.604 4.243-1.285 1.423-2.613 2.921-4.371 3.765-1.034.496-2.321.75-2.978-.396-.37-.644-.393-1.475-.338-2.196.137-1.815.854-3.671 1.723-5.251a16.034 16.034 0 013.326-4.195 14.705 14.705 0 012.24-1.66c.503-.304 2.072-.859 1.628.232-.206.507-.722.905-1.153 1.22-1.449 1.059-3.451 1.725-5.244 1.854-3.339.241-.842-4.587-.113-5.893 2.186-3.92 5.338-7.216 9.119-9.624.676-.433.05-1.515-.631-1.081z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEvalaplain);\nexport default __webpack_public_path__ + \"static/media/evala.plain.0a15bc0a15d364eb95a1bfa6e43875c7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFacebook(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"B_4L_main\",\n d: \"M38.7 21.2c0-9.8-8-17.8-17.8-17.8C11 3.4 3 11.4 3 21.2c0 8.9 6.5 16.3 15 17.6V26.4h-4.5v-5.2H18v-3.9c0-4.5 2.7-6.9 6.7-6.9 2 0 4 .3 4 .3v4.4h-2.2c-2.2 0-2.9 1.4-2.9 2.8v3.3h4.9l-.8 5.2h-4.2v12.5c8.7-1.4 15.2-8.8 15.2-17.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M38.7 21.2c0-9.8-8-17.8-17.8-17.8C11 3.4 3 11.4 3 21.2c0 8.9 6.5 16.3 15 17.6V26.4h-4.5v-5.2H18v-3.9c0-4.5 2.7-6.9 6.7-6.9 2 0 4 .3 4 .3v4.4h-2.2c-2.2 0-2.9 1.4-2.9 2.8v3.3h4.9l-.8 5.2h-4.2v12.5c8.7-1.4 15.2-8.8 15.2-17.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebook);\nexport default __webpack_public_path__ + \"static/media/facebook.1649118d9a5ab7a0e2d20d9e9b35defa.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _clipPath, _path, _defs2, _clipPath2, _path2, _defs3, _clipPath3, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGoogle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000070101861412848332010000002963557804954277033_\",\n d: \"M37.7 18.1H21.1V25h9.5c-.9 4.4-4.6 6.9-9.5 6.9-5.8 0-10.5-4.7-10.5-10.5s4.7-10.5 10.5-10.5c2.5 0 4.8.9 6.5 2.3L32.8 8c-3.1-2.7-7.2-4.4-11.7-4.4-9.8 0-17.7 7.9-17.7 17.7S11.3 39 21.1 39C30 39 38 32.5 38 21.3c.1-1.1-.1-2.2-.3-3.2z\"\n }))), _clipPath || (_clipPath = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000009573252922548029050000016927743729837995700_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000070101861412848332010000002963557804954277033_\",\n overflow: \"visible\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.8 31.8v-21l13.7 10.5L1.8 31.8z\",\n clipPath: \"url(#SVGID_00000009573252922548029050000016927743729837995700_)\",\n fill: \"#67154A\"\n })), _defs2 || (_defs2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000152260745992581521670000010623091416114117008_\",\n d: \"M37.7 18.1H21.1V25h9.5c-.9 4.4-4.6 6.9-9.5 6.9-5.8 0-10.5-4.7-10.5-10.5s4.7-10.5 10.5-10.5c2.5 0 4.8.9 6.5 2.3L32.8 8c-3.1-2.7-7.2-4.4-11.7-4.4-9.8 0-17.7 7.9-17.7 17.7S11.3 39 21.1 39C30 39 38 32.5 38 21.3c.1-1.1-.1-2.2-.3-3.2z\"\n }))), _clipPath2 || (_clipPath2 = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000161606349951813504460000003697524059464471231_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000152260745992581521670000010623091416114117008_\",\n overflow: \"visible\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.8 10.8l13.7 10.5 5.6-4.9 19.4-3.1V1.9H1.8v8.9z\",\n clipPath: \"url(#SVGID_00000161606349951813504460000003697524059464471231_)\",\n fill: \"#67154A\"\n })), _defs3 || (_defs3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000090982877699392032710000016683893952039455902_\",\n d: \"M37.7 18.1H21.1V25h9.5c-.9 4.4-4.6 6.9-9.5 6.9-5.8 0-10.5-4.7-10.5-10.5s4.7-10.5 10.5-10.5c2.5 0 4.8.9 6.5 2.3L32.8 8c-3.1-2.7-7.2-4.4-11.7-4.4-9.8 0-17.7 7.9-17.7 17.7S11.3 39 21.1 39C30 39 38 32.5 38 21.3c.1-1.1-.1-2.2-.3-3.2z\"\n }))), _clipPath3 || (_clipPath3 = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000035525052307717944090000001581160645210187929_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000090982877699392032710000016683893952039455902_\",\n overflow: \"visible\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.8 31.8L26 13.2l6.4.8 8.1-12.1v38.7H1.8v-8.8z\",\n clipPath: \"url(#SVGID_00000035525052307717944090000001581160645210187929_)\",\n fill: \"#67154A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGoogle);\nexport default __webpack_public_path__ + \"static/media/google.c3313851ce726ac623bc071ec237c670.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFakturoid(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 140.65 141.73\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M26.31 74.8c0 1.09.89 1.74 2.42 1.74s2.24-.73 2.24-2.16v-1.35h-1.25c-2.66 0-3.41.62-3.41 1.77\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M23.73 55.33c-8.43 0-15.27 5.42-15.27 12.11v5.42c0 6.69 6.84 12.12 15.27 12.12S39 79.56 39 72.86v-5.42c0-6.69-6.83-12.11-15.27-12.11zm-4.95 17.95h-1.51v5.87h-1.41c-1.12 0-2.11-.86-2.11-2.08V67.8c0-2.86 1.33-6.45 5.32-7.33 4.04-.9 5.17 1.08 5.17 1.08s-2.53-.03-4.51 1.51c-1.13.88-2.43 2.82-2.47 5.03v2.73c2.5.48 4.49-.35 5.08-.61h.1s-.18 3.08-3.67 3.08zm15.61 1.08c0 2.97-2.19 5.02-5.32 5.02h-.7c-3.34 0-5.63-1.87-5.63-4.45s1.82-4.4 6.99-4.4h1.22v-.18c0-1.98-.94-3.38-3.02-3.38-2.53 0-3.93.96-4.46 1.61h-.13v-1.12c0-1.56 1.41-3.43 5.11-3.43 3.13 0 5.94 2.26 5.94 7.1v3.23zm18.44-8.47h-4.39v3.56h5.13v.86c0 .92-.73 1.42-1.37 1.42h-3.66v6.12h-1.18c-1.04 0-1.66-.54-1.66-1.68V65.72c0-1.78.71-2.22 2.37-2.22h6.38v.9c0 .67-.5 1.49-1.62 1.49m8.34 6.99h-1c-2.12 0-2.73.5-2.73 1.42s.71 1.4 1.94 1.4 1.79-.59 1.79-1.74v-1.09zm-1.52 5.11h-.56c-2.66 0-4.5-1.51-4.5-3.58s1.46-3.54 5.58-3.54h.98v-.15c0-1.59-.75-2.07-2.42-2.07-2.02 0-3.14.77-3.56 1.3h-.1v-.9c0-1.26 1.12-2.76 4.08-2.76 2.5 0 4.75 1.17 4.75 5.07v2.6c0 2.39-1.75 4.04-4.25 4.04zm8.34-13.32v6.76c1.09-1.43 2.17-2.88 3.47-4.12.67-.63 1.35-.74 2.25-.74h1.62v.11c-.8.67-3.43 3.65-4.61 5.14.9 1.11 1.79 2.27 2.8 3.3 1.03 1.03 1.49 1.24 2.19 1.47-.29.9-.76 1.39-1.91 1.39-.63 0-1.37-.29-1.85-.78-1.45-1.49-2.71-3.17-3.95-4.83v5.52l-.9.02c-1.3.02-1.93-.67-1.93-1.99V62.8h.9c1.37 0 1.93.78 1.93 1.87m9.35.17c.38-.44.88-.78 1.31-.78h.65v2.57h3.9v1.16c0 .59-.52 1.35-1.67 1.35h-2.23v4.44c0 1.47.65 2.04 1.77 2.04.9 0 1.58-.13 2.02-.4h.1v1.01c0 1.16-.83 1.9-2.46 1.9-2.83 0-4.21-1.56-4.21-4.21V67.1c0-1.12.21-1.54.81-2.25m12.21 13.28c-2.77 0-4.95-1.84-4.95-5.13v-6.43h.52c1.6 0 2.31.69 2.31 2.01v4.15c0 2.07 1 2.91 2.27 2.91 1.14 0 1.96-.8 1.96-2.72v-6.35h.5c1.62 0 2.31.69 2.31 2.01v4.23c0 3.52-1.64 5.32-4.91 5.32m13.12-8.85c-.42-.17-.9-.34-1.64-.34-1.26 0-1.95.69-1.95 2.41v6.5h-.78c-1.26 0-2.06-.63-2.06-1.8v-5.2c0-2.26 1.2-4.42 4.18-4.42 1.74 0 2.35.98 2.35 1.84v1.01h-.11zm5.61-.48c-1.62 0-2.44 1.34-2.44 3.21 0 2.25.82 3.59 2.69 3.59 1.64 0 2.44-1.34 2.44-3.19 0-2.27-.84-3.61-2.69-3.61zm.25-2.51c3.41 0 5.36 2.73 5.36 5.73 0 3.4-1.96 6.11-5.61 6.11-3.41 0-5.36-2.71-5.36-5.71 0-3.4 1.96-6.13 5.61-6.13zm10.22 11.84c-2.17 0-3.36-1.24-3.36-3.54V66.9h.79c1.25 0 2 .67 2 2.11v5.31c0 1.14.48 1.5 1.71 1.5h.52v.61c0 1.22-.48 1.71-1.67 1.71h.01zm-1.98-12.3c-.9 0-1.63-.76-1.63-1.67s.73-1.64 1.63-1.64 1.65.74 1.65 1.64-.75 1.67-1.65 1.67zm8.77 2.86c-1.43 0-2.35 1.38-2.35 3.2 0 2.34 1.22 3.87 2.83 3.87s2.27-1.17 2.27-3.22c0-2.83-1.24-3.85-2.75-3.85zm.14 9.44c-2.98 0-5.26-2.6-5.26-5.69 0-3.7 1.8-6.11 5.1-6.11 1.13 0 2.37.8 2.81 1.78v-5.3h.86c1.34 0 1.93.77 1.93 1.9v7.95c0 3.29-1.55 5.46-5.43 5.46z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFakturoid);\nexport default __webpack_public_path__ + \"static/media/fakturoid.91ad43958c5186c1fb698b344beb831e.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIdoklad(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 140.65 141.73\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M15.07 57.93c-.55-.53-1.31-.79-2.07-.73-.76-.06-1.51.2-2.07.73-.46.51-.7 1.18-.67 1.87-.02.68.22 1.34.67 1.84.55.53 1.31.79 2.07.73.76.06 1.51-.2 2.07-.73.45-.5.69-1.16.67-1.84.03-.69-.21-1.36-.67-1.87M61.73 68.84c-.43-1.05-1.06-2-1.86-2.8a8.651 8.651 0 00-2.94-1.9c-2.53-.93-5.3-.93-7.83 0a8.93 8.93 0 00-2.97 1.9c-.81.79-1.45 1.75-1.88 2.8-.44 1.06-.66 2.2-.65 3.36v.71c0 1.13.21 2.25.62 3.29a8.23 8.23 0 001.84 2.78c.84.84 1.85 1.49 2.96 1.92 2.59.93 5.41.93 8 0 2.18-.83 3.9-2.54 4.76-4.7.44-1.04.67-2.16.68-3.29v-.71a9.073 9.073 0 00-.71-3.36m-4.87 6.21c-.3.71-.81 1.31-1.46 1.73-1.5.82-3.32.82-4.82 0a3.856 3.856 0 01-1.49-1.73 6.5 6.5 0 01.02-5.03c.32-.71.85-1.31 1.51-1.73 1.47-.85 3.28-.85 4.75 0 .65.42 1.17 1.02 1.49 1.73.68 1.61.68 3.42.02 5.03M20.5 76.09h5.1v5.04h-5.1zM13.18 64.04c-.76-.05-1.51.21-2.07.73-.46.51-.7 1.18-.67 1.87v14.35h5.1V64.04h-2.37zM75.93 71.27l5.6-7.24H76.3l-6.19 8.06V58.4h-2.27c-.76-.06-1.51.2-2.07.73-.46.51-.7 1.18-.67 1.87v19.98h5.01v-7.92h1.65l5.35 7.92h5.63l-6.82-9.71zM87.79 58.4c-.74-.04-1.47.22-2.02.73-.45.52-.68 1.19-.65 1.87v19.99h4.99V58.41H87.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M40.5 65.1a9.944 9.944 0 00-2.32-3.54c-1.1-1.07-2.42-1.9-3.86-2.44-1.72-.63-3.55-.93-5.38-.9h-5.7c-.76-.06-1.51.2-2.07.73-.46.51-.7 1.18-.67 1.87v12.81h5.1V62.98h3.58c.98-.01 1.96.13 2.89.43.81.27 1.55.71 2.16 1.3.6.59 1.07 1.31 1.37 2.1.33.9.5 1.85.48 2.81 0 .71-.08 1.42-.27 2.11-.04.13-.08.25-.13.37a5.835 5.835 0 01-3.53 3.49c-.93.33-1.91.5-2.89.48h-1.17v5.02h.83c1.84.04 3.67-.28 5.39-.94 1.45-.57 2.76-1.44 3.86-2.55 1.01-1.03 1.8-2.25 2.32-3.59.5-1.29.76-2.67.76-4.05v-.68c0-1.43-.25-2.85-.76-4.19M108 66.74c-.65-1.02-1.6-1.8-2.72-2.24-1.41-.53-2.9-.79-4.4-.74-.6 0-1.18 0-1.93.02l-1.33.08c-.23.03-.46.07-.69.13-.39.09-.74.29-1.02.58-.46.51-.69 1.18-.67 1.86v1.76c.64-.04 1.36-.08 2.16-.11s1.57-.06 2.32-.08c.75-.02 1.35-.03 1.8-.03.72-.06 1.44.16 1.99.63.46.55.68 1.25.62 1.96v.03h-3.08c-1.36-.02-2.72.17-4.01.57a5.6 5.6 0 00-2.71 1.76c-.67.87-1.01 1.95-.97 3.05-.03 1.03.24 2.04.78 2.92.53.82 1.28 1.47 2.17 1.87 1.01.45 2.11.67 3.22.65h.41c1.01.03 2.01-.13 2.96-.45.74-.25 1.39-.69 1.9-1.28l.18-.24v1.53h3.95V70.58c.06-1.35-.27-2.68-.93-3.85m-3.85 7.98c0 .69-.17 1.37-.5 1.98-.25.44-.64.79-1.1 1.01-.48.2-.99.3-1.51.29-.73.05-1.44-.18-2.01-.63-.47-.42-.72-1.03-.7-1.65-.03-.65.23-1.28.7-1.72.57-.46 1.28-.68 2.01-.63h3.11v1.36zM129.72 59.14c-.55-.53-1.31-.79-2.07-.73h-2.27v7.04a5.383 5.383 0 00-1.96-1.3 9.43 9.43 0 00-2.77-.57c-.26-.03-.52-.04-.78-.04-1.12 0-2.23.23-3.27.66-.97.42-1.82 1.05-2.51 1.86a9.201 9.201 0 00-2.16 6.17v.71c0 1.16.19 2.31.59 3.4.37 1.01.94 1.94 1.66 2.74a7.5 7.5 0 002.57 1.81c1.03.44 2.15.66 3.27.65.15 0 .29 0 .44-.01 1.09-.02 2.16-.22 3.18-.61.97-.36 1.83-.99 2.47-1.8.12-.15.23-.32.32-.48v2.35h3.95V61.01c.03-.69-.21-1.36-.67-1.87m-4.21 13.87c.02.83-.18 1.65-.58 2.38a3.77 3.77 0 01-1.54 1.5c-.64.34-1.36.52-2.09.51-.79.01-1.56-.19-2.24-.59-.67-.4-1.21-.98-1.56-1.67-.39-.8-.58-1.68-.56-2.57-.02-.88.17-1.76.56-2.55.35-.7.88-1.3 1.54-1.72.67-.42 1.44-.63 2.23-.62.72 0 1.44.16 2.09.49.63.32 1.17.81 1.56 1.41.41.68.62 1.47.59 2.27V73z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIdoklad);\nexport default __webpack_public_path__ + \"static/media/idoklad.d51efd7f5ad8b34674c65077cff0454d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLogout(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M21.4 6.6v11.8M27.5 10.6c2.9 1.5 5.2 4 6.4 7.2 2.6 6.9-1 14.6-7.9 17.2s-14.6-1-17.2-7.9c-2.4-6.4.5-13.5 6.4-16.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogout);\nexport default __webpack_public_path__ + \"static/media/logout.eb488e756f5198b9eaeffa19f2361d4c.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMassaccounting(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 26.784,\n cy: 29.904,\n r: 1.73\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M6.235 6.226h31.596v6.053H6.235zM21.141 12.279v22.422\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8.404 20.159h6.973M8.404 29.456h6.973M26.784 20.159h6.973\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMassaccounting);\nexport default __webpack_public_path__ + \"static/media/massaccounting.d8f046e7cfb51bdae755e07d5fb71fa9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMenu(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M11.7 15.7h19.1M11.7 21.3h19.1M11.7 26.8h19.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMenu);\nexport default __webpack_public_path__ + \"static/media/menu.68d4942098e0f8699e7bb921ea6f7257.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGrowthNegative(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\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 className: \"GI_stroke\",\n d: \"M9.154 9.127l23.98 23.98M33.366 14.385v19.008H14.358\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGrowthNegative);\nexport default __webpack_public_path__ + \"static/media/growthNegative.1ffbda86eb560025f8c689b95d52101b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGrowthPositive(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\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 className: \"GI_stroke\",\n d: \"M9.127 33.366l23.98-23.98M14.385 9.154h19.008v19.008\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGrowthPositive);\nexport default __webpack_public_path__ + \"static/media/growthPositive.e96ccb94c2a26252be98bd5a44523a35.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGrowthZero(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\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 className: \"GI_stroke\",\n d: \"M9.122 21.26h24.276\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGrowthZero);\nexport default __webpack_public_path__ + \"static/media/growthZero.0edbc5abd4249b5ce10f269fc8999073.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMore(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 21.3,\n cy: 12.3,\n r: 1.5\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 21.3,\n cy: 21.4,\n r: 1.5\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 21.3,\n cy: 30.2,\n r: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMore);\nexport default __webpack_public_path__ + \"static/media/more.c71e5dc35fc73364bd531c123631a45f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMoreoptions(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M8.6 20.2l12.7 12.6 12.6-12.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.3,\n cy: 23.8,\n r: 2.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.3,\n cy: 17.1,\n r: 0.8\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.3,\n cy: 10.5,\n r: 0.8\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMoreoptions);\nexport default __webpack_public_path__ + \"static/media/moreoptions.30a02df72d19f285487f0c7b17cac2bc.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNote(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M28.5 23.4V2.8h5.1v20.6L31 28.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.7 27.3h9.2M10.7 20.9h12.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.5,\n cy: 27.3,\n r: 1.3\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M36.5 28.7c0 2.9-2.3 5.2-5.2 5.2H12.5M6.1 28.7V18c0-2.9 2.3-5.2 5.2-5.2h13\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M12.5 33.9l-6.4 5.8V26.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNote);\nexport default __webpack_public_path__ + \"static/media/note.8839c02e5ee2fe3d6294ff1e7c771e52.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNoteFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M36.5 18v10.7c0 2.9-2.3 5.2-5.2 5.2H12.5l-6.4 5.8V18c0-2.9 2.3-5.2 5.2-5.2h17.2v10.6l2.6 4.8 2.5-4.8v-10c1.7.8 2.9 2.6 2.9 4.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.5 23.4V2.8h5.1v20.6L31 28.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4D_main\",\n d: \"M10.7 27.3h9.2M10.7 20.9h12.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.5,\n cy: 27.3,\n r: 1.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoteFilled);\nexport default __webpack_public_path__ + \"static/media/noteFilled.26dcc8e73848fdd4e2114c87345020ff.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNotification(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M24.8 33.3c.2.5.3 1 .3 1.5 0 2.2-1.8 3.9-3.9 3.9s-3.9-1.8-3.9-3.9c0-.5.1-1.1.3-1.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8.7 28.5c.4-1.1 1-2.2 2-3 1.2-1 2.4-1.9 3.5-2.6v-5.8c0-3.9 3.1-7 7-7 1.9 0 3.7.8 4.9 2s2 3 2 4.9v5.8c1.1.8 2.4 1.7 3.6 2.7 3.2 2.6 2.5 7.8 2.5 7.8h-26\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.2,\n cy: 4.6,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotification);\nexport default __webpack_public_path__ + \"static/media/notification.0d6aa94684cf853c5ea3465209aa9d67.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMoneyS3(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M78.1 52.5h102.4v85.9H47.1v-22.6M78.1 70.1h6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M95.8 70.1H160\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M165.8 70.1h6v6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"14.25,14.25\",\n d: \"M171.8 90.3v21.4\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M171.8 118.9v6h-6\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M154.3 124.9H68\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M62.3 124.9h-6v-5.3M105.8 139.8v8.5c-.1 9.9-10.5 9.6-10.5 9.6H71v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6v-8.5M78.1 108.7v4.1c0 1.7-1.4 3-3 3h-60c-1.7 0-3-1.4-3-3V34.7c0-1.7 1.4-3 3-3h47.3L78.1 46v41M78.1 46H62.5M62.5 46V31.6\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M65.3 93.9v7.9h20.2v9.5l13.4-14.1-13.7-12.9v9.6z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M72.5 74c-.2.7-.5 1.3-.7 1.9-.8 2.2-1.6 4.5-2.4 6.7-.1.2-.2.4-.2.6-.3.8-.8 1.3-1.6 1.5H66v-1.6h.7c.8-.1 1.2-.7.9-1.5-.8-2.4-1.7-4.7-2.5-7.1-.1-.1-.1-.3-.2-.5h2c.1 0 .3.2.3.4.5 1.5.9 3.1 1.4 4.6 0 .2.1.3.2.6.5-1.9 1.1-3.8 1.6-5.6h2.1zM41.9 81.6h-2V81v-4.3c0-.8-.4-1.2-1-1.3-.7 0-1.2.4-1.4 1.1v5h-2V81v-4.3c0-.9-.4-1.3-1.2-1.3-.8 0-1.2.5-1.2 1.4V81.5h-2V74H33v1.1c.6-.9 1.3-1.3 2.2-1.3.9 0 1.7.3 2.2 1.3.1-.1.1-.2.1-.3.8-1 1.8-1.2 3-.8 1 .4 1.5 1.2 1.5 2.4-.1 1.7-.1 3.4-.1 5.2z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M63.5 79.4c-.1 0-.3.1-.4.2-.5.6-1.2.8-2 .5-.6-.3-1-.9-.9-1.7h5.2c-.1-.6-.1-1.2-.2-1.7-.3-1.7-1.5-2.8-3.2-2.9-2.1-.1-3.4.8-3.8 2.7-.2 1-.2 2 .1 3 .3 1.2 1.1 2 2.3 2.2.7.1 1.5.2 2.3 0 1.2-.2 2.2-1.3 2.3-2.3-.5 0-1.1-.1-1.7 0zm-1.6-4c.8 0 1.4.7 1.4 1.5h-3c.1-1 .6-1.5 1.6-1.5zM48.3 74.2c-2.2-1.1-5.9-.3-5.9 3.9 0 1.2.5 2.5 1.9 3.3 2.8 1.5 6-.3 6-3.5 0-1.6-.5-3-2-3.7zm-.3 4.6c-.2.8-.9 1.3-1.7 1.3-.8 0-1.4-.5-1.7-1.3-.2-.7-.2-1.5 0-2.2.2-.8.8-1.2 1.6-1.2s1.4.4 1.7 1.2c.3.5.2 1.9.1 2.2zM57.8 81.6h-2v-2.4V77c0-1-.4-1.5-1.2-1.5-.9 0-1.6.6-1.6 1.5v4.7h-2V74h1.9v.9c.1 0 .2-.1.2-.1.8-1 1.9-1.3 3.2-.8 1 .4 1.6 1.2 1.6 2.4-.1 1.7-.1 3.4-.1 5.2zM32 61.5v6.4h-3v-3.4h-3.4v-3zM25.6 68.6H32v3h-3.4V75h-3zM18.7 75v-6.4h3V72h3.4v3zM25.1 67.9h-6.4v-3h3.4v-3.4h3z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMoneyS3);\nexport default __webpack_public_path__ + \"static/media/MoneyS3.17e511ad15bd4e2874dac53ce52457d6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatControlStatement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_2\",\n \"data-name\": \"Vrstva 2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 143 143\",\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 className: \"DI_4L_main\",\n d: \"M57.7 80.4h52.2M57.7 92.1h52.2M57.7 103.8h52.2M122.4 55.7V38.4L104 21.5H48.3c-2 0-3.6 1.6-3.6 3.6v92c0 2 1.6 3.6 3.6 3.6h70.5c2 0 3.6-1.6 3.6-3.6V55.8zM40.1 28.8h-4.5c-2 0-3.6 1.6-3.6 3.6v77.5c0 2 1.6 3.6 3.6 3.6h4.5M27.5 36h-2.1c-2 0-3.6 1.6-3.6 3.6v63c0 2 1.6 3.6 3.6 3.6h2.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M104 21.5v16.8l18.4.1M64.5 46.6l7.3-10.5c1.9-2.7 6-3 8.8-1.1s3.9 5.9 2 8.6L69.2 62.8c-1.9 2.7-4.4 3.1-6.7 1.6l-.3-.2c-2.3-1.6-2.8-3.9-.7-6.8l9.1-12.9c.9-1.3 2.7-1.6 4-.7s1.3 2.7.5 4L70 55.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatControlStatement);\nexport default __webpack_public_path__ + \"static/media/VatControlStatement.487a68f553d870db1d20485ea86c0150.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatStatement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_2\",\n \"data-name\": \"Vrstva 2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 143 143\",\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 className: \"DI_4L_main\",\n d: \"M57.1 78.3h52.2M57.1 90h52.2M57.1 101.6h52.2M121.8 53.6V36.3l-18.4-16.9H47.7c-2 0-3.6 1.6-3.6 3.6v92c0 2 1.6 3.6 3.6 3.6h70.5c2 0 3.6-1.6 3.6-3.6V53.7zM39.5 26.6H35c-2 0-3.6 1.6-3.6 3.6v77.5c0 2 1.6 3.6 3.6 3.6h4.5M26.9 33.9h-2.1c-2 0-3.6 1.6-3.6 3.6v63c0 2 1.6 3.6 3.6 3.6h2.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M103.4 19.4v16.8h18.4M60.1 38.4H66M77.9 38.5h5.9M77.9 54.1h5.9M77.9 58.1h5.9M63.1 41.3v-5.9M60.7 58.1l4.2-4.1M64.9 58.1L60.7 54M72 33.2v28M85.7 47.2h-29\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatStatement);\nexport default __webpack_public_path__ + \"static/media/VatStatement.c46c10de4343ea60c20260f969fcd8b5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatViesStatement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_2\",\n \"data-name\": \"Vrstva 2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 143 143\",\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 className: \"DI_4L_main\",\n d: \"M57.1 83.7h52.2M57.1 95.4h52.2M57.1 107.1h52.2M121.8 59V41.7l-18.4-16.9H47.7c-2 0-3.6 1.6-3.6 3.6v92c0 2 1.6 3.6 3.6 3.6h70.5c2 0 3.6-1.6 3.6-3.6V59.1zM39.5 32H35c-2 0-3.6 1.6-3.6 3.6v77.5c0 2 1.6 3.6 3.6 3.6h4.5M26.9 39.3h-2.1c-2 0-3.6 1.6-3.6 3.6v63c0 2 1.6 3.6 3.6 3.6h2.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M103.4 24.8v16.8l18.4.1M73.5 60c-.3-1.1-1.3-4.1-1.6-5.5-.5-2.7.3-5.4.8-6.3.9-1.7 2.6-4.4 2.6-6.4 0-3.2-2.6-5.9-5.9-5.9H69c-3.2 0-5.9 2.6-5.9 5.9 0 1.9 1.7 4.6 2.6 6.4.7 1.3 1.2 4.2.8 6.3s-2 5.7-2 5.7M60.3 60.9h18v4.3h-18zM62.8 69h13\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatViesStatement);\nexport default __webpack_public_path__ + \"static/media/VatViesStatement.e0f45d6020518f37245332046d2362ae.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgApi(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M148 89.1s12.2.2 16 3.7c2.1 2 2.2 5.9 2.2 7.9s0 5.9-2.2 7.9c-3.8 3.5-16 3.7-16 3.7h-.9c-1.4 5.1-3.6 9.9-6.5 14.2l.2.2s8.5 8.8 8.7 13.9c.1 2.9-2.6 5.7-4 7.1s-4.2 4.2-7.1 4c-5.1-.2-13.9-8.7-13.9-8.7l-.7-.7c-4.5 2.5-9.4 4.4-14.6 5.5v.4s-.2 12.2-3.7 16c-2 2.1-5.9 2.2-7.9 2.2s-5.9 0-7.9-2.2c-3.5-3.8-3.7-16-3.7-16v-1.1c-5.1-1.4-9.9-3.6-14.2-6.4l-.2.3s-8.8 8.5-13.9 8.7c-2.9.1-5.7-2.6-7.1-4s-4.2-4.2-4-7.1c.2-5.1 8.7-13.9 8.7-13.9l.7-.8c-2.6-4.4-4.4-9.3-5.5-14.5h-.2s-12.2-.2-16-3.7c-2.1-2-2.2-5.9-2.2-7.9s0-5.9 2.2-7.9c3.8-3.5 16-3.7 16-3.7h.8c1.4-5.2 3.6-10 6.4-14.4 0 0-8.5-8.8-8.7-13.9-.1-2.9 2.6-5.7 4-7.1s4.2-4.2 7.1-4c5.1.2 13.9 8.7 13.9 8.7l.5.5c4.5-2.6 9.5-4.5 14.8-5.6v.1s.2-12.2 3.7-16c2-2.1 5.9-2.2 7.9-2.2s5.9 0 7.9 2.2c3.5 3.8 3.7 16 3.7 16v.6c5.2 1.4 10.1 3.6 14.4 6.5v.1s8.8-8.5 13.9-8.7c2.9-.1 5.7 2.6 7.1 4s4.2 4.2 4 7.1C151.5 65.2 143 74 143 74l-.5.5c2.5 4.4 4.4 9.4 5.5 14.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M124.3 74.1c-6.4-6.4-15.3-10.4-25.1-10.4-11 0-20.9 5-27.4 13M124.3 124c-6.4 6.4-15.3 10.4-25.1 10.4-11 0-20.9-5-27.4-13M118.4 109.2V90.5M104.1 90.3c-2.6 0-5.2-.1-5.3 1.4-.2 2.6 0 17.5 0 17.5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M104.3 90.3c3.1 0 5.6 2.1 5.6 5.2s-2.5 5.6-5.6 5.6h-4M89.4 109.2s.2-14.1 0-16.7c-.1-1.5-2.7-2.7-5.3-2.7s-5.2 1.2-5.3 2.7c-.2 2.6 0 16.7 0 16.7M78.6 101.1h10.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgApi);\nexport default __webpack_public_path__ + \"static/media/api.efa32f774a88117c327ece4f6979c044.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCashbox(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M102.8 62.4s11.3 6.5 22.3 0M129.6 73.7s-7.7-6.4-3-23c2.4-8.6 9.9-28.8 9.9-28.8-6.9 2.5-15.6 10.2-15.6 10.2-3.5-6.1-11.7-10.2-11.7-10.2l-.5 15.9c-9.1-8.5-21.5-8.1-21.5-8.1.4.2 27.2 27.5 9.9 44.1-11 10.6-20.5 17.5-25.9 26.1h.9c21.1 0 38.2 17.1 38.2 38.2 0 6.7-1.7 13-4.8 18.5 2.5.3 5 .4 7.7.4 33.2 0 47.2-20.8 47-39.9-.1-19.4-13.4-26.9-30.6-43.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M71.3 99.7c-20.7.5-37.3 17.4-37.3 38.2 0 21.1 17.1 38.2 38.2 38.2 14.4 0 26.9-8 33.4-19.7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M78.1 131.5s-1-6-6-6-6.3 6-6.3 6l12.9 9.8M66.4 141.3s1 6 6 6 6.3-6 6.3-6M72.2 120.3v5.2M72.2 147.3v5.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 72.2,\n cy: 137.9,\n r: 29\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 52.7,\n cy: 137.9,\n r: 3.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 91.5,\n cy: 137.9,\n r: 3.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashbox);\nexport default __webpack_public_path__ + \"static/media/cashbox.97f5a6effbf5f907ca81080696fb752a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDataBox(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"data-name\": \"Vrstva 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 141.7 141.7\",\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 className: \"IC_4L_filled_no_stroke\",\n d: \"M106.5 50.1c-.2-.2-.4-.4-.6-.4H78.5c-.4 0-.7.4-.7.9v7.7c0 .5.3.9.7.9h11.9L64.7 84.9c-.2.2-.3.4-.3.6s.1.5.3.6l5.4 5.4c.3.3 1 .3 1.3 0L97 65.8v25.1c0 .4.4.7.9.7h7.7c.5 0 .9-.3.9-.7V50.2c0-.1 0-.3-.2-.4M71.7 49.8H35.8c-.2 0-.4.1-.6.4-.1.1-.2.3-.2.4v40.7c0 .4.4.7.9.7h7.7c.5 0 .9-.3.9-.7V66.2l15.2 15.2c.3.3.8.2 1.2-.1l5.4-5.4c.4-.4.4-.9.1-1.2L51.1 59.4h20.4c.4 0 .7-.4.7-.9v-7.7c0-.5-.3-.9-.7-.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDataBox);\nexport default __webpack_public_path__ + \"static/media/dataBox.ad3ebef231f60b85ece5e3e0710200fd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportBankTransactions(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M115.8 53.8V35.9c0-1.7 1.4-3 3-3h47.3l15.7 14.3V114c0 1.7-1.4 3-3 3h-27.5M181.8 47.2h-15.6M166.2 47.2V32.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M151.3 105.1v34.6H17.9V53.8h133.4v29.5M76.6 141v8.5c-.1 9.9-10.5 9.6-10.5 9.6H41.8v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6V141\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M139.8 90.3v7.8H160v9.5l13.4-14.1-13.8-12.9v9.7z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M105.4 82.1v35.7M65 82.1v35.7M57 82.1h55.5L84.9 64.8zM60.4 117.8h49.8v5.6H60.4z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M89.6 91.8c-10.1-2.9-10.1 7.6-3.7 7.5 6.2-.1 7 9.9-4.1 6.8M85.9 89.6v.6M85.9 107.9v.6\"\n }))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportBankTransactions);\nexport default __webpack_public_path__ + \"static/media/exportBankTransactions.820fbbf3bf13638d36baea7784307a81.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportCashReceipts(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M115.8 53.8V35.9c0-1.7 1.4-3 3-3h47.3l15.7 14.3V114c0 1.7-1.4 3-3 3h-27.5M181.8 47.2h-15.6M166.2 47.2V32.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M151.3 105.1v34.6H17.9V53.8h133.4v29.5M76.6 141v8.5c-.1 9.9-10.5 9.6-10.5 9.6H41.8v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6V141\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M139.8 90.3v7.8H160v9.5l13.4-14.1-13.8-12.9v9.7z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M52.7 109.2h67.1v15.5H52.7zM67.1 80.8h2.8M82.5 80.8h21.6M104.3 80.9s10.5 4 10.6 28.1M67.1 80.9s-10.5 4-10.6 28.1M88.5 70.1h13.1v6.2H88.5zM92.1 76.3v4.2M97.8 76.3v4.2M70.4 67.3h11.9V91H70.4zM67.8 91.1h17.1\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 86.5,\n cy: 116.9,\n r: 2.7\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportCashReceipts);\nexport default __webpack_public_path__ + \"static/media/exportCashReceipts.780e544230c0f82aa1094ec5b8789bbb.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExportDocuments(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M69 82.2h-8.2v-7.7c0-2.2 1.8-3.9 4.1-3.9 2.2 0 4.1 1.8 4.1 3.9v7.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M64.9 70.5h36.8c2.2 0 4.1 1.8 4.1 3.9V124.3H69V74.4M74.9 111.6h24.9M74.9 104.2h24.9M74.9 96.7h24.9M74.9 89.3h24.9\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M115.8 53.8V35.9c0-1.7 1.4-3 3-3h47.3l15.7 14.3V114c0 1.7-1.4 3-3 3h-27.5M181.8 47.2h-15.6M166.2 47.2V32.9\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M151.3 105.1v34.6H17.9V53.8h133.4v29.5M76.6 141v8.5c-.1 9.9-10.5 9.6-10.5 9.6H41.8v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6V141\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M139.8 90.3v7.8H160v9.5l13.4-14.1-13.8-12.9v9.7z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExportDocuments);\nexport default __webpack_public_path__ + \"static/media/exportDocuments.9349b447cf09c300faaf9c9ed607f8b9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9, _circle10, _circle11, _circle12, _circle13, _circle14, _circle15, _circle16, _circle17, _circle18, _circle19, _circle20, _circle21, _circle22, _circle23, _circle24, _circle25;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIntegration(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M113.8 113.8H83.9c-2.2 0-4-1.8-4-4v-4c0-2.2 1.8-4 4-4h29.9c2.2 0 4 1.8 4 4v4c0 2.2-1.8 4-4 4zM113.8 95.6H83.9c-2.2 0-4-1.8-4-4v-4c0-2.2 1.8-4 4-4h29.9c2.2 0 4 1.8 4 4v4c0 2.3-1.8 4-4 4z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 56.6,\n cy: 56.8,\n r: 6.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 39.1,\n cy: 99.1,\n r: 6.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 57.2,\n cy: 142.2,\n r: 6.4\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.7,\n cy: 159.3,\n r: 6.4\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 141.8,\n cy: 141.6,\n r: 6.4\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 159.3,\n cy: 98.5,\n r: 6.4\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 141.2,\n cy: 56.2,\n r: 6.4\n })), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.5,\n cy: 39.1,\n r: 6.4\n })), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.8,\n cy: 56.7,\n r: 1.1\n })), _circle10 || (_circle10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.8,\n cy: 66.1,\n r: 1.1\n })), _circle11 || (_circle11 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.8,\n cy: 131.5,\n r: 1.1\n })), _circle12 || (_circle12 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 98.8,\n cy: 140.9,\n r: 1.1\n })), _circle13 || (_circle13 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 131.5,\n cy: 98.8,\n r: 1.1\n })), _circle14 || (_circle14 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 140.9,\n cy: 98.8,\n r: 1.1\n })), _circle15 || (_circle15 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 128.6,\n cy: 68.5,\n r: 1.1\n })), _circle16 || (_circle16 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 121.9,\n cy: 75.1,\n r: 1.1\n })), _circle17 || (_circle17 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 128.6,\n cy: 68.5,\n r: 1.1\n })), _circle18 || (_circle18 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 128.6,\n cy: 128.5,\n r: 1.1\n })), _circle19 || (_circle19 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 121.9,\n cy: 121.8,\n r: 1.1\n })), _circle20 || (_circle20 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 65.8,\n cy: 98.8,\n r: 1.1\n })), _circle21 || (_circle21 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 56.4,\n cy: 98.8,\n r: 1.1\n })), _circle22 || (_circle22 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 68.8,\n cy: 68.5,\n r: 1.1\n })), _circle23 || (_circle23 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 75.4,\n cy: 75.1,\n r: 1.1\n })), _circle24 || (_circle24 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 68.8,\n cy: 128.5,\n r: 1.1\n })), _circle25 || (_circle25 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 75.4,\n cy: 121.8,\n r: 1.1\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIntegration);\nexport default __webpack_public_path__ + \"static/media/integration.eef0052da8e41b5fee550bfe27e54b6e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIsdocImport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"DI_4L_main\",\n d: \"M77.3 52.5h102.4v85.9H46.3v-22.6M77.3 70.1h6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M95 70.1h64.2\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M165 70.1h6v6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n strokeDasharray: \"14.25,14.25\",\n d: \"M171 90.3v21.4\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M171 118.9v6h-6\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M153.5 124.9H67.3\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M61.5 124.9h-6v-5.3M105 139.8v8.5c-.1 9.9-10.5 9.6-10.5 9.6H70.2v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6v-8.5M77.3 108.7v4.1c0 1.7-1.4 3-3 3H14.4c-1.7 0-3-1.4-3-3V34.7c0-1.7 1.4-3 3-3h47.3L77.3 46v41M77.3 46H61.7M61.7 46V31.6\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M64.6 93.9v7.9h20.1v9.5l13.4-14.1-13.7-12.9v9.6zM34.6 69.9s1.4-7.8 6.6-14c5.4-5.4 14.1-6.6 14.1-6.6s-.7 10.7-5.8 14.3c-5.9 4.6-14.9 6.3-14.9 6.3z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"DI_4L_main\",\n d: \"M43.8 52.9s-2.1-1.3-4.9-2.3-4.5-1.3-4.5-1.3.7 6.9 3.5 11.2M45.5 66.2s2.2 1.4 4.2 2.1 5.1 1.3 5.1 1.3.2-6.1-2.5-9.2M44.2 58.1l2.5.3.2 2.5M48 55.4l1.7.3.2 1.6M41.7 61.2l1.7.2.2 1.7M37.9 77.5v9.1s7.1 1 7.1-4.8c0 0-.2-5.6-7.1-4.3zM20.2 77.3v9.3M31.9 78.3s-2.4-2.2-4.9-.7c-2.2 1.7-.2 3.8 2.7 4.1 4.1.7 3.8 4.9-.3 5.1-3.2.3-4.3-1.8-4.3-1.8M54.5 77s-4.5-.8-4.8 4.7c0 4.4 2 5.2 4.5 5.2 2.4 0 4.1-1.6 4.1-5.1 0-3-1.5-4.5-3.8-4.8zM70.4 77.7s-6.4-3.3-7.2 3.9c-.6 7.8 7.2 4.8 7.2 4.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIsdocImport);\nexport default __webpack_public_path__ + \"static/media/isdocImport.0b35feac664c926eb3f2b34ad217f94c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPohoda(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M77.3 52.5h102.4v85.9H46.3v-22.6M77.3 70.1h6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M95 70.1h64.2\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M165 70.1h6v6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"14.25,14.25\",\n d: \"M171 90.3v21.4\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M171 118.9v6h-6\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n strokeDasharray: \"11.5,11.5\",\n d: \"M153.5 124.9H67.3\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M61.5 124.9h-6v-5.3M105 139.8v8.5c-.1 9.9-10.5 9.6-10.5 9.6H70.2v6.4h85.9l-.1-6.4h-24.3s-10.5.4-10.5-9.6v-8.5M77.3 108.7v4.1c0 1.7-1.4 3-3 3H14.4c-1.7 0-3-1.4-3-3V34.7c0-1.7 1.4-3 3-3h47.3L77.3 46v41M77.3 46H61.7M61.7 46V31.6\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M64.6 93.9v7.9h20.1v9.5l13.4-14.1-13.7-12.9v9.6z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"B_4L_main\",\n d: \"M20.8 75.3v3.1h-2.2v-9.3h3.7c.7 0 1.3.1 1.9.4.5.3 1 .6 1.3 1.1s.4 1 .4 1.6c0 .9-.3 1.6-1 2.2-.6.5-1.5.8-2.7.8h-1.4zm0-1.7h1.5c.4 0 .8-.1 1-.3.2-.2.3-.5.3-.9s-.1-.8-.4-1c-.2-.3-.6-.4-1-.4h-1.5v2.6zM35 74c0 .9-.2 1.7-.5 2.4s-.8 1.2-1.4 1.6c-.6.4-1.3.6-2.1.6s-1.5-.2-2.1-.5-1.1-.9-1.4-1.6c-.3-.7-.5-1.5-.5-2.3v-.5c0-.9.2-1.7.5-2.4s.8-1.2 1.4-1.6 1.3-.6 2.1-.6 1.5.2 2.1.6c.6.4 1.1.9 1.4 1.6s.5 1.5.5 2.4v.3zm-2.3-.4c0-.9-.2-1.6-.5-2.1s-.7-.7-1.3-.7c-1.1 0-1.7.8-1.8 2.5v.7c0 .9.2 1.6.5 2.1s.8.7 1.3.7c.6 0 1-.2 1.3-.7.3-.5.5-1.2.5-2.1v-.4zM44 78.5h-2.2v-3.9h-3.3v3.9h-2.2v-9.3h2.2v3.7h3.3v-3.7H44v9.3zM53.4 74c0 .9-.2 1.7-.5 2.4s-.8 1.2-1.4 1.6c-.6.4-1.3.6-2.1.6s-1.5-.2-2.1-.5-1.1-.9-1.4-1.6c-.3-.7-.5-1.5-.5-2.3v-.5c0-.9.2-1.7.5-2.4s.8-1.2 1.4-1.6 1.3-.6 2.1-.6 1.5.2 2.1.6c.6.4 1.1.9 1.4 1.6s.5 1.5.5 2.4v.3zm-2.3-.4c0-.9-.2-1.6-.5-2.1s-.7-.7-1.3-.7c-1.1 0-1.7.8-1.8 2.5v.7c0 .9.2 1.6.5 2.1s.8.7 1.3.7c.6 0 1-.2 1.3-.7.3-.5.5-1.2.5-2.1v-.4zM54.6 78.5v-9.3h3c.8 0 1.6.2 2.2.6s1.2.9 1.5 1.6c.4.7.6 1.4.6 2.3v.3c0 .8-.2 1.6-.5 2.3-.4.7-.9 1.2-1.5 1.6-.7.4-1.4.6-2.2.6h-3.1zm2.2-7.6v5.8h.8c.6 0 1.1-.2 1.5-.7.3-.5.5-1.1.5-2v-.4c0-.9-.2-1.6-.5-2-.3-.5-.8-.7-1.5-.7h-.8zM68.4 76.7h-3.1l-.5 1.7h-2.4l3.4-9.3h2.1l3.4 9.3h-2.4l-.5-1.7zM65.9 75h2l-1-3.2-1 3.2z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPohoda);\nexport default __webpack_public_path__ + \"static/media/pohoda.085ea8b6c52d40a9158165c4136e2827.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2, _circle3, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRossum(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M116.9 146.3v21.8H15.8V29.2h101.1v23.9M116.9 78.1v24.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M28.9 42.6h47.5v18.5H28.9zM146.4 77.3H180v10h-33.6zM146.4 94.8H180v10h-33.6zM146.4 111.8H180v10h-33.6zM61.2 140.2h41.2v13.5H61.2zM61.3 126.2h23.6v7H61.3zM77.1 51.6h23.2l31.4 27.2M85 129.8h15.3l31.1-27.8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 135.4,\n cy: 82.2,\n r: 4.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 135.4,\n cy: 117.1,\n r: 4.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 135.4,\n cy: 99.8,\n r: 4.4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M103.2 147.2l29.2-26.6M30.1 86.2h65.3M30.1 95.8h65.3M30.1 105.4h65.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRossum);\nexport default __webpack_public_path__ + \"static/media/rossum.3c8d57757e4a7575e74a274cb2049237.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _ellipse, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStorage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M97 127.8H59.4c-13.7 0-24.8-11.1-24.8-24.8 0-13.7 11.1-24.8 24.8-24.8.9 0 1.9.1 2.8.2-.1-1.2-.2-2.4-.2-3.6C62 57.2 76.2 43 93.7 43s31.8 14.2 31.8 31.8c0 1.3-.1 2.6-.2 3.9 1.4-.3 2.8-.5 4.3-.5 10.4 0 18.9 8.4 18.9 18.9\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"OI_4L_main\",\n cx: 135.9,\n cy: 116.5,\n rx: 27.9,\n ry: 10.6\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M163.8 116.5v25.2c0 5.9-12.5 10.6-27.9 10.6s-27.9-4.8-27.9-10.6v-12.6c0 5.9 12.5 10.6 27.9 10.6s27.9-4.8 27.9-10.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStorage);\nexport default __webpack_public_path__ + \"static/media/storage.86dafcb032822c8aecbfd0fb3e0116b5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSubscription(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.4 198.4\",\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 className: \"OI_4L_main\",\n d: \"M59 54.6H37.7v-20c0-5.6 4.8-10.3 10.6-10.3s10.6 4.6 10.6 10.3v20z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M74.4 164.3h80.3V34.6c0-5.6-4.8-10.3-10.6-10.3H48M59 54.6v45.3M79.9 43.4H131M105.5 122.2V72.5M79.9 85.3H131M79.9 97.7H131M79.5 110.3h50.4M79.9 56.7H131M90.1 142.4h18\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M79.9 110.1V72.5H131v49.7H82.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 125.9,\n cy: 142.2,\n r: 6.3\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"OI_4L_main\",\n d: \"M73.9 146.1v28l-15.5-10.4L43 174.1v-28\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 58.4,\n cy: 125.9,\n r: 24.8\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"OI_4L_main\",\n cx: 58.4,\n cy: 125.9,\n r: 15.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSubscription);\nexport default __webpack_public_path__ + \"static/media/subscription.5809f6448acbafa922a43e3876a3e5d5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9, _circle10, _circle11, _circle12, _circle13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOldImportClock(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_sub\",\n d: \"M21.388 12.789v6.586M23.59 27.924l3.413 5.633\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.296,\n cy: 24.068,\n r: 1.445\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.633,\n cy: 5.003,\n r: 2.86\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.296,\n cy: 24.068,\n r: 16.124\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 32.534,\n cy: 24.027,\n r: 0.198\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 10.349,\n cy: 24.027,\n r: 0.198\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 12.053,\n cy: 29.6,\n r: 0.198\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 12.053,\n cy: 18.652,\n r: 0.198\n })), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 30.788,\n cy: 18.652,\n r: 0.198\n })), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 30.788,\n cy: 29.478,\n r: 0.198\n })), _circle10 || (_circle10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 21.459,\n cy: 35.067,\n r: 0.198\n })), _circle11 || (_circle11 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 16.084,\n cy: 14.453,\n r: 0.198\n })), _circle12 || (_circle12 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 16.008,\n cy: 33.677,\n r: 0.198\n })), _circle13 || (_circle13 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 26.956,\n cy: 14.453,\n r: 0.198\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOldImportClock);\nexport default __webpack_public_path__ + \"static/media/oldImportClock.1153736dea0008fe123c60dbfb0f8fb4.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _path, _circle3, _circle4, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOnedocpair(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 37.783,\n cy: 21.108,\n r: 1.445\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 11.016,\n cy: 8.26,\n r: 3.206\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.222 21.108h5.238\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 11.016,\n cy: 21.108,\n r: 3.206\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 11.016,\n cy: 33.915,\n r: 3.206\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.956 8.26h5.848a2.9 2.9 0 012.891 2.891v5.972\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.956 33.915h5.848a2.9 2.9 0 002.891-2.891v-5.247\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.433 21.108h-5.848a2.9 2.9 0 01-2.891-2.891v-5.972\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOnedocpair);\nexport default __webpack_public_path__ + \"static/media/onedocpair.306cf5cc91d1ba0b1d0dd32f103fa818.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOutgoing(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.52 42.52\",\n xmlSpace: \"preserve\",\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 className: \"SI_4L_stroke_red\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.057 20.865h20.042M24.076 13.445l7.387 7.42-7.387 7.415\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOutgoing);\nexport default __webpack_public_path__ + \"static/media/outgoing.c9045d3fa8eb4a2f7c0b71ebcd0ca85b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOutgoingpayment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.198 20.523H18.303\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 12.747,\n cy: 20.583,\n r: 1.696\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.081 14.934l5.589 5.589-5.589 5.59\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOutgoingpayment);\nexport default __webpack_public_path__ + \"static/media/outgoingpayment.f1e02c7dc9992aebf0991f8406fddb25.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPaidDocument(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 10.5,\n cy: 33.02,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.788 9.086c0-3.13 2.43-4.56 5.56-4.56h15.66c3.13 0 5.67 2.54 5.67 5.67v20.66c0 3.13-2.54 5.67-5.67 5.67\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.112 20.279H14.19c-.501 0-.982.183-1.358.515-1.297 1.15-4.352 4.128-5.972 7.941-1.17 2.752-1.008 5.048-1.016 5.206-.03.553.337 3.195 3.425 3.636 1.859.265 4.518.405 6.843.418 2.325-.013 4.984-.152 6.843-.418 3.087-.441 3.454-3.083 3.425-3.636-.008-.157.153-2.454-1.016-5.206-1.62-3.812-4.676-6.79-5.972-7.941a2.04 2.04 0 00-1.358-.515h-1.922z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.721 20.279h4.593c.245 0 .469-.164.586-.427l2.438-5.517c.133-.3.1-.668-.085-.925-.368-.511-1.129-1.157-2.434-.561-1.982.906-1.807 1.697-4.26.461-1.712-.862-2.938.032-3.523.652-.24.254-.299.676-.143 1.014l2.249 4.888c.117.256.339.415.579.415zM7.627 27.166s5.262-2.651 8.485-.457 7.871-.577 7.871-.577\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPaidDocument);\nexport default __webpack_public_path__ + \"static/media/paidDocument.b78937b62ba4fda05a5695633dc63051.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _circle, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPair(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M20.776 24.398l-6.102 5.912\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.633 16.811l-5.464 5.291\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M23.613 30.372h6.38a4.153 4.153 0 004.153-4.153V10.758a4.153 4.153 0 00-4.153-4.153H18.856a4.153 4.153 0 00-4.153 4.153v10.467\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.633 21.639v-4.828h-4.829\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.674 25.481v4.829h4.829\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M10.809 14.901a3.753 3.753 0 00-2.648 3.586v13.967a3.75 3.75 0 003.751 3.751h10.061c.983 0 1.878-.378 2.547-.997\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 19.691,\n cy: 11.766,\n r: 1.3\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M28.902 11.766h-5.094\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPair);\nexport default __webpack_public_path__ + \"static/media/pair.7ab2284c4ff13b21cfe9b7bb66e72d29.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPairingAccruedItems(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M12.1 33.8s-.4.8.6 1.8l2.8 2.8c1.6 1.6 2.3.6 3.6-.6 1.3-1.3 2.2-2 .6-3.6l-2.8-2.8c-.9-.9-1.8-.6-1.8-.6M12 27.8s.4-.8-.6-1.7l-2.8-2.8c-1.6-1.6-2.3-.6-3.6.6-1.3 1.3-2.2 2-.6 3.6l2.8 2.8c1 .8 1.8.5 1.8.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.3 28l5.6 5.6M10.5 13.7C12.9 9.3 17.6 6 22.9 6c7.7 0 14 6.3 14 14 0 7-5.2 12.9-12 13.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 8.8,\n cy: 18,\n r: 1.5\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M29.2 21.3h-6.7v-8.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPairingAccruedItems);\nexport default __webpack_public_path__ + \"static/media/pairingAccruedItems.8456577169090a0f9dffefa7f3d28cae.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPairingDeposit(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M11.4 34.4s-.4.8.6 1.8l2.8 2.8c1.6 1.6 2.3.6 3.6-.6 1.3-1.3 2.2-2 .6-3.6L16.2 32c-.9-.9-1.8-.6-1.8-.6M11.3 28.4s.4-.8-.6-1.7l-2.8-2.8c-1.6-1.6-2.3-.6-3.6.6-1.3 1.3-2.2 2-.6 3.6l2.8 2.8c.9.9 1.7.6 1.7.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M8.7 28.7l5.5 5.6\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M26.2 19.3c-5.8-1.7-5.8 4.4-2.1 4.3 3.6-.1 4 5.7-2.3 4M23.9 18v.5M23.9 28.4v.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.5,\n cy: 23.5,\n r: 1.4\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M24.5 33.9c3 0 6-.2 8.5-.5 4-.6 4.5-4 4.5-4.7 0-.2.2-3.2-1.3-6.8-2.1-5-6.1-8.9-7.8-10.3-.5-.4-1.1-.7-1.8-.7h-5c-.7 0-1.3.2-1.8.7-1.5 1.3-4.9 4.6-7.1 8.9\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20.9 10.9h6c.3 0 .6-.2.8-.5l3.2-5.9c.2-.3.1-.7-.1-1-.5-.5-1.5-1.1-3.2-.5-2.6 1-2.4 1.8-5.6.5-2.2-.9-3.8 0-4.6.7-.3.3-.4.7-.2 1.1l2.9 5.2c.2.2.5.4.8.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPairingDeposit);\nexport default __webpack_public_path__ + \"static/media/pairingDeposit.b4b7c69ce810be3ed7c980f0f774aacc.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPairingExpenses(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M11.9 29.8s-.4.8.6 1.8l2.8 2.8c1.6 1.6 2.3.6 3.6-.6 1.3-1.3 2.2-2 .6-3.6l-2.8-2.8c-.9-.9-1.8-.6-1.8-.6M11.8 23.7s.4-.8-.6-1.7l-2.8-2.8c-1.6-1.6-2.3-.6-3.6.6-1.3 1.3-2.2 2-.6 3.6C5.4 24.5 7 26.2 7 26.2c.9.9 1.7.6 1.7.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.1 24l5.6 5.6M11.8 15.1V9.6c0-1.2 1.1-2.2 2.4-2.2h19.7c1.3 0 2.4 1 2.4 2.2v4.3M36.3 20v4.4c0 1.2-1 2.2-2.3 2.2H23\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M36.7 19.6h-4.2c-1.3 0-2.4-1.1-2.4-2.4v-.4c0-1.3 1.1-2.4 2.4-2.4h4.2c1.3 0 2.4 1.1 2.4 2.4v.4c0 1.4-1.1 2.4-2.4 2.4z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 17.3,\n cy: 12.4,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPairingExpenses);\nexport default __webpack_public_path__ + \"static/media/pairingExpenses.3203c0ba366ef1e02ca0c70c01103c41.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPairingGeneral(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M24.9 34h2c2.5 0 4.6-2.1 4.6-4.6V12.2c0-2.5-2.1-4.6-4.6-4.6H14.5c-2.5 0-4.6 2.1-4.6 4.6v5.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 15.4,\n cy: 13.4,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M25.6 13.4H20M8.8 30.1s-.8.4-1.8-.6l-2.8-2.8c-1.6-1.6-.6-2.3.6-3.6s2-2.2 3.6-.6l2.8 2.8c.9.9.6 1.8.6 1.8M14.9 30.1s.8-.4 1.7.6l2.8 2.8c1.6 1.6.6 2.3-.6 3.6-1.3 1.3-2 2.2-3.6.6l-2.8-2.8c-.9-.9-.6-1.7-.6-1.7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.6 32.8L9 27.2\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15.5 20.1h10.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPairingGeneral);\nexport default __webpack_public_path__ + \"static/media/pairingGeneral.30e1b87544c3a82924b525c01732614b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgParameters(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M7.2 27.7V14.4c0-3 2.5-5.4 5.7-5.4h16.8c3.1 0 5.7 2.4 5.7 5.4v13.9c0 2.9-2.4 5.2-5.5 5.2H11.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13 17.2h16.5M13 25.8h16.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.1,\n cy: 17,\n r: 2.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 18,\n cy: 25.8,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgParameters);\nexport default __webpack_public_path__ + \"static/media/parameters.97473b624dff2ed0213cc9df35a39e85.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _circle, _path, _circle2, _circle3, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPartialDepreciation(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_3\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 4.455,\n cy: 27.961,\n r: 1.399\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M7.115 23.857l2.652-4.22h12.89l4.692 4.613 9.198 2.367v6.156h-3.936M24.519 32.773h-7.987M9.706 32.773H4.455\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 13.119,\n cy: 33.516,\n r: 3.413\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 28.302,\n cy: 33.516,\n r: 3.413\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.217 5.591v11.798l-3.81-3.964M35.134 13.31l-3.917 4.079\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPartialDepreciation);\nexport default __webpack_public_path__ + \"static/media/partialDepreciation.81bfe87aed37f030d805a201371c4269.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPaymentRequest(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M6.1 37.4h33.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 22.6,\n cy: 11.1,\n r: 1.5\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6.1 15.9h32.8L22.7 5.2zM12 16.3v3.4M12 33.5V37M33.5 16.9v18.9M22.8 17.1V36\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M7.3 21.9l4.7 4.7-4.8 4.8M10.5 26.6H3.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPaymentRequest);\nexport default __webpack_public_path__ + \"static/media/paymentRequest.e593c948cfd4ef2c38c56c035b5243a1.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPin(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 200 200\",\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 className: \"IC_4L_filled\",\n d: \"M100.25 11.133c-34.079 0-61.706 27.627-61.706 61.706 0 26.017 37.063 84.877 54.079 111.271 4.088 6.341 10.566 6.341 14.655 0 17.016-26.394 54.179-85.254 54.179-111.271-.001-34.079-27.128-61.706-61.207-61.706zm-.25 94.266c-18.3 0-33.135-14.835-33.135-33.135 0-18.3 14.835-33.135 33.135-33.135 18.3 0 33.135 14.835 33.135 33.135 0 18.3-14.835 33.135-33.135 33.135z\",\n id: \"Predloha\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPin);\nexport default __webpack_public_path__ + \"static/media/pin.436a8b146427a9fb81b6cd04fa407039.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlay(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_dot\",\n d: \"M7.8 21.5c0 2-2.9 2-2.9 0s3-2 2.9 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30 21.3l-13.8-7.8v15.6z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M7.1 16.1c2.1-5.7 7.6-9.8 14-9.8C29.3 6.3 36 13 36 21.2s-6.7 14.9-14.9 14.9c-6.3 0-11.7-3.9-13.9-9.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlay);\nexport default __webpack_public_path__ + \"static/media/play.005028d300fc1d855222cbcb54a15873.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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 xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M30.2 21.3H12.3M21.3 12.3v17.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlus);\nexport default __webpack_public_path__ + \"static/media/plus.06e08bfa680a4d87f15b95d10ab8edf5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPrint(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M14.1 5.5h14.3v6.9H14.1z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.1,\n cy: 18.4,\n r: 2.3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M5.6 17.3v7.9c0 2.6 2.1 4.7 4.7 4.7h3.8M28.4 29.9h3.8c2.6 0 4.7-2.1 4.7-4.7v-7.9c0-2.6-2.1-4.7-4.7-4.7H10.3\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.1 23.9h14.3V37H14.1z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M11.5 23.9h19.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPrint);\nexport default __webpack_public_path__ + \"static/media/print.1d6a397b9198582b8e7f641e6ae424e4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgQuery(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M14.2 15.5l-4.4 5.7 4.6 5.9M28.2 15.5l4.4 5.7-4.5 5.9M19 28.7l4.7-14.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M26.8 35.6H10c-3.2 0-5.7-2.6-5.7-5.7V14c0-3.2 2.6-5.7 5.7-5.7h22c3.2 0 5.7 2.6 5.7 5.7v16.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.8,\n cy: 35.6,\n r: 1.8\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuery);\nexport default __webpack_public_path__ + \"static/media/query.061ca6b412dfe4d82b1b901efbb191a7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRadioButtonGroup(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M9.7 35.5c-3 0-5.5-2.5-5.5-5.5s2.5-5.5 5.5-5.5 5.5 2.5 5.5 5.5c0 3.1-2.5 5.5-5.5 5.5zM9.7 18.4c-3 0-5.5-2.5-5.5-5.5s2.5-5.5 5.5-5.5 5.5 2.5 5.5 5.5c0 3.1-2.5 5.5-5.5 5.5zM21.2 13.4h17.3M21.2 30.1h17.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 9.8,\n cy: 13,\n r: 0.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRadioButtonGroup);\nexport default __webpack_public_path__ + \"static/media/radioButtonGroup.e5088333dc4170212eb37010423ec084.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgReductionOfPrice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M24.6 10.3C17 8.1 17 16 21.8 15.9c4.7-.1 5.3 7.5-3.1 5.2M21.6 8.6v.7M21.6 22.2v.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 32,\n cy: 2.1,\n r: 1.7\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32 7.5v18.2h6.9L21.7 40.8 4.9 25.4h6.9V2.1h14.6\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReductionOfPrice);\nexport default __webpack_public_path__ + \"static/media/reductionOfPrice.56b3c3e2b7e8998396d73b8c8f929fe1.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRefresh(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.1,\n cy: 22,\n r: 2.3\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M7.5 26.3c-1.1-3.4-1.1-7.2.5-10.7C11.3 8.3 19.9 5 27.2 8.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.8 16.4c1.3 3.5 1.3 7.5-.3 11.1-3.3 7.3-11.9 10.6-19.2 7.3\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M27 3.4l2.2 5.8-5.8 2.2\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.2 39.1L12 33.3l5.8-2.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRefresh);\nexport default __webpack_public_path__ + \"static/media/refresh.cebe52ce6bf6396041a1b22be9a1279b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRefreshSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M7.5 26.3c-1.1-3.4-1.1-7.2.5-10.7C11.3 8.3 19.9 5 27.2 8.3M34.8 16.4c1.3 3.5 1.3 7.5-.3 11.1-3.3 7.3-11.9 10.6-19.2 7.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M27 3.4l2.2 5.8-5.8 2.2M14.2 39.1L12 33.3l5.8-2.2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRefreshSimple);\nexport default __webpack_public_path__ + \"static/media/refreshSimple.bfd801c9ac5d1d828885120c3f475331.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgReorderrows(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M4.5 24.8v-8c0-3.1 2.5-5.7 5.7-5.7M32.3 11.1c3.1 0 5.7 2.5 5.7 5.7v9.1c0 3.1-2.5 5.7-5.7 5.7H5.1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M15.7 17.8h14.5M10.9 24.4h19.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 10.9,\n cy: 17.8,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReorderrows);\nexport default __webpack_public_path__ + \"static/media/reorderrows.07bd7b5deea36b3e3a6c70c88d772ccc.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgReorderrowssmall(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M15.7 17.8h14.5M10.9 24.4h19.3\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 10.9,\n cy: 17.8,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReorderrowssmall);\nexport default __webpack_public_path__ + \"static/media/reorderrowssmall.91722ad46ad3b93e8346b2f35bb3a8fa.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgResize(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M21.2 35.5l14.4-14.4M30.2 35.5l5.4-5.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgResize);\nexport default __webpack_public_path__ + \"static/media/resize.27c790220326dd46f1fac93730d547f9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRubber(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.1 42.1\",\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 className: \"IC_4L_sub\",\n d: \"M16.9 30.4h17.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.9,\n cy: 15.8,\n r: 1.5\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.7 29.5l-4-4c-1.2-1.2-1.2-3.1 0-4.3l16-16C27.9 4 29.8 4 31 5.2l4 4c1.2 1.2 1.2 3.1 0 4.3l-16 16c-1.2 1.2-3.2 1.2-4.3 0zM15.8 16l8.3 8.4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M13.8 34.2l-1.3 2.7M9.9 30.4l-2.8-.8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRubber);\nexport default __webpack_public_path__ + \"static/media/rubber.bbc2c8b25eded0d30b17f512af90337e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSafe(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M12.9 28.2l2.4-2.4M23.3 17.8l2.4-2.4M12.8 15.4l2.4 2.4M23.2 25.8l2.4 2.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 19.2,\n cy: 21.8,\n r: 5.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.2,\n cy: 21.8,\n r: 2.6\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M6.1 29V14c0-3.4 2.9-6.2 6.4-6.2h19c3.5 0 6.4 2.8 6.4 6.2v15.7c0 3.3-2.8 5.9-6.2 5.9H11.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSafe);\nexport default __webpack_public_path__ + \"static/media/safe.0409f3b7517b1ad25b109a11fb67c107.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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 xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16.9 21L6.7 31.2c-.9.9-1 2.2-.2 3L8 35.7c.8.8 2.1.7 3-.2l7.2-7.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M29.1 11.8c2.7 1.6 3.7 5 2.1 7.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M36.6 16.6C36.6 22.3 32 27 26.2 27c-3.2 0-6-1.4-7.9-3.7-1.5-1.8-2.5-4.1-2.5-6.7 0-5.7 4.6-10.4 10.4-10.4s10.4 4.7 10.4 10.4z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 25.1,\n cy: 10.8,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.a4792f8cfe5ed9655fa394278a2f4b6a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSearchSmall(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M17.6 26.1L8.7 35\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 24,\n cy: 18.4,\n r: 9.9\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearchSmall);\nexport default __webpack_public_path__ + \"static/media/searchSmall.9e8fdfd628147ec6dc6a8e5ce8995463.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSend(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M30.5 23.1l5.5 5.5-5.5 5.5M34.4 28.6H23.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M30.5 23.1l5.5 5.5-5.5 5.5M34.4 28.6H23.5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.2 18.5v-4.8c0-3.1-2.5-5.7-5.7-5.7H7.4c-3.1 0-5.7 2.5-5.7 5.7V29c0 3.1 2.5 5.7 5.7 5.7h14.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 40.8,\n cy: 28.6,\n r: 1.5\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M3.1 13.9l14.7 7.8 15.3-8.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSend);\nexport default __webpack_public_path__ + \"static/media/send.49ab121fe47518808573269e929457f8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSendDunningLetter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27.5 5.2h-15c-3.1 0-5.7 2.5-5.7 5.7V32c0 3.1 2.5 5.7 5.7 5.7h15.2c3.1 0 5.7-2.5 5.7-5.7v-9.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M31.5 17.3l4-3.8-3.9-4M34.2 13.4h-10\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M31.5 17.3l4-3.8-3.9-4M34.2 13.4h-10M27.2 31l-7-12.4L13.1 31z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 20.2,\n cy: 26.8,\n r: 1.7\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSendDunningLetter);\nexport default __webpack_public_path__ + \"static/media/sendDunningLetter.d30b38b7bac2feaeb8156f3e7e8060a4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _path4, _circle2, _path5, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSendInvoice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27.8 5.2h-15c-3.1 0-5.7 2.5-5.7 5.7V32c0 3.1 2.5 5.7 5.7 5.7H28c3.1 0 5.7-2.5 5.7-5.7v-9.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M32.1 17.3l3.9-3.8-3.8-4M34.8 13.4h-10\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M32.1 17.3l3.9-3.8-3.8-4M34.8 13.4h-10\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.2,\n cy: 13.4,\n r: 2.3\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M12.9 25.1h10.6\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 27.9,\n cy: 25.1,\n r: 0.2\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M12.9 30.8h10.6\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 27.9,\n cy: 30.9,\n r: 0.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSendInvoice);\nexport default __webpack_public_path__ + \"static/media/sendInvoice.1b6f2d236aec4d4e6fbc2d6525457d31.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSendMessage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 14.883,\n cy: 18.24,\n r: 1.399\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M37.993 5.16l-12.72 32.2-6.72-12.92-13.28-6.52zM18.553 24.44l19.44-19.28\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M7.769 35.453l6.44-6.441M13.721 37.149l2.717-2.718M4.526 30.776l3.968-3.968\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSendMessage);\nexport default __webpack_public_path__ + \"static/media/sendMessage.922645b79db0a63c42196a53db911b0e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSetting(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M13.5 34.8h15.6l7.7-13.5-7.7-13.5H13.5L5.7 21.3l4.9 8.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.2,\n cy: 21.3,\n r: 5.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 21.3,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSetting);\nexport default __webpack_public_path__ + \"static/media/setting.c6604ed5dab9bd2af845bdd061c19fe3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSettingsSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M13.6 35.1h15.6L37 21.6 29.2 8.1H13.6L5.8 21.6l7.7 13.5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.6 35.1h15.6L37 21.6 29.2 8.1H13.6L5.8 21.6l7.7 13.5\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.4,\n cy: 21.6,\n r: 5.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettingsSimple);\nexport default __webpack_public_path__ + \"static/media/settingsSimple.50ecfbd76919f7b4d2da449c8cea1f9c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSort(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M11.8 17.9l9.5-9.4 9.4 9.4M21.3 11.1v23\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSort);\nexport default __webpack_public_path__ + \"static/media/sort.71f20318204c8066a26af31297effb01.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSortDown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M11.8 24.6l9.5 9.4 9.4-9.4M21.3 8.4v23\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSortDown);\nexport default __webpack_public_path__ + \"static/media/sortDown.e36e12e17193fbceb53b39ba54295f02.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSorting(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_main\",\n d: \"M8.626 27.017l5.589 5.59 5.59-5.59M14.215 30.135V9.476\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M22.646 14.989l5.589-5.59 5.59 5.59M28.235 11.871v14.896\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 28.295,\n cy: 32.399,\n r: 1.696\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSorting);\nexport default __webpack_public_path__ + \"static/media/sorting.815740f9eb24cc5412fa0c433c7b5760.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAttachmentIndicator(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 85 42\",\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 className: \"IC_4L_main\",\n d: \"M44.2 21.6l-6.6 6.6c-1.2 1.2-3.2 1.2-4.4 0-1.2-1.2-1.2-3.2 0-4.4l16-16c.8-.8 2.2-.8 3.1 0l5.7 5.7s1.4 1.5 0 2.9L40.9 33.6c-3.6 2.7-8.5 2.1-11.4-.8l-.8-.8c-2.9-2.9-3.6-8.3-.6-11.3l7.7-7.7 5.9-5.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttachmentIndicator);\nexport default __webpack_public_path__ + \"static/media/attachmentIndicator.af8533862c2739bbfb78ca653e2a77ad.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCsCleared(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M28.9 34H13.1c-1 0-1.8-1.2-1.9-1.8.2-3.7.9-5.5.9-5.5 1-4.1 6.1-9.1 7.1-9.1h3.7c1.5 0 5.8 5.9 6.7 9.1 0 0 1.2 2.3 1.1 5.6-.1.6-.8 1.7-1.8 1.7z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCsCleared);\nexport default __webpack_public_path__ + \"static/media/cs_cleared.628a4f7d756bb2a430ede49fe575d36d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCsNotCleared(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M28.8 34H13.1c-1.3 0-1.8-1.1-1.8-1.8 0 0-.1-1.1 0-2 .1-.8.7-1.3 1.4-1.3H29c1.1 0 1.5.4 1.7 1.3.1.6.1 2 .1 2 .1 1.1-.6 1.8-2 1.8z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCsNotCleared);\nexport default __webpack_public_path__ + \"static/media/cs_notCleared.070dbeed5dce7d3394805d9f23f5731a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCsPartiallyCleared(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M7.4 32c0 3.1 2.6 5.7 5.7 5.7h15.8c3.1 0 5.7-2.6 5.7-5.7 0 0-.1-10.1-9.7-17.8h-7.2C7.2 21 7.4 31.7 7.4 31.7\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M24.9 14.3l3.4-7.5s-1.5-1.8-4.5-.7-2.5.8-5 0-4-.1-5.5 1.3l4.5 6.9\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M28.8 34H13c-1 0-1.8-1.2-1.9-1.8.2-3.7.9-5.5.9-5.5.7-1.6 2.2-2 3.2-2h11c1.5 0 2.8.5 3.3 2 0 0 1.2 2.3 1.1 5.6-.1.6-.8 1.7-1.8 1.7z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCsPartiallyCleared);\nexport default __webpack_public_path__ + \"static/media/cs_partiallyCleared.fa16e3d96055cc894d19f79221f5ad23.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDoubleForm(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\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 className: \"SI_4L_stroke\",\n d: \"M46 25.7H36M46.1 31H36M35 11.1h12.3c2.6 0 4.6 2.1 4.6 4.6v17.1c0 2.6-2.1 4.6-4.6 4.6H35c-2.6 0-4.6-2.1-4.6-4.6V15.7c0-2.5 2.1-4.6 4.6-4.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M55.3 15.5s0-3.4-2-5.3c-2-2.5-5.3-2.5-5.3-2.5H36.1c-.4 0-.5-.5-.3-.7l2.7-2.2c.3-.2.6-.3.9-.3h9.3c5.7 0 9.9 4.9 9.9 9.9v14.5c0 .3-.1.7-.3.9l-2.4 2.8c-.2.3-.7.1-.7-.3l.1-16.8z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M41.3 11.1v5.6M47.3 11.1v5.6M35.3 11.1v5.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 35.3,\n cy: 17.9,\n r: 0.9\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 41.2,\n cy: 17.9,\n r: 0.9\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 47.3,\n cy: 17.9,\n r: 0.9\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDoubleForm);\nexport default __webpack_public_path__ + \"static/media/doubleForm.bd31269e84b7b4353538b0babe6f51c0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIsdoc(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\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 className: \"SI_4L_stroke\",\n d: \"M29.6 4.7h15.8l10.2 9.1v23.9h-26z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M45.3 5.2v9h9.9\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M45.6 28.8c3-3 5.3-8.6 4.1-9.7-1-1-5.8.4-9.6 4.1-3.9 3.9-5.1 8.8-4.2 9.6.8.9 6.2-.6 9.7-4zM36.8 24.6c-1.3-2.5-1.6-4.7-.9-5.3.7-.7 2.9-.2 5.2.9-1.1.6-3 2.1-4.3 4.4zM48.8 27.4c1.3 2.5 1.6 4.7.9 5.3-.7.7-2.9.2-5.2-.9 1.1-.7 3-2.1 4.3-4.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIsdoc);\nexport default __webpack_public_path__ + \"static/media/isdoc.c67b3a1a9c159feabf5879c39f838d5e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLocked(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"21.25 0 42.5 42.5\",\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 className: \"SI_4L_stroke\",\n d: \"M32 17.4V15c0-5.5 4.5-10 10-10s10 4.5 10 10v2.3M54.5 17.4H29.6v11.5c0 4.5 3.7 8.2 8.2 8.2h8.5c4.5 0 8.2-3.7 8.2-8.2V17.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M50.6 20.8h-17c-.4 0-.7.3-.7.7v6.9c0 2.9 2.3 5.2 5.2 5.2H46c2.9 0 5.2-2.3 5.2-5.2v-6.9c.1-.4-.2-.7-.6-.7zm-7.3 9.3c0 .6-.4 1-1 1s-1-.4-1-1v-5.6c0-.6.4-1 1-1s1 .4 1 1v5.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocked);\nexport default __webpack_public_path__ + \"static/media/locked.3940268b61d73b1920cbce4bdf494b08.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 21.2,\n cy: 21.2,\n r: 17.7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M26.9 20.3l3.9-3.9c.5-.5.5-1.4 0-2l-2.7-2.7c-.5-.5-1.4-.5-2 0l-3.9 3.9c-.5.5-1.4.5-2 0l-3.9-3.9c-.5-.5-1.4-.5-2 0l-2.7 2.7c-.5.5-.5 1.4 0 2l3.9 3.9c.5.5.5 1.4 0 2l-3.9 3.9c-.5.5-.5 1.4 0 2l2.7 2.7c.5.5 1.4.5 2 0l3.9-3.9c.5-.5 1.4-.5 2 0l3.9 3.9c.5.5 1.4.5 2 0l2.7-2.7c.5-.5.5-1.4 0-2l-3.9-3.9c-.6-.6-.6-1.5 0-2z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNo);\nexport default __webpack_public_path__ + \"static/media/no.89c5d8828d0e83c7cd63783a31568c1e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNoDataRead(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\n xmlSpace: \"preserve\",\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 className: \"SI_4L_fill_red\",\n d: \"M35.9 29.8l10.3-10.3c.7-.7 1.8-.7 2.4 0l.4.4c.7.7.7 1.8 0 2.4L38.8 32.6c-.7.7-1.8.7-2.4 0l-.4-.4c-.7-.6-.7-1.7-.1-2.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M46.2 32.6L35.9 22.3c-.7-.7-.7-1.8 0-2.4l.4-.4c.7-.7 1.8-.7 2.4 0L49 29.8c.7.7.7 1.8 0 2.4l-.4.4c-.6.7-1.7.7-2.4 0z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M29.5 4.7h15.9l10.1 9.1v23.9h-26z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M45.2 5.2v9h10\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoDataRead);\nexport default __webpack_public_path__ + \"static/media/noDataRead.ba65ca668ba414e09b4bc24b2d491567.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPartlyLocked(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"21.25 0 42.5 42.5\",\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 className: \"SI_4L_stroke\",\n d: \"M34.9 8.4C36.8 6.3 39.5 5 42.5 5c5.5 0 10 4.5 10 10v2.3M54.9 17.4H30.1v11.5c0 4.5 3.7 8.2 8.2 8.2h8.5c4.5 0 8.2-3.7 8.2-8.2V17.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M51.1 20.8H34c-.4 0-.7.3-.7.7v6.9c0 2.9 2.3 5.2 5.2 5.2h7.9c2.9 0 5.2-2.3 5.2-5.2v-6.9c.2-.4-.2-.7-.5-.7zm-7.4 9.3c0 .6-.4 1-1 1s-1-.4-1-1v-5.6c0-.6.4-1 1-1s1 .4 1 1v5.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPartlyLocked);\nexport default __webpack_public_path__ + \"static/media/partlyLocked.2c132279d80fd09280858574e65b9087.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPsNotApplicable(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M13.7 4.5h14.7c3.1 0 5.7 2.6 5.7 5.7v21.7c0 3.1-2.6 5.7-5.7 5.7H13.7C10.6 37.6 8 35 8 31.9V10.2c0-3.1 2.6-5.7 5.7-5.7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_grey\",\n d: \"M29.3 14.4H12.8c-.8 0-1.4-.6-1.4-1.4V9.8c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4V13c.1.7-.6 1.4-1.4 1.4zM29.2 24.1H12.7c-.8 0-1.4-.6-1.4-1.4v-3.2c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4zM29.2 33.6H12.7c-.8 0-1.4-.6-1.4-1.4V29c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPsNotApplicable);\nexport default __webpack_public_path__ + \"static/media/ps_notApplicable.7e7fc85fa0eb59aec4f6f59034be2118.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPsNotPosted(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M13.7 4.5h14.7c3.1 0 5.7 2.6 5.7 5.7v21.7c0 3.1-2.6 5.7-5.7 5.7H13.7C10.6 37.6 8 35 8 31.9V10.2c0-3.1 2.6-5.7 5.7-5.7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_red\",\n d: \"M29.3 14.4H12.8c-.8 0-1.4-.6-1.4-1.4V9.8c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4V13c.1.7-.6 1.4-1.4 1.4zM29.2 24.1H12.7c-.8 0-1.4-.6-1.4-1.4v-3.2c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4zM29.2 33.6H12.7c-.8 0-1.4-.6-1.4-1.4V29c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPsNotPosted);\nexport default __webpack_public_path__ + \"static/media/ps_notPosted.5ab886ae97f3d3d21b91c2395fc47560.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPsPosted(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"SI_4L_stroke\",\n d: \"M13.7 4.5h14.7c3.1 0 5.7 2.6 5.7 5.7v21.7c0 3.1-2.6 5.7-5.7 5.7H13.7C10.6 37.6 8 35 8 31.9V10.2c0-3.1 2.6-5.7 5.7-5.7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M29.3 14.4H12.8c-.8 0-1.4-.6-1.4-1.4V9.8c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4V13c.1.7-.6 1.4-1.4 1.4zM29.2 24.1H12.7c-.8 0-1.4-.6-1.4-1.4v-3.2c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4zM29.2 33.6H12.7c-.8 0-1.4-.6-1.4-1.4V29c0-.8.6-1.4 1.4-1.4h16.5c.8 0 1.4.6 1.4 1.4v3.2c0 .8-.6 1.4-1.4 1.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPsPosted);\nexport default __webpack_public_path__ + \"static/media/ps_posted.a2d83acf86348c0f31929a8a8dce3d9c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRossum(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\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 className: \"SI_4L_stroke\",\n d: \"M29.6 4.7h15.9l10.1 9.1v23.9h-26z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M45.3 5.2v9h10\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M42.5 18.1c-4.3 0-7.8 3.5-7.8 7.8s3.5 7.8 7.8 7.8 7.8-3.5 7.8-7.8-3.5-7.8-7.8-7.8zm0 11.5c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7 3.7 1.7 3.7 3.7c0 2.1-1.7 3.7-3.7 3.7z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRossum);\nexport default __webpack_public_path__ + \"static/media/rossum.3c0cecdb686ed8a6cffc55338302dffa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTicketDone(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\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 className: \"SI_4L_stroke\",\n d: \"M60.313 15.949V32.68c0 3.118-2.551 5.669-5.669 5.669H30.356c-3.118 0-5.669-2.551-5.669-5.669V15.949\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M60.273 15.768L46.628 23.86c-2.533 1.915-5.72 1.97-8.381 0l-13.515-7.907M31.186 11.226l-6.429 4.658M60.273 15.768l-5.903-4.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M31.181 19.487V8.149a4.498 4.498 0 014.498-4.498h13.602a4.498 4.498 0 014.498 4.498v11.338\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M48.514 19.569l-3.256 1.623a6.23 6.23 0 01-5.557 0l-3.256-1.623a3.251 3.251 0 01-1.822-2.902v-6.528c0-1.8 1.497-3.26 3.344-3.26h9.025c1.847 0 3.344 1.459 3.344 3.26v6.528a3.251 3.251 0 01-1.822 2.902z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTicketDone);\nexport default __webpack_public_path__ + \"static/media/ticket_done.ac52f96795a58d865a3fc661ee39c69b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTicketInProgress(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 85 42\",\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 className: \"SI_4L_stroke\",\n d: \"M60.313 15.949V32.68c0 3.118-2.551 5.669-5.669 5.669H30.356c-3.118 0-5.669-2.551-5.669-5.669V15.949\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M60.273 15.768L46.628 23.86c-2.533 1.915-5.72 1.97-8.381 0l-13.515-7.907M31.186 11.226l-6.429 4.658M60.273 15.768l-5.903-4.1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M31.181 19.487V8.149a4.498 4.498 0 014.498-4.498h13.602a4.498 4.498 0 014.498 4.498v11.338\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M48.514 19.569l-3.256 1.623a6.23 6.23 0 01-5.557 0l-3.256-1.623a3.251 3.251 0 01-1.822-2.902v-6.528c0-1.8 1.497-3.26 3.344-3.26h9.025c1.847 0 3.344 1.459 3.344 3.26v6.528a3.251 3.251 0 01-1.822 2.902z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTicketInProgress);\nexport default __webpack_public_path__ + \"static/media/ticket_inProgress.cc5e9b07c6cc0455a079fac19bbed4bf.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnlocked(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"21.25 0 42.5 42.5\",\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 className: \"SI_4L_stroke\",\n d: \"M34.9 8.4C36.8 6.3 39.5 5 42.5 5c5.5 0 10 4.5 10 10v2.3M54.9 17.4H30.1v11.5c0 4.5 3.7 8.2 8.2 8.2h8.5c4.5 0 8.2-3.7 8.2-8.2V17.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M51.1 20.8H34c-.4 0-.7.3-.7.7v6.9c0 2.9 2.3 5.2 5.2 5.2h7.9c2.9 0 5.2-2.3 5.2-5.2v-6.9c.2-.4-.2-.7-.5-.7zm-7.4 9.3c0 .6-.4 1-1 1s-1-.4-1-1v-5.6c0-.6.4-1 1-1s1 .4 1 1v5.6z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnlocked);\nexport default __webpack_public_path__ + \"static/media/unlocked.ae16a99a7e920bc3c3a9742319568220.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _circle4, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatNotApplicable(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 12,\n cy: 12.6,\n r: 7.8\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_grey\",\n cx: 12,\n cy: 12.6,\n r: 4.7\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_grey\",\n cx: 30,\n cy: 29.7,\n r: 4.7\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 30,\n cy: 29.7,\n r: 7.8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M10.8 36l20-29.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatNotApplicable);\nexport default __webpack_public_path__ + \"static/media/vat_notApplicable.812a2ca6f461b2d9504bbd91ce5612ad.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _circle4, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatNotPosted(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 12,\n cy: 12.6,\n r: 7.8\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_red\",\n cx: 12,\n cy: 12.6,\n r: 4.7\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_red\",\n cx: 30,\n cy: 29.7,\n r: 4.7\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 30,\n cy: 29.7,\n r: 7.8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M10.8 36l20-29.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatNotPosted);\nexport default __webpack_public_path__ + \"static/media/vat_notPosted.9c2e0aadac3bd0d58ef52a3f08760e71.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _circle, _circle2, _circle3, _circle4, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatPartial(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n \"data-name\": \"Vrstva 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 12,\n cy: 12.6,\n r: 7.8\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_orange\",\n cx: 12,\n cy: 12.6,\n r: 4.7\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_orange\",\n cx: 30,\n cy: 29.7,\n r: 4.7\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 30,\n cy: 29.7,\n r: 7.8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M10.8 36l20-29.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatPartial);\nexport default __webpack_public_path__ + \"static/media/vat_partial.5e674f3633a14103b1155fa43150fe4e.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _circle4, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVatPosted(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 12,\n cy: 12.6,\n r: 7.8\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_green\",\n cx: 12,\n cy: 12.6,\n r: 4.7\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_green\",\n cx: 30,\n cy: 29.7,\n r: 4.7\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 30,\n cy: 29.7,\n r: 7.8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_stroke\",\n d: \"M10.8 36l20-29.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVatPosted);\nexport default __webpack_public_path__ + \"static/media/vat_posted.65b34cc1c69909a530eeccc884cee4df.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWarn(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 21.2,\n cy: 21.2,\n r: 17.7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_orange\",\n d: \"M23 25.3h-3.5c-.8 0-1.4-.6-1.4-1.4V10.2c0-.8.6-1.4 1.4-1.4H23c.8 0 1.4.6 1.4 1.4v13.7c0 .8-.6 1.4-1.4 1.4z\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_fill_orange\",\n cx: 21.2,\n cy: 31.3,\n r: 3.1\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarn);\nexport default __webpack_public_path__ + \"static/media/warn.5364fd6bf469091b9cce85f314d96393.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgYes(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"SI_4L_stroke\",\n cx: 21.2,\n cy: 21.2,\n r: 17.7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"SI_4L_fill_green\",\n d: \"M27.8 12.3l-8.6 10.5c-.5.6-1.5.7-2.1.1l-3.4-3.4c-.6-.6-1.5-.5-2 0l-3 3.3c-.5.5-.5 1.4 0 1.9l1.1 1.1L17 33c.6.6 1.5.5 2.1-.1l13.6-16.3c.5-.6.4-1.4-.1-1.9L29.8 12c-.5-.4-1.5-.4-2 .3z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgYes);\nexport default __webpack_public_path__ + \"static/media/yes.cf0eb5c11767142b56be223c72f2e17e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSupport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M7.9 17.3c.2-5.3 3.5-10.2 8.7-12.1 6.9-2.6 14.6 1 17.2 7.9.5 1.4.8 2.8.8 4.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M12.4 18.4v5.7c0 .9.2 1.8.5 2.7 1.6 4.4 6.6 6.7 11 5 3.4-1.2 5.5-4.4 5.6-7.7v-7.8s-1.9 2.4-6.5 4c-3.8 1.3-5.3.8-5.3.8l1.6-4.7-6.9 2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.6 25.1c-.2 5.3-3.5 10.1-8.7 12.1-.3.1-.7.2-1 .3M7.9 24.4h-.4c-1.4 0-2.4-1.1-2.4-2.4v-2.2c0-1.4 1.1-2.4 2.4-2.4h.4M34.7 17.3h.4c1.4 0 2.4 1.1 2.4 2.4v2.2c0 1.4-1.1 2.4-2.4 2.4h-.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 20.1,\n cy: 38,\n r: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSupport);\nexport default __webpack_public_path__ + \"static/media/support.71de598bc3c9cc850dc38c944abe12a6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSwitch(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M23.2 14.2h9.6c4 0 7.3 3.3 7.3 7.3 0 2-.8 3.8-2.1 5.1-1.3 1.3-3.1 2.1-5.1 2.1h-9.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 13.8,\n cy: 21.3,\n r: 11.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 13.8,\n cy: 21.5,\n r: 5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSwitch);\nexport default __webpack_public_path__ + \"static/media/switch.28890becb50a25e1f030220d45473a35.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSynchronization(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.964 22.565l-3.196-3.196a6.037 6.037 0 010-8.538 6.037 6.037 0 018.538 0l4.053 4.053M28.872 20.397l3.396 3.396a6.037 6.037 0 010 8.538 6.037 6.037 0 01-8.538 0l-4.011-4.011\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M19.709 16.024l4.918.101.101-4.917M23.18 26.863l-4.918-.101-.101 4.918\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSynchronization);\nexport default __webpack_public_path__ + \"static/media/synchronization.14335653714a0b93d2d9207b4feb3a05.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTablecaret(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M33.9 11.4L21.3 31.2 8.6 11.4z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTablecaret);\nexport default __webpack_public_path__ + \"static/media/tablecaret.ce35a801d99b50384d344a533d8fc66a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2, _path3, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTaxInvoice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M34.5 24V10.7C34.5 7.6 32 5 28.9 5H13.7C10.5 5 8 7.6 8 10.7V37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M8 37.1l4.4-4.2 4.4 4.2 4.5-4.2 4.4 4.2 4.4-4.2 4.4 4.2\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 34.5,\n cy: 29.4,\n r: 1.5\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 25.8,\n cy: 21.1,\n r: 0.7\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.5 21.3l9.6-9.5\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 16.7,\n cy: 12.1,\n r: 0.7\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTaxInvoice);\nexport default __webpack_public_path__ + \"static/media/taxInvoice.7166688bb40cacb8a41ade5b237a0c85.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTaxPayerDeclaration(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M11.721 29.647s.696-3.171 1.965-2.254c1.542 1.114.489 4.761 2.511 4.414 1.13-.194 1.593-3.087 1.65-2.278.088 1.225 1.813 1.419 1.813 1.419\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30.989 24.087v8.422a5.243 5.243 0 01-5.243 5.243H11.684a5.243 5.243 0 01-5.243-5.243V13.065a5.246 5.246 0 013.666-5.002l1.327-.241h9.618\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20.839 15.504l11.88-11.879 5.537 5.537-11.879 11.879-7.918 2.38 2.38-7.917zM20.839 15.504l5.537 5.537\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.927,\n cy: 31.382,\n r: 1.445\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTaxPayerDeclaration);\nexport default __webpack_public_path__ + \"static/media/taxPayerDeclaration.9e5090c80d71db8cf0cc2ea116e42fea.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTechnicalImprovement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M24.3 22.3c-7.6-2.2-7.6 5.8-2.8 5.7 4.7-.1 5.3 7.5-3.1 5.2M21.3 20.6v.7M21.3 34.2v.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.7,\n cy: 40.3,\n r: 1.7\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.7 35V24.3h6.8L21.4 9.2 4.6 24.6h6.9v16.1h14.7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M3.7 18.9l17.9-17 16.9 15.7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTechnicalImprovement);\nexport default __webpack_public_path__ + \"static/media/technicalImprovement.bc61590727bb3900718ff2882830ef08.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTemplate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27 37.7H12c-3.1 0-5.7-2.5-5.7-5.7V11c0-3.1 2.5-5.7 5.7-5.7h15.2c3.1 0 5.7 2.5 5.7 5.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M30.9 32.5H17.1c-2.8 0-5.1-2.3-5.1-5.1v-8.3c0-2.8 2.3-5.1 5.1-5.1h13.8c2.8 0 5.1 2.3 5.1 5.1v8.3c0 2.8-2.3 5.1-5.1 5.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M20.5 19.2h8v8h-8z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 16.6,\n cy: 19.6,\n r: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTemplate);\nexport default __webpack_public_path__ + \"static/media/template.645e3bd2cbfcdd244be873bd4e1a8840.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTime(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M35 26.9c-1.5 3.7-4.4 6.8-8.5 8.3-7.5 2.8-15.9-1-18.7-8.6s1-15.9 8.6-18.7 15.9 1 18.7 8.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 36.2,\n cy: 21.6,\n r: 1.4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M30.4 21.6H21v-7.4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTime);\nexport default __webpack_public_path__ + \"static/media/time.cbef8b35830087793883044c931cc9fc.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimeDependent(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.17 8.659V4.672h-4.021 8.042\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.17,\n cy: 23.083,\n r: 13.644\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 32.604,\n cy: 9.397,\n r: 1.433\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M20.665 24.655l-5.649-4.152 6.447 2.492c.448.25.688.868.451 1.285-.263.463-.909.561-1.249.375z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.206,\n cy: 23.083,\n r: 13.644\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimeDependent);\nexport default __webpack_public_path__ + \"static/media/timeDependent.a75f05c32fe15c32d8098429b8d42ad1.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimeDependentFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M21.189 8.659V4.672h-4.022 8.042\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.206,\n cy: 23.083,\n r: 13.644\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M22.161 24.808l-.04-8.792a7.096 7.096 0 11-7.203 3.785l7.243 5.007z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 32.622,\n cy: 9.397,\n r: 1.433\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimeDependentFilled);\nexport default __webpack_public_path__ + \"static/media/timeDependentFilled.ebd3569adf2cb390dd3e1fc4ba96ed03.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnavailable(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.26,\n cy: 21.26,\n r: 13\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M12.114 30.405l18.291-18.291\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnavailable);\nexport default __webpack_public_path__ + \"static/media/unavailable.79d8200862f31c5ae69f1d316d3d7f5a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnchained(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M22 27s.8 1.7-1.1 3.5l-5.6 5.6c-3.2 3.2-4.7 1.2-7.3-1.3-2.6-2.6-4.6-4-1.3-7.3l5.6-5.6c1.9-1.9 3.5-1.1 3.5-1.1M27.2 21.8s1.7.8 3.5-1.1l5.6-5.6c3.2-3.2 1.2-4.7-1.3-7.3s-4-4.6-7.3-1.3l-5.6 5.6C20.2 14 21 15.6 21 15.6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M31.1 27.3h8M27.4 31v8M15.2 11.5v-8M11.5 15.2H3.6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.4,\n cy: 21.4,\n r: 1.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnchained);\nexport default __webpack_public_path__ + \"static/media/unchained.6d09d41d2356577c4f0d0f01a9ccf82b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnpaidDocument(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_1\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 10.5,\n cy: 33.02,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M9.788 9.086c0-3.13 2.43-4.56 5.56-4.56h15.66c3.13 0 5.67 2.54 5.67 5.67v20.66c0 3.13-2.54 5.67-5.67 5.67\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M16.112 20.279H14.19c-.501 0-.982.183-1.358.515-1.297 1.15-4.352 4.128-5.972 7.941-1.17 2.752-1.008 5.048-1.016 5.206-.03.553.337 3.195 3.425 3.636 1.859.265 4.518.405 6.843.418 2.325-.013 4.984-.152 6.843-.418 3.087-.441 3.454-3.083 3.425-3.636-.008-.157.153-2.454-1.016-5.206-1.62-3.812-4.676-6.79-5.972-7.941a2.04 2.04 0 00-1.358-.515h-1.922z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M13.721 20.279h4.593c.245 0 .469-.164.586-.427l2.438-5.517c.133-.3.1-.668-.085-.925-.368-.511-1.129-1.157-2.434-.561-1.982.906-1.807 1.697-4.26.461-1.712-.862-2.938.032-3.523.652-.24.254-.299.676-.143 1.014l2.249 4.888c.117.256.339.415.579.415z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnpaidDocument);\nexport default __webpack_public_path__ + \"static/media/unpaidDocument.c376d4c0efa389d783fd5885fcb95ea4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnrelatedItems(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_sub\",\n d: \"M20.573 10.372h8.624M20.573 21.846h13.443M20.573 33.321h13.443\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M14.173 13.396L8.126 7.349M14.173 7.349l-6.047 6.047M14.173 24.87l-6.047-6.047M14.173 18.823L8.126 24.87M14.173 36.344l-6.047-6.047M14.173 30.297l-6.047 6.047\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 34.016,\n cy: 10.372,\n r: 1.445\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnrelatedItems);\nexport default __webpack_public_path__ + \"static/media/unrelatedItems.35834e5029a97f7638ac664a9939b05c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M15.7 19.7l5.6-5.8 5.7 5.6M21.3 15.7l.2 12.9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M15.7 19.7l5.6-5.8 5.7 5.6M21.3 15.7l.2 12.9\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 21.3,\n r: 13.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUp);\nexport default __webpack_public_path__ + \"static/media/up.ac28899b86175d7841ceb8ddaa256889.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUpload(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.817,\n cy: 17.42,\n r: 1.444\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M16.417 26.627l5.277-5.278 5.278 5.278M21.694 23.684v12.011\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M10.476 15.592h-.078c-2.735 0-4.946 2.219-4.946 4.946s2.211 4.939 4.946 4.939\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M18.165 13.647v-.008a3.975 3.975 0 00-3.798-2.79 3.966 3.966 0 00-3.97 3.97c0 .266.023.524.07.774h.008M31.215 15.678a4.947 4.947 0 015.852 4.86 4.94 4.94 0 01-4.946 4.939\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M18.165 13.647v-.117c0-3.704 3.001-6.705 6.705-6.705s6.705 3.001 6.705 6.705c0 .75-.125 1.477-.359 2.149\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUpload);\nexport default __webpack_public_path__ + \"static/media/upload.6666ecc83d61bed893d38bc927e803cb.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUploadSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16.2 26.9l5.5-5.5 5.6 5.5M21.7 23.8v12.7M9.9 15.3c-3 0-5.3 2.3-5.3 5.2s2.3 5.2 5.2 5.2M18 13.2c-.5-1.7-2.1-2.9-4-2.9-2.3 0-4.2 1.9-4.2 4.2 0 .3 0 .6.1.8M31.7 15.4c.3-.1.6-.1 1-.1 2.9 0 5.2 2.3 5.2 5.2s-2.3 5.2-5.2 5.2\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M18 13.2v-.1C18 9.2 21.2 6 25.1 6s7.1 3.2 7.1 7.1c0 .8-.1 1.6-.4 2.3M9.9 15.3c-3 0-5.3 2.3-5.3 5.2s2.3 5.2 5.2 5.2M18 13.2c-.5-1.7-2.1-2.9-4-2.9-2.3 0-4.2 1.9-4.2 4.2 0 .3 0 .6.1.8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.7 15.4c.3-.1.6-.1 1-.1 2.9 0 5.2 2.3 5.2 5.2s-2.3 5.2-5.2 5.2\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M18 13.2v-.1C18 9.2 21.2 6 25.1 6s7.1 3.2 7.1 7.1c0 .8-.1 1.6-.4 2.3\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUploadSimple);\nexport default __webpack_public_path__ + \"static/media/uploadSimple.695bff5f9530c5dc067b97282b249dc9.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUseIsdoc(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.347,\n cy: 21.319,\n r: 0.1\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n strokeMiterlimit: 15,\n cx: 17.132,\n cy: 25.534,\n r: 0.1\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 25.617,\n cy: 17.159,\n r: 1.445\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M21.924 30.641c5.331 3.315 10.322 4.123 11.412 3.033 1.098-1.098.03-6.531-3.029-11.752M20.797 12.422C15.932 9.5 10.581 7.921 9.119 9.382c-1.338 1.338-.299 6.436 3.091 11.689\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M26.233 26.055c5.261-5.261 9.239-15.042 7.18-17.101-1.783-1.783-10.252.657-16.859 7.264-6.923 6.923-8.903 15.484-7.434 16.953 1.495 1.495 11.021-1.023 17.113-7.116z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUseIsdoc);\nexport default __webpack_public_path__ + \"static/media/use_isdoc.abda330a6b9b0cc7e98e59d7abf1794a.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUseRossum(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M34.768 16.254c1.823 4.931.871 10.684-2.949 14.802-5.41 5.832-14.523 6.174-20.355.764S5.29 17.297 10.7 11.465c4.395-4.738 11.234-5.853 16.773-3.203\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 31.956,\n cy: 11.606,\n r: 1.445\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUseRossum);\nexport default __webpack_public_path__ + \"static/media/use_rossum.94f613be0fb0c4acc1448b28627e1509.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUser(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.3,\n cy: 15.9,\n r: 7.8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M35.3 34.4V33c0-4.1-3.3-7.4-7.4-7.4H14.6c-4.1 0-7.4 3.3-7.4 7.4v1.4\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 16,\n cy: 32.9,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUser);\nexport default __webpack_public_path__ + \"static/media/user.b07f2d07e75283a381ac30f21ec4b460.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgValuehelp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M14.5 10.4c-.5.9-.8 2-.8 3.2V22c0 3.6 3 6.6 6.6 6.6h8.5c3.6 0 6.5-3 6.5-6.6v-8.4c0-3.6-3-6.6-6.6-6.6h-8.4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M26.9 33.6c-1.2 1.2-2.8 1.9-4.7 1.9h-8.4c-3.7 0-6.6-3-6.6-6.6v-8.4c0-1.4.4-2.6 1.1-3.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.1,\n cy: 17.9,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgValuehelp);\nexport default __webpack_public_path__ + \"static/media/valuehelp.5e3c6aa343806a09c185910abb5948c0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgValuehelpfilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_sub\",\n d: \"M27 33.9c-1.2 1.2-2.8 1.9-4.7 1.9h-8.4c-3.7 0-6.6-3-6.6-6.6v-8.4c0-1.4.4-2.6 1.1-3.7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_filled\",\n d: \"M20.6 29H28c3.7 0 6.6-3 6.6-6.6v-8.7c0-3.7-3-6.6-6.6-6.6h-7.4c-3.7 0-6.6 3-6.6 6.6v8.7c0 3.6 2.9 6.6 6.6 6.6z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 24.3,\n cy: 18.1,\n r: 2.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgValuehelpfilled);\nexport default __webpack_public_path__ + \"static/media/valuehelpfilled.cf74f6313e980b5813fb3d8e6da2b221.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVisible(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.26,\n cy: 21.307,\n r: 1.752\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M5.453 21.264c1.964 5.752 8.296 9.965 15.807 9.965 4.968 0 9.421-1.844 12.435-4.757M5.453 21.264c1.955-5.76 8.288-9.974 15.807-9.974s13.852 4.214 15.807 9.974\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.26,\n cy: 21.119,\n r: 5.783\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVisible);\nexport default __webpack_public_path__ + \"static/media/visible.6c1791d6d851011dba8fb9b4d3fcfcfe.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVisibleFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_filled\",\n d: \"M21.26 11.29c-7.519 0-13.852 4.214-15.807 9.973 1.964 5.752 8.296 9.965 15.807 9.965s13.843-4.213 15.807-9.965c-1.955-5.76-8.288-9.973-15.807-9.973zm0 15.876a5.783 5.783 0 110-11.566 5.783 5.783 0 010 11.566z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_sub\",\n cx: 21.26,\n cy: 21.336,\n r: 5.783\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 21.26,\n cy: 21.608,\n r: 1.752\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVisibleFilled);\nexport default __webpack_public_path__ + \"static/media/visibleFilled.ac84bfff1856516f057e0cfcdab1a126.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9, _circle10, _circle11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWebInvoice(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M16.6 5.2h-2.9C10.6 5.2 8 7.7 8 10.9V32c0 3.1 2.5 5.7 5.7 5.7h15.2c3.1 0 5.7-2.5 5.7-5.7v-9.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M14.2 24.6h13.7M14.2 30.4h13.7\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 15,\n cy: 14,\n r: 2.3\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 21.3,\n cy: 5.2,\n r: 0.2\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 25.6,\n cy: 5.1,\n r: 0.2\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 29.8,\n cy: 5.1,\n r: 0.2\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 34.2,\n cy: 5.1,\n r: 0.2\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 25.7,\n cy: 9.4,\n r: 0.2\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 30,\n cy: 9.4,\n r: 0.2\n })), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 34.3,\n cy: 9.4,\n r: 0.2\n })), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 30,\n cy: 13.7,\n r: 0.2\n })), _circle10 || (_circle10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 34.4,\n cy: 13.7,\n r: 0.2\n })), _circle11 || (_circle11 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_filled\",\n cx: 34.5,\n cy: 18,\n r: 0.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWebInvoice);\nexport default __webpack_public_path__ + \"static/media/webInvoice.df8068594b90db98fb68133b5c8f0a80.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _ellipse, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCustomer(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 198.425 198.425\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wcust-grad-18\",\n x1: 55.453,\n y1: 121.646,\n x2: 82.053,\n y2: 121.646,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wcust-grad-181\",\n x1: 50.825,\n y1: 104.576,\n x2: 86.836,\n y2: 104.576,\n xlinkHref: \"#wcust-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wcust-grad-182\",\n x1: 42.34,\n y1: 97.508,\n x2: 95.889,\n y2: 97.508,\n xlinkHref: \"#wcust-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wcust-grad-183\",\n x1: 51.227,\n y1: 91.674,\n x2: 86.707,\n y2: 91.674,\n xlinkHref: \"#wcust-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wcust-grad-184\",\n x1: 39.787,\n y1: 124.48,\n x2: 97.869,\n y2: 124.48,\n xlinkHref: \"#wcust-grad-18\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M126.201 126.302s2.712.957 7.978 0c5.265-.957 8.297-3.351 8.297-3.351s3.351 3.829 8.137 3.829\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M80.803 118.091c-2.247 4.339-6.777 7.304-12 7.304-5.301 0-9.888-3.054-12.099-7.498\",\n stroke: \"url(#wcust-grad-18)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M85.495 95.575c.06.577.091 1.163.091 1.756 0 9.254-7.502 16.756-16.756 16.756s-16.756-7.502-16.756-16.756c0-.771.091-1.524.192-2.267\",\n stroke: \"url(#wcust-grad-181)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M51.677 119.073c-5.054-1.516-8.087-5.307-8.087-5.307s1.769-1.011 3.285-4.296c1.516-3.285.566-12.203.566-12.203 0-11.847 9.604-21.45 21.45-21.45s21.45 9.604 21.45 21.45c0 0-.505 9.17 1.769 13.088a13.092 13.092 0 002.527 3.412s-2.906 3.159-7.961 5.433\",\n stroke: \"url(#wcust-grad-182)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M52.477 95.065s3.959.295 9.982-1.264c6.065-1.516 12.046-5.981 12.046-5.981s3.959 6.697 10.951 7.708\",\n stroke: \"url(#wcust-grad-183)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M41.037 134.867c3.54-12.009 14.648-20.774 27.804-20.774s24.209 8.722 27.777 20.685\",\n stroke: \"url(#wcust-grad-184)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M34.281 61.759h69.235v73.412H34.281zM147.373 146.202a9.972 9.972 0 01-8.861 5.393 9.972 9.972 0 01-8.934-5.537\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M118.179 158.042c2.785-8.585 10.848-14.792 20.361-14.792 9.455 0 17.478 6.131 20.309 14.634\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M113.02 104h51.125v54.249H113.02zM128.538 75.523c-6.145-.419-7.367-1.885-7.367-1.885v-8.547c.812-8.545 8.008-15.229 16.766-15.229s15.885 6.62 16.754 15.106v9.404s-1.362.838-7.088 1.257\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"MI_4L_main\",\n cx: 138.403,\n cy: 130.215,\n rx: 12.978,\n ry: 12.76\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M146.92 82.325a9.972 9.972 0 01-8.861 5.393 9.972 9.972 0 01-8.934-5.537\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M117.729 94.154c2.788-8.58 10.849-14.781 20.358-14.781s17.542 6.18 20.343 14.737\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M112.567 40.177h51.125v54.194h-51.125z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M149.362 60.92c.44 0 1.348 3.648 1.348 5.696 0 7.005-5.679 12.684-12.684 12.684s-12.684-5.679-12.684-12.684c0-2.029.476-3.947 1.324-5.648 0 0 8.115 3.471 22.697-.048z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomer);\nexport default __webpack_public_path__ + \"static/media/customer.3ad953de7578e5e11896f305b31b72b8.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _circle, _circle2, _path3, _path4, _circle3, _rect, _path5, _path6, _path7, _rect2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDemo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 198.425 198.425\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-18\",\n x1: 59.043,\n y1: 64.688,\n x2: 79.685,\n y2: 64.688,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-181\",\n x1: 51.331,\n y1: 96.923,\n x2: 62.11,\n y2: 96.923,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-182\",\n x1: 63.397,\n y1: 108.989,\n x2: 74.176,\n y2: 108.989,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-183\",\n x1: 64.408,\n y1: 147.03,\n x2: 74.54,\n y2: 147.03,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-184\",\n x1: 66.847,\n y1: 85.115,\n x2: 80.174,\n y2: 85.115,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-185\",\n x1: 55.538,\n y1: 43.677,\n x2: 83.641,\n y2: 43.677,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-186\",\n x1: 32.563,\n y1: 140.563,\n x2: 106.653,\n y2: 140.563,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-187\",\n x1: 123.072,\n y1: 114.305,\n x2: 158.288,\n y2: 114.305,\n xlinkHref: \"#wdemo-grad-18\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"wdemo-grad-188\",\n x1: 126.211,\n y1: 70.468,\n x2: 154.314,\n y2: 70.468,\n xlinkHref: \"#wdemo-grad-18\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M60.293 63.906c9.827 6.047 11.631-2.275 18.142-.39\",\n stroke: \"url(#wdemo-grad-18)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M60.293 47.282h18.141v23.776c0 .304.198.568.488.66 13.039 4.131 22.33 16.687 21.483 31.276-.892 15.362-13.275 27.892-28.626 28.951-18.039 1.244-33.059-13.021-33.059-30.794 0-13.632 8.837-25.336 21.095-29.428a.693.693 0 00.478-.657V47.282z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 56.72,\n cy: 96.923,\n r: 4.139,\n stroke: \"url(#wdemo-grad-181)\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 68.786,\n cy: 108.989,\n r: 4.139,\n stroke: \"url(#wdemo-grad-182)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M63.448 152.812h12.051a3.157 3.157 0 013.155 3.155v.803a.545.545 0 01-.545.545h-17.27a.545.545 0 01-.545-.545v-.803a3.157 3.157 0 013.155-3.155z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M73.29 148.785c0 3.192-1.708 4.023-3.816 4.023s-3.816-.832-3.816-4.023 3.816-7.534 3.816-7.534 3.816 4.343 3.816 7.534z\",\n stroke: \"url(#wdemo-grad-183)\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 73.511,\n cy: 85.115,\n r: 5.413,\n stroke: \"url(#wdemo-grad-184)\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 56.788,\n y: 40.16,\n width: 25.603,\n height: 7.035,\n rx: 3.518,\n ry: 3.518,\n stroke: \"url(#wdemo-grad-185)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n stroke: \"url(#wdemo-grad-186)\",\n d: \"M33.813 157.315l7.608-34.454h-4.487 64.47-3.901l7.9 35.405\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M124.322 114.316s9.797-4.684 16.358-2.353c9.364 3.326 12.944 5.572 16.358 5.315\",\n stroke: \"url(#wdemo-grad-187)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M130.984 97.665l-15.064 37.653c-1.152 2.881.969 6.014 4.071 6.014h40.232c3.101 0 5.222-3.13 4.073-6.01L149.27 97.664a2.878 2.878 0 01-.205-1.069V74.034h-17.874v22.56c0 .367-.07.731-.206 1.072zM136.104 80.69h3.56M136.104 88.261h3.56M136.104 95.832h3.56\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"MI_4L_gradient\",\n x: 127.461,\n y: 66.904,\n width: 25.603,\n height: 7.129,\n rx: 3.565,\n ry: 3.565,\n stroke: \"url(#wdemo-grad-188)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDemo);\nexport default __webpack_public_path__ + \"static/media/demo.8519fa3c164927428d98e536ae636edb.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWorkDate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 19.219,\n cy: 28.107,\n r: 1.445\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M29.032 5.825v7.398a7.594 7.594 0 01-4.862 7.086l.059 1.866a7.595 7.595 0 014.803 7.063v7.36M13.849 5.864v7.36a7.595 7.595 0 004.803 7.063l.059 1.866a7.595 7.595 0 00-4.862 7.086v7.398M10.915 5.647h21.15\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_sub\",\n d: \"M18.582 32.156h5.853\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M32.065 36.912h-21.15\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWorkDate);\nexport default __webpack_public_path__ + \"static/media/workDate.a497ded9bedddf85d857970242ada900.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWorkDateFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.52 42.52\",\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 className: \"IC_4L_sub\",\n d: \"M18.12 17.37c5.13 1.71 7.665-1.313 7.665-1.313s-11.879-2.565-10.261.916 5.924 3.237 5.924 3.237c6.26-.031 6.505-6.179 6.505-6.179H14.68v-1.405h13.701M13.886 34.451l14.739-.082-.081-1.954H13.967v-2.28h14.658v-2.138H14.211\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M28.916 5.757v7.398a7.594 7.594 0 01-4.862 7.086l.059 1.866a7.595 7.595 0 014.803 7.063v7.36M13.733 5.796v7.36a7.595 7.595 0 004.803 7.063l.059 1.866a7.595 7.595 0 00-4.862 7.086v7.398M10.799 5.579h21.15\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_dot\",\n cx: 18.507,\n cy: 32.126,\n r: 1.445\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_main\",\n d: \"M31.949 36.844h-21.15\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWorkDateFilled);\nexport default __webpack_public_path__ + \"static/media/workDateFilled.42fd1a0c47240785dba9afc4ef05c3a5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZoomin(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27.5 21.6H15M21.3 15.4v12.4M27.5 21.6H15M21.3 15.4v12.4\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 21.3,\n r: 13.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZoomin);\nexport default __webpack_public_path__ + \"static/media/zoomin.29f2cd98f4d8ffbf3fce0a6d07beb36e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZoomout(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M27.4 21.6H15\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 21.3,\n cy: 21.3,\n r: 13.2\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZoomout);\nexport default __webpack_public_path__ + \"static/media/zoomout.0641c86797b2a95e6dc2b872c00f0bee.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZoomsmall(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42.5 42.5\",\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 className: \"IC_4L_main\",\n d: \"M17.6 26.1L8.7 35\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"IC_4L_main\",\n cx: 24,\n cy: 18.4,\n r: 9.9\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZoomsmall);\nexport default __webpack_public_path__ + \"static/media/zoomsmall.9e8fdfd628147ec6dc6a8e5ce8995463.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEvalaLogoSignature(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 215.031,\n height: 71.608,\n viewBox: \"176.082 304.825 215.031 71.608\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(283.598 340.629)\",\n id: \"tQT7yc-txujjkhZA2H8IH\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_evalalogo\",\n transform: \"translate(-112.098 -83.679)\",\n d: \"M34.8 48.6c-11.1 7-20.2 17.1-25.7 29.1-1.4 3.1-2.8 6.8-1.6 10.3 1.1 2.9 3.6 4.6 6.7 4.4 6-.5 12.7-2.8 17-7.2 1-1 1.8-2 2.1-3.4.3-1.4-.1-2.9-1.2-3.8-2.6-2.2-5.9-.5-8.4 1-5.2 3.3-9.6 7.8-12.8 13-3.1 4.9-5.5 10.9-5.8 16.7-.1 2.4.2 5 1.5 7 1.6 2.5 4.4 3.5 7.3 3 6.3-1.1 11.2-6.7 15.3-11.2 2.1-2.3 4.1-4.6 6.1-7 1.6-2.1 3.3-4.1 5.1-6 2-2 4.2-3.7 6.7-5.1 1-.6 1.9-1.1 3-1.4.7-.2 1.9-.7 2.6-.3.3.2.4.4.5.7 0 .1.2 1 .2.6 0 .5-.1.9-.3 1.5-.8 1.9-2.1 3.7-3.3 5.5-3 4.5-6.2 9-8.1 14.1-.9 2.2-2.1 5.4-.1 7.4 1.8 1.8 4.7 1.6 6.8.5 5.6-2.8 10.2-7.7 13.9-12.7 1.9-2.6 3.6-5.3 5.3-8 1.3-2.1 3.5-4.1 4.1-6.7.6-2.8-1.8-5.2-4.6-5.3-2.2 0-4.1 1.5-4.8 3.5-.8 2.2 0 4.6 2 5.8 1.4.9 2.8 1 4.4.7 3.8-.7 7.4-2.7 10.8-4.3 3.5-1.5 7.4-3.5 11.3-3.5 1.4 0 2.4.3 3.3 1.3l2.2-2.2c-4.4-4.4-11-1.1-15 2.1-4.7 3.7-8.6 8.4-11.4 13.7-1.4 2.6-2.5 5.5-3.3 8.3-.8 2.9-.2 6.3 2.8 7.6 2.8 1.2 5.7-.5 7.9-2.1 2.3-1.6 4.4-3.5 6.4-5.5 4.4-4.5 8.6-9.5 11.7-15 1-1.7-1.6-3.2-2.6-1.5-1.1 1.8-2.3 3.6-3.3 5.4-.9 1.7-1.7 3.5-2.5 5.3-1 2.2-1.7 4.5-2.3 6.8-.5 1.6-.8 3-.3 4.7.9 2.9 4 2.8 6.1 1.5 2.3-1.5 4.3-3.4 6.2-5.3 5.3-5.2 10.1-10.9 15-16.6l5.4-6.3c2.8-3.2 5.9-6.2 8.9-9.2 3.1-3.1 6.2-6.2 9-9.6 1.3-1.6 2.6-3.2 3.9-4.9 1.2-1.7 2.6-3.4 3.5-5.3.8-1.7 1.4-3.7.8-5.6-.6-2.1-2.7-3.5-4.9-3.5-2.2-.1-4.3 1.3-5.9 2.7-2.2 1.8-4 4.1-5.7 6.4-3.1 4.4-5.4 9.5-7.4 14.5-2.3 5.6-4.3 11.3-6.6 16.9-1.6 3.9-3.3 7.7-4.7 11.6-1.2 3.4-2.9 7.5-2.5 11.2.3 2 1.9 3.4 4 3.6 2.5.2 4.8-1.9 6.4-3.4 4.1-3.8 7.9-7.8 11.8-11.8 4.4-4.5 8.7-9.7 14.1-12.9 1-.6 2.1-1.1 3.1-1.5 1.8-.7 1-3.7-.8-2.9-4.8 1.9-8.7 5.1-12.3 8.7-2.8 2.8-5.5 5.7-8.3 8.5-2 2-3.9 4-5.9 6-1.7 1.7-3.3 3.5-5.2 4.9-.7.5-1.8 1.4-2.7 1.4-.3 0-.8-.2-1-.4-.3-.2 0 .1-.1 0s-.1-.4-.1-.5c-.1-1 .2-2.7.5-3.9.9-3.8 2.4-7.5 3.9-11.2 1.7-4.2 3.5-8.4 5.1-12.6 2-5.1 3.9-10.3 6.2-15.3 2.1-4.7 4.7-9.2 8.2-13 1.4-1.5 3.1-3.3 5.2-3.8 1.4-.3 2.9.4 2.9 2 0 1.7-1 3.1-1.8 4.5-1.1 1.7-2.3 3.4-3.5 5-2.3 3-4.9 5.8-7.5 8.6-5 5.1-10.2 10.1-14.8 15.5-4.3 5-8.6 10.1-13.1 15-2.2 2.4-4.4 4.7-6.8 6.9l-2.7 2.4c-.1.1-.7.5-1 .7-.1.1-.3.2-.4.3-.1.1-.7.3-.3.2-.1 0-.3.1-.4.1-.3.1.3.1 0 0 .1 0-.3 0-.4-.1-.2-.2-.1-.1-.2-.4-.4-1.2.3-2.8.7-4 1.1-3.7 2.5-7.3 4.4-10.7 1-1.7 2-3.3 3-5-.9-.5-1.8-1-2.6-1.5-2.3 4.1-5.2 7.8-8.3 11.3-3.1 3.5-6.6 7.3-10.8 9.6-.8.5-1.9 1-2.9.7-1.2-.4-1.7-1.9-1.5-3.1.4-2.4 1.5-4.9 2.6-7.2 2.2-4.6 5.2-8.7 9-12.2 2-1.8 4.2-3.7 6.7-4.7 2.1-.9 4.9-1.4 6.7.4 1.4 1.4 3.4-.7 2.2-2.2-2.2-2.5-5.7-2.4-8.6-1.8-3.7.8-7.3 2.5-10.7 4-2.9 1.3-6 3-9.2 3.5h-.5c-.3 0-.6-.1-.5 0-.6-.2-1.2-.5-1.5-1.2-.5-1.2.3-2.7 1.6-2.9.7-.1 1.7.2 1.9.9.3.8-.6 1.9-1 2.5-1.5 2.2-3 4.3-4.4 6.5-3 4.7-6.3 9.2-10.6 12.9-1 .9-2.1 1.7-3.2 2.4s-2.3 1.6-3.5 1.9c-.6.1-1.8.3-2.3-.3-.6-.7.1-2.2.3-3 1.4-4.6 4.3-8.8 6.9-12.7 1.2-1.8 2.4-3.5 3.5-5.4.7-1.2 1.5-2.6 1.8-4 .3-1.5-.1-3.4-1.2-4.5-1.5-1.4-3.7-1.2-5.5-.7-4.5 1.4-8.6 4.6-11.8 8-1.6 1.6-3 3.4-4.4 5.2-1.8 2.2-3.6 4.3-5.5 6.4-3.7 4.1-7.6 8.8-13 10.8-2.3.8-4.8.6-6-1.8-.9-1.8-.9-4.1-.6-6.1.8-10.6 7.8-20.5 16.8-26.1 1.1-.7 2.4-1.7 3.7-1.5 1.1.2 1.4 1.1.8 2-1.4 2.3-4.4 3.9-6.8 5-2.6 1.1-5.3 1.7-8.1 2.2-1 .2-2.1.4-3-.1-1.4-.6-2-2.3-2-3.7-.1-3 1.5-6 2.9-8.7 1.3-2.6 2.9-5.1 4.6-7.6 3.4-4.8 7.4-9.2 11.9-13 2.2-1.8 4.5-3.4 6.8-4.9 1.6-.9.1-3.5-1.6-2.5z\",\n id: \"WFZrzLGv2j8SNOYZbf_tJ\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"IC_4L_evalalogo\",\n transform: \"translate(59.24 16.719)\",\n d: \"M-17.837-13.198c-3.9-3.9-10-1.7-13.8 1.1-4.6 3.3-8.4 7.5-11.4 12.3-1.5 2.4-2.7 5-3.7 7.7-.9 2.4-1.6 5.2-.4 7.6 2.8 5.5 9.4 1.4 12.7-1.1 4.8-3.6 9.3-8 12.3-13.2 1-1.7-1.6-3.2-2.6-1.5-2.4 3.8-4 8.4-3.7 13 .1 2.1.8 4.1 2.8 5.1 2.7 1.3 6 .7 8.7.2 3.3-.7 6.5-1.7 9.7-2.9 6.8-2.6 13.4-6 19.9-9.3 9-4.5 17.6-9.7 25.9-15.4 12.4-8.6 10.947-11.721 3.5-6.3-8.5 6.2-17.4 11.9-26.7 16.9-6 3.2-12.1 6.1-18.2 9-5 2.4-10.6 4.5-16.1 5.3-1.3.2-2.6.3-3.9.2-.1 0-.5-.1-.7-.1-.1 0-.7-.2-.6-.2-.2-.1-.4-.2-.5-.3 0 0-.4-.3-.3-.2-.3-.3-.3-.5-.4-1.1v-.2c-.1-.3 0 .2 0-.2-.1-1.6-.1-3.1.2-4.7.5-2.6 1.6-5 3-7.2-.9-.5-1.8-1-2.6-1.5-2.3 4-5.6 7.5-9.1 10.5-1.4 1.1-2.8 2.2-4.3 3.1-1.3.8-3.8 2.6-5.4 1.7-2-1-1.1-4-.5-5.6.8-2.3 1.8-4.4 2.9-6.5 2.3-4.1 5.3-7.7 8.8-10.7 2.8-2.4 8.8-6.9 12.3-3.3 1.4 1.4 3.6-.8 2.2-2.2z\",\n id: \"elxXD6GhI5bts_bGM1ZB9\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEvalaLogoSignature);\nexport default __webpack_public_path__ + \"static/media/evalaLogoSignature.4fbc6de9364101e7bdf45c30a3339d3f.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _circle, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAccountAnalysis(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.43 198.43\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n x1: 111.34,\n y1: 90.56,\n x2: 148.99,\n y2: 90.56,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.63,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M99.4 67.06h12.86M99.4 75.77h7.79M99.4 83.91h5.84M70.31 67.06h12.85M70.31 75.77h12.85M70.31 83.91h12.85M99.4 92.38h6.98M99.4 100.52h11.21M70.31 92.38h12.85M70.31 100.52h12.85M91.93 57.58v51.49M66.46 43.96h50.93v12.9H66.46zM52.39 44.17h-17.7V27.5a8.86 8.86 0 0117.7 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M132.11 111.03v24.46H52.35l.04-91.32M43.54 18.83h79.72a8.74 8.74 0 018.85 8.55v32.1\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_stroke\",\n cx: 130.99,\n cy: 85.29,\n r: 25.25\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M150.459 111.073l6.314-6.314 21.66 21.658-6.315 6.315zM148.89 103.48l4.39 3.94\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M147.74 93a18.43 18.43 0 01-33.43-15.53\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAccountAnalysis);\nexport default __webpack_public_path__ + \"static/media/accountAnalysis.71eecad393e6226c9dc129805ecb8d13.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBillingPayCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198 198\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -6209.806,\n y1: -242.58,\n x2: -6208.806,\n y2: -242.58\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M145.479 147.048c-1.945 12.807-13.003 22.62-26.353 22.62h-82.71a5.876 5.876 0 01-5.876-5.876V94.347a7.288 7.288 0 017.288-7.288h40.218M138.773 98.23a30.574 30.574 0 017.01 19.527\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000150823957342953058300000017310196398684917669_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 70.321,\n y1: 66.269,\n x2: 174.055,\n y2: 66.269\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.311 95.11L72.117 70.288a7.402 7.402 0 014.073-9.642l70.495-28.622a7.402 7.402 0 019.642 4.073l15.932 39.241a7.402 7.402 0 01-4.073 9.642l-39.918 16.079\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000150823957342953058300000017310196398684917669_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M97.306 72.551l-9.722 3.947a3.542 3.542 0 01-4.614-1.949l-1.264-3.114a3.542 3.542 0 011.949-4.614l9.722-3.947a3.542 3.542 0 014.614 1.949l1.264 3.114a3.542 3.542 0 01-1.949 4.614z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000152263581693186215130000002040125618223500938_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 87.157,\n y1: 84.045,\n x2: 102.052,\n y2: 84.045\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000152263581693186215130000002040125618223500938_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M88.407 86.561l12.395-5.032\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000162339492757693199280000012972133360509425040_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 90.401,\n y1: 90.533,\n x2: 117.288,\n y2: 90.533\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000162339492757693199280000012972133360509425040_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M91.651 95.484l24.387-9.902\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M137.45 86.243l24.388-9.902\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000001621529006604453930000002625422526515106705_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.428,\n y1: 76.627,\n x2: 120.323,\n y2: 76.627\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000001621529006604453930000002625422526515106705_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.678 79.143l12.395-5.032\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000168827709346232026900000012997482175824716931_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 123.491,\n y1: 69.293,\n x2: 138.386,\n y2: 69.293\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000168827709346232026900000012997482175824716931_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M124.741 71.81l12.395-5.033\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000075138235733331520950000005049480390105166214_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 141.762,\n y1: 61.876,\n x2: 156.656,\n y2: 61.876\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000075138235733331520950000005049480390105166214_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M143.012 64.392l12.394-5.033\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M135.885 147.146c-.757 12.632-11.241 22.643-24.063 22.643H35.78a5.314 5.314 0 01-5.314-5.314v-68.51h81.357c12.794 0 23.26 9.966 24.058 22.559\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M151.446 146.235H119.7c-7.574 0-13.714-6.14-13.714-13.714 0-7.574 6.14-13.714 13.714-13.714h31.746c1.09 0 1.974.884 1.974 1.974v23.479a1.974 1.974 0 01-1.974 1.975z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000078740592593658707480000017642753160228597919_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 114.305,\n y1: 132.642,\n x2: 125.695,\n y2: 132.642\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 120,\n cy: 132.642,\n r: 4.445,\n fill: \"none\",\n stroke: \"url(#SVGID_00000078740592593658707480000017642753160228597919_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000035508619408299095770000004396716177044199095_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.832,\n y1: 106.183,\n x2: 54.332,\n y2: 106.183\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000035508619408299095770000004396716177044199095_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.082 103.179v6.008\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000159455980000927871050000013569871453040765579_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.832,\n y1: 119.753,\n x2: 54.332,\n y2: 119.753\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000159455980000927871050000013569871453040765579_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.082 116.749v6.008\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000016776062915121835770000010313611659040714153_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.832,\n y1: 133.117,\n x2: 54.332,\n y2: 133.117\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000016776062915121835770000010313611659040714153_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.082 130.113v6.008\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000169540291068863562270000015077017751792380044_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.832,\n y1: 146.687,\n x2: 54.332,\n y2: 146.687\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000169540291068863562270000015077017751792380044_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.082 143.682v6.009\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000015353229957088001300000007525997977701853616_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 51.832,\n y1: 159.846,\n x2: 54.332,\n y2: 159.846\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000015353229957088001300000007525997977701853616_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M53.082 156.842v6.008\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBillingPayCard);\nexport default __webpack_public_path__ + \"static/media/billingPayCard.39f3c901fba889f5ebf800000d9455a5.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBillingPayWire(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198 198\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -6209.999,\n y1: -467.699,\n x2: -6208.999,\n y2: -467.699\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vrstva_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M51.413 80.415v10.839M42.842 80.415v10.839M51.413 148.822v10.545M42.842 148.822v10.545M103.64 80.415v79.257M94.543 80.415v79.257M156.492 80.415v79.257M147.395 80.415v79.257M22.506 80.415h155.265l-77.284-38.504zM32.019 159.652h139.468v12.54H32.019z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000011731609192312175160000015518712606916284801_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 31.343,\n y1: 133.648,\n x2: 83.913,\n y2: 133.648\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000011731609192312175160000015518712606916284801_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M32.593 129.487v8.499h35.55v10.27l14.52-15.228-14.874-13.988v10.447z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000176034298646769319200000007682089166963080581_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 17.328,\n y1: 105.848,\n x2: 69.898,\n y2: 105.848\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000176034298646769319200000007682089166963080581_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M68.648 110.009v-8.499h-35.55V91.24l-14.52 15.228 14.874 13.988v-10.447z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000111186250725103889750000002660481305905409922_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 79.745,\n y1: 56.732,\n x2: 120.531,\n y2: 56.732\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000111186250725103889750000002660481305905409922_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M119.281 61.285l-18.795-9.365-19.491 9.624\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBillingPayWire);\nexport default __webpack_public_path__ + \"static/media/billingPayWire.1f492db5f1e6c0d9a5d0dae671f514ee.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCoaTemplates(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.43 198.43\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n x1: 30.92,\n y1: 45.39,\n x2: 117.58,\n y2: 45.39,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.63,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M156.74 38.62l16.78 12.94M149.73 34a6.06 6.06 0 00-4.11-1.49l-13.31 7.09c-2.73 1.68-3.37 2.24-4.91 5.11l-6.52 12.5c0 2.16.62 3.89 2.29 4.43M148.88 57.64v-3.23l-4.54-3.45\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M130.35 64.84l-6.17 5.98-7.79 3.24 2.96-8.03 37.29-37.65 5.24 4.38-24.53 24.91\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M148.85 57.7l-13.85.07a4.94 4.94 0 00-4.93 5 5 5 0 005 4.93l19.91-.1\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M154.84 67.57s3.24.41 6.43-3.4l3.47 2.12M163.836 68.83l12.19-18.757 7.413 4.817-12.19 18.757z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M116.33 73.73V17.05H32.17v28.34\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M43.89 31.22h60.1M61.73 31.95v82.82M85.18 31.95v82.82M43.89 45.15h60.1M43.89 59.07h60.1M43.89 73h60.1M43.89 86.92h60.1M43.89 100.85h60.1M43.89 114.77h60.1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M32.16 55v11.32M32.16 100.28v11.32M59.32 128.58H48M80.16 128.58H68.84M100.85 128.58H89.53M32.16 122.43v6.1h5.94M110.25 128.45h6.11v-5.94M32.16 77.48V88.8M116.44 100.28v11.32M116.44 81.63v7.17\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCoaTemplates);\nexport default __webpack_public_path__ + \"static/media/coaTemplates.6270dfc943cef359ad62fb6811546095.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _path2, _path3, _path4, _circle, _path5, _circle2, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCorrectiveInvoicesIssued(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.43 198.43\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M68.2 46.75H50.5V30.08a8.86 8.86 0 0117.7 0zM147.92 93.74v44.33H68.16l.04-91.32\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M59.35 21.41h79.72a8.73 8.73 0 018.85 8.59v16.63\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M97.75 111.12H81.47\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M133.28 55.82a22 22 0 1124.28 34.34M157.29 90.25l-45.49 12.47-2.71 3.75-6.75-4.68 30.78-45.73\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_stroke\",\n cx: 150.88,\n cy: 69.05,\n r: 13.98\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M116.12 94.53l22.32-32.07\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_main\",\n cx: 150.88,\n cy: 68.71,\n r: 2.76\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M102.17 102.09l.03 6.13 6.71-1.45\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCorrectiveInvoicesIssued);\nexport default __webpack_public_path__ + \"static/media/correctiveInvoicesIssued.64cd1017e0724de51d19cd0fa0a51a11.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _linearGradient2, _path, _linearGradient3, _path2, _linearGradient4, _path3, _linearGradient5, _path4, _linearGradient6, _path5, _linearGradient7, _path6, _linearGradient8, _path7, _linearGradient9, _path8, _linearGradient10, _path9, _linearGradient11, _path10, _path11, _linearGradient12, _path12, _path13, _path14;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInternalDocuments(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.425 198.425\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -499.146,\n y1: -961.914,\n x2: -498.146,\n y2: -961.914\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000066488854076102799560000001486850392410484896_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.484,\n y1: 69.109,\n x2: 120.843,\n y2: 69.109\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000066488854076102799560000001486850392410484896_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.734 69.109h12.859\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000132085804552250970120000011159015860368231865_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.484,\n y1: 77.821,\n x2: 120.843,\n y2: 77.821\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000132085804552250970120000011159015860368231865_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.734 77.821h12.859\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000147189493031642487000000003165300139489801357_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.484,\n y1: 85.96,\n x2: 120.843,\n y2: 85.96\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000147189493031642487000000003165300139489801357_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.734 85.96h12.859\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000034086231364922146370000018249925292520399254_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 76.39,\n y1: 69.109,\n x2: 91.748,\n y2: 69.109\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000034086231364922146370000018249925292520399254_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M77.64 69.109h12.858\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000128479765424511875910000008773875779011858104_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 76.39,\n y1: 77.821,\n x2: 91.748,\n y2: 77.821\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000128479765424511875910000008773875779011858104_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M77.64 77.821h12.858\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000144313415860722603850000012011515735068061352_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 76.39,\n y1: 85.96,\n x2: 91.748,\n y2: 85.96\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000144313415860722603850000012011515735068061352_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M77.64 85.96h12.858\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000026164264684388189800000006574586943543617446_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.484,\n y1: 94.434,\n x2: 120.843,\n y2: 94.434\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000026164264684388189800000006574586943543617446_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.734 94.434h12.859\"\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000143592514456264812150000009606242744104468386_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 105.484,\n y1: 102.572,\n x2: 120.843,\n y2: 102.572\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000143592514456264812150000009606242744104468386_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M106.734 102.572h12.859\"\n })), _linearGradient10 || (_linearGradient10 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000093890925693156895650000015967487136970384044_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 76.39,\n y1: 94.434,\n x2: 91.748,\n y2: 94.434\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000093890925693156895650000015967487136970384044_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M77.64 94.434h12.858\"\n })), _linearGradient11 || (_linearGradient11 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000081610444865324677210000012946900304054135193_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 76.39,\n y1: 102.572,\n x2: 91.748,\n y2: 102.572\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000081610444865324677210000012946900304054135193_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M77.64 102.572h12.858\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M99.26 59.627v51.496\"\n })), _linearGradient12 || (_linearGradient12 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000168811691354233693250000000200349895857604232_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 72.547,\n y1: 52.458,\n x2: 125.974,\n y2: 52.458\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000168811691354233693250000000200349895857604232_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M73.797 46.01h50.927v12.897H73.797z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M59.72 46.219H42.026V29.548c0-4.701 3.984-8.549 8.842-8.549 4.868 0 8.852 3.848 8.852 8.549v16.671z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M50.873 20.884h79.716c4.868 0 8.852 3.85 8.852 8.545V137.545H59.684l.036-91.325\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInternalDocuments);\nexport default __webpack_public_path__ + \"static/media/internalDocuments.8e9b403b321a9ec9fde93e6efe1f38a3.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _path, _linearGradient2, _path2, _linearGradient3, _path3, _linearGradient4, _path4, _linearGradient5, _path5, _path6, _linearGradient6, _path7, _linearGradient7, _path8, _path9, _path10, _linearGradient8, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOpenBalance(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.425 198.425\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -1364.508,\n y1: -13.591,\n x2: -1363.508,\n y2: -13.591\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M54.151 76.298V23.744h92.784l-.22 113.215H54.151V89.857\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000153668161361855111030000013161204452527200901_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 57.763,\n y1: 21.953,\n x2: 75.659,\n y2: 21.953\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.013 22.603a7.698 7.698 0 1115.396 0v6.399\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000153668161361855111030000013161204452527200901_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000015353780120846534870000004938632555153178037_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 123.949,\n y1: 21.953,\n x2: 141.845,\n y2: 21.953\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.199 22.603a7.698 7.698 0 1115.396 0v6.399\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000015353780120846534870000004938632555153178037_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000170272875137885103990000010426154521588354491_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 101.99,\n y1: 21.953,\n x2: 119.886,\n y2: 21.953\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.24 22.603a7.698 7.698 0 1115.396 0v6.399\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000170272875137885103990000010426154521588354491_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000017516222249484276420000009700641001388632470_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 80.031,\n y1: 21.953,\n x2: 97.927,\n y2: 21.953\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.281 22.603a7.698 7.698 0 1115.396 0v6.399\",\n fill: \"none\",\n stroke: \"url(#SVGID_00000017516222249484276420000009700641001388632470_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M66.557 41.827h68.084\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000107552730177473667620000002227710333001405855_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 65.307,\n y1: 68.944,\n x2: 135.891,\n y2: 68.944\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000107552730177473667620000002227710333001405855_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M66.557 68.944h68.084\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000035514343834330538650000007617118248108548528_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 65.307,\n y1: 97.038,\n x2: 135.891,\n y2: 97.038\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000035514343834330538650000007617118248108548528_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M66.557 97.039h68.084\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M135.028 124.744V36.293H66.213v88.351h52.395z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M89.756 49.155h7.449l-6.052 6.052s5.38-1.966 6.983 1.862c1.397 2.328-1.397 8.69-8.535 4.035M106.196 48.586s-4.388-.214-4.388 6.849c0 5.137 1.766 6.588 4.655 6.91 3.667-.043 4.655-2.736 4.655-6.91s-1.39-7.063-4.922-6.849zM105.645 76.183s-4.388-.214-4.388 6.849c0 5.137 1.766 6.588 4.655 6.91 3.667-.043 4.655-2.736 4.655-6.91s-1.391-7.064-4.922-6.849zM105.645 103.718s-4.388-.214-4.388 6.849c0 5.137 1.766 6.588 4.655 6.91 3.667-.043 4.655-2.736 4.655-6.91 0-4.174-1.391-7.063-4.922-6.849zM97.222 78.975s.31-2.793-3.724-2.897c-4.035-.103-4.759 5.069-4.345 8.276.414 3.207 1.138 5.69 5.173 5.38s4.138-4.655 2.276-6.621c-1.862-1.966-7.035-1.759-7.138 2.69M89.595 114.398s-.31 2.793 3.724 2.897 4.759-5.069 4.345-8.276c-.414-3.207-1.138-5.69-5.173-5.38-4.035.31-4.138 4.655-2.276 6.621s7.035 1.759 7.138-2.69\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000088854767506450446850000009102505370464171440_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 11.857,\n y1: 83.527,\n x2: 61.633,\n y2: 83.527\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000088854767506450446850000009102505370464171440_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M13.107 79.024v9.198h31.562v11.115l15.714-16.481-16.097-15.139v11.307z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpenBalance);\nexport default __webpack_public_path__ + \"static/media/openBalance.bbbaf31a960700f5111cdc588ebb168f.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _linearGradient2, _path, _linearGradient3, _path2, _linearGradient4, _path3, _linearGradient5, _path4, _linearGradient6, _path5, _linearGradient7, _path6, _linearGradient8, _path7, _linearGradient9, _path8, _linearGradient10, _path9, _linearGradient11, _path10, _linearGradient12, _path11, _linearGradient13, _path12, _linearGradient14, _path13, _linearGradient15, _path14, _linearGradient16, _path15, _linearGradient17, _path16, _linearGradient18, _path17, _linearGradient19, _path18, _linearGradient20, _path19, _linearGradient21, _path20, _linearGradient22, _path21, _path22, _path23, _path24, _path25, _path26;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOtherLiability(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 198.425 198.425\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: -499.146,\n y1: -724.509,\n x2: -498.146,\n y2: -724.509\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000150814685401787720760000015943509053252875398_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 48.24,\n x2: 85.553,\n y2: 48.24\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000150814685401787720760000015943509053252875398_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M84.304 44.304l-7.873 7.872\"\n })), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000084530049755705106130000014832958275421889458_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 55.273,\n x2: 99.609,\n y2: 55.273\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000084530049755705106130000014832958275421889458_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M98.359 44.304L76.431 66.242\"\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000178925305860927052610000017351941168305970562_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 61.638,\n x2: 112.35,\n y2: 61.638\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000178925305860927052610000017351941168305970562_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M111.1 44.304L76.431 78.972\"\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000046308807716755028380000012584828301185285560_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 68.459,\n x2: 125.992,\n y2: 68.459\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000046308807716755028380000012584828301185285560_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M124.742 44.304L76.431 92.615\"\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000054949206935911166750000010376298744871185323_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 80.926,\n y1: 79.427,\n x2: 126.438,\n y2: 79.427\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000054949206935911166750000010376298744871185323_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 57.921l-43.012 43.012\"\n })), _linearGradient7 || (_linearGradient7 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000086684060566263812460000012752804002734276995_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 88.828,\n y1: 88.832,\n x2: 126.438,\n y2: 88.832\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000086684060566263812460000012752804002734276995_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 71.276l-35.11 35.111\"\n })), _linearGradient8 || (_linearGradient8 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000167385390419584811070000004647049765947974303_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 96.902,\n y1: 98.447,\n x2: 126.438,\n y2: 98.447\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000167385390419584811070000004647049765947974303_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 84.929l-27.036 27.036\"\n })), _linearGradient9 || (_linearGradient9 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000106108736857673391450000008756480345607948212_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000106108736857673391450000008756480345607948212_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M84.304 44.304l-7.873 7.872\"\n })), _linearGradient10 || (_linearGradient10 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000067917126678071113440000017608056550827266214_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000067917126678071113440000017608056550827266214_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M84.304 44.304l-7.873 7.872\"\n })), _linearGradient11 || (_linearGradient11 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000132777077988731656910000014766533437541425806_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000132777077988731656910000014766533437541425806_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M98.359 44.304L76.431 66.242\"\n })), _linearGradient12 || (_linearGradient12 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000106855274102820762570000010558643206013854382_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000106855274102820762570000010558643206013854382_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M98.359 44.304L76.431 66.242\"\n })), _linearGradient13 || (_linearGradient13 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000013173398967675749820000009881110914042272682_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000013173398967675749820000009881110914042272682_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M111.1 44.304L76.431 78.972\"\n })), _linearGradient14 || (_linearGradient14 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000009576258442580095480000018109302005032927616_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000009576258442580095480000018109302005032927616_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M111.1 44.304L76.431 78.972\"\n })), _linearGradient15 || (_linearGradient15 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000093155420071681856550000012646785098031750313_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000093155420071681856550000012646785098031750313_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M124.742 44.304L76.431 92.615\"\n })), _linearGradient16 || (_linearGradient16 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000000901156758408820850000010607875377162353594_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000000901156758408820850000010607875377162353594_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M124.742 44.304L76.431 92.615\"\n })), _linearGradient17 || (_linearGradient17 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000139986047267357577350000011707018405017062561_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000139986047267357577350000011707018405017062561_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 57.921l-43.012 43.012\"\n })), _linearGradient18 || (_linearGradient18 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000180359511948444527250000001762989019479800727_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000180359511948444527250000001762989019479800727_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 57.921l-43.012 43.012\"\n })), _linearGradient19 || (_linearGradient19 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000150795105470373754290000012554522232630934160_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000150795105470373754290000012554522232630934160_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 71.276l-35.11 35.111\"\n })), _linearGradient20 || (_linearGradient20 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000067232253317618326530000009396891128226430630_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000067232253317618326530000009396891128226430630_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 71.276l-35.11 35.111\"\n })), _linearGradient21 || (_linearGradient21 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000120557476551816841940000004101018802474150030_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000120557476551816841940000004101018802474150030_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 84.929l-27.036 27.036\"\n })), _linearGradient22 || (_linearGradient22 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"SVGID_00000180329784913555690950000015758630062337743036_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 75.181,\n y1: 78.134,\n x2: 126.438,\n y2: 78.134\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n }))), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"url(#SVGID_00000180329784913555690950000015758630062337743036_)\",\n strokeWidth: 2.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n d: \"M125.188 84.929l-27.036 27.036\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M156.218 123.035v16.331H45.856v-16.331M156.218 123.035V75.866l-17.531-12.261M62.705 64.076l-16.849 11.79v47.169M62.708 87.501V54.756M138.683 87.794V63.602\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M156.218 75.866L138.687 87.79l-16.101 10.935-.95.643-14.517 9.88-5.856 3.984-.644.432-2.467-1.699-3.937-2.717-4.137-2.861-7.902-5.454-2.227-1.536-17.244-11.895-16.849-11.636M156.218 123.035v16.331H45.856v-16.331\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M156.218 123.035V75.866l-17.531-12.261M62.705 64.076l-16.849 11.79v47.169M62.708 87.501V54.756M138.683 87.794V63.602\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M156.218 75.866L138.687 87.79l-16.101 10.935-.95.643-14.517 9.88-5.856 3.984-.644.432-2.467-1.699-3.937-2.717-4.137-2.861-7.902-5.454-2.227-1.536-17.244-11.895-16.849-11.636M62.681 54.756H44.987V38.085c0-4.701 3.984-8.549 8.842-8.549 4.868 0 8.852 3.848 8.852 8.549v16.671z\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M54.074 29.367h75.79c4.868 0 8.852 3.85 8.852 8.545v25.69\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOtherLiability);\nexport default __webpack_public_path__ + \"static/media/otherLiability.f8cbde80c67b8d35496ab22e9b27687d.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _circle, _circle2, _circle3, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUnderConstruction(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 198.43 198.43\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n x1: 95.83,\n y1: 61.35,\n x2: 104.47,\n y2: 61.35,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"var(--icon-menu-gradient-start, #7a0399)\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.63,\n stopColor: \"var(--icon-menu-gradient-end, #b10372)\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"e\",\n x1: 76.96,\n y1: 118.41,\n x2: 101.01,\n y2: 118.41,\n xlinkHref: \"#a\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"f\",\n x1: 98.51,\n y1: 122.95,\n x2: 118.48,\n y2: 122.95,\n xlinkHref: \"#a\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"g\",\n x1: 115.98,\n y1: 128.8,\n x2: 129.29,\n y2: 128.8,\n xlinkHref: \"#a\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"h\",\n x1: 67.16,\n y1: 125.72,\n x2: 79.46,\n y2: 125.72,\n xlinkHref: \"#a\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"i\",\n x1: 67.16,\n y1: 123.24,\n x2: 129.29,\n y2: 123.24,\n xlinkHref: \"#a\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_stroke\",\n d: \"M95.91 99.48v11.65M104.65 100.68v11.65\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 100.15,\n cy: 61.35,\n r: 3.07\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 100.15,\n cy: 71.35,\n r: 3.07\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"MI_4L_gradient\",\n cx: 100.15,\n cy: 81.15,\n r: 3.07\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_gradient\",\n d: \"M92.23 53.55h15.83\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M78.21 122.69a11.12 11.12 0 0121.55-.37\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M99.76 122.32a11.12 11.12 0 0117.47 4\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M117.23 126.3a7 7 0 013.71-1 7.1 7.1 0 017.1 7.1\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M68.41 129.27a7.11 7.11 0 019.8-6.58\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"e\",\n d: \"M78.21 122.69a11.12 11.12 0 0121.55-.37M99.76 122.32a11.12 11.12 0 0117.47 4M117.23 126.3a7 7 0 013.71-1 7.1 7.1 0 017.1 7.1M68.41 129.27a7.11 7.11 0 019.8-6.58\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M83.73 93.72l32.83-.53s-.53-8.47-5.69-11.65c0 0 3.31-28.07-10.72-39.85-14 11.78-10.73 39.85-10.73 39.85-5.16 3.18-5.69 11.65-5.69 11.65\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M79.03 27.66h61.53V141.61H55.89V50.8\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"MI_4L_main\",\n d: \"M79.03 27.66L55.89 50.8h23.14V27.66z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnderConstruction);\nexport default __webpack_public_path__ + \"static/media/underConstruction.fc3817a21156dc9d63f9f9099c150a0c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\n\nimport useHideOnBlur from \"../hooks/HideOnBlurHook\";\n\ntype TSetHideOptions = (refs: React.RefObject[], onHide?: () => void) => void;\n\nexport interface WithHideOnBlur {\n isVisible: boolean;\n setIsVisible: (isVisible: boolean) => void;\n isContained: (elem: HTMLElement) => boolean;\n setHideOnBlurOptions: TSetHideOptions;\n}\n\nexport interface IWithHideOnBlurSettings {\n refs: React.RefObject[];\n initialIsVisible: boolean;\n onHide?: () => void;\n}\n\nexport const withHideOnBlur =

(Component: React.ComponentType

, initialIsVisible = false): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const [refs, setRefs] = useState([]);\n const [onHide, setOnHide] = useState(null);\n const { isVisible, setIsVisible, isContained } = useHideOnBlur({\n refs, initialIsVisible, onHide\n });\n const setHideOnBlurOptions: TSetHideOptions = (refs, onHideFn) => {\n setRefs(refs);\n setOnHide(() => onHideFn);\n };\n\n return (\n \n );\n }) as unknown as React.ComponentType>;\n};","import React from \"react\";\nimport { AnimationItem, AnimationSegment } from \"lottie-web\";\nimport { handleRefHandlers } from \"@utils/general\";\nimport { AppContext } from \"../contexts/appContext/AppContext.types\";\n\nexport interface IProps {\n path: string;\n darkModePath: string;\n animationRef?: React.Ref;\n className?: string;\n style?: React.CSSProperties;\n autoplay?: boolean;\n loop?: boolean;\n initialSegment?: AnimationSegment;\n \"data-testid\"?: string;\n}\n\n/** Wraps the lottie library into simple React component */\nexport default class LottieWrapper extends React.PureComponent {\n static contextType = AppContext;\n\n rootRef = React.createRef();\n animRef = React.createRef();\n\n componentDidMount() {\n this.init();\n }\n\n componentWillUnmount() {\n this.animRef.current?.destroy();\n }\n\n get isDarkMode(): boolean {\n return this.context?.getData()?.userSettings?.ColourThemeCode === \"Dark\";\n }\n\n get path(): string {\n return this.isDarkMode ? this.props.darkModePath : this.props.path;\n }\n\n async init(): Promise {\n try {\n // smaller bundle, only have 'svg' renderer\n const { default: lottie } = await import(\"lottie-web/build/player/lottie_light\");\n const { path } = this;\n\n const animationRef = lottie.loadAnimation({\n container: this.rootRef.current,\n renderer: \"svg\",\n initialSegment: this.props.initialSegment,\n loop: this.props.loop ?? true,\n autoplay: this.props.autoplay ?? true,\n path\n });\n\n if (this.props.animationRef) {\n handleRefHandlers(animationRef, this.props.animationRef, this.animRef);\n }\n } catch (e) {\n /* in case animation can't be rendered on some device, just ignore it... e.g. in unit tests */\n }\n }\n\n render() {\n return (\n

\n
\n );\n }\n}","import React from \"react\";\nimport LottieWrapper, { IProps } from \"./LottieWrapper\";\n\n// Light mode\nimport ant from \"../static/animations/json/ant.json\";\nimport squirrel from \"../static/animations/json/squirrel.json\";\nimport spider from \"../static/animations/json/spider.json\";\nimport mouse from \"../static/animations/json/mouse.json\";\nimport dog from \"../static/animations/json/dog.json\";\nimport mole from \"../static/animations/json/mole.json\";\nimport beaver from \"../static/animations/json/beaver.json\";\nimport bear from \"../static/animations/json/bear.json\";\nimport bike from \"../static/animations/json/bike.json\";\nimport queue from \"../static/animations/json/queue.json\";\nimport rossumProgress from \"../static/animations/json/rossumProgress.json\";\nimport fireworks from \"../static/animations/json/fireworks.json\";\nimport bat from \"../static/animations/json/bat.json\";\n// Note: busy indicators are not used as animations. They are plain SVGs animated with CSS\n// because of performance. Check BusyIndicator component directly.\n// Dark mode animations\nimport antDM from \"../static/animations/json/dm/ant.json\";\nimport squirrelDM from \"../static/animations/json/dm/squirrel.json\";\nimport spiderDM from \"../static/animations/json/dm/spider.json\";\nimport mouseDM from \"../static/animations/json/dm/mouse.json\";\nimport moleDM from \"../static/animations/json/dm/mole.json\";\nimport beaverDM from \"../static/animations/json/dm/beaver.json\";\nimport rossumProgressDM from \"../static/animations/json/dm/rossumProgress.json\";\nimport batDM from \"../static/animations/json/dm/bat.json\";\n\n\nexport enum AnimationSize {\n L = 400,\n M = 200,\n S = 100\n}\n\nexport interface IAnimationProps extends Omit {\n}\n\nexport const ALL_ANIMATIONS_COMPONENTS: Record = {};\n\nexport const toAnimation = (path: unknown, dmPath: unknown, name: string): React.ComponentType => {\n const animation = React.forwardRef((props: IAnimationProps, ref: any) => {\n return (\n \n );\n });\n\n ALL_ANIMATIONS_COMPONENTS[name] = animation as React.ElementType;\n\n return animation;\n};\n\nexport const AntAnim = toAnimation(ant, antDM, \"Ant\");\nexport const SquirrelAnim = toAnimation(squirrel, squirrelDM, \"Squirrel\");\nexport const SpiderAnim = toAnimation(spider, spiderDM, \"Spider\");\nexport const MouseAnim = toAnimation(mouse, mouseDM, \"Mouse\");\nexport const DogAnim = toAnimation(dog, dog, \"Dog\");\nexport const MoleAnim = toAnimation(mole, moleDM, \"Mole\");\nexport const BeaverAnim = toAnimation(beaver, beaverDM, \"Beaver\");\nexport const BearAnim = toAnimation(bear, bear, \"Bear\");\nexport const BikeAnim = toAnimation(bike, bike, \"Bike\");\nexport const QueueAnim = toAnimation(queue, queue, \"Queue\");\nexport const RossumProgressAnim = toAnimation(rossumProgress, rossumProgressDM, \"RossumProgress\");\nexport const FireworksAnim = toAnimation(fireworks, fireworks, \"Fireworks\");\nexport const BatAnim = toAnimation(bat, batDM, \"Bat\");","import { darken, desaturate, ellipsis, lighten, saturate } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { Status } from \"../../enums\";\nimport {\n fadeOutAnimation,\n getSemanticBgColor,\n getSemanticElColor,\n LocalStackOrder,\n T_ALERT_SUBTITLE,\n T_HEADER_small,\n T_PLAIN_small,\n T_PLAIN_small_hig,\n T_TITLE_3\n} from \"../../global.style\";\nimport { AlertPadding, AlertPosition } from \"./Alert\";\n\ninterface IAlertStatus {\n status: Status;\n useFade?: boolean;\n position?: AlertPosition;\n}\n\nconst ACTION_ICON_RIGHT_MARGIN = 17;\nconst ACTION_ICON_RIGHT_MARGIN_SMALL = 2;\nconst ACTION_ICON_SIZE = 26;\nconst ACTION_ICON_TOP = 12;\n\nexport const ALERT_BOTTOM_MARGIN = 19;\nexport const ALERT_TOP_MARGIN = -17; // negate bottom margin of previous element\n\ninterface IAlert {\n // width max-content, but smaller than 500px\n _small?: boolean;\n // width 100%\n _isFullWidth?: boolean;\n // type of alert padding\n _padding?: AlertPadding;\n // whether content should be shown in one line\n _inline?: boolean;\n _shouldAddBottomMargin?: boolean;\n\n _hasInlineDetailAndCloseIcon?: boolean;\n}\n\nexport const StyledAlert = styled.div`\n position: relative;\n width: ${props => props._isFullWidth ? \"100%\" : \"max-content\"};\n max-width: ${props => props._small ? \"400px\" : (!props._isFullWidth ? \"700px\" : \"none\")};\n color: ${props => props.theme.C_TEXT_primary};\n margin-bottom: ${props => props._shouldAddBottomMargin ? \"19px\" : null};\n z-index: ${LocalStackOrder.Tooltips};\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: ${props => props._small || props._inline ? 0 : \"22px\"};\n border-radius: 3px;\n background-color: ${props => getSemanticBgColor(props.theme, props.status, !props._small)};\n z-index: -1;\n\n ${props => props.position !== AlertPosition.Default && css`\n // absolutely positioned alerts have shadow\n box-shadow: rgba(0, 0, 0, 0.15) 0 0 5px 0;\n `}\n }\n\n ${props => props.useFade && (props._isFading ? css`\n ${fadeOutAnimation(0)}\n ` : css`\n opacity: 1;\n animation: none;\n `)};\n\n ${props => props.position !== AlertPosition.Default && css`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: ${props.position === AlertPosition.CenteredBottom ? \"150px\" : \"auto\"};\n `}\n & + & {\n margin-top: 5px;\n }\n`;\n\nexport const StatusIconWrapper = styled.div`\n position: absolute;\n width: 42px;\n height: 42px;\n top: 50%;\n left: 0;\n transform: translate(0, -50%);\n`;\n\nexport const ActionWrapper = styled.div<{ status: Status; isSmall: boolean; isInline: boolean; }>`\n display: flex;\n position: absolute;\n top: ${props => !(props.isSmall || props.isInline) ? `${ACTION_ICON_TOP}px` : \"50%\"};\n right: ${props => props.isSmall ? `${ACTION_ICON_RIGHT_MARGIN_SMALL}px` : `${ACTION_ICON_RIGHT_MARGIN}px`};\n transform: ${props => !(props.isSmall || props.isInline) ? null : \"translateY(-50%)\"};\n\n button {\n &:hover {\n color: ${props => saturate(0.1, lighten(0.1, getSemanticElColor(props.theme, props.status)))};\n }\n\n &:active {\n color: ${props => desaturate(0.1, darken(0.1, getSemanticElColor(props.theme, props.status)))};\n }\n }\n`;\n\nconst OneLinerPadding = 14;\n\nconst getBodyPadding = (settings: IAlert): string => {\n switch (settings._padding) {\n case AlertPadding.L:\n return \"17px 60px 17px 81px\";\n case AlertPadding.M:\n return `${OneLinerPadding}px 19px ${OneLinerPadding}px 81px`;\n case AlertPadding.S:\n return \"7px 12px\";\n }\n\n};\n\nexport const Body = styled.div`\n padding: ${props => getBodyPadding(props)};\n padding-right: ${props => props._hasInlineDetailAndCloseIcon ? (props._small ? `${2 * ACTION_ICON_RIGHT_MARGIN_SMALL + ACTION_ICON_SIZE}px` : `${2 * ACTION_ICON_RIGHT_MARGIN + ACTION_ICON_SIZE}px`) : null};\n white-space: ${props => props._inline ? \"default\" : \"pre-wrap\"};\n word-break: break-word;\n font-weight: normal;\n\n ${props => props._inline && ellipsis()};\n display: ${props => props._inline ? \"block\" : \"flex\"};\n justify-content: flex-start;\n align-items: flex-start;\n\n ${props => !props._inline && css`\n flex-direction: column;\n `};\n\n ${props => (props._inline || props._small) && css`\n ${T_PLAIN_small};\n `};\n`;\n\nexport const Title = styled.h4`\n ${props => !props._small && css<{ disableDefaultStyles: boolean }>`\n ${T_HEADER_small};\n font-weight: ${props => props.disableDefaultStyles ? \"default\" : \"bold\"};\n `};\n\n ${props => props._small && css`\n ${T_ALERT_SUBTITLE};\n `};\n\n ${props => props._inline && css`\n margin-right: 1ex;\n ${T_PLAIN_small_hig};\n display: inline;\n `};\n \n ${props => !props._small && !props._inline && css`\n margin-bottom: 2px;\n `};\n`;\n\nexport const Subtitle = styled.div`\n width: 100%;\n margin: 0;\n ${T_TITLE_3};\n\n ${props => !props._inline && props._showDivider && css`\n &::before {\n content: \" \";\n display: block;\n height: 1px;\n margin: 12px 0;\n background-color: ${props => getSemanticElColor(props.theme, props.status)};\n }\n `};\n\n ${props => props._inline && css`\n display: inline;\n `};\n \n ${props => props._shortened && css`\n &::after { content: \"...\"; }\n `};\n \n ${props => props._small && css`\n ${T_PLAIN_small};\n `};\n`;\n\nexport const ObjectWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: 3px;\n max-width: 544px;\n min-width: 300px;\n max-height: 235px;\n`;\n\nexport const ObjectContent = styled.div<{ isString: boolean; }>`\n ${props => props.isString && css`\n word-break: break-word;\n `};\n`;\n\nexport const AlertDetailWrapper = styled.div <{\n isInline: boolean;\n isSmall?: boolean;\n}>`\n ${props => !props.isInline && `\n position: absolute;\n bottom: ${ACTION_ICON_TOP}px;\n right: ${props.isSmall ? `${ACTION_ICON_RIGHT_MARGIN_SMALL}px` : `${ACTION_ICON_RIGHT_MARGIN}px`};\n `};\n`;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { DefaultTheme, ThemeProvider, withTheme } from \"styled-components\";\n\nimport { IconSize, Status } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme, themes } from \"../../theme\";\nimport { IconButton } from \"../button\";\nimport ErrorDetail from \"../errorDetail/ErrorDetail\";\nimport {\n CloseIcon,\n CollapseIcon,\n ErrorIcon,\n ExpandIcon,\n IProps as IIconProps,\n SuccessIcon,\n WarningIcon\n} from \"../icon\";\nimport Tooltip from \"../tooltip\";\nimport {\n ActionWrapper,\n AlertDetailWrapper,\n Body,\n StatusIconWrapper,\n StyledAlert,\n Subtitle,\n Title\n} from \"./Alert.styles\";\n\nexport interface IBaseAlertProps {\n status: Status;\n title?: React.ReactNode;\n subTitle?: React.ReactNode | React.ReactNode[];\n useFade?: boolean;\n action?: AlertAction;\n detailData?: TRecordAny;\n}\n\nexport interface IAlertProps extends IBaseAlertProps {\n /** Element title shown on hover. Use if subTitle isn't string.\n * Otherwise, title is built from subTitle/s automatically. */\n hoverTitle?: string;\n /** Renders with width 100% instead of max-content */\n isFullWidth?: boolean;\n /** Renders without smiley, with smaller padding and font */\n isSmall?: boolean;\n /** Renders both title and subtitle on one line */\n isOneLiner?: boolean;\n /** Adds margin between alert and the following content,\n * that should always be present according to specification */\n shouldAddBottomMargin?: boolean;\n position?: AlertPosition;\n /** Use inverse styled-components theme */\n isInverseTheme?: boolean;\n onClose?: () => void;\n onFadeEnd?: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\ninterface IState {\n isExpanded: boolean;\n isFading: boolean;\n}\n\nexport enum AlertAction {\n // no action by default\n None = \"None\",\n // adds close button which triggers onClose event\n Close = \"Action\",\n // adds expand/collapse functionality\n Expand = \"Expand\"\n}\n\nexport enum AlertPadding {\n S = \"S\",\n M = \"M\",\n L = \"L\"\n}\n\nexport enum AlertPosition {\n // rendered as is\n Default = \"Default\",\n // absolutely positioned in the bottom center\n CenteredBottom = \"CenteredBottom\",\n}\n\nclass Alert extends React.PureComponent {\n state: IState = {\n isExpanded: true,\n isFading: false\n };\n\n _fadeOutTimer: number;\n _fadeOutTimerTime: number;\n _fadeOutLimit = 5000;\n\n get subtitles(): React.ReactNode[] {\n return Array.isArray(this.props.subTitle) ? this.props.subTitle : [this.props.subTitle];\n }\n\n get action(): AlertAction {\n return this.props.action ?? (this.subtitles.length > 1 ? AlertAction.Expand : (this.props.onClose && !this.props.useFade ? AlertAction.Close : AlertAction.None));\n }\n\n get position(): AlertPosition {\n return this.props.position ?? (this.props.status === Status.Success ? AlertPosition.CenteredBottom : AlertPosition.Default);\n }\n\n componentDidMount() {\n if (this.props.useFade) {\n this.startFadeTimer();\n }\n }\n\n componentDidUpdate(prevProps: IAlertProps) {\n if (prevProps.useFade !== this.props.useFade) {\n if (this.props.useFade) {\n this.startFadeTimer();\n } else {\n this.stopFadeTimer();\n }\n }\n }\n\n componentWillUnmount() {\n this.clearFadeOutTimer();\n }\n\n getIcon = (status: Status) => {\n switch (status) {\n case Status.Success:\n return SuccessIcon;\n case Status.Warning:\n return WarningIcon;\n case Status.Error:\n return ErrorIcon;\n }\n return null;\n };\n\n renderIcon = () => {\n const Icon = this.getIcon(this.props.status);\n\n return (\n \n \n \n );\n };\n\n handleExpand = () => {\n this.setState({\n isExpanded: !this.state.isExpanded\n });\n };\n\n getActionIconParams = (action: AlertAction): {\n icon: React.ComponentType,\n event: () => void,\n title: string,\n style?: React.CSSProperties\n } => {\n switch (action) {\n case AlertAction.Close:\n return {\n icon: CloseIcon,\n event: this.props.onClose,\n title: this.props.t(\"Common:General.Close\")\n };\n case AlertAction.Expand:\n return {\n icon: this.state.isExpanded ? CollapseIcon : ExpandIcon,\n event: this.handleExpand,\n title: this.props.t(`Common:General.${this.state.isExpanded ? \"Close\" : \"Open\"}`)\n };\n default:\n return null;\n }\n\n };\n\n renderDetail = () => {\n if (this.props.detailData) {\n return (\n \n \n \n );\n }\n\n return null;\n };\n\n shouldRenderSoloDetail = () => {\n return !this.isShortened() && !this.props.isSmall && !this.props.isOneLiner && !!this.props.detailData && this.props.subTitle;\n };\n\n hasInlineDetail = () => {\n return this.isInline() || (this.props.detailData && !this.props.subTitle);\n };\n\n shouldRenderAction = () => {\n return this.action !== AlertAction.None || (!!this.props.detailData && !this.props.subTitle);\n };\n\n\n renderAction = () => {\n const actionIcon = this.getActionIconParams(this.action);\n\n return (\n \n {!this.props.subTitle && this.renderDetail()}\n {actionIcon &&\n \n \n \n }\n \n );\n };\n\n isInline = () => {\n return this.props.isOneLiner ;\n };\n\n isShortened = () => {\n return this.action === AlertAction.Expand && !this.state.isExpanded;\n }\n\n getPaddingType = () => {\n if (this.props.isSmall || this.props.isOneLiner) {\n return AlertPadding.S;\n }\n\n return AlertPadding.L;\n };\n\n renderSubTitles = () => {\n if (this.props.subTitle) {\n let subtitles: React.ReactNode[] = this.subtitles;\n const isShortened = this.isShortened();\n if (isShortened) {\n subtitles = [subtitles[0]];\n }\n const hasMultipleSubtitles = subtitles.length > 1;\n\n return subtitles.map((subTitle, index: number) => {\n let result = subTitle;\n\n if (index < subtitles.length - 1) {\n // add space to the end of subtitle to separate multiple subtitles in inline mode\n result = (\n <>\n {subTitle}\n {\" \"}\n \n );\n }\n\n return (\n \n {result}\n \n );\n }\n );\n }\n\n return null;\n };\n\n getHoverTitle = (): string => {\n if (this.props.hoverTitle) {\n return this.props.hoverTitle;\n }\n\n if (!this.props.subTitle) {\n return this.props.title as string;\n }\n\n const texts: React.ReactNode[] = Array.isArray(this.props.subTitle) ? this.props.subTitle : [this.props.subTitle];\n\n return texts.map(text => typeof text === \"string\" ? text : \"\").join(\" \");\n };\n\n getTheme = (): DefaultTheme => {\n const currentTheme = this.props.theme;\n\n if (!this.props.isInverseTheme) {\n return currentTheme;\n }\n\n return themes.light === currentTheme ? themes.dark : themes.light;\n };\n\n handleFadeStart = () => {\n this.setState({ isFading: true });\n this.clearFadeOutTimer();\n };\n\n handleFadeEnd = () => {\n this.props.onFadeEnd?.();\n }\n\n clearFadeOutTimer() {\n if (this._fadeOutTimer) {\n window.clearTimeout(this._fadeOutTimer);\n this._fadeOutTimer = null;\n }\n }\n\n startFadeTimer = () => {\n if (!this._fadeOutTimer) {\n this._fadeOutTimer = window.setTimeout(this.handleFadeStart, this._fadeOutLimit);\n this._fadeOutTimerTime = Date.now();\n }\n };\n stopFadeTimer = () => {\n this.clearFadeOutTimer();\n this._fadeOutLimit = Math.max(this._fadeOutLimit - (this._fadeOutTimerTime ? (Date.now() - this._fadeOutTimerTime) : 0), 2000);\n this.setState({ isFading: false });\n }\n\n render() {\n const { isSmall, isOneLiner } = this.props;\n const isShortened = this.isShortened();\n const hasShortenedText = isShortened || isOneLiner;\n const shouldRenderIcon = !isOneLiner && !isSmall;\n\n return (\n \n \n {shouldRenderIcon && this.renderIcon()}\n {this.shouldRenderSoloDetail() && this.renderDetail()}\n \n {(ref) => (\n \n {(this.props.title || this.props.children) &&\n \n {this.props.title}\n \n }\n {this.renderSubTitles()}\n \n )}\n \n {this.shouldRenderAction() && this.renderAction()}\n \n \n );\n }\n}\n\nexport default withTheme(withTranslation([\"Common\"])(Alert));","import React, { useCallback, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport { Status } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport Alert, { AlertAction, AlertPosition, IAlertProps } from \"./Alert\";\n\nexport interface WithAlert {\n setAlert: (alert: IAlertProps) => void;\n alert: React.ReactElement;\n alertProps: IAlertProps;\n}\n\nexport interface IWithAlertSettings {\n style?: React.CSSProperties;\n autoHide?: boolean;\n position?: AlertPosition;\n // rendered via Portal into document.body\n isGlobal?: boolean;\n isFullWidth?: boolean;\n isOneLiner?: boolean;\n}\n\nexport const withAlert = (settings: IWithAlertSettings = {}) => (\n

(Component: React.ComponentType

): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const { alert, setAlert, alertProps } = useAlert(settings);\n\n return (\n \n );\n }) as any;\n }\n);\n\nexport function getFilteredAlert(alert: React.ReactElement, props: IAlertProps, position: AlertPosition): React.ReactElement {\n return props?.position === position ? alert : null;\n}\n\nexport function useAlert(settings: IWithAlertSettings = {}): WithAlert {\n // use key to reset animation if setAlert is called again before previous animation ended\n const [key, setKey] = useState(0);\n const [alert, setAlert] = useState(null);\n const useFade = alert?.status !== Status.Error && (alert?.useFade ?? settings.autoHide ?? alert?.status === Status.Success);\n const position = settings.position ?? (alert?.status === Status.Success ? AlertPosition.CenteredBottom : AlertPosition.Default);\n const isFullWidth = settings.isFullWidth ?? position !== AlertPosition.CenteredBottom;\n const isOneLiner = settings.isOneLiner ?? false;\n const action = alert?.status === Status.Success ? AlertAction.None : AlertAction.Close;\n\n const onFadeEnd = useCallback(() => {\n if (useFade) {\n setAlert(null);\n }\n alert?.onFadeEnd?.();\n }, [alert, useFade]);\n\n const onClose = useCallback(() => {\n setAlert(null);\n }, []);\n\n const componentSetAlert = useCallback((alert: IAlertProps) => {\n setAlert(alert);\n\n if (useFade) {\n setKey(key + 1);\n }\n }, [key]);\n\n let alertComponent = (\n \n );\n\n if (settings.isGlobal) {\n alertComponent = ReactDOM.createPortal(\n alertComponent,\n document.querySelector(`[data-testid=${TestIds.Content}]`) ?? document.body\n );\n }\n\n return { alert: alert ? alertComponent : null, setAlert: componentSetAlert, alertProps: alert };\n}","import { IEntity } from \"@odata/BindingContext\";\nimport { Query } from \"@odata/OData\";\nimport { isObjectEmpty } from \"@utils/general\";\n\nexport enum AuditTrailChangeType {\n Entity = \"Entity\",\n Attachment = \"Attachment\"\n}\n\nexport enum AuditAttachmentOperation {\n New = \"New\",\n Update = \"Update\",\n Delete = \"Delete\"\n}\n\nexport interface IAuditEntity {\n AuthorId: number;\n AuthorName: string;\n ChangedOn: string;\n Type: AuditTrailChangeType;\n Operation: AuditAttachmentOperation;\n EntityId: number;\n CurrentValue: string;\n PreviousValue: string;\n}\n\nexport interface IAuditEntityAtTime {\n AuthorId: number;\n AuthorName: string;\n ChangedOn: string;\n Entity: IEntity;\n}\n\nexport enum AuditTrailTableColumn {\n ChangedOnDate = \"ChangedOnDate\",\n ChangedOnTime = \"ChangedOnTime\",\n AuthorName = \"AuthorName\",\n Type = \"Type\"\n}\n\nexport const prepareExpandPaths = (query: Query): string[] => {\n const paths: string[] = [];\n\n if (isObjectEmpty(query._expand)) {\n return paths;\n }\n\n for (const navigation of Object.keys(query._expand)) {\n const innerPaths = prepareExpandPaths(query._expand[navigation]);\n\n if (innerPaths.length > 0) {\n for (const innerPath of innerPaths) {\n paths.push(`${navigation}.${innerPath}`);\n }\n } else {\n paths.push(navigation);\n }\n }\n\n return paths;\n};","import { TRecordAny } from \"../../global.types\";\nimport { TabIndex } from \"@utils/general\";\n\nexport const getTabIndex = (props: TRecordAny) => {\n return props.auditTrailData ? TabIndex.Disabled : TabIndex.NormalOrder;\n};","import styled, { css } from \"styled-components/macro\";\nimport { AvatarStyle } from \"../../enums\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { LocalStackOrder } from \"../../global.style\";\n\ninterface IStyledAvatar {\n size: string;\n transparent: boolean;\n isRound: boolean;\n backgroundStyle: AvatarStyle;\n}\n\nfunction getBackgroundColor(props: IStyledAvatar & PropsWithTheme) {\n if (props.transparent || props.backgroundStyle === AvatarStyle.None) {\n return \"transparent\";\n } else if (props.backgroundStyle === AvatarStyle.Light) {\n return props.theme.C_AVATAR_BG_LIGHT;\n } else {\n return props.theme.C_AVATAR_BG_DARK;\n }\n}\n\nexport const AvatarHover = css`\n content: \"\";\n position: absolute;\n top: -7px;\n left: -7px;\n width: calc(100% + 14px);\n height: calc(100% + 14px);\n border: solid 2px ${props => props.theme.C_ACT_hover_without_opacity};\n border-radius: 10px;\n`;\n\nexport const AvatarSelected = css`\n &:after {\n ${AvatarHover};\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n z-index: ${LocalStackOrder.BelowContent};\n }\n`;\n\nexport const StyledAvatar = styled.div`\n position: relative;\n width: ${props => props.size};\n height: ${props => props.size};\n background-color: ${props => getBackgroundColor(props)};\n flex: 0 0 auto;\n border-radius: ${props => props.isRound ? \"50%\" : \"3px\"};\n\n & > img {\n border-radius: inherit;\n }\n`;\n\nexport const Image = styled.img`\n height: 100%;\n width: 100%;\n object-fit: contain;\n display: block;\n`;","import React from \"react\";\nimport { Image, StyledAvatar } from \"./Avatar.styles\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { AvatarSize, AvatarStyle } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport { SystemAvatarDefs } from \"./SystemAvatarDef\";\n\ninterface IProps extends WithTranslation {\n src: string;\n title?: string;\n id?: string;\n onClick?: (id: string) => void;\n size: AvatarSize | string;\n transparent?: boolean;\n isRound?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nclass Avatar extends React.PureComponent {\n handleOnClick = () => {\n this.props.onClick?.(this.props.id);\n };\n\n getFileId = () => {\n const parts = this.props.src.split(\"/\");\n return Number(parts[parts.length - 1]);\n };\n\n isSystemAvatar = () => {\n return this.getFileId() < 0;\n };\n\n getBackgroundStyle = () => {\n if (this.isSystemAvatar()) {\n return SystemAvatarDefs[this.getFileId()]?.style || AvatarStyle.None;\n } else {\n return AvatarStyle.None;\n }\n };\n\n render() {\n return (\n \n {this.props.t(\"Components:Avatar.AlternativeText\")}\n\n {this.props.children}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(Avatar);","import { AvatarStyle } from \"../../enums\";\n\nexport interface ISystemAvatarConfig {\n id: number;\n style: AvatarStyle;\n}\n\nconst definitions = [\n {\n id: -1,\n style: AvatarStyle.Light\n },\n {\n id: -2,\n style: AvatarStyle.Light\n },\n {\n id: -3,\n style: AvatarStyle.Light\n },\n {\n id: -4,\n style: AvatarStyle.Light\n },\n {\n id: -5,\n style: AvatarStyle.Light\n },\n {\n id: -6,\n style: AvatarStyle.Light\n },\n {\n id: -7,\n style: AvatarStyle.Light\n },\n {\n id: -8,\n style: AvatarStyle.Light\n },\n {\n id: -9,\n style: AvatarStyle.Light\n },\n {\n id: -10,\n style: AvatarStyle.Light\n },\n {\n id: -11,\n style: AvatarStyle.Light\n },\n {\n id: -12,\n style: AvatarStyle.Light\n },\n {\n id: -13,\n style: AvatarStyle.Light\n },\n {\n id: -14,\n style: AvatarStyle.Light\n },\n {\n id: -15,\n style: AvatarStyle.Light\n },\n {\n id: -16,\n style: AvatarStyle.Light\n },\n {\n id: -17,\n style: AvatarStyle.Light\n },\n {\n id: -18,\n style: AvatarStyle.Light\n },\n {\n id: -19,\n style: AvatarStyle.Light\n },\n {\n id: -20,\n style: AvatarStyle.Light\n },\n {\n id: -21,\n style: AvatarStyle.Light\n },\n {\n id: -22,\n style: AvatarStyle.Light\n },\n {\n id: -23,\n style: AvatarStyle.Light\n },\n {\n id: -24,\n style: AvatarStyle.Light\n },\n {\n id: -25,\n style: AvatarStyle.Light\n },\n {\n id: -26,\n style: AvatarStyle.Light\n },\n {\n id: -27,\n style: AvatarStyle.Light\n },\n {\n id: -28,\n style: AvatarStyle.Light\n },\n {\n id: -29,\n style: AvatarStyle.Light\n },\n {\n id: -30,\n style: AvatarStyle.Light\n },\n {\n id: -31,\n style: AvatarStyle.Light\n },\n {\n id: -32,\n style: AvatarStyle.Light\n },\n {\n id: -33,\n style: AvatarStyle.Light\n },\n {\n id: -34,\n style: AvatarStyle.Light\n },\n {\n id: -35,\n style: AvatarStyle.Light\n },\n {\n id: -36,\n style: AvatarStyle.Light\n },\n {\n id: -37,\n style: AvatarStyle.Light\n },\n {\n id: -38,\n style: AvatarStyle.Light\n },\n {\n id: -39,\n style: AvatarStyle.Light\n },\n {\n id: -40,\n style: AvatarStyle.Light\n },\n {\n id: -41,\n style: AvatarStyle.Light\n },\n {\n id: -42,\n style: AvatarStyle.Light\n },\n {\n id: -43,\n style: AvatarStyle.Light\n },\n {\n id: -44,\n style: AvatarStyle.Light\n },\n {\n id: -45,\n style: AvatarStyle.Light\n },\n {\n id: -46,\n style: AvatarStyle.Light\n },\n {\n id: -47,\n style: AvatarStyle.Light\n },\n {\n id: -48,\n style: AvatarStyle.Light\n },\n {\n id: -49,\n style: AvatarStyle.Light\n },\n {\n id: -50,\n style: AvatarStyle.Light\n },\n {\n id: -51,\n style: AvatarStyle.Dark\n },\n {\n id: -52,\n style: AvatarStyle.Dark\n },\n {\n id: -53,\n style: AvatarStyle.Dark\n },\n {\n id: -54,\n style: AvatarStyle.Dark\n },\n {\n id: -55,\n style: AvatarStyle.Dark\n },\n {\n id: -56,\n style: AvatarStyle.Dark\n },\n {\n id: -57,\n style: AvatarStyle.Dark\n },\n {\n id: -58,\n style: AvatarStyle.Dark\n },\n {\n id: -59,\n style: AvatarStyle.Dark\n },\n {\n id: -60,\n style: AvatarStyle.Dark\n },\n {\n id: -61,\n style: AvatarStyle.Dark\n },\n {\n id: -62,\n style: AvatarStyle.Dark\n },\n {\n id: -63,\n style: AvatarStyle.Dark\n },\n {\n id: -64,\n style: AvatarStyle.Dark\n },\n {\n id: -65,\n style: AvatarStyle.Dark\n },\n {\n id: -66,\n style: AvatarStyle.Dark\n },\n {\n id: -67,\n style: AvatarStyle.Dark\n },\n {\n id: -68,\n style: AvatarStyle.Dark\n },\n {\n id: -69,\n style: AvatarStyle.Dark\n },\n {\n id: -70,\n style: AvatarStyle.Dark\n },\n {\n id: -71,\n style: AvatarStyle.Dark\n },\n {\n id: -72,\n style: AvatarStyle.Dark\n },\n {\n id: -73,\n style: AvatarStyle.Dark\n },\n {\n id: -74,\n style: AvatarStyle.Dark\n },\n {\n id: -75,\n style: AvatarStyle.Dark\n },\n {\n id: -76,\n style: AvatarStyle.Dark\n },\n {\n id: -77,\n style: AvatarStyle.Dark\n },\n {\n id: -78,\n style: AvatarStyle.Dark\n },\n {\n id: -79,\n style: AvatarStyle.Dark\n },\n {\n id: -80,\n style: AvatarStyle.Dark\n },\n {\n id: -81,\n style: AvatarStyle.Dark\n },\n {\n id: -82,\n style: AvatarStyle.Dark\n },\n {\n id: -83,\n style: AvatarStyle.Dark\n },\n {\n id: -84,\n style: AvatarStyle.Dark\n },\n {\n id: -85,\n style: AvatarStyle.Dark\n },\n {\n id: -86,\n style: AvatarStyle.Dark\n },\n {\n id: -87,\n style: AvatarStyle.Dark\n },\n {\n id: -88,\n style: AvatarStyle.Dark\n },\n {\n id: -89,\n style: AvatarStyle.Dark\n },\n {\n id: -90,\n style: AvatarStyle.Dark\n },\n {\n id: -91,\n style: AvatarStyle.Dark\n },\n {\n id: -92,\n style: AvatarStyle.Dark\n },\n {\n id: -93,\n style: AvatarStyle.Dark\n },\n {\n id: -94,\n style: AvatarStyle.Dark\n },\n {\n id: -95,\n style: AvatarStyle.Dark\n },\n {\n id: -96,\n style: AvatarStyle.Dark\n },\n {\n id: -97,\n style: AvatarStyle.Dark\n },\n {\n id: -98,\n style: AvatarStyle.Dark\n },\n {\n id: -99,\n style: AvatarStyle.Dark\n },\n {\n id: -100,\n style: AvatarStyle.Dark\n }\n];\n\nexport const SystemAvatarDefs : {[key: number]: ISystemAvatarConfig} = Object.fromEntries(definitions.map(e => [e.id, e]));","import { IBackgroundJobEntity } from \"@odata/GeneratedEntityTypes\";\nimport { BackgroundJobStatusCode } from \"@odata/GeneratedEnums\";\n\nimport { Status } from \"../../enums\";\n\nexport enum ProgressStatus {\n Progress = \"Progress\"\n}\n\nexport type TProgressStatus = Status | ProgressStatus;\n\nexport const convertJobStatusToProgressStatus = (jobStatus: BackgroundJobStatusCode): TProgressStatus => {\n switch (jobStatus) {\n case BackgroundJobStatusCode.Finished:\n return Status.Success;\n case BackgroundJobStatusCode.PendingUserInput:\n case BackgroundJobStatusCode.FinishedWithWarning:\n return Status.Warning;\n case BackgroundJobStatusCode.Error:\n return Status.Error;\n case BackgroundJobStatusCode.Running:\n return ProgressStatus.Progress;\n default:\n return null;\n }\n};\n\nexport const isJobFinished = (job: IBackgroundJobEntity): boolean => {\n return job.StatusCode === BackgroundJobStatusCode.Finished || job.StatusCode === BackgroundJobStatusCode.Error\n || job.StatusCode === BackgroundJobStatusCode.Canceled;\n};","import NumberType from \"../../types/Number\";\n\nexport const getBadgeCount = (count: number, max?: number): string => {\n if (!max) {\n max = 99;\n }\n\n return count > max ? `${NumberType.format(max)}+` : NumberType.format(count);\n};","import styled from \"styled-components/macro\";\nimport { T_ALERT_SUBTITLE } from \"../../global.style\";\nimport { isDefined } from \"@utils/general\";\nimport { themes } from \"../../theme\";\n\nconst getOffsetValue = (offset: number) => {\n return isDefined(offset) ? `${offset}px` : null;\n};\n\nexport const BadgeStyled = styled.div<{\n $offset?: number;\n $offsetTop?: number;\n $offsetRight?: number;\n $ignoreTheme?: boolean;\n $small?: boolean;\n}>`\n position: absolute;\n top: ${props => getOffsetValue(props.$offsetTop ?? props.$offset)};\n right: ${props => getOffsetValue(props.$offsetRight ?? props.$offset)};\n height: ${props => props.$small ? 17 : 20}px;\n padding: 1px 6.5px 0 6.5px;\n line-height: 0;\n border-radius: 12px;\n display: flex;\n align-items: center;\n color: ${props => props.$ignoreTheme ? themes.light.C_TEXT_purple_bg : props.theme.C_TEXT_purple_bg};\n background-color: ${props => props.$ignoreTheme ? themes.light.C_ACT_der : props.theme.C_ACT_der};\n\n ${T_ALERT_SUBTITLE};\n`;","import React from \"react\";\nimport { BadgeStyled } from \"./Badge.styles\";\nimport { getBadgeCount } from \"./Badge.utils\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n offset?: number;\n offsetRight?: number;\n offsetTop?: number;\n className?: string;\n count?: number;\n max?: number;\n ignoreTheme?: boolean;\n isSmall?: boolean;\n}\n\nconst Badge: React.FC = ({ offset, offsetTop, offsetRight, className, count, max, ignoreTheme, isSmall }) => {\n if (!count || count <= 0) {\n return null;\n }\n\n return (\n \n {getBadgeCount(count, max)}\n \n );\n};\n\nexport default Badge;","import { ellipsis } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport {\n CActDetBGStyles,\n getDisabledStyle,\n LocalStackOrder,\n T_PLAIN_med_hig,\n T_PLAIN_small,\n T_PLAIN_small_hig\n} from \"../../global.style\";\nimport { StyledIconButton } from \"../button\";\nimport { ColoredIcon } from \"../icon\";\n\n\nconst centered = css`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n`;\n\nexport const SmartBankAccountFilterStyledWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n position: relative;\n padding: 18px 38px 18px 18px;\n gap: 18px;\n align-items: flex-end;\n`;\n\nexport const DropAreaText = styled.span`\n color: ${props => props.theme.C_BG_menu};\n font-weight: bold;\n font-size: 24px;\n`;\n\nexport const DropHandler = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n`;\n\nexport const DropArea = styled.div<{\n isDragging?: boolean;\n}>`\n position: absolute;\n border-radius: 4px;\n border: 2px dashed ${props => props.theme.C_BG_menu};\n top: -2px;\n left: -2px;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n\n display: ${props => props.isDragging ? \"flex\" : \"none\"};\n\n //TODO: COLOR\n background: #7E2562;\n z-index: ${LocalStackOrder.Overlay};\n opacity: 0.85;\n\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n`;\n\nexport const CheckboxWrapper = styled.div`\n ${centered};\n background-color: rgba(255, 255, 255, 0.1);\n flex: 0 0 30px;\n cursor: pointer;\n`;\n\nexport const BankAccountLogoWrapper = styled.div`\n ${centered};\n flex: 0 0 80px;\n\n polygon {\n fill: ${props => props.theme.C_BG_selected_color};\n opacity: 1;\n }\n\n rect {\n fill: ${props => props.theme.C_BG_selected_color};\n opacity: 1;\n }\n\n path {\n opacity: 1;\n fill: ${props => props.theme.C_BG_selected_color};\n }\n`;\n\nexport const InfoWrapper = styled.div`\n padding: 15px 10px 0 5px;\n flex: 1 1 auto;\n width: 0; // shrinks this column if needed\n color: ${props => props.theme.C_BTN_4L_emph_text};\n`;\n\nexport const Title = styled.div`\n ${ellipsis()};\n ${T_PLAIN_small_hig};\n text-transform: uppercase;\n display: block;\n`;\n\nexport const AccountNumber = styled.div<{\n}>`\n ${ellipsis()};\n ${T_PLAIN_small};\n display: block;\n opacity: 0.6;\n margin-bottom: 10px;\n`;\n\nexport const Balance = styled.div`\n ${ellipsis()};\n ${T_PLAIN_med_hig};\n display: block;\n`;\n\nexport const LastImport = styled.div`\n ${ellipsis()};\n ${T_PLAIN_small};\n display: flex;\n align-items: center;\n\n ${ColoredIcon} {\n display: inline-block;\n vertical-align: text-bottom;\n }\n`;\n\nexport const ActionsWrapper = styled.div`\n padding: 10px 10px 10px 0;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n ${StyledIconButton}:not(:last-child) {\n margin-bottom: 8px;\n }\n`;\n\nexport const CheckboxFilterWrapper = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n`;\n\nexport const BankAccountFilterWrapper = styled.div <{\n isDisabled?: boolean;\n}>`\n background-color: ${props => props.theme.C_ACT_der};\n ${CActDetBGStyles};\n width: 280px;\n height: 100px;\n display: flex;\n align-items: stretch;\n border-radius: 3px;\n ${props => getDisabledStyle(props.isDisabled)};\n pointer-events: ${props => props.isDisabled ? \"none\" : \"all\"};\n position: relative;\n`;","import { ellipsis } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nimport { FullScreenViewZIndex, VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport { TooltipIconCopyLink } from \"../tooltipIcon\";\n\nexport const TooltipIconCopyLinkBreadcrumb = styled(TooltipIconCopyLink)`\n visibility: hidden;\n`;\n\nexport const BreadCrumbWrapper = styled.div<{ isFullscreen?: boolean }>`\n position: absolute;\n display: flex;\n align-items: center;\n\n top: 10px;\n left: ${VIEW_PADDING_VALUE}px;\n // provide space for the maximize and close icon in split page\n right: 93px;\n\n &:hover ${TooltipIconCopyLinkBreadcrumb} {\n visibility: visible;\n }\n\n ${props => props.isFullscreen && `\n z-index: ${FullScreenViewZIndex + 1};\n `}\n`;\n\nexport const StyledBreadCrumb = styled.ul`\n position: relative;\n padding: 0;\n margin: 0;\n // truncate text (ellipsis) from left side instead of right\n direction: rtl;\n unicode-bidi: isolate-override;\n ${ellipsis()};\n`;","import React from \"react\";\nimport { StyledBreadCrumb } from \"./BreadCrumb.styles\";\n\ninterface IProps {\n className?: string;\n passRef?: React.Ref;\n}\n\nclass BreadCrumb extends React.PureComponent {\n getTitle = (): string => {\n return React.Children.map(this.props.children, ((child) => (child as React.ReactElement).props.children as string)).join(\" / \");\n };\n\n getChildren = () => {\n // we are using bunch of rtl related styles to get truncation from left instead of right\n // => we need to render the items in opposite direction\n return React.Children.toArray(this.props.children).reverse();\n }\n\n render = () => {\n return (\n \n {this.getChildren()}\n {/* https://stackoverflow.com/a/42551367/3352544\n add special Left-to-right mark to prevent \"direction: rtl;\" from moving \".\" or other punctuation to the start of the breadcrumbs */}\n ‎\n \n );\n };\n}\n\nexport { BreadCrumb };","import styled, { css } from \"styled-components/macro\";\nimport { T_BREAD } from \"../../global.style\";\nimport { Underline } from \"../navigation/NavMenu.styles\";\nimport { IconButton } from \"../button\";\nimport Clickable from \"../clickable\";\n\nconst StyledLinkCss = css`\n position: relative;\n ${Underline}; \n \n &:after {\n bottom: -3px;\n height: 1px;\n transition: none;\n }\n`;\n\nexport const StyledBreadCrumbItem = styled.li`\n ${T_BREAD};\n display: inline;\n list-style-type: none;\n margin-right: 5px;\n\n direction: ltr;\n unicode-bidi: isolate-override;\n\n &:not(:last-child):before {\n content: \"/\";\n margin-right: 5px;\n }\n\n color: ${props => props.theme.C_TEXT_primary};\n\n & a:hover {\n color: ${props => props.theme.C_TEXT_primary};\n }\n`;\n\nexport const StyledItem = styled.span`\n ${StyledLinkCss};\n cursor: pointer;\n`;\n\nexport const LinkStyledBreadcrumb = styled(Clickable)`\n ${StyledLinkCss};\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nexport const StyledArrowButton = styled(IconButton)`\n margin-right: 10px;\n`;","import React from \"react\";\nimport { LinkStyledBreadcrumb, StyledBreadCrumbItem, StyledItem } from \"./BreadCrumbItem.styles\";\nimport TestIds from \"../../testIds\";\nimport { THistoryLocation } from \"../drillDown/DrillDown.utils\";\n\ninterface IProps {\n to?: THistoryLocation;\n onClick?: () => void;\n}\n\nclass BreadCrumbItem extends React.PureComponent {\n render = () => {\n return (\n \n {this.props.to &&\n \n {this.props.children}\n \n }\n {!this.props.to && this.props.onClick &&\n \n {this.props.children}\n \n }\n\n {!this.props.to && !this.props.onClick && this.props.children}\n \n );\n };\n}\n\nexport { BreadCrumbItem };","import { CustomerPortal } from \"@pages/home/CustomerPortal.utils\";\nimport { getValue } from \"@utils/general\";\nimport * as History from \"history\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { RouteComponentProps } from \"react-router\";\nimport { withRouter } from \"react-router-dom\";\n\nimport {\n AppContext,\n ContextEvents,\n IBreadcrumb,\n IBreadcrumbItem,\n ILockAlert\n} from \"../../contexts/appContext/AppContext.types\";\nimport { IconSize } from \"../../enums\";\nimport { ROUTE_HOME } from \"../../routes\";\nimport TestIds from \"../../testIds\";\nimport { ExtendedShellContent } from \"../../views/main/Shell.types\";\nimport { WithAlert, withAlert } from \"../alert/withAlert\";\nimport { ButtonGroup, IconButton } from \"../button\";\nimport { THistoryLocation } from \"../drillDown/DrillDown.utils\";\nimport { ArrowIcon, LockClosedIcon, LockOpenedIcon } from \"../icon\";\nimport { IMenuSelected } from \"../navigation\";\nimport { BreadCrumb } from \"./BreadCrumb\";\nimport { BreadCrumbWrapper, TooltipIconCopyLinkBreadcrumb } from \"./BreadCrumb.styles\";\nimport { BreadCrumbItem } from \"./BreadCrumbItem\";\nimport { StyledArrowButton } from \"./BreadCrumbItem.styles\";\n\ninterface IProps extends WithTranslation, WithAlert, RouteComponentProps {\n className?: string;\n locked?: boolean;\n canBeUnlocked?: boolean;\n back?: THistoryBack;\n removeLast?: boolean;\n isFullscreen?: boolean;\n style?: React.CSSProperties;\n\n customBreadCrumbs?: ICustomBreadCrumb[];\n}\n\nexport interface ICustomBreadCrumb {\n key: string;\n label: string;\n to: History.LocationDescriptor;\n}\n\n// either url or callback that will push new url into the history.state\nexport type THistoryBack = false | string | THistoryLocation | (() => void);\n\nclass BreadCrumbProvider extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n ignoreNextViewBreadcrumbsChange = false;\n\n componentDidMount() {\n this.context.eventEmitter.on(ContextEvents.ViewBreadcrumbsChanged, this.handleViewBreadcrumbsChange);\n }\n\n componentWillUnmount() {\n this.context.eventEmitter.off(ContextEvents.ViewBreadcrumbsChanged, this.handleViewBreadcrumbsChange);\n }\n\n handleViewBreadcrumbsChange = () => {\n if (!this.ignoreNextViewBreadcrumbsChange) {\n this.forceUpdate();\n }\n\n this.ignoreNextViewBreadcrumbsChange = false;\n };\n\n onMenuItemClick = (id?: string) => {\n if (id?.startsWith?.(\"Settings.\")) {\n this.context.openExtendedShell(ExtendedShellContent.Settings);\n return;\n }\n\n // don't rerender second time, when the change is caused from here\n this.ignoreNextViewBreadcrumbsChange = true;\n // remove bread crumbs from views\n this.context.setViewBreadcrumbs({\n items: [],\n lockable: false\n });\n };\n\n handleLockClick = (event: React.MouseEvent) => {\n const viewBreadcrumbs: IBreadcrumb = this.context.getViewBreadcrumbs();\n\n if (viewBreadcrumbs.onLockClick) {\n viewBreadcrumbs.onLockClick(event);\n }\n };\n\n getBreadCrumbs = (viewBreadcrumbs: IBreadcrumb) => {\n const breadCrumbs = [];\n const selectedMenu: IMenuSelected = this.context.getSelectedMenu();\n const customBreadCrumbs = this.props.customBreadCrumbs;\n let showMenuItemBreadcrumb = true;\n\n const customerPortalBreadcrumb = CustomerPortal.isActive ? (\n {this.context.getCompany().Name}\n ) : null;\n\n if (selectedMenu) {\n if (!customBreadCrumbs?.length && selectedMenu.group) {\n breadCrumbs.push(\n customerPortalBreadcrumb ??\n {selectedMenu.group.title.toUpperCase()}\n );\n }\n\n if (customBreadCrumbs) {\n let index = 0;\n for (const customBreadCrumb of customBreadCrumbs) {\n // first custom breadcrumb is expected to be group\n if (index === 0) {\n breadCrumbs.push(\n customerPortalBreadcrumb ??\n {this.props.t(customBreadCrumb.label).toUpperCase()}\n );\n } else {\n breadCrumbs.push(\n {this.props.t(customBreadCrumb.label)}\n );\n }\n index += 1;\n }\n\n if (viewBreadcrumbs?.items.length > 0) {\n // prevent showing e.g. \"faktury prijate\" in form view breadcrumbs during drilldown intent navigation\n showMenuItemBreadcrumb = false;\n }\n }\n\n if (showMenuItemBreadcrumb && selectedMenu.item) {\n // last item is not link clickable as it does nothing anyway\n const isLast = !viewBreadcrumbs || !viewBreadcrumbs.items || viewBreadcrumbs.items.length === 0;\n if (isLast) {\n breadCrumbs.push(\n {getValue(selectedMenu.item.title)}\n );\n } else {\n breadCrumbs.push(\n {this.props.t(getValue(selectedMenu.item.title))}\n );\n }\n }\n }\n\n if (viewBreadcrumbs) {\n viewBreadcrumbs.items.forEach((breadCrumbItem: IBreadcrumbItem) => {\n breadCrumbs.push(\n {this.props.t(breadCrumbItem.title)}\n );\n });\n }\n\n return breadCrumbs;\n };\n\n renderLock = (isLockDisabled: boolean) => {\n const Icon = this.props.locked ? LockClosedIcon : LockOpenedIcon;\n const title = this.props.locked ? this.props.canBeUnlocked ? this.props.t(\"Common:General.Unlock\") : this.props.t(\"Components:Table.LockPermissionLack\") : this.props.t(\"Common:General.Lock\");\n const viewBreadcrumbs = this.context.getViewBreadcrumbs();\n const lockAlert = viewBreadcrumbs.lockAlert as ILockAlert;\n\n return (\n \n \n \n );\n };\n\n renderCopyLink = () => {\n return (\n // tmp solution until we make proper links with state stored to BE\n \n );\n };\n\n renderBackLink = () => {\n if (this.props.back === false) {\n return null;\n }\n const shouldShowBack = this.props.back || CustomerPortal.isActive;\n if (!shouldShowBack) {\n return null;\n }\n const isLink = this.props.back !== \"function\";\n let link = isLink ? this.props.back : null;\n const onClick = isLink ? null : this.props.back;\n\n if (!link && CustomerPortal.isActive) {\n link = ROUTE_HOME;\n }\n\n return (\n void)}>\n \n \n );\n };\n\n render = () => {\n const viewBreadCrumbs = { ...this.context.getViewBreadcrumbs() } as IBreadcrumb;\n const lockable = getValue(viewBreadCrumbs.lockable) && !this.props.removeLast;\n const isLockDisabled = getValue(viewBreadCrumbs.isLockDisabled);\n\n if (this.props.removeLast) {\n viewBreadCrumbs.items = viewBreadCrumbs.items.slice(0, -1);\n }\n\n return (\n \n {this.renderBackLink()}\n \n {this.getBreadCrumbs(viewBreadCrumbs)}\n \n \n {lockable && this.renderLock(isLockDisabled)}\n {this.renderCopyLink()}\n \n \n );\n };\n}\n\n\nconst BreadCrumbProviderExtended = withRouter(withTranslation([\"Common\", \"Components\", \"Companies\"])(withAlert({ autoHide: true })(BreadCrumbProvider)));\n\nexport { BreadCrumbProviderExtended as BreadCrumbProvider };","import styled, { css, keyframes } from \"styled-components/macro\";\nimport { mix, transparentize } from \"polished\";\nimport { LocalStackOrder } from \"../../global.style\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { BusyIndicatorSize } from \"./BusyIndicator.utils\";\n\nconst XS_ANIMATION_LENGTH = \"1s\";\nconst M_ANIMATION_LENGTH = \"0.88s\";\nconst XL_ANIMATION_LENGTH = \"0.96s\";\n\nconst rotationXSAnimation = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 52% {\n transform: rotate(240deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst rotationMAnimation = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 50% {\n transform: rotate(240deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst rotationLOuterAnimation = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 42% {\n transform: rotate(240deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst rotationLInnerAnimation = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 58% {\n transform: rotate(240deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\n\n// clip-path seems to have bad performance\n// keep as possible solution, but for now, only use rotation animation\n// const trimXSAnimation = keyframes`\n// 0% {\n// clip-path: circle(100%);\n// }\n//\n// 40% {\n// clip-path: circle(70%);\n// }\n//\n// 76% {\n// clip-path: circle(100%);\n// }\n// `;\n//\n// const trimMAnimation = keyframes`\n// 0% {\n// clip-path: circle(100%);\n// }\n//\n// 50% {\n// clip-path: circle(40%);\n// }\n//\n// 100% {\n// clip-path: circle(100%);\n// }\n// `;\n\nconst getDimensions = (size: BusyIndicatorSize) => {\n switch (size) {\n case BusyIndicatorSize.L:\n return \"200px\";\n case BusyIndicatorSize.M:\n return \"150px\";\n case BusyIndicatorSize.XS:\n return \"30px\";\n }\n};\n\nconst getBackgroundColor = (props: PropsWithTheme & { $isInverse?: boolean }) => {\n if (props.$isInverse) {\n return props.theme.C_ACT_main ?? \"#690048\";\n }\n\n return props.theme.C_ACT_hover_without_opacity ?? \"#f2e1eb\";\n};\n\nconst getBackgroundColorWithTransparency = (props: PropsWithTheme & { $isInverse?: boolean }) => {\n return transparentize(0.25, getBackgroundColor(props));\n};\n\nconst getBackgroundColorWithAppliedTransparency = (props: PropsWithTheme & { $isInverse?: boolean }) => {\n return mix(0.25, getBackgroundColor(props), props.theme.C_BG_floorplan ?? \"#fafafa\");\n};\n\nconst getStrokeColor = (props: PropsWithTheme & { $isInverse?: boolean }) => {\n if (props.$isInverse) {\n return props.theme.C_BUSY_INVERSE;\n }\n\n return props.theme.C_ACT_main ?? \"#690048\";\n};\n\nconst getStrokeColorWithAppliedTransparency = (props: PropsWithTheme & { $isInverse?: boolean }) => {\n if (props.$isInverse) {\n return getStrokeColor(props);\n }\n\n return mix(0.3, getStrokeColor(props), mix(0.75, getBackgroundColor(props), props.theme.C_BG_floorplan ?? \"#fafafa\"));\n};\n\nexport const StyledBusyIndicatorWrapper = styled.div<{\n $isOverComponent?: boolean;\n}>`\n display: block;\n width: ${props => props.$isOverComponent ? \"calc(100% + 6px)\" : \"100%\"};\n height: ${props => props.$isOverComponent ? \"calc(100% + 6px)\" : \"100%\"};\n position: absolute;\n top: ${props => props.$isOverComponent ? \"-3px\" : \"0\"};\n left: ${props => props.$isOverComponent ? \"-3px\" : \"0\"};\n z-index: ${LocalStackOrder.Overlay};\n border-radius: inherit;\n`;\n\nexport const StyledBusyIndicator = styled.div<{\n $size?: BusyIndicatorSize;\n $isInverse?: boolean;\n $isWithoutBackground?: boolean;\n $isOpaque: boolean;\n}>`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n // BusyIndicator can be used outside of ThemeProvider => provide default color as string\n background-color: ${props => props.$isWithoutBackground ? null : getBackgroundColorWithTransparency(props)};\n ${props => props.$isOpaque && css`\n background-color: ${getBackgroundColorWithAppliedTransparency(props)};\n `};\n border-radius: inherit;\n\n // todo add theme colors\n // remove inline svg styles, just like in icons\n svg {\n width: ${props => getDimensions(props.$size)};\n height: ${props => getDimensions(props.$size)};\n\n & * {\n transform-origin: center;\n }\n\n .BUSY_main {\n fill: none;\n stroke: ${props => getStrokeColor(props)};\n stroke-width: 3;\n stroke-linecap: round;\n stroke-miterlimit: 10;\n }\n\n .BUSY_main_transparent {\n opacity: 1;\n fill: none;\n stroke: ${props => getStrokeColorWithAppliedTransparency(props)};\n stroke-width: 3;\n stroke-linecap: round;\n stroke-miterlimit: 10;\n }\n\n .BUSY_main_fill_transparent {\n opacity: 1;\n fill: ${props => getStrokeColorWithAppliedTransparency(props)};\n }\n\n .BUSY_special {\n fill: transparent;\n stroke: ${props => getStrokeColor(props)};\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n }\n\n svg.busyXS {\n path {\n animation: ${rotationXSAnimation} ${XS_ANIMATION_LENGTH} infinite linear;\n }\n }\n\n svg.busyM {\n transform: scaleX(-1);\n\n .mainPart {\n animation: ${rotationMAnimation} ${M_ANIMATION_LENGTH} infinite linear;\n }\n\n .otherLines path {\n animation: ${rotationMAnimation} ${M_ANIMATION_LENGTH} infinite linear;\n }\n }\n\n svg.busyL {\n .outerPart {\n animation: ${rotationLOuterAnimation} ${XL_ANIMATION_LENGTH} infinite linear;\n }\n\n .innerPart {\n animation: ${rotationLInnerAnimation} ${XL_ANIMATION_LENGTH} infinite linear;\n }\n }\n`;\n\nexport const BusyWrapper = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n // just reset z-index root\n z-index: ${LocalStackOrder.Base};\n`;\n","var _g, _g2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBusyL(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"busyL\",\n viewBox: \"0 0 200 200\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerPart\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerPath3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M130.5 88.4c1.4 3.6 2.1 7.5 2.1 11.5v1.6\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerPath2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M131.4 108.7c-3 10.9-11.6 19.5-22.4 22.7\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerPath1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M101.8 132.5H100c-18 0-32.6-14.6-32.6-32.6 0-2.3.2-4.4.7-6.6\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerWings\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_fill_transparent\",\n d: \"M106 93.6c-1.3 2.6-5 3.4-8.2 1.8-.9-.4-1.9-1.2-2.9-2.1.1 1.7-.7 3.2-2.1 3.7-1.8.7-3.9-.6-4.8-2.9-.8-2.2-.7-7.3.3-9.3 3-1.1 10.9-.5 14.1 1.1 3.3 1.7 4.9 5.1 3.6 7.7zM76.7 73.7s0 .1 0 0c-1.9 1.1-7 1.4-9.3.7-2.3-.7-3.6-2.8-3.1-4.6.5-1.4 1.9-2.2 3.6-2.2-.9-1-1.7-2-2.2-2.9-1.7-3.2-1.1-6.9 1.5-8.3 2.6-1.4 6 .1 7.8 3.3 1.8 3.2 2.7 11 1.7 14z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerBee\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_special\",\n d: \"M68.5 93.9c-1.3-1.2-1-10.7 4.3-16.2l7.6-8c3.1-3.2 8.2-3.3 11.5-.2 3.2 3.1 3.3 8.2.2 11.5l-7.6 8c-5.4 5.7-14.9 5.9-16 4.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main\",\n d: \"M77.2 73.5s2.7 8.1 11.5 11M72.8 78.1s2.7 8.1 11.5 11M69.1 84.1s2 5.8 8.7 8.8M89.3 67.1l1.6-4.2M95.1 72.6l4.1-1.7\"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"innerPart\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerPath3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M131.2 159c-9.3 4.9-19.9 7.7-31.1 7.7-3.9 0-7.8-.3-11.5-1\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerPath2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M81.3 164c-27.4-8-47.6-33-48.2-62.9\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerPath1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M33.4 93.3c3.2-34.1 31.8-60.7 66.7-60.7 12.8 0 24.7 3.6 34.9 9.8\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerWings\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_fill_transparent\",\n d: \"M169.9 43.8c-1.3-2.6-5-3.4-8.2-1.8-.9.4-1.9 1.2-2.9 2.1.1-1.7-.7-3.2-2.1-3.7-1.8-.7-3.9.6-4.8 2.9-.8 2.2-.7 7.3.3 9.3 3 1.1 10.9.5 14.1-1.1 3.3-1.6 4.9-5.1 3.6-7.7zM140.7 63.7s-.1 0 0 0c-.1 0 0 0 0 0-1.9-1.1-7-1.4-9.3-.7-2.3.7-3.6 2.8-3.1 4.6.5 1.4 1.9 2.2 3.6 2.2-.9 1-1.7 2-2.2 2.9-1.7 3.2-1.1 6.9 1.5 8.3 2.6 1.4 6-.1 7.8-3.3 1.8-3.1 2.6-11 1.7-14z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"outerBee\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_special\",\n d: \"M132.5 43.5c-1.3 1.2-1 10.7 4.3 16.2l7.6 8c3.1 3.2 8.2 3.3 11.5.2 3.2-3.1 3.3-8.2.2-11.5l-7.6-8c-5.5-5.6-15-5.9-16-4.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main\",\n d: \"M141.1 63.9s2.7-8.1 11.5-11M136.7 59.3s2.7-8.1 11.5-11M133.1 53.4s2-5.8 8.7-8.8M152.5 70.2l1.6 4.1M158.3 64.6l4.1 1.7\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBusyL);\nexport default __webpack_public_path__ + \"static/media/busyL.76692995cd96b206216d2179906daa03.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBusyM(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"busyM\",\n viewBox: \"0 0 150 150\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"otherLines\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"line3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M114.2 80.3c.2-1.8.4-3.6.4-5.4 0-4.4-.7-8.6-2-12.6\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"line2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M77.6 114.5c16.5-1.1 30.2-12.3 35.1-27.4\"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"mainPart\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"line1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_transparent\",\n d: \"M37.4 62c-1.4 4.1-2.2 8.4-2.2 12.9 0 20.2 15.2 36.9 34.8 39.4\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"wings\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main_fill_transparent\",\n d: \"M75.3 62.2c-1.3 2.6-5 3.4-8.2 1.8-.9-.4-1.9-1.2-2.9-2.1.1 1.7-.7 3.2-2.1 3.7-1.8.7-3.9-.6-4.8-2.9-.8-2.2-.7-7.3.3-9.3 3-1.1 10.9-.5 14.1 1.1 3.3 1.7 4.9 5.1 3.6 7.7zM46.1 42.3c-.1 0-.1 0 0 0-.1.1 0 .1 0 0-1.9 1.1-7 1.4-9.3.7s-3.6-2.8-3.1-4.6c.5-1.4 1.9-2.2 3.6-2.2-.9-1-1.7-2-2.2-2.9-1.7-3.2-1.1-6.9 1.5-8.3 2.6-1.4 6 .1 7.8 3.3 1.7 3.2 2.6 11.1 1.7 14z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"bee\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_special\",\n d: \"M37.9 62.5c-1.3-1.2-1-10.7 4.3-16.2l7.6-8c3.1-3.2 8.2-3.3 11.5-.2 3.2 3.1 3.3 8.2.2 11.5l-7.6 8c-5.5 5.7-15 5.9-16 4.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"BUSY_main\",\n d: \"M46.5 42.2s2.7 8.1 11.5 11M42.1 46.7s2.7 8.1 11.5 11M38.5 52.7s2 5.8 8.7 8.8M57.9 35.9l1.6-4.2M63.7 41.5l4.1-1.8\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBusyM);\nexport default __webpack_public_path__ + \"static/media/busyM.9554fc80b94949fb00c91782684f4791.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBusyXs(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n className: \"busyXS\",\n viewBox: \"0 0 30 30\",\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 className: \"BUSY_main_transparent\",\n d: \"M20.6 6.6c2.8 1.8 4.6 4.9 4.6 8.5 0 5.6-4.5 10.1-10.1 10.1-4.9 0-9-3.5-9.9-8.1\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBusyXs);\nexport default __webpack_public_path__ + \"static/media/busyXS.729098dcdceaf7000672bcc2c64f44f1.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\n\nimport TestIds from \"../../testIds\";\nimport { StyledBusyIndicator, StyledBusyIndicatorWrapper } from \"./BusyIndicator.styles\";\nimport { BUSY_INDICATOR_DELAY, BusyIndicatorSize, BusyIndicatorType } from \"./BusyIndicator.utils\";\nimport { ReactComponent as BusyLSvg } from \"./loaders/busyL.svg\";\nimport { ReactComponent as BusyMSvg } from \"./loaders/busyM.svg\";\nimport { ReactComponent as BusyXSSvg } from \"./loaders/busyXS.svg\";\n\nexport interface IProps {\n size?: BusyIndicatorSize;\n type?: BusyIndicatorType;\n /** Inverse color scheme for usage on dark backgrounds */\n isInverse?: boolean;\n /** Busy indicator is not shown immediately, but after BUSY_INDICATOR_DELAY.\n * It is better for user experience to not show busy state when the action is fast enough.\n * Use in cases when we don't have to prevent user from being able to do any other action. */\n isDelayed?: boolean;\n /** BusyIndicator is supposed to overflow few pixels outside, when overlaying one component */\n isOverComponent?: boolean;\n /** Use if you don't want to show any content under the BusyIndicator\n * e.g. if there would be several BusyIndicators at once */\n isOpaque?: boolean;\n className?: string;\n\n customContent?: React.ReactNode;\n}\n\ninterface IState {\n isVisible?: boolean;\n}\n\nexport default class BusyIndicator extends React.PureComponent {\n static defaultProps: Partial = {\n size: BusyIndicatorSize.M,\n type: BusyIndicatorType.Normal\n };\n\n _isMounted: boolean;\n _busyRef = React.createRef();\n\n constructor(props: IProps) {\n super(props);\n\n this.state = {\n isVisible: !this.props.isDelayed\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n if (this.props.isDelayed) {\n setTimeout(() => {\n if (this._isMounted) {\n this.setState({\n isVisible: true\n });\n }\n }, BUSY_INDICATOR_DELAY);\n }\n\n this._busyRef.current?.dispatchEvent(\n new CustomEvent(\"isBusy\", { bubbles: true })\n );\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n get busyAnimation(): React.ReactNode {\n if (this.props.type === BusyIndicatorType.BackgroundOnly) {\n return null;\n }\n\n const { size, customContent } = this.props;\n\n if (customContent) {\n return customContent;\n }\n switch (size) {\n case BusyIndicatorSize.L:\n return ;\n case BusyIndicatorSize.M:\n return ;\n case BusyIndicatorSize.XS:\n return ;\n }\n }\n\n render() {\n return (\n \n {this.state.isVisible && (\n \n {this.busyAnimation}\n \n )}\n \n );\n }\n}\n\n","export const BUSY_INDICATOR_DELAY = 1000;\n\nexport enum BusyIndicatorSize {\n L = \"L\",\n M = \"M\",\n XS = \"XS\"\n}\n\nexport enum BusyIndicatorType {\n Normal = \"Normal\",\n BackgroundOnly = \"BackgroundOnly\",\n WithoutBackground = \"WithoutBackground\"\n}","import React, { useCallback, useState } from \"react\";\n\nimport TestIds from \"../../testIds\";\nimport BusyIndicator, { IProps as IBusyIndicatorProps } from \"./BusyIndicator\";\nimport { BusyWrapper } from \"./BusyIndicator.styles\";\n\nexport interface WithBusyIndicator {\n busy?: boolean;\n setBusy?: (isBusy: boolean) => void;\n /** Instantiated BusyIndicator which is passed if passBusyIndicator prop is used.*/\n busyIndicator?: React.ReactElement;\n customBusyContent?: React.ReactNode;\n hideBusyIndicator?: boolean;\n updateBusyIndicatorSettings?: (args: Partial) => void;\n}\n\ninterface IBusyIndicatorWrapperProps extends Pick {\n /** If false, withBusyIndicator wrapper will render BusyIndicator on its own.\n * If true, BusyIndicator component is passed via busyIndicator prop to the wrapped component\n * the component has to render the busyIndicator on its own (e.g. dialog which can't be easily wrapped by BusyWrapper) */\n passBusyIndicator?: boolean;\n defaultBusyState?: boolean;\n}\n\nexport const withBusyIndicator = (args: IBusyIndicatorWrapperProps = {}) => (\n

(Component: React.ComponentType

): React.ComponentType

=> {\n return React.forwardRef((props: P, ref) => {\n const { passBusyIndicator, defaultBusyState, ...busyIndicatorProps } = args;\n // control the busy indicator either\n // with busy prop from parent component\n // or from within the component, by calling setBusy\n const [busy, setBusy] = useState(defaultBusyState ?? false);\n const [customBusySettings, setCustomBusySettings] = useState>({});\n const updateBusyIndicatorSettings = useCallback((busySettings: Partial) => {\n setCustomBusySettings(busySettings);\n }, []);\n const isBusy = props.busy || busy;\n const BusyIndicatorInstance = props.hideBusyIndicator ? null : (\n \n );\n\n let result = (\n <>\n {isBusy && !passBusyIndicator && BusyIndicatorInstance}\n \n \n );\n\n if (!passBusyIndicator) {\n /* always render BusyWrapper, otherwise inner Component is completely re mounted on busy prop change */\n result = (\n \n {result}\n \n );\n }\n\n return result;\n }) as any;\n }\n);","import styled, { css, DefaultTheme } from \"styled-components/macro\";\nimport { IButtonGroupProps } from \"./Button\";\nimport {\n getFocusBorderElement,\n getSemanticBgColor,\n getSemanticElColor,\n getSemanticTextColor,\n T_BTN_main,\n T_PLAIN_tiny,\n textAlignToJustify\n} from \"../../global.style\";\nimport { COLOR_TRANSITION_TIME } from \"../../constants\";\nimport { Direction, IconSize, Status, TextAlign } from \"../../enums\";\nimport { PropsWithTheme, themes } from \"../../theme\";\nimport { StyledSegmentedButton } from \"./SegmentedButton.styles\";\nimport { ButtonSize } from \"./Button.utils\";\nimport { isDefined } from \"@utils/general\";\nimport { StyledBusyIndicator } from \"../busyIndicator/BusyIndicator.styles\";\n\nexport interface IStyledButtonProps {\n // use Transient props with $ prefix\n // to prevent styled-components from passing those props to the underlying element/component\n $ignoreTheme?: boolean;\n $status?: Status;\n $isLight?: boolean;\n $isTransparent?: boolean;\n $isDecorative?: boolean;\n $isDisabled?: boolean;\n $isBusy?: boolean;\n $isActive?: boolean;\n $hasIcon?: boolean;\n $isHover?: boolean;\n $cursor?: string;\n $isBold?: boolean;\n $size?: ButtonSize;\n}\n\nexport const getThemeValue = (props: IStyledButtonProps & PropsWithTheme, appendix: string) => {\n const theme = props.$ignoreTheme ? themes.light : props.theme;\n if (props.$isDecorative && [\"bg\", \"line_color\", \"bg_selected\", \"line_color_hover\", \"bg_hover\"].includes(appendix)) {\n return \"transparent\";\n }\n if (props.$status) {\n if ([\"bg\", \"bg_hover\"].includes(appendix)) {\n return \"transparent\";\n }\n if ([\"text\", \"text_selected\", \"text_hover\"].includes(appendix)) {\n return getSemanticTextColor(theme, props.$status, (props.$isHover || appendix === \"text_hover\"));\n }\n if (appendix === \"bg_selected\") {\n return getSemanticBgColor(theme, props.$status);\n }\n if (appendix.startsWith(\"line_size\")) {\n return \"1\";\n }\n return getSemanticElColor(theme, props.$status, false, (props.$isHover || appendix === \"line_color_hover\"));\n }\n return theme[`C_BTN_4${!props.$isLight ? \"L\" : \"D\"}_${(props.$isTransparent || props.$isDecorative) ? \"trans\" : \"emph\"}_${appendix}` as keyof DefaultTheme];\n};\n\nexport const getFocusBorderColor = (props: IStyledButtonProps & PropsWithTheme) => {\n if ((props.$isTransparent || props.$isDecorative || props.$status) && !props.$isLight) {\n return props.theme.C_BTN_hover_light;\n }\n return props.theme.C_BTN_hover_dark;\n};\n\nconst activeCss = css`\n background-color: ${props => getThemeValue(props, \"bg_selected\")};\n box-shadow: ${props => `inset 0 0 0 ${getThemeValue(props, \"line_size_selected\")}px ${getThemeValue(props, \"line_color_selected\")}`};\n color: ${props => getThemeValue(props, \"text_selected\")};\n`;\n\n\nexport const ButtonExtraCount = styled.em`\n ${T_PLAIN_tiny};\n font-weight: normal;\n font-style: normal;\n margin-left: 6px;\n position: relative;\n`;\n\nconst buttonStyles = css`\n ${T_BTN_main};\n\n // flex-basis needs to be defined so that the button shrinks in flex before it wraps https://stackoverflow.com/questions/26125962/flex-box-shrink-before-wrap\n // min-content isn't widely supported, using 70px instead. it is limited with min/max width anyway\n flex: 1 1 70px;\n min-width: min-content;\n max-width: max-content;\n box-sizing: content-box;\n\n position: relative;\n background-color: ${props => getThemeValue(props, \"bg\")};\n box-shadow: ${props => `inset 0 0 0 ${getThemeValue(props, \"line_size\")}px ${getThemeValue(props, \"line_color\")}`};\n color: ${props => getThemeValue(props, \"text\")};\n text-align: center;\n cursor: ${props => props.$isDisabled || props.$isBusy ? \"default\" : props.$cursor ?? \"pointer\"};\n border-radius: 30px;\n display: inline-block;\n outline: none;\n border: none;\n padding: 10px 19px;\n margin: 0;\n text-decoration: none;\n\n -webkit-appearance: none;\n -moz-appearance: none;\n\n transition: background ${COLOR_TRANSITION_TIME}ms ease-in-out, color ${COLOR_TRANSITION_TIME}ms ease-in-out, transform 150ms ease;\n\n ${props => props.$size === ButtonSize.Small && css`\n padding: 6px;\n min-width: 20px;\n height: 20px;\n `};\n\n ${props => props.$size === ButtonSize.Big && css`\n font-size: 17px;\n padding: 16px 30px;\n `};\n\n ${props => !props.$isBold && css`\n font-weight: normal;\n `};\n\n ${props => !props.$isDisabled && css`\n &:hover, &:active {\n box-shadow: ${props => `inset 0 0 0 ${getThemeValue(props, \"line_size_hover\")}px ${getThemeValue(props, \"line_color_hover\")}`};\n color: ${props => getThemeValue(props, \"text_hover\")};\n }\n\n &:active {\n ${activeCss};\n }\n\n ${props => getFocusBorderElement({\n color: getFocusBorderColor(props),\n offset: -2,\n keyboardOnly: props.$isDecorative\n })};\n `};\n\n ${props => props.$isDisabled && css`\n opacity: ${props => props.theme.disabled_opacity};\n `};\n\n ${props => props.$isActive && !props.$isDisabled && activeCss};\n\n ${props => !props.$isActive && !props.$isDisabled && css`\n &:hover:not(:active) {\n background-color: ${props => getThemeValue(props, \"bg_hover\")};\n }\n `};\n\n ${props => props.$isHover && !props.$isDisabled && css`\n box-shadow: ${props => `inset 0 0 0 ${getThemeValue(props, \"line_size_hover\")}px ${getThemeValue(props, \"line_color_hover\")}`};\n color: ${props => getThemeValue(props, \"text_hover\")};\n background-color: ${props => getThemeValue(props, \"bg_hover\")};\n `};\n\n ${props => props.$hasIcon && css`\n padding-left: 15px;\n `};\n\n // special indicator style for button, shown in the right side\n\n ${StyledBusyIndicator} svg {\n position: absolute;\n right: 4px;\n }\n\n ${props => props.$isBusy && css`\n ${ButtonExtraCount} {\n visibility: hidden;\n }\n `}\n`;\n\n// div is changed via \"as\" property to desired element (button/a/Link)\nexport const StyledButton = styled.div`\n ${buttonStyles};\n`;\n\nexport const IconWrapper = styled.div`\n position: absolute;\n width: ${IconSize.S};\n height: ${IconSize.S};\n left: 15px;\n top: 50%;\n transform: translateY(-50%);\n`;\n\nconst iconButtonStyles = css`\n padding: ${props => (isDefined(props.$size) && props.$size === ButtonSize.Small) || props.$isDecorative ? \"0\" : \"6px\"};\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: unset;\n height: fit-content;\n flex: 0 0 auto;\n\n ${props => getFocusBorderElement({\n color: getFocusBorderColor(props),\n offset: props.$isDecorative ? 1 : -2,\n keyboardOnly: props.$isDecorative\n })};\n`;\n\n// div is changed via \"as\" property to desired element (button/a/Link)\nexport const StyledIconButton = styled.div`\n ${buttonStyles};\n ${iconButtonStyles};\n`;\n\nexport const TextWrapper = styled.span<{ hasIcon: boolean }>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n top: 1px;\n margin-left: ${props => props.hasIcon ? \"27px\" : \"0\"};\n line-height: 1.5;\n`;\n\nexport const ClickCapture = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n // hidden, but fires click events\n opacity: 0\n`;\n\nexport const StyledButtonGroup = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: ${props => textAlignToJustify(props.align ?? TextAlign.Center)};\n flex-direction: ${props => props.direction === Direction.Horizontal ? \"row\" : \"column\"};\n flex-wrap: ${props => props.wrap};\n\n ${props => props.direction === Direction.Vertical && css`\n ${StyledButton} {\n // prevent buttons from stretching vertically\n flex: 0;\n }\n `};\n\n // target direct children, we could have nested ButtonGroups\n & > {\n // buttons should have 15px margin between themselves\n // between icon and regular button, there should be 15px margin\n // use [style*=\"display: none\"] to ignore buttons that are hidden in small Toolbar \n ${StyledButton}:not([style*=\"display: none\"]) + ${StyledButton},\n ${StyledIconButton}:not([style*=\"display: none\"]) + ${StyledButton},\n ${StyledButton}:not([style*=\"display: none\"]) + ${StyledIconButton},\n ${StyledSegmentedButton}:not([style*=\"display: none\"]) + ${StyledSegmentedButton},\n ${StyledButton}:not([style*=\"display: none\"]) + ${StyledSegmentedButton},\n ${StyledSegmentedButton}:not([style*=\"display: none\"]) + ${StyledButton},\n ${StyledIconButton}:not([style*=\"display: none\"]) + ${StyledSegmentedButton},\n ${StyledSegmentedButton}:not([style*=\"display: none\"]) + ${StyledIconButton} {\n margin-left: ${props => props.direction === Direction.Horizontal ? \"15px\" : \"0\"};\n margin-top: ${props => props.direction === Direction.Horizontal ? \"0\" : \"15px\"};\n }\n\n // icon buttons should have 2px margin between themselves\n ${StyledIconButton}:not([style*=\"display: none\"]) + ${StyledIconButton} {\n margin-left: ${props => props.direction === Direction.Horizontal ? \"2px\" : \"0\"};\n margin-top: ${props => props.direction === Direction.Horizontal ? \"0\" : \"2px\"};\n }\n }\n`;","import React, { Ref } from \"react\";\nimport {\n ClickCapture,\n IconWrapper,\n IStyledButtonProps,\n StyledButton,\n StyledButtonGroup,\n StyledIconButton,\n TextWrapper\n} from \"./Button.styles\";\nimport { Direction, IconSize, Status, TextAlign } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport Alert, { IAlertProps } from \"../alert/Alert\";\nimport { composeRefHandlers, getValue, TabIndex } from \"@utils/general\";\nimport { IPopperOptions } from \"../popperWrapper\";\nimport Tooltip from \"../tooltip\";\nimport { ColoredIcon } from \"../icon\";\nimport { THistoryLocation } from \"../drillDown/DrillDown.utils\";\nimport { Link } from \"react-router-dom\";\nimport { TFunctionResult } from \"i18next\";\nimport { HOTSPOT_ID_ATTR } from \"../hotspots/Hotspots.utils\";\nimport BusyIndicator from \"../busyIndicator\";\nimport { ButtonSize } from \"./Button.utils\";\nimport { KeyName } from \"../../keyName\";\nimport { ClickableWithAlertBase } from \"../clickableWithAlert/ClickableWithAlert\";\nimport { isExternalLink } from \"../clickable/Clickable.utils\";\nimport { addCompanyIdToUrl } from \"../../contexts/appContext/AppContext.utils\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BusyIndicatorSize, BusyIndicatorType } from \"../busyIndicator/BusyIndicator.utils\";\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\n\nexport interface IProps {\n /** Renders html data-hotspotid attribute*/\n hotspotId?: string;\n\n /** Renders html id attribute*/\n id?: string;\n /** Defines whether the button should be rendered in light colors, suitable for dark backgrounds.\n * Light variant also has transparent background. */\n isLight?: boolean;\n /** Defines whether the button should have background and borders in default state. */\n isTransparent?: boolean;\n /** Makes the button transparent (even for the 'non transparent' variant) and removes selected/active state,\n * defaults padding to ButtonSize.Small */\n isDecorative?: boolean;\n\n /** Changes padding and/or font size. \"Default\" by default. */\n size?: ButtonSize;\n\n /** Makes the font bold, true by default */\n isBold?: boolean;\n /** Always use colors from default theme */\n ignoreTheme?: boolean;\n isDisabled?: boolean;\n isBusy?: boolean;\n /** Always use active look even when button is not clicked on */\n isActive?: boolean;\n isHover?: boolean;\n // TFunctionResult are translations which for some reason don't return string interface\n children?: string | number | TFunctionResult;\n /** Severity of the button (changes color theme) */\n status?: Status;\n /** When we need to prefix the text with icon in the default non icon Button */\n icon?: React.ReactElement;\n title?: string;\n /** Html button \"type\" attribute, \"button\" by default */\n type?: \"button\" | \"submit\" | \"reset\";\n tabIndex?: number;\n onClick?: (args: React.MouseEvent) => void;\n /** Renders instead of \n );\n};","import styled, { css } from \"styled-components/macro\";\nimport {\n getDisabledStyle,\n getFocusBorderDefinition,\n getFocusBorderElement,\n T_ALERT_SUBTITLE,\n T_BTN_main,\n T_PLAIN_big,\n T_TITLE_4_NORMAL\n} from \"../../global.style\";\nimport { ellipsis, transparentize } from \"polished\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { ButtonGroup } from \"../button\";\nimport { ReadLabelText, StyledEditableText } from \"../inputs/editableText/EditableText.styles\";\nimport { StyledInput } from \"../inputs/textArea/TextArea.styles\";\nimport Alert from \"../alert/Alert\";\nimport { DarkIcon } from \"../icon\";\n\nexport const ITEM_MARGIN = 16;\n\nexport const StyledConfigurationList = styled.div`\n height: 100%;\n width: fit-content;\n`;\n\nexport const Columns = styled.div`\n display: flex;\n height: 100%;\n`;\n\ninterface IItem {\n _width?: string;\n isDragging?: boolean;\n preventTransform?: boolean;\n isHighlighted?: boolean;\n isDisabled?: boolean;\n level?: number;\n isDescription?: boolean;\n isCombined?: boolean;\n hasRightIcon?: boolean;\n}\n\nexport const StyledConfigurationItem = styled.div`\n position: relative;\n outline: none;\n border-radius: ${props => props.theme.borderLargeRadius};\n padding: 6px 0;\n width: fit-content;\n margin-left: ${props => props.level * 32}px;\n\n ${props => props.preventTransform && !props.isDragging && css`\n transform: none !important;\n `}\n`;\n\nexport const SubItem = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 14px;\n ${T_PLAIN_big};\n margin: 12px 0 12px 32px;\n padding-right: 14px;\n`;\n\nexport const ItemSelectOpener = styled.div`\n position: absolute;\n width: calc(50% - 14px);\n top: 100%;\n left: 50%;\n`;\n\nconst getItemBackgroundColor = (props: IItem & PropsWithTheme) => {\n let color = props.isHighlighted ? transparentize(0.9, props.theme.C_ACT_der) : props.theme.C_FIELD_line_der;\n\n if (props.isDisabled) {\n color = transparentize(1 - parseFloat(props.theme.disabled_opacity), color);\n }\n\n return color;\n};\n\nexport const DraggedItemStyle = css`\n border: 1px solid ${props => transparentize(0.5, props.theme.C_ACT_der)};\n opacity: 80%;\n box-shadow: 0 0 9.2px 2.8px rgba(0, 0, 0, 0.2);\n`;\n\nconst itemBorder = css`\n border: 1px solid ${props => props.isHighlighted || props.isDisabled ? \"transparent\" : transparentize(0.5, props.theme.C_ACT_der)}\n`;\n\nconst combinedItemLine = css`\n content: \"\";\n position: absolute;\n height: 2px;\n width: calc(100% - 4px);\n left: 2px;\n background-color: ${props => props.theme.C_ACT_der};\n opacity: 0.5;\n`;\n\nconst topLine = css`\n &::before {\n ${combinedItemLine};\n top: -2px;\n }\n`;\n\nconst bottomLine = css`\n &::after {\n ${combinedItemLine};\n bottom: -2px;\n }\n`;\n\n// TODO this is be a bit redundant to Input\n// with some problems, disabled Input could be used instead\nexport const ItemInnerWrapper = styled.div`\n height: 34px;\n width: ${props => props._width};\n position: relative;\n display: flex;\n align-items: center;\n padding-left: 12px;\n padding-right: ${props => props.hasRightIcon ? \"40px\" : \"20px\"};\n border-radius: ${props => props.theme.borderLargeRadius};\n background-color: ${props => getItemBackgroundColor(props)};\n border: 1px solid transparent; //${props => props.isHighlighted ? transparentize(0.9, props.theme.C_ACT_der) : props.theme.C_FIELD_line_der};\n\n &:hover {\n ${itemBorder};\n }\n\n ${props => props.isDragging && DraggedItemStyle}\n ${StyledConfigurationItem}:focus & {\n &:before {\n ${getFocusBorderDefinition({ offset: 2 })}\n }\n }\n\n ${props => props.isCombined && css`\n & + & {\n margin-top: 12px;\n }\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n\n &:first-child {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:last-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n ${StyledConfigurationItem}:hover & {\n ${itemBorder};\n\n &:not(:first-child):not(:last-child) {\n ${topLine};\n ${bottomLine};\n }\n\n &:first-child {\n ${bottomLine};\n }\n\n &:last-child {\n ${topLine};\n }\n }\n `}\n`;\n\nexport const ItemInnerContentWrapper = styled.div`\n position: absolute;\n right: 12px;\n top: 0;\n height: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const ItemValueWrapper = styled.div`\n ${T_TITLE_4_NORMAL};\n ${ellipsis()};\n width: 100%;\n opacity: ${props => props.isDisabled ? props.theme.disabled_opacity : 1};\n // match description text color for correct text ellipsis color\n color: ${props => props.isDescription ? props.theme.C_ACT_thick_line : props.theme.C_TEXT_primary};\n`;\n\nexport const ItemValue = styled.span`\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nexport const ItemDescription = styled.span`\n font-style: italic;\n color: ${props => props.theme.C_ACT_thick_line};\n`;\n\nexport const RequiredAlert = styled(Alert)`\n position: absolute;\n left: 50%;\n top: 50%;\n`;\n\ninterface IColumn {\n isInEdit?: boolean;\n isFirstGroupSmall?: boolean;\n}\n\nexport const StyledConfigurationColumn = styled.div`\n --separator-width: 2px;\n --column-margin: 16px;\n --sum: calc(var(--separator-width) + var(--column-margin));\n\n display: flex;\n flex-direction: column;\n position: relative;\n margin: 0 var(--column-margin);\n\n &:not(:last-child) {\n margin-right: var(--sum);\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n right: calc(var(--sum) * -1);\n display: block;\n width: var(--separator-width);\n height: ${props => props.isInEdit ? \"100%\" : \"calc(100% - 12px)\"};\n background: ${props => props.theme.C_DEF_tableBorder};\n }\n }\n`;\n\nexport const AddButtonWrapper = styled.div`\n`;\n\nexport const ColumnLabelWrapper = styled.div`\n margin-bottom: ${props => props.isFirstGroupSmall ? \"3px\" : \"9px\"};\n margin-left: 16px;\n`;\n\nexport const ColumnContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n min-height: 100%;\n`;\n\nexport const Spacer = styled.div`\n display: block;\n height: 5px;\n`;\n\nexport const GroupList = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n width: fit-content;\n flex-grow: 1;\n`;\n\ninterface IGroup {\n isTransparent?: boolean;\n isDraggable?: boolean;\n isDragging?: boolean;\n isRemovable?: boolean;\n isGrowing?: boolean;\n isLocked?: boolean;\n _width?: string;\n}\n\nexport const StyledConfigurationGroup = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: ${props => props.isGrowing ? 1 : 0};\n ${props => !props.isGrowing && !props.isLocked && css`min-height: 100px`};\n position: relative;\n background-color: ${props => props.isTransparent ? \"transparent\" : props.theme.C_BG_menu};\n margin-bottom: 28px;\n border: 2px solid transparent;\n border-radius: 3px;\n\n ${props => props.isDraggable && !props.isTransparent && css`\n &:hover {\n border: 2px solid ${props => props.theme.C_ACT_hover_without_opacity};\n\n ${DragIconWrapper} {\n visibility: visible;\n }\n }\n `};\n\n ${props => props.isDragging && DraggedItemStyle};\n\n ${props => props.isRemovable && css`\n ${ControlButtonsGroup} > button:first-child {\n visibility: hidden;\n }\n\n &:hover ${ControlButtonsGroup} > button:first-child {\n visibility: visible;\n }\n `};\n`;\n\nexport const StyledGroupHeader = styled.div<{ isLocked?: boolean; }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n padding: 10px 10px 0 14px;\n // in case group is locked, there is no body with spacing -> make margin greater to keep \n // the header on center of the group\n margin-bottom: ${props => props.isLocked ? 6 : 2}px;\n\n ${StyledEditableText} {\n min-height: 26px;\n }\n`;\n\nexport const DarkIconStyled = styled(DarkIcon)<{ hasTooltip?: boolean }>`\n ${props => props.hasTooltip && css`cursor: pointer`};\n`;\n\nexport const StyledGroupSeparator = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const GroupSeparatorLine = styled.div`\n width: 100%;\n height: 2px;\n margin-right: 11px;\n margin-left: 12px;\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n`;\n\nexport const DragIconWrapper = styled.div`\n visibility: hidden;\n margin-left: 2px;\n`;\n\nexport const ControlButtonsGroup = styled(ButtonGroup)`\n // on the right side of flex container\n margin-left: auto;\n`;\n\nexport const GroupLabel = styled.div<{ isEditable: boolean }>`\n ${T_BTN_main};\n\n ${ReadLabelText}, ${StyledInput} {\n ${T_BTN_main};\n }\n\n ${ellipsis(205)};\n \n ${props => !props.isEditable && css`\n padding: 6px 12px 4px 12px;\n `};\n`;\n\nexport const ItemList = styled.div`\n position: relative;\n flex-grow: 1;\n min-width: ${props => `calc(${props._width} + 2 * ${ITEM_MARGIN}px)`};\n min-height: ${props => props.isTransparent ? \"0\" : \"56px\"};\n padding: 0 ${ITEM_MARGIN}px;\n padding-bottom: ${props => props.isTransparent ? \"0\" : \"6px\"};\n`;\n\nexport const ItemSelector = styled.div<{ isDisabled?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n left: 13px;\n outline: none;\n ${getFocusBorderElement({ offset: 2, keyboardOnly: true })};\n ${props => getDisabledStyle(props.isDisabled)};\n`;\n\nexport const SelectedItemLabel = styled.div`\n color: ${props => props.theme.C_ACT_main};\n margin-right: 3px;\n\n ${T_ALERT_SUBTITLE};\n`;\n\nexport const FakeGroup = styled.div`\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const PlaceholderVisibility = styled.div<{ visible: boolean }>`\n display: ${props => props.visible ? \"block\" : \"none\"};\n`;\n\nexport const PlaceholderLineDefinition = css`\n border-radius: 1px;\n background-color: ${props => props.theme.C_ACT_main};\n opacity: 0.5;\n`;\n\nexport const HorizontalLineWithoutBubbles = css`\n ${PlaceholderLineDefinition};\n\n position: relative;\n height: 2px;\n flex: 1 1 auto;\n`;\n\nexport const GroupPlaceholder = styled.div`\n position: absolute;\n border: dashed 2px ${props => props.theme.C_ACT_main};\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n opacity: 0.5;\n border-radius: 4px;\n`;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Columns, StyledConfigurationList } from \"./ConfigurationList.styles\";\nimport { IProps as IConfigListGroup } from \"./Group\";\nimport { Column, IProps as IConfigListColumn } from \"./Column\";\nimport { IItemSelectedItemChange, IProps as IConfigListItem, ISubItemVisibilityChange } from \"./Item\";\nimport { TRecordType } from \"../../global.types\";\nimport { DragDropContext, DragStart, DragUpdate, DropResult } from \"react-beautiful-dnd\";\nimport { ConfigListItemBoundType, GroupListDropType } from \"../../enums\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport TestIds from \"../../testIds\";\nimport { compareString } from \"@utils/string\";\nimport { computePlaceholderPos, getDragedElement, getDroppableElement } from \"./DnD.utils\";\n\nexport const COPY_SIGN = \"-copy-\";\nexport const COPY_APPENDIX = new RegExp(`${COPY_SIGN}(?\\\\d+)$`);\n\nexport const CustomDnDContext = React.createContext(null);\n\nexport interface ICustomDnDContext {\n placeholder: IPlaceholderPos;\n dropAnimationPos: IDropAnimationPos;\n data: IConfigList;\n configListRef: React.RefObject;\n}\n\nexport function connectToContext(WrappedComponent: React.ElementType, select: (...args: any) => any) {\n return function(props: any) {\n const selectors = select(props);\n return ;\n };\n}\n\nexport const getItemCopyId = (itemId: string, index: number) => {\n return `${itemId}${COPY_SIGN}${index}`;\n};\n\nexport const shouldComponentUpdateIgnoreData = (props: any, nextProps: any): boolean => {\n if (Object.keys(props).length !== Object.keys(nextProps).length) {\n return true;\n }\n\n const changes = [];\n\n for (const key of Object.keys(props)) {\n if (props[key] !== nextProps[key]) {\n changes.push(key);\n }\n }\n\n // ignore when data object changes to prevent pointless rerenders\n return changes.length === 1 ? changes[0] !== \"data\" : changes.length > 0;\n};\n\n// draggableId has to be unique among ALL draggables (both Items and Groups in our case)\n// https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/identifiers.md\n// each has either -item or -group suffix, this method will remove it\nexport const getCleanDraggableId = (draggableId: string) => {\n if (!draggableId) {\n return null;\n }\n\n const lastDashIndex = draggableId.lastIndexOf(\"-\");\n return draggableId.slice(0, lastDashIndex);\n};\n\nexport const trimCopyId = (id: string) => {\n return id && id.replace(COPY_APPENDIX, \"\");\n};\n\nexport const isCopy = (id: string) => {\n return COPY_APPENDIX.test(id);\n};\n\nexport interface IGroupListColumnDef extends Omit {\n groupIds: string[];\n}\n\nexport interface IGroupListGroupDef extends Omit {\n itemIds: string[];\n}\n\nexport interface IGroupListItemDef extends Omit {\n}\n\nexport interface IConfigList {\n id?: string;\n name?: string;\n columns: TRecordType;\n groups: TRecordType;\n items: TRecordType;\n}\n\ninterface IProps extends WithTranslation {\n data: IConfigList;\n onDataChange: (newData: IConfigList) => void;\n onGroupAdd?: (columnId: string) => void;\n onGroupRemove?: (groupId: string) => void;\n}\n\nexport interface IPlaceholderPos {\n clientHeight: number;\n clientWidth: number;\n clientY: number;\n clientX: number;\n droppableId: string;\n}\n\nexport interface IDropAnimationPos {\n x: number;\n y: number;\n}\n\ninterface IState {\n placeholder: IPlaceholderPos;\n dropAnimationPos: IDropAnimationPos;\n tmpGroups: TRecordType;\n}\n\nclass ConfigurationList extends React.PureComponent {\n configListRef = React.createRef();\n\n state: IState = {\n // move outside of state and use event emitter instead,\n // if re-rendering caused by placeholder changes would be performance issue\n placeholder: null,\n dropAnimationPos: null,\n tmpGroups: null\n };\n\n getGroupsDef = () => {\n return this.state.tmpGroups ?? this.props.data.groups;\n };\n\n getColumnsGroups = memoizeOne(\n () => {\n const groups = this.getGroups();\n const columnsGroups: any = {};\n\n for (const [colName, column] of Object.entries(this.props.data.columns)) {\n columnsGroups[colName] = column.groupIds.map(groupId => groups[groupId]);\n }\n\n return columnsGroups;\n },\n () => [this.props.data.columns, this.getGroupsDef()]);\n\n getColumnGroups = (columnId: string) => {\n return this.getColumnsGroups()[columnId];\n };\n\n // returns groups with sorted items (for groups with sorting enabled)\n getGroups = memoizeOne(\n () => {\n const preparedGroups: TRecordType = {};\n\n Object.keys(this.getGroupsDef()).forEach(groupId => {\n preparedGroups[groupId] = this.getGroup(groupId);\n });\n\n return preparedGroups;\n }, () => [this.getGroupsDef()]);\n\n getGroup = (groupId: string) => {\n let group = this.getGroupsDef()[groupId];\n\n if (group.shouldSort) {\n // todo this causes the group with sorting to always rerender when other group changes\n // can we remove automatic sorting from ConfigurationList?\n group = this.getSortedGroup(group);\n }\n\n return group;\n };\n\n getSortedGroup = (group: IGroupListGroupDef) => {\n const groupItems = this.getGroupItems(group);\n groupItems.sort(this.sortItems);\n\n return {\n ...group,\n itemIds: groupItems.map(item => item.id)\n };\n };\n\n getGroupItems = (group: IGroupListGroupDef) => {\n return group.itemIds.map(itemId => this.props.data.items[itemId] ?? this.props.data.items[trimCopyId(itemId)]);\n };\n\n getItems = memoizeOne(\n () => {\n // enrich items with event props\n return Object.values(this.props.data.items).reduce((allItems: Record, currentItem) => {\n allItems[currentItem.id] = {\n ...currentItem,\n onSelectedItemChange: this.handleSelectedItemChange,\n onSubItemVisibilityChange: this.handleSubItemVisibilityChange\n };\n\n return allItems;\n }, {});\n }, () => [this.props.data.items]);\n\n sortItems = (a: any, b: any) => {\n if (a.icon) {\n return -1;\n } else if (b.icon) {\n return 1;\n }\n\n return compareString(a.value, b.value);\n };\n\n handleSelectedItemChange = (args: IItemSelectedItemChange) => {\n const newData: IConfigList = {\n ...this.props.data,\n items: {\n ...this.props.data.items,\n [args.itemId]: {\n ...this.props.data.items[args.itemId],\n selectedItemId: args.selectedItemId\n }\n }\n };\n\n this.props.onDataChange(newData);\n };\n\n handleSubItemVisibilityChange = (args: ISubItemVisibilityChange) => {\n const item = this.props.data.items[args.itemId];\n\n const newData: IConfigList = {\n ...this.props.data,\n items: {\n ...this.props.data.items,\n [args.itemId]: {\n ...item,\n subItems: item.subItems.map(subItem => {\n return subItem.id === args.subItemId ? {\n ...subItem, isVisible: args.visible\n } : subItem;\n })\n }\n }\n };\n\n this.props.onDataChange(newData);\n };\n\n handleGroupRemoveClick = (groupId: string) => {\n this.props.onGroupRemove?.(groupId);\n };\n\n handleGroupLabelChange = (groupId: string, newLabel: string) => {\n const newData: IConfigList = {\n ...this.props.data,\n groups: {\n ...this.props.data.groups,\n [groupId]: {\n ...this.props.data.groups[groupId],\n label: newLabel\n }\n }\n };\n\n this.props.onDataChange(newData);\n };\n\n renderColumns = (columns: IGroupListColumnDef[] = []) => {\n return columns.map((column, index) => {\n const columnGroups = this.getColumnGroups(column.id);\n const items = this.getItems();\n\n return (\n \n \n );\n });\n };\n\n getMaxCopyNum = (id: string) => {\n return Object.values(this.props.data.groups).reduce((max, group) => {\n let localMax = 0;\n\n for (const itemId of group.itemIds) {\n if (itemId.startsWith(id) && isCopy(itemId)) {\n const number = parseInt(COPY_APPENDIX.exec(itemId).groups.number);\n localMax = Math.max(localMax, number);\n }\n }\n\n return Math.max(localMax, max);\n }, 0);\n };\n\n handleItemDragStart = (event: DragStart) => {\n if (event.type !== GroupListDropType.Item) {\n return;\n }\n\n const cleanDraggableId = getCleanDraggableId(event.draggableId);\n const item = this.props.data.items[cleanDraggableId] ?? this.props.data.items[trimCopyId(cleanDraggableId)];\n\n if (!item.boundTo && !item.allowedGroups) {\n return;\n }\n\n let tmpGroups: TRecordType;\n\n if (item.boundTo) {\n tmpGroups = item.boundTo === ConfigListItemBoundType.Group ? this.handleBoundToGroupItemDragStart(item) : this.handleBoundToColumnItemDragStart(item);\n } else {\n tmpGroups = this.handleItemWithAllowedGroupsDragStart(item);\n }\n\n this.setState({\n tmpGroups\n });\n };\n\n // disable drop for groups in other columns\n handleBoundToColumnItemDragStart = (item: IGroupListItemDef) => {\n const tmpGroups = { ...this.props.data.groups };\n const itemGroup = Object.values(this.props.data.groups).find(group => group.itemIds.includes(item.id));\n const groupColumn = Object.values(this.props.data.columns).find(column => column.groupIds.includes(itemGroup.id));\n\n if (groupColumn.cannotBeBoundTo) {\n return tmpGroups;\n }\n\n // disable drop for all groups in the columns that doesn't contain the item\n for (const column of Object.values(this.props.data.columns)) {\n if (column.id === groupColumn.id) {\n continue;\n }\n for (const groupId of column.groupIds) {\n const group = this.props.data.groups[groupId];\n\n tmpGroups[group.id] = {\n ...group,\n isDropDisabled: true\n };\n }\n }\n\n return tmpGroups;\n };\n\n // disable drop for all other groups\n handleBoundToGroupItemDragStart = (item: IGroupListItemDef) => {\n const tmpGroups = { ...this.props.data.groups };\n\n for (const group of Object.values(this.props.data.groups)) {\n if (!group.itemIds.includes(item.id)) {\n tmpGroups[group.id] = {\n ...group,\n isDropDisabled: true\n };\n }\n }\n\n return tmpGroups;\n };\n\n handleItemWithAllowedGroupsDragStart = (item: IGroupListItemDef) => {\n const tmpGroups = { ...this.props.data.groups };\n\n for (const group of Object.values(this.props.data.groups)) {\n if (!item.allowedGroups.includes(group.id)) {\n tmpGroups[group.id] = {\n ...group,\n isDropDisabled: true\n };\n }\n }\n\n return tmpGroups;\n };\n\n handleItemDragEnd = (event: DragStart) => {\n if (event.type !== GroupListDropType.Item || !this.state.tmpGroups) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n this.setState({\n tmpGroups: null\n }, resolve as (() => void));\n });\n };\n\n handleDragStart = (event: DragStart) => {\n const draggedElement = getDragedElement(event.draggableId);\n\n if (!draggedElement) {\n return;\n }\n\n this.handleItemDragStart(event);\n\n const { element, elements } = this.getPlaceholderComputationElements(draggedElement, event);\n\n const placeholder = computePlaceholderPos(\n element,\n elements,\n event.source.index,\n event.source.droppableId,\n event.type as GroupListDropType\n );\n\n this.setState({\n placeholder,\n dropAnimationPos: null\n });\n };\n\n getPlaceholderComputationElements = (draggedElement: HTMLElement, event: DragStart) => {\n let element: HTMLElement;\n let elements: HTMLElement[];\n\n // because renderClone (portal) is used, we need to get the children element\n // reference directly from ConfigurationList not from draggedElement\n elements = [...this.configListRef.current.querySelector(`[data-rbd-droppable-id=\"${event.source.droppableId}\"]`).children] as HTMLElement[];\n\n if (event.type === GroupListDropType.Item) {\n element = draggedElement;\n } else {\n element = draggedElement.parentElement.parentElement;\n }\n\n return { element, elements };\n };\n\n // when copy of an item is dropped to column with its original,\n // we want the animation to end in the original item\n // calculate the position and store it in the CustomDnDContext\n setDropAnimationPos = (event: DragUpdate) => {\n if (event.type !== GroupListDropType.Item) {\n return;\n }\n\n const cleanDraggableId = getCleanDraggableId(event.draggableId);\n const dropGroup = this.props.data.groups[event.destination.droppableId];\n const trimmedId = trimCopyId(cleanDraggableId);\n let dropAnimationPos = null;\n\n if (dropGroup.itemIds.includes(trimmedId) && this.props.data.items[trimmedId].isCopyOnly) {\n // draggedElement has position:fixed, we can use offsetLeft/Top to get its position WITHOUT transform: translate\n const draggedElement = getDragedElement(event.draggableId);\n // endElement doesn't have any transformation, we can use getBoundingClientRect to get its value relative to page\n const endElement = getDragedElement(`${trimmedId}-${event.type}`);\n let posX, posY;\n\n if (draggedElement === endElement) {\n posX = posY = 0;\n } else {\n const endElementRect = endElement.getBoundingClientRect();\n posX = endElementRect.x - draggedElement.offsetLeft;\n posY = endElementRect.y - draggedElement.offsetTop;\n }\n\n\n dropAnimationPos = {\n x: posX,\n y: posY\n };\n }\n\n this.setState({\n dropAnimationPos\n });\n };\n\n handleDragUpdate = (event: DragUpdate) => {\n this.setState({\n placeholder: null\n });\n\n if (!event.destination) {\n return;\n }\n\n const draggedElement = getDragedElement(event.draggableId);\n const destinationElement = getDroppableElement(event.destination?.droppableId);\n\n if (!draggedElement || !destinationElement) {\n return;\n }\n\n // prevent hover on items under the dragged item\n // todo try to disable hover/tooltip on all items while one is being dragged\n // draggedElement.style[\"pointerEvents\"] = \"all\";\n\n this.setDropAnimationPos(event);\n\n const { element } = this.getPlaceholderComputationElements(draggedElement, event);\n const sourceIndex = event.source.index;\n const destinationIndex = event.destination.index;\n const childrenArray = [...destinationElement.children];\n\n // only remove elemement, if portal cannot be used\n if (!document.getElementById(\"modal-root\") && event.source.droppableId === event.destination.droppableId) {\n childrenArray.splice(sourceIndex, 1);\n }\n\n const updatedArray = [\n ...childrenArray.slice(0, destinationIndex),\n element,\n ...childrenArray.slice(destinationIndex + 1)\n ];\n\n // disable placeholder when dragging over disabled items\n const placeholder = this.isItemDraggedOverDisabledItems(event) ? null\n : computePlaceholderPos(\n element,\n updatedArray as HTMLElement[],\n destinationIndex,\n event.destination.droppableId,\n event.type as GroupListDropType\n );\n\n this.setState({\n placeholder\n });\n };\n\n isItemDraggedOverDisabledItems = (event: DragUpdate) => {\n if (event.type !== GroupListDropType.Item) {\n return null;\n }\n\n const group = this.props.data.groups[event.destination.droppableId];\n const groupItems = this.getGroupItems(group);\n const destinationIndex = event.destination.index;\n\n return (\n (destinationIndex === 0 && groupItems[0]?.isDisabled) // start\n // || (destinationIndex === groupItems.length && groupItems[destinationIndex - 1]?.disabled) // end\n || (groupItems[destinationIndex - 1]?.isDisabled && groupItems[destinationIndex]?.isDisabled) // in between\n );\n };\n\n handleDragEnd = async (result: DropResult) => {\n this.setState({\n placeholder: null\n });\n\n await this.handleItemDragEnd(result);\n\n const { destination, source, draggableId, type } = result;\n\n if (!destination) {\n return; // dropped outside?\n }\n\n if (destination.droppableId === source.droppableId &&\n destination.index === source.index) {\n return; // dropped in the same place\n }\n\n const cleanDraggableId = getCleanDraggableId(draggableId);\n\n let newResult;\n let idsName;\n let isCopyOnly;\n let shouldRemove;\n let maxCopyNum;\n let newDraggableId = cleanDraggableId;\n let destinationIndex = destination.index;\n\n switch (type) {\n case GroupListDropType.Item:\n newResult = {\n ...this.getGroups()\n };\n idsName = \"itemIds\";\n\n const sourceItem = this.props.data.items[cleanDraggableId];\n\n if (destination.droppableId !== source.droppableId) {\n if (sourceItem?.isCopyOnly) {\n isCopyOnly = true;\n maxCopyNum = this.getMaxCopyNum(newDraggableId) + 1;\n newDraggableId = getItemCopyId(newDraggableId, maxCopyNum);\n }\n\n if (this.props.data.groups[destination.droppableId].itemIds.includes(trimCopyId(cleanDraggableId))) {\n shouldRemove = true;\n }\n }\n\n destinationIndex = this.getFirstNonDisabledDestinationIndex(result);\n\n break;\n case GroupListDropType.Group:\n newResult = {\n ...this.props.data.columns\n };\n idsName = \"groupIds\";\n break;\n }\n\n\n const startDroppable = newResult[source.droppableId];\n const startDraggableIds = [...(startDroppable as any)[idsName]];\n\n if (!isCopyOnly) {\n startDraggableIds.splice(source.index, 1);\n }\n\n const newStartDroppable = {\n ...startDroppable,\n [idsName]: startDraggableIds\n };\n newResult[newStartDroppable.id] = newStartDroppable;\n\n const finishDroppable = newResult[destination.droppableId];\n const finishDraggableIds = [...(finishDroppable as any)[idsName]];\n\n if (!shouldRemove) {\n finishDraggableIds.splice(destinationIndex, 0, newDraggableId);\n }\n\n const newFinishDroppable = {\n ...finishDroppable,\n [idsName]: finishDraggableIds\n };\n newResult[newFinishDroppable.id] = newFinishDroppable;\n\n const newData = {\n ...this.props.data\n };\n\n if (type === GroupListDropType.Item) {\n newData.groups = newResult as TRecordType;\n\n if (isCopyOnly) {\n // we need to clone the whole item, so that every clone can have different selectedItemId\n newData.items[newDraggableId] = {\n ...this.props.data.items[draggableId],\n id: newDraggableId,\n isCopyOnly: false\n };\n }\n } else if (type === GroupListDropType.Group) {\n newData.columns = newResult as TRecordType;\n }\n\n this.props?.onDataChange(newData);\n };\n\n getFirstNonDisabledDestinationIndex = (event: DropResult) => {\n const group = this.props.data.groups[event.destination.droppableId];\n const groupItems = this.getGroupItems(group);\n let destinationIndex = event.destination.index;\n\n while (destinationIndex < groupItems.length && groupItems[destinationIndex].isDisabled) {\n destinationIndex += 1;\n }\n\n return destinationIndex;\n };\n\n getCustomDndContext = memoizeOne(() => {\n return {\n placeholder: this.state.placeholder,\n dropAnimationPos: this.state.dropAnimationPos,\n data: this.props.data,\n configListRef: this.configListRef\n };\n }, () => [this.state.placeholder, this.state.dropAnimationPos, this.props.data]);\n\n render() {\n const customDndContext: ICustomDnDContext = this.getCustomDndContext();\n\n return (\n \n \n \n \n {this.renderColumns(Object.values(this.props.data.columns))}\n \n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(ConfigurationList);","import styled, { css } from \"styled-components/macro\";\nimport { HorizontalLineWithoutBubbles } from \"./ConfigurationList.styles\";\n\nexport const PlaceholderBubble = css`\n content: '';\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${props => props.theme.C_ACT_main};\n position: absolute;\n`;\n\nexport const ItemPlaceholderWrapper = styled.div`\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ItemPlaceholderLine = styled.div`\n ${HorizontalLineWithoutBubbles};\n\n &:before {\n ${PlaceholderBubble};\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n }\n\n &:after {\n ${PlaceholderBubble};\n top: 50%;\n transform: translateY(-50%);\n right: 0;\n }\n`;","import { GroupListDropType } from \"../../enums\";\nimport { ITEM_MARGIN } from \"./ConfigurationList.styles\";\nimport { IPlaceholderPos } from \"./ConfigurationList\";\n\nexport const draggableAttr = \"data-rbd-drag-handle-draggable-id\";\nexport const droppableAttr = \"data-rbd-droppable-id\";\n\nexport const getDragedElement = (draggableId: string) => {\n const domQuery = `[${draggableAttr}='${draggableId}']`;\n const draggedDOM = document.querySelector(domQuery);\n\n return draggedDOM as HTMLElement;\n};\n\nexport const getDroppableElement = (droppableId: string) => {\n const domQuery = `[${droppableAttr}='${droppableId}']`;\n const draggedDOM = document.querySelector(domQuery);\n\n return draggedDOM as HTMLElement;\n};\n\nexport const computePlaceholderPos = (element: HTMLElement, elements: HTMLElement[], index: number, droppableId: string, type: GroupListDropType): IPlaceholderPos => {\n let { clientHeight } = element;\n const { clientWidth }: HTMLElement = (type === GroupListDropType.Item && (element.children?.[0] as HTMLElement)) || element;\n const nodeStyle = window.getComputedStyle(element);\n const paddingTop = parseFloat(nodeStyle.paddingTop);\n const paddingBottom = parseFloat(nodeStyle.paddingBottom);\n\n clientHeight -= (paddingTop + paddingBottom);\n\n const clientY =\n paddingTop +\n elements.slice(0, index)\n .reduce((total: number, curr: HTMLElement) => {\n const style = window.getComputedStyle(curr);\n const marginBottom = parseFloat(style.marginBottom);\n return total + curr.clientHeight + marginBottom;\n }, 0);\n const clientX = type === GroupListDropType.Item ? ITEM_MARGIN : 0;\n\n return {\n clientHeight,\n clientWidth,\n clientY,\n clientX,\n // store droppableId of the current placeholderPos to prevent placeholder flickering\n // when old placeholderPos was rendered in another group\n droppableId\n };\n};","import { StyledIconButton } from \"@components/button\";\nimport styled from \"styled-components/macro\";\n\nimport { T_PLAIN_big, T_TITLE_2 } from \"../../global.style\";\n\nexport const IconWrapper = styled.div`\n display: flex;\n justify-content: center;\n overflow: hidden;\n width: 100%;\n padding: 54px 0 0;\n`;\n\nexport const StyledHeader = styled.h4`\n ${T_TITLE_2};\n text-align: center;\n margin-bottom: 20px;\n`;\n\nexport const StyledSubtitle = styled.h5`\n ${T_PLAIN_big};\n text-align: center;\n\n & > ${StyledIconButton} {\n position: relative;\n display: inline-block;\n top: 4px;\n margin-left: 6px;\n }\n`;\n\nexport const DialogContentWrapper = styled.div<{\n width: string;\n}>`\n width: ${props => props.width};\n`;\n\nexport const HeaderWrapper = styled.div`\n padding: 16px 19px 24px;\n`;\n\nexport const ContentWrapper = styled.div`\n padding: 0 19px 24px;\n\n &:empty {\n padding: 0;\n }\n`;","import { Button } from \"@components/button\";\nimport Dialog, { IDialogProps } from \"@components/dialog\";\nimport { ConnectedIcon, ConnectionErrorIcon, DisconnectedIcon } from \"@components/icon\";\nimport { TooltipIconInfo } from \"@components/tooltipIcon\";\nimport { StyledTooltipContent } from \"@components/tooltipIcon/TooltipIcon.styles\";\nimport React, { ReactElement } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport TestIds from \"../../testIds\";\nimport {\n ContentWrapper,\n DialogContentWrapper,\n HeaderWrapper,\n IconWrapper,\n StyledHeader,\n StyledSubtitle\n} from \"./ConnectionDialog.styles\";\n\nexport enum ConnectionStatus {\n Disconnected = \"Disconnected\",\n WaitingForConfiguration = \"WaitingForConfiguration\",\n Connected = \"Connected\",\n ConnectionError = \"ConnectionError\",\n WaitingForAllow = \"WaitingForAllow\"\n}\n\nconst ERROR_DIALOG_WIDTH = \"380px\";\nconst BASE_DIALOG_WIDTH = \"338px\";\n\ninterface IProps extends WithTranslation, Pick {\n onDisconnect?: () => void;\n status: ConnectionStatus;\n title?: string;\n subtitle?: string | ReactElement;\n accountName?: string;\n isBusy?: boolean;\n children?: ReactElement;\n preFormContent?: ReactElement;\n tooltip?: string;\n connectedStateIsJustPreview?: boolean;\n width?: string;\n}\n\nconst CONNECTED_ICON_SIZE = \"456px\";\n\nclass ConnectionDialog extends React.Component {\n get title(): string {\n let key = null;\n switch (this.props.status) {\n case ConnectionStatus.WaitingForConfiguration:\n key = \"WaitingForConfiguration\";\n break;\n case ConnectionStatus.WaitingForAllow:\n key = \"WaitingForAllow\";\n break;\n case ConnectionStatus.Disconnected:\n key = \"Disconnected\";\n break;\n case ConnectionStatus.Connected:\n key = \"Connected\";\n break;\n case ConnectionStatus.ConnectionError:\n key = \"ConnectionError\";\n break;\n }\n return key ? this.props.t(`ConnectionDialog:${key}`) : null;\n }\n\n get subTitle(): string | ReactElement {\n switch (this.props.status) {\n case ConnectionStatus.WaitingForAllow:\n return <>{this.props.t(\"ConnectionDialog:AllowSubtitle\")} {this.props.accountName}.;\n case ConnectionStatus.Disconnected:\n return <>{this.props.t(\"ConnectionDialog:DisconnectedSubtitlePre\")} \n {this.props.accountName} {this.props.t(\"ConnectionDialog:DisconnectedSubtitlePost\")};\n case ConnectionStatus.WaitingForConfiguration:\n return <>{this.props.t(\"ConnectionDialog:WaitingForConfigurationSubtitlePre\")} \n {this.props.accountName} {this.props.t(\"ConnectionDialog:WaitingForConfigurationSubtitlePost\")};\n case ConnectionStatus.Connected:\n return <>{this.props.t(\"ConnectionDialog:ConnectedSubtitlePre\")} \n {this.props.accountName} {this.props.t(\"ConnectionDialog:ConnectedSubtitlePost\")};\n case ConnectionStatus.ConnectionError:\n return this.props.t(\"ConnectionDialog:ConnectionErrorSubtitle\");\n }\n }\n\n renderIcon() {\n switch (this.props.status) {\n case ConnectionStatus.WaitingForAllow:\n case ConnectionStatus.Disconnected:\n return ;\n case ConnectionStatus.Connected:\n case ConnectionStatus.WaitingForConfiguration:\n return ;\n case ConnectionStatus.ConnectionError:\n return ;\n default:\n return null;\n }\n }\n\n getConfirmButtonText = () => {\n switch (this.props.status) {\n case ConnectionStatus.Connected:\n return this.props.connectedStateIsJustPreview ? this.props.t(\"Common:General.Close\") : this.props.t(\"Common:General.Save\");\n case ConnectionStatus.ConnectionError:\n return this.props.t(\"ConnectionDialog:TryAgain\");\n case ConnectionStatus.WaitingForAllow:\n return this.props.t(\"Common:General:Continue\");\n case ConnectionStatus.WaitingForConfiguration:\n return this.props.t(\"ConnectionDialog:Finish\");\n case ConnectionStatus.Disconnected:\n default:\n return this.props.t(\"ConnectionDialog:Connect\");\n }\n };\n\n get isPreview() {\n return this.props.status === ConnectionStatus.Connected && this.props.connectedStateIsJustPreview;\n }\n\n handleConfirm = () => {\n if (this.isPreview) {\n this.props.onClose();\n } else {\n this.props.onConfirm();\n }\n };\n\n renderFooter() {\n return (\n <>\n {!this.isPreview && }\n {[ConnectionStatus.Connected, ConnectionStatus.ConnectionError].includes(this.props.status) && !!this.props.onDisconnect &&\n }\n \n \n );\n }\n\n render() {\n if (!this.props.tReady) {\n return null;\n }\n\n const defaultDialogWidth = this.props.status === ConnectionStatus.ConnectionError && !!this.props.onDisconnect ? ERROR_DIALOG_WIDTH : BASE_DIALOG_WIDTH;\n const dialogWidth = this.props.width ?? defaultDialogWidth;\n return (\n \n \n \n {this.renderIcon()}\n \n \n \n {this.props.title ?? this.title}\n \n \n {this.props.subtitle ?? this.subTitle}\n {!this.props.isBusy && this.props.tooltip && (\n \n {this.props.tooltip}\n \n )}\n \n \n \n {this.props.children}\n \n \n \n );\n }\n}\n\nexport default withTranslation([\"ConnectionDialog\", \"Common\"])(ConnectionDialog);","import { debounce } from \"lodash\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\n\ninterface IProps {\n onResize: (entries: readonly ResizeObserverEntry[]) => void;\n includeWindowResize?: boolean;\n}\n\nconst StyledResizeObserver = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n`;\n\nexport default class CustomResizeObserver extends React.PureComponent {\n resizeObserver: ResizeObserver;\n divRef = React.createRef();\n\n constructor(props: IProps) {\n super(props);\n this.resizeObserver = new ResizeObserver(this.handleResizeObserverEvent);\n }\n\n componentDidMount() {\n this.observeElement();\n if (this.props.includeWindowResize) {\n window.addEventListener(\"resize\", this.handleResize);\n }\n }\n\n observeElement = (): void => {\n this.resizeObserver.observe(this.divRef.current);\n };\n\n componentWillUnmount() {\n this.resizeObserver.disconnect();\n window.removeEventListener(\"resize\", this.handleResize);\n }\n\n handleResize = (): void => {\n this.props.onResize?.([]);\n };\n\n // use debounce to prevent (warning) errors\n // https://stackoverflow.com/a/77680580/3352544\n handleResizeObserverEvent = debounce((entries: ResizeObserverEntry[]): void => {\n this.props.onResize?.(entries);\n });\n\n render(): React.ReactNode {\n // ref passed from parent is not going to get propagated automatically,\n // only if the parent gets rerendered, which doesn't have to always happen\n // => render div here to observe instead\n // => one extra div, but easier to use component than having to handle all the events everytime\n return ;\n }\n}","import { ellipsis } from \"polished\";\nimport GridLayout from \"react-grid-layout\";\nimport styled, { css, FlattenSimpleInterpolation } from \"styled-components/macro\";\n\nimport {\n getCustomizedDashedBorderBackground,\n LocalStackOrder,\n T_TITLE_3_normal,\n T_TITLE_4_NORMAL\n} from \"../../global.style\";\nimport { PropsWithTheme, Theme } from \"../../theme\";\nimport { IconButton } from \"../button\";\nimport { TooltipIconInfo } from \"../tooltipIcon\";\nimport { GridGap, GridTileSize } from \"./Dashboard.types\";\n\nexport const TilePadding = GridGap / 2;\nexport const DashboardTileHorizontalPadding = 20;\nexport const DashboardTileVerticalPadding = 16;\nexport const DashboardTileRadius = 30;\nexport const DashboardTileRadiusPx = `${DashboardTileRadius}px`;\n\nexport const StyledDashboard = styled.div`\n display: block;\n position: relative;\n margin: -${TilePadding}px;\n width: calc(100% + ${2 * TilePadding}px);\n`;\n\nexport const StyledGridLayout = styled(GridLayout)<{ $showGrid?: boolean, width: number }>`\n ${props => props.$showGrid && css`\n ${props => getCustomizedDashedBorderBackground(props.theme, {\n rx: DashboardTileRadius,\n borderColor: \"C_CUST_DASHBOARD_TILE_BORDER\",\n borderOpacity: props.theme[\"C_CUST_DASHBOARD_TILE_BORDER_OPACITY\"],\n backgroundColor: \"C_CUST_DASHBOARD_TILE_BG\",\n backgroundOpacity: props.theme[\"C_CUST_DASHBOARD_TILE_BG_OPACITY\"],\n w: GridTileSize, h: GridTileSize,\n padding: TilePadding + 1\n })};\n background-size: ${GridTileSize}px ${GridTileSize}px;\n `}\n\n max-width: ${props => props.width}px;\n position: relative;\n\n .react-grid-placeholder {\n opacity: 1;\n box-shadow: none;\n position: relative;\n background-color: transparent;\n z-index: 0;\n\n &::after {\n content: \"\";\n position: absolute;\n top: ${TilePadding}px;\n bottom: ${TilePadding}px;\n left: ${TilePadding}px;\n right: ${TilePadding}px;\n border-radius: ${DashboardTileRadiusPx};\n\n background-size: 100% 100%;\n ${props => getCustomizedDashedBorderBackground(props.theme, {\n rx: DashboardTileRadius,\n borderColor: \"C_DASHBOARD_TILE_PLACEHOLDER_BORDER\",\n backgroundColor: \"C_DASHBOARD_TILE_PLACEHOLDER_BG\",\n // when rendered as 100%, it's scaled differently, so make the stroke bigger...\n strokeWidth: 4,\n // ...change also the dashArray, because the bolder stroke makes the dashArray look different because of the line caps\n dashArray: [2, 8]\n })};\n }\n }\n`;\n\nexport const StyledDashboardTile = styled.div`\n padding: ${TilePadding}px;\n box-shadow: none;\n background-color: transparent;\n`;\n\nexport function getDashboardBoxShadow(props: PropsWithTheme): FlattenSimpleInterpolation {\n return css`\n box-shadow: 0 0 18px 0 rgba(0, 0, 0, ${props.theme.dashboard_tile_shadow_opacity});\n `;\n}\n\nexport const LinkStyled = styled.a<{ $isEdit: boolean }>`\n border-radius: ${DashboardTileRadiusPx};\n\n ${props => props.$isEdit && css`\n pointer-events: none;\n `}\n`;\n\nexport const StyledDashboardTileBackground = styled.div<{\n $backgroundColor?: keyof Theme;\n $isLoading?: boolean;\n $overflowed?: boolean;\n $inEditMode?: boolean;\n $hideBackground?: boolean;\n $cursor?: \"pointer\" | \"inherit\";\n}>`\n height: 100%;\n padding: ${DashboardTileVerticalPadding}px ${DashboardTileHorizontalPadding}px;\n\n ${props => !props.$hideBackground && css`\n ${getDashboardBoxShadow(props)};\n border-radius: ${DashboardTileRadiusPx};\n background-color: ${props.theme[props.$backgroundColor ?? \"C_BG_menu\"]};\n `};\n position: relative;\n overflow: ${props => props.$overflowed ? \"hidden\" : \"visible\"};\n cursor: ${props => props.$cursor};\n display: flex;\n flex-direction: column;\n \n ${props => props.$inEditMode && css`\n a {\n pointer-events: none;\n }\n `}\n\n ${props => props.$isLoading && css`\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n background-color: ${props.theme.C_ACT_hover_without_opacity};\n opacity: .75;\n z-index: ${LocalStackOrder.Overlay};\n border-radius: ${props.$hideBackground ? 0 : DashboardTileRadiusPx};\n }\n `};\n\n .MI_4L_gradient, .MI_4L_stroke, .MI_4L_main,\n .a, .b, .c, .d, .e, .f, .g, .h, .i, .j, .k {\n // lighter strokes for dashboard icons...\n stroke-width: 1.5px;\n }\n`;\n\nexport const DashboardTileHeading = styled.h3<{ centered?: boolean; small?: boolean; }>`\n ${props => props.small ? T_TITLE_4_NORMAL : T_TITLE_3_normal};\n text-align: ${props => props.centered ? \"center\" : \"left\"};\n`;\n\nexport const TooltipIconInfoStyled = styled(TooltipIconInfo)`\n margin-right: auto;\n margin-left: 4px;\n`;\n\nexport const IconsWrapper = styled.div`\n display: flex;\n width: fit-content;\n flex: 0 0 auto;\n margin-left: auto;\n`;\n\nexport const IconButtonStyled = styled(IconButton)`\n margin-left: 3px;\n`;\n\nexport const StyledDashboardTileHeader = styled.div<{ $addPadding?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n padding: ${props => props.$addPadding && `${DashboardTileVerticalPadding}px ${DashboardTileHorizontalPadding}px`};\n\n ${DashboardTileHeading} {\n ${ellipsis()};\n width: fit-content;\n flex: 0 1 auto;\n }\n`;\n","import { Layout } from \"react-grid-layout\";\nimport { TFunctionResult } from \"i18next\";\nimport { Theme } from \"../../theme\";\nimport React from \"react\";\nimport { OData } from \"@odata/OData\";\nimport { Status } from \"../../enums\";\nimport { LinkProps } from \"react-router-dom\";\nimport { IColumn, IRow } from \"../table\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { TInfoValue } from \"../smart/FieldInfo\";\nimport { IChartTileData } from \"../tiles/chartTile/ChartTile\";\nimport { TChartValueFormatterFn } from \"../charts/Charts.types\";\n\n\nconst GridTileBaseSize = 125;\nexport const GridGap = 32;\nexport const GridTileSize = GridTileBaseSize + GridGap;\n\nexport type TLayout = Layout;\n\nexport type TDashboardTileConfig = Pick;\nexport type TDashboardLayout = TLayout[];\n\n/**\n * TileTypes:\n * - Custom - complete custom render with component\n * - Info - text content with simple information, one or more cells with severity indicator\n * - Table - renders table according to definition\n */\nexport enum DashboardTileType {\n Info = \"Info\",\n Custom = \"Custom\",\n Table = \"Table\",\n Link = \"Link\",\n Chart = \"Chart\"\n}\n\nexport interface IDashboardLayoutConfig {\n cols?: number;\n layout?: TDashboardLayout;\n}\n\ninterface ITileSize {\n w: number;\n h: number;\n}\n\nexport interface IDashboardTileComponentProps {\n inEditMode?: boolean;\n info: InfoType;\n}\n\n/**\n * ---- Methods and interfaces to obtain Dashboard Tile data ----\n */\nexport interface IGetTileDataArgs {\n oData: OData;\n context?: IAppContext;\n signal?: AbortSignal;\n}\n\nexport type TGetDataFn = (args: IGetTileDataArgs) => Promise;\nexport type TDataValue = T | TGetDataFn;\n\nfunction isGetDataFn(prop: unknown | TGetDataFn): prop is TGetDataFn {\n return typeof prop === \"function\";\n}\n\nexport function getTileData(prop: TDataValue, args: IGetTileDataArgs): Promise {\n if (isGetDataFn(prop)) {\n return prop(args);\n }\n return Promise.resolve(prop);\n}\n\ntype TInfoTileDataValue = number | string;\n\nexport interface IInfoTileDataCell {\n value: TInfoTileDataValue;\n severity?: Status;\n label?: TFunctionResult;\n unit?: TFunctionResult;\n iconName?: string;\n link?: TInfoValue;\n formatter?: TDashboardInfoTileFormatter;\n size?: number; // number of dashboard base tiles, which it should take, default 1\n}\n\nexport interface ITableTileData {\n rows: IRow[];\n columns: IColumn[];\n}\n\ninterface IInfoTileFormatterOptions {\n\n}\n\nexport type TDashboardInfoTileFormatter = (value: TInfoTileDataValue) => React.ReactNode;\n\n/**\n * ---- Dashboard Tile Definition interfaces\n */\ninterface IDashboardTileCommonInfo {\n // for config rendering\n title: string;\n subtitle?: string;\n tooltip?: string;\n link?: TInfoValue;\n\n type: DashboardTileType;\n size: ITileSize;\n backgroundColor?: keyof Theme;\n isVisible?: TInfoValue;\n // user cannot remove the tile from dashboards by unchecking it in settings\n // used for PurchaseTile\n cannotBeRemovedInSettings?: boolean;\n}\n\nexport interface ICustomTileInfo extends IDashboardTileCommonInfo {\n type: DashboardTileType.Custom;\n component: React.ComponentType;\n}\n\nexport interface IInfoTileInfo extends IDashboardTileCommonInfo {\n type: DashboardTileType.Info;\n infoData: TDataValue;\n formatter?: TDashboardInfoTileFormatter;\n}\n\nexport interface IChartTileInfo extends IDashboardTileCommonInfo {\n type: DashboardTileType.Chart;\n chartData: TDataValue;\n formatter?: TChartValueFormatterFn;\n}\n\nexport interface ITableTileInfo extends IDashboardTileCommonInfo {\n type: DashboardTileType.Table;\n tableData?: TDataValue;\n}\n\nexport interface ILinkTileInfo extends IDashboardTileCommonInfo {\n type: DashboardTileType.Link;\n iconName: string;\n count?: TDataValue;\n}\n\nexport type TDashboardTileInfo = ICustomTileInfo | IInfoTileInfo | ITableTileInfo | ILinkTileInfo | IChartTileInfo;\nexport type TTileDefinition = Record;\n\nexport interface IDashboardGroupDef {\n id: string;\n title: string;\n tiles: Keys[];\n allTiles: Keys[];\n}\n\nexport interface IDashboardDefinition {\n title?: string;\n tileDefinition: TTileDefinition;\n groups: IDashboardGroupDef[];\n isVisible?: TInfoValue;\n}\n","import {\n IDashboardDefinition,\n IDashboardLayoutConfig,\n TDashboardLayout,\n TDashboardTileConfig,\n TDashboardTileInfo,\n TLayout\n} from \"./Dashboard.types\";\nimport { cloneDeep } from \"lodash\";\n\n\nexport function getDashboardTileInfo(definition: IDashboardDefinition, tile: TLayout): TDashboardTileInfo {\n if (definition.tileDefinition.hasOwnProperty(tile.i)) {\n return definition.tileDefinition[tile.i];\n }\n return null;\n}\n\nfunction addTileToMask(mask: boolean[][], tile: TLayout, cols: number): void {\n const _addRow = () => {\n const newRow = Array(cols).fill(false);\n mask.push(newRow);\n };\n\n for (let _y = tile.y; _y < tile.h + tile.y; ++_y) {\n for (let _x = tile.x; _x < tile.w + tile.x; ++_x) {\n while (_y >= mask.length) {\n _addRow();\n }\n mask[_y][_x] = true;\n }\n }\n}\n\nfunction createMaskFromLayout(layout: TDashboardLayout, cols: number): boolean[][] {\n const mask: boolean[][] = [];\n\n layout.forEach(tile => {\n addTileToMask(mask, tile, cols);\n });\n\n return mask;\n}\n\n/**\n * Inserts tile to existing layout, it modifies layout in place\n * @param layout\n * @param cols\n * @param tile\n * @param mask\n */\nexport function insertTileToLayout(layout: TDashboardLayout, cols: number, tile: TDashboardTileConfig, mask?: boolean[][]): void {\n if (!mask) {\n mask = createMaskFromLayout(layout, cols);\n }\n if (tile.w > cols) {\n throw new Error(`Cannot insert tile to layout, it can't fit. (tile width = ${tile.w}, cols = ${cols}`);\n }\n\n const _fits = (tile: TDashboardTileConfig, x: number, y: number): boolean => {\n for (let _y = y; _y < tile.h + y; ++_y) {\n for (let _x = x; _x < tile.w + x; ++_x) {\n if (_y >= mask.length) {\n return x <= cols - tile.w;\n }\n if (_x >= mask[_y].length || mask[_y][_x]) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n const _add = (tile: TDashboardTileConfig, x: number, y: number): void => {\n addTileToMask(mask, { ...tile, x, y }, cols);\n layout.push({ ...tile, x, y });\n };\n\n let x = 0, y = 0;\n while (!_fits(tile, x, y)) {\n // search available space\n ++x;\n if (x >= cols) {\n ++y;\n x = 0;\n }\n }\n _add(tile, x, y);\n}\n\n/**\n * Calculated optimal layout from ordered tile configurations.\n * https://en.wikipedia.org/wiki/Bin_packing_problem\n * https://codeincomplete.com/articles/bin-packing/\n *\n * @param orderedTiles\n * @param cols\n */\nexport function createLayout(orderedTiles: TDashboardTileConfig[], cols: number): IDashboardLayoutConfig {\n const mask = createMaskFromLayout([], cols); // create empty mask\n const layout: TDashboardLayout = [];\n\n orderedTiles.forEach(tile => {\n if (tile.w > cols) {\n cols = tile.w;\n }\n insertTileToLayout(layout, cols, tile, mask);\n });\n\n return { cols, layout };\n}\n\n/**\n * Transforms actual layout to ordered set of tile config, so new layout can be calculated from the current layout.\n *\n * @param layout\n */\nexport function getOrderFromLayout(layout: TDashboardLayout): TDashboardTileConfig[] {\n const sortedLayout = cloneDeep(layout).sort((a, b) => {\n return (a.y === b.y) ? a.x - b.x : a.y - b.y;\n });\n\n return sortedLayout.map(({ i, w, h }) => ({ i, w, h }));\n}\n\n/**\n * returns minimum number of columns of given layout, which is equal to the widest tile\n * @param layout\n */\nexport function getMinCols(layout: TDashboardTileConfig[]): number {\n let minCols = 1;\n layout.forEach(item => {\n if (item.w > minCols) {\n minCols = item.w;\n }\n });\n return minCols;\n}\n\nexport function createTileFromDefinition(id: string, definition: TDashboardTileInfo): TLayout {\n return { i: id, ...definition.size, x: 0, y: 0 };\n}\n\n/**\n * @param def\n * @param availableTiles\n */\nexport function createLayoutFromDefinition(def: IDashboardDefinition, availableTiles: Set): TLayout[] {\n return def.groups\n .reduce((ret, group) => {\n return ret.concat(group.tiles.filter(id => availableTiles.has(id)));\n }, [])\n .map(id => createTileFromDefinition(id, def.tileDefinition[id]));\n}\n","import { isExternalLink } from \"@components/clickable/Clickable.utils\";\nimport CustomResizeObserver from \"@components/customResizeObserver\";\nimport React, { AnchorHTMLAttributes, useCallback, useContext } from \"react\";\nimport { Link, LinkProps } from \"react-router-dom\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Theme } from \"../../theme\";\nimport { enhanceLinkWithDrilldownParams, THistoryLocation } from \"../drillDown/DrillDown.utils\";\nimport { LinkStyled, StyledDashboardTileBackground } from \"./Dashboard.styles\";\n\ninterface IProps extends Partial> {\n inEditMode?: boolean;\n backgroundColor?: keyof Theme;\n className?: string;\n isLoading?: boolean;\n hideBackground?: boolean;\n overflowed?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n onResize?: () => void;\n}\n\nconst DashboardTileBackground: React.FC = (props) => {\n const { inEditMode, backgroundColor, to, onClick, className, onResize, children } = props;\n const context = useContext(AppContext);\n\n const handleDragStart = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n }, []);\n\n const handleClick = useCallback((e) => {\n if (inEditMode) {\n e.preventDefault();\n } else {\n onClick?.(e);\n }\n }, [inEditMode, onClick]);\n\n const handleClickOnBg = onClick && !to;\n\n const content = (\n \n {children}\n {onResize && }\n \n );\n\n if (to) {\n const isExternal = typeof to === \"string\" && isExternalLink(to);\n const element = isExternal ? \"a\" : Link;\n const linkProps: AnchorHTMLAttributes | LinkProps = {};\n if (isExternal) {\n linkProps.href = to;\n linkProps.target = \"_blank\";\n } else {\n (linkProps as LinkProps).to = enhanceLinkWithDrilldownParams(to as THistoryLocation, context);\n }\n\n return (\n \n {content}\n \n );\n }\n\n return content;\n};\n\nexport default DashboardTileBackground;","import React, { useCallback } from \"react\";\nimport {\n DashboardTileHeading,\n IconButtonStyled,\n IconsWrapper,\n StyledDashboardTileHeader,\n TooltipIconInfoStyled\n} from \"./Dashboard.styles\";\nimport { IconSize } from \"../../enums\";\nimport { getIcon } from \"../icon\";\nimport { StyledTooltipContent } from \"../tooltipIcon/TooltipIcon.styles\";\nimport TestIds from \"../../testIds\";\n\nexport interface ITileHeaderIcon {\n id: string;\n label?: string;\n iconName: string;\n isVisible?: boolean;\n isDisabled?: boolean;\n}\n\ninterface IIconProps extends ITileHeaderIcon {\n onClick?: (id: string) => void;\n}\n\nconst DashboardTileHeaderIcon: React.FC = ({ id, label, iconName, isVisible, isDisabled, onClick }) => {\n\n const handleClick = useCallback(() => {\n onClick?.(id);\n }, [onClick, id]);\n\n if (isVisible === false) {\n return null;\n }\n const Icon = getIcon(iconName);\n\n return (\n \n \n \n );\n};\n\ninterface IProps {\n tooltip?: string;\n icons?: ITileHeaderIcon[];\n onHeaderAction?: (id: string) => void;\n addPadding?: boolean;\n small?: boolean;\n className?: string;\n}\n\nconst DashboardTileHeader: React.FC = ({\n className,\n icons,\n tooltip,\n addPadding,\n onHeaderAction,\n small,\n children\n }) => {\n return (\n \n {children}\n {tooltip && (\n \n {tooltip}\n \n )}\n {icons?.length && (\n \n {icons.map(item => (\n \n ))}\n \n )}\n\n \n );\n};\n\nexport default DashboardTileHeader;\n\n","import styled from \"styled-components/macro\";\n\nexport const TableTileTableWrapper = styled.div<{ $isWithoutHeader: boolean; }>`\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n margin-top: 9px;\n`;","import React, { memo, useContext, useEffect, useMemo, useState } from \"react\";\nimport { getTileData, IDashboardTileComponentProps, ITableTileData, ITableTileInfo } from \"../../dashboard\";\nimport TableWithAutoSizedColumns from \"../../table/TableWithAutoSizedColumns\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { withTheme } from \"styled-components/macro\";\nimport { PropsWithTheme } from \"../../../theme\";\nimport { ICustomTableColors } from \"../../table\";\nimport { transparentize } from \"polished\";\nimport { withOData, WithOData } from \"@odata/withOData\";\nimport { TableTileTableWrapper } from \"./TableTile.styles\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport { getInfoValue } from \"../../smart/FieldInfo\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData, PropsWithTheme {\n}\n\nconst TableTile: React.FC = (props) => {\n const context = useContext(AppContext);\n const [data, setData] = useState(null);\n const [isLoading, setLoading] = useState(true);\n const [hasError, setError] = useState(false);\n\n const { t } = useTranslation(\"Home\");\n\n useEffect(() => {\n let mounted = true;\n\n try {\n getTileData(props.info.tableData, {\n oData: props.oData,\n context\n })\n .then((data) => mounted && setData(data))\n .finally(() => mounted && setLoading(false));\n } catch (e) {\n if (mounted) {\n setError(true);\n setData(null);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [props.info.tableData, props.oData, context]);\n\n const customTableColors = useMemo((): ICustomTableColors => {\n return {\n rowBackgroundColor: transparentize(0.7, props.theme.C_ACT_hover_without_opacity),\n rowBorderColor: props.theme.C_BG_menu\n };\n }, [props.theme.C_ACT_hover_without_opacity, props.theme.C_BG_menu]);\n\n const isWithoutHeader = data?.columns && !data.columns.find(col => col.label);\n\n const to = getInfoValue(props.info, \"link\", { context });\n\n return (\n \n {props.info.title}\n \n \n \n \n );\n};\n\nexport default memo(withOData(withTheme(TableTile)));","import React, { memo, useContext, useEffect, useState } from \"react\";\nimport { getTileData, IDashboardTileComponentProps, ILinkTileInfo } from \"../../dashboard\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport {\n BadgeStyled,\n IconHeight,\n IconWidth,\n StyledLinkTile,\n StyledLinkTileTitle,\n StyledLinkTileTitleWrapper,\n} from \"./LinkTile.styles\";\nimport { getIcon } from \"../../icon\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { getInfoValue } from \"../../smart/FieldInfo\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst LinkTile: React.FC = ({ inEditMode, info, oData }) => {\n const context = useContext(AppContext);\n const [count, setCount] = useState(null);\n\n useEffect(() => {\n let mounted = true;\n if (info.count) {\n try {\n getTileData(info.count, { context, oData })\n .then((data) => mounted && setCount(data))\n .catch(() => setCount(null));\n } catch (e) {\n /* Fall silently, just don't show badge */\n if (mounted) {\n setCount(null);\n }\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [context, info.count, oData]);\n\n const to = getInfoValue(info, \"link\", { context });\n const Icon = info.iconName && getIcon(info.iconName);\n\n return (\n \n {Icon && ()}\n \n {info.title}\n \n \n \n );\n};\n\nexport default memo(withOData(LinkTile));","import styled, { css } from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { DashboardTileVerticalPadding } from \"../../dashboard/Dashboard.styles\";\n\nexport const ChartWrapperStyled = styled.div<{ $editMode: boolean }>`\n flex: 1 1 auto;\n width: 100% !important;\n height: 100%;\n margin-top: ${DashboardTileVerticalPadding}px;\n ${props => props.$editMode && css`pointer-events: none`};\n`;\n\nexport const BackgroundStyled = styled(DashboardTileBackground)`\n // Chart legend has it's own little padding, so keep this small\n padding-bottom: 8px;\n`;\n","import { WithOData, withOData } from \"@odata/withOData\";\nimport React, { memo, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { addCompanyIdToUrl } from \"../../../contexts/appContext/AppContext.utils\";\nimport { ChartType } from \"../../charts\";\nimport BarChart, { IBarChartComponentData } from \"../../charts/BarChart\";\nimport DoughnutChart, { IDoughnutChartComponentData } from \"../../charts/DoughnutChart\";\nimport LineChart, { ILineChartComponentData } from \"../../charts/LineChart\";\nimport { getTileData, IChartTileInfo, IDashboardTileComponentProps } from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport { getInfoValue } from \"../../smart/FieldInfo\";\nimport { NoData } from \"../../table/NoData\";\nimport { BackgroundStyled, ChartWrapperStyled } from \"./ChartTile.styles\";\n\ninterface IChartTileTypeRegistry {\n doughnut: IDoughnutChartComponentData;\n bar: IBarChartComponentData;\n line: ILineChartComponentData;\n}\n\ntype ChartTileType = keyof IChartTileTypeRegistry;\n\nexport interface IChartTileData {\n type: Type;\n chartProps: IChartTileTypeRegistry[Type];\n}\n\nfunction getChartComponent(type: T): any {\n switch (type) {\n case ChartType.Doughnut:\n return DoughnutChart;\n case ChartType.Bar:\n return BarChart;\n case ChartType.Line:\n return LineChart;\n default:\n return null;\n }\n}\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst ChartTile: React.FC = ({ inEditMode, info, oData }) => {\n const context = useContext(AppContext);\n const chartWrapper = useRef();\n\n const [tileData, setTileData] = useState(null);\n const [isLoading, setLoading] = useState(true);\n const [hasError, setError] = useState(false);\n const [size, setSize] = useState<{ w: number; h: number; }>(null);\n\n const { t } = useTranslation(\"Home\");\n\n useEffect(() => {\n let mounted = true;\n try {\n getTileData(info.chartData, { context, oData })\n .then((data) => mounted && setTileData(data))\n .finally(() => mounted && setLoading(false));\n } catch (e) {\n if (mounted) {\n setError(true);\n setTileData(null);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [context, info.chartData, oData]);\n\n const calculateSize = useCallback(() => {\n const { height, width } = chartWrapper.current?.getBoundingClientRect() ?? {};\n setSize({ w: width, h: height });\n }, []);\n\n // calculate exact size for the chart\n useEffect(() => {\n calculateSize();\n }, []);\n\n const { type, chartProps } = tileData ?? {};\n const Chart = getChartComponent(type);\n\n const isEmpty = chartProps?.values?.some((v) => {\n if (Array.isArray(v)) {\n return v.length > 0;\n }\n return !!v;\n }) === false;\n const renderChart = !isEmpty && size && Chart;\n\n let content = (\n \n \n {info.title}\n \n \n {isEmpty && ()}\n {renderChart && ()}\n \n \n );\n\n if (info.link && !inEditMode) {\n const to = getInfoValue(info, \"link\", { context });\n\n if (to) {\n content = (\n {content}\n );\n }\n }\n\n return content;\n};\n\nexport default memo(withOData(ChartTile));","import React from \"react\";\nimport { StyledDashboardTile } from \"./Dashboard.styles\";\nimport { DashboardTileType, IDashboardTileComponentProps, TDashboardTileInfo } from \"./Dashboard.types\";\nimport InfoTile from \"../tiles/infoTile/InfoTile\";\nimport TableTile from \"../tiles/tableTile\";\nimport LinkTile from \"../tiles/linkTile\";\nimport ChartTile from \"../tiles/chartTile/ChartTile\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n key: string;\n info: TDashboardTileInfo;\n inEditMode?: boolean;\n}\n\nconst DashboardTile: React.FC = React.forwardRef((props, ref: React.Ref) => {\n const { info, inEditMode, ...passProps } = props;\n\n let content: React.ReactNode;\n let Component: React.ComponentType>;\n\n switch (info.type) {\n case DashboardTileType.Custom:\n Component = info.component;\n break;\n case DashboardTileType.Info:\n Component = InfoTile;\n break;\n case DashboardTileType.Table:\n Component = TableTile;\n break;\n case DashboardTileType.Link:\n Component = LinkTile;\n break;\n case DashboardTileType.Chart:\n Component = ChartTile;\n break;\n // default:\n // content = (\n // \n // {info.title}\n // \n // );\n // break;\n }\n\n if (Component) {\n content = ;\n }\n\n return (\n \n {content}\n \n );\n});\n\nexport default DashboardTile;","import { debounce } from \"lodash\";\nimport React from \"react\";\nimport { ItemCallback } from \"react-grid-layout\";\n\nimport { LayoutStackOrder } from \"../../global.style\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { StyledDashboard, StyledGridLayout } from \"./Dashboard.styles\";\nimport { GridTileSize, IDashboardDefinition, IDashboardLayoutConfig, TDashboardLayout } from \"./Dashboard.types\";\nimport { createLayout, getDashboardTileInfo, getMinCols, getOrderFromLayout } from \"./Dashboard.utils\";\nimport DashboardTile from \"./DashboardTile\";\n\n\ninterface IProps {\n inEditMode: boolean;\n definition: IDashboardDefinition;\n config?: IDashboardLayoutConfig;\n onLayoutConfigChange?: (config: IDashboardLayoutConfig) => void;\n}\n\ninterface IState extends IDashboardLayoutConfig {\n}\n\nexport default class Dashboard extends React.PureComponent {\n\n _ref = React.createRef();\n\n state: IState = {};\n\n componentDidMount() {\n this.recalculate();\n\n document.body.addEventListener(\"mouseup\", this.clearDraggingWrapper);\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (prevProps.config !== this.props.config) {\n this.recalculate();\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener(\"mouseup\", this.clearDraggingWrapper);\n // cleanup DOM\n this._draggingWrapper?.parentElement?.removeChild(this._draggingWrapper);\n }\n\n // wrapper element for currently dragged tile content\n _draggingWrapper: HTMLDivElement = null;\n\n // currently dragged tile element, to which we want to append the dragged tile content back later.\n _draggedTileElement: HTMLElement = null;\n\n // function returns wrapper element in a body to be parent of currently dragged tile,\n // so it's not affected by overflow:hidden/scroll (appended directly to body)\n getDraggingWrapper(): HTMLDivElement {\n if (!this._draggingWrapper) {\n this._draggingWrapper = document.createElement(\"div\");\n this._draggingWrapper.style.position = \"absolute\";\n this._draggingWrapper.style.padding = \"16px\";\n this._draggingWrapper.style.zIndex = LayoutStackOrder.Tooltips.toString();\n document.body.appendChild(this._draggingWrapper);\n }\n return this._draggingWrapper;\n }\n\n clearDraggingWrapper = (): void => {\n if (this._draggedTileElement) {\n const wrapper = this.getDraggingWrapper();\n this._draggedTileElement.appendChild(wrapper.childNodes[0]);\n wrapper.style.visibility = \"hidden\";\n this._draggedTileElement = null;\n }\n }\n\n recalculate(): void {\n const { cols, layout } = this.state;\n const { config } = this.props;\n const minCols = getMinCols(config?.layout);\n\n const { max, floor } = Math;\n const width = this._ref.current?.offsetWidth;\n const calcCols = max(minCols, floor(width / GridTileSize));\n\n if (Number.isInteger(calcCols)) {\n if (config.cols === calcCols) {\n // if calculated cols are same as cols from props, use saved layout from props\n this.setState({ ...config });\n } else if (calcCols !== cols || config.layout !== layout) {\n // if number of cols differs, calculate new layout from ordered tiles\n const orderedTiles = config?.layout && getOrderFromLayout(config.layout);\n const newConfig = createLayout(orderedTiles, calcCols);\n this.props.onLayoutConfigChange(newConfig);\n }\n // otherwise, there is no change -> keep current layout\n }\n }\n\n handleLayoutChange = (currentLayout: TDashboardLayout): void => {\n if (this.props.inEditMode) {\n this.props.onLayoutConfigChange({\n cols: this.state.cols,\n layout: currentLayout\n });\n }\n };\n\n handleResize = debounce((): void => {\n this.recalculate();\n }, 100);\n\n handleDragStart: ItemCallback = (layout, oldItem, newItem, placeholder, e, element) => {\n const innerEl = element.childNodes[0] as HTMLElement;\n const { top, left, width, height } = element.getBoundingClientRect();\n const wrapper = this.getDraggingWrapper();\n wrapper.appendChild(innerEl);\n // setup correct size and initial position\n wrapper.style.width = `${width}px`;\n wrapper.style.height = `${height}px`;\n wrapper.style.top = `${e.clientY}px`;\n wrapper.style.left = `${e.clientX}px`;\n // the mouse event occure in the element -> move it relatively to it, so it doesn't jump with the top left corner to mouse position\n const diffTop = e.clientY - top;\n const diffLeft = e.clientX - left;\n wrapper.style.transform = `translate(-${diffLeft}px, -${diffTop}px)`;\n wrapper.style.visibility = \"visible\";\n // element, which is being dragged -> we need to put the dragged element back to it later\n this._draggedTileElement = element;\n }\n\n handleDragStop = (): void => {\n this.clearDraggingWrapper();\n }\n\n handleDrag: ItemCallback = (layout, oldItem, newItem, placeholder, e, element) => {\n const wrapper = this.getDraggingWrapper();\n wrapper.style.top = `${e.clientY}px`;\n wrapper.style.left = `${e.clientX}px`;\n }\n\n renderGrid(): React.ReactNode {\n if (!this.state?.layout) {\n return null;\n }\n const { cols, layout } = this.state;\n const { definition, inEditMode } = this.props;\n const calcWidth = cols * GridTileSize;\n\n return (\n \n {layout.map(l => (\n \n ))}\n \n );\n }\n\n render() {\n return (\n \n {this.renderGrid()}\n \n \n );\n }\n}\n\n","import React from \"react\";\n\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport Dialog, { IDialogProps } from \"./Dialog\";\n\ninterface IProps extends IDialogProps {\n confirmText?: string;\n cancelText?: string;\n}\n\nexport class ConfirmationDialog extends React.PureComponent {\n render() {\n return (\n

}>\n {this.props.children}\n \n );\n }\n}","import React from \"react\";\n\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport { IDialogProps } from \"./Dialog\";\n\nexport const ConfirmationDialogContext = React.createContext(undefined);\n\nexport interface IConfirmationDialogOptions {\n content: React.ReactNode;\n confirmText?: string;\n onClose?: () => void;\n onConfirm?: () => void;\n dialogProps?: Partial;\n allowCancel?: boolean;\n}\n\nexport interface WithConfirmationDialogContext {\n /** Promise is resolved when the dialog is closed. False for cancel, true for confirmation. */\n open: (args: IConfirmationDialogOptions) => Promise;\n close: () => void;\n getConfirmationPromise: () => Promise;\n isOpened: boolean;\n}\n\ninterface IProps {\n}\n\ninterface IState {\n isOpened: boolean;\n}\n\n// todo use for all dialogs, not just confirmations?\n\n/** Provides API for opening dialog. Don't forget to only open one dialog at a time.\n * To handle dialog result either use onClose/onConfirm method which can be passed as options to \"open\" method\n * or await the promise which is returned by the \"open\" method and resolves in either true (confirmed) or close (canceled).*/\nexport default class ConfirmationDialogProvider extends React.Component {\n state: IState = {\n isOpened: false\n };\n\n dialogOptions: IConfirmationDialogOptions = null;\n\n confirmationPromise: Promise;\n fnConfirmationPromiseResolve: (confirmed: boolean) => void;\n\n getConfirmationDialogContext = memoizeOne(\n (): WithConfirmationDialogContext => {\n return {\n open: this.open,\n close: this.close,\n getConfirmationPromise: this.getConfirmationPromise,\n isOpened: this.state.isOpened\n };\n }\n , () => [this.state.isOpened]);\n\n open = (args: IConfirmationDialogOptions): Promise => {\n // we need to wait for confirmation from user\n // this promise is returned from the \"open\" method, so that the caller can wait until the dialog is closed\n // to resolve the promise from outside its context, we need to store it in \"fnConfirmationPromiseResolve\"\n // which can then be called from dialog close handler methods\n this.confirmationPromise = new Promise((resolve) => {\n this.fnConfirmationPromiseResolve = resolve;\n });\n\n this.dialogOptions = args;\n\n this.setState({\n isOpened: true\n });\n\n return this.confirmationPromise;\n };\n\n close = (): void => {\n this.dialogOptions = null;\n this.confirmationPromise = null;\n this.fnConfirmationPromiseResolve = null;\n\n this.setState({\n isOpened: false\n });\n };\n\n getConfirmationPromise = (): Promise => {\n return this.confirmationPromise;\n };\n\n handleConfirm = (): void => {\n this.fnConfirmationPromiseResolve(true);\n this.dialogOptions?.onConfirm?.();\n\n this.close();\n };\n\n handleClose = ():void => {\n this.fnConfirmationPromiseResolve(false);\n this.dialogOptions?.onClose?.();\n\n this.close();\n };\n\n renderConfirmationDialog = (): React.ReactElement => {\n return (\n \n {this.dialogOptions?.content}\n \n );\n };\n\n render = () => {\n return (\n \n {this.state.isOpened && this.renderConfirmationDialog()}\n {this.props.children}\n \n );\n };\n}\n\n","import styled, { css } from \"styled-components/macro\";\nimport { LayoutStackOrder, LocalStackOrder, T_PLAIN_big } from \"../../global.style\";\nimport { IconButton } from \"../button\";\nimport { StyledView, VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport { ShellBarWidth } from \"../../views/main/Main.utils\";\nimport {\n ItemIndex,\n LineNumbersWrapper,\n OrderBackground,\n StyledSortableList\n} from \"../sortableList/SortableList.styles\";\nimport { StyledFastEntryList } from \"../fastEntry/FastEntryList.styles\";\n\ninterface IIsEditableWindow {\n _isEditableWindow?: boolean;\n}\n\nexport const DIALOG_PADDING_VAL = \"19px\";\n// 19px default padding - 12px padding on footer\nexport const DIALOG_BOTTOM_PADDING_VAL = \"7px\";\nexport const DIALOG_PADDING = `${DIALOG_PADDING_VAL} ${DIALOG_PADDING_VAL} ${DIALOG_BOTTOM_PADDING_VAL}`;\nexport const MIN_DIALOG_WIDTH = \"278px\";\n\nexport const Header = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 13px;\n border-bottom: ${props => `1px solid ${props.theme.C_FORM_GROUP_HEADER_LINE}`}\n`;\n\nexport const HeaderCustomContent = styled.div`\n position: absolute;\n left: 14px;\n`;\n\nexport const EditableWindowCloseIcon = styled(IconButton)`\n position: absolute;\n top: -1px;\n left: -1px;\n z-index: ${LocalStackOrder.AboveOverlay};\n background: ${props => `linear-gradient(135deg, ${props.theme.C_ACT_der} 0%, ${props.theme.C_ACT_der} 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,0) 100%)`};\n padding: 4px 28px 28px 4px;\n border-radius: 0 0 100% 0;\n`;\n\nexport const DragIconWrapper = styled.div`\n display: none;\n position: absolute;\n right: 0;\n top: 0;\n\n cursor: pointer;\n`;\n\nexport const Body = styled.div`\n display: inline-block;\n max-width: ${props => props.isConfirmation ? \"400px\" : \"100%\"};\n min-width: 100%;\n max-height: 100%;\n height: 100%;\n padding: ${props => props.withoutPadding ? \"0\" : props.isConfirmation ? `39px ${DIALOG_PADDING_VAL} 27px` : DIALOG_PADDING};\n flex-grow: 1;\n overflow: ${props => props.disableScroll ? \"initial\" : \"auto\"};\n ${props => props.isConfirmation && css`\n text-align: center;\n ${T_PLAIN_big};\n // so that we can use \"\\\\n\" in translations\n white-space: pre-wrap;\n `};\n\n ${props => props._isEditableWindow && css`\n padding: 0;\n width: 100%;\n position: relative;\n z-index: ${LocalStackOrder.Base};\n `};\n\n ${props => !props._isEditableWindow && css`\n & ${StyledView} ${OrderBackground} { // readonly form in dialog\n width: ${DIALOG_PADDING_VAL};\n margin-left: ${DIALOG_PADDING_VAL}; // beat inline styles in smartfastentrylist which is not so smart to know he's in dialog\n & > ${ItemIndex} {\n left: -7px;\n }\n }\n\n & ${StyledView} ${StyledFastEntryList} {\n left: 0;\n\n &:has(${OrderBackground}) {\n margin-left: -${DIALOG_PADDING_VAL};\n }\n\n & > ${LineNumbersWrapper} ${OrderBackground} {\n width: ${DIALOG_PADDING_VAL};\n margin-left: 0;\n\n & > ${ItemIndex} {\n left: -7px;\n }\n\n & + ${StyledSortableList} {\n left: ${DIALOG_PADDING_VAL};\n width: calc(100% - ${DIALOG_PADDING_VAL});\n }\n }\n }\n `}\n`;\n\nexport const ModalBackground = styled.div`\n background-color: rgba(0, 0, 0, 0.5);\n position: fixed;\n height: 100%;\n width: ${props => props.ignoreShellPadding ? \"100%\" : `calc(100vw - ${ShellBarWidth})`};\n top: 0;\n left: ${props => props.ignoreShellPadding ? 0 : ShellBarWidth};\n\n z-index: ${props => props.ignoreShellPadding ? LayoutStackOrder.Tooltips : LayoutStackOrder.Modal};\n padding: ${VIEW_PADDING_VALUE}px;\n\n ${props => props._isEditableWindow && css`\n backdrop-filter: blur(4px); // todo: Firefox doesn't support this\n background-color: transparent;\n padding: 61px;\n `};\n\n ${props => props.centered && css`\n display: flex;\n align-items: center;\n justify-content: center;\n `}\n`;\n\ninterface IStyledDialog extends IIsEditableWindow {\n _width: string;\n _height: string;\n _minWidth?: string;\n _minHeight?: string;\n _draggable?: boolean;\n}\n\n\nexport const StyledDialog = styled.div`\n max-width: 100%;\n max-height: 100%;\n min-width: ${props => props._minWidth ?? MIN_DIALOG_WIDTH};\n min-height: ${props => props._minHeight ?? \"150px\"};\n width: ${props => props._width ?? \"auto\"};\n height: ${props => props._height ?? \"auto\"};\n background-color: ${props => props.theme.C_BG_floorplan};\n display: inline-flex;\n flex-direction: column;\n border-radius: 3px;\n box-shadow: 0 0 12.7px 0.3px rgba(0, 0, 0, 0.15);\n outline: none;\n\n ${props => props._isEditableWindow && css`\n border: 3px solid ${props.theme.C_ACT_der};\n border-radius: 5px;\n `}\n\n ${props => props._draggable && css`\n &:hover ${DragIconWrapper} {\n display: block;\n }\n `}\n`;\n\nexport const Title = styled.div`\n ${T_PLAIN_big};\n`;\n\nexport const Footer = styled.div<{ justify?: string; }>`\n display: flex;\n justify-content: ${props => props.justify ?? \"flex-end\"};\n padding: 12px 19px;\n flex-shrink: 0;\n justify-self: flex-end;\n\n & > * {\n // get footer content over Resize icon\n z-index: ${LocalStackOrder.AboveContent};\n }\n`;\n\nexport const DialogSeparatorLine = styled.div`\n position: relative;\n height: calc(100% - (${DIALOG_PADDING_VAL} + ${DIALOG_BOTTOM_PADDING_VAL}));\n top: ${DIALOG_PADDING_VAL};\n width: 2px;\n background-color: ${props => props.theme.C_FORM_GROUP_HEADER_LINE};\n flex: 0 0 auto;\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 (Object.prototype.hasOwnProperty.call(b, 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';\nvar rowSizeBase = {\n width: '100%',\n height: '10px',\n top: '0px',\n left: '0px',\n cursor: 'row-resize',\n};\nvar colSizeBase = {\n width: '10px',\n height: '100%',\n top: '0px',\n left: '0px',\n cursor: 'col-resize',\n};\nvar edgeBase = {\n width: '20px',\n height: '20px',\n position: 'absolute',\n};\nvar styles = {\n top: __assign(__assign({}, rowSizeBase), { top: '-5px' }),\n right: __assign(__assign({}, colSizeBase), { left: undefined, right: '-5px' }),\n bottom: __assign(__assign({}, rowSizeBase), { top: undefined, bottom: '-5px' }),\n left: __assign(__assign({}, colSizeBase), { left: '-5px' }),\n topRight: __assign(__assign({}, edgeBase), { right: '-10px', top: '-10px', cursor: 'ne-resize' }),\n bottomRight: __assign(__assign({}, edgeBase), { right: '-10px', bottom: '-10px', cursor: 'se-resize' }),\n bottomLeft: __assign(__assign({}, edgeBase), { left: '-10px', bottom: '-10px', cursor: 'sw-resize' }),\n topLeft: __assign(__assign({}, edgeBase), { left: '-10px', top: '-10px', cursor: 'nw-resize' }),\n};\nvar Resizer = /** @class */ (function (_super) {\n __extends(Resizer, _super);\n function Resizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n _this.onTouchStart = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n return _this;\n }\n Resizer.prototype.render = function () {\n return (React.createElement(\"div\", { className: this.props.className || '', style: __assign(__assign({ position: 'absolute', userSelect: 'none' }, styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));\n };\n return Resizer;\n}(React.PureComponent));\nexport { Resizer };\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 (Object.prototype.hasOwnProperty.call(b, 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 { flushSync } from 'react-dom';\nimport { Resizer } from './resizer';\nvar DEFAULT_SIZE = {\n width: 'auto',\n height: 'auto',\n};\nvar clamp = function (n, min, max) { return Math.max(Math.min(n, max), min); };\nvar snap = function (n, size, gridGap) {\n var v = Math.round(n / size);\n return v * size + gridGap * (v - 1);\n};\nvar hasDirection = function (dir, target) {\n return new RegExp(dir, 'i').test(target);\n};\n// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.\nvar isTouchEvent = function (event) {\n return Boolean(event.touches && event.touches.length);\n};\nvar isMouseEvent = function (event) {\n return Boolean((event.clientX || event.clientX === 0) &&\n (event.clientY || event.clientY === 0));\n};\nvar findClosestSnap = function (n, snapArray, snapGap) {\n if (snapGap === void 0) { snapGap = 0; }\n var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);\n var gap = Math.abs(snapArray[closestGapIndex] - n);\n return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;\n};\nvar getStringSize = function (n) {\n n = n.toString();\n if (n === 'auto') {\n return n;\n }\n if (n.endsWith('px')) {\n return n;\n }\n if (n.endsWith('%')) {\n return n;\n }\n if (n.endsWith('vh')) {\n return n;\n }\n if (n.endsWith('vw')) {\n return n;\n }\n if (n.endsWith('vmax')) {\n return n;\n }\n if (n.endsWith('vmin')) {\n return n;\n }\n return n + \"px\";\n};\nvar getPixelSize = function (size, parentSize, innerWidth, innerHeight) {\n if (size && typeof size === 'string') {\n if (size.endsWith('px')) {\n return Number(size.replace('px', ''));\n }\n if (size.endsWith('%')) {\n var ratio = Number(size.replace('%', '')) / 100;\n return parentSize * ratio;\n }\n if (size.endsWith('vw')) {\n var ratio = Number(size.replace('vw', '')) / 100;\n return innerWidth * ratio;\n }\n if (size.endsWith('vh')) {\n var ratio = Number(size.replace('vh', '')) / 100;\n return innerHeight * ratio;\n }\n }\n return size;\n};\nvar calculateNewMax = function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {\n maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);\n maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);\n minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);\n minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);\n return {\n maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),\n maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),\n minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),\n minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),\n };\n};\n/**\n * transform T | [T, T] to [T, T]\n * @param val\n * @returns\n */\n// tslint:disable-next-line\nvar normalizeToPair = function (val) { return (Array.isArray(val) ? val : [val, val]); };\nvar definedProps = [\n 'as',\n 'ref',\n 'style',\n 'className',\n 'grid',\n 'gridGap',\n 'snap',\n 'bounds',\n 'boundsByDirection',\n 'size',\n 'defaultSize',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'lockAspectRatio',\n 'lockAspectRatioExtraWidth',\n 'lockAspectRatioExtraHeight',\n 'enable',\n 'handleStyles',\n 'handleClasses',\n 'handleWrapperStyle',\n 'handleWrapperClass',\n 'children',\n 'onResizeStart',\n 'onResize',\n 'onResizeStop',\n 'handleComponent',\n 'scale',\n 'resizeRatio',\n 'snapGap',\n];\n// HACK: This class is used to calculate % size.\nvar baseClassName = '__resizable_base__';\nvar Resizable = /** @class */ (function (_super) {\n __extends(Resizable, _super);\n function Resizable(props) {\n var _a, _b, _c, _d;\n var _this = _super.call(this, props) || this;\n _this.ratio = 1;\n _this.resizable = null;\n // For parent boundary\n _this.parentLeft = 0;\n _this.parentTop = 0;\n // For boundary\n _this.resizableLeft = 0;\n _this.resizableRight = 0;\n _this.resizableTop = 0;\n _this.resizableBottom = 0;\n // For target boundary\n _this.targetLeft = 0;\n _this.targetTop = 0;\n _this.appendBase = function () {\n if (!_this.resizable || !_this.window) {\n return null;\n }\n var parent = _this.parentNode;\n if (!parent) {\n return null;\n }\n var element = _this.window.document.createElement('div');\n element.style.width = '100%';\n element.style.height = '100%';\n element.style.position = 'absolute';\n element.style.transform = 'scale(0, 0)';\n element.style.left = '0';\n element.style.flex = '0 0 100%';\n if (element.classList) {\n element.classList.add(baseClassName);\n }\n else {\n element.className += baseClassName;\n }\n parent.appendChild(element);\n return element;\n };\n _this.removeBase = function (base) {\n var parent = _this.parentNode;\n if (!parent) {\n return;\n }\n parent.removeChild(base);\n };\n _this.state = {\n isResizing: false,\n width: (_b = (_a = _this.propsSize) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 'auto',\n height: (_d = (_c = _this.propsSize) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 'auto',\n direction: 'right',\n original: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n backgroundStyle: {\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0)',\n cursor: 'auto',\n opacity: 0,\n position: 'fixed',\n zIndex: 9999,\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n },\n flexBasis: undefined,\n };\n _this.onResizeStart = _this.onResizeStart.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n return _this;\n }\n Object.defineProperty(Resizable.prototype, \"parentNode\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n return this.resizable.parentNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"window\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n if (!this.resizable.ownerDocument) {\n return null;\n }\n return this.resizable.ownerDocument.defaultView;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"propsSize\", {\n get: function () {\n return this.props.size || this.props.defaultSize || DEFAULT_SIZE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"size\", {\n get: function () {\n var width = 0;\n var height = 0;\n if (this.resizable && this.window) {\n var orgWidth = this.resizable.offsetWidth;\n var orgHeight = this.resizable.offsetHeight;\n // HACK: Set position `relative` to get parent size.\n // This is because when re-resizable set `absolute`, I can not get base width correctly.\n var orgPosition = this.resizable.style.position;\n if (orgPosition !== 'relative') {\n this.resizable.style.position = 'relative';\n }\n // INFO: Use original width or height if set auto.\n width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n // Restore original position\n this.resizable.style.position = orgPosition;\n }\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"sizeStyle\", {\n get: function () {\n var _this = this;\n var size = this.props.size;\n var getSize = function (key) {\n var _a;\n if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {\n return 'auto';\n }\n if (_this.propsSize && _this.propsSize[key] && ((_a = _this.propsSize[key]) === null || _a === void 0 ? void 0 : _a.toString().endsWith('%'))) {\n if (_this.state[key].toString().endsWith('%')) {\n return _this.state[key].toString();\n }\n var parentSize = _this.getParentSize();\n var value = Number(_this.state[key].toString().replace('px', ''));\n var percent = (value / parentSize[key]) * 100;\n return percent + \"%\";\n }\n return getStringSize(_this.state[key]);\n };\n var width = size && typeof size.width !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.width)\n : getSize('width');\n var height = size && typeof size.height !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.height)\n : getSize('height');\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Resizable.prototype.getParentSize = function () {\n if (!this.parentNode) {\n if (!this.window) {\n return { width: 0, height: 0 };\n }\n return { width: this.window.innerWidth, height: this.window.innerHeight };\n }\n var base = this.appendBase();\n if (!base) {\n return { width: 0, height: 0 };\n }\n // INFO: To calculate parent width with flex layout\n var wrapChanged = false;\n var wrap = this.parentNode.style.flexWrap;\n if (wrap !== 'wrap') {\n wrapChanged = true;\n this.parentNode.style.flexWrap = 'wrap';\n // HACK: Use relative to get parent padding size\n }\n base.style.position = 'relative';\n base.style.minWidth = '100%';\n base.style.minHeight = '100%';\n var size = {\n width: base.offsetWidth,\n height: base.offsetHeight,\n };\n if (wrapChanged) {\n this.parentNode.style.flexWrap = wrap;\n }\n this.removeBase(base);\n return size;\n };\n Resizable.prototype.bindEvents = function () {\n if (this.window) {\n this.window.addEventListener('mouseup', this.onMouseUp);\n this.window.addEventListener('mousemove', this.onMouseMove);\n this.window.addEventListener('mouseleave', this.onMouseUp);\n this.window.addEventListener('touchmove', this.onMouseMove, {\n capture: true,\n passive: false,\n });\n this.window.addEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.unbindEvents = function () {\n if (this.window) {\n this.window.removeEventListener('mouseup', this.onMouseUp);\n this.window.removeEventListener('mousemove', this.onMouseMove);\n this.window.removeEventListener('mouseleave', this.onMouseUp);\n this.window.removeEventListener('touchmove', this.onMouseMove, true);\n this.window.removeEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.componentDidMount = function () {\n if (!this.resizable || !this.window) {\n return;\n }\n var computedStyle = this.window.getComputedStyle(this.resizable);\n this.setState({\n width: this.state.width || this.size.width,\n height: this.state.height || this.size.height,\n flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,\n });\n };\n Resizable.prototype.componentWillUnmount = function () {\n if (this.window) {\n this.unbindEvents();\n }\n };\n Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {\n var propsSize = this.propsSize && this.propsSize[kind];\n return this.state[kind] === 'auto' &&\n this.state.original[kind] === newSize &&\n (typeof propsSize === 'undefined' || propsSize === 'auto')\n ? 'auto'\n : newSize;\n };\n Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {\n var boundsByDirection = this.props.boundsByDirection;\n var direction = this.state.direction;\n var widthByDirection = boundsByDirection && hasDirection('left', direction);\n var heightByDirection = boundsByDirection && hasDirection('top', direction);\n var boundWidth;\n var boundHeight;\n if (this.props.bounds === 'parent') {\n var parent_1 = this.parentNode;\n if (parent_1) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.parentLeft\n : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.parentTop\n : parent_1.offsetHeight + (this.parentTop - this.resizableTop);\n }\n }\n else if (this.props.bounds === 'window') {\n if (this.window) {\n boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;\n boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;\n }\n }\n else if (this.props.bounds) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.targetLeft\n : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.targetTop\n : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);\n }\n if (boundWidth && Number.isFinite(boundWidth)) {\n maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n }\n if (boundHeight && Number.isFinite(boundHeight)) {\n maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n }\n return { maxWidth: maxWidth, maxHeight: maxHeight };\n };\n Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {\n var scale = this.props.scale || 1;\n var _a = normalizeToPair(this.props.resizeRatio || 1), resizeRatioX = _a[0], resizeRatioY = _a[1];\n var _b = this.state, direction = _b.direction, original = _b.original;\n var _c = this.props, lockAspectRatio = _c.lockAspectRatio, lockAspectRatioExtraHeight = _c.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _c.lockAspectRatioExtraWidth;\n var newWidth = original.width;\n var newHeight = original.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (hasDirection('right', direction)) {\n newWidth = original.width + ((clientX - original.x) * resizeRatioX) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('left', direction)) {\n newWidth = original.width - ((clientX - original.x) * resizeRatioX) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('bottom', direction)) {\n newHeight = original.height + ((clientY - original.y) * resizeRatioY) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n if (hasDirection('top', direction)) {\n newHeight = original.height - ((clientY - original.y) * resizeRatioY) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {\n var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;\n var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;\n var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;\n var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;\n var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (lockAspectRatio) {\n var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;\n var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;\n var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;\n var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;\n var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n }\n else {\n newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.setBoundingClientRect = function () {\n var adjustedScale = 1 / (this.props.scale || 1);\n // For parent boundary\n if (this.props.bounds === 'parent') {\n var parent_2 = this.parentNode;\n if (parent_2) {\n var parentRect = parent_2.getBoundingClientRect();\n this.parentLeft = parentRect.left * adjustedScale;\n this.parentTop = parentRect.top * adjustedScale;\n }\n }\n // For target(html element) boundary\n if (this.props.bounds && typeof this.props.bounds !== 'string') {\n var targetRect = this.props.bounds.getBoundingClientRect();\n this.targetLeft = targetRect.left * adjustedScale;\n this.targetTop = targetRect.top * adjustedScale;\n }\n // For boundary\n if (this.resizable) {\n var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\n this.resizableLeft = left * adjustedScale;\n this.resizableRight = right * adjustedScale;\n this.resizableTop = top_1 * adjustedScale;\n this.resizableBottom = bottom * adjustedScale;\n }\n };\n Resizable.prototype.onResizeStart = function (event, direction) {\n if (!this.resizable || !this.window) {\n return;\n }\n var clientX = 0;\n var clientY = 0;\n if (event.nativeEvent && isMouseEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.clientX;\n clientY = event.nativeEvent.clientY;\n }\n else if (event.nativeEvent && isTouchEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.touches[0].clientX;\n clientY = event.nativeEvent.touches[0].clientY;\n }\n if (this.props.onResizeStart) {\n if (this.resizable) {\n var startResize = this.props.onResizeStart(event, direction, this.resizable);\n if (startResize === false) {\n return;\n }\n }\n }\n // Fix #168\n if (this.props.size) {\n if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n this.setState({ height: this.props.size.height });\n }\n if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n this.setState({ width: this.props.size.width });\n }\n }\n // For lockAspectRatio case\n this.ratio =\n typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;\n var flexBasis;\n var computedStyle = this.window.getComputedStyle(this.resizable);\n if (computedStyle.flexBasis !== 'auto') {\n var parent_3 = this.parentNode;\n if (parent_3) {\n var dir = this.window.getComputedStyle(parent_3).flexDirection;\n this.flexDir = dir.startsWith('row') ? 'row' : 'column';\n flexBasis = computedStyle.flexBasis;\n }\n }\n // For boundary\n this.setBoundingClientRect();\n this.bindEvents();\n var state = {\n original: {\n x: clientX,\n y: clientY,\n width: this.size.width,\n height: this.size.height,\n },\n isResizing: true,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),\n direction: direction,\n flexBasis: flexBasis,\n };\n this.setState(state);\n };\n Resizable.prototype.onMouseMove = function (event) {\n var _this = this;\n if (!this.state.isResizing || !this.resizable || !this.window) {\n return;\n }\n if (this.window.TouchEvent && isTouchEvent(event)) {\n try {\n event.preventDefault();\n event.stopPropagation();\n }\n catch (e) {\n // Ignore on fail\n }\n }\n var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;\n var clientX = isTouchEvent(event) ? event.touches[0].clientX : event.clientX;\n var clientY = isTouchEvent(event) ? event.touches[0].clientY : event.clientY;\n var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;\n var parentSize = this.getParentSize();\n var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);\n maxWidth = max.maxWidth;\n maxHeight = max.maxHeight;\n minWidth = max.minWidth;\n minHeight = max.minHeight;\n // Calculate new size\n var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;\n // Calculate max size from boundary settings\n var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);\n if (this.props.snap && this.props.snap.x) {\n newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);\n }\n if (this.props.snap && this.props.snap.y) {\n newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);\n }\n // Calculate new size from aspect ratio\n var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });\n newWidth = newSize.newWidth;\n newHeight = newSize.newHeight;\n if (this.props.grid) {\n var newGridWidth = snap(newWidth, this.props.grid[0], this.props.gridGap ? this.props.gridGap[0] : 0);\n var newGridHeight = snap(newHeight, this.props.grid[1], this.props.gridGap ? this.props.gridGap[1] : 0);\n var gap = this.props.snapGap || 0;\n var w = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;\n var h = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;\n newWidth = w;\n newHeight = h;\n }\n var delta = {\n width: newWidth - original.width,\n height: newHeight - original.height,\n };\n if (width && typeof width === 'string') {\n if (width.endsWith('%')) {\n var percent = (newWidth / parentSize.width) * 100;\n newWidth = percent + \"%\";\n }\n else if (width.endsWith('vw')) {\n var vw = (newWidth / this.window.innerWidth) * 100;\n newWidth = vw + \"vw\";\n }\n else if (width.endsWith('vh')) {\n var vh = (newWidth / this.window.innerHeight) * 100;\n newWidth = vh + \"vh\";\n }\n }\n if (height && typeof height === 'string') {\n if (height.endsWith('%')) {\n var percent = (newHeight / parentSize.height) * 100;\n newHeight = percent + \"%\";\n }\n else if (height.endsWith('vw')) {\n var vw = (newHeight / this.window.innerWidth) * 100;\n newHeight = vw + \"vw\";\n }\n else if (height.endsWith('vh')) {\n var vh = (newHeight / this.window.innerHeight) * 100;\n newHeight = vh + \"vh\";\n }\n }\n var newState = {\n width: this.createSizeForCssProperty(newWidth, 'width'),\n height: this.createSizeForCssProperty(newHeight, 'height'),\n };\n if (this.flexDir === 'row') {\n newState.flexBasis = newState.width;\n }\n else if (this.flexDir === 'column') {\n newState.flexBasis = newState.height;\n }\n var widthChanged = this.state.width !== newState.width;\n var heightChanged = this.state.height !== newState.height;\n var flexBaseChanged = this.state.flexBasis !== newState.flexBasis;\n var changed = widthChanged || heightChanged || flexBaseChanged;\n if (changed) {\n // For v18, update state sync\n flushSync(function () {\n _this.setState(newState);\n });\n }\n if (this.props.onResize) {\n if (changed) {\n this.props.onResize(event, direction, this.resizable, delta);\n }\n }\n };\n Resizable.prototype.onMouseUp = function (event) {\n var _a, _b;\n var _c = this.state, isResizing = _c.isResizing, direction = _c.direction, original = _c.original;\n if (!isResizing || !this.resizable) {\n return;\n }\n var delta = {\n width: this.size.width - original.width,\n height: this.size.height - original.height,\n };\n if (this.props.onResizeStop) {\n this.props.onResizeStop(event, direction, this.resizable, delta);\n }\n if (this.props.size) {\n this.setState({ width: (_a = this.props.size.width) !== null && _a !== void 0 ? _a : 'auto', height: (_b = this.props.size.height) !== null && _b !== void 0 ? _b : 'auto' });\n }\n this.unbindEvents();\n this.setState({\n isResizing: false,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: 'auto' }),\n });\n };\n Resizable.prototype.updateSize = function (size) {\n var _a, _b;\n this.setState({ width: (_a = size.width) !== null && _a !== void 0 ? _a : 'auto', height: (_b = size.height) !== null && _b !== void 0 ? _b : 'auto' });\n };\n Resizable.prototype.renderResizer = function () {\n var _this = this;\n var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;\n if (!enable) {\n return null;\n }\n var resizers = Object.keys(enable).map(function (dir) {\n if (enable[dir] !== false) {\n return (React.createElement(Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));\n }\n return null;\n });\n // #93 Wrap the resize box in span (will not break 100% width/height)\n return (React.createElement(\"div\", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));\n };\n Resizable.prototype.render = function () {\n var _this = this;\n var extendsProps = Object.keys(this.props).reduce(function (acc, key) {\n if (definedProps.indexOf(key) !== -1) {\n return acc;\n }\n acc[key] = _this.props[key];\n return acc;\n }, {});\n var style = __assign(__assign(__assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });\n if (this.state.flexBasis) {\n style.flexBasis = this.state.flexBasis;\n }\n var Wrapper = this.props.as || 'div';\n return (React.createElement(Wrapper, __assign({ style: style, className: this.props.className }, extendsProps, { \n // `ref` is after `extendsProps` to ensure this one wins over a version\n // passed in\n ref: function (c) {\n if (c) {\n _this.resizable = c;\n }\n } }),\n this.state.isResizing && React.createElement(\"div\", { style: this.state.backgroundStyle }),\n this.props.children,\n this.renderResizer()));\n };\n Resizable.defaultProps = {\n as: 'div',\n onResizeStart: function () { },\n onResize: function () { },\n onResizeStop: function () { },\n enable: {\n top: true,\n right: true,\n bottom: true,\n left: true,\n topRight: true,\n bottomRight: true,\n bottomLeft: true,\n topLeft: true,\n },\n style: {},\n grid: [1, 1],\n gridGap: [0, 0],\n lockAspectRatio: false,\n lockAspectRatioExtraWidth: 0,\n lockAspectRatioExtraHeight: 0,\n scale: 1,\n resizeRatio: 1,\n snapGap: 0,\n };\n return Resizable;\n}(React.PureComponent));\nexport { Resizable };\n","import { composeRefHandlers, doesElementContainsElement, getFocusableElements, isObjectEmpty } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport KeyboardShortcutsManager from \"@utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport { capitalize } from \"@utils/string\";\nimport { debounce } from \"lodash\";\nimport { Resizable } from \"re-resizable\"; // TODO: External library used just here, wait for some time, if they really want this removed, for now, resizing is just disabled\nimport React from \"react\";\nimport Draggable, { DraggableData, DraggableEvent } from \"react-draggable\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { PortalRootElementProvider } from \"../../contexts/portalRootElement/PortalRootElementProvider\";\nimport { IconSize } from \"../../enums\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { ButtonGroup, IconButton } from \"../button\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { ArrowIcon, CloseIcon, ReorderSmallIcon, ResizeIcon } from \"../icon\";\nimport {\n Body,\n DragIconWrapper,\n EditableWindowCloseIcon,\n Footer,\n Header,\n HeaderCustomContent,\n StyledDialog,\n Title\n} from \"./Dialog.styles\";\nimport ModalBackdrop from \"./ModalBackdrop\";\n\n// context available inside dialog, so that its children can for example close it easily or access its scrollbar\nexport const DialogContext = React.createContext(undefined);\n\nexport interface IDialogContext {\n scrollRef: React.RefObject;\n bodyRef: React.RefObject;\n footerGroupRef: React.RefObject;\n close: () => void;\n setBusy: (busy: boolean) => void;\n isBusy: boolean;\n}\n\nexport interface IDialogProps {\n // onClose is required so that Dialog can always be closed by \"Esc\" key\n onClose: () => void;\n // onConfirm is required, so that Dialog can be confirmed by alt+s,\n // set null if the Dialog is not confirmable (e.g. for isEditableWindow)\n onConfirm: () => void;\n onAfterOpen?: () => void;\n width?: string;\n height?: string;\n minWidth?: string;\n minHeight?: string;\n /** Use if you want to use custom scroll in the content */\n disableScroll?: boolean;\n isEditableWindow?: boolean;\n isOpaqueBusyIndicator?: boolean;\n /** Renders back icon into the headerContent part. Fires onBack on click. */\n hasBackIcon?: boolean;\n onBack?: () => void;\n headerContent?: React.ReactElement;\n title?: string;\n /** Don't apply padding in body section to allow custom padding handling. */\n removePadding?: boolean;\n withoutHeader?: boolean;\n\n aretateWidth?: boolean;\n /** When we need the Dialog to have fixed height from the start. E.g. with PdfViewer inside. Best combined with height='100%' */\n aretateHeight?: boolean;\n bodyRef?: React.Ref;\n /** For special dialogs that are supposed to be fully centered */\n ignoreShellPadding?: boolean;\n className?: string;\n testid?: string;\n}\n\ninterface IProps extends IDialogProps, WithBusyIndicator, WithTranslation {\n footer?: React.ReactElement;\n // don't render button group,\n // parent component will probably render into footer more complex structure and custom button group\n footerWithoutButtonGroup?: boolean;\n footerJustify?: React.CSSProperties[\"justifyContent\"];\n // sometimes, we want to render the dialogs footer from inside its children\n // this prop ensures that the footer wrapper will be rendered,\n // and the children can render the footer inside it via the DialogContext and React.createPortal\n renderFooterForPortal?: boolean;\n isConfirmation?: boolean;\n}\n\ninterface IState {\n x: number;\n y: number;\n // when first rendered, the dialog is supposed to be centered in the browser windowed\n // once it was dragged, the position should stay fixed\n // !! change in specification !!\n // we want dialog to be fixed by default, to prevent it from jumping when its size changes\n isInitial: boolean;\n}\n\nclass Dialog extends React.PureComponent {\n // store active element before opening the dialog\n // restore it when the dialog is closed\n // TODO this doesn't work if the element is rerendered\n _lastActiveElement: HTMLElement;\n _dialogRef = React.createRef();\n _draggableRef = React.createRef();\n _bodyRef = React.createRef();\n _footerGroupRef = React.createRef();\n _dragHandleRef = React.createRef();\n _closeIcon = React.createRef();\n _isSimulatedDrag = false;\n _ignoreResizeEvent = false;\n _unsubscribeKeyboardShortcuts: () => void;\n _onAfterOpenedCalled = false;\n\n static defaultProps = {\n isEditableWindow: false\n };\n\n state = {\n x: 0,\n y: 0,\n isInitial: true\n };\n\n constructor(props: IProps) {\n super(props);\n\n if (props.isOpaqueBusyIndicator) {\n this.props.updateBusyIndicatorSettings({\n isOpaque: true\n });\n }\n }\n\n componentDidMount(): void {\n this._unsubscribeKeyboardShortcuts = KeyboardShortcutsManager.subscribe({\n shortcuts: [KeyboardShortcut.ALT_S],\n callback: this.handleKeyboardShortcut,\n isPrioritized: true\n });\n\n // if the Dialog is busy, the content can still be loading\n // => wait for it to load\n if (!this.props.busy) {\n this.onAfterOpen();\n }\n\n if (this.props.aretateWidth) {\n this.aretate(\"width\");\n }\n\n if (this.props.aretateHeight) {\n this.aretate(\"height\");\n }\n\n if (this.isDraggable) {\n window.addEventListener(\"resize\", this.simulateDragEventDebounced);\n }\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (!this._onAfterOpenedCalled && prevProps.busy && !this.props.busy) {\n this.onAfterOpen();\n }\n if (this.props.aretateWidth !== prevProps.aretateWidth) {\n this.aretate(\"width\");\n }\n if (this.props.aretateHeight !== prevProps.aretateHeight) {\n this.aretate(\"height\");\n }\n }\n\n componentWillUnmount() {\n this._unsubscribeKeyboardShortcuts?.();\n this.onAfterClose();\n\n if (this.isDraggable) {\n window.removeEventListener(\"resize\", this.simulateDragEventDebounced);\n }\n }\n\n get isDraggable(): boolean {\n return !this.props.isEditableWindow;\n }\n\n aretate(prop: \"width\" | \"height\") {\n if (this._dialogRef.current) {\n const capitalized = capitalize(prop) as (\"Height\" | \"Width\");\n const shouldAretate = this.props[`aretate${capitalized}`];\n this._dialogRef.current.resizable.style[prop] = shouldAretate ? `${this._dialogRef.current.resizable[`offset${capitalized}`]}px` : null;\n }\n }\n\n getDialogsFocusableElements = () => {\n // we can't store getFocusableElements results in private variable\n // becasue elements rendered in dialog can change during its lifetime!\n if (!this._dialogRef.current?.resizable) {\n return [];\n }\n const elements = getFocusableElements(this._dialogRef.current.resizable);\n return Array.from(elements);\n };\n\n onAfterOpen = () => {\n this._onAfterOpenedCalled = true;\n // wait for items to be rendered (e.g. SmartField is kinda async)\n setTimeout(() => {\n const focusableElements = this.getDialogsFocusableElements();\n this._lastActiveElement = document.activeElement as HTMLElement;\n\n this.props.onAfterOpen?.();\n // only auto focus on input\n if (focusableElements[0]?.tagName === \"INPUT\") {\n this.focusFocusable(0);\n } else { // otherwise, focus the whole dialog, so that the esc key works for closing\n this._dialogRef.current?.resizable.focus();\n }\n\n if (this.isDraggable) {\n this.fixateCenteredDialog();\n }\n }, 0);\n };\n\n onAfterClose = () => {\n /* When dialog is closed by EnterKey, we need to set focus lazily not to trigger\n the \"Enter\" key event on this._lastActiveElement */\n setTimeout(() => {\n // restore previous focus on dialog close\n this._lastActiveElement?.focus();\n }, 0);\n };\n\n // in case the focus got somehow out of the dialog (or on the dialog parent element)\n // we need to trap it back inside the dialog\n isElementInElements = (element: HTMLElement, elements: Element[]) => {\n return elements.includes(element);\n };\n\n focusFocusable = (index: number) => {\n const focusableElements = this.getDialogsFocusableElements();\n\n (focusableElements[index] as HTMLElement)?.focus();\n };\n\n handleKeyboardShortcut = (shortcut: KeyboardShortcut, event: KeyboardEvent): boolean => {\n if (shortcut === KeyboardShortcut.ALT_S) {\n if (this.props.onConfirm) {\n this.props.onConfirm();\n return true;\n }\n }\n\n return false;\n };\n\n handleTabForward = (event: React.KeyboardEvent) => {\n const focusableElements = this.getDialogsFocusableElements();\n\n if (document.activeElement === focusableElements[focusableElements.length - 1]\n || !this.isElementInElements(document.activeElement as HTMLElement, focusableElements)) {\n event.preventDefault();\n this.focusFocusable(0);\n }\n };\n\n handleTabBackward = (event: React.KeyboardEvent) => {\n const focusableElements = this.getDialogsFocusableElements();\n\n if (document.activeElement === focusableElements[0]\n || !this.isElementInElements(document.activeElement as HTMLElement, focusableElements)) {\n event.preventDefault();\n this.focusFocusable(focusableElements.length - 1);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.defaultPrevented) {\n // Do not trigger action if it's handled inside the dialog\n return;\n }\n switch (event.key) {\n case KeyName.Enter: {\n event.stopPropagation();\n this.props.onConfirm?.();\n break;\n }\n case KeyName.Tab: {\n // only handle focus inside dialog,\n // it can be outside, e.g. in date picker\n if (doesElementContainsElement(this._dialogRef.current?.resizable, document.activeElement) || this._dialogRef.current?.resizable === document.activeElement || document.body === document.activeElement) {\n event.stopPropagation();\n // prevent focus from getting outside of dialog\n if (event.shiftKey) {\n this.handleTabBackward(event);\n } else {\n this.handleTabForward(event);\n }\n }\n break;\n }\n }\n };\n\n handleCloseDialogClick = () => {\n this.props.onClose?.();\n };\n\n centerDialog = () => {\n if (!this._dialogRef.current) {\n return;\n }\n\n const dialogElement = this._dialogRef.current.resizable;\n const element = (dialogElement as HTMLElement);\n const parentStyle = getComputedStyle(element.parentElement);\n const rect = element.getBoundingClientRect();\n const parentRect = element.parentElement.getBoundingClientRect();\n\n this.setState({\n x: (parentRect.width - rect.width) / 2 - parseInt(parentStyle.paddingLeft),\n y: (parentRect.height - rect.height) / 2 - parseInt(parentStyle.paddingTop),\n isInitial: false\n });\n }\n\n fixateCenteredDialog = () => {\n if (!this._dialogRef.current) {\n return;\n }\n\n const dialogElement = this._dialogRef.current.resizable;\n const parentStyle = getComputedStyle((dialogElement as HTMLElement).parentElement);\n const element = (dialogElement as HTMLElement);\n\n this.setState({\n x: element.getBoundingClientRect().x - parseInt(parentStyle.paddingLeft) - parseInt(parentStyle.left),\n y: element.getBoundingClientRect().y - parseInt(parentStyle.paddingTop),\n isInitial: false\n });\n };\n\n handleDragStart = (e: DraggableEvent) => {\n this._isSimulatedDrag = false;\n };\n\n handleDrag = (e: DraggableEvent, ui: DraggableData) => {\n this.setState((state) => (\n {\n x: state.x + ui.deltaX,\n y: state.y + ui.deltaY\n }\n ));\n };\n\n handleResizableResizeStart = () => {\n this._ignoreResizeEvent = true;\n };\n\n handleResizableResizeStop = () => {\n this._ignoreResizeEvent = false;\n };\n\n handleContentResize = () => {\n // only handle resize caused by Dialog content,\n // not caused by user manually resizing the Resizable component\n if (this._ignoreResizeEvent) {\n return;\n }\n\n this.centerDialog();\n\n // prevent Dialog from getting out of bounds when its content gets too big\n this.simulateDragEvent();\n };\n\n // to prevent it from being out of bounds when browser window or its content is resized\n simulateDragEvent = () => {\n if (!this._dragHandleRef.current) {\n return;\n }\n\n this._isSimulatedDrag = true;\n\n const triggerMouseEvent = (element: HTMLElement | Document, eventType: string) => {\n if (element) {\n const mouseEvent = new Event(eventType, { \"bubbles\": true, \"cancelable\": true });\n element.dispatchEvent(mouseEvent);\n }\n };\n\n setTimeout(() => {\n triggerMouseEvent(this._dragHandleRef.current, \"mouseover\");\n triggerMouseEvent(this._dragHandleRef.current, \"mousedown\");\n\n setTimeout(() => {\n triggerMouseEvent(window.document, \"mousemove\");\n triggerMouseEvent(this._dragHandleRef.current, \"mouseup\");\n });\n });\n\n // triggerMouseEvent(this._dragHandleRef.current, \"click\");\n };\n\n // force the Draggable library to recalculate dialog position\n simulateDragEventDebounced = debounce(() => {\n this.simulateDragEvent();\n }, 100);\n\n renderBackIcon = () => {\n return (\n \n \n \n );\n };\n\n getDialogContext = memoizeOne(\n (): IDialogContext => {\n return {\n scrollRef: this._bodyRef,\n bodyRef: this._bodyRef,\n footerGroupRef: this._footerGroupRef,\n close: this.props.onClose,\n setBusy: this.props.setBusy,\n isBusy: this.props.busy\n };\n }\n );\n\n renderDragHandler = (): React.ReactElement => {\n return (\n \n \n \n );\n };\n\n render() {\n const enableResize: any = {};\n\n /*if (this.props.resizable) {\n enableResize[\"bottomRight\"] = true;\n }*/\n\n /*tabindex with positive value is used to prevent focus from getting out of the dialog*/\n /*with tabindex 0, user could tab from browser URL bar into page DOM, outside of the dialog*/\n const passProps = {\n role: \"dialog\",\n \"aria-modal\": true,\n tabIndex: 1,\n _draggable: this.isDraggable,\n _isEditableWindow: this.props.isEditableWindow,\n _minWidth: this.props.minWidth,\n _minHeight: this.props.minHeight\n };\n\n const defaultSize = this.props.isEditableWindow ? \"100%\" : \"auto\";\n\n const shouldRenderHeader = !this.props.withoutHeader && !this.props.isEditableWindow && (!this.props.isConfirmation || this.props.title);\n let dialog = (\n \n }}\n handleStyles={{\n bottomRight: {\n width: IconSize.M,\n height: IconSize.M,\n right: 0,\n bottom: 0\n }\n }}\n defaultSize={{\n width: this.props.width ?? defaultSize,\n height: this.props.height ?? defaultSize\n }}\n ref={this._dialogRef}\n {...passProps}\n data-testid={this.props.testid ?? TestIds.Dialog}\n >\n \n {this.props.busyIndicator}\n {shouldRenderHeader &&\n \n {this.renderDragHandler()}\n {(this.props.headerContent || this.props.hasBackIcon) &&\n \n {this.props.hasBackIcon && this.renderBackIcon()}\n {this.props.headerContent}\n \n }\n {this.props.title}\n \n }\n {!shouldRenderHeader && this.isDraggable &&\n this.renderDragHandler()\n }\n {/*problem with horizontal scrolling and SimpleBar (see BigDialog demo when uncommented)*/}\n {/**/}\n \n {this.props.children}\n \n {/**/}\n {(this.props.footer || this.props.renderFooterForPortal) &&\n
\n {!this.props.footerWithoutButtonGroup ?\n {this.props.footer} :\n this.props.footer\n }\n
\n }\n {/*Close icon should be last in the dialog to gets focus as last*/}\n {this.props.isEditableWindow && \n \n }\n
\n );\n\n if (this.isDraggable) {\n dialog = (\n \n {dialog}\n \n );\n }\n\n return (\n \n \n \n {dialog}\n \n \n \n );\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(withTranslation([\"Common\"])(Dialog));","import React, { useCallback, useContext, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport { AppContext, ContextEvents } from \"../../contexts/appContext/AppContext.types\";\nimport { KeyName } from \"../../keyName\";\nimport { ModalBackground } from \"./Dialog.styles\";\n\ninterface IProps {\n customRootId?: string;\n}\n\nexport class Modal extends React.PureComponent {\n render() {\n const modalRoot = document.getElementById(this.props.customRootId ?? \"modal-root\");\n\n if (modalRoot) {\n return ReactDOM.createPortal(\n this.props.children,\n modalRoot\n );\n } else {\n return this.props.children;\n }\n }\n}\n\ninterface IProps {\n isCentered?: boolean;\n ignoreShellPadding?: boolean;\n customRootId?: string;\n closeOnClick?: boolean;\n isBlurred?: boolean;\n onClose?: () => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n}\n\nconst ModalBackdrop: React.FC = (props) => {\n const { closeOnClick, onClose, onKeyDown, isCentered, isBlurred, children } = props;\n\n const context = useContext(AppContext);\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (event.defaultPrevented) {\n // Do not trigger action if it's handled inside the dialog\n return;\n }\n if (event.key === KeyName.Escape) {\n event.preventDefault();\n onClose?.();\n }\n onKeyDown?.(event);\n }, [onClose, onKeyDown]);\n\n const handleBackdropClick = useCallback(() => {\n if (closeOnClick) {\n onClose?.();\n }\n }, [closeOnClick, onClose]);\n\n useEffect(() => {\n context.eventEmitter?.emit(ContextEvents.ModalToggled, true);\n return () => {\n context.eventEmitter?.emit(ContextEvents.ModalToggled, false);\n };\n }, [context.eventEmitter]);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default ModalBackdrop;\n","import React, { useContext } from \"react\";\n\nimport { ConfirmationDialogContext, WithConfirmationDialogContext } from \"./ConfirmationDialogProvider\";\n\nexport interface WithConfirmationDialog {\n confirmationDialog: WithConfirmationDialogContext\n}\n\nexport const withConfirmationDialog =

(Component: React.ComponentType

): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const confDialogContext = useConfirmationDialog();\n\n return (\n \n );\n }) as any;\n};\n\nexport function useConfirmationDialog(): WithConfirmationDialogContext {\n return useContext(ConfirmationDialogContext);\n}","import { withContextFactory } from \"../../contexts/contexts.utils\";\nimport { DialogContext, IDialogContext } from \"./Dialog\";\n\nexport interface WithDialogContext {\n dialogContext: IDialogContext;\n}\n\nexport const withDialogContext = withContextFactory(DialogContext, \"dialogContext\");\n","import React, { useCallback, useRef, useState } from \"react\";\n\nexport interface WithPromisedComponent {\n promisedComponent: ReturnType;\n}\n\n/** Render component on the fly and wait for the result * */\nexport const withPromisedComponent =

(Component: React.ComponentType

): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const { component, ...rest } = usePromisedComponent();\n\n return (\n <>\n {component}\n \n \n );\n }) as any;\n};\n\nexport function usePromisedComponent() {\n const [component, setComponent] = useState(null);\n const resultPromiseRef = useRef>();\n const promiseResolveFnRef = useRef<(value: T) => void>();\n const open = useCallback(\n (getComponent: (onFinish: (result: R) => void) => React.ReactNode) => {\n const renderedComponent = getComponent((result: R) => {\n promiseResolveFnRef.current(result);\n setComponent(null);\n });\n\n setComponent(renderedComponent);\n\n resultPromiseRef.current = new Promise((resolve) => {\n promiseResolveFnRef.current = resolve;\n });\n\n return resultPromiseRef.current as Promise;\n },\n []);\n const getResultPromise = useCallback(() => {\n return resultPromiseRef.current;\n }, [resultPromiseRef]);\n\n return {\n openComponent: open,\n getResultPromise,\n component\n };\n}","import { TRecordAny, TRecordValue } from \"../../global.types\";\nimport { ICustomBreadCrumb } from \"../breadCrumb\";\nimport { IHistoryState, Model } from \"../../model/Model\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport * as History from \"history\";\nimport { PageViewMode, QueryParam } from \"../../enums\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { ICellValueObject } from \"../table\";\nimport DrillDownLink from \"./DrillDownLink\";\nimport React from \"react\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\nimport { getValue } from \"@utils/general\";\nimport { addCompanyIdToUrl } from \"../../contexts/appContext/AppContext.utils\";\n\nexport const presetFilters = (tableId: string, filters: TRecordAny): void => {\n LocalSettings.set(tableId,\n {\n filters\n }\n );\n};\n\nexport const encodeQueryParam = (param: TRecordAny) => {\n return encodeURIComponent(JSON.stringify(param));\n};\n\nexport type THistoryLocation = History.LocationDescriptor;\n\nexport interface IGetDrillDownParams {\n route: string;\n context: IAppContext;\n storage?: Model;\n filters?: TRecordAny;\n customQueryString?: string;\n customContent?: React.ReactNode;\n companyId?: number;\n}\n\nexport const getDrillDownNavParams = (args: IGetDrillDownParams): THistoryLocation => {\n const selectedMenu = args.context.getSelectedMenu();\n const viewBreadcrumbItem = args.context.getViewBreadcrumbs()?.items?.[0];\n const breadCrumbs: ICustomBreadCrumb[] = [...(args.storage?.initialHistoryState?.breadCrumbs ?? [])];\n\n const currentNavigation: THistoryLocation = {\n pathname: window.location.pathname, // todo: do we need sometimes just: selectedMenu.item.url,\n search: window.location.search,\n state: {\n back: breadCrumbs[breadCrumbs.length - 1]?.to,\n breadCrumbs: breadCrumbs.length > 0 ? [...breadCrumbs] : null\n }\n };\n\n const selectedMenuGroupBreadcrumb: ICustomBreadCrumb = selectedMenu?.group ? {\n // key needs to be unique, because breadcrumbs can be repeated\n key: `${selectedMenu.group.key}-${breadCrumbs.length}`,\n label: selectedMenu.group.title,\n to: selectedMenu.group.url\n } : null;\n const selectedMenuItemBreadcrumb: ICustomBreadCrumb = selectedMenu?.item ? {\n key: `${selectedMenu.item.key}-${breadCrumbs.length}`,\n label: getValue(selectedMenu.item.title),\n to: selectedMenu.item.url\n } : null;\n const currentViewBreadcrumb: ICustomBreadCrumb = viewBreadcrumbItem ? {\n key: `${viewBreadcrumbItem.key}-${breadCrumbs.length}`,\n label: viewBreadcrumbItem.title,\n to: currentNavigation\n } : null;\n const possibleBreadcrumbs = [selectedMenuGroupBreadcrumb, selectedMenuItemBreadcrumb, currentViewBreadcrumb].filter(val => val);\n const lastBreadcrumb = possibleBreadcrumbs.slice(-1)[0];\n const rootBreadcrumbs = possibleBreadcrumbs.slice(0, -1);\n\n // if this is first level navigation, whole breadcrumbs path should be stored in the link\n if (breadCrumbs.length === 0) {\n for (const breadcrumb of rootBreadcrumbs) {\n breadCrumbs.push(breadcrumb);\n }\n }\n\n if (lastBreadcrumb) {\n breadCrumbs.push(lastBreadcrumb);\n }\n\n let query = args.filters ? `?${QueryParam.Filter}=${encodeQueryParam(args.filters)}` : \"\";\n\n if (args.customQueryString) {\n if (query) {\n query += \"&\";\n } else {\n query += \"?\";\n }\n\n query += args.customQueryString;\n }\n\n return {\n pathname: args.route,\n search: query,\n state: {\n back: currentNavigation,\n breadCrumbs\n }\n };\n};\n\nexport const getIntentNavParams = (args: IGetDrillDownParams): THistoryLocation => {\n const params = getDrillDownNavParams(args);\n\n params.search = `?${QueryParam.ViewMode}=${PageViewMode.FormReadOnly}`;\n\n if (args.customQueryString) {\n params.search += `&${args.customQueryString}`;\n }\n\n return params;\n};\n\nexport const getNavLinkComponent = (text: string, args: IGetDrillDownParams, getParams: (args: IGetDrillDownParams) => THistoryLocation): React.ReactElement => {\n const params = getParams(args);\n\n return (\n \n {args.customContent ?? text}\n \n );\n};\n\n/**\n * Enhances link with drilldown params (e.g. with history state to show \"back\" arrow in breadcrumbs),\n * adds companyId to the link\n * @param link\n * @param context\n */\nexport function enhanceLinkWithDrilldownParams(link: T, context: IAppContext): T {\n if (typeof link === \"string\") {\n link = getDrillDownNavParams({ route: link, context }) as T;\n }\n return addCompanyIdToUrl(link, context);\n}\n\n/** Returns drilldown link component */\nexport const getDrillDownLink = (text: string, args: IGetDrillDownParams): React.ReactElement => {\n return getNavLinkComponent(text, args, getDrillDownNavParams);\n};\n\n/** Returns intent link component */\nexport const getIntentLink = (text: string, args: IGetDrillDownParams): React.ReactElement => {\n return getNavLinkComponent(text, args, getIntentNavParams);\n};\n\nexport const getTableLink = (text: string, args: IGetDrillDownParams, getParams: (args: IGetDrillDownParams) => THistoryLocation): ICellValueObject => {\n return {\n tooltip: text,\n value: getNavLinkComponent(text, args, getParams)\n };\n};\n\n/** Returns drilldown link formatted for table */\nexport const getTableDrillDownLink = (text: string, args: IGetDrillDownParams): ICellValueObject => {\n return getTableLink(text, args, getDrillDownNavParams);\n};\n\n/** Returns intent link formatted for table */\nexport const getTableIntentLink = (text: string, args: IGetDrillDownParams): ICellValueObject => {\n return getTableLink(text, args, getIntentNavParams);\n};\n\nexport const getDrillDownFilters = (): TRecordValue => {\n const query = getQueryParameters();\n\n if (!query?.[QueryParam.Filter]) {\n return null;\n }\n\n return JSON.parse(query[QueryParam.Filter] as string);\n};\n\nexport const getDrillDownVariant = (): string => {\n const query = getQueryParameters();\n return query[QueryParam.Variant];\n};\n\n","import React from \"react\";\nimport { THistoryLocation } from \"./DrillDown.utils\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport Clickable from \"../clickable\";\n\ninterface IDrillDownLinkProps {\n id?: string;\n to: THistoryLocation;\n onClick?: (id: string) => void;\n companyId?: number\n}\n\n/** Used in Table to navigate to other routes.\n * Can be combined with util methods \"getDrillDownNavParams\" and \"getIntentNavParams\" */\nexport default class DrillDownLink extends React.Component {\n static contextType = AppContext;\n\n linkRef = React.createRef();\n\n render() {\n return (\n <>\n \n {this.props.children}\n \n \n );\n }\n}\n","import { DrillDownFiltersWrapper } from \"@pages/reports/ReportView.styles\";\nimport React from \"react\";\n\nimport { TableStorage } from \"../../model/TableStorage\";\nimport TestIds from \"../../testIds\";\nimport ReadOnlyGroup from \"../filterBar/ReadOnlyGroup\";\nimport { isVisible } from \"../smart/FieldInfo\";\n\ninterface IProps {\n storage: TableStorage;\n}\n\nclass SmartDrillDownFilters extends React.Component {\n // expects that filter definitions (labels) are already loaded in storage info\n render() {\n const { storage } = this.props;\n const { predefinedFilters } = storage.data;\n\n if (!predefinedFilters) {\n return null;\n }\n\n const filterItems = Object.keys(predefinedFilters)\n .filter(filterName => {\n const bc = storage.data.bindingContext.navigate(filterName);\n const info = storage.getInfo(bc);\n\n return isVisible({ info, storage, bindingContext: bc });\n })\n .map((filterName) => {\n const info = storage.getInfo(storage.data.bindingContext.navigate(filterName));\n\n return {\n label: info.label,\n // value: drillDownFilters[filterName]\n bindingContext: info.bindingContext,\n storage\n };\n });\n\n return (\n \n \n \n );\n }\n}\n\nexport default SmartDrillDownFilters;","import styled, { css } from \"styled-components/macro\";\nimport { T_PLAIN_small } from \"../../global.style\";\n\n\nexport const Row = styled.div`\n display: flex;\n margin-bottom: 5px;\n`;\n\nexport const Level = styled.div<{\n isTop : boolean;\n}>`\n ${T_PLAIN_small};\n word-break: break-all;\n margin-left: ${props => props.isTop? \"0\" : \"25px\"};\n margin-bottom: 5px;\n padding-right: 5px;\n`;\n\nconst TRIANGLE_SIZE = 4;\nconst TriangleBase = css`\n width: 0;\n height: 0;\n cursor: pointer;\n`;\nexport const TriangleDown = styled.div `\n ${TriangleBase};\n\n border-left: ${TRIANGLE_SIZE}px solid transparent;\n border-right: ${TRIANGLE_SIZE}px solid transparent;\n border-top: ${TRIANGLE_SIZE * 2}px solid ${props => props.theme.C_BG_menu};\n`;\n\nexport const TriangleRight = styled.div `\n ${TriangleBase};\n\n border-top: ${TRIANGLE_SIZE}px solid transparent;\n border-left: ${TRIANGLE_SIZE * 2}px solid ${props => props.theme.C_BG_menu};\n border-bottom: ${TRIANGLE_SIZE}px solid transparent;\n`;\n\nexport const CollapseWrapper = styled.div `\n margin-right: 5px;\n margin-top: 4px;\n`;","import React from \"react\";\nimport { TObject } from \"../../global.types\";\nimport { CollapseWrapper, Level, Row, TriangleDown, TriangleRight } from \"./ObjectExplorer.styles\";\nimport { KeyName } from \"../../keyName\";\n\ninterface IProps {\n data: TObject;\n}\n\ninterface IState {\n collapsedKeys: Map;\n}\n\nexport class ObjectExplorer extends React.PureComponent {\n state = {\n collapsedKeys: new Map()\n };\n\n handleKeyDown = (event: React.KeyboardEvent, key: string) => {\n if (event.key === KeyName.Enter || event.key === KeyName.Space) {\n this.expandClick(key);\n }\n };\n\n expandClick = (key: string) => {\n this.setState(({ collapsedKeys }) => {\n const isCollapsed = collapsedKeys.get(key);\n collapsedKeys.set(key, !isCollapsed);\n\n return {\n collapsedKeys: new Map(collapsedKeys)\n };\n });\n };\n\n renderExpandIcon = (key: string) => {\n const isCollapsed = this.state.collapsedKeys.get(key);\n const Triangle = isCollapsed ? : ;\n return (\n {\n this.handleKeyDown(event, key);\n }}>\n {Triangle}\n \n );\n };\n\n renderCollapsedObject = (obj: TObject) => {\n const keys = Object.keys(obj);\n if (keys.length < 4) {\n const text = keys.sort((key1: string, key2: string) => {\n const item1 = obj[key1];\n const item2 = obj[key2];\n\n return typeof item1 === \"object\" && typeof item2 !== \"object\" ? -1 : 1;\n }).map(key => {\n const item = obj[key];\n if (Array.isArray(item)) {\n return `${key}: [...]`;\n }\n\n if (typeof item === \"object\") {\n return `${key}: {...}`;\n }\n\n return `${key}: \"${item?.toString().substring(0, 20)}\"`;\n }).slice(0, 3).join(\", \");\n\n return ` {${text}} `;\n }\n\n return ` {...}`;\n };\n\n renderCollapsedArray = (arr: TObject[]) => {\n const length = arr.length;\n return (\n <>\n {` (${length}) `}\n {arr.map(it => {\n return ` {...} `;\n })}\n \n );\n\n };\n\n getCompleteKey = (parentKey: string, key: string) => {\n return `${parentKey ? `${parentKey}.` : \"\"}${key}`;\n };\n\n renderCollapsed = (obj: TObject | TObject[], parentKey: string, key: string) => {\n const completeKey = this.getCompleteKey(parentKey, key);\n const isTop = parentKey === \"\";\n const isArray = Array.isArray(obj);\n\n return (\n \n \n {this.renderExpandIcon(completeKey)}\n {key}:\n {!isArray && this.renderCollapsedObject(obj)}\n {isArray && this.renderCollapsedArray(obj)}\n \n \n );\n };\n\n\n renderObject = (obj: TObject, parentKey: string): React.ReactNode => {\n const single: string[] = [];\n const isTop = parentKey === \"\";\n\n const objects = Object.keys(obj).map(key => {\n const completeKey = this.getCompleteKey(parentKey, key);\n const isCollapsed = this.state.collapsedKeys.get(completeKey);\n if (isCollapsed) {\n return this.renderCollapsed(obj[key] as TObject | TObject[], parentKey, key);\n }\n\n if (typeof obj[key] === \"object\" && obj[key] !== null) {\n return (\n \n \n {this.renderExpandIcon(completeKey)}\n {key}:\n \n {this.renderObject(obj[key] as TObject, completeKey)}\n \n );\n }\n single.push(key);\n return null;\n });\n\n const singles = single.map(key => {\n return (\n \n {key}: {`\"${obj[key]}\"`}\n \n );\n });\n\n return objects.concat(singles);\n };\n\n render() {\n return this.renderObject(this.props.data, \"\");\n }\n}","import { ScrollBar } from \"@components/scrollBar\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IconSize, Status, TextAlign } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport { WithHideOnBlur, withHideOnBlur } from \"../../HOC/withHideOnBlur\";\nimport { ObjectContent, ObjectWrapper } from \"../alert/Alert.styles\";\nimport { Button, ButtonGroup, IconButton } from \"../button\";\nimport { CheckIcon, CopySimpleIcon, InfoIcon } from \"../icon\";\nimport { ObjectExplorer } from \"../objectExplorer\";\nimport PopperTooltip from \"../popperTooltip/PopperTooltip\";\n\ninterface IProps extends WithHideOnBlur, WithTranslation {\n data: TRecordAny | string;\n size?: string;\n status?: Status;\n isLight?: boolean;\n style?: React.CSSProperties;\n}\n\ninterface IState {\n isCopying: boolean;\n}\n\nclass ErrorDetail extends React.PureComponent {\n tooltipRef = React.createRef();\n buttonRef = React.createRef();\n\n _timeout: ReturnType;\n\n state = {\n isCopying: false\n };\n\n componentDidMount() {\n this.props.setHideOnBlurOptions([this.buttonRef, this.tooltipRef]);\n }\n\n componentWillUnmount() {\n clearTimeout(this._timeout);\n }\n\n showDetail = (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.props.setIsVisible(!this.props.isVisible);\n };\n\n handleCopyClick = () => {\n const text = JSON.stringify(this.props.data);\n navigator.clipboard.writeText(text);\n\n this.setState({\n isCopying: true\n });\n\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => {\n this.setState({ isCopying: false });\n }, 3000);\n };\n\n renderContent = () => {\n const Icon = this.state.isCopying ? : ;\n const text = this.state.isCopying ? i18next.t(\"Components:ErrorDetail.Copied\") : i18next.t(\"Components:ErrorDetail.Copy\");\n const isString = typeof this.props.data === \"string\";\n\n return (\n \n \n \n {isString ? this.props.data : }\n \n \n \n \n {text}\n \n \n \n );\n };\n\n render() {\n return (\n \n {(ref) => {\n return (\n \n \n \n );\n }}\n \n );\n }\n}\n\nexport default withHideOnBlur(withTranslation([\"Components\"])(ErrorDetail));","import styled from \"styled-components/macro\";\n\nimport TestIds from \"../../testIds\";\nimport { ButtonGroup } from \"../button\";\nimport Checkbox from \"../inputs/checkbox\";\nimport { StyledField } from \"../inputs/field/Field.styles\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\n\nexport const REORDER_ICON_MARGIN = 5;\n\ninterface IHasLabel {\n fieldHasLabel?: boolean;\n}\n\nexport const StyledFastEntry = styled.div`\n position: relative;\n display: flex;\n`;\n\nexport const LineWrapper = styled(FieldsWrapper)`\n position: relative;\n \n ${props => props._hideContent && `\n & > div:not([data-testid=${TestIds.ComparisonBorder}]):not([data-testid=${TestIds.AuditTrailLineOrder}]) {\n opacity: 0;\n }\n `}\n`;\n\nexport const LineWrapperComparisonBorder = styled.div`\n position: absolute;\n top: -10px;\n left: -10px;\n width: calc(100% + 21px);\n height: calc(100% + 14px);\n border: 3px dashed ${props => props.theme.C_AUDIT_TRAIL_DIFF};\n border-radius: ${props => props.theme.borderLargeRadius};\n z-index: 180;\n`;\n\nexport const LineOrder = styled.div <{\n _isChangedOrder: boolean;\n}>`\n color: ${props => props._isChangedOrder ? props.theme.C_AUDIT_TRAIL_DIFF : \"#dadada\"};\n font-size: 16px;\n font-weight: bold;\n top: -2px;\n position: absolute;\n left: -24px;\n`;\n\nexport const LastFieldWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n\n ${StyledField} {\n margin-right: 2px;\n }\n`;\n\nexport const IconWrapper = styled.div`\n position: relative;\n flex-shrink: 0;\n cursor: pointer;\n top: 5px;\n margin-bottom: 5px;\n margin-right: ${REORDER_ICON_MARGIN}px;\n height: fit-content;\n\n ${props => props.fieldHasLabel && `\n top: 23px;\n margin-bottom: 23px\n `}\n`;\n\nexport const RightIconButtonGroup = styled(ButtonGroup)`\n display: flex;\n position: relative;\n margin-top: ${props => props.fieldHasLabel ? \"27px\" : \"0\"};\n margin-left: 2px;\n top: -7px;\n`;\n\nexport const CheckboxStyledFastEntry = styled(Checkbox)<{\n fieldHasLabel: boolean;\n isDisabled: boolean;\n}>`\n align-self: flex-start;\n margin-right: 12px;\n margin-left: 8px;\n top: ${props => props.fieldHasLabel ? \"26px\" : \"10px\"};\n opacity: ${props => props.isDisabled ? 0 : 1};\n`;","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { TabIndex } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport React from \"react\";\nimport { DraggableProvidedDragHandleProps } from \"react-beautiful-dnd\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport { IconSize, LabelStatus } from \"../../enums\";\nimport { AuditTrailLineComparison, IAuditTrailData } from \"../../model/Model\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme } from \"../../theme\";\nimport KeyboardShortcutsManager from \"../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { IconButton } from \"../button\";\nimport { CloseIcon, CopySimpleIcon, MoreIcon, ReorderSmallIcon } from \"../icon\";\nimport { ICheckboxChange } from \"../inputs/checkbox\";\nimport { ISharpBorders } from \"../inputs/input/Input.styles\";\nimport IconSelect from \"../inputs/select/IconSelect\";\nimport {\n CheckboxStyledFastEntry,\n IconWrapper,\n LastFieldWrapper,\n LineOrder,\n LineWrapper,\n LineWrapperComparisonBorder,\n RightIconButtonGroup,\n StyledFastEntry\n} from \"./FastEntry.styles\";\n\nexport interface IFastEntryChild {\n isSharpLeft: boolean;\n isSharpRight: boolean;\n}\n\nexport enum FastEntryActionStatus {\n Default = \"Default\",\n Hidden = \"Hidden\"\n}\n\ninterface IProps extends WithTranslation, PropsWithTheme {\n id: number;\n isDisabled?: boolean;\n auditTrailData?: IAuditTrailData;\n hideCloneAction?: boolean;\n hideRemoveAction?: boolean;\n disableCloneAction?: boolean;\n disableRemoveAction?: boolean;\n actionStatus?: FastEntryActionStatus;\n onClone?: (id: number) => void;\n onRemove: (id: number) => void;\n onFocusPreviousItem?: (id: number) => void;\n onFocusNextItem?: (id: number) => void;\n onReorderUp?: (id: number) => void;\n onReorderDown?: (id: number) => void;\n additionalActions?: ISelectItem[];\n onAction?: (id: number, action: string) => void;\n canReorder?: boolean;\n /** Renders checkbox */\n isSelectable?: boolean;\n isSelected?: boolean;\n onSelect?: (id: number, selected: boolean) => void;\n dragHandleProps?: DraggableProvidedDragHandleProps;\n customPreContent?: (id: number) => React.ReactNode;\n style?: React.CSSProperties;\n passRef?: React.Ref;\n}\n\nclass FastEntry extends React.PureComponent {\n static defaultProps: Partial = {\n actionStatus: FastEntryActionStatus.Default\n };\n\n handleClone = () => {\n this.props.onClone?.(this.props.id);\n };\n\n handleRemove = () => {\n this.props.onRemove(this.props.id);\n };\n\n handleFocusPreviousItem = () => {\n this.props.onFocusPreviousItem?.(this.props.id);\n };\n\n handleFocusNextItem = () => {\n this.props.onFocusNextItem?.(this.props.id);\n };\n\n handleReorderUp = () => {\n this.props.onReorderUp?.(this.props.id);\n };\n\n handleReorderDown = () => {\n this.props.onReorderDown?.(this.props.id);\n };\n\n handleAdditionalAction = (e: ISelectionChangeArgs) => {\n this.props.onAction?.(this.props.id, e.value as string);\n };\n\n handleShortcut = (event: React.KeyboardEvent, callback: (...args: any[]) => any) => {\n event.stopPropagation();\n event.preventDefault();\n callback();\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n switch (true) {\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_X):\n if (!this.props.hideRemoveAction && !this.isRemoveDisabled) {\n this.handleShortcut(event, this.handleRemove);\n }\n return;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_C):\n if (!this.props.hideCloneAction && !this.isCloneDisabled) {\n this.handleShortcut(event, this.handleClone);\n }\n return;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_UP):\n this.handleShortcut(event, this.handleFocusPreviousItem);\n return;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_DOWN):\n this.handleShortcut(event, this.handleFocusNextItem);\n return;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_SHIFT_UP):\n if (this.canReorder) {\n this.handleShortcut(event, this.handleReorderUp);\n }\n return;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_SHIFT_DOWN):\n if (this.canReorder) {\n this.handleShortcut(event, this.handleReorderDown);\n }\n return;\n }\n\n };\n\n isComparison = () => {\n return this.props.auditTrailData;\n };\n\n get canReorder() {\n return !this.props.isSelectable && this.props.canReorder;\n }\n\n get isRemoveDisabled() {\n return this.props.disableRemoveAction || this.props.isDisabled;\n }\n\n get isCloneDisabled() {\n return this.props.disableCloneAction || this.props.isDisabled;\n }\n\n handleCheckboxChange = (e: ICheckboxChange) => {\n this.props.onSelect(this.props.id, e.value);\n };\n\n renderCheckbox = (fieldHasLabel: boolean) => {\n return (\n \n );\n };\n\n getCloneActionButtonsStyle = memoizeOne((): React.CSSProperties => {\n return { visibility: this.props.hideCloneAction ? \"hidden\" : \"visible\" };\n }, () => [this.props.hideCloneAction]);\n\n getRemoveActionButtonsStyle = memoizeOne((): React.CSSProperties => {\n return { visibility: this.props.hideRemoveAction ? \"hidden\" : \"visible\" };\n }, () => [this.props.hideRemoveAction]);\n\n render() {\n let labelHidden = false;\n\n let children: any[];\n\n if (this.props.children) {\n children = Array.isArray(this.props.children) ? this.props.children : [this.props.children];\n } else {\n children = [];\n }\n\n const fields = children.map((childFactory: (args: ISharpBorders) => React.ReactElement, i: number) => {\n const sharpLeft = i > 0;\n const sharpRight = i < children.length - 1;\n const field = (childFactory)({\n isSharpLeft: sharpLeft,\n isSharpRight: sharpRight\n });\n\n labelHidden = field?.props?.fieldProps?.labelStatus || field?.props?.labelStatus === LabelStatus.Removed;\n\n return field;\n });\n\n const isComparison = this.isComparison();\n // make action buttons unavailable for keyboard navigation, supposedly users are confused by it\n // https://solitea-cz.atlassian.net/browse/DEV-14304\n const actionButtonsTabIndex = TabIndex.Disabled;\n\n if (!isComparison && fields.length > 0) {\n fields[fields.length - 1] = (\n // LastFieldWrapper holds together last column and buttons so that they wrap together\n \n {fields[fields.length - 1]}\n \n {(!this.props.hideCloneAction || this.props.actionStatus === FastEntryActionStatus.Hidden) &&\n \n \n \n }\n {(!this.props.hideRemoveAction || this.props.actionStatus === FastEntryActionStatus.Hidden) &&\n \n \n \n }\n {this.props.additionalActions?.length &&\n }\n headerText={this.props.t(\"Common:Form.ItemActions\")}\n items={this.props.additionalActions}\n onChange={this.handleAdditionalAction}\n isDisabled={this.props.isDisabled}\n useAutoSelection={false}\n />\n }\n \n \n );\n }\n\n const lineData = this.props.auditTrailData?.lineData;\n\n return (\n \n {!isComparison && this.canReorder &&\n \n \n \n }\n {this.props.isSelectable && this.renderCheckbox(!labelHidden)}\n {this.props.customPreContent?.(this.props.id)}\n \n {lineData &&\n {lineData.order}}\n {(lineData?.type === AuditTrailLineComparison.AdditionalRow || lineData?.type === AuditTrailLineComparison.MissingRow) &&\n \n }\n {fields}\n \n \n );\n }\n}\n\nconst FastEntryWithTranslation = withTranslation([\"Common\"], { withRef: true })(withTheme(FastEntry));\n\nexport { FastEntryWithTranslation as FastEntry };","import styled, { css } from \"styled-components/macro\";\nimport { transparentize } from \"polished\";\nimport { ORDER_BACKGROUND_RIGHT_MARGIN, ORDER_BACKGROUND_WIDTH } from \"../sortableList/SortableList.styles\";\n\nexport const StyledFastEntryList = styled.div<{\n hasPrimary?: boolean;\n isCollapsible: boolean;\n onlyPrimary: boolean;\n useVirtualization: boolean;\n}>`\n margin-top: ${props => props.hasPrimary ? \"40px\" : \"\"};\n position: relative;\n ${props => !props.useVirtualization && css`width: fit-content;`}\n`;\n\nexport const LabelsOverflowWrapper = styled.div`\n position: relative;\n overflow: hidden;\n height: 19px;\n`;\n\nexport const LabelsWrapper = styled.div<{\n _lpad?: number;\n}>`\n display: flex;\n position: relative;\n left: ${props => props._lpad ? `${props._lpad}px` : null};\n`;\n\nexport const PrimaryContent = styled.div<{ showLineNumbers: boolean }>`\n width: calc(100% - 12px);\n height: 80px;\n top: -8px;\n left: ${props => props.showLineNumbers ? `${ORDER_BACKGROUND_WIDTH + ORDER_BACKGROUND_RIGHT_MARGIN}px` : \"0\"};\n position: absolute;\n border-radius: 3px;\n\n pointer-events: none;\n background: ${props => transparentize(0.95, props.theme.C_ACT_main)};\n`;\n\nexport const PrimaryContentTitle = styled.span`\n position: absolute;\n top: -15px;\n color: ${props => props.theme.C_ACT_main};\n font-size: 12px;\n text-transform: uppercase;\n`;","import styled from \"styled-components/macro\";\nimport { mix } from \"polished\";\nimport { InnerLabel } from \"../inputs/field/Label.styles\";\nimport { FieldGroupPaddingType } from \"./FieldGroup\";\n\ninterface IStyledFieldGroup {\n isLight?: boolean;\n _paddingType?: FieldGroupPaddingType;\n _opacity: number;\n // there can be multiple connected groups inside filter bar\n isFirst?: boolean;\n isLast?: boolean;\n}\n\nconst getBoxShadow = (props: IStyledFieldGroup) => {\n let boxShadow = \"\";\n\n if (props.isLast) {\n boxShadow += \"0 0 4.9px 0.2px rgba(0, 0, 0, 0.05)\";\n }\n\n if (!props.isFirst) {\n if (boxShadow) {\n boxShadow += \", \";\n }\n\n boxShadow += \"inset 0px 79px 55px -86px rgb(0 0 0 / 35%)\";\n }\n\n return boxShadow;\n};\n\nexport const StyledFieldGroup = styled.div`\n // prevent children from overflowing FieldGroup by using fit-content as width instead of 100%\n min-width: fit-content;\n border-bottom-left-radius: ${props => props.isLast ? \"3px\" : \"0\"};\n border-bottom-right-radius: ${props => props.isLast ? \"3px\" : \"0\"};\n border-top-right-radius: ${props => props.isFirst ? \"3px\" : \"0\"};\n box-shadow: ${props => getBoxShadow(props)};\n background-color: ${props => props.isLight ? mix(props.theme.lightFieldGroupOpacity, props.theme.C_BG_filterbar, props.theme.C_BG_floorplan) : mix(props._opacity, props.theme.C_BG_filterbar, props.theme.C_BG_floorplan)};\n box-sizing: border-box;\n\n position: relative;\n padding: ${props => props._paddingType === FieldGroupPaddingType.None ? 0 : props._paddingType === FieldGroupPaddingType.Default ? \"18px 38px 30px 38px\" : \"25px 38px 30px 33px\"};\n\n display: flex;\n flex-wrap: wrap;\n\n\n & ${InnerLabel} {\n ${props => props.isLight && `\n color: ${props.theme.C_TEXT_primary};\n `}\n }\n`;\n\nexport const FieldGroupIconWrapper = styled.div`\n position: absolute;\n right: 8px;\n top: 8px;\n display: flex;\n\n & > button:not(:first-child) {\n margin-left: 5px;\n }\n`;\n\n\n","import React from \"react\";\nimport { FieldGroupIconWrapper, StyledFieldGroup } from \"./FieldGroup.styles\";\nimport { IconButton } from \"../button\";\nimport TestIds from \"../../testIds\";\nimport { CloseIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { focusNextElement } from \"@utils/general\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\n\nexport enum FieldGroupPaddingType {\n Default = \"Default\",\n ReadOnlyContent = \"ReadOnlyContent\",\n None = \"None\"\n}\n\ninterface IProps extends WithTranslation {\n isLight?: boolean;\n paddingType?: FieldGroupPaddingType;\n displayCloseIcon?: boolean;\n opacity?: number;\n onCloseClick?: () => void;\n customButtons?: React.ReactElement[];\n isFirst?: boolean;\n isLast?: boolean;\n className?: string;\n}\n\nclass FieldGroup extends React.PureComponent {\n static defaultProps: Partial = {\n opacity: 1,\n displayCloseIcon: true,\n isFirst: true,\n isLast: true,\n paddingType: FieldGroupPaddingType.Default\n };\n\n _closeBtnRef = React.createRef();\n\n handleClose = () => {\n focusNextElement(this._closeBtnRef?.current);\n this.props.onCloseClick();\n };\n\n render() {\n return (\n \n \n {this.props.children}\n \n {/*render close button after the fields for correct tab index order*/}\n \n {this.props.customButtons}\n {this.props.displayCloseIcon &&\n \n \n \n }\n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(FieldGroup);","import styled from \"styled-components/macro\";\nimport { ColoredIcon } from \"../icon\";\nimport { FileStripItemSize } from \"./FileStrip.utils\";\nimport { Theme } from \"../../theme\";\nimport { getFocusBorderElement } from \"../../global.style\";\nimport { transparentize } from \"polished\";\n\n\nexport const StyledFileStrip = styled.div<{ _width: number }>`\n background-color: ${props => props.theme.C_BG_filestrip};\n\n box-sizing: border-box;\n height: 100%;\n max-width: 180px;\n width: ${props => props._width}px;\n padding-top: 79px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n`;\n\nexport const FileStripFooter = styled.div`\n margin-top: auto;\n padding: 38px 0;\n text-align: center;\n z-index: 2; /* display over split layout splitter */\n`;\n\ninterface IFileStripItemSized {\n size: FileStripItemSize;\n}\n\ninterface IFileStripItemState {\n isSelected: boolean;\n isHighlighted: boolean;\n}\n\ninterface IFileStripItemStyled extends IFileStripItemSized, IFileStripItemState {\n height: number;\n margin: number;\n}\n\nfunction getFileStripItemColor(theme: Theme, isHighlighted = false, isSelected = false, isBackground = false) {\n if (isHighlighted && isBackground && !isSelected) {\n return transparentize(.8, theme.C_ACT_main);\n }\n if (isSelected) {\n return isBackground ? \"currentColor\" : theme.C_TEXT_selection;\n }\n\n return isBackground ? \"none\" : theme.C_ACT_main;\n}\n\nexport const StyledFileStripItem = styled.div`\n position: relative;\n height: ${props => props.height}px;\n width: 100%;\n margin-bottom: ${props => props.margin}px;\n color: ${props => getFileStripItemColor(props.theme)};\n cursor: pointer;\n overflow: hidden;\n ${props => getFocusBorderElement({ offset: -1, keyboardOnly: true, isLight: props.isSelected })};\n`;\n\n\nexport const ShortcutIconWrapper = styled.div`\n`;\n\nexport const ShortcutText = styled.span<{ size: FileStripItemSize }>`\n font-weight: bold;\n font-size: ${props => [FileStripItemSize.XL, FileStripItemSize.L].includes(props.size) ? \"143%\" : \"100%\"};\n`;\n\nexport const FolderColoredIcon = styled(ColoredIcon)`\n`;\n\nexport const CaretColoredIcon = styled(ColoredIcon)`\n visibility: ${props => props.isSelected || props.isHighlighted ? \"visible\" : \"hidden\"};\n`;\n\ninterface ILayout {\n _folderIconSize: number;\n hasSmallBadge?: boolean;\n}\n\nexport const LinearLayout = styled(StyledFileStripItem)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n ${FolderColoredIcon} {\n margin: 0 28px;\n }\n\n ${ShortcutIconWrapper}, ${ShortcutText} {\n margin: 0 auto 0 0;\n width: fit-content;\n \n svg {\n width: auto !important;\n }\n }\n\n ${CaretColoredIcon} {\n transform: rotate(-90deg);\n }\n\n // background is set to whole item\n background-color: ${props => getFileStripItemColor(props.theme, props.isHighlighted, props.isSelected, true)};\n // therefore all icons and text should invert color\n ${ShortcutText}, ${CaretColoredIcon}, ${FolderColoredIcon}, ${ShortcutIconWrapper} {\n flex: 0 0 auto;\n color: ${props => getFileStripItemColor(props.theme, props.isHighlighted, props.isSelected)};\n }\n\n //highlight also when focused\n &:hover, &:active, &:focus {\n background-color: ${props => getFileStripItemColor(props.theme, true, props.isSelected, true)};\n\n ${ShortcutText}, ${CaretColoredIcon}, ${FolderColoredIcon}, ${ShortcutIconWrapper} {\n flex: 0 0 auto;\n color: ${props => getFileStripItemColor(props.theme, true, props.isSelected)};\n }\n }\n`;\n\nexport const CenteredLayout = styled(StyledFileStripItem)`\n width: ${props => props.height}px;\n margin-left: auto;\n margin-right: auto;\n overflow: visible;\n\n ${ShortcutIconWrapper} {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n overflow: hidden;\n }\n\n ${ShortcutIconWrapper} svg, ${ShortcutText}, ${FolderColoredIcon}, ${CaretColoredIcon} {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n ${ShortcutIconWrapper} svg, ${ShortcutText}, ${CaretColoredIcon} {\n top: 56%; // center of the folder icon smaller part\n }\n\n ${CaretColoredIcon} {\n transform: translate(${props => (props._folderIconSize / 2)}px, -50%) translate(-35%, 0) rotate(-90deg);\n }\n\n // background is set to only the folder icon\n ${FolderColoredIcon} .IC_4L_main {\n fill: ${props => getFileStripItemColor(props.theme, props.isHighlighted, props.isSelected, true)};\n }\n\n // therefore only shortcut text/icon reverts it's color\n ${ShortcutText}, ${ShortcutIconWrapper} {\n color: ${props => getFileStripItemColor(props.theme, props.isHighlighted, props.isSelected)};\n }\n\n //highlight also when focused\n &:hover, &:active, &:focus {\n ${FolderColoredIcon} .IC_4L_main {\n fill: ${props => getFileStripItemColor(props.theme, true, props.isSelected, true)};\n }\n\n ${ShortcutText}, ${ShortcutIconWrapper} {\n color: ${props => getFileStripItemColor(props.theme, true, props.isSelected)};\n }\n\n }\n`;\n","import React, { useCallback, useRef } from \"react\";\nimport TestIds from \"../../testIds\";\nimport {\n CaretColoredIcon,\n CenteredLayout,\n FolderColoredIcon,\n LinearLayout,\n ShortcutIconWrapper,\n ShortcutText\n} from \"./FileStrip.styles\";\nimport Tooltip from \"../tooltip\";\nimport { CaretIcon, ColoredIcon, getIcon, InboxFolderIcon } from \"../icon\";\nimport {\n FileStripItemSize,\n getBadgeOffsetRightByFileStripItemSize,\n getBadgeOffsetTopByFileStripItemSize,\n getFileStripItemConfig,\n IFileStripItem\n} from \"./FileStrip.utils\";\nimport { composeRefHandlers, doesElementContainsElement } from \"@utils/general\";\nimport { KeyName } from \"../../keyName\";\nimport Badge from \"../badge\";\n\ninterface IProps extends IFileStripItem {\n isSelected?: boolean;\n isHighlighted?: boolean;\n onSelect?: (id: string) => void;\n onMouseEnter?: (id: string) => void;\n onMouseLeave?: (id: string) => void;\n isDragging?: boolean;\n isDragOver?: boolean;\n onDragEnter?: (id: string) => void;\n onDragLeave?: (id: string) => void;\n onDrop?: (id: string, event: React.DragEvent) => void;\n size?: FileStripItemSize;\n passProps?: Record;\n}\n\nexport default function FileStripItem(props: IProps): React.ReactElement {\n const {\n id,\n size,\n iconName,\n onSelect,\n isDragging,\n onDrop,\n onDragEnter,\n onDragLeave,\n onMouseEnter,\n onMouseLeave\n } = props;\n\n const layoutRef = useRef();\n\n const handleMouseEnter = useCallback((): void => {\n onMouseEnter?.(id);\n }, [onMouseEnter, id]);\n\n const handleMouseLeave = useCallback((event: React.MouseEvent): void => {\n if (!doesElementContainsElement(layoutRef.current, event.relatedTarget as Element)) {\n onMouseLeave?.(id);\n }\n }, [onMouseLeave, id]);\n\n const handleDragLeave = useCallback((event: React.DragEvent): void => {\n if (!doesElementContainsElement(layoutRef.current, event.relatedTarget as Element)) {\n onDragLeave?.(id);\n }\n }, [onDragLeave, id]);\n\n const handleDragEnter = useCallback((): void => {\n onDragEnter?.(id);\n }, [onDragEnter, id]);\n\n const handleClick = useCallback((): void => {\n onSelect?.(id);\n }, [onSelect, id]);\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent): void => {\n if (event.key === KeyName.Enter || event.key === KeyName.Space) {\n handleClick();\n }\n }, [onSelect, id]);\n\n const handleDrop = useCallback((event: React.DragEvent): void => {\n onDrop?.(id, event);\n }, [id, onDrop]);\n\n const handleDragOver = useCallback((event: React.DragEvent): void => {\n if (isDragging) {\n event.preventDefault();\n }\n }, [isDragging]);\n\n const cfg = getFileStripItemConfig(size);\n const folderIconSize = cfg.iconSize ?? cfg.height;\n const folderIconSizeStr = `${folderIconSize}px`;\n const caretIconSize = `${cfg.caretIconSize}px`;\n const shortcutIconSize = `${cfg.shortcutIconSize ?? cfg.height}px`;\n const Icon = iconName && getIcon(iconName);\n\n const Layout = props.size === FileStripItemSize.S ? LinearLayout : CenteredLayout;\n\n return (\n \n {(ref: React.Ref) => {\n return (\n \n \n \n \n {props.iconName\n ? (\n \n \n \n ) : {props.shortcut}}\n \n \n \n {props.count &&\n \n }\n \n );\n }}\n \n );\n}\n","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { FileStripFooter, StyledFileStrip } from \"./FileStrip.styles\";\nimport FileStripItem from \"./FileStripItem\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { FolderAddIcon } from \"../icon\";\nimport {\n FileStripItemSize,\n FileStripSizeConfig,\n getFileStripConfig,\n getFileStripSizeForSpace,\n IFileStripItem,\n MAX_FILE_STRIP_CONFIG\n} from \"./FileStrip.utils\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { ScrollBar } from \"../scrollBar\";\nimport SimpleBar from \"simplebar-react\";\nimport FocusManager, { FocusDirection } from \"../focusManager\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { Button } from \"../button\";\nimport { calcCssProp } from \"@utils/dom.utils\";\n\nexport interface IFileStripProps extends WithTranslation, WithDomManipulator {\n items: IFileStripItem[];\n selectedId?: string;\n onSelectionChange?: (item: IFileStripItem) => void;\n isDragging?: boolean;\n dragOverId?: string;\n onDrop?: (item: IFileStripItem, event: React.DragEvent) => void;\n onDragEnter?: (id: string) => void;\n onDragLeave?: (id: string) => void;\n onResize?: (width: number) => void;\n onAddItems?: () => void;\n className?: string;\n}\n\ninterface IState {\n size?: FileStripItemSize;\n width?: number;\n}\n\nclass FileStrip extends React.PureComponent {\n #footerRef = React.createRef();\n #ref = React.createRef();\n #simpleBarRef = React.createRef();\n\n state: IState = {\n size: FileStripItemSize.M\n };\n\n componentDidMount() {\n this.recalculateSize();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.state.size !== prevState.size || this.state.width !== prevState.width) {\n // state is changed during recalculation, just notify parent about size change\n this.props.onResize?.(this.state.width);\n this.#simpleBarRef.current.recalculate();\n } else {\n this.recalculateSize();\n }\n }\n\n get config() {\n return getFileStripConfig(window.innerWidth);\n }\n\n /**\n * Recalculates space for items according to width of the screen, height of the FileStrip and item count\n */\n recalculateSize() {\n this.props.domManipulatorOrchestrator.registerCallback<{ config: FileStripSizeConfig, paddingTop: number, offsetTop: number }>(\n () => (this.#ref.current && {\n config: this.config,\n paddingTop: calcCssProp(this.#ref.current, \"padding-top\"),\n offsetTop: this.#footerRef.current?.offsetTop\n }),\n (params) => {\n if (params) {\n const { config, offsetTop, paddingTop } = params;\n let { width } = config;\n const horizontalSpace = width - 2 * config.padding;\n\n const height = offsetTop - paddingTop;\n // last item has no margin, margin is only between items\n const verticalSpace = (height / this.props.items.length);\n const size = getFileStripSizeForSpace(horizontalSpace, verticalSpace);\n if (size === FileStripItemSize.S) {\n width = MAX_FILE_STRIP_CONFIG.width;\n }\n if (size !== this.state.size || this.state.width !== width) {\n this.setState({ size, width });\n }\n }\n },\n [this.#ref, this.#footerRef]\n );\n }\n\n getItem(id: string): IFileStripItem {\n return this.props.items.find(item => item.id === id);\n }\n\n handleResize = (): void => {\n this.recalculateSize();\n };\n\n handleSelect = (id: string): void => {\n this.props.onSelectionChange?.(this.getItem(id));\n };\n\n handleDrop = (id: string, event: React.DragEvent) => {\n this.props.onDrop?.(this.getItem(id), event);\n };\n\n render() {\n const { addHasIcon, width } = this.config;\n return (\n \n {({ itemProps, wrapperProps }) => (\n \n \n {this.props.items.map(item => (\n \n ))}\n \n \n {this.props.onAddItems &&\n }\n \n \n \n )}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(withDomManipulator(FileStrip));\n","import { IconSize } from \"../../enums\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport enum FileStripItemSize {\n XL,\n L,\n M,\n S\n}\n\nexport interface IFileStripItem extends ISelectItem {\n id: string;\n count?: number;\n shortcut?: string;\n isRequired?: boolean;\n}\n\nexport interface FileStripSizeConfig {\n padding: number;\n width: number;\n addHasIcon: boolean;\n}\n\nexport const MAX_FILE_STRIP_CONFIG = {\n width: 180,\n padding: 16,\n addHasIcon: true\n};\n\nexport function getFileStripConfig(windowWidth: number): FileStripSizeConfig {\n switch (true) {\n case windowWidth < 1180:\n return {\n width: 104,\n padding: 10,\n addHasIcon: false\n };\n case windowWidth < 1278:\n return {\n width: 120,\n padding: 10,\n addHasIcon: false\n };\n case windowWidth < 1640:\n return {\n width: 154,\n padding: 16,\n addHasIcon: true\n };\n default:\n return MAX_FILE_STRIP_CONFIG;\n }\n}\n\ninterface IFileStripItemConfig {\n height: number,\n iconSize?: number,\n shortcutIconSize?: number,\n hasSmallBadge?: boolean,\n caretIconSize: number,\n margin: number\n}\n\nexport function getFileStripItemConfig(size: FileStripItemSize): IFileStripItemConfig {\n switch (size) {\n case FileStripItemSize.S:\n return {\n height: 38,\n iconSize: 30,\n shortcutIconSize: 84,\n caretIconSize: IconSize.asNumber(\"XS\"),\n hasSmallBadge: true,\n margin: 0\n };\n case FileStripItemSize.M:\n return {\n height: 60,\n caretIconSize: IconSize.asNumber(\"XS\"),\n hasSmallBadge: true,\n margin: 12\n };\n case FileStripItemSize.L:\n return {\n height: 84,\n caretIconSize: IconSize.asNumber(\"S\"),\n margin: 18\n };\n case FileStripItemSize.XL:\n return {\n height: 120,\n caretIconSize: IconSize.asNumber(\"M\"),\n margin: 26\n };\n }\n}\n\nexport function getFileStripSizeForSpace(horizontal: number, vertical: number): FileStripItemSize {\n let maxSize: number;\n // keep order to return largest possible\n [FileStripItemSize.S, FileStripItemSize.M, FileStripItemSize.L, FileStripItemSize.XL]\n .forEach((size) => {\n const { height, margin } = getFileStripItemConfig(size);\n if (!maxSize || (horizontal > height && vertical > height + margin)) {\n maxSize = size;\n }\n });\n return maxSize;\n}\n\nexport function getBadgeOffsetTopByFileStripItemSize(size: FileStripItemSize): number {\n switch (size) {\n case FileStripItemSize.S:\n return 2;\n case FileStripItemSize.M:\n return 5;\n case FileStripItemSize.L:\n return 10;\n case FileStripItemSize.XL:\n return 21;\n }\n}\n\nexport function getBadgeOffsetRightByFileStripItemSize(size: FileStripItemSize): number {\n switch (size) {\n case FileStripItemSize.S:\n return 114;\n case FileStripItemSize.M:\n return -5;\n case FileStripItemSize.L:\n return 10;\n case FileStripItemSize.XL:\n return 14;\n }\n}","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IconButton } from \"../button\";\nimport HiddenFileInput from \"../fileUploader/HiddenFileInput\";\nimport { getIcon, UploadIcon } from \"../icon\";\n\ninterface IProps {\n onFileChange: (files: File[]) => void;\n title?: string;\n iconName?: string;\n width?: string;\n hotspotId: string;\n accept?: string;\n preventHover?: boolean;\n multiple?: boolean;\n isDisabled?: boolean;\n isDecorative?: boolean;\n isTransparent?: boolean;\n renderCustomButton?: (onClick: () => void, isDisabled: boolean) => void;\n}\n\n// provides functionality for opening of the html file input via custom button\nclass FileUploadButton extends React.PureComponent {\n\n _fileInput = React.createRef();\n\n handleUploadButtonClick = () => {\n this._fileInput.current.click();\n };\n\n handleFileInputChange = (event: React.ChangeEvent) => {\n this.props.onFileChange?.(Array.from(event.target.files));\n };\n\n render() {\n const Icon = this.props.iconName ? getIcon(this.props.iconName) : UploadIcon;\n return (\n <>\n {!this.props.renderCustomButton &&\n \n \n \n }\n {this.props.renderCustomButton?.(this.handleUploadButtonClick, this.props.isDisabled)}\n {/*we need file input to programmatically trigger the \"open file\" window*/}\n {ReactDOM.createPortal(\n \n , document.body)}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(FileUploadButton);","import { asc } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport i18next from \"i18next\";\nimport { escapeRegExp } from \"lodash\";\nimport mime from \"mime\";\nimport Papa, { LocalFile, ParseResult } from \"papaparse\";\nimport React from \"react\";\n\nimport { FileAction, MimeType } from \"../../enums\";\nimport { TRecordString, TValue } from \"../../global.types\";\nimport NumberType from \"../../types/Number\";\nimport { ICellValueObject, TCellValue, TId } from \"../table\";\nimport TextEllipsis from \"../textEllipsis/TextEllipsis\";\nimport File from \"./File\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport const FORBIDDEN_FILE_EXTENSIONS: string[] = [\"\", \"exe\"];\nexport const LAST_5_CHARS_OF_FILE_NAME_WITH_EXT = /.{1,5}((\\([0-9]+\\))?\\.[^.]{1,4})?$/;\n\nexport function fileNameFormatter(value: TValue): ICellValueObject {\n return value ? {\n tooltip: `${value}`,\n value: (\n \n )\n } : null;\n}\n\nexport function strongTextFormatter(value: TValue): TCellValue {\n return {\n tooltip: `${value}`,\n value: (\n {value}\n )\n };\n}\n\nexport const isFilePdf = (mime: MimeType): boolean => {\n return mime === MimeType.PDF;\n};\n\nexport const isFileWord = (mime: MimeType): boolean => {\n const wordMimeTypes = [MimeType.DOC, MimeType.DOCX];\n\n return wordMimeTypes.includes(mime);\n};\n\nexport const isFileIsDoc = (extOrName: string): boolean => {\n if (!extOrName) {\n return false;\n }\n const { prefix, extension } = splitFileName(extOrName);\n const ext = (extension || prefix).toLowerCase();\n return [\"isdoc\", \"isdocx\"].indexOf(ext) >= 0;\n};\n\nexport const isFilePlainText = (mime: MimeType): boolean => {\n const plainTextMimeTypes = [MimeType.TEXT];\n\n return plainTextMimeTypes.includes(mime);\n};\n\nexport const isFileExcel = (mime: MimeType): boolean => {\n const excelMimeTypes = [MimeType.XLS, MimeType.XLSX, MimeType.CSV];\n\n return excelMimeTypes.includes(mime);\n};\n\nexport const isFileCsvOrGpc = (ext: string): boolean => {\n const types = [\"csv\", \"gpc\"];\n return types.includes(ext?.toLowerCase());\n};\n\nexport const isFileCsv = (mime: MimeType): boolean => {\n const csvMimeTypes = [MimeType.CSV];\n\n return csvMimeTypes.includes(mime);\n};\n\nexport const isFileImage = (mime: MimeType): boolean => {\n const imgMimeTypes = [\n MimeType.GIF, MimeType.ICO, MimeType.JPG, MimeType.PNG,\n MimeType.SVG, MimeType.TIFF, MimeType.WEBP\n ];\n\n return imgMimeTypes.includes(mime);\n};\n\nexport const isFileXml = (mime: MimeType): boolean => {\n const xmlMimeTypes = [MimeType.XML, MimeType.TEXT_XML];\n\n return xmlMimeTypes.includes(mime);\n};\n\nexport const fileNameToMime = (fileName: string): MimeType => {\n return mime.getType(fileName) as MimeType;\n};\n\nexport const detectEncoding = async (file: Blob): Promise => {\n const jschardet = await import(\"jschardet\");\n return new Promise(resolve => {\n const reader = new FileReader();\n reader.onload = function (e) {\n const csvResult = (e.target.result as string).split(/\\r|\\n|\\r\\n/);\n resolve(jschardet.detect(csvResult.toString()).encoding);\n };\n reader.readAsBinaryString(file);\n });\n};\n\nexport const csvToArray = (csv: LocalFile, encoding: string): Promise> => {\n return new Promise(resolve => {\n const config = {\n complete: function (results: ParseResult) {\n resolve(results);\n },\n header: false,\n skipEmptyLines: true,\n encoding\n };\n Papa.parse(csv, config);\n });\n};\n\n\nexport const splitFileName = (fileName: string, isNotStrict?: boolean): { prefix: string; extension: string } => {\n let prefix;\n let extension = \"\";\n\n const lastDotIndex = (fileName ?? \"\").lastIndexOf(\".\");\n\n // treat names without extension as prefix\n // for files with extension only, treat them as prefix in non strict mode (used when showing file names and we don't want to show empty name for files without prefix)\n if (lastDotIndex < 0 || (lastDotIndex === 0 && isNotStrict)) {\n prefix = fileName;\n } else {\n prefix = fileName.slice(0, lastDotIndex);\n extension = fileName.slice(lastDotIndex + 1);\n }\n\n return { prefix, extension };\n};\n\nconst getMaxFileIndex = (fileName: string, fileNames: string[]) => {\n const { prefix, extension } = splitFileName(fileName);\n // match \"fileName (index)\" or \"(index)\"\n const regex = new RegExp(`^${escapeRegExp(prefix.toLowerCase())}( ?\\\\((?\\\\d+)\\\\))?$`);\n\n let maxIndex = null;\n let exactMatch = false;\n const matchedIndexes = [];\n\n for (const fName of fileNames) {\n if (fName.toLowerCase() === fileName.toLowerCase()) {\n exactMatch = true;\n continue;\n }\n\n const { prefix: fPrefix, extension: fExtension } = splitFileName(fName);\n const regexCheck = regex.exec(fPrefix.toLowerCase());\n\n if (regexCheck && fExtension.toLowerCase() === extension.toLowerCase()) {\n const foundIndex = parseInt(regexCheck.groups.index);\n\n matchedIndexes.push(foundIndex);\n }\n }\n\n if (exactMatch) {\n matchedIndexes.sort(asc);\n\n for (let i = 1; i <= (matchedIndexes[matchedIndexes.length - 1] ?? 0) + 1; i++) {\n if (!matchedIndexes.includes(i)) {\n maxIndex = i;\n break;\n }\n }\n }\n\n return maxIndex;\n};\n\nexport const isValidFileName = (fileName: string) => {\n if (!fileName) {\n return false;\n }\n\n const { prefix, extension } = splitFileName(fileName);\n\n return !!prefix && !FORBIDDEN_FILE_EXTENSIONS.includes(extension);\n};\n\n/** Returns name without extension */\nexport const getFileNameOnly = (fileName: string, isNotStrict?: boolean) => {\n const { prefix } = splitFileName(fileName, isNotStrict);\n\n return prefix;\n};\n\n/** Returns only extension */\nexport const getFileNameExtension = (fileName: string) => {\n const { extension } = splitFileName(fileName);\n\n return extension;\n};\n\n/** Checks fileName against all fileNames and returns new fileName that is unique (e.g. test.txt => test_01.txt) */\nexport const getUniqueFileName = (fileName: string, fileNames: string[]) => {\n let { prefix, extension } = splitFileName(fileName);\n\n prefix = prefix.trim();\n\n let uniqueName = extension ? `${prefix}.${extension}` : prefix;\n const maxIndex = getMaxFileIndex(uniqueName, fileNames);\n\n if (maxIndex) {\n uniqueName = `${prefix} (${(maxIndex).toString()})${extension ? `.${extension}` : \"\"}`.trim();\n }\n\n return uniqueName;\n};\n\n\n/** Probabilistic check whether file item is a folder in browsers without webkitGetAsEntry */\nexport const isFileFolderOldBrowsers = (file: File) => {\n return !file.type && file.size % 4096 === 0;\n};\n\n\nexport const retrieveFile = async (fileEntry: any): Promise => {\n try {\n return new Promise((resolve, reject) => fileEntry.file(resolve, reject));\n } catch (err) {\n logger.error(\"retrieveFile error\", err);\n }\n\n return null;\n};\n\nexport const retrieveEntries = async (dirReader: any): Promise => {\n try {\n return new Promise((resolve, reject) => dirReader.readEntries(resolve, reject));\n } catch (err) {\n logger.error(\"retrieveEntries error\", err);\n }\n\n return null;\n};\n\nexport const getAllFiles = async (item: any, path = \"\"): Promise => {\n let files: File[] = [];\n\n if (item?.isFile) {\n files.push(await retrieveFile(item));\n } else if (item?.isDirectory) {\n const dirReader = item.createReader();\n const entries = await retrieveEntries(dirReader);\n\n for (let i = 0; i < entries.length; i++) {\n files = [...files, ...await getAllFiles(entries[i], path + item.name + \"/\")];\n }\n }\n\n return files;\n};\n\nexport const getDroppedFiles = async (event: React.DragEvent | DragEvent): Promise => {\n if (DataTransferItem.prototype.webkitGetAsEntry) {\n const files = await Promise.all([...event.dataTransfer.items]\n .filter(item => item.kind === \"file\")\n .map(async (item) => {\n return await getAllFiles(item.webkitGetAsEntry());\n }));\n\n return files.flatMap(file => file);\n } else {\n return [...event.dataTransfer.files].filter(file => !isFileFolderOldBrowsers(file));\n }\n};\n\nexport const doesEventContainFiles = (event: React.DragEvent | DragEvent) => {\n // DnD events can contain other items than files, like parts of selected and dragged text\n return event.dataTransfer.types.includes(\"Files\");\n};\n\nexport const fileSizeFormatter = (val: number): string => {\n const { ceil, pow } = Math;\n const units = [\"B\", \"kB\", \"MB\", \"GB\", \"TB\"];\n const divider = pow(2, 10);\n let size = val;\n let idx = 0;\n while (idx < units.length && size > divider) {\n size /= divider;\n ++idx;\n }\n return `${NumberType.format(ceil(size))} ${units[idx]}`;\n};\n\nexport const getFileContextMenuItems = (isReadOnly = false, hasFileContents = true, isDeleteDisabled = false): ISelectItem[] => {\n return [\n ...(hasFileContents ? [\n {\n id: FileAction.Info,\n label: i18next.t(\"Components:FileUploader.Info\"),\n iconName: \"Info\"\n }\n ] : []),\n ...(!isReadOnly && hasFileContents ? [\n {\n id: FileAction.Rename,\n label: i18next.t(\"Components:FileUploader.Rename\"),\n iconName: \"Edit\"\n }\n ] : []),\n ...(hasFileContents ? [\n {\n id: FileAction.Download,\n label: i18next.t(\"Components:FileUploader.Download\"),\n iconName: \"Download\"\n }\n ] : []),\n ...(!isReadOnly ? [\n {\n id: FileAction.Delete,\n label: i18next.t(\"Components:FileUploader.Delete\"),\n iconName: \"Bin\",\n isDisabled: isDeleteDisabled\n }\n ] : [])\n ];\n};\n\nexport const getCustomFileContextMenuItems = (customItems: ISelectItem[] | ((fileId: TId) => ISelectItem[]), fileId: TId): ISelectItem[] => {\n if (typeof customItems === \"function\") {\n return customItems((fileId)) ?? [];\n }\n\n return customItems ?? [];\n};\n\nexport const getFileIcon = (mimeType: MimeType, extension?: string): string => {\n switch (true) {\n case isFilePdf(mimeType):\n return \"Pdf\";\n case isFileWord(mimeType):\n return \"Word\";\n case isFileExcel(mimeType):\n return \"Excel\";\n case isFileImage(mimeType):\n return \"Picture\";\n case isFilePlainText(mimeType):\n return \"Txt\";\n case extension && isFileIsDoc(extension):\n return \"Isdoc\";\n }\n\n return \"OtherDoc\";\n};\n\nexport const getFileIconByName = (fileName: string): string => {\n const extension = fileName.split(\".\").slice(-1)[0]?.toLowerCase();\n\n return getFileIcon(fileNameToMime(extension), extension);\n};\n\nexport function getNativeEvent(event: React.DragEvent | DragEvent): DragEvent {\n return (event as React.DragEvent).nativeEvent ?? (event as DragEvent);\n}\n\nexport function getFileNameFromResponseHeaders(headers: Headers): string {\n const contentDisposition = headers.get(\"Content-Disposition\");\n return contentDisposition?.split(\";\").find(part => part.trim().startsWith(\"filename=\")).split(\"filename=\")[1]?.replaceAll(\"\\\"\", \"\");\n}\n\nexport function convertFileToBase64(fileChangedEvent: React.ChangeEvent, onConvert: (base64: string) => void) {\n //Read File\n const selectedFile = fileChangedEvent.target.files;\n //Check File is not Empty\n if (selectedFile.length > 0) {\n // Select the very first file from list\n const fileToLoad = selectedFile[0];\n // FileReader function for read the file.\n const fileReader = new FileReader();\n let base64: string;\n\n // Onload of file read the file content\n fileReader.onload = function (fileLoadedEvent) {\n base64 = fileLoadedEvent.target.result as string;\n onConvert(base64);\n };\n\n // Convert data to base64\n fileReader.readAsDataURL(fileToLoad);\n }\n}","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { IconSize } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { UploadIcon } from \"../icon\";\nimport { doesEventContainFiles, getDroppedFiles, getNativeEvent } from \"./File.utils\";\nimport { CustomDescription, Description, DropArea, Placeholder } from \"./FileUploader.styles\";\n\ninterface IProps {\n showContent?: boolean;\n additionalContent?: React.ReactNode;\n customDescription?: string;\n onNewFiles?: (files: File[]) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n isReadOnly?: boolean;\n isLocalDropArea?: boolean;\n /** List of elements, that handles file drop for themselves,\n * and when user hovers files over them, in case this FileDropArea is global,\n * we should disable hover state in this FileDropArea */\n otherFileDropAreas?: HTMLElement[];\n}\n\n/**\n * DropArea with upload button. Just wrapper without content, ready for reuse\n *\n * ToDo:\n * a/ filter dropped files according to accept/multiple parameter, show error if wrong files has been dropped\n * b/\n *\n * @param showContent\n * @param additionalContent\n * @param isReadOnly\n * @param isLocalDropArea\n * @param onDragLeave\n * @param onDragEnter\n * @param onNewFiles\n * @param customDescription\n * @param children\n * @constructor\n */\nconst FileDropArea: React.FC = ({\n showContent,\n additionalContent,\n isReadOnly,\n isLocalDropArea,\n onDragLeave,\n onDragEnter,\n onNewFiles,\n customDescription,\n otherFileDropAreas,\n children\n }) => {\n\n const { t } = useTranslation([\"Common\", \"Components\"]);\n const [isFileOver, setFileIsOver] = useState(false);\n\n const areaRef = useRef();\n const [areaHeight, setHeight] = useState(0);\n\n const handleFilesChange = useCallback((files: File[]) => {\n setFileIsOver(false);\n onNewFiles?.(files);\n }, [onNewFiles]);\n\n const handleDragOver = useCallback((event: React.DragEvent | DragEvent) => {\n if (!doesEventContainFiles(event)) {\n return;\n }\n\n // otherwise drop is not triggered at all\n // https://stackoverflow.com/questions/50230048/react-ondrop-is-not-firing\n event.preventDefault();\n }, []);\n\n const handleDragEnter = useCallback((event: React.DragEvent | DragEvent) => {\n if (!doesEventContainFiles(event)) {\n return;\n }\n\n if (!isLocalDropArea && otherFileDropAreas?.some((element) => element.contains(event.target as HTMLElement))) {\n // ignore drag enter if it's not local and other file drop area is already handling it\n return;\n }\n\n event.preventDefault();\n\n let dragEventContainsFiles = false;\n\n for (const type of event.dataTransfer.types) {\n if (type === \"Files\") {\n dragEventContainsFiles = true;\n break;\n }\n }\n\n if (dragEventContainsFiles) {\n setFileIsOver(true);\n\n onDragEnter?.(getNativeEvent(event));\n }\n }, [onDragEnter, otherFileDropAreas, isLocalDropArea]);\n\n const endDrag = useCallback((event: React.DragEvent | DragEvent) => {\n setFileIsOver(false);\n\n onDragLeave?.(getNativeEvent(event));\n }, [setFileIsOver, onDragLeave]);\n\n const handleDragLeave = useCallback((event: React.DragEvent | DragEvent) => {\n event.preventDefault();\n\n // different check for global listener needed, for some reason some input fields returns false for document.body.contains\n const isDragLeaveGlobal = !isLocalDropArea && (!event.relatedTarget || otherFileDropAreas?.includes(event.relatedTarget as HTMLElement));\n const isDragLeaveLocal = isLocalDropArea && !(event.currentTarget as HTMLElement).contains(event.relatedTarget as HTMLElement);\n\n\n if (isFileOver && (isDragLeaveGlobal || isDragLeaveLocal)) {\n endDrag(event);\n }\n }, [isFileOver, isLocalDropArea, otherFileDropAreas, endDrag]);\n\n\n const handleDrop = useCallback(async (event: React.DragEvent | DragEvent) => {\n if (!doesEventContainFiles(event) ||\n // drop could have been handled elsewhere already\n event.defaultPrevented || otherFileDropAreas?.some((element) => element.contains(event.target as HTMLElement))) {\n endDrag(event);\n return;\n }\n\n event.preventDefault();\n\n const files = await getDroppedFiles(event);\n\n if (files.length > 0) {\n handleFilesChange(files);\n } else {\n endDrag(event);\n }\n }, [handleFilesChange, endDrag, otherFileDropAreas]);\n\n const handleResize = useCallback(() => {\n const height = areaRef.current?.offsetHeight;\n if (height !== areaHeight) {\n setHeight(height);\n }\n }, [areaHeight]);\n\n const shouldListenForLocalEvents = !isReadOnly && isLocalDropArea;\n\n useEffect(() => {\n const shouldListenForGlobalEvents = !isReadOnly && !isLocalDropArea;\n\n if (shouldListenForGlobalEvents) {\n document.body.addEventListener(\"dragover\", handleDragOver);\n document.body.addEventListener(\"dragenter\", handleDragEnter);\n document.body.addEventListener(\"dragleave\", handleDragLeave);\n document.body.addEventListener(\"drop\", handleDrop);\n\n return () => {\n // remove listeners on unmount\n document.body.removeEventListener(\"dragover\", handleDragOver);\n document.body.removeEventListener(\"dragenter\", handleDragEnter);\n document.body.removeEventListener(\"dragleave\", handleDragLeave);\n document.body.removeEventListener(\"drop\", handleDrop);\n };\n }\n\n handleResize();\n\n // no removal callback\n return undefined;\n }, [handleDragEnter, handleDragLeave, handleDragOver, handleDrop, isLocalDropArea, isReadOnly, handleResize]);\n\n return (\n \n {showContent ? children : (\n \n {!isReadOnly && areaHeight ? (\n <>\n \n \n {t(\"Components:FileUploader.DragHere\")}\n \n {customDescription &&\n \n {customDescription}\n \n }\n \n ) : null}\n {isReadOnly &&\n \n {t(\"Components:FileUploader.NoFiles\")}\n \n }\n \n )}\n {additionalContent}\n \n \n );\n};\n\nexport default FileDropArea;","import React from \"react\";\nimport { FileActionButton, FileInnerWrapper, FileName, StyledFile } from \"./FileUploader.styles\";\nimport { ActionState, IconSize, TextAlign } from \"../../enums\";\nimport { BinIcon, getIcon, OtherDocIcon, RefreshIcon } from \"../icon\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport TestIds from \"../../testIds\";\nimport { TId } from \"../table\";\nimport WriteLine from \"../inputs/writeLine\";\nimport { IInputOnChangeEvent } from \"../inputs/input\";\nimport { KeyName } from \"../../keyName\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport { WithContextMenu, withContextMenu } from \"../table/withContextMenu\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface IFile {\n id: TId;\n name?: string;\n metadata?: IFileMetadataEntity;\n}\n\ninterface IProps extends IFile, WithTranslation, Omit {\n icon?: string;\n removingAction?: ActionState;\n isRenaming?: boolean;\n error?: IValidationError;\n onFileNameChange?: (id: TId, newName: string) => void;\n onFileRenameConfirm?: (id: TId) => void;\n onFileRenameCancel?: (id: TId) => void;\n onRemoveActionClick?: (id: TId) => void;\n onClick?: (id: TId) => void;\n items?: ISelectItem[];\n onItemSelection?: (fileId: TId, item: ISelectItem) => void;\n passProps?: any;\n}\n\nclass File extends React.PureComponent {\n static defaultProps: Partial = {\n removingAction: ActionState.None,\n icon: \"OtherDoc\",\n items: []\n };\n\n fileNameInputRef = React.createRef();\n\n get isDisabled() {\n return this.props.isContextMenuOpen;\n }\n\n componentDidUpdate(prevProps: IProps) {\n if (!prevProps.isRenaming && this.props.isRenaming) {\n this.fileNameInputRef.current?.focus();\n }\n }\n\n handleActionClick = (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n this.props.onRemoveActionClick?.(this.props.id);\n };\n\n handleFileClick = () => {\n if (this.isDisabled || this.props.isRenaming) {\n return;\n }\n\n this.props.onClick?.(this.props.id);\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n switch (event.key) {\n case KeyName.Enter:\n this.handleFileClick();\n break;\n }\n };\n\n getActionIcon = () => {\n const ActionIcon = this.isRemoving() ? RefreshIcon : BinIcon;\n\n return (\n \n );\n };\n\n getActionTitle = () => {\n return this.props.t(`Components:FileUploader.${this.isRemoving() ? \"Restore\" : \"Delete\"}`);\n };\n\n isRemoving = () => {\n return this.props.removingAction === ActionState.Active;\n };\n\n /** Same visual as disabled File, but clickable */\n isDisabledLook = () => {\n return this.isRemoving();\n };\n\n getFileIcon = (preventHover = false) => {\n const FileIcon = getIcon(this.props.icon) || OtherDocIcon;\n\n return (\n \n );\n };\n\n handleFileNameChange = (args: IInputOnChangeEvent) => {\n this.props.onFileNameChange?.(this.props.id, args.value);\n };\n\n handleRenameConfirm = async () => {\n this.props.onFileRenameConfirm(this.props.id);\n };\n\n handleRenameCancel = () => {\n this.props.onFileRenameCancel(this.props.id);\n };\n\n renderFileName = () => {\n return (\n <>\n {!this.props.isRenaming && {this.props.name}}\n {this.props.isRenaming &&\n \n }\n \n );\n };\n\n render() {\n const isActionIconVisible = !this.props.removingAction || this.props.removingAction !== ActionState.None;\n return (\n \n {isActionIconVisible &&\n \n {this.getActionIcon()}\n \n }\n \n {this.getFileIcon(isActionIconVisible)}\n {this.renderFileName()}\n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(withContextMenu(File));\n","import React from \"react\";\nimport { IFocusableItemProps } from \"../focusManager\";\nimport { ActionState } from \"../../enums\";\nimport File, { IFile } from \"../fileUploader/File\";\nimport {\n getCustomFileContextMenuItems,\n getFileContextMenuItems,\n getFileIconByName,\n getFileNameOnly\n} from \"./File.utils\";\nimport { TRecordType } from \"../../global.types\";\nimport { TId } from \"../table\";\n\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface IFileGridProps {\n focusableProps: IFocusableItemProps;\n files: IFile[];\n isReadOnly?: boolean;\n isDeleteDisabled?: boolean;\n showRemoveAction?: boolean;\n filesToRemove?: TRecordType;\n onRemoveAction?: (fileId: TId[], forceState?: boolean) => void;\n onFileClick?: (fileId: TId) => void;\n customContextMenuItems?: ISelectItem[] | ((fileId: TId) => ISelectItem[]);\n onContextMenuSelection?: (item: ISelectItem, id?: string) => void;\n}\n\nexport function getRemoveActionState(props: IFileGridProps, id: TId): ActionState {\n return !props.showRemoveAction ? ActionState.None\n : (props.filesToRemove[id.toString()] ? ActionState.Active : ActionState.Inactive);\n}\n\nexport default class FileGrid extends React.PureComponent {\n static defaultProps: Partial = {\n customContextMenuItems: []\n };\n\n handleRemoveClick = (fileId: TId): void => {\n this.props.onRemoveAction?.([fileId]);\n };\n\n render() {\n return (\n this.props.files.map((file, index) => {\n return (\n \n );\n })\n );\n }\n}","import { LabelStatus } from \"../../enums\";\nimport Dialog, { IDialogProps } from \"../dialog/Dialog\";\nimport { Button } from \"../button\";\nimport React, { useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { EntitySetName, IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport SmartField from \"../smart/smartField\";\nimport { Model } from \"../../model/Model\";\nimport { createBindingContext, IEntity } from \"@odata/BindingContext\";\nimport { ODataContext } from \"@odata/ODataProvider\";\nimport { fileSizeFormatter } from \"./File.utils\";\nimport { IFieldDef } from \"../smart/FieldInfo\";\nimport Input from \"../inputs/input/Input\";\nimport Field from \"../inputs/field\";\nimport { EMPTY_DASH } from \"../readOnlyList/ReadOnlyList\";\n\nexport interface IFileInfoDialogDataProps extends IFileMetadataEntity, IEntity {\n}\n\ninterface IProps extends Pick {\n file: IFileInfoDialogDataProps;\n additionalColumns?: IFieldDef[];\n}\n\n\nconst FileInfoDialog: React.FC = (props) => {\n const fieldProps = {\n isReadOnly: true,\n labelStatus: LabelStatus.Visible\n };\n\n const { t } = useTranslation([\"Components\", \"Common\"]);\n const oData = useContext(ODataContext);\n\n const bindingContext = createBindingContext(EntitySetName.FilesMetadata, oData.metadata);\n const storage = new Model({\n id: \"FileInfoDialogStorage\",\n bindingContext\n });\n\n const { file, additionalColumns, onClose } = props;\n\n storage.data.entity = file;\n\n return (\n

\n {t(\"Common:General.Close\")}\n \n )}\n >\n \n \n \n \n {additionalColumns?.map(column => (\n \n \n \n ))}\n \n );\n};\n\nexport default FileInfoDialog;\n","import React from \"react\";\nimport { getRemoveActionState, IFileGridProps } from \"./FileGrid\";\nimport { IColumn, IRow, IRowAction, ISort, TId } from \"../table\";\nimport { IRowProps } from \"../table/Rows\";\nimport {\n fileNameFormatter,\n fileSizeFormatter,\n getCustomFileContextMenuItems,\n getFileContextMenuItems,\n strongTextFormatter\n} from \"./File.utils\";\nimport DateType from \"../../types/Date\";\nimport { ActionState, RowAction, Sort, TextAlign, ToggleState } from \"../../enums\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { SmartTableBase } from \"../smart/smartTable/SmartTableBase\";\nimport { sortCompareFn } from \"@utils/general\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IModifierKeys } from \"../../global.types\";\nimport memoizeOne from \"../../utils/memoizeOne\";\n\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface IFileListProps extends IFileGridProps, WithTranslation {\n visibleColumns?: string[];\n selectedFileId?: string; // table row, which is selected\n showDrilldown?: boolean;\n}\n\ninterface IState {\n sort: ISort;\n contextMenuFileId?: string; // table row, with triggered context menu\n}\n\nexport enum FileListColumn {\n Name = \"Name\",\n Size = \"Size\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n}\n\nclass FileList extends React.PureComponent {\n\n state: IState = {\n sort: {\n id: \"Name\",\n sort: Sort.Asc\n }\n };\n\n get sortedFiles() {\n const propName = this.state.sort.id as keyof IFileMetadataEntity;\n return this.props.files.sort((a, b) => sortCompareFn(a.metadata[propName], b.metadata[propName], this.state.sort.sort));\n }\n\n get rows(): IRow[] {\n return this.sortedFiles.map(({ id, name, metadata }) => ({\n id,\n dataId: id.toString(),\n values: {\n Name: fileNameFormatter(name),\n Size: metadata?.Size && strongTextFormatter(fileSizeFormatter(metadata.Size)),\n DateCreated: metadata?.DateCreated && strongTextFormatter(DateType.localFormat(metadata.DateCreated)),\n DateLastModified: metadata?.DateLastModified && strongTextFormatter(DateType.localFormat(metadata.DateLastModified))\n },\n drilldown: this.props.showDrilldown\n }));\n }\n\n get columns(): Omit[] {\n const columns = [\n {\n id: FileListColumn.Name,\n label: this.props.t(\"Components:FileUploader.Name\")\n }, {\n id: FileListColumn.Size,\n label: this.props.t(\"Components:FileUploader.Size\"),\n textAlign: TextAlign.Right\n }, {\n id: FileListColumn.DateCreated,\n label: this.props.t(\"Components:FileUploader.Created\"),\n textAlign: TextAlign.Right\n }, {\n id: FileListColumn.DateLastModified,\n label: this.props.t(\"Components:FileUploader.LastModified\"),\n textAlign: TextAlign.Right\n }\n ];\n const { visibleColumns } = this.props;\n if (visibleColumns?.length) {\n return columns.filter(c => visibleColumns.includes(c.id));\n }\n return columns;\n }\n\n get toggleState(): ToggleState {\n const fileIds = Object.keys(this.props.filesToRemove);\n return fileIds.length === 0 ? ToggleState.AllUnchecked\n : (this.props.files.length === fileIds.length ? ToggleState.AllChecked : ToggleState.Other);\n }\n\n getRowActionState = (rowId: TId, row: IRowProps): ActionState => {\n return getRemoveActionState(this.props, rowId);\n };\n\n handleRowRemoveIconClick = (rowId: TId, row: IRowProps) => {\n this.props.onRemoveAction?.([rowId]);\n };\n\n handleToggleChange = (nextState: ToggleState) => {\n const fileIds = [];\n const checkAll = nextState === ToggleState.AllChecked;\n if (checkAll) {\n fileIds.push(...this.props.files.map(file => file.id));\n }\n this.props.onRemoveAction?.(fileIds, checkAll);\n };\n\n getRowAction = (): IRowAction => {\n if (!this.props.showRemoveAction) {\n return null;\n }\n\n return {\n actionType: RowAction.Remove,\n getActionState: this.getRowActionState,\n onClick: this.handleRowRemoveIconClick,\n toggleState: this.toggleState,\n onToggleChange: this.handleToggleChange\n };\n };\n\n getSelectedRows = memoizeOne(() => {\n const { selectedFileId } = this.props;\n return selectedFileId ? [selectedFileId] : [];\n }, () => [this.props.selectedFileId]);\n\n handleSortChange = ([sort]: ISort[]) => {\n this.setState({ sort });\n };\n\n handleRowSelect = (id: TId, props: IRowProps, modifiers?: IModifierKeys) => {\n if (this.props.onFileClick) {\n const shouldUnselect = (modifiers?.ctrlKey || modifiers?.metaKey) && id === this.props.selectedFileId;\n this.props.onFileClick(shouldUnselect ? null : id);\n }\n };\n\n handleRowContextMenuSelection = (id: TId, props: IRowProps, modifiers?: IModifierKeys) => {\n this.setState({ contextMenuFileId: id?.toString() });\n };\n\n handleContextMenuItemSelection = (item: ISelectItem): void => {\n this.props.onContextMenuSelection(item, this.state.contextMenuFileId);\n };\n\n // renderFileIcon = (rowId: TId, rowProps: IRowProps): React.ReactElement => {\n // return (\n // \n // );\n // };\n\n getContextMenuItems() {\n if (this.props.onContextMenuSelection) {\n const items = [...getFileContextMenuItems(this.props.isReadOnly, true, this.props.isDeleteDisabled)];\n if (this.state.contextMenuFileId) {\n items.push(...getCustomFileContextMenuItems(this.props.customContextMenuItems, this.state.contextMenuFileId));\n }\n return items;\n }\n return [];\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(FileList);","import { IDialogProps } from \"../dialog\";\nimport React, { useCallback, useState } from \"react\";\nimport { BasicInputSizes, LabelStatus } from \"../../enums\";\nimport { useTranslation } from \"react-i18next\";\nimport Dialog from \"../dialog/Dialog\";\nimport Input from \"../inputs/input/Input\";\nimport Field from \"../inputs/field\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { splitFileName } from \"./File.utils\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\n\ninterface IProps extends Pick, WithBusyIndicator {\n currentName: string;\n onConfirm: (newName: string) => void;\n}\n\n\nconst FileRenameDialog: React.FC = ({ onConfirm, currentName, onClose, setBusy, busyIndicator }) => {\n const { t } = useTranslation([\"Components\", \"Common\"]);\n\n const { prefix, extension } = splitFileName(currentName);\n\n const [name, setName] = useState(prefix);\n const [error, setError] = useState(null);\n\n const commonProps = {\n width: BasicInputSizes.XL,\n height: \"100%\"\n };\n\n const handleConfirm = useCallback(async () => {\n const newName = `${name}.${extension}`;\n if (!name) {\n setError(t(\"Components:FileUploader.FileNameCannotBeEmpty\"));\n return;\n }\n setBusy(true);\n await onConfirm(newName);\n setBusy(false);\n }, [name, extension, onConfirm, setBusy, setError, t]);\n\n const handleChange = useCallback(({ value }) => {\n setError(null);\n setName(value);\n }, [setName]);\n\n return (\n \n )}\n >\n \n \n \n \n \n {busyIndicator}\n \n );\n};\n\nexport default withBusyIndicator({ passBusyIndicator: true, isDelayed: true })(FileRenameDialog);","import { transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n LocalStackOrder,\n multiline_ellipsis,\n T_TITLE_2,\n T_TITLE_4_NORMAL\n} from \"../../global.style\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { IconButton } from \"../button\";\n\nimport { StyledToolbar } from \"../toolbar/Toolbar.styles\";\n\nimport { MENU_ICON_SIZE } from \"@components/toolbar/Toolbar.types\";\n\nexport const StyledFileUploader = styled.div<{ isHidden: boolean }>`\n width: 100%;\n flex: 1 1 auto;\n display: ${props => props.isHidden ? \"none\" : \"flex\"};\n flex-direction: column;\n\n position: relative;\n ${getFocusBorderElement({ offsetY: 10, offsetX: 18, keyboardOnly: true })}\n ${StyledToolbar} {\n margin-bottom: 10px;\n }\n`;\n\nexport const StyledHiddenFileInput = styled.input.attrs({ type: \"file\" })`\n display: none;\n`;\n\nexport const FileIconWrapper = styled.div`\n display: flex;\n justify-content: center;\n width: ${MENU_ICON_SIZE}px;\n`;\n\ninterface IDropArea {\n isFileOver: boolean;\n hasFiles: boolean;\n disableBorders: boolean;\n}\n\nconst getBorderColor = (props: IDropArea & PropsWithTheme) => {\n if (props.isFileOver) {\n return transparentize(0.5, props.theme.C_ACT_main);\n }\n\n return props.hasFiles || props.disableBorders ? \"transparent\" : props.theme.C_ACT_thick_line;\n};\n\nexport interface IFileDropArea {\n isFileOver?: boolean;\n}\n\nexport const fileDropAreaBackground = css`\n background-color: ${props => props.isFileOver ? transparentize(0.9, props.theme.C_ACT_der) : \"transparent\"};\n`;\n\nexport const DROPAREA_PADDING = 8;\nexport const DropAreaWithPadding = css`\n padding: 0 ${DROPAREA_PADDING}px;\n margin: 0 -${DROPAREA_PADDING}px;\n`;\n\nexport const DropArea = styled.div`\n position: relative;\n flex: 1 1 auto;\n display: flex;\n flex-wrap: wrap;\n justify-content: ${props => props.hasFiles ? \"flex-start\" : \"center\"};\n align-content: ${props => props.hasFiles ? \"flex-start\" : \"center\"};\n color: ${props => props.isFileOver ? props.theme.C_ACT_main : props.theme.C_ACT_thick_line};\n border: ${props => `2px dashed ${getBorderColor(props)}`};\n border-radius: 4px;\n\n ${props => props.isFileOver && css`\n &::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n ${fileDropAreaBackground};\n z-index: ${LocalStackOrder.Overlay};\n border-radius: inherit;\n }\n\n &&& {\n border-color: ${getBorderColor(props)};\n border-style: dashed;\n }\n `\n }\n`;\n\nexport const Placeholder = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n z-index: ${LocalStackOrder.AboveOverlay};\n`;\n\nexport const Description = styled.div<{ areaHeight: number }>`\n ${T_TITLE_2};\n // 2% of area height according to spec\n margin: ${props => props.areaHeight * 0.02}px 0;\n`;\n\nexport const CustomDescription = styled.div`\n ${T_TITLE_4_NORMAL};\n line-height: 1.43;\n white-space: pre;\n text-align: center;\n`;\n\nexport const StyledFile = styled.div`\n width: 143px;\n height: 235px;\n padding: 5px 15px 15px;\n position: relative;\n ${getFocusBorderElement({})};\n`;\n\nexport const FileInnerWrapper = styled.div<{ isDisabled: boolean; isDisabledLook: boolean; isActionIconVisible: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: visible;\n position: relative;\n cursor: ${props => props.isActionIconVisible ? \"default\" : \"pointer\"};\n\n ${T_TITLE_4_NORMAL};\n\n ${props => props.isDisabled && getDisabledStyle(props.isDisabled)};\n ${props => props.isDisabledLook && css`opacity: ${props.theme.disabled_opacity}`};\n`;\n\nexport const FileName = styled.div`\n position: relative;\n top: -3px;\n text-align: center;\n ${multiline_ellipsis(\"100%\", 4)};\n word-break: break-word;\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nexport const FileActionButton = styled(IconButton)`\n position: absolute;\n top: 3px;\n left: 3px;\n z-index: 1;\n`;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { TId } from \"@components/table\";\nimport { InboxFileEntity } from \"@odata/GeneratedEntityTypes\";\nimport { InboxEntityTypeCode } from \"@odata/GeneratedEnums\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport Dialog from \"../../components/dialog\";\nimport FileStrip from \"../../components/fileStrip\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { ValueType } from \"../../enums\";\nimport { PropsWithTheme } from \"../../theme\";\nimport memoize from \"../../utils/memoize\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { ISplitPagePaneData } from \"../Page\";\nimport { IDefinition } from \"../PageUtils\";\nimport { OtherFolderWindowStyled } from \"./Inbox.styles\";\nimport {\n getInboxFolderFileStripeItem,\n getInboxTableDef,\n getPaneData,\n handleAttachFiles,\n InboxFilter\n} from \"./Inbox.utils\";\nimport { getDefinitions } from \"./InboxDef\";\nimport InboxSplitPage from \"./InboxSplitPage\";\n\n\ninterface IProps extends WithOData, PropsWithTheme, WithTranslation {\n onAttachFiles?: (inboxFiles: TId[]) => Promise;\n onClose?: () => void;\n // Inbox files to hide - they are temporarily attached to new entity without draft,\n // so they behave like they are already deleted from inbox, but actually the conversion is done on entity save\n hideInboxFileIds?: number[];\n}\n\nclass OtherFolderWindow extends React.PureComponent {\n static contextType = AppContext;\n\n definition: IDefinition;\n\n componentDidMount() {\n if (this.props.tReady) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\n if (!prevProps.tReady && this.props.tReady) {\n this.init();\n }\n }\n\n init(): void {\n const context = this.context as IAppContext;\n const type = InboxFilter.Other;\n const definition = getDefinitions(context);\n const tableDef = getInboxTableDef(definition, type);\n const _origFilter = tableDef.filter as string;\n definition.table = {\n ...tableDef,\n preventStoreVariant: true,\n id: \"otherFolderSpecialTable\",\n filter: () => {\n const { hideInboxFileIds } = this.props;\n return hideInboxFileIds?.length ? `not(${InboxFileEntity.Id} in (${transformToODataString(hideInboxFileIds, ValueType.Number)})) AND ${_origFilter}`\n : _origFilter;\n }\n };\n this.definition = definition;\n this.forceUpdate();\n }\n\n getPaneData = memoize((type: InboxFilter): ISplitPagePaneData =>\n getPaneData(this.definition, type));\n\n handleAttachFiles = (Ids: TId[]): Promise => {\n return handleAttachFiles(\"Inbox:TableView.CompleteSuccessOther\", () => this.props.onAttachFiles?.(Ids));\n };\n\n handleClose = () => {\n this.props.onClose?.();\n };\n\n renderContent() {\n const otherFolder = getInboxFolderFileStripeItem(InboxEntityTypeCode.Other);\n const paneData = this.getPaneData(InboxFilter.Other);\n\n return (\n \n \n\n \n \n );\n }\n\n render() {\n const isBusy = !this.definition;\n\n return (\n \n {!isBusy && this.renderContent()}\n \n );\n }\n}\n\nexport default withOData(withTheme(withTranslation(\"Inbox\")(OtherFolderWindow)));","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { isDefined } from \"@utils/general\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { FileAction, ToolbarItemType } from \"../../enums\";\nimport { TRecordType, TValue } from \"../../global.types\";\nimport OtherFolderWindow from \"../../pages/inbox/OtherFolderWindow\";\nimport TestIds from \"../../testIds\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { IHandleCustomActionArgs } from \"../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../views/table/TableView.render.utils\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { IconButton } from \"../button\";\nimport FileUploadButton from \"../fileUploadButton/FileUploadButton\";\nimport FocusManager, { IFocusableItemProps } from \"../focusManager/FocusManager\";\nimport { BinIcon, FolderOtherIcon } from \"../icon\";\nimport { TId } from \"../table\";\nimport { Toolbar } from \"../toolbar/Toolbar\";\nimport File, { IFile } from \"./File\";\nimport { retrieveEntries, retrieveFile } from \"./File.utils\";\nimport FileDropArea from \"./FileDropArea\";\nimport FileGrid, { IFileGridProps } from \"./FileGrid\";\nimport FileList, { IFileListProps } from \"./FileList\";\nimport { StyledFileUploader } from \"./FileUploader.styles\";\n\nexport interface IFileActionEvent {\n id: TId;\n action: FileAction | string; // string for custom file actions\n}\n\nexport enum FileUploaderLayout {\n Grid = \"Grid\",\n List = \"List\"\n}\n\nconst LAYOUT_TOGGLE_BUTTON = \"LayoutToggleButton\";\n\ninterface IProps extends WithTranslation, WithBusyIndicator {\n files: IFile[];\n customDescription?: string;\n // accepted file extensions\n accept?: string;\n // accepts multiple files by default\n multiple?: boolean;\n /** Whether the file uploader listens for file over/drop events only on its DropArea or on document */\n isLocalDropArea?: boolean;\n isReadOnly?: boolean;\n disableOtherFolder?: boolean;\n isDeleteDisabled?: boolean;\n /** When file uploader lurks in a shadows, waiting for a file dropped somewhere in the whole window but not revealing it self */\n isHidden?: boolean;\n /** Items appended to the file context menu*/\n customFileActions?: ISelectItem[] | ((fileId: TId) => ISelectItem[]);\n onNewFiles?: (files: File[]) => void;\n onAttachInboxFiles?: (inboxFiles: TId[]) => Promise;\n onRemoveFiles?: (files: TId[]) => void;\n onFileAction?: (args: IFileActionEvent) => void;\n onFileClick?: (fileId: TId) => void;\n\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n\n className?: string;\n style?: React.CSSProperties;\n\n layout?: FileUploaderLayout;\n layoutComponentProps?: Partial;\n customToolbarContent?: IToolbarItem;\n onCustomToolbarAction?: (action: string, args: IHandleCustomActionArgs) => void;\n onRemoveActionToggle?: (state: boolean) => void;\n /** List of elements, that handles file drop for themselves,\n * and when user hovers files over them, in case this FileDropArea is global,\n * we should disable hover state in this FileDropArea */\n otherFileDropAreas?: HTMLElement[];\n\n hideInboxFileIds?: number[];\n}\n\ninterface IState {\n removing: boolean;\n removingFiles: TRecordType;\n showOtherFolder: boolean;\n showGrid: boolean;\n}\n\nclass FileUploader extends React.PureComponent {\n static contextType = AppContext;\n\n static defaultProps: Partial = {\n multiple: true\n };\n\n constructor(props: IProps, context: IAppContext) {\n super(props);\n const savedLayout = context.getData().personalizationSettings?.fileUploaderLayout;\n this.state = {\n removing: false,\n removingFiles: {},\n showOtherFolder: false,\n showGrid: savedLayout !== FileUploaderLayout.List\n };\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (this.props.files.length === 0 && prevProps.files.length > 0) {\n this.stopRemoving();\n }\n }\n\n // traverse folder structure to retrieve all files\n getAllFiles = async (item: any, path = \"\"): Promise => {\n let files: File[] = [];\n\n if (item?.isFile) {\n files.push(await retrieveFile(item));\n } else if (item?.isDirectory) {\n const dirReader = item.createReader();\n const entries = await retrieveEntries(dirReader);\n\n for (let i = 0; i < entries.length; i++) {\n files = [...files, ...await this.getAllFiles(entries[i], path + item.name + \"/\")];\n }\n }\n\n return files;\n };\n\n handleConfirmRemoveClick = () => {\n const files = Object.keys(this.state.removingFiles)\n .filter(fileId => this.state.removingFiles[fileId])\n .map(fileId => {\n return this.getOriginalFileId(fileId);\n });\n\n if (files.length > 0) {\n this.props.onRemoveFiles?.(files);\n }\n\n this.stopRemoving();\n };\n\n stopRemoving = () => {\n this.setState({\n removing: false,\n removingFiles: {}\n });\n this.props.onRemoveActionToggle?.(false);\n };\n\n handleRemoveButtonClick = () => {\n this.setState((state: IState) => {\n return {\n removing: true,\n removingFiles: !state.removing ? {} : state.removingFiles\n };\n });\n this.props.onRemoveActionToggle?.(true);\n };\n\n handleShowOtherFolder = () => {\n this.setState({ showOtherFolder: true });\n };\n\n handleCloseOtherFolder = () => {\n this.setState({ showOtherFolder: false });\n };\n\n // get original id, before we called toString on it\n getOriginalFileId = (fileId: TId) => {\n return this.props.files.find(file => file.id.toString() === fileId.toString()).id;\n };\n\n handleContextMenuSelection = (item: ISelectItem, fileId: TId) => {\n const fileAction = item.id as FileAction;\n this.props.onFileAction?.({\n id: this.getOriginalFileId(fileId),\n action: fileAction\n });\n };\n\n handleFileRemovingAction = (fileIds: TId[], forceState?: boolean) => {\n this.setState((state: IState) => {\n let removingFiles: TRecordType;\n if (isDefined(forceState)) {\n // toggleAll\n removingFiles = {};\n fileIds.forEach(fileId => {\n removingFiles[fileId.toString()] = forceState;\n });\n } else {\n removingFiles = { ...state.removingFiles };\n fileIds.forEach(fileId => {\n const strId = fileId.toString();\n if (state.removingFiles[strId]) {\n delete removingFiles[strId];\n } else {\n removingFiles[strId] = true;\n }\n });\n }\n\n return {\n removingFiles\n };\n });\n };\n\n handleFileClick = (fileId: TId) => {\n if (!this.state.removing) {\n this.props.onFileClick?.(fileId);\n }\n };\n\n renderContent = (focusableProps: IFocusableItemProps) => {\n if (!this.props.files?.length) {\n return null;\n }\n const Component = this.layoutComponent;\n return (\n \n );\n };\n\n get toggleLayoutButtonDef(): IToolbarItem {\n return {\n id: LAYOUT_TOGGLE_BUTTON,\n itemType: ToolbarItemType.SegmentedButton,\n itemProps: {\n def: [{\n id: FileUploaderLayout.Grid,\n title: this.props.t(\"Components:FileUploader.Grid\"),\n iconName: \"DocMenu\"\n }, {\n id: FileUploaderLayout.List,\n title: this.props.t(\"Components:FileUploader.List\"),\n iconName: \"DocList\"\n }],\n defaultSelectedButtonId: this.currentLayout\n }\n };\n }\n\n get currentLayout(): string {\n return this.props.layout ?? (this.state.showGrid ? FileUploaderLayout.Grid : FileUploaderLayout.List);\n }\n\n get layoutComponent() {\n return this.currentLayout === FileUploaderLayout.Grid ? FileGrid : FileList;\n }\n\n handleLayoutChange = (key: string): void => {\n this.context.changePersonalizationSetting(\"fileUploaderLayout\", key);\n this.setState({ showGrid: key === FileUploaderLayout.Grid });\n };\n\n handleToolbarChange = (id: string, value: TValue): void => {\n if (id === LAYOUT_TOGGLE_BUTTON) {\n this.handleLayoutChange(value as string);\n } else {\n this.props.onCustomToolbarAction?.(id, { value });\n }\n };\n\n renderToolbar = () => {\n const hasFiles = this.props.files?.length > 0;\n const predefinedLayout = isDefined(this.props.layout);\n const filesToRemoveCount = Object.keys(this.state.removingFiles ?? {}).length;\n\n return (\n <>\n \n {this.state.removing &&\n \n }\n\n {this.props.customToolbarContent}\n\n {hasFiles &&\n \n \n \n }\n\n {this.props.onAttachInboxFiles &&\n \n \n \n }\n\n \n \n \n );\n };\n\n render() {\n\n return (\n \n {({ itemProps, wrapperProps }) => (\n }>\n {!this.props.isReadOnly && !this.props.isHidden && this.renderToolbar()}\n 0}\n additionalContent={this.props.busyIndicator}\n isReadOnly={this.props.isReadOnly || this.state.removing}\n isLocalDropArea={this.props.isLocalDropArea}\n onNewFiles={this.props.onNewFiles}\n customDescription={this.props.customDescription}\n onDragEnter={this.props.onDragEnter}\n onDragLeave={this.props.onDragLeave}\n otherFileDropAreas={this.props.otherFileDropAreas}>\n {this.renderContent(itemProps)}\n \n {this.state.showOtherFolder &&\n \n }\n \n )}\n \n );\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(withTranslation([\"Components\", \"Common\"])(FileUploader));\n","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { StyledHiddenFileInput } from \"./FileUploader.styles\";\n\ninterface IProps {\n onChange?: (event: React.ChangeEvent) => void;\n // accepted extensions/MIME types\n accept?: string;\n multiple?: boolean;\n passRef?: React.RefObject;\n}\n\n/** Wrapper around invisible file input tag to prevent redundant code in every place file upload is used */\nexport default class HiddenFileInput extends React.PureComponent {\n handleFileInputChange = (event: React.ChangeEvent) => {\n this.props.onChange?.(event);\n // remove the value so that change event is triggered even when the same file is add again\n event.target.value = \"\";\n };\n\n render() {\n return (\n \n );\n }\n}","import styled, { css } from \"styled-components/macro\";\nimport { AnimationSize, AntAnim, SquirrelAnim } from \"../../animations/Animations\";\nimport { T_TITLE_2 } from \"../../global.style\";\nimport { StyledToolbar } from \"../toolbar/Toolbar.styles\";\n\nexport const PDF_PAGE_MARGIN = 10;\n\nexport const StyledFileViewer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: relative;\n width: 100%;\n // counter 10px from Toolbar margin\n height: calc(100% - 10px);\n flex-shrink: 0;\n\n & .react-pdf__Page:not(:last-child) {\n margin-bottom: ${`${PDF_PAGE_MARGIN}px`};\n }\n\n ${StyledToolbar} {\n margin-bottom: 10px;\n }\n`;\n\nexport const NoPreviewStyled = styled.div<{ isWithoutBackground?: boolean; }>`\n width: 100%;\n // fill rest of the space without 48px for header\n height: calc(100% - 48px);\n flex: 1 1 auto;\n background-color: ${props => props.isWithoutBackground ? null : props.theme.C_BG_menu};\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst NoPreviewAnimStyled = css`\n width: ${AnimationSize.M}px;\n height: ${AnimationSize.M}px;\n // 60px space for two lines of text below\n max-height: calc(100% - 60px);\n max-width: 100%;\n flex: 0 1 auto;\n`;\n\nexport const SquirrelAnimStyled = styled(SquirrelAnim)`\n ${NoPreviewAnimStyled};\n`;\n\nexport const AntAnimStyled = styled(AntAnim)`\n ${NoPreviewAnimStyled};\n`;\n\nexport const NoPreviewTextStyled = styled.div`\n max-width: 80%;\n flex: 0 0 auto;\n\n color: ${props => props.theme.C_ACT_thick_line};\n ${T_TITLE_2};\n text-align: center;\n white-space: pre-wrap;\n`;\n","import styled from \"styled-components/macro\";\n\nexport const StyledTextViewer = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n`;\n\nexport const FileText = styled.div`\n white-space: pre-wrap;\n height: 100%;\n overflow: auto;\n`;","import { saveAs } from \"file-saver\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { TValue } from \"../../../global.types\";\nimport TestIds from \"../../../testIds\";\nimport BusyIndicator from \"../../busyIndicator/BusyIndicator\";\nimport { Toolbar } from \"../../toolbar/Toolbar\";\nimport { StyledFileViewer } from \"../FileViewers.styles\";\nimport {\n FileToolbarItem,\n getFileNameFromSrc,\n getSharedToolbarDefinition,\n IFileViewerProps\n} from \"../FileViewers.utils\";\nimport NoPreviewSquirrel from \"../NoPreviewSquirrel\";\nimport { Header } from \"../pdfViewer/PDFViewer.style\";\nimport { FileText } from \"./TextViewer.style\";\n\ninterface IProps extends IFileViewerProps, WithTranslation {\n formatter?: (text: string) => string;\n}\n\ninterface IState {\n loaded: boolean;\n text: string;\n error: string;\n}\n\nclass TextViewer extends React.PureComponent {\n static defaultProps: Partial = {\n hiddenItems: []\n };\n\n state = {\n loaded: false,\n text: \"\",\n error: \"\"\n };\n\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (this.props.src !== prevProps.src) {\n this.init();\n }\n }\n\n init = async () => {\n if (!this.props.src) {\n return;\n }\n\n this.setState({\n loaded: false\n });\n\n let text = \"\";\n let error = \"\";\n\n try {\n const res = await fetch(this.props.src);\n\n if (!res.ok) {\n error = this.props.t(\"Components:FileViewers.FetchFailed\");\n } else {\n text = await res.text();\n }\n } catch (e) {\n error = e.message;\n }\n\n if (this.props.formatter) {\n text = this.props.formatter(text);\n }\n\n this.setState({\n text,\n error,\n loaded: true\n });\n };\n\n renderError = () => {\n return (\n \n );\n };\n\n handleItemChange = (id: string, value?: TValue) => {\n switch (id) {\n case FileToolbarItem.Dashboard:\n this.props.onGoToList?.();\n break;\n case FileToolbarItem.Download:\n saveAs(this.props.src, this.props.fileName ?? getFileNameFromSrc(this.props.src));\n break;\n case FileToolbarItem.Remove:\n this.props.onFileRemove?.(this.props.src);\n break;\n }\n };\n\n render() {\n const def = getSharedToolbarDefinition(this.props.isReadOnly, this.props.hiddenItems, this.props.isRemoveDisabled, this.props.t);\n\n return (\n \n
\n \n {def.items}\n \n
\n {!this.state.loaded &&\n \n }\n {!this.state.error &&\n \n {this.state.text}\n \n }\n {this.state.error && this.renderError()}\n
\n );\n }\n}\n\nexport default withTranslation([\"Components\"])(TextViewer);","import BusyIndicator from \"@components/busyIndicator\";\nimport { IFileViewerProps } from \"@components/fileViewers/FileViewers.utils\";\nimport TextViewer from \"@components/fileViewers/textViewer\";\nimport React from \"react\";\nimport type { XMLFormatterOptions } from \"xml-formatter\";\n\ninterface IProps extends IFileViewerProps {\n\n}\n\ninterface IState {\n isLoaded: boolean;\n}\n\nclass XmlViewer extends React.PureComponent {\n state: IState = {\n isLoaded: false\n };\n formatXml: (xml: string, options?: XMLFormatterOptions) => string;\n\n componentDidMount() {\n this.init();\n }\n\n init = async (): Promise => {\n // lazily load library only on demand\n const { default: formatXml } = await import(\"xml-formatter\");\n this.formatXml = formatXml;\n this.setState({ isLoaded: true });\n };\n\n formatter = (xml: string): string => {\n return this.formatXml(xml, {\n indentation: \" \",\n collapseContent: true\n });\n };\n\n render() {\n if (!this.state.isLoaded) {\n return ;\n }\n\n return (\n \n );\n }\n}\n\nexport default XmlViewer;\n","import styled from \"styled-components/macro\";\n\nexport const ImageWrapper = styled.div`\n flex: 1 1 0;\n height: 0;\n width: 100%;\n overflow: hidden;\n`;\n\nexport const Image = styled.img`\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center;\n`;","import React from \"react\";\nimport {\n FileToolbarItem,\n getFileNameFromSrc,\n getSharedToolbarDefinition,\n IFileViewerProps\n} from \"../FileViewers.utils\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Image, ImageWrapper } from \"./ImgViewer.styles\";\nimport { StyledFileViewer } from \"../FileViewers.styles\";\nimport { Header } from \"../pdfViewer/PDFViewer.style\";\nimport TestIds from \"../../../testIds\";\nimport { Toolbar } from \"../../toolbar/Toolbar\";\nimport BusyIndicator from \"../../busyIndicator/BusyIndicator\";\nimport { TValue } from \"../../../global.types\";\nimport NoPreviewSquirrel from \"../NoPreviewSquirrel\";\nimport { saveAs } from \"file-saver\";\n\ninterface IProps extends IFileViewerProps, WithTranslation {\n\n}\n\ninterface IState {\n loaded: boolean;\n error: string;\n}\n\nclass ImgViewer extends React.PureComponent {\n static defaultProps: Partial = {\n hiddenItems: []\n };\n\n state = {\n loaded: false,\n error: \"\"\n };\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (this.props.src !== prevProps.src) {\n this.setState({\n loaded: false,\n error: \"\"\n });\n }\n }\n\n handleImgLoad = () => {\n this.setState({\n loaded: true\n });\n };\n\n handleImgError = () => {\n this.setState({\n error: this.props.t(\"Components:FileViewers.FetchFailed\"),\n loaded: true\n });\n };\n\n renderError = () => {\n return (\n \n );\n };\n\n handleItemChange = (id: string, value?: TValue) => {\n switch (id) {\n case FileToolbarItem.Dashboard:\n this.props.onGoToList?.();\n break;\n case FileToolbarItem.Download:\n saveAs(this.props.src, this.props.fileName ?? getFileNameFromSrc(this.props.src));\n break;\n case FileToolbarItem.Remove:\n this.props.onFileRemove?.(this.props.src);\n break;\n default:\n this.props.onCustomFileAction?.(id);\n }\n };\n\n getToolbarDefinition = () => {\n const definition = getSharedToolbarDefinition(this.props.isReadOnly, this.props.hiddenItems, this.props.isRemoveDisabled, this.props.t);\n\n if (this.props.customFileActions) {\n definition.items = [\n ...this.props.customFileActions,\n ...definition.items\n ];\n }\n\n return definition;\n };\n\n render() {\n const def = this.getToolbarDefinition();\n\n return (\n \n
\n \n {def.items}\n \n
\n {!this.state.loaded &&\n \n }\n {!this.state.error &&\n \n \n \n }\n {this.state.error && this.renderError()}\n
\n );\n }\n}\n\nexport default withTranslation([\"Components\"])(ImgViewer);","import React from \"react\";\nimport { FileToolbarItem, getFileNameFromSrc, getSharedToolbarDefinition, IFileViewerProps } from \"./FileViewers.utils\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { NoPreviewStyled, StyledFileViewer } from \"./FileViewers.styles\";\nimport { Header } from \"./pdfViewer/PDFViewer.style\";\nimport TestIds from \"../../testIds\";\nimport { Toolbar } from \"../toolbar/Toolbar\";\nimport { TValue } from \"../../global.types\";\nimport NoPreviewSquirrel from \"./NoPreviewSquirrel\";\nimport { saveAs } from \"file-saver\";\nimport { NoData } from \"../table/NoData\";\n\ninterface IProps extends IFileViewerProps, WithTranslation {\n isEmpty?: boolean;\n}\n\nclass NoPreview extends React.PureComponent {\n static defaultProps: Partial = {\n hiddenItems: []\n };\n\n handleItemChange = (id: string, value?: TValue) => {\n switch (id) {\n case FileToolbarItem.Dashboard:\n this.props.onGoToList?.();\n break;\n case FileToolbarItem.Download:\n saveAs(this.props.src, this.props.fileName ?? getFileNameFromSrc(this.props.src));\n break;\n case FileToolbarItem.Remove:\n this.props.onFileRemove?.(this.props.src);\n break;\n }\n };\n\n render() {\n const def = getSharedToolbarDefinition(this.props.isReadOnly, this.props.hiddenItems, this.props.isRemoveDisabled, this.props.t);\n\n return (\n \n
\n \n {def.items}\n \n
\n {/* If file is defined => show squirrel ,\n If file is not defined at all => show NoData (spider) */}\n {!this.props.isEmpty &&\n }\n {this.props.isEmpty &&\n <>\n \n \n \n }\n
\n );\n }\n}\n\nexport default withTranslation([\"Components\"])(NoPreview);","import XmlViewer from \"@components/fileViewers/xmlViewer/XmlViewer\";\nimport { TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { TFunction } from \"i18next\";\nimport React from \"react\";\n\nimport { MimeType, ToolbarItemType } from \"../../enums\";\nimport {\n fileNameToMime,\n isFileImage,\n isFileIsDoc,\n isFilePdf,\n isFilePlainText,\n isFileXml\n} from \"../fileUploader/File.utils\";\nimport ImgViewer from \"./imgViewer/ImgViewer\";\nimport NoPreview from \"./NoPreview\";\nimport PDFViewer from \"./pdfViewer/PDFViewer\";\nimport TextViewer from \"./textViewer/TextViewer\";\n\nexport interface IFileViewerProps {\n src: string;\n fileName?: string;\n isReadOnly?: boolean;\n hiddenItems?: FileToolbarItem[];\n isRemoveDisabled?: boolean;\n onFileRemove?: (src: string) => void;\n onGoToList?: () => void;\n customFileActions?: TToolbarItem[];\n onCustomFileAction?: (actionId: string) => void;\n}\n\nconst getVisibleItem = (item: TToolbarItem, isVisible: boolean) => {\n return isVisible ? [item] : [];\n};\n\nexport enum FileToolbarItem {\n Dashboard = \"Dashboard\",\n PreviousPage = \"PreviousPage\",\n NextPage = \"NextPage\",\n PageCount = \"PageCount\",\n PointerType = \"PointerType\",\n ZoomIn = \"ZoomIn\",\n ZoomOut = \"ZoomOut\",\n Zoom = \"Zoom\",\n Fit = \"Fit\",\n Note = \"Note\",\n Download = \"Download\",\n Remove = \"Remove\",\n Print = \"Print\"\n}\n\nexport const getSharedToolbarDefinition = (isReadOnly: boolean, hiddenItems: FileToolbarItem[], isRemoveDisabled: boolean, t: TFunction): {\n staticItems: TToolbarItem[],\n items: TToolbarItem[]\n} => {\n return {\n staticItems: [\n ...getVisibleItem({\n id: FileToolbarItem.Dashboard,\n label: t(\"Components:Pdf.BackToList\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"Arrow\"\n }, !hiddenItems.includes(FileToolbarItem.Dashboard))\n ],\n items: [\n ...getVisibleItem({\n id: FileToolbarItem.Download,\n label: t(\"Components:FileUploader.Download\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"Download\"\n }, !hiddenItems.includes(FileToolbarItem.Download)),\n ...getVisibleItem({\n id: FileToolbarItem.Remove,\n label: t(\"Components:FileUploader.Delete\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"Bin\",\n isDisabled: isRemoveDisabled\n }, !isReadOnly && !hiddenItems.includes(FileToolbarItem.Remove))\n ]\n };\n};\n\nexport const getFileNameFromSrc = (src: string): string => {\n return src.split(\"/\").slice(-1)[0];\n};\n\nexport function isFileOpenable(name: string): boolean {\n const mimeType = fileNameToMime(name);\n return isFilePdf(mimeType) || isFileImage(mimeType) || isFilePlainText(mimeType) /*|| isFileIsDoc(name) || isFileXml(mimeType)*/;\n}\n\nexport function getFileViewer(mime: MimeType, props: IFileViewerProps): React.ReactElement {\n let viewer;\n\n if (isFilePdf(mime)) {\n viewer = ;\n } else if (isFilePlainText(mime)) {\n viewer = ;\n } else if (isFileImage(mime)) {\n viewer = ;\n } else if (isFileIsDoc(props.fileName) || isFileXml(mime)) {\n viewer = ;\n\n } else {\n // cannot be opened - illustration and possibility to download\n viewer = ;\n }\n\n return viewer;\n}\n","import React from \"react\";\nimport { NoPreviewStyled, NoPreviewTextStyled, SquirrelAnimStyled } from \"./FileViewers.styles\";\nimport TestIds from \"../../testIds\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps {\n text: string;\n}\n\nconst NoPreviewSquirrel: React.FC = ({ text }) => {\n const { t } = useTranslation(\"Components\");\n\n return (\n \n \n \n {text ?? t(\"Components:FileViewers.NoPreviewText\")}\n \n \n );\n};\n\nexport default NoPreviewSquirrel;","import styled from \"styled-components/macro\";\n\nexport const ResizerWrapper = styled.div`\n width: 100%;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n`;\n\nexport const Scroller = styled.div`\n height: 100%;\n width: 100%;\n display: flex;\n overflow: auto;\n position: relative;\n justify-content: center;\n`;\n\ninterface IPdfWrapper {\n isDraggable?: boolean;\n}\n\nexport const PdfWrapper = styled.div`\n // apparently, pdf should not be centered https://solitea-cz.atlassian.net/browse/DEV-10176 \n //margin: auto;\n outline: none;\n cursor: ${props => props.isDraggable ? \"grab\" : \"default\"};\n`;\n\nexport const Header = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\n\n","export default __webpack_public_path__ + \"2536c5c8133e3bd71ce018f8a692a4aa.js\";","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","export default function mergeClassNames() {\n return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {\n return classList.concat(arg);\n }, []).filter(function (arg) {\n return typeof arg === 'string';\n }).join(' ');\n}","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import React from 'react';\nimport PropTypes from 'prop-types';\nexport default function Message(_ref) {\n var children = _ref.children,\n type = _ref.type;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__message react-pdf__message--\".concat(type)\n }, children);\n}\nMessage.propTypes = {\n children: PropTypes.node,\n type: PropTypes.oneOf(['error', 'loading', 'no-data']).isRequired\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\n/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport invariant from 'tiny-invariant';\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\n\nvar LinkService = /*#__PURE__*/function () {\n function LinkService() {\n _classCallCheck(this, LinkService);\n\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n }\n\n _createClass(LinkService, [{\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n this.pdfDocument = pdfDocument;\n }\n }, {\n key: \"setViewer\",\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: \"setExternalLinkRel\",\n value: function setExternalLinkRel(externalLinkRel) {\n this.externalLinkRel = externalLinkRel;\n }\n }, {\n key: \"setExternalLinkTarget\",\n value: function setExternalLinkTarget(externalLinkTarget) {\n this.externalLinkTarget = externalLinkTarget;\n }\n }, {\n key: \"setHistory\",\n value: function setHistory() {}\n }, {\n key: \"pagesCount\",\n get: function get() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return this.pdfViewer.currentPageNumber;\n },\n set: function set(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n }, {\n key: \"rotation\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: \"goToDestination\",\n value: function goToDestination(dest) {\n var _this = this;\n\n new Promise(function (resolve) {\n if (typeof dest === 'string') {\n _this.pdfDocument.getDestination(dest).then(resolve);\n } else if (Array.isArray(dest)) {\n resolve(dest);\n } else {\n dest.then(resolve);\n }\n }).then(function (explicitDest) {\n invariant(Array.isArray(explicitDest), \"\\\"\".concat(explicitDest, \"\\\" is not a valid destination array.\"));\n var destRef = explicitDest[0];\n new Promise(function (resolve) {\n if (destRef instanceof Object) {\n _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n resolve(pageIndex);\n })[\"catch\"](function () {\n invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid page reference.\"));\n });\n } else if (typeof destRef === 'number') {\n resolve(destRef);\n } else {\n invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid destination reference.\"));\n }\n }).then(function (pageIndex) {\n var pageNumber = pageIndex + 1;\n invariant(pageNumber >= 1 && pageNumber <= _this.pagesCount, \"\\\"\".concat(pageNumber, \"\\\" is not a valid page number.\"));\n\n _this.pdfViewer.scrollPageIntoView({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n });\n });\n }\n }, {\n key: \"navigateTo\",\n value: function navigateTo(dest) {\n this.goToDestination(dest);\n }\n }, {\n key: \"goToPage\",\n value: function goToPage() {}\n }, {\n key: \"addLinkAttributes\",\n value: function addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash() {\n return '#';\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl() {\n return '#';\n }\n }, {\n key: \"setHash\",\n value: function setHash() {}\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction() {}\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef() {}\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible() {\n return true;\n }\n }, {\n key: \"isPageCached\",\n value: function isPageCached() {\n return true;\n }\n }]);\n\n return LinkService;\n}();\n\nexport { LinkService as default };","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexport default PasswordResponses;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\n/**\n * Checks if we're running in a browser environment.\n */\n\nexport var isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\n\nexport var isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checkes whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checkes whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checkes whether a variable provided is a File.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isFile(variable) {\n invariant(isBrowser, 'isFile can only be used in a browser environment');\n return variable instanceof File;\n}\n/**\n * Checks whether a string provided is a data URI.\n *\n * @param {string} str String to check\n */\n\nexport function isDataURI(str) {\n return isString(str) && /^data:/.test(str);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n\n var _dataURI$split = dataURI.split(','),\n _dataURI$split2 = _slicedToArray(_dataURI$split, 2),\n headersString = _dataURI$split2[0],\n dataString = _dataURI$split2[1];\n\n var headers = headersString.split(';');\n\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n\n return unescape(dataString);\n}\nexport function getPixelRatio() {\n return isBrowser && window.devicePixelRatio || 1;\n}\nvar allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, \"Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, \"Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask && runningTask.cancel) runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get: function get() {\n return this.view[2] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'height', {\n get: function get() {\n return this.view[3] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalWidth', {\n get: function get() {\n return this.view[2];\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalHeight', {\n get: function get() {\n return this.view[3];\n },\n configurable: true\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n return resolve(new Uint8Array(reader.result));\n };\n\n reader.onerror = function (event) {\n switch (event.target.error.code) {\n case event.target.error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n\n case event.target.error.NOT_READABLE_ERR:\n return reject(new Error('Error while reading a file: File not readable.'));\n\n case event.target.error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n\n case event.target.error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n\n reader.readAsArrayBuffer(file);\n return null;\n });\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport PropTypes from 'prop-types';\nimport { mouseEvents, touchEvents, keyboardEvents } from 'make-event-props';\nimport { isDefined } from './utils';\nimport LinkService from '../LinkService';\nexport var eventProps = function () {\n var result = {};\n [].concat(_toConsumableArray(mouseEvents), _toConsumableArray(touchEvents), _toConsumableArray(keyboardEvents)).forEach(function (eventName) {\n result[eventName] = PropTypes.func;\n });\n return result;\n}();\nvar fileTypes = [PropTypes.string, PropTypes.instanceOf(ArrayBuffer), PropTypes.shape({\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n httpHeaders: PropTypes.object,\n range: PropTypes.object,\n url: PropTypes.string,\n withCredentials: PropTypes.bool\n})];\n\nif (typeof File !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(File));\n}\n\nif (typeof Blob !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(Blob));\n}\n\nexport var isClassName = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]);\nexport var isFile = PropTypes.oneOfType(fileTypes);\nexport var isLinkService = PropTypes.instanceOf(LinkService);\nexport var isLinkTarget = PropTypes.oneOf(['_self', '_blank', '_parent', '_top']);\nexport var isPage = PropTypes.shape({\n _transport: PropTypes.shape({\n fontLoader: PropTypes.object.isRequired\n }).isRequired,\n commonObjs: PropTypes.shape({\n _objs: PropTypes.object.isRequired\n }).isRequired,\n getAnnotations: PropTypes.func.isRequired,\n getTextContent: PropTypes.func.isRequired,\n getViewport: PropTypes.func.isRequired,\n render: PropTypes.func.isRequired\n});\nexport var isPageIndex = function isPageIndex(props, propName, componentName) {\n var pageIndex = props[propName],\n pageNumber = props.pageNumber,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageIndex)) {\n if (typeof pageIndex !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageIndex), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageIndex < 0) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 0.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageIndex + 1 > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages - 1, \".\"));\n }\n } else if (!isDefined(pageNumber)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPageNumber = function isPageNumber(props, propName, componentName) {\n var pageNumber = props[propName],\n pageIndex = props.pageIndex,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageNumber)) {\n if (typeof pageNumber !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageNumber), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageNumber < 1) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 1.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageNumber > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages, \".\"));\n }\n } else if (!isDefined(pageIndex)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPdf = PropTypes.oneOfType([PropTypes.shape({\n getDestination: PropTypes.func.isRequired,\n getOutline: PropTypes.func.isRequired,\n getPage: PropTypes.func.isRequired,\n numPages: PropTypes.number.isRequired\n}), PropTypes.bool]);\nexport var isRef = PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var isRenderMode = PropTypes.oneOf(['canvas', 'none', 'svg']);\nexport var isRotate = PropTypes.oneOf([0, 90, 180, 270]);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"url\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Loads a PDF document. Passes it to all children.\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from './DocumentContext';\nimport Message from './Message';\nimport LinkService from './LinkService';\nimport PasswordResponses from './PasswordResponses';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, isFile, loadFromFile } from './shared/utils';\nimport { eventProps, isClassName, isFile as isFileProp, isRef } from './shared/propTypes';\nvar PDFDataRangeTransport = pdfjs.PDFDataRangeTransport;\n\nvar Document = /*#__PURE__*/function (_PureComponent) {\n _inherits(Document, _PureComponent);\n\n var _super = _createSuper(Document);\n\n function Document() {\n var _this;\n\n _classCallCheck(this, Document);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n pdf: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"viewer\", {\n scrollPageIntoView: function scrollPageIntoView(_ref) {\n var dest = _ref.dest,\n pageIndex = _ref.pageIndex,\n pageNumber = _ref.pageNumber;\n // Handling jumping to internal links target\n var onItemClick = _this.props.onItemClick; // First, check if custom handling of onItemClick was provided\n\n if (onItemClick) {\n onItemClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n return;\n } // If not, try to look for target page within the .\n\n\n var page = _this.pages[pageIndex];\n\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n\n warning(false, \"An internal link leading to page \".concat(pageNumber, \" was clicked, but neither was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to and handle navigating by yourself or ensure that all pages are rendered within .\"));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"linkService\", new LinkService());\n\n _defineProperty(_assertThisInitialized(_this), \"loadDocument\", function () {\n // If another rendering is in progress, let's cancel it\n cancelRunningTask(_this.runningTask); // If another loading is in progress, let's destroy it\n\n if (_this.loadingTask) _this.loadingTask.destroy();\n var cancellable = makeCancellable(_this.findDocumentSource());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (source) {\n _this.onSourceSuccess();\n\n if (!source) {\n return;\n }\n\n _this.setState(function (prevState) {\n if (!prevState.pdf) {\n return null;\n }\n\n return {\n pdf: null\n };\n });\n\n var _this$props = _this.props,\n options = _this$props.options,\n onLoadProgress = _this$props.onLoadProgress,\n onPassword = _this$props.onPassword;\n _this.loadingTask = pdfjs.getDocument(_objectSpread(_objectSpread({}, source), options));\n _this.loadingTask.onPassword = onPassword;\n\n if (onLoadProgress) {\n _this.loadingTask.onProgress = onLoadProgress;\n }\n\n var cancellable = makeCancellable(_this.loadingTask.promise);\n _this.runningTask = cancellable;\n cancellable.promise.then(function (pdf) {\n _this.setState(function (prevState) {\n if (prevState.pdf && prevState.pdf.fingerprint === pdf.fingerprint) {\n return null;\n }\n\n return {\n pdf: pdf\n };\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n })[\"catch\"](function (error) {\n _this.onSourceError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setupLinkService\", function () {\n var _this$props2 = _this.props,\n externalLinkRel = _this$props2.externalLinkRel,\n externalLinkTarget = _this$props2.externalLinkTarget;\n\n _this.linkService.setViewer(_this.viewer);\n\n _this.linkService.setExternalLinkRel(externalLinkRel);\n\n _this.linkService.setExternalLinkTarget(externalLinkTarget);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceSuccess\", function () {\n var onSourceSuccess = _this.props.onSourceSuccess;\n if (onSourceSuccess) onSourceSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceError\", function (error) {\n warning(error);\n var onSourceError = _this.props.onSourceError;\n if (onSourceError) onSourceError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var pdf = _this.state.pdf;\n if (onLoadSuccess) onLoadSuccess(pdf);\n _this.pages = new Array(pdf.numPages);\n\n _this.linkService.setDocument(pdf);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n pdf: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"findDocumentSource\", function () {\n return new Promise(function (resolve) {\n var file = _this.props.file;\n\n if (!file) {\n resolve(null);\n } // File is a string\n\n\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n var fileByteString = dataURItoByteString(file);\n resolve({\n data: fileByteString\n });\n }\n\n displayCORSWarning();\n resolve({\n url: file\n });\n } // File is PDFDataRangeTransport\n\n\n if (file instanceof PDFDataRangeTransport) {\n resolve({\n range: file\n });\n } // File is an ArrayBuffer\n\n\n if (isArrayBuffer(file)) {\n resolve({\n data: file\n });\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n\n\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file) || isFile(file)) {\n loadFromFile(file).then(function (data) {\n resolve({\n data: data\n });\n });\n return;\n }\n } // At this point, file must be an object\n\n\n invariant(_typeof(file) === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(file.url || file.data || file.range, 'Invalid parameter object: need either .data, .range or .url'); // File .url is a string\n\n if (typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n var url = file.url,\n otherParams = _objectWithoutProperties(file, _excluded);\n\n var _fileByteString = dataURItoByteString(url);\n\n resolve(_objectSpread({\n data: _fileByteString\n }, otherParams));\n }\n\n displayCORSWarning();\n }\n\n resolve(file);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"registerPage\", function (pageIndex, ref) {\n _this.pages[pageIndex] = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unregisterPage\", function (pageIndex) {\n delete _this.pages[pageIndex];\n });\n\n return _this;\n }\n\n _createClass(Document, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.loadDocument();\n this.setupLinkService();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var file = this.props.file;\n\n if (file !== prevProps.file) {\n this.loadDocument();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // If rendering is in progress, let's cancel it\n cancelRunningTask(this.runningTask); // If loading is in progress, let's destroy it\n\n if (this.loadingTask) this.loadingTask.destroy();\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var linkService = this.linkService,\n registerPage = this.registerPage,\n unregisterPage = this.unregisterPage;\n var _this$props3 = this.props,\n imageResourcesPath = _this$props3.imageResourcesPath,\n renderMode = _this$props3.renderMode,\n rotate = _this$props3.rotate;\n var pdf = this.state.pdf;\n return {\n imageResourcesPath: imageResourcesPath,\n linkService: linkService,\n pdf: pdf,\n registerPage: registerPage,\n renderMode: renderMode,\n rotate: rotate,\n unregisterPage: unregisterPage\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n return _this2.state.pdf;\n });\n }\n /**\n * Called when a document source is resolved correctly\n */\n\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(DocumentContext.Provider, {\n value: this.childContext\n }, children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var file = this.props.file;\n var pdf = this.state.pdf;\n\n if (!file) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n className = _this$props4.className,\n inputRef = _this$props4.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Document', className),\n ref: inputRef\n }, this.eventProps), this.renderContent());\n }\n }]);\n\n return Document;\n}(PureComponent);\n\nexport { Document as default };\nDocument.defaultProps = {\n error: 'Failed to load PDF file.',\n loading: 'Loading PDF…',\n noData: 'No PDF file specified.',\n onPassword: function onPassword(callback, reason) {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n\n case PasswordResponses.INCORRECT_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var _password = prompt('Invalid password. Please try again.');\n\n callback(_password);\n break;\n }\n\n default:\n }\n }\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nDocument.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n children: PropTypes.node,\n className: isClassName,\n error: isFunctionOrNode,\n externalLinkRel: PropTypes.string,\n externalLinkTarget: PropTypes.string,\n file: isFileProp,\n imageResourcesPath: PropTypes.string,\n inputRef: isRef,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadProgress: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onPassword: PropTypes.func,\n onSourceError: PropTypes.func,\n onSourceSuccess: PropTypes.func,\n rotate: PropTypes.number\n});","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\nvar Ref = /*#__PURE__*/function () {\n function Ref(_ref) {\n var num = _ref.num,\n gen = _ref.gen;\n\n _classCallCheck(this, Ref);\n\n this.num = num;\n this.gen = gen;\n }\n\n _createClass(Ref, [{\n key: \"toString\",\n value: function toString() {\n var str = \"\".concat(this.num, \"R\");\n\n if (this.gen !== 0) {\n str += this.gen;\n }\n\n return str;\n }\n }]);\n\n return Ref;\n}();\n\nexport { Ref as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"item\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport Ref from './Ref';\nimport { isDefined } from './shared/utils';\nimport { isPdf } from './shared/propTypes';\nexport var OutlineItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineItemInternal, _PureComponent);\n\n var _super = _createSuper(OutlineItemInternal);\n\n function OutlineItemInternal() {\n var _this;\n\n _classCallCheck(this, OutlineItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"getDestination\", function () {\n return new Promise(function (resolve, reject) {\n var _this$props = _this.props,\n item = _this$props.item,\n pdf = _this$props.pdf;\n\n if (!isDefined(_this.destination)) {\n if (typeof item.dest === 'string') {\n pdf.getDestination(item.dest).then(resolve)[\"catch\"](reject);\n } else {\n resolve(item.dest);\n }\n }\n\n return _this.destination;\n }).then(function (destination) {\n _this.destination = destination;\n return destination;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPageIndex\", function () {\n return new Promise(function (resolve, reject) {\n var pdf = _this.props.pdf;\n\n if (isDefined(_this.pageIndex)) {\n resolve(_this.pageIndex);\n }\n\n _this.getDestination().then(function (destination) {\n if (!destination) {\n return;\n }\n\n var _destination = _slicedToArray(destination, 1),\n ref = _destination[0];\n\n pdf.getPageIndex(new Ref(ref)).then(resolve)[\"catch\"](reject);\n });\n }).then(function (pageIndex) {\n _this.pageIndex = pageIndex;\n return _this.pageIndex;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPageNumber\", function () {\n return new Promise(function (resolve, reject) {\n if (isDefined(_this.pageNumber)) {\n resolve(_this.pageNumber);\n }\n\n _this.getPageIndex().then(function (pageIndex) {\n resolve(pageIndex + 1);\n })[\"catch\"](reject);\n }).then(function (pageNumber) {\n _this.pageNumber = pageNumber;\n return pageNumber;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var onClick = _this.props.onClick;\n event.preventDefault();\n\n if (!onClick) {\n return false;\n }\n\n return Promise.all([_this.getDestination(), _this.getPageIndex(), _this.getPageNumber()]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n dest = _ref2[0],\n pageIndex = _ref2[1],\n pageNumber = _ref2[2];\n\n onClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n });\n });\n\n return _this;\n }\n\n _createClass(OutlineItemInternal, [{\n key: \"renderSubitems\",\n value: function renderSubitems() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n otherProps = _objectWithoutProperties(_this$props2, _excluded);\n\n if (!item.items || !item.items.length) {\n return null;\n }\n\n var subitems = item.items;\n return /*#__PURE__*/React.createElement(\"ul\", null, subitems.map(function (subitem, subitemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({\n key: typeof subitem.destination === 'string' ? subitem.destination : subitemIndex,\n item: subitem\n }, otherProps));\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var item = this.props.item;\n return /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"a\", {\n href: \"#\",\n onClick: this.onClick\n }, item.title), this.renderSubitems());\n }\n }]);\n\n return OutlineItemInternal;\n}(PureComponent);\nvar isDestination = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.any)]);\nOutlineItemInternal.propTypes = {\n item: PropTypes.shape({\n dest: isDestination,\n items: PropTypes.arrayOf(PropTypes.shape({\n dest: isDestination,\n title: PropTypes.string\n })),\n title: PropTypes.string\n }).isRequired,\n onClick: PropTypes.func,\n pdf: isPdf.isRequired\n};\n\nvar OutlineItem = function OutlineItem(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(OutlineContext.Consumer, null, function (outlineContext) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({}, documentContext, outlineContext, props));\n });\n });\n};\n\nexport default OutlineItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport OutlineItem from './OutlineItem';\nimport { cancelRunningTask } from './shared/utils';\nimport { eventProps, isClassName, isPdf, isRef } from './shared/propTypes';\nexport var OutlineInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineInternal, _PureComponent);\n\n var _super = _createSuper(OutlineInternal);\n\n function OutlineInternal() {\n var _this;\n\n _classCallCheck(this, OutlineInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n outline: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadOutline\", function () {\n var pdf = _this.props.pdf;\n\n _this.setState(function (prevState) {\n if (!prevState.outline) {\n return null;\n }\n\n return {\n outline: null\n };\n });\n\n var cancellable = makeCancellable(pdf.getOutline());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (outline) {\n _this.setState({\n outline: outline\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var outline = _this.state.outline;\n if (onLoadSuccess) onLoadSuccess(outline);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n outline: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onItemClick\", function (_ref) {\n var dest = _ref.dest,\n pageIndex = _ref.pageIndex,\n pageNumber = _ref.pageNumber;\n var onItemClick = _this.props.onItemClick;\n\n if (onItemClick) {\n onItemClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n }\n });\n\n return _this;\n }\n\n _createClass(OutlineInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n invariant(pdf, 'Attempted to load an outline, but no document was specified.');\n this.loadOutline();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf) {\n this.loadOutline();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"childContext\",\n get: function get() {\n return {\n onClick: this.onItemClick\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n return _this2.state.outline;\n });\n }\n /**\n * Called when an outline is read successfully\n */\n\n }, {\n key: \"renderOutline\",\n value: function renderOutline() {\n var outline = this.state.outline;\n return /*#__PURE__*/React.createElement(\"ul\", null, outline.map(function (item, itemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItem, {\n key: typeof item.destination === 'string' ? item.destination : itemIndex,\n item: item\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var pdf = this.props.pdf;\n var outline = this.state.outline;\n\n if (!pdf || !outline) {\n return null;\n }\n\n var _this$props = this.props,\n className = _this$props.className,\n inputRef = _this$props.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Outline', className),\n ref: inputRef\n }, this.eventProps), /*#__PURE__*/React.createElement(OutlineContext.Provider, {\n value: this.childContext\n }, this.renderOutline()));\n }\n }]);\n\n return OutlineInternal;\n}(PureComponent);\nOutlineInternal.propTypes = _objectSpread({\n className: isClassName,\n inputRef: isRef,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n pdf: isPdf\n}, eventProps);\n\nfunction Outline(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(OutlineInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Outline);","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n *
\n * ```\n *\n * @param {(React.Ref | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref | React.RefCallback} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport mergeRefs from 'merge-refs';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { getPixelRatio, isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRef, isRotate } from '../shared/propTypes';\nvar ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport var PageCanvasInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageCanvasInternal, _PureComponent);\n\n var _super = _createSuper(PageCanvasInternal);\n\n function PageCanvasInternal() {\n var _this;\n\n _classCallCheck(this, PageCanvasInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"canvasElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n warning(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnCanvas\", function () {\n var canvas = _this.canvasElement.current;\n\n if (!canvas) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n renderViewport = _assertThisInitialize.renderViewport,\n viewport = _assertThisInitialize.viewport;\n\n var _this$props2 = _this.props,\n canvasBackground = _this$props2.canvasBackground,\n page = _this$props2.page,\n renderForms = _this$props2.renderForms;\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = \"\".concat(Math.floor(viewport.width), \"px\");\n canvas.style.height = \"\".concat(Math.floor(viewport.height), \"px\");\n var renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n\n get canvasContext() {\n return canvas.getContext('2d');\n },\n\n viewport: renderViewport\n };\n\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n } // If another render is in progress, let's cancel it\n\n\n _this.cancelRenderingTask();\n\n _this.renderer = page.render(renderContext);\n return _this.renderer.promise.then(_this.onRenderSuccess)[\"catch\"](_this.onRenderError);\n });\n\n return _this;\n }\n\n _createClass(PageCanvasInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.drawPageOnCanvas();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n canvasBackground = _this$props3.canvasBackground,\n page = _this$props3.page,\n renderForms = _this$props3.renderForms;\n\n if (canvasBackground !== prevProps.canvasBackground || renderForms !== prevProps.renderForms) {\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n this.drawPageOnCanvas();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRenderingTask();\n var canvas = this.canvasElement.current;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }\n }, {\n key: \"cancelRenderingTask\",\n value: function cancelRenderingTask() {\n if (this.renderer) {\n this.renderer.cancel();\n this.renderer = null;\n }\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"renderViewport\",\n get: function get() {\n var _this$props4 = this.props,\n page = _this$props4.page,\n rotate = _this$props4.rotate,\n scale = _this$props4.scale;\n var pixelRatio = getPixelRatio();\n return page.getViewport({\n scale: scale * pixelRatio,\n rotation: rotate\n });\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props5 = this.props,\n page = _this$props5.page,\n rotate = _this$props5.rotate,\n scale = _this$props5.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var canvasRef = this.props.canvasRef;\n return /*#__PURE__*/React.createElement(\"canvas\", {\n className: \"react-pdf__Page__canvas\",\n dir: \"ltr\",\n ref: mergeRefs(canvasRef, this.canvasElement),\n style: {\n display: 'block',\n userSelect: 'none'\n }\n });\n }\n }]);\n\n return PageCanvasInternal;\n}(PureComponent);\nPageCanvasInternal.propTypes = {\n canvasBackground: PropTypes.string,\n canvasRef: isRef,\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n renderForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number.isRequired\n};\nexport default function PageCanvas(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageCanvasInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var PageSVGInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageSVGInternal, _PureComponent);\n\n var _super = _createSuper(PageSVGInternal);\n\n function PageSVGInternal() {\n var _this;\n\n _classCallCheck(this, PageSVGInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n svg: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n warning(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSVG\", function () {\n var page = _this.props.page;\n _this.renderer = page.getOperatorList();\n return _this.renderer.then(function (operatorList) {\n var svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n _this.renderer = svgGfx.getSVG(operatorList, _this.viewport).then(function (svg) {\n _this.setState({\n svg: svg\n }, _this.onRenderSuccess);\n })[\"catch\"](_this.onRenderError);\n })[\"catch\"](_this.onRenderError);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnContainer\", function (element) {\n var svg = _this.state.svg;\n\n if (!element || !svg) {\n return;\n } // Append SVG element to the main container, if this hasn't been done already\n\n\n if (!element.firstElementChild) {\n element.appendChild(svg);\n }\n\n var _this$viewport = _this.viewport,\n width = _this$viewport.width,\n height = _this$viewport.height;\n svg.setAttribute('width', width);\n svg.setAttribute('height', height);\n });\n\n return _this;\n }\n\n _createClass(PageSVGInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderSVG();\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate,\n scale = _this$props2.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$viewport2 = this.viewport,\n width = _this$viewport2.width,\n height = _this$viewport2.height;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__svg\" // Note: This cannot be shortened, as we need this function to be called with each render.\n ,\n ref: function ref(_ref) {\n return _this2.drawPageOnContainer(_ref);\n },\n style: {\n display: 'block',\n backgroundColor: 'white',\n overflow: 'hidden',\n width: width,\n height: height,\n userSelect: 'none'\n }\n });\n }\n }]);\n\n return PageSVGInternal;\n}(PureComponent);\nPageSVGInternal.propTypes = {\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number.isRequired\n};\nexport default function PageSVG(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageSVGInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport PageContext from '../PageContext';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerItemInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerItemInternal);\n\n function TextLayerItemInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"itemElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"getElementWidth\", function (element) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n sideways = _assertThisInitialize.sideways;\n\n return element.getBoundingClientRect()[sideways ? 'height' : 'width'];\n });\n\n return _this;\n }\n\n _createClass(TextLayerItemInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.alignTextItem();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.alignTextItem();\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props = this.props,\n page = _this$props.page,\n scale = _this$props.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate;\n return rotate - page.rotate;\n }\n }, {\n key: \"sideways\",\n get: function get() {\n var rotate = this.rotate;\n return rotate % 180 !== 0;\n }\n }, {\n key: \"defaultSideways\",\n get: function get() {\n var rotation = this.unrotatedViewport.rotation;\n return rotation % 180 !== 0;\n }\n }, {\n key: \"fontSize\",\n get: function get() {\n var transform = this.props.transform;\n var defaultSideways = this.defaultSideways;\n\n var _transform = _slicedToArray(transform, 2),\n fontHeightPx = _transform[0],\n fontWidthPx = _transform[1];\n\n return defaultSideways ? fontWidthPx : fontHeightPx;\n }\n }, {\n key: \"top\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform2 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n offsetX = _transform2[2],\n offsetY = _transform2[3],\n x = _transform2[4],\n y = _transform2[5];\n\n var _viewport$viewBox = _slicedToArray(viewport.viewBox, 4),\n\n /* xMin */\n yMin\n /* xMax */\n = _viewport$viewBox[1],\n yMax = _viewport$viewBox[3];\n\n return defaultSideways ? x + offsetX + yMin : yMax - (y + offsetY);\n }\n }, {\n key: \"left\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform3 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n\n /* offsetX */\n\n /* offsetY */\n x = _transform3[4],\n y = _transform3[5];\n\n var _viewport$viewBox2 = _slicedToArray(viewport.viewBox, 1),\n xMin = _viewport$viewBox2[0];\n\n return defaultSideways ? y - xMin : x - xMin;\n }\n }, {\n key: \"getFontData\",\n value: function getFontData(fontName) {\n var page = this.props.page;\n return new Promise(function (resolve) {\n page.commonObjs.get(fontName, resolve);\n });\n }\n }, {\n key: \"alignTextItem\",\n value: function alignTextItem() {\n var _this2 = this;\n\n var element = this.itemElement.current;\n\n if (!element) {\n return;\n }\n\n element.style.transform = '';\n var _this$props3 = this.props,\n fontName = _this$props3.fontName,\n scale = _this$props3.scale,\n width = _this$props3.width;\n element.style.fontFamily = \"\".concat(fontName, \", sans-serif\");\n this.getFontData(fontName).then(function (fontData) {\n var fallbackFontName = fontData ? fontData.fallbackName : 'sans-serif';\n element.style.fontFamily = \"\".concat(fontName, \", \").concat(fallbackFontName);\n var targetWidth = width * scale;\n\n var actualWidth = _this2.getElementWidth(element);\n\n var transform = \"scaleX(\".concat(targetWidth / actualWidth, \")\");\n var ascent = fontData ? fontData.ascent : 0;\n\n if (ascent) {\n transform += \" translateY(\".concat((1 - ascent) * 100, \"%)\");\n }\n\n element.style.transform = transform;\n element.style.WebkitTransform = transform;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var fontSize = this.fontSize,\n top = this.top,\n left = this.left;\n var _this$props4 = this.props,\n customTextRenderer = _this$props4.customTextRenderer,\n scale = _this$props4.scale,\n text = _this$props4.str;\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: this.itemElement,\n style: {\n height: '1em',\n fontFamily: 'sans-serif',\n fontSize: \"\".concat(fontSize * scale, \"px\"),\n position: 'absolute',\n top: \"\".concat(top * scale, \"px\"),\n left: \"\".concat(left * scale, \"px\"),\n transformOrigin: 'left bottom',\n whiteSpace: 'pre',\n pointerEvents: 'all'\n }\n }, customTextRenderer ? customTextRenderer(this.props) : text);\n }\n }]);\n\n return TextLayerItemInternal;\n}(PureComponent);\nTextLayerItemInternal.propTypes = {\n customTextRenderer: PropTypes.func,\n fontName: PropTypes.string.isRequired,\n itemIndex: PropTypes.number.isRequired,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number,\n str: PropTypes.string.isRequired,\n transform: PropTypes.arrayOf(PropTypes.number).isRequired,\n width: PropTypes.number.isRequired\n};\nexport default function TextLayerItem(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerItemInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport PageContext from '../PageContext';\nimport TextLayerItem from './TextLayerItem';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerInternal);\n\n function TextLayerInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n textItems: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadTextItems\", function () {\n var page = _this.props.page;\n var cancellable = makeCancellable(page.getTextContent());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (_ref) {\n var textItems = _ref.items;\n\n _this.setState({\n textItems: textItems\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetTextSuccess = _this.props.onGetTextSuccess;\n var textItems = _this.state.textItems;\n if (onGetTextSuccess) onGetTextSuccess(textItems);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n textItems: false\n });\n\n warning(error);\n var onGetTextError = _this.props.onGetTextError;\n if (onGetTextError) onGetTextError(error);\n });\n\n return _this;\n }\n\n _createClass(TextLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n this.loadTextItems();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var page = this.props.page;\n\n if (prevProps.page && page !== prevProps.page) {\n this.loadTextItems();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props = this.props,\n page = _this$props.page,\n scale = _this$props.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate;\n return rotate - page.rotate;\n }\n }, {\n key: \"renderTextItems\",\n value: function renderTextItems() {\n var textItems = this.state.textItems;\n\n if (!textItems) {\n return null;\n }\n\n return textItems.map(function (textItem, itemIndex) {\n return /*#__PURE__*/React.createElement(TextLayerItem // eslint-disable-next-line react/no-array-index-key\n , _extends({\n key: itemIndex,\n itemIndex: itemIndex\n }, textItem));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var viewport = this.unrotatedViewport,\n rotate = this.rotate;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__textContent\",\n style: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: \"\".concat(viewport.width, \"px\"),\n height: \"\".concat(viewport.height, \"px\"),\n color: 'transparent',\n transform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n WebkitTransform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n pointerEvents: 'none'\n }\n }, this.renderTextItems());\n }\n }]);\n\n return TextLayerInternal;\n}(PureComponent);\nTextLayerInternal.propTypes = {\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number\n};\nexport default function TextLayer(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from '../DocumentContext';\nimport PageContext from '../PageContext';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isLinkService, isPage, isRotate } from '../shared/propTypes';\nexport var AnnotationLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(AnnotationLayerInternal, _PureComponent);\n\n var _super = _createSuper(AnnotationLayerInternal);\n\n function AnnotationLayerInternal() {\n var _this;\n\n _classCallCheck(this, AnnotationLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n annotations: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"layerElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"loadAnnotations\", function () {\n var page = _this.props.page;\n var cancellable = makeCancellable(page.getAnnotations());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (annotations) {\n _this.setState({\n annotations: annotations\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetAnnotationsSuccess = _this.props.onGetAnnotationsSuccess;\n var annotations = _this.state.annotations;\n if (onGetAnnotationsSuccess) onGetAnnotationsSuccess(annotations);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n annotations: false\n });\n\n warning(error);\n var onGetAnnotationsError = _this.props.onGetAnnotationsError;\n if (onGetAnnotationsError) onGetAnnotationsError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n var onRenderAnnotationLayerSuccess = _this.props.onRenderAnnotationLayerSuccess;\n if (onRenderAnnotationLayerSuccess) onRenderAnnotationLayerSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n warning(error);\n var onRenderAnnotationLayerError = _this.props.onRenderAnnotationLayerError;\n if (onRenderAnnotationLayerError) onRenderAnnotationLayerError(error);\n });\n\n return _this;\n }\n\n _createClass(AnnotationLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n this.loadAnnotations();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n page = _this$props.page,\n renderForms = _this$props.renderForms;\n\n if (prevProps.page && page !== prevProps.page || renderForms !== prevProps.renderForms) {\n this.loadAnnotations();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate,\n scale = _this$props2.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var annotations = this.state.annotations;\n\n if (!annotations) {\n return;\n }\n\n var _this$props3 = this.props,\n imageResourcesPath = _this$props3.imageResourcesPath,\n linkService = _this$props3.linkService,\n page = _this$props3.page,\n renderForms = _this$props3.renderForms;\n var viewport = this.viewport.clone({\n dontFlip: true\n });\n var parameters = {\n annotations: annotations,\n div: this.layerElement.current,\n imageResourcesPath: imageResourcesPath,\n linkService: linkService,\n page: page,\n renderForms: renderForms,\n viewport: viewport\n };\n this.layerElement.current.innerHTML = '';\n\n try {\n pdfjs.AnnotationLayer.render(parameters);\n this.onRenderSuccess();\n } catch (error) {\n this.onRenderError(error);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__annotations annotationLayer\",\n ref: this.layerElement\n }, this.renderAnnotationLayer());\n }\n }]);\n\n return AnnotationLayerInternal;\n}(PureComponent);\nAnnotationLayerInternal.propTypes = {\n imageResourcesPath: PropTypes.string,\n linkService: isLinkService.isRequired,\n onGetAnnotationsError: PropTypes.func,\n onGetAnnotationsSuccess: PropTypes.func,\n onRenderAnnotationLayerError: PropTypes.func,\n onRenderAnnotationLayerSuccess: PropTypes.func,\n page: isPage,\n renderForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number\n};\n\nvar AnnotationLayer = function AnnotationLayer(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (pageContext) {\n return /*#__PURE__*/React.createElement(AnnotationLayerInternal, _extends({}, documentContext, pageContext, props));\n });\n });\n};\n\nexport default AnnotationLayer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport PageContext from './PageContext';\nimport Message from './Message';\nimport PageCanvas from './Page/PageCanvas';\nimport PageSVG from './Page/PageSVG';\nimport TextLayer from './Page/TextLayer';\nimport AnnotationLayer from './Page/AnnotationLayer';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils';\nimport { eventProps, isClassName, isPageIndex, isPageNumber, isPdf, isRef, isRenderMode, isRotate } from './shared/propTypes';\nvar defaultScale = 1;\nexport var PageInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageInternal, _PureComponent);\n\n var _super = _createSuper(PageInternal);\n\n function PageInternal() {\n var _this;\n\n _classCallCheck(this, PageInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n page: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pageElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var _this$props = _this.props,\n onLoadSuccess = _this$props.onLoadSuccess,\n registerPage = _this$props.registerPage;\n var page = _this.state.page;\n if (onLoadSuccess) onLoadSuccess(makePageCallback(page, _this.scale));\n if (registerPage) registerPage(_this.pageIndex, _this.pageElement.current);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n page: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadPage\", function () {\n var pdf = _this.props.pdf;\n\n var pageNumber = _this.getPageNumber();\n\n if (!pageNumber) {\n return;\n }\n\n _this.setState(function (prevState) {\n if (!prevState.page) {\n return null;\n }\n\n return {\n page: null\n };\n });\n\n var cancellable = makeCancellable(pdf.getPage(pageNumber));\n _this.runningTask = cancellable;\n cancellable.promise.then(function (page) {\n _this.setState({\n page: page\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n return _this;\n }\n\n _createClass(PageInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n invariant(pdf, 'Attempted to load a page, but no document was specified.');\n this.loadPage();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf || this.getPageNumber() !== this.getPageNumber(prevProps)) {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.getPageIndex(prevProps));\n this.loadPage();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.pageIndex);\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return {};\n }\n\n var _this$props2 = this.props,\n canvasBackground = _this$props2.canvasBackground,\n customTextRenderer = _this$props2.customTextRenderer,\n onGetAnnotationsError = _this$props2.onGetAnnotationsError,\n onGetAnnotationsSuccess = _this$props2.onGetAnnotationsSuccess,\n onGetTextError = _this$props2.onGetTextError,\n onGetTextSuccess = _this$props2.onGetTextSuccess,\n onRenderAnnotationLayerError = _this$props2.onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess = _this$props2.onRenderAnnotationLayerSuccess,\n onRenderError = _this$props2.onRenderError,\n onRenderSuccess = _this$props2.onRenderSuccess,\n renderForms = _this$props2.renderForms,\n renderInteractiveForms = _this$props2.renderInteractiveForms;\n return {\n canvasBackground: canvasBackground,\n customTextRenderer: customTextRenderer,\n onGetAnnotationsError: onGetAnnotationsError,\n onGetAnnotationsSuccess: onGetAnnotationsSuccess,\n onGetTextError: onGetTextError,\n onGetTextSuccess: onGetTextSuccess,\n onRenderAnnotationLayerError: onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccess,\n onRenderError: onRenderError,\n onRenderSuccess: onRenderSuccess,\n page: page,\n renderForms: renderForms !== null && renderForms !== void 0 ? renderForms : renderInteractiveForms,\n // For backward compatibility\n rotate: this.rotate,\n scale: this.scale\n };\n }\n /**\n * Called when a page is loaded successfully\n */\n\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber - 1;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex;\n }\n\n return null;\n }\n }, {\n key: \"getPageNumber\",\n value: function getPageNumber() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex + 1;\n }\n\n return null;\n }\n }, {\n key: \"pageIndex\",\n get: function get() {\n return this.getPageIndex();\n }\n }, {\n key: \"pageNumber\",\n get: function get() {\n return this.getPageNumber();\n }\n }, {\n key: \"rotate\",\n get: function get() {\n var rotate = this.props.rotate;\n\n if (isProvided(rotate)) {\n return rotate;\n }\n\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n return page.rotate;\n }\n }, {\n key: \"scale\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n var _this$props3 = this.props,\n scale = _this$props3.scale,\n width = _this$props3.width,\n height = _this$props3.height;\n var rotate = this.rotate; // Be default, we'll render page at 100% * scale width.\n\n var pageScale = 1; // Passing scale explicitly null would cause the page not to render\n\n var scaleWithDefault = scale === null ? defaultScale : scale; // If width/height is defined, calculate the scale of the page so it could be of desired width.\n\n if (width || height) {\n var viewport = page.getViewport({\n scale: 1,\n rotation: rotate\n });\n pageScale = width ? width / viewport.width : height / viewport.height;\n }\n\n return scaleWithDefault * pageScale;\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n var page = _this2.state.page;\n\n if (!page) {\n return page;\n }\n\n return makePageCallback(page, _this2.scale);\n });\n }\n }, {\n key: \"pageKey\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"@\").concat(this.scale, \"/\").concat(this.rotate);\n }\n }, {\n key: \"pageKeyNoScale\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"/\").concat(this.rotate);\n }\n }, {\n key: \"renderMainLayer\",\n value: function renderMainLayer() {\n var _this$props4 = this.props,\n canvasRef = _this$props4.canvasRef,\n renderMode = _this$props4.renderMode;\n\n switch (renderMode) {\n case 'none':\n return null;\n\n case 'svg':\n return /*#__PURE__*/React.createElement(PageSVG, {\n key: \"\".concat(this.pageKeyNoScale, \"_svg\")\n });\n\n case 'canvas':\n default:\n return /*#__PURE__*/React.createElement(PageCanvas, {\n key: \"\".concat(this.pageKey, \"_canvas\"),\n canvasRef: canvasRef\n });\n }\n }\n }, {\n key: \"renderTextLayer\",\n value: function renderTextLayer() {\n var renderTextLayer = this.props.renderTextLayer;\n\n if (!renderTextLayer) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(TextLayer, {\n key: \"\".concat(this.pageKey, \"_text\")\n });\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var renderAnnotationLayer = this.props.renderAnnotationLayer;\n\n if (!renderAnnotationLayer) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n\n\n return /*#__PURE__*/React.createElement(AnnotationLayer, {\n key: \"\".concat(this.pageKey, \"_annotations\")\n });\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(PageContext.Provider, {\n value: this.childContext\n }, this.renderMainLayer(), this.renderTextLayer(), this.renderAnnotationLayer(), children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var pageNumber = this.pageNumber;\n var pdf = this.props.pdf;\n var page = this.state.page;\n\n if (!pageNumber) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null || page === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false || page === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var pageNumber = this.pageNumber;\n var _this$props5 = this.props,\n className = _this$props5.className,\n inputRef = _this$props5.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Page', className),\n \"data-page-number\": pageNumber,\n ref: mergeRefs(inputRef, this.pageElement),\n style: {\n position: 'relative'\n }\n }, this.eventProps), this.renderContent());\n }\n }]);\n\n return PageInternal;\n}(PureComponent);\nPageInternal.defaultProps = {\n error: 'Failed to load the page.',\n loading: 'Loading page…',\n noData: 'No page specified.',\n renderAnnotationLayer: true,\n renderForms: false,\n renderMode: 'canvas',\n renderTextLayer: true,\n scale: defaultScale\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nPageInternal.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n canvasBackground: PropTypes.string,\n children: PropTypes.node,\n className: isClassName,\n customTextRenderer: PropTypes.func,\n error: isFunctionOrNode,\n height: PropTypes.number,\n imageResourcesPath: PropTypes.string,\n inputRef: isRef,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n pageIndex: isPageIndex,\n pageNumber: isPageNumber,\n pdf: isPdf,\n registerPage: PropTypes.func,\n renderAnnotationLayer: PropTypes.bool,\n renderForms: PropTypes.bool,\n renderInteractiveForms: PropTypes.bool,\n // For backward compatibility\n renderMode: isRenderMode,\n renderTextLayer: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number,\n unregisterPage: PropTypes.func,\n width: PropTypes.number\n});\n\nfunction Page(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Page);","import * as pdfjs from 'pdfjs-dist/legacy/build/pdf'; // eslint-disable-next-line import/no-unresolved\n\nimport pdfjsWorker from 'file-loader!pdfjs-dist/legacy/build/pdf.worker';\nimport Document from './Document';\nimport Outline from './Outline';\nimport Page from './Page';\nimport { displayWorkerWarning } from './shared/utils';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;\nexport { pdfjs, Document, Outline, Page };","// adds support for pdf annotations (like links) which are otherwise rendered wrong\nimport \"react-pdf/dist/esm/Page/AnnotationLayer.css\";\n\nimport { arrayInsert, clamp, isDefined, isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { saveAs } from \"file-saver\";\nimport { debounce } from \"lodash\";\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/src/display/api\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Document, Page } from \"react-pdf/dist/esm/entry.webpack\";\nimport { PDFPageProxy } from \"react-pdf/dist/Page\";\n\nimport { TextAlign, ToolbarItemType } from \"../../../enums\";\nimport { TRecordType, TValue } from \"../../../global.types\";\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport animationFrameThrottle from \"../../../utils/animationFrameThrottle\";\nimport BusyIndicator from \"../../busyIndicator/BusyIndicator\";\nimport CustomResizeObserver from \"../../customResizeObserver/CustomResizeObserver\";\nimport { Toolbar } from \"../../toolbar/index\";\nimport { isToolbarItemDefinition } from \"../../toolbar/Toolbar.utils\";\nimport { PDF_PAGE_MARGIN, StyledFileViewer } from \"../FileViewers.styles\";\nimport {\n FileToolbarItem,\n getFileNameFromSrc,\n getSharedToolbarDefinition,\n IFileViewerProps\n} from \"../FileViewers.utils\";\nimport NoPreviewSquirrel from \"../NoPreviewSquirrel\";\nimport { Header, PdfWrapper, ResizerWrapper, Scroller } from \"./PDFViewer.style\";\n\nconst zoomStates = [0.25, 0.33, 0.5, 0.67, 0.75, 0.8, 0.9, 1, 1.1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5];\nconst startingZoomIndex = 7;\n\nexport enum PdfZoomType {\n FitToWidth = \"FitToWidth\",\n FitToPage = \"FitToPage\",\n ZoomOnly = \"ZoomOnly\"\n}\n\nenum PdfControlType {\n MouseSelect = \"MoueSelect\",\n MouseGrab = \"MoueGrab\"\n}\n\ninterface IProps extends IFileViewerProps, WithTranslation {\n // url for print version of the pdf\n // if given, print button is shown\n printSrc?: string;\n defaultZoomType?: PdfZoomType;\n}\n\ninterface IState {\n loaded: boolean;\n pageCount: number;\n zoom: number;\n currentPage: number;\n width: number;\n height: number;\n error: string;\n zoomType: PdfZoomType;\n controlType: PdfControlType;\n isToolbarResponsive: boolean;\n}\n\ninterface IPdfPage {\n pageNumber: number;\n width: number;\n height: number;\n originalWidth: number;\n originalHeight: number;\n}\n\nclass PDFViewer extends React.PureComponent {\n scrollerRef = React.createRef();\n pdfWrapperRef = React.createRef();\n preventScroll = false;\n preservedScroll: number = null;\n passwordTries = 0;\n pageMinWidth = Number.MAX_SAFE_INTEGER;\n pages: TRecordType = {};\n\n dragPos = { scrollTop: 0, scrollLeft: 0, x: 0, y: 0 };\n\n static defaultProps: Partial = {\n hiddenItems: []\n };\n\n state: IState = {\n loaded: false,\n pageCount: null,\n zoom: zoomStates[startingZoomIndex],\n currentPage: 1,\n width: null,\n height: null,\n error: null,\n zoomType: this.props.defaultZoomType ?? PdfZoomType.FitToWidth,\n controlType: PdfControlType.MouseSelect,\n isToolbarResponsive: true\n };\n\n componentDidMount() {\n this.setState({\n width: this.scrollerRef.current.clientWidth,\n height: this.scrollerRef.current.clientHeight,\n loaded: !this.props.src\n });\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (isDefined(this.preservedScroll)) {\n // wait for the pages to render\n setTimeout(() => {\n this.scrollerRef.current.scrollTop = this.preservedScroll;\n this.preservedScroll = null;\n });\n }\n\n if (this.props.src !== prevProps.src) {\n this.reset();\n }\n }\n\n reset = () => {\n this.pages = {};\n this.passwordTries = 0;\n this.preventScroll = false;\n this.preservedScroll = null;\n\n this.setState({\n loaded: !this.props.src,\n error: \"\",\n pageCount: null,\n currentPage: 1,\n zoom: zoomStates[startingZoomIndex],\n zoomType: PdfZoomType.FitToWidth,\n controlType: PdfControlType.MouseSelect\n });\n };\n\n handleLoadSuccess = (arg: PDFDocumentProxy) => {\n this.setState({\n pageCount: arg.numPages\n });\n };\n\n handleLoadError = (error: Error) => {\n this.setState({\n loaded: true,\n error: this.props.t(\"Components:FileViewers.LoadError\")\n });\n };\n\n handlePassword = (callback: any) => {\n if (this.passwordTries >= 3) {\n this.setState({\n loaded: true,\n error: this.props.t(\"Components:Pdf.WrongPassword\")\n });\n return;\n }\n\n const password = prompt(this.props.t(\"Components:Pdf.EnterPassword\"));\n\n if (password) {\n this.passwordTries += 1;\n callback(password);\n } else {\n this.setState({\n loaded: true,\n error: this.props.t(\"Components:Pdf.WrongPassword\")\n });\n }\n };\n\n handlePageLoadSuccess = (args: PDFPageProxy) => {\n if (this.pages[args.pageNumber]) {\n return;\n }\n\n if (args.originalWidth < this.pageMinWidth) {\n this.pageMinWidth = args.originalWidth;\n }\n\n this.pages[args.pageNumber] = {\n pageNumber: args.pageNumber,\n width: args.width,\n height: args.height,\n originalWidth: args.originalWidth,\n originalHeight: args.originalHeight\n };\n\n if (isDefined(this.state.pageCount) && Object.keys(this.pages).length === this.state.pageCount) {\n this.updateZoom();\n this.setState({\n loaded: true\n });\n }\n };\n\n handleRenderSuccess = () => {\n this.pdfWrapperRef.current?.dispatchEvent(\n new CustomEvent(\"pdfCanvasRendered\", { bubbles: true })\n );\n };\n\n getZoomIndex = (zoom: number) => {\n const index = zoomStates.indexOf(zoom);\n\n if (index > -1) {\n return index;\n }\n\n const closestZoom = zoomStates.reduce((closestZoom, current) => {\n return Math.abs(closestZoom - zoom) < Math.abs(current - zoom) ? closestZoom : current;\n }, Number.MAX_SAFE_INTEGER);\n\n return zoomStates.indexOf(closestZoom);\n };\n\n zoomIn = () => {\n this.zoom(1);\n };\n\n zoomOut = () => {\n this.zoom(-1);\n };\n\n zoom = (diff: number) => {\n const newZoomIndex = clamp(this.getZoomIndex(this.getZoom()) + diff, 0, zoomStates.length - 1);\n\n this.setZoom(zoomStates[newZoomIndex]);\n };\n\n setZoom = (zoom: number) => {\n this.preserveScroll();\n this.setState({\n zoom: clamp(zoom, zoomStates[0], zoomStates[zoomStates.length - 1]),\n zoomType: PdfZoomType.ZoomOnly\n });\n };\n\n updateZoom = (args: {\n zoomType?: PdfZoomType;\n pageNumber?: number;\n divWidth?: number;\n divHeight?: number;\n } = {}) => {\n const zoomType = args.zoomType ?? this.state.zoomType;\n const currentPage = args.pageNumber ?? this.state.currentPage;\n\n if (zoomType === PdfZoomType.FitToPage) {\n const page = this.pages[currentPage];\n\n if (!page) {\n return;\n }\n\n const zoom = this.getFitToPageZoom(page.originalWidth, page.originalHeight, args.divWidth, args.divHeight);\n\n this.setState({\n zoom\n });\n }\n };\n\n clampCurrentPage = (currentPage: number) => {\n return clamp(currentPage, 1, this.state.pageCount ?? 1);\n };\n\n setCurrentPage = (pageNumber: number) => {\n if (isNaN(pageNumber)) {\n return;\n }\n\n const newPage = this.clampCurrentPage(pageNumber);\n\n this.updateZoom({\n pageNumber: newPage\n });\n this.setState({\n currentPage: newPage\n });\n\n this.scrollerRef.current.scrollTop = this.getPageTopPos(newPage);\n // prevent next stroll event, which may cause troubles with calculation of last pages and change selected currentPage\n this.preventScroll = true;\n };\n\n getPageTopPos = (pageNumber: number) => {\n const zoom = this.getZoom();\n let scrollTop = 0;\n\n for (let i = 1; i < pageNumber; i++) {\n const page = this.pages[i];\n scrollTop += zoom * page.originalHeight + PDF_PAGE_MARGIN;\n }\n\n return scrollTop;\n };\n\n getPageMiddlePos = (pageNumber: number) => {\n return this.getPageTopPos(pageNumber) + (this.pages[pageNumber]?.originalHeight * this.getZoom()) / 2;\n };\n\n preserveScroll = () => {\n if (this.state.zoomType === PdfZoomType.FitToPage) {\n this.preservedScroll = this.getPageTopPos(this.state.currentPage);\n }\n };\n\n handleScroll = animationFrameThrottle((e: React.UIEvent) => {\n this.updateCurrentPage();\n });\n\n updateCurrentPage = () => {\n if (this.state.zoomType === PdfZoomType.FitToPage) {\n return;\n }\n\n if (!this.preventScroll) {\n const page = this.scrollerRef.current;\n if (this.scrollerRef.current && page) {\n const top = page.scrollTop;\n const height = page.clientHeight;\n let newPage = 0;\n\n\n while (top + height > this.getPageMiddlePos(newPage + 1)) {\n newPage += 1;\n }\n\n newPage = this.clampCurrentPage(newPage);\n\n if (newPage !== this.state.currentPage) {\n // todo for some reason this one rerender causes lag (caused by Toolbar), how to get rid of it?\n this.setState({\n currentPage: newPage,\n // using isToolbarResponsive !partially! mitigates the problem\n isToolbarResponsive: false\n });\n this.onAfterScroll();\n }\n }\n }\n this.preventScroll = false;\n };\n\n onAfterScroll = debounce(() => {\n this.setState({\n isToolbarResponsive: true\n });\n }, 150);\n\n handleResize = debounce((entries: readonly ResizeObserverEntry[]) => {\n const target = entries[0].target as HTMLDivElement;\n\n this.setState({\n width: target.offsetWidth,\n height: target.offsetHeight\n }, () => {\n this.updateZoom({\n divWidth: target.offsetWidth,\n divHeight: target.offsetHeight\n });\n\n this.updateCurrentPage();\n });\n }, 150);\n\n setCurrentPageThrottled = animationFrameThrottle((currentPage: number) => {\n this.setCurrentPage(currentPage);\n });\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (this.state.zoomType !== PdfZoomType.FitToPage) {\n return;\n }\n\n switch (event.key) {\n case KeyName.ArrowUp:\n this.setCurrentPageThrottled(this.state.currentPage - 1);\n event.preventDefault();\n event.stopPropagation();\n break;\n case KeyName.ArrowDown:\n this.setCurrentPageThrottled(this.state.currentPage + 1);\n event.preventDefault();\n event.stopPropagation();\n break;\n default:\n break;\n }\n };\n\n // handler cannot be throttled directly to prevent React SyntheticEvent reuse\n handleWheel = (event: React.WheelEvent) => {\n if (this.state.zoomType !== PdfZoomType.FitToPage) {\n return;\n }\n\n event.stopPropagation();\n\n const delta = event.deltaY > 0 ? 1 : -1;\n\n this.setCurrentPageThrottled(this.state.currentPage + delta);\n };\n\n handleMouseDown = (e: React.MouseEvent) => {\n if (this.state.controlType !== PdfControlType.MouseGrab) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n this.dragPos = {\n scrollTop: this.scrollerRef.current.scrollTop,\n scrollLeft: this.scrollerRef.current.scrollLeft,\n x: e.clientX,\n y: e.clientY\n };\n\n this.pdfWrapperRef.current.style.cursor = \"grabbing\";\n\n document.addEventListener(\"mousemove\", this.handleMouseMove);\n document.addEventListener(\"mouseup\", this.handleMouseUp);\n };\n\n handleMouseMove = animationFrameThrottle((e: MouseEvent): void => {\n // how far the mouse has been moved\n const dx = e.clientX - this.dragPos.x;\n const dy = e.clientY - this.dragPos.y;\n\n this.scrollerRef.current.scrollTop = this.dragPos.scrollTop - dy;\n this.scrollerRef.current.scrollLeft = this.dragPos.scrollLeft - dx;\n });\n\n handleMouseUp = (e: Event) => {\n this.pdfWrapperRef.current.style.cursor = null;\n\n document.removeEventListener(\"mousemove\", this.handleMouseMove);\n document.removeEventListener(\"mouseup\", this.handleMouseUp);\n };\n\n getFitToPageZoom = (pageWidth: number, pageHeight: number, divWidth?: number, divHeight?: number) => {\n const width = divWidth ?? this.state.width;\n const height = divHeight ?? this.state.height;\n let ratio = height / pageHeight;\n const newWidth = pageWidth * ratio;\n\n if (newWidth > width) {\n ratio = width / pageWidth;\n }\n\n return ratio;\n };\n\n getWidth = (): number => {\n if (isNotDefined(this.state.width)) {\n return null;\n }\n\n const cleanWidth = this.state.width - 15;\n\n if (this.state.zoomType === PdfZoomType.FitToWidth) {\n return cleanWidth;\n } else if (this.state.zoomType === PdfZoomType.FitToPage) {\n return this.pages[this.state.currentPage]?.originalWidth * this.state.zoom;\n }\n\n return this.pageMinWidth * this.state.zoom;\n };\n\n getZoom = () => {\n if (isNotDefined(this.state.zoom) || !this.pages[this.state.currentPage]) {\n return 0;\n }\n\n if (this.state.zoomType === PdfZoomType.FitToWidth) {\n return this.getWidth() / this.pageMinWidth;\n }\n\n return this.state.zoom;\n };\n\n getToolbarDefinition = () => {\n const definition = getSharedToolbarDefinition(this.props.isReadOnly, this.props.hiddenItems, this.props.isRemoveDisabled, this.props.t);\n\n if (!this.state.error) {\n definition.items = [\n {\n id: FileToolbarItem.PreviousPage,\n label: this.props.t(\"Components:Pdf.PreviousPage\"),\n itemType: ToolbarItemType.SmallIcon,\n iconName: \"Up\",\n itemProps: {\n isDisabled: this.state.currentPage <= 1\n }\n },\n {\n id: FileToolbarItem.NextPage,\n label: this.props.t(\"Components:Pdf.NextPage\"),\n itemType: ToolbarItemType.SmallIcon,\n iconName: \"Down\",\n itemProps: {\n isDisabled: this.state.currentPage >= this.state.pageCount\n }\n },\n {\n id: FileToolbarItem.PageCount,\n itemType: ToolbarItemType.NumericWriteLine,\n itemProps: {\n secondaryLabel: `/${this.state.pageCount ?? 0}`,\n value: this.state.currentPage,\n min: 1,\n max: this.state.pageCount,\n showSteppers: false,\n width: \"27px\",\n name: \"PageNumber\"\n }\n }, {\n id: FileToolbarItem.PointerType,\n itemType: ToolbarItemType.SegmentedButton,\n itemProps: {\n def: [{\n id: PdfControlType.MouseSelect,\n title: this.props.t(\"Components:Pdf.MouseSelect\"),\n iconName: \"Cursor\"\n }, {\n id: PdfControlType.MouseGrab,\n title: this.props.t(\"Components:Pdf.MouseGrab\"),\n iconName: \"Hand\"\n }],\n selectedButtonId: this.state.controlType\n }\n }, {\n id: FileToolbarItem.Zoom,\n itemType: ToolbarItemType.NumericWriteLine,\n itemProps: {\n value: roundToDecimalPlaces(2, this.getZoom()) * 100,\n width: \"47px\",\n description: \"%\",\n textAlign: TextAlign.Center,\n name: \"Zoom\"\n }\n },\n {\n id: FileToolbarItem.ZoomIn,\n label: this.props.t(\"Components:Pdf.ZoomIn\"),\n itemType: ToolbarItemType.SmallIcon,\n iconName: \"ZoomIn\"\n },\n {\n id: FileToolbarItem.ZoomOut,\n label: this.props.t(\"Components:Pdf.ZoomOut\"),\n itemType: ToolbarItemType.SmallIcon,\n iconName: \"ZoomOut\"\n },\n {\n id: FileToolbarItem.Fit,\n itemType: ToolbarItemType.SegmentedButton,\n itemProps: {\n def: [{\n id: PdfZoomType.FitToWidth,\n title: this.props.t(\"Components:Pdf.FitToWidth\"),\n iconName: \"FitToWidth\"\n }, {\n id: PdfZoomType.FitToPage,\n title: this.props.t(\"Components:Pdf.FitToPage\"),\n iconName: \"FitToPage\"\n }],\n selectedButtonId: this.state.zoomType\n }\n },\n ...(this.props.customFileActions ?? []),\n ...definition.items\n ];\n }\n\n if (this.props.printSrc) {\n const downloadIndex = definition.items.findIndex((item) => isToolbarItemDefinition(item) && item.id === FileToolbarItem.Download);\n\n if (downloadIndex >= 0) {\n definition.items = arrayInsert(definition.items,\n {\n id: FileToolbarItem.Print,\n label: \"Print\",\n itemType: ToolbarItemType.Icon,\n iconName: \"Print\"\n }, downloadIndex);\n\n }\n }\n\n return definition;\n };\n\n handleItemChange = (id: string, value?: TValue) => {\n switch (id) {\n case FileToolbarItem.Dashboard:\n this.props.onGoToList?.();\n break;\n case FileToolbarItem.PreviousPage:\n this.setCurrentPage(this.state.currentPage - 1);\n break;\n case FileToolbarItem.NextPage:\n this.setCurrentPage(this.state.currentPage + 1);\n break;\n case FileToolbarItem.PageCount:\n this.setCurrentPage(parseInt(value as string));\n break;\n case FileToolbarItem.ZoomIn:\n this.zoomIn();\n break;\n case FileToolbarItem.ZoomOut:\n this.zoomOut();\n break;\n case FileToolbarItem.Zoom:\n this.setZoom(parseInt(value as string) / 100);\n break;\n case FileToolbarItem.PointerType:\n this.setState({\n controlType: value as PdfControlType\n });\n break;\n case FileToolbarItem.Fit:\n const zoomType = value as PdfZoomType;\n\n if (zoomType === PdfZoomType.FitToWidth) {\n this.preserveScroll();\n }\n\n this.updateZoom({\n zoomType\n });\n this.setState({\n zoomType\n });\n\n break;\n case FileToolbarItem.Download:\n saveAs(this.props.src, this.props.fileName ?? getFileNameFromSrc(this.props.src));\n break;\n case FileToolbarItem.Print:\n window.open(this.props.printSrc, \"_blank\");\n break;\n case FileToolbarItem.Remove:\n this.props.onFileRemove?.(this.props.src);\n break;\n default:\n this.props.onCustomFileAction?.(id);\n }\n\n };\n\n renderPages = () => {\n return (\n new Array(this.state.pageCount).fill(null).map(\n (el, i) => {\n const pageNumber = i + 1;\n\n if (this.state.zoomType === PdfZoomType.FitToPage && pageNumber !== this.state.currentPage) {\n return null;\n }\n\n return (\n \n );\n }\n )\n );\n };\n\n renderPdf = () => {\n return (\n // wrap CustomResizeObserver outside of scroller, to prevent infinite resizing caused by appearing/disappearing scrollbar\n \n \n \n \n \n {this.renderPages()}\n \n \n \n \n );\n };\n\n renderError = () => {\n return (\n \n );\n };\n\n render() {\n const def = this.getToolbarDefinition();\n\n return (\n \n
\n \n {def.items}\n \n
\n {!this.state.loaded && }\n {!this.state.error && this.renderPdf()}\n {this.state.error && this.renderError()}\n
\n );\n }\n}\n\nexport default withTranslation([\"Components\"])(PDFViewer);","import styled, { css } from \"styled-components/macro\";\nimport { transparentize } from \"polished\";\nimport { getFocusBorderElement, T_PLAIN_big, T_PLAIN_big_hig } from \"../../global.style\";\nimport { ButtonGroup, IconButton } from \"../button\";\nimport Clickable from \"../clickable/Clickable\";\nimport { StyledFieldsWrapper } from \"../inputs/field/FieldsWrapper.styles\";\nimport FieldGroup from \"../fieldGroup\";\nimport { StyledLabel } from \"../inputs/field/Label.styles\";\n\nexport const FilterBarWrapper = styled.div<{\n expanded: boolean\n}>`\n width: 100%;\n min-width: fit-content;\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: ${props => props.expanded ? \"\" : \"center\"};\n flex-direction: column;\n\n ${StyledLabel} {\n color: ${props => props.theme.C_TEXT_purple_bg};\n }\n`;\n\nexport const FilterBarCollapsedWrapper = styled.div`\n display: flex;\n //align-items: center;\n align-self: baseline;\n`;\n\nexport const ExpandIconWrapper = styled(IconButton)<{\n _opacity: number,\n _index: number,\n expanded: boolean,\n changing: boolean,\n animateButton: boolean\n}>`\n background-color: ${props => transparentize(1 - props._opacity, props.theme.C_BG_filterbar)};\n border-radius: 50% 50% 0 0;\n border-radius: ${props => props.expanded || props.changing ? \"\" : \"50%\"};\n transition: ${props => !props.expanded && props.animateButton ? \"border-radius 0.1s;\" : \"\"};\n margin-left: ${props => props._index !== 0 ? \"11px\" : 0};\n\n &:before {\n z-index: 1;\n }\n\n ${getFocusBorderElement({\n offset: -2,\n borderRadius: \"50%\",\n isLight: true\n })};\n`;\n\n\nexport const FilterReadOnlyBody = styled.div`\n ${T_PLAIN_big};\n position: relative;\n margin-left: 18px;\n`;\n\nexport const ControlButtonsGroup = styled(ButtonGroup)`\n position: absolute;\n right: 0;\n top: -6px;\n`;\n\nexport const FilterBarCloseIconWrapper = styled.div`\n position: absolute;\n right: 6px;\n top: 5px;\n`;\n\nexport const ReadOnlyGroups = styled.div`\n position: relative;\n`;\n\nconst getLineHeight = (fontSize: number) => {\n // readOnlyGroup line height in pixels\n return 1.2 * fontSize;\n};\n\nexport const StyledReadOnlyGroup = styled.div<{\n _maxRows: number;\n fontSize: number;\n}>`\n position: relative;\n margin-top: 11px;\n ${T_PLAIN_big};\n line-height: 1.2;\n font-size: ${props => `${props.fontSize}px`};\n // normal line height * font-size * numRows\n ${props => props._maxRows && css`max-height: ${props._maxRows * getLineHeight(props.fontSize)}px`};\n overflow: hidden;\n\n & + & {\n margin-top: ${props => getLineHeight(props.fontSize)}px;\n }\n\n &.empty {\n display: none;\n }\n\n :not(.empty) + &.empty {\n display: block;\n margin-top: ${props => getLineHeight(props.fontSize) / 2}px;\n }\n`;\n\nexport const ReadOnlyGroupToggle = styled.span`\n display: inline-block;\n bottom: 0;\n right: 0;\n background: ${props => `linear-gradient(to right, transparent 0, ${props.theme.C_BG_floorplan} 1em)`};\n`;\n\nexport const GroupItem = styled.div<{ groupWithPrevious: boolean }>`\n display: flex;\n align-items: center;\n\n ${props => props.groupWithPrevious && css`\n & > * + * {\n margin-left: -33px;\n }\n `}\n`;\n\nexport const CollapseWrapper = styled.div`\n width: 100%;\n position: relative;\n background-color: ${props => props.theme.C_BG_floorplan};\n top: -4px;\n // TODO doesn't work in storybook without this explicit style\n &.collapse:not(.show) {\n height: 0;\n overflow: hidden;\n }\n`;\n\nexport const EmptyFieldGroup = styled(FieldGroup)`\n ${StyledFieldsWrapper} {\n width: 100%;\n }\n`;\n\nexport const NoDataWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100px;\n color: ${props => props.theme.C_BTN_4L_emph_text};\n\n ${T_PLAIN_big_hig};\n`;\n\nexport const ClickableStyled = styled(Clickable)`\n padding-left: 5px;\n`;\n","import { IEntity } from \"@odata/BindingContext\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { getEnumDisplayValue, getEnumName, ILoadEnumsResult, isEnum, loadEnums } from \"@odata/GeneratedEnums.utils\";\nimport { formatValue, getFilterToken, IFormatOptions } from \"@odata/OData.utils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { TValue } from \"../../global.types\";\nimport BooleanType from \"../../types/Boolean\";\nimport {\n IComplexFilter,\n isComplexFilterArr,\n TFilterValue\n} from \"../conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getSelectDisplayValueForOneItem, isSelectBasedComponent } from \"../inputs/select/SelectAPI\";\nimport { getInfoValue } from \"../smart/FieldInfo\";\nimport { getValueHelpFilterGroupByProps, parseCompositeFilterId } from \"../smart/smartValueHelper/ValueHelper.utils\";\nimport { IFilterBarReadOnlyItem } from \"./FilterBar\";\n\nconst MAX_VISIBLE_ITEMS = 5;\n\nexport const getFilterBarItemRenderValue = (item: IFilterBarReadOnlyItem, isExpandedFn?: (itemId: string) => boolean) => {\n let hiddenValues = 0;\n let possibleHiddenValues = 0;\n let id = item.label;\n let loadEnumsResult: ILoadEnumsResult;\n let value: TValue;\n const info = item.bindingContext && item.storage?.getInfo(item.bindingContext);\n\n const _reduceArrayToMaxLength = (values: any[]) => {\n // we reduce values of the conditional filter\n possibleHiddenValues = values.length - MAX_VISIBLE_ITEMS;\n\n if (isExpandedFn && !isExpandedFn(id)) {\n hiddenValues = possibleHiddenValues;\n // if not expanded, reduce hidden values to max\n return values.slice(0, MAX_VISIBLE_ITEMS);\n }\n return values;\n };\n\n const _getDisplayValue = (value: TFilterValue) => {\n /* when there is itemsForRender callback, items are customized -> transformed, so we can't use original enum values */\n if (isEnum(info) && !info?.fieldSettings?.itemsForRender) {\n // todo: this is most likely on wrong place, can we move it to formatValue function?\n const enumName = getEnumName(info, item.storage?.oData);\n\n loadEnumsResult = loadEnums(enumName);\n\n return getEnumDisplayValue(enumName, value as string);\n }\n\n if (isSelectBasedComponent(info.type)) {\n return getSelectDisplayValueForOneItem(value, {\n storage: item.storage,\n info,\n fieldBindingContext: info.bindingContext\n });\n }\n\n let entity: IEntity = {};\n\n if (getValueHelpFilterGroupByProps(info.bindingContext, info)?.length > 0) {\n // if groupByProps exists, value (id) is composed of multiple different values\n // => we have to parse it and replace the \"value\" with just the main value id\n entity = parseCompositeFilterId(value as string);\n\n if (entity) {\n value = getBoundValue({\n bindingContext: item.bindingContext,\n data: entity,\n dataBindingContext: item.bindingContext.getRootParent()\n });\n }\n }\n\n return formatValue(value, info, {\n entity,\n readonly: true,\n placeholder: i18next.t(\"Common:General.Empty\"),\n storage: item.storage\n });\n };\n\n if (info) {\n // items with binding context uses it as ID\n id = item.bindingContext.toString();\n let parsedValue: TValue;\n\n if (info.filter?.customReadOnlyParsedValue) {\n parsedValue = getInfoValue(info.filter, \"customReadOnlyParsedValue\", {\n storage: item.storage,\n info: info,\n bindingContext: item.bindingContext,\n item,\n context: item.storage.context\n });\n } else {\n parsedValue = item.storage.getAdditionalFieldData(item.bindingContext, \"parsedValue\");\n }\n\n if (item.storage.hasError(info.bindingContext)) {\n value = i18next.t(\"Common:Validation.InvalidValue\") as string;\n } else if (isComplexFilterArr(parsedValue)) {\n const parsedComplexFilters: IComplexFilter[] = [];\n\n for (const filter of parsedValue as IComplexFilter[]) {\n if (!Array.isArray(filter.value) || isEnum(info)) {\n parsedComplexFilters.push(filter);\n } else {\n // for cases where value is array (OR filters) => create one filter for all values to correctly work with hidden values\n // so far, used in report drilldowns - in BalanceSheet to send multiple \"startsWith\" filters, because BE is unable to properly provide all account children\n for (const val of filter.value) {\n parsedComplexFilters.push({\n ...filter,\n value: val as string\n });\n }\n }\n }\n\n const valueHelperItems = _reduceArrayToMaxLength(parsedComplexFilters);\n\n const options: IFormatOptions = {\n entity: item.storage.data.entity,\n readonly: true,\n placeholder: i18next.t(\"Common:General.Empty\")\n };\n\n if (isEnum(info)) {\n value = valueHelperItems.flatMap((complexFilter: IComplexFilter) => (complexFilter.value as string[])\n .map(val => {\n const translatedVal = info.formatter ? val : _getDisplayValue(val);\n\n return getFilterToken({ ...complexFilter, value: translatedVal }, info, options);\n }));\n } else {\n value = valueHelperItems.map((val) => getFilterToken(val as IComplexFilter, info, options));\n }\n } else if (Array.isArray(parsedValue)) {\n value = _reduceArrayToMaxLength(parsedValue)\n .map(_getDisplayValue);\n } else if (isDefined(parsedValue)) {\n // plain value, try to format it, also select values, but don't format null values == empty filter\n value = _getDisplayValue(parsedValue);\n }\n\n } else if (Array.isArray(item.value)) {\n value = _reduceArrayToMaxLength(item.value);\n } else {\n value = item.value;\n }\n\n // When value is multiselect and items are not loaded yet, we need to check this and don't display \"Label: ,,,\"\n const _isArrayWithoutValue = (arr: any) => Array.isArray(arr) && !(arr as any[]).find(item => item);\n\n if (isNotDefined(value) || value === \"\" || _isArrayWithoutValue(value)) {\n value = null;\n }\n\n if (typeof value === \"boolean\") {\n value = BooleanType.format(value);\n }\n\n return {\n mayHideValues: possibleHiddenValues > 0,\n hiddenValues: Math.max(hiddenValues, 0),\n loadEnumsResult,\n value, id\n };\n};","import React from \"react\";\nimport { TValue } from \"../../global.types\";\nimport { ClickableStyled } from \"./FilterBar.styles\";\n\ninterface IFilterItemReadOnlyProps {\n id: string;\n label: string;\n description?: string;\n value: TValue;\n isFirst?: boolean;\n onExpand?: (id: string) => void;\n hiddenItems?: number;\n}\n\nconst FilterBarItemReadOnly: React.FC = (props) => {\n const { hiddenItems = 0 } = props;\n\n const handleExpand = () => {\n props.onExpand(props.id);\n };\n\n return (\n <>\n {!props.isFirst &&\n \" / \"\n }\n {props.label}{props.description && ({props.description})}:\n {` ${Array.isArray(props.value) ? props.value.join(\", \") : props.value}`}\n {hiddenItems ? +{props.hiddenItems}\n : \"\"}\n \n );\n};\n\nexport default FilterBarItemReadOnly;","import React from \"react\";\nimport { ReadOnlyGroupToggle, StyledReadOnlyGroup } from \"./FilterBar.styles\";\nimport { IFilterBarReadOnlyItem } from \"./FilterBar\";\nimport { EMPTY_VALUE } from \"../../constants\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport Clickable from \"../clickable\";\nimport TestIds from \"../../testIds\";\nimport { getFilterBarItemRenderValue } from \"./FilterBar.utils\";\nimport { Model } from \"../../model/Model\";\nimport FilterBarItemReadOnly from \"./FilterBarItemReadOnly\";\n\ninterface IState {\n expandedItems: string[];\n isAllExpanded: boolean;\n}\n\ninterface IProps {\n groups: IFilterBarReadOnlyItem[][];\n maxRows: number;\n // uses bigger font\n isBig?: boolean;\n hideFilters?: string[];\n}\n\nclass ReadOnlyGroup extends React.PureComponent {\n state: IState = {\n expandedItems: [],\n isAllExpanded: false\n };\n\n _ref = React.createRef();\n _toggleRef = React.createRef();\n\n _storage: Model;\n\n componentDidMount() {\n this._updateToggleStyles();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n this._updateToggleStyles();\n }\n\n componentWillUnmount() {\n this._storage?.removeRef(this);\n }\n\n _updateToggleStyles() {\n const div = this._ref.current,\n toggle = this._toggleRef.current;\n\n if (div && toggle) {\n const overflowed = div.offsetHeight < div.scrollHeight;\n\n // Change position and left padding to render the toggle over text in bottom right corner\n toggle.style.paddingLeft = overflowed ? \"1.5em\" : \"0\";\n toggle.style.position = overflowed ? \"absolute\" : \"relative\";\n }\n }\n\n isExpanded(itemId: string) {\n return this.state.isAllExpanded || this.state.expandedItems.includes(itemId);\n }\n\n // handles expand of single filter value\n handleExpand = (id: string) => {\n this.setState(({ expandedItems }) => ({\n expandedItems: [...(expandedItems || []), id],\n isAllExpanded: false\n }));\n };\n\n // handles expand of whole tab group\n handleToggleExpanded = (hasHiddenItems: boolean) => {\n this.setState({\n expandedItems: [],\n isAllExpanded: hasHiddenItems\n });\n };\n\n render() {\n let isFirstItem = true;\n let hiddenCount = 0;\n let anyItemCanHideValue = false;\n\n const groupFields = this.props.groups.map((group, i) => {\n return group\n .filter(item => !this.props.hideFilters?.includes(item.bindingContext?.getNavigationPath()))\n .map((item, j) => {\n const {\n mayHideValues,\n hiddenValues,\n loadEnumsResult,\n value\n } = getFilterBarItemRenderValue(item, this.isExpanded.bind(this));\n\n if (loadEnumsResult && loadEnumsResult.notLoadedNamespaces.length > 0) {\n loadEnumsResult.namespacesPromise.then(() => this.forceUpdate());\n }\n\n if (item.storage) {\n // sometimes (e.g. when SmartSelect loads its values) we need to rerender SmartFilterBarItemReadOnly\n // for that, its bindingContext has to be registered!!!!\n // ToDo: maybe remove once https://solitea-cz.atlassian.net/browse/DEV-3145 is fixed.\n // We currently doesn't support multiselect in filters, the implementation is therefore a little bit hacky and buggy :-/\n item.storage?.addRef(this, item.bindingContext);\n // we for later ref removal...\n this._storage = item.storage;\n }\n\n if (!value) {\n return null;\n }\n\n if (hiddenValues) {\n hiddenCount++;\n }\n anyItemCanHideValue = anyItemCanHideValue || mayHideValues;\n\n\n const render = (\n \n );\n\n isFirstItem = false;\n\n return render;\n }).filter(item => item);\n });\n\n const isEmpty = groupFields.every(group => group.length === 0);\n if (isEmpty) {\n // if tab fields are empty, it should be rendered as 3 dashes\n groupFields.push([{EMPTY_VALUE}]);\n }\n\n return (\n \n {groupFields}\n {anyItemCanHideValue &&\n <>\n {/* Keep unbreakable space + space so it could be rendered at the start of row and also with enough space after text */}\n   \n \n {this.props.t(`Components:FilterBar.${hiddenCount ? \"ShowWholeText\" : \"HideText\"}`)}\n \n \n \n }\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"])(ReadOnlyGroup);","import React from \"react\";\nimport { KeyName } from \"../../keyName\";\nimport {\n FOCUSABLE_ELEMENTS_SELECTORS_WITHOUT_TEMPORARY_DISABLED,\n getAllFocusableElements,\n getFocusableElements,\n getTemporaryDisabledFocusableElements,\n isElementVisible,\n mod,\n TabIndex\n} from \"@utils/general\";\nimport memoizeOne from \"../../utils/memoizeOne\";\n\nexport interface IFocusManager {\n focusableId?: string;\n /** Whether to use left/right or up/down arrow keys */\n direction?: FocusDirection;\n // required for FocusDirection.Grid\n columnsCount?: number;\n /** If not disabled, focus jumps from last item to the first and the other way around. */\n disableLoop?: boolean;\n /** If wheel enabled, user can use it instead of up/down key for vertical movemenet */\n enableWheel?: boolean;\n /** Disabled FocusManager */\n isDisabled?: boolean;\n /** Allow navigation by tab to children of this focus manager */\n allowTabbingToChildren?: boolean;\n\n /** Called on every focus change. Clean index is after modulo operation, index is the original focus index (can point outside of items)\n * Handler should return true if it changed its children based on this event. */\n onFocusChange?: (cleanIndex: number, index: number) => boolean;\n\n // add if needed - default selected item/index\n\n children: (args: IFocusManagerChildren) => React.ReactElement;\n}\n\nexport const FOCUSABLE_ATTR = \"data-focusable\";\nexport const FOCUSABLE_ORDER_ATTR = \"data-focusable-order\";\nexport const FOCUSABLE_DISABLED_ITEM_ATTR = \"data-focusable-item-disabled\";\nexport const FOCUS_MANAGER_WRAPPER_ATTR = \"data-focus-manager-wrapper\";\n\nexport interface IFocusableItemProps {\n \"data-focusable\"?: string;\n tabIndex?: number;\n}\n\nexport interface IFocusableWrapperProps {\n ref: React.RefObject;\n tabIndex?: number;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onFocus: (event: React.FocusEvent) => void;\n onWheel: (event: React.WheelEvent) => void;\n [FOCUS_MANAGER_WRAPPER_ATTR]: boolean;\n}\n\nexport type TFocusManagerFocus = (index: number) => void;\n\nexport interface IFocusManagerChildren {\n itemProps: IFocusableItemProps;\n wrapperProps: IFocusableWrapperProps;\n /** Public API that lets components that use FocusManager change focus */\n focus?: TFocusManagerFocus;\n}\n\nexport enum FocusDirection {\n Horizontal = \"horizontal\",\n Vertical = \"vertical\",\n Grid = \"grid\"\n}\n\n\n/** Automatically manages tabindex for composite components (e.g. segmented button, tab menu, list..)\n * Hijacks ref, keyDown and focus events on wrapper element and tabIndex property on items\n */\nexport default class FocusManager extends React.PureComponent {\n public static defaultProps = {\n focusableId: \"focusable\",\n direction: FocusDirection.Horizontal\n };\n\n focusableWrapperRef = React.createRef();\n focusedElement: HTMLElement;\n\n componentDidMount() {\n this.updateTabIndex();\n }\n\n componentDidUpdate() {\n this.updateTabIndex();\n }\n\n belongsToThisManager(el: HTMLElement): boolean {\n return el?.getAttribute?.(FOCUSABLE_ATTR) === this.props.focusableId;\n }\n\n // mby update tabIndex?\n updateTabIndex = (): void => {\n const element = this.focusedElement && this.focusableWrapperRef.current?.contains(this.focusedElement) ? this.focusedElement : this.getOrderedFocusableElementsWithoutDisabled()[0];\n\n if (this.props.isDisabled || !element) {\n return;\n }\n\n if (!this.belongsToThisManager(element)) {\n this.focusedElement = null;\n } else {\n this.setFocusedElement(element as HTMLElement);\n this.temporaryDisableFocusOnInactiveChildren();\n }\n };\n\n getFocusableElements = (): NodeListOf | [] => {\n return this.focusableWrapperRef.current?.querySelectorAll(`[${FOCUSABLE_ATTR}=\"${this.props.focusableId}\"]`) ?? [];\n };\n\n getOrderedFocusableElements = (): HTMLElement[] => {\n return [...this.getFocusableElements()].sort((el1, el2) => {\n const s1 = el1.getAttribute?.(FOCUSABLE_ORDER_ATTR);\n const s2 = el2.getAttribute?.(FOCUSABLE_ORDER_ATTR);\n if (s1 && s2) {\n return parseInt(s1) - parseInt(s2);\n }\n return 0;\n });\n };\n\n isElementDisabled = (element: HTMLElement): boolean => {\n // \"disabled\" attribute is only on input elements,\n // FOCUSABLE_DISABLED_ITEM_ATTR can be used on any custom divs\n return (element as HTMLInputElement)?.disabled || element?.getAttribute(FOCUSABLE_DISABLED_ITEM_ATTR) === \"true\";\n };\n\n getOrderedFocusableElementsWithoutDisabled = (): HTMLElement[] => {\n return this.getOrderedFocusableElements().filter(el => !this.isElementDisabled(el));\n };\n\n temporaryDisableFocusOnInactiveChildren(): void {\n if (!this.props.allowTabbingToChildren) {\n // temporary disable focus on all underlaying focusable elements, that are not under actually focused element\n const rootSelector = `[${FOCUSABLE_ATTR}=\"${this.props.focusableId}\"][tabindex=\"${TabIndex.TemporaryDisabled}\"]`;\n const selector = FOCUSABLE_ELEMENTS_SELECTORS_WITHOUT_TEMPORARY_DISABLED.map(selector => `${rootSelector} ${selector}`).join(\", \");\n this.focusableWrapperRef.current?.querySelectorAll(selector)?.forEach(el =>\n el.setAttribute(\"tabindex\", `${TabIndex.TemporaryDisabled}`));\n }\n }\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n if (this.props.isDisabled || !this.belongsToThisManager(event.target as HTMLElement)) {\n return;\n }\n\n switch (this.props.direction) {\n case FocusDirection.Horizontal:\n this.handleHorizontalMovement(event);\n break;\n case FocusDirection.Vertical:\n this.handleVerticalMovement(event);\n break;\n case FocusDirection.Grid:\n this.handleGridMovement(event);\n break;\n }\n };\n\n handleHorizontalMovement = (event: React.KeyboardEvent): void => {\n let keyHandled = true;\n\n switch (event.key) {\n case KeyName.ArrowLeft:\n this.focusPrevious();\n break;\n case KeyName.ArrowRight:\n this.focusNext();\n break;\n case KeyName.Home:\n this.focusFirst();\n break;\n case KeyName.End:\n this.focusLast();\n break;\n case KeyName.Escape:\n this.focusWrapper();\n // treat as not handled,\n // e.g. in Dialog, we want to close it on Escape and this prevents it\n keyHandled = false;\n break;\n default:\n keyHandled = false;\n }\n\n if (keyHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n handleVerticalMovement = (event: React.KeyboardEvent): void => {\n let keyHandled = true;\n\n switch (event.key) {\n case KeyName.ArrowUp:\n this.focusPrevious();\n break;\n case KeyName.ArrowDown:\n this.focusNext();\n break;\n case KeyName.Home:\n this.focusFirst();\n break;\n case KeyName.End:\n this.focusLast();\n break;\n case KeyName.Escape:\n this.focusWrapper();\n break;\n default:\n keyHandled = false;\n }\n\n if (keyHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n handleGridMovement = (event: React.KeyboardEvent): void => {\n let keyHandled = true;\n\n switch (event.key) {\n case KeyName.ArrowUp:\n this.focusDelta(-this.props.columnsCount);\n break;\n case KeyName.ArrowDown:\n this.focusDelta(this.props.columnsCount);\n break;\n case KeyName.ArrowRight:\n this.focusNext();\n break;\n case KeyName.ArrowLeft:\n this.focusPrevious();\n break;\n case KeyName.Home:\n this.focusFirst();\n break;\n case KeyName.End:\n this.focusLast();\n break;\n case KeyName.Escape:\n this.focusWrapper();\n break;\n default:\n keyHandled = false;\n }\n\n if (keyHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n handleWheel = (event: React.WheelEvent): void => {\n if (this.props.isDisabled) {\n return;\n }\n\n const delta = this.props.direction === FocusDirection.Grid ? this.props.columnsCount : 1;\n\n if (event.deltaY > 0) {\n this.focusDelta(delta);\n } else {\n this.focusDelta(-delta);\n }\n };\n\n focusNext = (): void => {\n this.focusDelta(1);\n };\n\n focusPrevious = (): void => {\n this.focusDelta(-1);\n };\n\n focusDelta = (delta: number, startingFocusIndex?: number, isNestedCall?: boolean): void => {\n const focusableElements = this.getOrderedFocusableElements();\n const oldFocusIndex = startingFocusIndex ?? focusableElements.findIndex(element => element === (this.focusedElement));\n let newFocusIndex: number;\n if (oldFocusIndex < 0) {\n newFocusIndex = 0;\n } else {\n newFocusIndex = oldFocusIndex + (isNestedCall ? 0 : delta);\n }\n\n let elementsTriedCount = 0;\n\n while (true) {\n if (elementsTriedCount >= focusableElements.length) {\n // no focusable element found\n return;\n }\n\n const element = (focusableElements[mod(newFocusIndex, focusableElements.length)] as HTMLInputElement);\n\n // skip disabled items\n if (!this.isElementDisabled(element)) {\n break;\n }\n\n newFocusIndex += delta;\n elementsTriedCount += 1;\n }\n\n if (isNestedCall) {\n newFocusIndex = mod(newFocusIndex, focusableElements.length);\n }\n\n const isRerendering = this.focusIndex(newFocusIndex, focusableElements, true);\n\n if (isRerendering && !isNestedCall) {\n // wait for the re-rendered children and set the focus based on the previous delta\n setTimeout(() => {\n let newStartIndex: number;\n\n const cleanIndex = mod(newFocusIndex, focusableElements.length);\n\n if (newFocusIndex < 0) {\n newStartIndex = cleanIndex - delta;\n } else if (newFocusIndex > focusableElements.length) {\n newStartIndex = mod(cleanIndex, delta);\n } else {\n newStartIndex = newFocusIndex;\n }\n\n\n this.focusDelta(delta, newStartIndex, true);\n }, 0);\n return;\n }\n };\n\n focusFirst = (): void => {\n this.focusIndex(0, this.getOrderedFocusableElementsWithoutDisabled(), true);\n };\n\n focusLast = (): void => {\n const focusableElements = this.getOrderedFocusableElementsWithoutDisabled();\n this.focusIndex(focusableElements.length - 1, focusableElements, true);\n };\n\n focusWrapper = (): void => {\n this.focusableWrapperRef.current?.focus();\n };\n\n focusIndex = (index: number, focusableElements: HTMLElement[], triggerFocus: boolean): boolean => {\n if (this.props.disableLoop && (index >= focusableElements.length || index < 0)) {\n return false;\n }\n\n const cleanIndex = mod(index, focusableElements.length);\n\n\n const rerendering = !!(this.props.onFocusChange?.(cleanIndex, index));\n\n if (!rerendering) {\n this.setFocusedElement(focusableElements[cleanIndex] as HTMLElement, triggerFocus);\n }\n\n return rerendering;\n };\n\n public focus = (index: number): void => {\n this.focusIndex(index, this.getOrderedFocusableElements(), true);\n };\n\n handleFocus = (event: React.FocusEvent): void => {\n const target = event.target as HTMLElement;\n\n // there can be multiple FocusManagers inside on DOM\n event.stopPropagation();\n\n const wrapper = this.focusableWrapperRef.current;\n if (target === wrapper) {\n if (!wrapper.contains(event.relatedTarget)) {\n // focus moved from outside the wrapper on the wrapper\n // => focus one of the inner focusable elements\n if (this.focusedElement) {\n this.setFocusedElement(this.focusedElement, true);\n } else {\n this.focusFirst();\n }\n } else {\n // focus moved from inside the wrapper on the wrapper\n // => focus previous focusable element - we don't want to ever show focus on the wrapper itself.\n // use getAllFocusableElements instead getFocusableElements, otherwise we wouldn't get our target,\n // because wrapper elements ir omitted in getFocusableElements.\n const focusableElements = getAllFocusableElements(document.body);\n const targetIndex = Array.from(focusableElements).indexOf(target);\n\n if (targetIndex >= 0) {\n // find first visible element\n const count = focusableElements.length;\n\n let tries = 0;\n let index = targetIndex - 1;\n let element: HTMLElement;\n\n while (tries < focusableElements.length) {\n element = focusableElements[mod(index, count)] as HTMLElement;\n\n if (isElementVisible(element)) {\n element.focus();\n break;\n }\n\n tries += 1;\n index -= 1;\n }\n }\n }\n }\n\n if (this.props.isDisabled || !this.belongsToThisManager(target)) {\n return;\n }\n\n this.setFocusedElement(target);\n };\n\n setFocusedElement = (element: HTMLElement, triggerFocus?: boolean) => {\n // disable currently focused children and its underlying focusable nodes (if not prevented)\n if (this.focusedElement && !this.props.allowTabbingToChildren) {\n getFocusableElements(this.focusedElement)?.forEach(el =>\n el.setAttribute(\"tabindex\", `${TabIndex.TemporaryDisabled}`));\n this.focusedElement.setAttribute(\"tabindex\", `${TabIndex.TemporaryDisabled}`);\n }\n // change currently focused element\n this.focusedElement = element;\n if (this.focusedElement && !this.props.allowTabbingToChildren) {\n // make it accessible by tabbing in usual order\n this.focusedElement.setAttribute(\"tabindex\", `${TabIndex.NormalOrder}`);\n // enable all focusable underlying nodes of newly focused item, so user may access them with tab.\n getTemporaryDisabledFocusableElements(this.focusedElement)?.forEach(el => {\n const closestManagedFocusable = el.closest(`[${FOCUSABLE_ATTR}]`) as HTMLElement;\n if (this.belongsToThisManager(closestManagedFocusable)) {\n el.setAttribute(\"tabindex\", `${TabIndex.NormalOrder}`);\n }\n });\n }\n\n if (triggerFocus) {\n this.focusedElement?.focus();\n }\n };\n\n // childrenProps should keep same reference if possible, to prevent pointless rerenders\n getChildrenProps = memoizeOne((): IFocusManagerChildren => {\n return {\n itemProps: {\n [FOCUSABLE_ATTR]: this.props.focusableId,\n tabIndex: this.props.allowTabbingToChildren ? TabIndex.NormalOrder : TabIndex.TemporaryDisabled\n },\n wrapperProps: {\n ref: this.focusableWrapperRef,\n tabIndex: TabIndex.NormalOrder,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onWheel: this.props.enableWheel ? this.handleWheel : null,\n [FOCUS_MANAGER_WRAPPER_ATTR]: true\n },\n focus: this.focus\n };\n }, () => [this.props.focusableId, this.focusableWrapperRef, this.props.enableWheel]);\n\n render() {\n if (this.props.direction === FocusDirection.Grid && !this.props.columnsCount) {\n throw new Error(\"FocusManager - when FocusDirection.Grid is used, columnsCount has to be defined\");\n }\n\n return this.props.children?.(this.getChildrenProps());\n }\n}","import styled, { css } from \"styled-components/macro\";\nimport { T_HEADER_small } from \"../../global.style\";\n\nexport const ActionLabel = styled.span`\n position: relative;\n top: 1px;\n color: ${props => props.theme.C_TEXT_dialogue};\n white-space: nowrap;\n overflow: hidden;\n\n ${T_HEADER_small};\n`;\n\nexport const StyledFormGroupActions = styled.div<{ isTransparent: boolean }>`\n display: flex;\n background: ${props => props.isTransparent ? \"transparent\" : props.theme.C_BG_popover};\n border-radius: ${props => props.theme.borderRadius};\n padding: 8px 24px;\n`;\n\nexport const StyledFormGroupAction = styled.div`\n width: 38px;\n height: 38px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\ninterface IAction {\n maxWidth: number;\n isSelected: boolean;\n isDisabled: boolean;\n isMouseOver: boolean;\n}\n\nexport const StyledFormGroupActionWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all;\n transition-duration: 0.1s;\n max-width: ${props => props.isSelected ? \"auto\" : \"38px\"};\n\n &:not(:last-child) {\n margin-right: ${props => props.isSelected ? \"12px\" : \"2px\"};\n }\n\n &:not(:first-child) {\n padding-left: ${props => props.isSelected ? \"10px\" : \"0\"};\n }\n\n\n ${props => props.isSelected && css`\n max-width: ${props => `${props.maxWidth}px`};\n `};\n\n ${props => !props.isSelected && !props.isDisabled && props.isMouseOver && css`\n transition-duration: 0.3s;\n transition-delay: 500ms;\n max-width: ${props => `${props.maxWidth}px`};\n `}\n`;","import React, { ReactElement } from \"react\";\nimport {\n ActionLabel,\n StyledFormGroupAction,\n StyledFormGroupActions,\n StyledFormGroupActionWrapper\n} from \"./FormGroupActions.style\";\nimport { getIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { IconButton } from \"../button\";\nimport TestIds from \"../../testIds\";\n\nexport interface IFormGroupAction {\n id: string;\n iconName: string;\n label: string;\n isDisabled?: boolean;\n ignoreTheme?: boolean;\n}\n\ninterface IProps {\n actions: IFormGroupAction[]\n selectedAction?: string;\n isTransparent?: boolean;\n onActionClick?: (id: string) => void;\n className?: string;\n ignoreTheme?: boolean;\n}\n\ninterface IState {\n maxWidths: Record;\n isMouseOver: Record;\n}\n\nclass FormGroupActions extends React.PureComponent {\n state: IState = {\n maxWidths: {},\n isMouseOver: {}\n };\n\n rootRef = React.createRef();\n\n componentDidMount() {\n this.initMaxWidths();\n }\n\n // we need to get scrollWidth of each item\n // because transition/animation on width: auto doesn't work\n initMaxWidths = (): void => {\n const maxWidths: Record = {};\n\n for (let i = 0; i < this.props.actions.length; i++) {\n const action = this.props.actions[i];\n const element = this.rootRef.current.children[i];\n\n maxWidths[action.id] = element.clientWidth + element.children[1].scrollWidth + 12 /*for margin*/;\n }\n\n this.setState({ maxWidths });\n };\n\n handleMouseEnter = (actionId: string): void => {\n this.setState({\n isMouseOver: {\n [actionId]: true\n }\n });\n };\n\n handleMouseLeave = (actionId: string): void => {\n this.setState({\n isMouseOver: {\n ...this.state.isMouseOver,\n [actionId]: false\n }\n });\n };\n\n renderActions = (): ReactElement[] => {\n return this.props.actions.map((action, index) => {\n const Icon = getIcon(action.iconName);\n const isSelected = this.props.selectedAction === action.id;\n const isOtherSelected = this.props.selectedAction && !isSelected;\n const isDisabled = action.isDisabled || isOtherSelected;\n const onClickFn = () => {\n const div = this.rootRef.current.children[index] as HTMLDivElement;\n // stop the current transition to enforce transitionDelay change\n div.style.maxWidth = getComputedStyle(div).width;\n div.style.transition = \"none\";\n div.style.transitionDelay = \"0ms\";\n\n setTimeout(() => {\n div.style.maxWidth = null;\n div.style.transition = null;\n div.style.transitionDelay = null;\n });\n\n this.props.onActionClick(action.id);\n };\n\n return (\n \n this.handleMouseEnter(action.id)}\n onMouseLeave={() => this.handleMouseLeave(action.id)}>\n \n \n \n \n \n {action.label}\n \n \n );\n });\n };\n\n render() {\n return (\n \n {this.renderActions()}\n \n );\n }\n}\n\nexport default FormGroupActions;","import { mix } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { getDisabledStyle, LocalStackOrder, T_TITLE_4 } from \"../../global.style\";\nimport { AuditTrailLineComparison } from \"../../model/Model\";\nimport TestIds from \"../../testIds\";\nimport { TableWrapper } from \"../../views/table/TableView.styles\";\nimport { ButtonGroup, IconButton } from \"../button\";\nimport { CheckboxLabel } from \"../inputs/checkbox/Checkbox.styles\";\nimport { FIELD_VER_MARGIN } from \"../inputs/field/Field.styles\";\nimport { StyledFieldsWrapper } from \"../inputs/field/FieldsWrapper.styles\";\nimport { StyledLabel } from \"../inputs/field/Label.styles\";\nimport Switch from \"../inputs/switch\";\nimport { Label } from \"../inputs/switch/Switch.styles\";\nimport { Separator } from \"../separator/Separator\";\nimport { StyledSmartFastEntryList } from \"../smart/smartFastEntryList/SmartFastEntryList.styles\";\nimport SmartField from \"../smart/smartField/SmartField\";\nimport FormGroupActions from \"./FormGroupActions\";\n\nexport const StyledFormGroup = styled.fieldset<{\n auditTrailType: AuditTrailLineComparison;\n isSmallBottomMargin: boolean;\n isFlex?: boolean;\n}>`\n border: none;\n padding: 0;\n margin: 0;\n margin-bottom: ${props => props.isSmallBottomMargin ? FIELD_VER_MARGIN : \"30px\"};\n\n\n &:last-of-type {\n margin-bottom: 0;\n }\n\n // fix weird bug \n // https://stackoverflow.com/questions/17408815/fieldset-resizes-wrong-appears-to-have-unremovable-min-width-min-content/17863685\n min-width: 0;\n display: table-cell;\n\n ${props => props.isFlex && css`\n display: flex;\n flex-direction: column;\n `};\n\n position: relative;\n ${props => props.auditTrailType === AuditTrailLineComparison.MissingRow && `\n & > div:not([data-testId=${TestIds.FormGroupAuditTrailLayer}]){\n opacity: 0\n }\n `};\n\n ${StyledFieldsWrapper} + ${StyledSmartFastEntryList} {\n margin-top: ${FIELD_VER_MARGIN};\n }\n`;\n\nexport const AuditTrailLayer = styled.div`\n position: absolute;\n top: -10px;\n left: -10px;\n width: calc(100% + 20px);\n height: calc(100% + 20px);\n border-radius: 15px;\n border: 3px dashed ${props => props.theme.C_AUDIT_TRAIL_DIFF};\n z-index: ${LocalStackOrder.Overlay};\n`;\n\nexport const Header = styled.div`\n display: flex;\n align-items: center;\n position: relative;\n\n button {\n margin-left: 6px;\n }\n`;\n\nexport const Title = styled.legend<{\n isLight?: boolean;\n}>`\n padding: 0;\n flex-shrink: 0;\n ${T_TITLE_4};\n ${props => props.isLight ? \"font-weight: normal;\" : \"text-transform: uppercase;\"}\n`;\n\nexport const SeparatorStyledFormGroup = styled(Separator)`\n margin: 0 0 0 12px;\n flex: 1 1 auto;\n`;\n\nexport const ExpandIconParent = styled.div`\n display: flex;\n`;\n\nexport const CreatingTitle = styled.div`\n align-self: flex-end;\n margin-bottom: 9px;\n\n ${T_TITLE_4};\n color: ${props => props.theme.C_ACT_main};\n text-transform: uppercase;\n margin-left: 20px;\n`;\n\nexport const ExpandIconBackground = styled.div<{\n expanded: boolean;\n _isCreating?: boolean;\n _isDisabled?: boolean;\n}>`\n align-self: flex-end;\n width: 38px;\n height: ${props => props.expanded ? \"46px\" : \"38px\"};\n background-color: ${props => props._isCreating ? mix(props.theme.lightFieldGroupOpacity, props.theme.C_BG_filterbar, props.theme.C_BG_floorplan) : props.theme.C_BG_filterbar};\n ${props => props._isDisabled && getDisabledStyle(props._isDisabled)};\n\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n border-top-right-radius: 25px;\n border-top-left-radius: 25px;\n\n border-bottom-right-radius: ${props => props.expanded ? 0 : \"25px\"};\n border-bottom-left-radius: ${props => props.expanded ? 0 : \"25px\"};\n\n transition: border-radius 0.1s /*, height 0.1s*/;\n`;\n\nexport const ExpandIconWrapper = styled.div`\n position: relative;\n width: 38px;\n height: 38px;\n align-self: flex-end;\n\n // render over the collapse wrappers shadow\n z-index: ${LocalStackOrder.AboveContent};\n`;\n\nexport const SmartFieldStyled = styled(SmartField) <{\n _isLast?: boolean;\n}>`\n margin-right: ${props => props._isLast ? \"20px\" : \"\"};\n`;\n\nconst StyledHeaderItem = css`\n margin: 0 0 0 12px;\n`;\n\nexport const SmartFieldInHeaderStyled = styled(SmartField)`\n ${StyledHeaderItem};\n`;\n\nexport const SwitchInHeaderStyled = styled(Switch)`\n ${StyledHeaderItem};\n`;\n\nexport const ButtonGroupStyled = styled(ButtonGroup)`\n ${StyledFieldsWrapper} + &, ${TableWrapper} + & {\n margin-top: ${FIELD_VER_MARGIN};\n }\n`;\n\nexport const CollapseWrapper = styled.div`\n width: 100%;\n position: relative;\n\n ${StyledSmartFastEntryList} {\n flex-grow: 1\n }\n \n ${StyledLabel}, ${Label}, ${CheckboxLabel} {\n color: ${props => props.theme.C_TEXT_purple_bg};\n }\n`;\n\nexport const Body = styled.div<{\n isWithoutMargin: boolean;\n isDarkBackground: boolean;\n isFlex?: boolean;\n}>`\n ${Header} + & {\n margin-top: ${props => !!props.isWithoutMargin ? \"0\" : \"20px\"};\n }\n\n ${props => props.isDarkBackground && css`\n background: ${props => props.theme.C_BG_popover};\n // when screen to small, we want to have horizontal scrollbar for line items\n // if background is used\n overflow: auto;\n `};\n\n // if FormGroup is flex-column, stretch body\n ${props => props.isFlex && css`\n flex: 1 1 auto;\n `};\n`;\n\nexport const GroupedKey = styled.div`\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-end;\n`;\n\nexport const Field = styled.div<{\n sharpRight: boolean,\n _width?: string\n}>`\n // for relative width put 100% so we don't short field by parent's \n width: ${props => props._width === \"100%\" ? \"100%\" : \"\"};\n max-width: 100%;\n display: flex;\n`;\n\nexport const ExpandIconBackgroundFormGroupAction = styled(ExpandIconBackground)`\n background: ${props => props.expanded ? \"#9e037f\" : \"transparent\"};\n`;\n\nexport const IconButtonStyledOptionsButton = styled(IconButton)`\n position: relative;\n\n && {\n margin: 0;\n }\n`;\n\nexport const FormGroupActionsStyled = styled(FormGroupActions)`\n margin-bottom: 20px;\n`;","import React, { ReactElement } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IconSize } from \"../../enums\";\nimport { AuditTrailLineComparison, IAuditTrailData } from \"../../model/Model\";\nimport TestIds from \"../../testIds\";\nimport { MoreIcon } from \"../icon\";\nimport {\n AuditTrailLayer,\n Body,\n ExpandIconBackgroundFormGroupAction,\n FormGroupActionsStyled,\n IconButtonStyledOptionsButton,\n StyledFormGroup\n} from \"./FormGroup.styles\";\nimport { IFormGroupAction } from \"./FormGroupActions\";\nimport { GroupHeader } from \"./GroupHeader\";\n\nexport interface IProps extends WithTranslation {\n id: string;\n title: string;\n isLightText?: boolean;\n isWithoutMargin?: boolean;\n tooltip?: React.ReactElement | string;\n headerContent?: React.ReactElement;\n isSimple?: boolean;\n showLine?: boolean;\n auditTrailData?: IAuditTrailData;\n isSmallBottomMargin?: boolean;\n options?: IFormGroupAction[];\n optionsDisabled?: boolean;\n selectedOption?: string;\n isOptionsOpened?: boolean;\n onOptionsButtonToggle?: () => void;\n onOptionClick?: (optionId: string) => void;\n isFlex?: boolean;\n style?: React.CSSProperties;\n className?: string;\n}\n\nclass FormGroup extends React.PureComponent {\n get optionsOpened(): boolean {\n return !this.props.optionsDisabled && this.props.isOptionsOpened;\n }\n\n shouldRenderAuditTrailLayer = (): boolean => {\n const type = this.props.auditTrailData?.lineData?.type;\n return type === AuditTrailLineComparison.MissingRow || type === AuditTrailLineComparison.AdditionalRow;\n };\n\n handleOptionsButtonClick = (): void => {\n this.props.onOptionsButtonToggle?.();\n };\n\n renderOptionsButton = (): ReactElement => {\n if (this.props.isSimple || !this.props.options?.length) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n };\n\n renderOptions = (): ReactElement => {\n return (\n \n );\n };\n\n render(): ReactElement {\n return (\n \n {this.shouldRenderAuditTrailLayer() &&\n \n }\n \n {this.props.options && this.renderOptionsButton()}\n {this.props.headerContent}\n \n \n {this.optionsOpened && this.renderOptions()}\n {this.props.children}\n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"])(FormGroup);","import React from \"react\";\n\nimport TestIds from \"../../testIds\";\nimport { TooltipIconInfo } from \"../tooltipIcon\";\nimport { Header, SeparatorStyledFormGroup, Title } from \"./FormGroup.styles\";\n\ninterface IGroupHeaderProps {\n title?: string;\n showLine?: boolean;\n tooltip?: React.ReactElement | string;\n className?: string;\n style?: React.CSSProperties;\n isLightText?: boolean;\n}\n\nexport class GroupHeader extends React.Component {\n render() {\n if (!this.props.title) {\n return null;\n }\n\n return (\n
\n {/*todo move title, tooltip and children to Separator*/}\n \n {this.props.title}\n \n {this.props.tooltip && {this.props.tooltip}}\n {this.props.children}\n {this.props.showLine && }\n
\n );\n }\n}","import styled, { css } from \"styled-components/macro\";\nimport { getSemanticTextColor, Title } from \"../../global.style\";\nimport { IconButton } from \"../button\";\nimport { Status } from \"../../enums\";\nimport { IconWrapper as ToolbarIconWrapper, StyledToolbar } from \"../toolbar/Toolbar.styles\";\n\nexport const HEADER_GAP = 32;\n\nexport const TOP_PADDING = 4;\n\nexport const IconWrapper = styled(IconButton)`\n position: relative;\n width: 38px;\n display: flex;\n justify-content: center;\n`;\n\nexport const StyledHeader = styled.div`\n position: relative;\n padding: 17px 0 42px;\n`;\n\nexport const TitleWrapper = styled.div`\n`;\n\nexport const HeaderSubtitle = styled(Title)<{ status?: Status }>`\n margin-left: 12px;\n font-size: 20px;\n\n ${props => props.status && css<{ status?: Status }>`\n font-size: 18px;\n font-style: italic;\n font-weight: normal;\n margin-left: 12px;\n color: ${props => getSemanticTextColor(props.theme, props.status)};\n `};\n`;\n\nexport const StyledHeaderContent = styled.div`\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n gap: ${HEADER_GAP}px 0;\n position: relative;\n width: 100%;\n`;\n\nexport const HeaderToolbarWrapper = styled.div`\n position: relative;\n padding-top: ${TOP_PADDING}px;\n\n ${StyledToolbar} {\n margin-bottom: 0;\n }\n\n ${ToolbarIconWrapper} {\n margin-left: 2px;\n }\n`;\n\nexport const ToolbarSpacer = styled.div`\n min-width: 24px;\n max-width: 24px;\n`;\n","import { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { CustomClasses, Status, ToolbarItemType } from \"../../enums\";\nimport { Title } from \"../../global.style\";\nimport TestIds from \"../../testIds\";\nimport { IAlertProps } from \"../alert/Alert\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { THistoryLocation } from \"../drillDown/DrillDown.utils\";\nimport { HOTSPOT_ID_ATTR } from \"../hotspots/Hotspots.utils\";\nimport { Toolbar } from \"../toolbar\";\nimport {\n HeaderSubtitle,\n HeaderToolbarWrapper,\n StyledHeader,\n StyledHeaderContent,\n TitleWrapper,\n ToolbarSpacer\n} from \"./Header.styles\";\n\ninterface IProps {\n title: string;\n subtitle?: string;\n subtitleStatus?: Status;\n icons?: IHeaderIcon[],\n beforeIconsContent?: React.ReactElement;\n afterIconsContent?: React.ReactElement;\n hotspotId?: string;\n ref?: React.Ref;\n isDisabled?: boolean;\n disabledAlert?: IAlertProps;\n isReadOnly?: boolean;\n\n className?: string;\n style?: React.CSSProperties;\n}\n\ntype IPropsExtended = IProps & WithDomManipulator & WithTranslation;\n\ninterface IDomProps {\n expand: boolean;\n ignore: boolean;\n}\n\nexport interface IHeaderIcon {\n id: string;\n onClick?: () => void;\n /** Use instead of onClick */\n link?: THistoryLocation;\n label?: string;\n iconName: string;\n isDisabled?: boolean;\n isLight?: boolean;\n // icon is enabled even though the Header itself is enabled\n ignoreMasterDisabled?: boolean;\n}\n\nclass Header extends React.Component {\n static defaultProps: Partial = {\n icons: []\n };\n\n _refHeader = React.createRef();\n\n componentDidMount(): void {\n this.updatePaddings();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any): void {\n this.updatePaddings();\n }\n\n updatePaddings = () => {\n // this constant show maximum item offsetTop difference for items in the same row\n // we test using this, whether flex is wrapped or not (comparing offsetTop of first and last item)\n const HEADER_DIFF = 30;\n\n if (!this._refHeader.current) {\n return;\n }\n\n this.props.domManipulatorOrchestrator.registerCallback(\n () => {\n const children = this._refHeader.current?.childNodes;\n const first = children?.[0] as HTMLElement,\n last = children?.[children.length - 1] as HTMLElement;\n const ignore = !first || !last;\n\n return {\n ignore,\n expand: !ignore && Math.abs(first.offsetTop - last.offsetTop) < HEADER_DIFF\n };\n }, (data: IDomProps) => {\n if (data.ignore) {\n return;\n }\n\n const spaces = this._refHeader.current.getElementsByClassName(CustomClasses.SummarySpace);\n for (const sp of spaces) {\n const space = sp as HTMLElement;\n space.style.flexGrow = data.expand ? \"1\" : \"0\";\n\n // if space is first element in the wrapped row, hide it\n // we can't test hidden element tho, so first show it\n space.style.display = \"block\";\n if (space.offsetLeft === 0) {\n space.style.display = \"none\";\n }\n }\n },\n [this._refHeader]\n );\n };\n\n handleResize = () => {\n this.updatePaddings();\n };\n\n\n getToolbarIcons = (): IToolbarItem[] => {\n return this.props.icons.map(icon => this.convertHeaderIconToToolbarItem(icon));\n };\n\n convertHeaderIconToToolbarItem = (headerIcon: IHeaderIcon): IToolbarItem => {\n const isDisabled = headerIcon.isDisabled || (!headerIcon.ignoreMasterDisabled && this.props.isDisabled);\n const disabledAlert = isDisabled && this.props.disabledAlert;\n return {\n id: headerIcon.id,\n label: headerIcon.label,\n iconName: headerIcon.iconName,\n isDisabled,\n isLight: headerIcon.isLight,\n itemType: ToolbarItemType.Icon,\n itemProps: {\n link: headerIcon.link,\n alert: disabledAlert\n }\n };\n };\n\n handleToolbarIconClick = (id: string) => {\n const icon = this.props.icons.find(icon => icon.id === id);\n\n if (!icon.link) {\n icon?.onClick();\n }\n };\n\n renderToolbar = () => {\n const icons = this.getToolbarIcons();\n\n if (!icons?.length) {\n return null;\n }\n\n return (\n <>\n \n \n \n {icons}\n \n \n \n );\n };\n\n render() {\n return (\n \n \n \n {(this.props.title || this.props.subtitle) &&\n \n \n {this.props.title}\n \n {this.props.subtitle &&\n \n {this.props.subtitle}\n \n }\n \n }\n {this.props.beforeIconsContent}\n {!this.props.isReadOnly && this.renderToolbar()}\n {this.props.afterIconsContent}\n \n \n );\n }\n\n}\n\nexport default withDomManipulator(withTranslation([\"Common\"], { withRef: true })(Header));","export enum HotspotViewIds {\n DashboardCustomization = \"dashboardCustomization\",\n AuditTrailView = \"auditTrailView\",\n PairingDocTableView = \"pairingDocTableView\",\n SwitchableFeatures = \"switchableFeatures\",\n FileIntegrationMockId = \"FileIntegrationMockId\",\n GoPayMockView = \"goPayMockView\",\n GoPayMockItemView = \"goPayMockItemView\",\n PdfViewerDevtools = \"pdfViewerDevtools\",\n ExecuteScheduledTask = \"executeScheduledTask\",\n TimeTravel = \"timeTravel\",\n SubscriptionPlan = \"subscriptionPlan\",\n BillingPaymentHistoryTable = \"billingPaymentHistoryTable\",\n CompanyDashboard = \"companyDashboard\",\n FileView = \"fileView\",\n HomeView = \"homeView\",\n ChartOfAccountsTemplatesTable = \"chartOfAccountsTemplatesTable\",\n Notifications = \"notifications\",\n PairingWithAssetTableView = \"pairingWithAssetTableView\",\n SubscriptionExtensions = \"subscriptionExtensions\",\n VatSubmissionsDetail = \"vatSubmissionsDetail\",\n}","import { REST_API_URL } from \"../../constants\";\nimport { isDefined } from \"@utils/general\";\n\nexport const HOTSPOTS_INTERACTION_URL = `${REST_API_URL}/HotspotInteraction`;\nexport const GENERAL_HOTSPOT_VIEW = \"General\";\nexport const HOTSPOT_ID_ATTR = \"data-hotspotid\";\nexport const HOTSPOT_VIEW_ATTR = \"data-hotspotviewid\";\n// we are reusing same element id for two translations - one for title, one for the main text\nexport const HOTSPOT_TITLE_SUFFIX = \"_title\";\n\ntype THotspotCommand = \"UpsertHotspotAndTranslations\" | \"DeleteHotspotTranslations\" | \"DeleteHotspot\";\n\nexport interface IToolHotspotDefinition {\n Type: THotspotCommand,\n ViewId: string,\n ElementId: string,\n \"Translations\"?: { \"Language\": string, \"Text\": string }[]\n}\n\nexport const buildHotspotId = (viewId: string, elementId: string): string => {\n return `${viewId};${elementId}`;\n};\n\nexport const splitHotspotId = (hotspotId: string): { viewId: string, elementId: string } => {\n const [viewId, elementId] = hotspotId.split(\";\");\n\n return { viewId, elementId };\n};\n\nexport const getClosestViewId = (element: HTMLElement): string => {\n let parent = element.parentElement;\n let viewId = \"\";\n\n // find first parent element with HOTSPOT_VIEW_ATTR or use GENERAL_HOTSPOT_VIEW\n while (true) {\n const viewAttr = parent.getAttribute(HOTSPOT_VIEW_ATTR);\n\n if (viewAttr) {\n viewId = viewAttr;\n break;\n } else if (parent === document.body) {\n viewId = GENERAL_HOTSPOT_VIEW;\n break;\n }\n\n parent = parent.parentElement;\n }\n\n return viewId;\n};\n\nconst DUPLICATE_HOTSPOT_ID_REGEX = new RegExp(\"-(\\\\d+)\");\n\nexport const addIndexToDuplicateHotspotID = (hotspotId: string, index: number): string => {\n return isDefined(index) && index > 0 ? `${hotspotId}-${index}` : hotspotId;\n};\n\nexport const getCleanHotspotId = (hotspotId: string): string => {\n return hotspotId.replace(DUPLICATE_HOTSPOT_ID_REGEX, \"\");\n};\n\nexport const isSameHotspotDefId = (hotspotId1: string, hotspotId2: string): boolean => {\n return getCleanHotspotId(hotspotId1) === getCleanHotspotId(hotspotId2);\n};","import { handleRefHandlers } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { setLightness } from \"polished\";\nimport React, { useRef } from \"react\";\nimport styled, { css, DefaultTheme } from \"styled-components/macro\";\n\nimport { Status } from \"../../enums\";\nimport { getSemanticBgColor, getSemanticElColor } from \"../../global.style\";\nimport { ReactComponent as AccountingAdjustmentSvg } from \"../../icons/accountingAdjustment.svg\";\nimport { ReactComponent as AddSvg } from \"../../icons/add.svg\";\nimport { ReactComponent as AddChildSvg } from \"../../icons/addchild.svg\";\nimport { ReactComponent as AddFilterSvg } from \"../../icons/addFilter.svg\";\nimport { ReactComponent as AddMessageSvg } from \"../../icons/addMessage.svg\";\nimport { ReactComponent as AddMinorAssetSvg } from \"../../icons/addMinorAsset.svg\";\nimport { ReactComponent as AddParentSvg } from \"../../icons/addparent.svg\";\nimport { ReactComponent as AddToSvg } from \"../../icons/addTo.svg\";\nimport { ReactComponent as AddToFilledSvg } from \"../../icons/addToFilled.svg\";\nimport { ReactComponent as AddToMinorAssetSvg } from \"../../icons/addToMinorAsset.svg\";\nimport { ReactComponent as AddUserRoleSvg } from \"../../icons/addUserRole.svg\";\nimport { ReactComponent as AgendaSvg } from \"../../icons/agenda.svg\";\n// alert icons\nimport { ReactComponent as ErrorSvg } from \"../../icons/alert/error.svg\";\nimport { ReactComponent as SuccessSvg } from \"../../icons/alert/success.svg\";\nimport { ReactComponent as WarningSvg } from \"../../icons/alert/warning.svg\";\nimport { ReactComponent as AppsSvg } from \"../../icons/apps.svg\";\nimport { ReactComponent as ArchiveSvg } from \"../../icons/archive.svg\";\nimport { ReactComponent as ArchiveFilledSvg } from \"../../icons/archiveFilled.svg\";\nimport { ReactComponent as ArrowSvg } from \"../../icons/arrow.svg\";\nimport { ReactComponent as AssetDisposalSvg } from \"../../icons/assetDisposal.svg\";\nimport { ReactComponent as AttachmentSvg } from \"../../icons/attachment.svg\";\nimport { ReactComponent as AuditTrailSvg } from \"../../icons/audittrail.svg\";\nimport { ReactComponent as AutomaticPairingSvg } from \"../../icons/automaticpairing.svg\";\nimport { ReactComponent as AutomaticPairingSettingsSvg } from \"../../icons/automaticpairingsettings.svg\";\nimport { ReactComponent as BankApiSvg } from \"../../icons/bankApi.svg\";\nimport { ReactComponent as BinSvg } from \"../../icons/bin.svg\";\nimport { ReactComponent as BriefcaseSvg } from \"../../icons/briefcase.svg\";\nimport { ReactComponent as BulkEditSvg } from \"../../icons/bulkedit.svg\";\nimport { ReactComponent as CardLimitSvg } from \"../../icons/cardLimit.svg\";\nimport { ReactComponent as CalculatorSvg } from \"../../icons/calculator.svg\";\nimport { ReactComponent as CaretSvg } from \"../../icons/caret.svg\";\nimport { ReactComponent as CashBoxSvg } from \"../../icons/cashbox.svg\";\nimport { ReactComponent as ChainedSvg } from \"../../icons/chained.svg\";\nimport { ReactComponent as ChangePriceSvg } from \"../../icons/changePrice.svg\";\nimport { ReactComponent as CheckSvg } from \"../../icons/check.svg\";\nimport { ReactComponent as CheckboxSvg } from \"../../icons/checkbox.svg\";\nimport { ReactComponent as CheckboxGroupSvg } from \"../../icons/checkboxGroup.svg\";\nimport { ReactComponent as CheckDoubleSvg } from \"../../icons/checkDouble.svg\";\nimport { ReactComponent as CleanFilterSvg } from \"../../icons/cleanFilter.svg\";\nimport { ReactComponent as CloseSvg } from \"../../icons/close.svg\";\nimport { ReactComponent as CollapseSvg } from \"../../icons/collapse.svg\";\nimport { ReactComponent as CollapseAllSvg } from \"../../icons/collapseAll.svg\";\nimport { ReactComponent as ConfirmSvg } from \"../../icons/confirm.svg\";\n// connection component icons\nimport { ReactComponent as ConnectedSvg } from \"../../icons/connectionDialog/connected.svg\";\nimport { ReactComponent as ConnectionErrorSvg } from \"../../icons/connectionDialog/connectionError.svg\";\nimport { ReactComponent as ConnectionWarnSvg } from \"../../icons/connectionDialog/connectionWarn.svg\";\nimport { ReactComponent as DisconnectedSvg } from \"../../icons/connectionDialog/disconnected.svg\";\nimport { ReactComponent as ContainsTwoFormsSvg } from \"../../icons/containsTwoForms.svg\";\nimport { ReactComponent as CopySvg } from \"../../icons/copy.svg\";\nimport { ReactComponent as CopyLinkSvg } from \"../../icons/copyLink.svg\";\nimport { ReactComponent as CopySimpleSvg } from \"../../icons/copySimple.svg\";\nimport { ReactComponent as CorrectionSvg } from \"../../icons/correction.svg\";\nimport { ReactComponent as CostsSvg } from \"../../icons/costs.svg\";\nimport { ReactComponent as CreateStatementSvg } from \"../../icons/createStatement.svg\";\nimport { ReactComponent as CursorSvg } from \"../../icons/cursor.svg\";\nimport { ReactComponent as CustomerPortalSvg } from \"../../icons/customerPortal.svg\";\n// dashboard icons\nimport { ReactComponent as AccountingJournalSvg } from \"../../icons/dashboard/accountingJournal.svg\";\nimport { ReactComponent as BalanceSheetSvg } from \"../../icons/dashboard/balanceSheet.svg\";\nimport { ReactComponent as CbaEntryLedgerSvg } from \"../../icons/dashboard/cbaEntryLedger.svg\";\nimport { ReactComponent as CustomerPortalInvoicingSvg } from \"../../icons/dashboard/customerPortalInvoicing.svg\";\nimport { ReactComponent as CustomerPortalPaymentSvg } from \"../../icons/dashboard/customerPortalPayment.svg\";\nimport { ReactComponent as CustomerSupportSvg } from \"../../icons/dashboard/customerSupport.svg\";\nimport { ReactComponent as DemoTenantSvg } from \"../../icons/dashboard/demoTenant.svg\";\nimport { ReactComponent as DocumentJournalSvg } from \"../../icons/dashboard/documentJournal.svg\";\nimport { ReactComponent as ForPaymentSvg } from \"../../icons/dashboard/forPayment.svg\";\nimport { ReactComponent as GeneralLedgerSvg } from \"../../icons/dashboard/generalLedger.svg\";\nimport { ReactComponent as InboxSvg } from \"../../icons/dashboard/inbox.svg\";\nimport { ReactComponent as IncomeStatementSvg } from \"../../icons/dashboard/incomeStatement.svg\";\nimport { ReactComponent as ManualSvg } from \"../../icons/dashboard/manual.svg\";\nimport { ReactComponent as PaymentJournalSvg } from \"../../icons/dashboard/paymentJournal.svg\";\nimport { ReactComponent as SendToAccountantSvg } from \"../../icons/dashboard/sendToAccountant.svg\";\nimport { ReactComponent as TicketsSvg } from \"../../icons/dashboard/tickets.svg\";\nimport { ReactComponent as DateSvg } from \"../../icons/date.svg\";\nimport { ReactComponent as DateTimeSvg } from \"../../icons/datetime.svg\";\nimport { ReactComponent as DemoSvg } from \"../../icons/demo.svg\";\nimport { ReactComponent as DepreciationSvg } from \"../../icons/depreciation.svg\";\nimport { ReactComponent as DiscardSvg } from \"../../icons/discard.svg\";\nimport { ReactComponent as DislikeSvg } from \"../../icons/dislike.svg\";\nimport { ReactComponent as DislikeFilledSvg } from \"../../icons/dislikeFilled.svg\";\nimport { ReactComponent as DocListSvg } from \"../../icons/docList.svg\";\nimport { ReactComponent as DocMenuSvg } from \"../../icons/docmenu.svg\";\n// login icons\nimport { ReactComponent as DocSimpleSvg } from \"../../icons/docsimple.svg\";\nimport { ReactComponent as DocumentSvg } from \"../../icons/document.svg\";\nimport { ReactComponent as DocumentDraftSvg } from \"../../icons/documentDraft.svg\";\nimport { ReactComponent as DocumentFilledSvg } from \"../../icons/documentFilled.svg\";\nimport { ReactComponent as ExcelSvg } from \"../../icons/documents/excel.svg\";\nimport { ReactComponent as IsdocSvg } from \"../../icons/documents/isdoc.svg\";\nimport { ReactComponent as OtherSvg } from \"../../icons/documents/other.svg\";\nimport { ReactComponent as PdfSvg } from \"../../icons/documents/pdf.svg\";\nimport { ReactComponent as PictureSvg } from \"../../icons/documents/picture.svg\";\nimport { ReactComponent as DocTemplateSvg } from \"../../icons/documents/template.svg\";\nimport { ReactComponent as TxtSvg } from \"../../icons/documents/text.svg\";\nimport { ReactComponent as WordSvg } from \"../../icons/documents/word.svg\";\nimport { ReactComponent as DocumentSavedSvg } from \"../../icons/documentSaved.svg\";\nimport {\n ReactComponent as CorrectiveInvoicesIssuedPlainSvg\n} from \"../../icons/documentTypes/correctiveInvoicesIssuedPlain.svg\";\nimport {\n ReactComponent as CorrectiveInvoicesReceivedPlainSvg\n} from \"../../icons/documentTypes/correctiveInvoicesReceived.svg\";\nimport { ReactComponent as InternalDocumentCancelSvg } from \"../../icons/documentTypes/internalDocumentCancel.svg\";\nimport { ReactComponent as InternalDocumentPlainSvg } from \"../../icons/documentTypes/internalDocuments.svg\";\nimport { ReactComponent as InvoicesIssuedPlainSvg } from \"../../icons/documentTypes/invoicesIssued.svg\";\nimport { ReactComponent as InvoicesReceivedPlainSvg } from \"../../icons/documentTypes/invoicesReceived.svg\";\nimport { ReactComponent as OtherLiabilitiesPlainSvg } from \"../../icons/documentTypes/otherLiabilities.svg\";\nimport { ReactComponent as OtherReceivablesPlainSvg } from \"../../icons/documentTypes/otherReceivables.svg\";\nimport { ReactComponent as ProformaInvoicesIssuedPlainSvg } from \"../../icons/documentTypes/proformaInvoicesIssued.svg\";\nimport {\n ReactComponent as ProformaInvoicesIssuedTaxPlainSvg\n} from \"../../icons/documentTypes/proformaInvoicesIssuedTax.svg\";\nimport {\n ReactComponent as ProformaInvoicesReceivedPlainSvg\n} from \"../../icons/documentTypes/proformaInvoicesReceived.svg\";\nimport {\n ReactComponent as ProformaInvoicesReceivedTaxPlainSvg\n} from \"../../icons/documentTypes/proformaInvoicesReceivedTax.svg\";\nimport { ReactComponent as TaxDocumentSvg } from \"../../icons/documentTypes/taxDocument.svg\";\nimport { ReactComponent as DownSvg } from \"../../icons/down.svg\";\nimport { ReactComponent as DownloadSvg } from \"../../icons/download.svg\";\nimport { ReactComponent as EditSvg } from \"../../icons/edit.svg\";\nimport { ReactComponent as EditLockSvg } from \"../../icons/editLock.svg\";\nimport { ReactComponent as EditSimpleSvg } from \"../../icons/editSimple.svg\";\nimport { ReactComponent as EmailSvg } from \"../../icons/email.svg\";\nimport { ReactComponent as EmojiSvg } from \"../../icons/emoji.svg\";\nimport { ReactComponent as EnterSvg } from \"../../icons/enter.svg\";\nimport { ReactComponent as ExitSimpleSvg } from \"../../icons/exitSimple.svg\";\nimport { ReactComponent as ExpandSvg } from \"../../icons/expand.svg\";\nimport { ReactComponent as ExpandAllSvg } from \"../../icons/expandAll.svg\";\nimport { ReactComponent as ExportSvg } from \"../../icons/export.svg\";\nimport { ReactComponent as ExportCsvSvg } from \"../../icons/exportCsv.svg\";\nimport { ReactComponent as ExportExcelSvg } from \"../../icons/exportExcel.svg\";\nimport { ReactComponent as ExportPdfSvg } from \"../../icons/exportPdf.svg\";\nimport { ReactComponent as ExportReportFullSvg } from \"../../icons/exportReportFull.svg\";\nimport { ReactComponent as ExportReportShortSvg } from \"../../icons/exportReportShort.svg\";\nimport { ReactComponent as FieldValidationNegativeSvg } from \"../../icons/fieldValidation/fieldValidationNegative.svg\";\nimport { ReactComponent as FieldValidationPositiveSvg } from \"../../icons/fieldValidation/fieldValidationPositive.svg\";\nimport { ReactComponent as FieldValidationWarningSvg } from \"../../icons/fieldValidation/fieldValidationWarning.svg\";\nimport { ReactComponent as FileSimpleSvg } from \"../../icons/fileSimple.svg\";\nimport { ReactComponent as FillFormSvg } from \"../../icons/fillForm.svg\";\nimport { ReactComponent as FilterSvg } from \"../../icons/filter.svg\";\nimport { ReactComponent as FitToPageSvg } from \"../../icons/fitToPage.svg\";\nimport { ReactComponent as FitToWidthSvg } from \"../../icons/fitToWidth.svg\";\nimport { ReactComponent as FloppyDiskSvg } from \"../../icons/floppyDisk.svg\";\nimport { ReactComponent as FolderSvg } from \"../../icons/folder.svg\";\nimport { ReactComponent as FolderAddSvg } from \"../../icons/folderAdd.svg\";\nimport { ReactComponent as InboxFolderSvg } from \"../../icons/folderLabels/_folder.svg\";\nimport { ReactComponent as FolderDotsSvg } from \"../../icons/folderLabels/dots.svg\";\nimport { ReactComponent as FolderFPSvg } from \"../../icons/folderLabels/FP.svg\";\nimport { ReactComponent as FolderFVSvg } from \"../../icons/folderLabels/FV.svg\";\nimport { ReactComponent as FolderPDSvg } from \"../../icons/folderLabels/PD.svg\";\nimport { ReactComponent as FolderPDDOPPSvg } from \"../../icons/folderLabels/PDDOPP.svg\";\nimport { ReactComponent as FolderPPDSvg } from \"../../icons/folderLabels/PPD.svg\";\nimport { ReactComponent as FolderVBUSvg } from \"../../icons/folderLabels/VBU.svg\";\nimport { ReactComponent as FolderVDDOPPSvg } from \"../../icons/folderLabels/VDDOPP.svg\";\nimport { ReactComponent as FolderVPDSvg } from \"../../icons/folderLabels/VPD.svg\";\nimport { ReactComponent as FolderZDSvg } from \"../../icons/folderLabels/ZD.svg\";\nimport { ReactComponent as FolderZFPSvg } from \"../../icons/folderLabels/ZFP.svg\";\nimport { ReactComponent as FolderZFVSvg } from \"../../icons/folderLabels/ZFV.svg\";\nimport { ReactComponent as FolderOtherSvg } from \"../../icons/folderOther.svg\";\nimport { ReactComponent as FormSvg } from \"../../icons/form.svg\";\n// form customization icons\nimport { ReactComponent as DependentFieldsSvg } from \"../../icons/formCustomization/dependentFields.keepStyle.svg\";\nimport { ReactComponent as LockedGroupSvg } from \"../../icons/formCustomization/locked.keepStyle.svg\";\nimport { ReactComponent as DoubleCaretSvg } from \"../../icons/forward.svg\";\nimport { ReactComponent as FullscreenCloseSvg } from \"../../icons/fullScreenClose.svg\";\nimport { ReactComponent as FullscreenOpenSvg } from \"../../icons/fullScreenOpen.svg\";\nimport { ReactComponent as GraphSvg } from \"../../icons/graph.svg\";\nimport { ReactComponent as HandSvg } from \"../../icons/hand.svg\";\nimport { ReactComponent as HelpSvg } from \"../../icons/help.svg\";\nimport { ReactComponent as HomeSvg } from \"../../icons/home.svg\";\nimport { ReactComponent as HotSpotsSvg } from \"../../icons/hotspots.svg\";\nimport { ReactComponent as ImageSvg } from \"../../icons/image.svg\";\nimport { ReactComponent as IncomingSvg } from \"../../icons/incoming.svg\";\nimport { ReactComponent as IncomingPaymentSvg } from \"../../icons/incomingpayment.svg\";\nimport { ReactComponent as IncreaseOfPriceSvg } from \"../../icons/increaseOfPrice.svg\";\nimport { ReactComponent as InfoSvg } from \"../../icons/info.svg\";\nimport { ReactComponent as InitialBalancesSvg } from \"../../icons/initialBalances.keepStyle.svg\";\nimport { ReactComponent as InvoicesIssuedBigSvg } from \"../../icons/invoiceIssuedBig.svg\";\nimport { ReactComponent as InvoicesReceivedBigSvg } from \"../../icons/invoiceReceivedBig.svg\";\nimport { ReactComponent as LabelSvg } from \"../../icons/label.svg\";\nimport { ReactComponent as LastUpdatedSvg } from \"../../icons/lastUpdated.svg\";\nimport { ReactComponent as LastUpdatedSimpleSvg } from \"../../icons/lastUpdatedSimple.svg\";\nimport { ReactComponent as LikeSvg } from \"../../icons/like.svg\";\nimport { ReactComponent as LikeFilledSvg } from \"../../icons/likeFilled.svg\";\nimport { ReactComponent as ListSvg } from \"../../icons/list.svg\";\nimport { ReactComponent as LockSvg } from \"../../icons/lock.svg\";\nimport { ReactComponent as LockClosedSvg } from \"../../icons/lockclosed.svg\";\nimport { ReactComponent as LockFilledSvg } from \"../../icons/lockFilled.svg\";\nimport { ReactComponent as LockOpenedSvg } from \"../../icons/lockopened.svg\";\nimport { ReactComponent as MobileSvg } from \"../../icons/login/mobile.keepStyle.svg\";\nimport { ReactComponent as PcSvg } from \"../../icons/login/pc.keepStyle.svg\";\nimport { ReactComponent as TabletSvg } from \"../../icons/login/tablet.keepStyle.svg\";\nimport { ReactComponent as EvalaSvg } from \"../../icons/logos/evala.keepStyle.svg\";\nimport { ReactComponent as EvalaPlainSvg } from \"../../icons/logos/evala.plain.svg\";\nimport { ReactComponent as FacebookSvg } from \"../../icons/logos/facebook.svg\";\nimport { ReactComponent as GoogleSvg } from \"../../icons/logos/google.svg\";\nimport { ReactComponent as IDokladSvg } from \"../../icons/logos/idoklad.keepStyle.svg\";\nimport { ReactComponent as FakturoidSvg } from \"../../icons/logos/integrations/fakturoid.svg\";\nimport { ReactComponent as IDokladLogoSvg } from \"../../icons/logos/integrations/idoklad.svg\";\nimport { ReactComponent as LogoutSvg } from \"../../icons/logout.svg\";\nimport { ReactComponent as MassAccountingSvg } from \"../../icons/massaccounting.svg\";\nimport { ReactComponent as MenuSvg } from \"../../icons/menu.svg\";\nimport { ReactComponent as GrowthNegativeSvg } from \"../../icons/microChart/growthNegative.svg\";\nimport { ReactComponent as GrowthPositiveSvg } from \"../../icons/microChart/growthPositive.svg\";\nimport { ReactComponent as GrowthZeroSvg } from \"../../icons/microChart/growthZero.svg\";\nimport { ReactComponent as MoreSvg } from \"../../icons/more.svg\";\nimport { ReactComponent as MoreOptionsSvg } from \"../../icons/moreoptions.svg\";\nimport { ReactComponent as NoteSvg } from \"../../icons/note.svg\";\nimport { ReactComponent as NoteFilledSvg } from \"../../icons/noteFilled.svg\";\nimport { ReactComponent as NotificationSvg } from \"../../icons/notification.svg\";\nimport { ReactComponent as ApiSvg } from \"../../icons/objectPage/api.svg\";\nimport { ReactComponent as CashBoxListSvg } from \"../../icons/objectPage/cashbox.svg\";\nimport { ReactComponent as DataBoxSvg } from \"../../icons/objectPage/dataBox.svg\";\nimport { ReactComponent as ExportBankTransactionsSvg } from \"../../icons/objectPage/exportBankTransactions.svg\";\nimport { ReactComponent as ExportCashReceiptsSvg } from \"../../icons/objectPage/exportCashReceipts.svg\";\nimport { ReactComponent as ExportDocumentsSvg } from \"../../icons/objectPage/exportDocuments.svg\";\nimport { ReactComponent as IntegrationSvg } from \"../../icons/objectPage/integration.svg\";\nimport { ReactComponent as IsdocImportSvg } from \"../../icons/objectPage/isdocImport.svg\";\nimport { ReactComponent as MoneyS3Svg } from \"../../icons/objectPage/MoneyS3.svg\";\nimport { ReactComponent as PohodaSvg } from \"../../icons/objectPage/pohoda.svg\";\n// object page icons\nimport { ReactComponent as RossumSvg } from \"../../icons/objectPage/rossum.svg\";\nimport { ReactComponent as StorageSvg } from \"../../icons/objectPage/storage.svg\";\nimport { ReactComponent as SubscriptionSvg } from \"../../icons/objectPage/subscription.svg\";\nimport { ReactComponent as VatControlStatementSvg } from \"../../icons/objectPage/VatControlStatement.svg\";\nimport { ReactComponent as VatStatementSvg } from \"../../icons/objectPage/VatStatement.svg\";\nimport { ReactComponent as VatViesStatementSvg } from \"../../icons/objectPage/VatViesStatement.svg\";\nimport { ReactComponent as OldImportClockSvg } from \"../../icons/oldImportClock.svg\";\nimport { ReactComponent as OneDocPairSvg } from \"../../icons/onedocpair.svg\";\nimport { ReactComponent as OutgoingSvg } from \"../../icons/outgoing.svg\";\nimport { ReactComponent as OutgoingPaymentSvg } from \"../../icons/outgoingpayment.svg\";\nimport { ReactComponent as PaidDocumentSvg } from \"../../icons/paidDocument.svg\";\nimport { ReactComponent as PairSvg } from \"../../icons/pair.svg\";\nimport { ReactComponent as PairingAccruedItemsSvg } from \"../../icons/pairingAccruedItems.svg\";\nimport { ReactComponent as PairingDepositSvg } from \"../../icons/pairingDeposit.svg\";\nimport { ReactComponent as PairingExpensesSvg } from \"../../icons/pairingExpenses.svg\";\nimport { ReactComponent as PairingGeneralSvg } from \"../../icons/pairingGeneral.svg\";\nimport { ReactComponent as ParametersSvg } from \"../../icons/parameters.svg\";\nimport { ReactComponent as PaymentRequestSvg } from \"../../icons/paymentRequest.svg\";\nimport { ReactComponent as PinSvg } from \"../../icons/pin.svg\";\nimport { ReactComponent as PlaySvg } from \"../../icons/play.svg\";\nimport { ReactComponent as PlusSvg } from \"../../icons/plus.svg\";\nimport { ReactComponent as PrintSvg } from \"../../icons/print.svg\";\nimport { ReactComponent as QuerySvg } from \"../../icons/query.svg\";\nimport { ReactComponent as RadioButtonGroupSvg } from \"../../icons/radioButtonGroup.svg\";\nimport { ReactComponent as ReductionOfPriceSvg } from \"../../icons/reductionOfPrice.svg\";\nimport { ReactComponent as InterruptSvg } from \"../../icons/interrupt.svg\";\nimport { ReactComponent as PartialDepreciationSvg } from \"../../icons/partialDepreciation.svg\";\nimport { ReactComponent as RefreshSvg } from \"../../icons/refresh.svg\";\nimport { ReactComponent as RefreshSimpleSvg } from \"../../icons/refreshSimple.svg\";\nimport { ReactComponent as ReorderRowsSvg } from \"../../icons/reorderrows.svg\";\nimport { ReactComponent as ReorderRowsSmallSvg } from \"../../icons/reorderrowssmall.svg\";\nimport { ReactComponent as ResizeSvg } from \"../../icons/resize.svg\";\nimport { ReactComponent as RubberSvg } from \"../../icons/rubber.svg\";\nimport { ReactComponent as SafeSvg } from \"../../icons/safe.svg\";\nimport { ReactComponent as SearchSvg } from \"../../icons/search.svg\";\nimport { ReactComponent as SearchSmallSvg } from \"../../icons/searchSmall.svg\";\nimport { ReactComponent as SendSvg } from \"../../icons/send.svg\";\nimport { ReactComponent as SendDunningLetterSvg } from \"../../icons/sendDunningLetter.svg\";\nimport { ReactComponent as SendInvoiceSvg } from \"../../icons/sendInvoice.svg\";\nimport { ReactComponent as SendMessageSvg } from \"../../icons/sendMessage.svg\";\nimport { ReactComponent as SettingsSvg } from \"../../icons/setting.svg\";\nimport { ReactComponent as SettingsSimpleSvg } from \"../../icons/settingsSimple.svg\";\nimport { ReactComponent as SortSvg } from \"../../icons/sort.svg\";\nimport { ReactComponent as SortDownSvg } from \"../../icons/sortDown.svg\";\nimport { ReactComponent as SortingSvg } from \"../../icons/sorting.svg\";\nimport { ReactComponent as AttachmentIndicatorSvg } from \"../../icons/statusIndicators/attachmentIndicator.svg\";\nimport { ReactComponent as ClearedStatusClearedSvg } from \"../../icons/statusIndicators/cs_cleared.svg\";\nimport { ReactComponent as ClearedStatusNotClearedSvg } from \"../../icons/statusIndicators/cs_notCleared.svg\";\nimport {\n ReactComponent as ClearedStatusPartiallyClearedSvg\n} from \"../../icons/statusIndicators/cs_partiallyCleared.svg\";\nimport { ReactComponent as StatusDoubleFormSvg } from \"../../icons/statusIndicators/doubleForm.svg\";\nimport { ReactComponent as StatusIsdocSvg } from \"../../icons/statusIndicators/isdoc.svg\";\nimport { ReactComponent as StatusLockedSvg } from \"../../icons/statusIndicators/locked.svg\";\nimport { ReactComponent as StatusNoSvg } from \"../../icons/statusIndicators/no.svg\";\nimport { ReactComponent as StatusNoDataReadSvg } from \"../../icons/statusIndicators/noDataRead.svg\";\nimport { ReactComponent as StatusPartlyLockedSvg } from \"../../icons/statusIndicators/partlyLocked.svg\";\nimport { ReactComponent as PostedStatusNotApplicableSvg } from \"../../icons/statusIndicators/ps_notApplicable.svg\";\nimport { ReactComponent as PostedStatusNotPostedSvg } from \"../../icons/statusIndicators/ps_notPosted.svg\";\nimport { ReactComponent as PostedStatusPostedSvg } from \"../../icons/statusIndicators/ps_posted.svg\";\nimport { ReactComponent as StatusRossumSvg } from \"../../icons/statusIndicators/rossum.svg\";\nimport { ReactComponent as StatusTicketDoneSvg } from \"../../icons/statusIndicators/ticket_done.svg\";\nimport { ReactComponent as StatusTicketInProgressSvg } from \"../../icons/statusIndicators/ticket_inProgress.svg\";\nimport { ReactComponent as StatusUnlockedSvg } from \"../../icons/statusIndicators/unlocked.svg\";\nimport {\n ReactComponent as VatStatementStatusNotApplicableSvg\n} from \"../../icons/statusIndicators/vat_notApplicable.svg\";\nimport { ReactComponent as VatStatementStatusNotPostedSvg } from \"../../icons/statusIndicators/vat_notPosted.svg\";\nimport { ReactComponent as VatStatementStatusPartialSvg } from \"../../icons/statusIndicators/vat_partial.svg\";\nimport { ReactComponent as VatStatementStatusPostedSvg } from \"../../icons/statusIndicators/vat_posted.svg\";\nimport { ReactComponent as StatusWarnSvg } from \"../../icons/statusIndicators/warn.svg\";\nimport { ReactComponent as StatusYesSvg } from \"../../icons/statusIndicators/yes.svg\";\nimport { ReactComponent as SupportSvg } from \"../../icons/support.svg\";\nimport { ReactComponent as SwitchSvg } from \"../../icons/switch.svg\";\nimport { ReactComponent as SynchronizationSvg } from \"../../icons/synchronization.svg\";\nimport { ReactComponent as TableCaretSvg } from \"../../icons/tablecaret.svg\";\nimport { ReactComponent as TaxInvoiceSvg } from \"../../icons/taxInvoice.svg\";\nimport { ReactComponent as TaxPayerDeclarationSvg } from \"../../icons/taxPayerDeclaration.svg\";\nimport { ReactComponent as TechnicalImprovementSvg } from \"../../icons/technicalImprovement.svg\";\nimport { ReactComponent as TemplateSvg } from \"../../icons/template.svg\";\nimport { ReactComponent as TimeSvg } from \"../../icons/time.svg\";\nimport { ReactComponent as TimeDependentSvg } from \"../../icons/timeDependent.svg\";\nimport { ReactComponent as TimeDependentFilledSvg } from \"../../icons/timeDependentFilled.svg\";\nimport { ReactComponent as UnavailableSvg } from \"../../icons/unavailable.svg\";\nimport { ReactComponent as UnchainedSvg } from \"../../icons/unchained.svg\";\nimport { ReactComponent as UnpaidDocumentSvg } from \"../../icons/unpaidDocument.svg\";\nimport { ReactComponent as UnrelatedItemsSvg } from \"../../icons/unrelatedItems.svg\";\nimport { ReactComponent as UpSvg } from \"../../icons/up.svg\";\nimport { ReactComponent as UploadSvg } from \"../../icons/upload.svg\";\nimport { ReactComponent as UploadSimpleSvg } from \"../../icons/uploadSimple.svg\";\nimport { ReactComponent as UseIsDocSvg } from \"../../icons/use_isdoc.svg\";\nimport { ReactComponent as UseRossumSvg } from \"../../icons/use_rossum.svg\";\nimport { ReactComponent as UserSvg } from \"../../icons/user.svg\";\nimport { ReactComponent as ValueHelpSvg } from \"../../icons/valuehelp.svg\";\nimport { ReactComponent as ValueHelpFilledSvg } from \"../../icons/valuehelpfilled.svg\";\nimport { ReactComponent as VisibleSvg } from \"../../icons/visible.svg\";\nimport { ReactComponent as VisibleFilledSvg } from \"../../icons/visibleFilled.svg\";\nimport { ReactComponent as WebInvoiceSvg } from \"../../icons/webInvoice.svg\";\nimport { ReactComponent as WelcomeCustomerSvg } from \"../../icons/welcome/customer.svg\";\nimport { ReactComponent as WelcomeDemoSvg } from \"../../icons/welcome/demo.svg\";\nimport { ReactComponent as WorkDateSvg } from \"../../icons/workDate.svg\";\nimport { ReactComponent as WorkDateFilledSvg } from \"../../icons/workDateFilled.svg\";\nimport { ReactComponent as ZoomInSvg } from \"../../icons/zoomin.svg\";\nimport { ReactComponent as ZoomOutSvg } from \"../../icons/zoomout.svg\";\nimport { ReactComponent as ZoomSmallSvg } from \"../../icons/zoomsmall.svg\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme, Theme, themes } from \"../../theme\";\n\n\nexport interface IProps {\n width?: string;\n height?: string;\n className?: string;\n style?: React.CSSProperties;\n /** Changes default look from dark to light colors */\n isLight?: boolean;\n isLightHover?: boolean;\n /** Force trigger hover state color */\n forceHover?: boolean;\n /** Always use colors from default theme */\n ignoreTheme?: boolean;\n /** By default, Icon inherits cursor from parent. Custom cursor can be passed via this prop. */\n cursor?: string;\n /** Disable icon's default color change on hover */\n preventHover?: boolean;\n title?: string;\n /** Override config colors with custom color. Can be either name of color from theme, or css color definition. */\n color?: keyof DefaultTheme;\n status?: Status;\n passRef?: React.Ref;\n}\n\nexport const IconNames: string[] = [];\n\nconst getHoverColor = (props: IProps & PropsWithTheme, darkColor: keyof DefaultTheme, lightColor: keyof DefaultTheme) => {\n const theme = getTheme(props);\n let color;\n\n if (!props.isLight) {\n if (props.isLightHover) {\n color = setLightness(0.7, theme[darkColor]);\n } else {\n color = theme[darkColor];\n }\n } else {\n color = theme[lightColor];\n }\n\n return color;\n};\n\nconst getTheme = (props: IProps & PropsWithTheme) => {\n return props.ignoreTheme && (props.theme === themes.light || props.theme === themes.dark) ? themes.light : props.theme;\n};\n\nconst getColor = (props: IProps & PropsWithTheme, defaultColorName: string, usePropsColor = true) => {\n const theme = getTheme(props);\n\n if (usePropsColor && props.color) {\n return theme[props.color] ?? props.color;\n }\n\n return theme[`C_ICON_${defaultColorName}_${!props.isLight ? \"dark\" : \"light\"}` as keyof Theme];\n};\n\nexport const hoverColors = (props: IProps & PropsWithTheme) => {\n return css`\n .IC_4L_main, .IC_4L_filled {\n stroke: ${getHoverColor(props, \"C_ICON_primary_dark\", \"C_ICON_primary_light_hover\")};\n }\n\n .IC_4L_filled, .IC_4L_filled_no_stroke, .IC_4L_dark_dot {\n fill: ${getHoverColor(props, \"C_ICON_primary_dark\", \"C_ICON_primary_light_hover\")};\n }\n\n .IC_4L_sub {\n stroke: ${getHoverColor(props, \"C_ICON_secondary_dark\", \"C_ICON_secondary_light\")};\n }\n\n .IC_4L_dot {\n fill: ${getHoverColor(props, \"C_ICON_tertiary_dark\", \"C_ICON_tertiary_light\")};\n }\n\n .DI_4L_main {\n stroke: ${getHoverColor(props, \"C_ICON_document\", \"C_ICON_document\")};\n }\n `;\n};\n\n/**\n *\n * @param SvgIcon\n * @param iconName has to be the same as the variable name of the Icon for the list of icons in storybook to work properly\n *\n * !!Only use toIcon on svg files with basic icons inside \"src/icons\" folder that use the IC_ styles!!\n * \"import { ReactComponent as PictureSvg }\" makes the svg part of the bundle making it larger\n * => it doesn't make sense to use it on every svg in the system. Check svg.stories.tsx if you need more help.\n *\n */\nconst toIcon = (SvgIcon: React.FunctionComponent & {\n title?: string;\n}>, iconName: string) => {\n IconNames.push(iconName);\n\n const Icon = ({ width = \"100%\", height = \"100%\", className, style, title, passRef }: IProps) => {\n const iconRef = useRef();\n\n const handleRef = (ref: SVGElement) => {\n handleRefHandlers(ref, iconRef, passRef);\n };\n\n return (\n \n );\n };\n\n // suppress weird error that started showing after ts version update\n // @ts-ignore\n const StyledIcon = styled(Icon)`\n display: block; // svg is inline item by default, causing to be higher than content because of line-height\n flex: 0 0 auto;\n\n // if icon used in button, automatically apply hover colors on button hover\n // in the same way, automatically disable hover colors for icon itself, if the button is disabled \n\n a:hover:disabled > & .IC_4L_main, .IC_4L_main,\n button:hover:disabled & .IC_4L_main, .IC_4L_main {\n stroke: ${props => getColor(props, \"primary\")};\n }\n\n a:hover:disabled > & .IC_4L_sub, .IC_4L_sub,\n button:hover:disabled & .IC_4L_sub, .IC_4L_sub {\n stroke: ${props => getColor(props, \"secondary\")};\n }\n\n a:hover:disabled > & .IC_4L_dark_dot, .IC_4L_dark_dot,\n button:hover:disabled & .IC_4L_dark_dot, .IC_4L_dark_dot {\n fill: ${props => getColor(props, \"primary\")};\n }\n\n a:hover:disabled > & .IC_4L_dot, .IC_4L_dot,\n button:hover:disabled & .IC_4L_dot, .IC_4L_dot {\n fill: ${props => getColor(props, \"tertiary\", false)};\n }\n\n a:hover:disabled > & .IC_4L_filled, .IC_4L_filled,\n a:hover:disabled > & .IC_4L_filled_no_stroke, .IC_4L_filled_no_stroke,\n button:hover:disabled & .IC_4L_filled, .IC_4L_filled,\n button:hover:disabled & .IC_4L_filled_no_stroke, .IC_4L_filled_no_stroke {\n fill: ${props => getColor(props, \"primary\")};\n stroke: ${props => getColor(props, \"primary\")};\n }\n\n ${props => !props.preventHover && css`\n &:hover {\n cursor: ${props.cursor ? props.cursor : \"inherit\"};\n }\n\n a:hover:not(:disabled):not(:active) > &,\n button:hover:not(:disabled):not(:active) &, &:hover:not(:active) {\n ${hoverColors(props)};\n }\n\n *:hover:not(:active) > & .DI_4L_main {\n stroke: ${getHoverColor(props, \"C_ICON_document\", \"C_ICON_document\")};\n }\n\n // active color for lightHover icons\n ${props.isLightHover && !props.isLight && css`\n a:active:not(:disabled) &, &:active, *:active > &,\n button:active:not(:disabled) &, &:active, *:active > & {\n .IC_4L_main, .IC_4L_filled, .DI_4L_main {\n stroke: ${props => props.theme.C_ACT_der}\n }\n }\n `}\n `};\n\n .IC_4L_main {\n fill: none;\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n .lighter {\n stroke-width: 2.5;\n }\n\n .IC_4L_sub {\n fill: none;\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n .IC_4L_filled {\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n .IC_4L_filled_no_stroke {\n stroke-width: 0;\n }\n\n .IC_4L_evalalogo {\n fill: ${props => props.theme.C_EVALA_LOGO};\n stroke: none;\n }\n\n .IC_4D_main {\n stroke: ${props => props.theme.C_ICON_primary_light};\n fill: none;\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n // semantic colors\n\n .SI_4L_stroke {\n stroke: ${props => props.theme.C_ICON_STATUS_INDICATOR_stroke};\n fill: none;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n .SI_4L_fill_green {\n fill: ${props => props.theme.C_SEM_el_good};\n }\n\n .SI_4L_fill_green_compl {\n fill: ${props => getSemanticBgColor(props.theme, Status.Success, true)};\n }\n\n .SI_4L_fill_gray, .SI_4L_fill_grey {\n fill: #a6a5a6;\n }\n\n .SI_4L_fill_orange {\n fill: ${props => props.theme.C_SEM_el_warning};\n }\n\n .SI_4L_fill_orange_compl {\n fill: ${props => getSemanticBgColor(props.theme, Status.Warning, true)};\n }\n\n .SI_4L_fill_red {\n fill: ${props => props.theme.C_SEM_el_bad};\n }\n\n .SI_4L_fill_red_compl {\n fill: ${props => getSemanticBgColor(props.theme, Status.Error, true)};\n }\n\n .SI_4L_stroke_green {\n stroke: ${props => props.theme.C_SEM_el_good};\n fill: none;\n }\n\n .SI_4L_stroke_orange {\n stroke: ${props => props.theme.C_SEM_el_warning};\n fill: none;\n }\n\n .SI_4L_stroke_red {\n stroke: ${props => props.theme.C_SEM_el_bad};\n fill: none;\n }\n\n // semantic colors\n\n .GI_stroke {\n stroke: ${props => getSemanticElColor(props.theme, props.status)};\n fill: none;\n stroke-width: 4;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n // document icons color\n\n .DI_4L_main {\n stroke: ${props => props.theme.C_ICON_document};\n fill: none;\n stroke-width: 2.5;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n // object page icon colors\n\n .OI_4L_main {\n stroke: ${props => props.theme.C_ICON_OBJECT_PAGE_main};\n fill: none;\n stroke-width: 2.5;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-miterlimit: 10;\n }\n\n .B_4L_main {\n fill: ${props => props.theme.C_ICON_OBJECT_PAGE_main};\n }\n\n ${props => props.forceHover && hoverColors(props)};\n `;\n\n return StyledIcon;\n};\n\nexport const AccountingAdjustmentIcon = toIcon(AccountingAdjustmentSvg, \"AccountingAdjustment\");\nexport const AddChildIcon = toIcon(AddChildSvg, \"AddChild\");\nexport const AddIcon = toIcon(AddSvg, \"Add\");\nexport const AddMessageIcon = toIcon(AddMessageSvg, \"AddMessage\");\nexport const AddMinorAssetIcon = toIcon(AddMinorAssetSvg, \"AddMinorAsset\");\nexport const AddToMinorAssetIcon = toIcon(AddToMinorAssetSvg, \"AddToMinorAsset\");\nexport const AddParentIcon = toIcon(AddParentSvg, \"AddParent\");\nexport const AddFilterIcon = toIcon(AddFilterSvg, \"AddFilter\");\nexport const AddToFilledIcon = toIcon(AddToFilledSvg, \"AddToFilled\");\nexport const AddToIcon = toIcon(AddToSvg, \"AddTo\");\nexport const AddUserRoleIcon = toIcon(AddUserRoleSvg, \"AddUserRole\");\nexport const AppsIcon = toIcon(AppsSvg, \"Apps\");\nexport const ApiIcon = toIcon(ApiSvg, \"Api\");\nexport const ArchiveIcon = toIcon(ArchiveSvg, \"Archive\");\nexport const ArchiveFilledIcon = toIcon(ArchiveFilledSvg, \"ArchiveFilled\");\nexport const ArrowIcon = toIcon(ArrowSvg, \"Arrow\");\nexport const AssetDisposalIcon = toIcon(AssetDisposalSvg, \"AssetDisposal\");\nexport const AttachmentIcon = toIcon(AttachmentSvg, \"Attachment\");\nexport const AttachmentIndicatorIcon = toIcon(AttachmentIndicatorSvg, \"AttachmentIndicator\");\nexport const AutomaticPairingIcon = toIcon(AutomaticPairingSvg, \"AutomaticPairing\");\nexport const AutomaticPairingSettingsIcon = toIcon(AutomaticPairingSettingsSvg, \"AutomaticPairingSettings\");\nexport const BankApiIcon = toIcon(BankApiSvg, \"BankApi\");\nexport const BinIcon = toIcon(BinSvg, \"Bin\");\nexport const BriefcaseIcon = toIcon(BriefcaseSvg, \"Briefcase\");\nexport const BulkEditIcon = toIcon(BulkEditSvg, \"BulkEdit\");\nexport const CardLimitIcon = toIcon(CardLimitSvg, \"CardLimit\");\nexport const CaretIcon = toIcon(CaretSvg, \"Caret\");\nexport const ChainedIcon = toIcon(ChainedSvg, \"Chained\");\nexport const ChangePriceIcon = toIcon(ChangePriceSvg, \"ChangePrice\");\nexport const CheckIcon = toIcon(CheckSvg, \"Check\");\nexport const CheckDoubleIcon = toIcon(CheckDoubleSvg, \"CheckDouble\");\nexport const RadioButtonGroupIcon = toIcon(RadioButtonGroupSvg, \"RadioButtonGroup\");\nexport const CheckboxGroupIcon = toIcon(CheckboxGroupSvg, \"CheckboxGroup\");\nexport const CheckboxIcon = toIcon(CheckboxSvg, \"Checkbox\");\nexport const CleanFilterIcon = toIcon(CleanFilterSvg, \"CleanFilter\");\nexport const CloseIcon = toIcon(CloseSvg, \"Close\");\nexport const CollapseIcon = toIcon(CollapseSvg, \"Collapse\");\nexport const CollapseAllIcon = toIcon(CollapseAllSvg, \"CollapseAll\");\nexport const CopyIcon = toIcon(CopySvg, \"Copy\");\nexport const CopySimpleIcon = toIcon(CopySimpleSvg, \"CopySimple\");\nexport const CorrectionIcon = toIcon(CorrectionSvg, \"Correction\");\nexport const CopyLinkIcon = toIcon(CopyLinkSvg, \"CopyLink\");\nexport const CostsIcon = toIcon(CostsSvg, \"Costs\");\nexport const CursorIcon = toIcon(CursorSvg, \"Cursor\");\nexport const CustomerPortalIcon = toIcon(CustomerPortalSvg, \"CustomerPortal\");\nexport const DataBoxIcon = toIcon(DataBoxSvg, \"DataBox\");\nexport const DateIcon = toIcon(DateSvg, \"Date\");\nexport const DateTimeIcon = toIcon(DateTimeSvg, \"DateTime\");\nexport const DepreciationIcon = toIcon(DepreciationSvg, \"Depreciation\");\nexport const DiscardIcon = toIcon(DiscardSvg, \"Discard\");\nexport const EvalaPlainIcon = toIcon(EvalaPlainSvg, \"EvalaPlain\");\nexport const IncreaseOfPriceIcon = toIcon(IncreaseOfPriceSvg, \"IncreaseOfPrice\");\nexport const ReductionOfPriceIcon = toIcon(ReductionOfPriceSvg, \"ReductionOfPrice\");\nexport const InterruptIcon = toIcon(InterruptSvg, \"Interrupt\");\nexport const PartialDepreciationIcon = toIcon(PartialDepreciationSvg, \"PartialDepreciation\");\nexport const TechnicalImprovementIcon = toIcon(TechnicalImprovementSvg, \"TechnicalImprovement\");\nexport const DocListIcon = toIcon(DocListSvg, \"DocList\");\nexport const DocMenuIcon = toIcon(DocMenuSvg, \"DocMenu\");\nexport const DocumentDraftIcon = toIcon(DocumentDraftSvg, \"DocumentDraft\");\nexport const DocumentFilledIcon = toIcon(DocumentFilledSvg, \"DocumentFilled\");\nexport const DocumentSavedIcon = toIcon(DocumentSavedSvg, \"DocumentSaved\");\nexport const DocumentIcon = toIcon(DocumentSvg, \"Document\");\nexport const DoubleCaretIcon = toIcon(DoubleCaretSvg, \"DoubleCaret\");\nexport const DownIcon = toIcon(DownSvg, \"Down\");\nexport const DownloadIcon = toIcon(DownloadSvg, \"Download\");\nexport const EditIcon = toIcon(EditSvg, \"Edit\");\nexport const EditLockIcon = toIcon(EditLockSvg, \"EditLock\");\nexport const EditSimpleIcon = toIcon(EditSimpleSvg, \"EditSimple\");\nexport const EmailIcon = toIcon(EmailSvg, \"Email\");\nexport const EmojiIcon = toIcon(EmojiSvg, \"Emoji\");\nexport const EnterIcon = toIcon(EnterSvg, \"Enter\");\nexport const ExitIcon = toIcon(ExitSimpleSvg, \"Exit\");\nexport const ExpandAllIcon = toIcon(ExpandAllSvg, \"ExpandAll\");\nexport const ExpandIcon = toIcon(ExpandSvg, \"Expand\");\nexport const ExportExcelIcon = toIcon(ExportExcelSvg, \"ExportExcel\");\nexport const ExportIcon = toIcon(ExportSvg, \"Export\");\nexport const ExportPdfIcon = toIcon(ExportPdfSvg, \"ExportPdf\");\nexport const ExportReportFullIcon = toIcon(ExportReportFullSvg, \"ExportReportFull\");\nexport const ExportReportShortIcon = toIcon(ExportReportShortSvg, \"ExportReportShort\");\nexport const ExportSvgIcon = toIcon(ExportCsvSvg, \"ExportSvg\");\nexport const FileSimpleIcon = toIcon(FileSimpleSvg, \"FileSimple\");\nexport const FillFormIcon = toIcon(FillFormSvg, \"FillForm\");\nexport const FilterIcon = toIcon(FilterSvg, \"Filter\");\nexport const FitToPageIcon = toIcon(FitToPageSvg, \"FitToPage\");\nexport const FitToWidthIcon = toIcon(FitToWidthSvg, \"FitToWidth\");\nexport const FloppyDiskIcon = toIcon(FloppyDiskSvg, \"FloppyDisk\");\nexport const FolderIcon = toIcon(FolderSvg, \"Folder\");\nexport const FolderAddIcon = toIcon(FolderAddSvg, \"FolderAdd\");\nexport const FolderOtherIcon = toIcon(FolderOtherSvg, \"FolderOther\");\nexport const FormIcon = toIcon(FormSvg, \"Form\");\nexport const FullscreenOpenIcon = toIcon(FullscreenOpenSvg, \"FullscreenOpen\");\nexport const FullscreenCloseIcon = toIcon(FullscreenCloseSvg, \"FullscreenClose\");\nexport const GrowthNegativeIcon = toIcon(GrowthNegativeSvg, \"GrowthNegative\");\nexport const GrowthPositiveIcon = toIcon(GrowthPositiveSvg, \"GrowthPositive\");\nexport const GrowthZeroIcon = toIcon(GrowthZeroSvg, \"GrowthZero\");\nexport const HandIcon = toIcon(HandSvg, \"Hand\");\nexport const HomeIcon = toIcon(HomeSvg, \"Home\");\nexport const HotSpotsIcon = toIcon(HotSpotsSvg, \"HotSpots\");\nexport const IncomingIcon = toIcon(IncomingSvg, \"Incoming\");\nexport const InfoIcon = toIcon(InfoSvg, \"Info\");\nexport const InitialBalancesIcon = toIcon(InitialBalancesSvg, \"InitialBalances\");\nexport const IntegrationIcon = toIcon(IntegrationSvg, \"Integration\");\nexport const InvoicesIssuedBigIcon = toIcon(InvoicesIssuedBigSvg, \"InvoicesIssuedBig\");\nexport const InvoicesReceivedBigIcon = toIcon(InvoicesReceivedBigSvg, \"InvoicesReceivedBig\");\n\nexport const EvalaAppIcon = toIcon(EvalaSvg, \"EvalaApp\");\nexport const IDokladAppIcon = toIcon(IDokladSvg, \"IDokladApp\");\nexport const IDokladIcon = toIcon(IDokladLogoSvg, \"IDoklad\");\nexport const FakturoidIcon = toIcon(FakturoidSvg, \"Fakturoid\");\n\nexport const LabelIcon = toIcon(LabelSvg, \"Label\");\nexport const LastUpdatedIcon = toIcon(LastUpdatedSvg, \"LastUpdated\");\nexport const LastUpdatedSimpleIcon = toIcon(LastUpdatedSimpleSvg, \"LastUpdatedSimple\");\nexport const LikeIcon = toIcon(LikeSvg, \"Like\");\nexport const LikeFilledIcon = toIcon(LikeFilledSvg, \"LikeFilled\");\nexport const DislikeIcon = toIcon(DislikeSvg, \"Dislike\");\nexport const DislikeFilledIcon = toIcon(DislikeFilledSvg, \"DislikeFilled\");\nexport const PaidDocumentIcon = toIcon(PaidDocumentSvg, \"PaidDocument\");\nexport const UnpaidDocumentIcon = toIcon(UnpaidDocumentSvg, \"UnpaidDocument\");\nexport const ListIcon = toIcon(ListSvg, \"List\");\nexport const LockFilledIcon = toIcon(LockFilledSvg, \"LockFilled\");\nexport const LockIcon = toIcon(LockSvg, \"Lock\");\nexport const LogoutIcon = toIcon(LogoutSvg, \"Logout\");\nexport const MenuIcon = toIcon(MenuSvg, \"Menu\");\nexport const MoreIcon = toIcon(MoreSvg, \"More\");\nexport const MoreOptionsIcon = toIcon(MoreOptionsSvg, \"MoreOptions\");\nexport const NoteFilledIcon = toIcon(NoteFilledSvg, \"NoteFilled\");\nexport const NoteIcon = toIcon(NoteSvg, \"Note\");\nexport const NotificationIcon = toIcon(NotificationSvg, \"Notification\");\nexport const OldImportClockIcon = toIcon(OldImportClockSvg, \"OldImportClock\");\nexport const OutgoingIcon = toIcon(OutgoingSvg, \"Outgoing\");\nexport const PairIcon = toIcon(PairSvg, \"Pair\");\nexport const PairingAccruedItemsIcon = toIcon(PairingAccruedItemsSvg, \"PairingAccruedItems\");\nexport const PairingDepositIcon = toIcon(PairingDepositSvg, \"PairingDeposit\");\nexport const PairingExpensesIcon = toIcon(PairingExpensesSvg, \"PairingExpenses\");\nexport const PairingGeneralIcon = toIcon(PairingGeneralSvg, \"PairingGeneral\");\nexport const ParametersIcon = toIcon(ParametersSvg, \"Parameters\");\nexport const PaymentRequestIcon = toIcon(PaymentRequestSvg, \"PaymentRequest\");\nexport const PlayIcon = toIcon(PlaySvg, \"Play\");\nexport const PlusIcon = toIcon(PlusSvg, \"Plus\");\nexport const PrintIcon = toIcon(PrintSvg, \"Print\");\nexport const QueryIcon = toIcon(QuerySvg, \"Query\");\nexport const RefreshIcon = toIcon(RefreshSvg, \"Refresh\");\nexport const RefreshSimpleIcon = toIcon(RefreshSimpleSvg, \"RefreshSimple\");\nexport const ReorderIcon = toIcon(ReorderRowsSvg, \"Reorder\");\nexport const ReorderSmallIcon = toIcon(ReorderRowsSmallSvg, \"ReorderSmall\");\nexport const ResizeIcon = toIcon(ResizeSvg, \"Resize\");\nexport const RubberIcon = toIcon(RubberSvg, \"Rubber\");\nexport const RossumIcon = toIcon(RossumSvg, \"Rossum\");\nexport const SafeFilterIcon = toIcon(SafeSvg, \"SafeFilter\");\nexport const SearchIcon = toIcon(SearchSvg, \"Search\");\nexport const SearchSmallIcon = toIcon(SearchSmallSvg, \"SearchSmall\");\nexport const SendDunningLetterIcon = toIcon(SendDunningLetterSvg, \"SendDunningLetter\");\nexport const SendIcon = toIcon(SendSvg, \"Send\");\nexport const SendInvoiceIcon = toIcon(SendInvoiceSvg, \"SendInvoice\");\nexport const SendMessageIcon = toIcon(SendMessageSvg, \"SendMessage\");\nexport const SettingsIcon = toIcon(SettingsSvg, \"Settings\");\nexport const SettingsSimpleIcon = toIcon(SettingsSimpleSvg, \"SettingsSimple\");\nexport const SortDownIcon = toIcon(SortDownSvg, \"SortDown\");\nexport const SortIcon = toIcon(SortSvg, \"Sort\");\nexport const SortingIcon = toIcon(SortingSvg, \"Sorting\");\nexport const GraphIcon = toIcon(GraphSvg, \"Graph\");\nexport const DemoIcon = toIcon(DemoSvg, \"Demo\");\nexport const PinIcon = toIcon(PinSvg, \"Pin\");\nexport const CalculatorIcon = toIcon(CalculatorSvg, \"Calculator\");\nexport const SupportIcon = toIcon(SupportSvg, \"Support\");\nexport const PostedStatusNotPostedIcon = toIcon(PostedStatusNotPostedSvg, \"PostedStatusNotPosted\");\nexport const PostedStatusPostedIcon = toIcon(PostedStatusPostedSvg, \"PostedStatusPosted\");\nexport const PostedStatusNotApplicableIcon = toIcon(PostedStatusNotApplicableSvg, \"PostedStatusNotApplicable\");\nexport const ClearedStatusClearedIcon = toIcon(ClearedStatusClearedSvg, \"ClearedStatusCleared\");\nexport const ClearedStatusPartiallyClearedIcon = toIcon(ClearedStatusPartiallyClearedSvg, \"ClearedStatusPartiallyCleared\");\nexport const ClearedStatusNotClearedIcon = toIcon(ClearedStatusNotClearedSvg, \"ClearedStatusNotCleared\");\nexport const VatStatementStatusNotApplicableIcon = toIcon(VatStatementStatusNotApplicableSvg, \"VatStatementStatusNotApplicable\");\nexport const VatStatementStatusNotPostedIcon = toIcon(VatStatementStatusNotPostedSvg, \"VatStatementStatusNotPosted\");\nexport const VatStatementStatusPartialIcon = toIcon(VatStatementStatusPartialSvg, \"VatStatementStatusPartial\");\nexport const VatStatementStatusPostedIcon = toIcon(VatStatementStatusPostedSvg, \"VatStatementStatusPosted\");\nexport const StatusDoubleFormIcon = toIcon(StatusDoubleFormSvg, \"StatusDoubleForm\");\nexport const StatusLockedIcon = toIcon(StatusLockedSvg, \"StatusLocked\");\nexport const StatusPartlyLockedIcon = toIcon(StatusPartlyLockedSvg, \"StatusPartlyLocked\");\nexport const StatusUnlockedIcon = toIcon(StatusUnlockedSvg, \"StatusUnlocked\");\nexport const StatusNoIcon = toIcon(StatusNoSvg, \"StatusNo\");\nexport const StatusYesIcon = toIcon(StatusYesSvg, \"StatusYes\");\nexport const StatusWarnIcon = toIcon(StatusWarnSvg, \"StatusWarn\");\nexport const TicketStatusInProgressIcon = toIcon(StatusTicketInProgressSvg, \"TicketStatusInProgress\");\nexport const StatusIsdocIcon = toIcon(StatusIsdocSvg, \"StatusIsdoc\");\nexport const StatusRossumIcon = toIcon(StatusRossumSvg, \"StatusRossum\");\nexport const StatusNoDataReadIcon = toIcon(StatusNoDataReadSvg, \"StatusNoDataRead\");\nexport const TicketStatusDoneIcon = toIcon(StatusTicketDoneSvg, \"TicketStatusDone\");\nexport const StorageIcon = toIcon(StorageSvg, \"Storage\");\nexport const SubscriptionIcon = toIcon(SubscriptionSvg, \"Subscription\");\nexport const SwitchIcon = toIcon(SwitchSvg, \"Switch\");\nexport const SynchronizationIcon = toIcon(SynchronizationSvg, \"Synchronization\");\nexport const TableCaretIcon = toIcon(TableCaretSvg, \"TableCaret\");\nexport const TaxInvoiceIcon = toIcon(TaxInvoiceSvg, \"TaxInvoice\");\nexport const TaxPayerDeclarationIcon = toIcon(TaxPayerDeclarationSvg, \"TaxPayerDeclaration\");\nexport const TemplateIcon = toIcon(TemplateSvg, \"Template\");\nexport const TimeIcon = toIcon(TimeSvg, \"Time\");\nexport const TimeDependentIcon = toIcon(TimeDependentSvg, \"TimeDependent\");\nexport const TimeDependentFilledIcon = toIcon(TimeDependentFilledSvg, \"TimeDependentFilled\");\nexport const UnavailableIcon = toIcon(UnavailableSvg, \"Unavailable\");\nexport const UnchainedIcon = toIcon(UnchainedSvg, \"Unchained\");\nexport const UnrelatedItemsIcon = toIcon(UnrelatedItemsSvg, \"UnrelatedItems\");\nexport const UpIcon = toIcon(UpSvg, \"Up\");\nexport const UploadIcon = toIcon(UploadSvg, \"Upload\");\nexport const UploadSimpleIcon = toIcon(UploadSimpleSvg, \"UploadSimple\");\nexport const UserIcon = toIcon(UserSvg, \"User\");\nexport const UseIsDocIcon = toIcon(UseIsDocSvg, \"UseIsDoc\");\nexport const UseRossumIcon = toIcon(UseRossumSvg, \"UseRossum\");\nexport const ValueHelpFilledIcon = toIcon(ValueHelpFilledSvg, \"ValueHelpFilled\");\nexport const ValueHelpIcon = toIcon(ValueHelpSvg, \"ValueHelp\");\nexport const WebInvoiceIcon = toIcon(WebInvoiceSvg, \"WebInvoice\");\nexport const ZoomInIcon = toIcon(ZoomInSvg, \"ZoomIn\");\nexport const ZoomOutIcon = toIcon(ZoomOutSvg, \"ZoomOut\");\nexport const ZoomSmallIcon = toIcon(ZoomSmallSvg, \"ZoomSmall\");\n\nexport const FacebookIcon = toIcon(FacebookSvg, \"Facebook\");\nexport const FieldValidationNegativeIcon = toIcon(FieldValidationNegativeSvg, \"FieldValidationNegative\");\nexport const FieldValidationPositiveIcon = toIcon(FieldValidationPositiveSvg, \"FieldValidationPositive\");\nexport const FieldValidationWarningIcon = toIcon(FieldValidationWarningSvg, \"FieldValidationWarning\");\nexport const GoogleIcon = toIcon(GoogleSvg, \"Google\");\n\nexport const LockOpenedIcon = toIcon(LockOpenedSvg, \"LockOpened\");\nexport const LockClosedIcon = toIcon(LockClosedSvg, \"LockClosed\");\nexport const VisibleIcon = toIcon(VisibleSvg, \"Visible\");\nexport const VisibleFilledIcon = toIcon(VisibleFilledSvg, \"VisibleFilled\");\nexport const AgendaIcon = toIcon(AgendaSvg, \"Agenda\");\n\nexport const ContainsTwoFormsIcon = toIcon(ContainsTwoFormsSvg, \"ContainsTwoForms\");\nexport const ImageIcon = toIcon(ImageSvg, \"Image\");\n\nexport const ErrorIcon = toIcon(ErrorSvg, \"Error\");\nexport const SuccessIcon = toIcon(SuccessSvg, \"Success\");\nexport const WarningIcon = toIcon(WarningSvg, \"Warning\");\n\nexport const DocTemplateIcon = toIcon(DocTemplateSvg, \"DocTemplate\");\nexport const ExcelIcon = toIcon(ExcelSvg, \"Excel\");\nexport const IsdocIcon = toIcon(IsdocSvg, \"Isdoc\");\nexport const OtherDocIcon = toIcon(OtherSvg, \"OtherDoc\");\nexport const PdfIcon = toIcon(PdfSvg, \"Pdf\");\nexport const PictureIcon = toIcon(PictureSvg, \"Picture\");\nexport const TxtIcon = toIcon(TxtSvg, \"Txt\");\nexport const WordIcon = toIcon(WordSvg, \"Word\");\nexport const CashBoxIcon = toIcon(CashBoxSvg, \"CashBox\");\nexport const CashBoxListIcon = toIcon(CashBoxListSvg, \"CashBoxList\");\n\nexport const AuditTrailIcon = toIcon(AuditTrailSvg, \"AuditTrail\");\n\nexport const FolderFPIcon = toIcon(FolderFPSvg, \"FolderFP\");\nexport const FolderFVIcon = toIcon(FolderFVSvg, \"FolderFV\");\nexport const FolderDotsIcon = toIcon(FolderDotsSvg, \"FolderDots\");\nexport const FolderPDIcon = toIcon(FolderPDSvg, \"FolderPD\");\nexport const FolderPPDIcon = toIcon(FolderPPDSvg, \"FolderPPD\");\nexport const FolderVBUIcon = toIcon(FolderVBUSvg, \"FolderVBU\");\nexport const FolderVPDIcon = toIcon(FolderVPDSvg, \"FolderVPD\");\nexport const FolderZDIcon = toIcon(FolderZDSvg, \"FolderZD\");\nexport const FolderZFPIcon = toIcon(FolderZFPSvg, \"FolderZFP\");\nexport const FolderZFVIcon = toIcon(FolderZFVSvg, \"FolderZFV\");\nexport const FolderPDDOPPIcon = toIcon(FolderPDDOPPSvg, \"FolderPDDOPP\");\nexport const FolderVDDOPPIcon = toIcon(FolderVDDOPPSvg, \"FolderVDDOPP\");\nexport const InboxFolderIcon = toIcon(InboxFolderSvg, \"InboxFolder\");\n\nexport const InvoicesReceivedPlainIcon = toIcon(InvoicesReceivedPlainSvg, \"InvoicesReceivedPlain\");\nexport const InvoicesIssuedPlainIcon = toIcon(InvoicesIssuedPlainSvg, \"InvoicesIssuedPlain\");\nexport const OtherLiabilitiesPlainIcon = toIcon(OtherLiabilitiesPlainSvg, \"OtherLiabilitiesPlain\");\nexport const OtherReceivablesPlainIcon = toIcon(OtherReceivablesPlainSvg, \"OtherReceivablesPlain\");\nexport const CorrectiveInvoicesReceivedPlainIcon = toIcon(CorrectiveInvoicesReceivedPlainSvg, \"CorrectiveInvoicesReceivedPlain\");\nexport const CorrectiveInvoicesIssuedPlainIcon = toIcon(CorrectiveInvoicesIssuedPlainSvg, \"CorrectiveInvoicesIssuedPlain\");\nexport const ProformaInvoicesIssuedPlainIcon = toIcon(ProformaInvoicesIssuedPlainSvg, \"ProformaInvoicesIssuedPlain\");\nexport const ProformaInvoicesIssuedTaxPlainIcon = toIcon(ProformaInvoicesIssuedTaxPlainSvg, \"ProformaInvoicesIssuedTaxPlain\");\nexport const ProformaInvoicesReceivedPlainIcon = toIcon(ProformaInvoicesReceivedPlainSvg, \"ProformaInvoicesReceivedPlain\");\nexport const ProformaInvoicesReceivedTaxPlainIcon = toIcon(ProformaInvoicesReceivedTaxPlainSvg, \"ProformaInvoicesReceivedTaxPlain\");\nexport const TaxDocumentIcon = toIcon(TaxDocumentSvg, \"TaxDocument\");\nexport const InternalDocumentsPlainIcon = toIcon(InternalDocumentPlainSvg, \"InternalDocumentsPlain\");\nexport const InternalDocumentCancelIcon = toIcon(InternalDocumentCancelSvg, \"InternalDocumentCancel\");\n\nexport const VatStatementIcon = toIcon(VatStatementSvg, \"VatStatement\");\nexport const VatControlStatementIcon = toIcon(VatControlStatementSvg, \"VatControlStatement\");\nexport const PohodaIcon = toIcon(PohodaSvg, \"Pohoda\");\nexport const MoneyS3Icon = toIcon(MoneyS3Svg, \"MoneyS3\");\nexport const IsdocImportIcon = toIcon(IsdocImportSvg, \"IsdocImport\");\nexport const ExportDocumentsIcon = toIcon(ExportDocumentsSvg, \"ExportDocuments\");\nexport const ExportBankTransactionsIcon = toIcon(ExportBankTransactionsSvg, \"ExportBankTransactions\");\nexport const ExportCashReceiptsIcon = toIcon(ExportCashReceiptsSvg, \"ExportCashReceipts\");\nexport const VatViesStatementIcon = toIcon(VatViesStatementSvg, \"VatViesStatement\");\nexport const SimpleDocumentIcon = toIcon(DocSimpleSvg, \"SimpleDocument\");\nexport const ConfirmIcon = toIcon(ConfirmSvg, \"Confirm\");\n\n// Form customization icons\nexport const LockedGroupIcon = toIcon(LockedGroupSvg, \"LockedGroup\");\nexport const DependentFieldsIcon = toIcon(DependentFieldsSvg, \"DependentFields\");\n\nexport const PcIcon = toIcon(PcSvg, \"Pc\");\nexport const TabletIcon = toIcon(TabletSvg, \"Tablet\");\nexport const MobileIcon = toIcon(MobileSvg, \"Mobile\");\n\nexport const WorkDateFilledIcon = toIcon(WorkDateFilledSvg, \"WorkDateFilled\");\n\nexport const WorkDateIcon = toIcon(WorkDateSvg, \"WorkDate\");\n\nexport const AccountingJournalIcon = toIcon(AccountingJournalSvg, \"AccountingJournal\");\nexport const CustomerSupportIcon = toIcon(CustomerSupportSvg, \"CustomerSupport\");\nexport const BalanceSheetIcon = toIcon(BalanceSheetSvg, \"BalanceSheet\");\nexport const CustomerPortalInvoicingIcon = toIcon(CustomerPortalInvoicingSvg, \"CustomerPortalInvoicing\");\nexport const ForPaymentIcon = toIcon(ForPaymentSvg, \"ForPayment\");\nexport const CustomerPortalPaymentIcon = toIcon(CustomerPortalPaymentSvg, \"CustomerPortalPayment\");\nexport const DocumentJournalIcon = toIcon(DocumentJournalSvg, \"DocumentJournal\");\nexport const ManualIcon = toIcon(ManualSvg, \"Manual\");\nexport const PaymentJournalIcon = toIcon(PaymentJournalSvg, \"PaymentJournal\");\nexport const DemoTenantIcon = toIcon(DemoTenantSvg, \"DemoTenant\");\nexport const GeneralLedgerIcon = toIcon(GeneralLedgerSvg, \"GeneralLedger\");\nexport const InboxIcon = toIcon(InboxSvg, \"Inbox\");\nexport const IncomeStatementIcon = toIcon(IncomeStatementSvg, \"IncomeStatement\");\nexport const SendToAccountantIcon = toIcon(SendToAccountantSvg, \"SendToAccountant\");\nexport const TicketsIcon = toIcon(TicketsSvg, \"Tickets\");\nexport const OneDocPairIcon = toIcon(OneDocPairSvg, \"OneDocPair\");\nexport const OutgoingPaymentIcon = toIcon(OutgoingPaymentSvg, \"OutgoingPayment\");\nexport const IncomingPaymentIcon = toIcon(IncomingPaymentSvg, \"IncomingPayment\");\n\nexport const ConnectedIcon = toIcon(ConnectedSvg, \"Connected\");\nexport const DisconnectedIcon = toIcon(DisconnectedSvg, \"Disconnected\");\nexport const ConnectionErrorIcon = toIcon(ConnectionErrorSvg, \"ConnectionError\");\nexport const ConnectionWarnIcon = toIcon(ConnectionWarnSvg, \"ConnectionWarn\");\n\nexport const CreateStatementIcon = toIcon(CreateStatementSvg, \"CreateStatement\");\n\nexport const MassAccountingIcon = toIcon(MassAccountingSvg, \"MassAccounting\");\n\nexport const CbaEntryLedgerIcon = toIcon(CbaEntryLedgerSvg, \"CbaEntryLedger\");\nexport const HelpIcon = toIcon(HelpSvg, \"Help\");\n\nexport const WelcomeCustomerIcon = toIcon(WelcomeCustomerSvg, \"WelcomeCustomer\");\nexport const WelcomeDemoIcon = toIcon(WelcomeDemoSvg, \"WelcomeDemo\");\n\nexport const getIcon = (name: string): React.ComponentType => {\n try {\n if (name) {\n return eval(`${name}Icon`);\n }\n } catch (e) {\n (logger as any).error(`Icons.tsx: Wrong icon name used! (${name})`);\n }\n\n return null;\n};\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nimport { IProps as IIconProps } from \"./Icon\";\n\nconst ColoredIconWrapper = React.memo((props: React.PropsWithChildren) => {\n return React.cloneElement(props.children as React.ReactElement, {\n preventHover: true, ...props\n });\n});\n\nexport const DarkIcon = styled(ColoredIconWrapper)`\n .IC_4L_main, .IC_4L_sub, .IC_4L_dot {\n stroke: ${props => props.theme.C_ICON_done};\n }\n\n .IC_4L_filled {\n stroke: ${props => props.theme.C_ICON_done};\n fill: ${props => props.theme.C_ICON_done};\n }\n`;\n\n/**\n * Monochromatic icon styles, allows to use color: #xyz to style any icon\n */\nexport const ColoredIcon = styled(ColoredIconWrapper)`\n .IC_4L_main, .DI_4L_main, .IC_4L_sub {\n stroke: currentColor !important;\n }\n\n .IC_4L_filled, .IC_4L_filled_no_stroke {\n stroke: currentColor !important;\n fill: currentColor;\n }\n\n .C_TEXT_primary {\n stroke: currentColor !important;\n }\n\n .C_TEXT_primary_outline {\n fill: none;\n stroke: currentColor !important;\n }\n`;","import styled from \"styled-components/macro\";\n\nexport const StyledImageUploader = styled.div<{\n isDisabled: boolean;\n}>`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const StyledImage = styled.img`\n display: block;\n max-width: 178px;\n max-height: 200px;\n width: 100%;\n min-width: 20px;\n height: auto;\n min-height: 20px;\n object-fit: contain;\n border: 1px solid black;\n`;","import React from \"react\";\nimport { StyledImage } from \"./ImageUploader.styles\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { TImage } from \"./ImageUploader\";\n\nexport interface IProps {\n image: TImage;\n onImageError?: () => void;\n alt?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport default class ImageUploaderImage extends React.PureComponent {\n static defaultProps: Partial = {\n alt: \"\"\n };\n\n _fileImgUrl?: string;\n getUrl = memoizeOne((image: TImage) => {\n if (image instanceof File) {\n if (this._fileImgUrl) {\n URL.revokeObjectURL(this._fileImgUrl);\n }\n\n this._fileImgUrl = URL.createObjectURL(image);\n\n return this._fileImgUrl;\n } else {\n return image;\n }\n });\n\n componentWillUnmount() {\n if (this._fileImgUrl) {\n URL.revokeObjectURL(this._fileImgUrl);\n }\n }\n\n render() {\n return (\n \n );\n }\n}","import styled, { css } from \"styled-components/macro\";\nimport { T_PLAIN_small, T_TITLE_4, T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { RequiredMark } from \"../inputs/field/Label.styles\";\nimport { ItemSelector, SelectedItemLabel } from \"../configurationList/ConfigurationList.styles\";\nimport { ellipsis } from \"polished\";\nimport CollapsibleSection from \"../collapsibleSection/CollapsibleSection\";\n\nconst RowGap = 12;\n\nexport const StyledImportSettings = styled.div`\n display: flex;\n justify-content: flex-start;\n width: 100%;\n min-height: 300px;\n`;\n\nexport const ColumnHeader = styled.div`\n width: 300px;\n ${T_TITLE_4};\n font-weight: bold;\n padding: 0 0 8px 0;\n`;\n\nexport const ColumnHeaderRow = styled.div`\n display: flex;\n`;\n\nexport const Grid = styled.div`\n width: fit-content;\n display: grid;\n grid-template-columns: auto auto auto;\n grid-auto-rows: min-content;\n\n & > ${ColumnHeader} {\n height: 34px;\n margin-bottom: ${`${RowGap}px`};\n }\n\n padding-right: 10px;\n`;\n\n\nexport const ValuePreview = styled.div`\n ${T_PLAIN_small};\n margin-bottom: 12px;\n`;\n\nexport const Column = styled.div<{ withBorder?: boolean }>`\n display: flex;\n flex-direction: column;\n gap: ${RowGap}px;\n border-left: 2px solid ${props => props.withBorder ? props.theme.C_FIELD_line_der : \"transparent\"};\n\n padding: 0 25px;\n\n &:first-child {\n padding-left: 0;\n }\n`;\n\ninterface IDropItemColumn {\n isInGroup: boolean;\n addTopMargin?: boolean;\n}\n\nexport const DropItemColumnWrapper = styled.div`\n padding-bottom: ${RowGap}px;\n\n ${props => props.isInGroup && css`\n background: ${props => props.theme.C_BG_menu};\n\n &:nth-child(3n + 3) {\n padding-right: 15px;\n }\n`}\n\n ${props => props.addTopMargin && css`\n margin-top: ${RowGap}px;\n`}\n`;\n\nconst DropItemColumnBase = styled.div`\n display: flex;\n height: 34px;\n`;\n\nexport const DropItemFirstColumn = styled(DropItemColumnBase)`\n padding-right: 20px;\n position: relative;\n align-items: center;\n min-width: max-content;\n ${T_TITLE_4_NORMAL};\n\n ${props => props.isInGroup && css`\n padding-left: 20px;\n `};\n`;\n\nexport const DropItemSecondColumn = styled(DropItemColumnBase)`\n align-items: center;\n margin-right: 5px;\n`;\n\nexport const DropItemThirdColumn = styled(DropItemColumnBase)<{ hasValue: boolean } & IDropItemColumn>`\n width: 300px;\n white-space: nowrap;\n position: relative;\n border-radius: 17px;\n border: 1px dashed ${props => !props.hasValue ? props.theme.C_ACT_thick_line : \"transparent\"};\n ${T_TITLE_4_NORMAL};\n padding: 8px 30px 8px 15px;\n background-color: ${props => props.hasValue ? props.theme.C_FIELD_line_der : props.theme.C_BG_floorplan};\n`;\n\nexport const RequiredMarkStyled = styled(RequiredMark)`\n top: -9px;\n margin-right: 3px;\n position: relative;\n left: 6px;\n`;\n\nexport const ItemSelectorStyled = styled(ItemSelector)`\n height: 30px;\n left: 0;\n cursor: pointer;\n top: -6px;\n`;\n\nexport const SelectedItemLabelStyled = styled(SelectedItemLabel)`\n ${ellipsis()};\n padding: 5px;\n`;\n\nexport const ValueWrapper = styled.div`\n ${ellipsis()};\n flex-grow: 1;\n`;\n\nexport const StyledDragItem = styled.div<{ selected: boolean }>`\n width: 300px;\n height: 34px;\n cursor: pointer;\n ${T_TITLE_4_NORMAL};\n border-radius: 17px;\n background: ${props => props.theme.C_FIELD_line_der};\n padding: 8px 15px;\n border: 1px solid ${props => props.selected ? props.theme.C_BTN_border_hover : \"transparent\"};\n ${ellipsis()};\n display: block;\n margin-bottom: 12px;\n`;\n\nexport const ImportSettingsGroupColumnBase = styled.div`\n background: ${props => props.theme.C_BG_menu};\n\n`;\n\nexport const ImportSettingsGroupFirstColumn = styled(ImportSettingsGroupColumnBase)`\n display: flex;\n padding: 10px;\n\n &:not(:first-child) {\n margin-top: 15px;\n }\n`;\n\nexport const ImportSettingsGroupSecondColumn = styled(ImportSettingsGroupColumnBase)`\n &:not(:nth-child(2)) {\n margin-top: 15px;\n }\n`;\n\nexport const ImportSettingsGroupThirdColumn = styled(ImportSettingsGroupColumnBase)`\n display: flex;\n align-items: flex-start;\n justify-content: flex-end;\n min-width: 300px;\n\n &:not(:nth-child(3)) {\n margin-top: 15px;\n }\n`;\n\nexport const ImportSettingsSubItemColumn = styled.div`\n ${props => props.isInGroup && css`\n background: ${props => props.theme.C_BG_menu};\n `}\n`;\n\nexport const StyledImportSettingsSubItem = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-bottom: 8px;\n ${T_TITLE_4_NORMAL};\n\n ${props => props.isInGroup && css`\n background: ${props => props.theme.C_BG_menu};\n `}\n \n & > * {\n margin-right: 15px;\n }\n`;\n\nexport const SubItemSelectWrapper = styled.div`\n flex: 0 0 auto;\n`;\n\nexport const SubItemDescription = styled.div`\n ${ellipsis()};\n`;\n\nexport const CollapsibleSectionPohodaImport = styled(CollapsibleSection)`\n margin-top: 24px;\n`;","import React from \"react\";\nimport { DragTransferId } from \"./ImportSettings\";\nimport { StyledDragItem } from \"./ImportSettings.styles\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n id: string;\n value: string;\n onClick: (index: string) => void;\n isSelected: boolean;\n}\n\nclass ImportSettingsDragItem extends React.PureComponent {\n handleDragStart = (e: React.DragEvent): void => {\n e.dataTransfer.setData(DragTransferId, this.props.id);\n e.stopPropagation();\n };\n\n handleDragEnd = (e: React.DragEvent): void => {\n e.stopPropagation();\n };\n\n handleDrag = (e: React.DragEvent): void => {\n e.stopPropagation();\n };\n\n handleMouseDown = (): void => {\n this.props.onClick(this.props.id);\n };\n\n render() {\n return (\n \n {this.props.value}\n \n );\n }\n}\n\nexport default ImportSettingsDragItem;","import React from \"react\";\nimport { isDefined } from \"@utils/general\";\nimport { ScrollBar } from \"../scrollBar\";\nimport {\n Column,\n ColumnHeader,\n ColumnHeaderRow,\n Grid,\n StyledImportSettings,\n ValuePreview\n} from \"./ImportSettings.styles\";\nimport { withTheme } from \"styled-components/macro\";\nimport { PropsWithTheme } from \"../../theme\";\nimport ImportSettingsDragItem from \"./ImportSettingsDragItem\";\nimport { IImportSettingsItemProps } from \"./ImportSettingsDropItem\";\nimport TestIds from \"../../testIds\";\n\nexport const DragTransferId = \"itemId\";\n\nexport type TImportSettingsMappedColumnsArgs = Pick;\n\ninterface IProps {\n mappedColumns: (args: TImportSettingsMappedColumnsArgs) => React.ReactElement | React.ReactElement[];\n availableColumns: { id: string; value: string; }[];\n\n onChange: (mappedColumnId: string, availableColumnId: string) => void;\n onRemove: (mappedColumnId: string) => void;\n\n previewValues?: string[];\n onPreviewValuesNeeded?: (availableColumnId: string) => void;\n\n // if any group item is used, this will add left-padding to the first column\n isGroupUsed?: boolean;\n\n firstColumnHeader: string;\n secondColumnHeader: string;\n thirdColumnHeader: string;\n fourthColumnHeader?: string;\n style?: React.CSSProperties;\n}\n\ninterface IState {\n selectedPreview: string;\n}\n\ninterface IExtendedProps extends IProps, PropsWithTheme {\n\n}\n\nclass ImportSettings extends React.PureComponent {\n static defaultProps: Partial = {\n previewValues: []\n };\n\n state: IState = {\n selectedPreview: null\n };\n\n firstColumnHeaderRef = React.createRef();\n gridRef = React.createRef();\n\n componentDidMount() {\n // update the width of the first column header\n // to width of the widest grid first column item\n let max = 0;\n\n for (let i = 0; i < Array.from(this.gridRef.current.children).length; i++) {\n if (i % 3 === 0) {\n const child = this.gridRef.current.childNodes.item(i) as HTMLDivElement;\n\n max = Math.max(max, child.clientWidth);\n }\n }\n this.firstColumnHeaderRef.current.style.width = `${max}px`;\n this.firstColumnHeaderRef.current.style.marginRight = `15px`;\n\n if (this.props.isGroupUsed) {\n this.firstColumnHeaderRef.current.style.paddingLeft = \"20px\";\n }\n }\n\n handleRemove = (id: string) => {\n this.props.onRemove(id);\n };\n\n\n handleDrop = (event: React.DragEvent, id: string, value: string) => {\n this.props.onChange(id, value);\n };\n\n handleDragEnter = (event: React.DragEvent, id: string) => {\n (event.target as HTMLDivElement).setAttribute(\"style\",\n `background-color: ${this.props.theme.C_FIELD_line_der}; border: 1px dashed ${this.props.theme.C_BTN_border_hover};`);\n event.stopPropagation();\n };\n\n handleDragLeave = (event: React.DragEvent, id: string) => {\n (event.target as HTMLDivElement).setAttribute(\"style\", \"\");\n event.stopPropagation();\n };\n\n handleDragItemClick = (id: string): void => {\n this.props.onPreviewValuesNeeded?.(id);\n this.setState({ selectedPreview: id });\n\n };\n\n getMappedColumns = () => {\n return this.props.mappedColumns({\n onDragEnter: this.handleDragEnter,\n onDragLeave: this.handleDragLeave,\n onDrop: this.handleDrop,\n onRemove: this.handleRemove\n });\n };\n\n render() {\n return (\n \n \n \n {/*headers has to be outside of grid, so that only content has scrollbar*/}\n {/*==> we need to update first column header width after render*/}\n {this.props.firstColumnHeader}\n {this.props.secondColumnHeader}\n \n {/*todo many random positioning problems with SimpleBar -_-*/}\n {/*UX won't like overflow: \"auto\" on Grid*/}\n {/**/}\n \n {this.getMappedColumns()}\n \n {/**/}\n \n\n \n {this.props.thirdColumnHeader}\n \n {this.props.availableColumns.map((column, index) => {\n return (\n \n );\n })}\n \n \n {isDefined(this.state.selectedPreview) && this.props.previewValues &&\n \n {this.props.fourthColumnHeader}\n \n {this.props.previewValues.map((value, index) => {\n return value ? {value} : null;\n })}\n \n \n }\n \n );\n }\n}\n\nexport type { IProps as IImportSettingsProps };\nexport default withTheme(ImportSettings);","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { IconButton } from \"../button\";\nimport { CaretIcon, CloseIcon } from \"../icon\";\nimport { BasicInputSizes, IconSize } from \"../../enums\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Select } from \"../inputs/select\";\nimport { DragTransferId } from \"./ImportSettings\";\nimport {\n DropItemColumnWrapper,\n DropItemFirstColumn,\n DropItemSecondColumn,\n DropItemThirdColumn,\n ItemSelectorStyled,\n RequiredMarkStyled,\n SelectedItemLabelStyled,\n ValueWrapper\n} from \"./ImportSettings.styles\";\nimport {\n IFieldComponentProps,\n ISelectionChangeArgs,\n ISelectItem,\n TSelectItemId\n} from \"@components/inputs/select/Select.types\";\n\nexport interface IProps {\n id: string;\n title: string;\n value?: string;\n isRequired?: boolean;\n // cannot be changed by other item nor removed\n isDisabled?: boolean;\n\n selectItems?: ISelectItem[];\n selectValue?: TSelectItemId;\n onSelectChange?: (e: ISelectionChangeArgs, id: string) => void;\n\n // adds background color and padding\n isInGroup?: boolean;\n // manually add top margin if the item is next to a group\n addTopMargin?: boolean;\n\n onDragEnter: (event: React.DragEvent, id: string) => void;\n onDragLeave: (event: React.DragEvent, id: string) => void;\n onDrop: (event: React.DragEvent, id: string, value: string) => void;\n\n onRemove: (id: string) => void;\n}\n\ninterface IPropsExtended extends IProps, WithTranslation {\n}\n\nconst CloseButtonStyle: React.CSSProperties = {\n position: \"absolute\",\n right: \"5px\",\n top: \"6px\"\n};\n\nclass ImportSettingsDropItem extends React.PureComponent {\n allowDrop = (event: React.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n handleDrop = (e: React.DragEvent): void => {\n const val = e.dataTransfer.getData(DragTransferId);\n const target = (e.target as HTMLDivElement);\n\n target.setAttribute(\"style\", \"\");\n\n this.props.onDrop?.(e, this.props.id, val);\n e.stopPropagation();\n };\n\n handleDragEnter = (e: React.DragEvent): void => {\n this.props.onDragEnter?.(e, this.props.id);\n };\n\n handleDragLeave = (e: React.DragEvent): void => {\n this.props.onDragLeave?.(e, this.props.id);\n };\n\n handleRemoveClick = (): void => {\n this.props.onRemove(this.props.id);\n };\n\n handleSelectChange = (e: ISelectionChangeArgs): void => {\n this.props.onSelectChange?.(e, this.props.id);\n };\n\n renderSelectFieldComponent = (props: IFieldComponentProps): React.ReactElement => {\n const item = this.props.selectItems.find(item => item.id === this.props.selectValue);\n\n // eslint-disable-next-line react/jsx-no-undef\n return }\n data-testid={TestIds.ImportSettingsDropItemSelector}>\n \n {item.label}\n \n \n \n \n ;\n };\n\n render() {\n const hasValue = !!this.props.value;\n const value = this.props.value;\n\n return (\n <>\n \n \n {this.props.isRequired && }\n {this.props.title}\n \n \n \n =\n \n \n \n {hasValue && {value}}\n {hasValue && this.props.selectItems &&\n \n }\n {hasValue && !this.props.isDisabled &&\n \n \n }\n \n \n \n );\n }\n}\n\nexport type { IProps as IImportSettingsItemProps };\nexport default withTranslation([\"Common\"])(ImportSettingsDropItem);","import { transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { getDisabledStyle, getFocusBorderDefinition, T_PLAIN_big } from \"../../../global.style\";\nimport { CheckIcon } from \"../../icon\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\n\nconst CheckboxContainer = styled.div<{\n hasLabel?: boolean;\n isDisabled?: boolean;\n}>`\n position: relative;\n display: flex;\n align-items: center;\n vertical-align: middle;\n cursor: pointer;\n\n ${props => getDisabledStyle(props.isDisabled)};\n`;\n\ninterface ILabel {\n isLight?: boolean;\n auditTrailType?: AuditTrailFieldType;\n}\n\nconst CheckboxLabel = styled.div`\n margin-left: 12px;\n white-space: nowrap;\n ${T_PLAIN_big};\n color: ${props => !props.isLight ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n borderRadius: \"3px\",\n backgroundColor: props.theme.C_AUDIT_TRAIL_NO_DIFF\n }};\n\n`;\n\nexport const InnerLabel = styled.span <{\n auditTrailType?: AuditTrailFieldType\n}>`\n opacity: ${props => props.auditTrailType === AuditTrailFieldType.NoDifference ? 0 : 1};\n ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY,\n color: `${props.theme.C_TEXT_primary} !important`\n }};\n`;\n\nconst Icon = styled.svg`\n fill: none;\n stroke: white;\n stroke-width: 2px;\n`;\n// Hide checkbox visually but remain accessible to screen readers.\n// Source: https://polished.js.org/docs/#hidevisually\nconst HiddenCheckbox = styled.input.attrs({ type: \"checkbox\" })`\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n`;\n\nconst StyledCheckbox = styled.div<{\n checked?: boolean;\n hasLabel?: boolean;\n $decorative?: boolean;\n $isLight?: boolean;\n auditTrailType?: AuditTrailFieldType;\n}>`\n display: inline-block;\n position: relative;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n\n border: solid 1px ${props => props.theme.C_ACT_main};\n background-color: ${props => props.checked ? props.theme.C_ACT_hover_without_opacity : props.theme.C_BG_menu};\n\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n border: `solid 1px ${props.theme.C_AUDIT_TRAIL_NO_DIFF}`,\n backgroundColor: props.theme.C_AUDIT_TRAIL_NO_DIFF\n }};\n\n ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) && {\n border: `solid 3px ${props.theme.C_AUDIT_TRAIL_DIFF}`\n }};\n\n ${props => props.$decorative ? css`\n border-color: currentColor;\n background-color: transparent;\n border-radius: 50%;\n ` : css`\n box-shadow: 0 0 4.9px 0.2px rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n `};\n\n transition: all 150ms;\n\n &:hover {\n background-color: ${props => props.checked ? transparentize(0.5, props.theme.C_ACT_hover_without_opacity) : props.theme.C_ACT_hover_without_opacity};\n }\n\n &:focus-within:before {\n ${props => getFocusBorderDefinition({\n color: props.$isLight ? props.theme.C_ACT_light_line : props.theme.C_TEXT_primary,\n offset: 3\n })};\n }\n`;\n\nconst CheckIconStyled = styled(CheckIcon)<{\n checked?: boolean;\n $decorative?: boolean;\n auditTrailType?: AuditTrailFieldType;\n}>`\n ${props => props.$decorative && css`\n .IC_4L_main {\n stroke: currentColor !important;\n stroke-width: 6 !important;\n }\n `};\n\n ${props => props.auditTrailType === AuditTrailFieldType.NoDifference && {\n visibility: \"hidden\"\n }};\n\n ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n }};\n`;\n\nexport { CheckboxLabel, CheckboxContainer, Icon, StyledCheckbox, HiddenCheckbox, CheckIconStyled };","import React, { MouseEvent, PropsWithChildren, ReactElement } from \"react\";\nimport {\n CheckboxContainer,\n CheckboxLabel,\n CheckIconStyled,\n HiddenCheckbox,\n InnerLabel,\n StyledCheckbox\n} from \"./Checkbox.styles\";\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { getTabIndex } from \"../../auditTrail/Utils\";\nimport { IValueInputComponentProps } from \"../input\";\nimport { InputStatusStraight } from \"../input/Input.styles\";\nimport { Status } from \"../../../enums\";\nimport { FIELD_CONTENT_PADDING } from \"../field/Field.styles\";\n\nexport interface ICheckboxChange {\n origEvent: Event;\n value: boolean;\n}\n\nexport interface ICheckboxRenderChildProps {\n checkbox: React.Component;\n}\n\nexport interface IProps extends IValueInputComponentProps {\n onChange: (args: ICheckboxChange) => void;\n checked?: boolean;\n auditTrailData?: IAuditTrailData;\n\n /** Label rendered after the checkbox*/\n label?: React.ReactNode;\n title?: string;\n isLight?: boolean;\n className?: string;\n style?: React.CSSProperties;\n passProps?: any;\n decorative?: boolean;\n}\n\nexport default class Checkbox extends React.PureComponent> {\n _checkboxRef = React.createRef();\n\n handleClick = (e: MouseEvent | React.ChangeEvent): void => {\n if (!e.defaultPrevented) {\n this.focus();\n this.select(e);\n }\n };\n\n handleMouseDown = (e: React.MouseEvent): void => {\n e.preventDefault();\n this.focus();\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n // check only enter, space is already handled by browser as onClick\n if ((e.key === KeyName.Space || e.key === KeyName.Enter) && !e.defaultPrevented) {\n this.select(e);\n }\n };\n\n focus = (): void => {\n this._checkboxRef.current.focus();\n };\n\n select = (e: MouseEvent | React.ChangeEvent | React.KeyboardEvent): void => {\n // prevents second call of handleClick (one from HiddenCheckbox, one from CheckboxContainer) when space is pressed\n e.preventDefault();\n // prevents from causing multiple different events when used inside other component (e.g. in select)\n e.stopPropagation();\n this.props.onChange({\n origEvent: e as unknown as Event,\n // use this.props.checked instead of this._checkboxRef.current\n // this._checkboxRef has already changed checked state from browser when 'space' is pressed\n value: !this.props.checked\n });\n };\n\n isDisabled = (): boolean => {\n // CheckBox in readOnly state is supposed to look the same as in disabled state\n return this.props.isDisabled || this.props.isReadOnly;\n };\n\n renderCheckbox(): ReactElement {\n return (\n \n \n {this.props.checked &&\n \n }\n \n );\n }\n\n renderLabel(): ReactElement {\n return this.props.label && (\n \n \n {this.props.label}\n \n \n );\n }\n\n render() {\n return (\n \n {typeof this.props.children === \"function\"\n ? this.props.children({ checkbox: this.renderCheckbox() })\n : (\n <>\n {this.renderCheckbox()}\n {this.props.children}\n \n )}\n {this.renderLabel()}\n {!this.props.isReadOnly && this.props.showChange && }\n \n );\n }\n}","import React from \"react\";\nimport { CheckboxGroup, ICheckboxGroupProps } from \"./CheckboxGroup\";\nimport ColumnAutoSizer, { IColumnAutoSizerChildren } from \"../../columnAutoSizer/ColumnAutoSizer\";\n\ninterface IProps extends Omit {\n\n}\n\n/** CheckBox group that automatically changes number of columns based on available space and number of children.\n * Keeping as separate component if there was a need for a CheckBoxGroup with manually set numColumns. */\nclass AutoSizedCheckboxGroup extends React.PureComponent {\n static defaultProps: Partial = {\n items: [],\n subgroups: []\n }\n\n getMaxNumColumns = () => {\n const childrenCount = this.props.items?.length + this.props.subgroups.length;\n let numColumns;\n\n // put back (and behind some props) if UX come up with case that they actually need this variant\n // if (childrenCount === 2) {\n // numColumns = 2;\n // } else\n\n if (childrenCount <= 5) {\n numColumns = 1;\n } else if (childrenCount <= 14) {\n numColumns = 2;\n } else if (childrenCount <= 27) {\n numColumns = 3;\n } else {\n numColumns = 4;\n }\n\n return numColumns;\n };\n\n render() {\n return (\n \n {(args: IColumnAutoSizerChildren) => {\n return (\n \n );\n }}\n \n );\n }\n}\n\nexport { AutoSizedCheckboxGroup };","import styled from \"styled-components/macro\";\nimport Checkbox from \"../checkbox/Checkbox\";\nimport { CheckboxLabel } from \"../checkbox/Checkbox.styles\";\n\ninterface ICheckboxGroup {\n numColumns: number;\n numItems: number;\n canHaveOrphans: boolean;\n}\n\nexport const CheckboxGroupWrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nexport const StyledCheckboxGroup = styled.div.attrs((props: ICheckboxGroup) => ({}))`\n width: fit-content;\n display: flex;\n\n & > div:last-child {\n margin-right: 0;\n }\n`;\n\nexport const CheckboxGroupColumn = styled.div`\n display: flex;\n flex-direction: column;\n margin-right: 24px;\n\n & > div:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const CheckboxStyled = styled(Checkbox)<{\n _isBold?: boolean;\n bigBottomMargin?: boolean;\n}>`\n margin-bottom: ${props => props.bigBottomMargin ? \"42px\" : \"12px\"};\n \n ${CheckboxLabel} {\n font-weight: ${props => props._isBold ? \"bold\" : \"normal\"};\n }\n`;","import React from \"react\";\nimport { CheckboxGroupColumn, CheckboxGroupWrapper, CheckboxStyled, StyledCheckboxGroup } from \"./CheckboxGroup.styles\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport TestIds from \"../../../testIds\";\nimport { handleRefHandlers, toggleItemInArray } from \"@utils/general\";\nimport { ICheckboxChange } from \"../checkbox\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../../focusManager/FocusManager\";\nimport { WithDomManipulator, withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface ICheckboxGroupProps {\n items: ICheckboxGroupItem[];\n values: string[];\n subgroups?: ICheckboxSubgroup[];\n numColumns?: number;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n onChange: (args: ICheckboxGroupChange) => void;\n auditTrailData?: IAuditTrailData;\n passRef?: React.Ref;\n hasMasterCheckbox?: boolean;\n}\n\nexport interface ICheckboxGroupItem extends ISelectItem {\n id: string;\n isReadOnly?: boolean;\n}\n\ninterface ICheckboxGroupItemInternal extends ICheckboxGroupItem {\n isChecked?: boolean;\n isGroupMaster?: boolean;\n isLastInGroup?: boolean;\n}\n\n/** Use when checkboxes are supposed to be divided into multiple groups inside on CheckboxGroup.\n * Each \"item\" should than have \"groupId\" set */\nexport interface ICheckboxSubgroup {\n id: string;\n label: string;\n}\n\nexport interface ICheckboxGroupChange {\n // all the current values after the change\n values: string[];\n // state for just the one changed checkbox\n // not used when change all button clicked\n id?: string;\n isChecked?: boolean;\n}\n\nclass CheckboxGroup extends React.Component {\n static defaultProps: Partial = {\n items: [],\n values: [],\n subgroups: [],\n numColumns: 1\n };\n\n get checkableItems() {\n return this.props.items?.filter(item => !item.isDisabled || this.props.values?.includes(item.id));\n }\n\n get canHaveOrphans() {\n return this.props.subgroups.length > 0;\n }\n\n isItemChecked = (itemId: string) => {\n return (this.props.values || []).indexOf(itemId) !== -1;\n };\n\n handleChange = (id: string) => {\n const values = [...this.props.values || []];\n const isChecked = !values.find(val => val === id);\n toggleItemInArray(values, id);\n\n this.props.onChange({\n values,\n id,\n isChecked\n });\n };\n\n handleChangeAll = (args: ICheckboxChange) => {\n let newItems: ICheckboxGroupItem[];\n if (args.value) {\n newItems = this.checkableItems;\n } else {\n newItems = this.props.items?.filter(item => item.isDisabled && this.props.values?.includes(item.id));\n }\n\n this.props.onChange({ values: [...newItems.map(i => i.id)] });\n };\n\n handleSubgroupChange = (subgroupId: string, args: ICheckboxChange) => {\n const isChecked = args.value;\n const subgroupItems: ICheckboxGroupItemInternal[] = this.getSubgroupItems(this.props.items, subgroupId);\n const checkableSubgroupItems: ICheckboxGroupItemInternal[] = subgroupItems.filter(subgroupItem => this.checkableItems.find(checkableItem => checkableItem.id === subgroupItem.id));\n\n const values = [...this.props.values];\n\n for (const item of checkableSubgroupItems) {\n const isItemChecked = this.isItemChecked(item.id);\n\n if ((isChecked && !isItemChecked) || (!isChecked && isItemChecked)) {\n toggleItemInArray(values, item.id);\n }\n }\n\n this.props.onChange({\n values\n });\n };\n\n getAuditTrailData = (id: string) => {\n if (this.props.auditTrailData) {\n if (this.props.auditTrailData.type === AuditTrailFieldType.HoveredDifference || this.props.auditTrailData.type === AuditTrailFieldType.HoveredNoDifference) {\n return this.props.auditTrailData.missmatchedPaths?.[id] ? {\n type: AuditTrailFieldType.HoveredDifference\n } : {\n type: AuditTrailFieldType.HoveredNoDifference\n };\n }\n\n return this.props.auditTrailData.missmatchedPaths?.[id] ? {\n type: AuditTrailFieldType.Difference\n } : {\n type: AuditTrailFieldType.NoDifference\n };\n }\n\n return null;\n };\n\n getItems = (): ICheckboxGroupItemInternal[] => {\n let allItems: ICheckboxGroupItemInternal[];\n const checkableItems = this.checkableItems;\n\n if (this.props.subgroups.length === 0) {\n allItems = this.props.items.map(item => ({\n ...item,\n isChecked: this.isItemChecked(item.id),\n isDisabled: this.props.isDisabled || item.isDisabled,\n isReadOnly: this.props.isReadOnly\n }));\n } else {\n allItems = [];\n\n for (const subgroup of this.props.subgroups) {\n const subgroupItems: ICheckboxGroupItemInternal[] = this.getSubgroupItems(this.props.items, subgroup.id);\n const isGroupChecked = subgroupItems.every(item => {\n const isCheckable = checkableItems.find(checkableItem => checkableItem.id === item.id);\n\n return !isCheckable || this.isItemChecked(item.id);\n });\n\n if (subgroupItems.length > 0) {\n allItems.push({\n id: subgroup.id,\n label: subgroup.label,\n isGroupMaster: true,\n isChecked: isGroupChecked,\n isDisabled: this.props.isDisabled,\n isReadOnly: this.props.isReadOnly\n });\n }\n\n for (let i = 0; i < subgroupItems.length; i++) {\n const item = subgroupItems[i];\n const isLastInGroup = i === subgroupItems.length - 1;\n\n allItems.push({\n ...item,\n isChecked: this.isItemChecked(item.id),\n isDisabled: this.props.isDisabled || item.isDisabled,\n isReadOnly: this.props.isReadOnly,\n isLastInGroup\n });\n\n }\n }\n }\n\n return allItems;\n };\n\n renderMasterCheckbox = (itemProps: IFocusableItemProps) => {\n const allChecked = this.props.values?.length === this.checkableItems?.length;\n\n return (\n <>\n \n \n );\n };\n\n renderItem = (item: ICheckboxGroupItemInternal, itemProps: IFocusableItemProps) => {\n return (\n \n );\n };\n\n getSubgroupItems = (items: ICheckboxGroupItem[], groupId: string) => {\n return items.filter(item => item.groupId === groupId);\n };\n\n renderColumns = (items: ICheckboxGroupItemInternal[], itemProps: IFocusableItemProps): React.ReactElement[] => {\n const numOfItemsInColumn = Math.ceil((this.canHaveOrphans ? 1 : 0) + (items.length / this.props.numColumns));\n const renderedColumns: React.ReactElement[] = [];\n let itemIndex = 0;\n\n\n for (let i = 0; i < this.props.numColumns; i++) {\n const columnItems: React.ReactElement[] = [];\n let isNextItemLast = false;\n let columnItemIndex = 0;\n\n while (true) {\n const item = items[itemIndex];\n\n if (!item) {\n break;\n }\n\n itemIndex += 1;\n columnItemIndex += 1;\n\n let shouldBeLastItem = (columnItemIndex >= numOfItemsInColumn && i < this.props.numColumns - 1) || itemIndex === items.length;\n\n // last item of group cannot be alone in a new column\n // but lone group master has bigger priority\n if (shouldBeLastItem && items[itemIndex]?.isLastInGroup && i < this.props.numColumns - 1 && !items[itemIndex - 2]?.isGroupMaster) {\n itemIndex -= 1;\n break;\n }\n\n columnItems.push(this.renderItem(item, itemProps));\n\n if (item.isLastInGroup) {\n // add fake item to account for the bigger margin\n columnItemIndex += 1;\n }\n\n if (isNextItemLast) {\n break;\n }\n\n // groupMaster cannot be last in column alone\n if (shouldBeLastItem && item.isGroupMaster) {\n shouldBeLastItem = false;\n isNextItemLast = true;\n }\n\n if (shouldBeLastItem) {\n break;\n }\n }\n\n isNextItemLast = false;\n renderedColumns.push((\n \n {columnItems}\n \n ));\n }\n\n return renderedColumns;\n };\n\n render() {\n const items = this.getItems();\n\n return (\n // with change from grid to flex and the orphans handling, FocusDirection.Grid would no longer work\n // => use FocusDirection.Vertical\n \n {({ itemProps, wrapperProps }) => {\n const columns = this.renderColumns(items, itemProps);\n\n return (\n {\n handleRefHandlers(ref, this.props.passRef, wrapperProps.ref);\n }}\n data-testid={TestIds.CheckboxGroupWrapper}>\n {this.props.hasMasterCheckbox && !!items?.length &&\n this.renderMasterCheckbox(itemProps)\n }\n \n {columns}\n \n \n );\n }}\n \n );\n }\n}\n\nconst CheckboxGroupExtended = withDomManipulator(withTranslation(\"Common\")(CheckboxGroup));\nexport { CheckboxGroupExtended as CheckboxGroup } ;","import React, { FocusEvent } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BasicInputSizes, DatePickerView, IconSize } from \"../../../enums\";\nimport DateType, { DateFormat, DisplayFormat, getDateFormat } from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { DateIcon } from \"../../icon\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport {\n getSharedInputProps,\n IInputOnBlurEvent,\n IInputOnChangeEvent,\n IInputProps,\n InputWithErrorAndTooltip,\n ISharedInputProps\n} from \"../input\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport DatePickerBase, { ICustomReferenceElement } from \"./DatePickerBase\";\nimport { DateRangeSpecialValue, TDisabledDateUnit } from \"./popup/Calendar.utils\";\nimport { DatePickerPopup, IProps as IDatePickerPopup } from \"./popup/DatePickerPopup\";\nimport { formatDateVariants, isMaxDay, isMinDay, longDateFormat } from \"./utils\";\n\nexport const DateInput = withFormatter({\n parser: (value, strict) => DateType.parse({ date: value, strictMode: strict }),\n formatter: DateType.format,\n // not defined values are valid when using for formatting -> formatted as empty string\n isValid: DateType.isValid,\n parseOnEnter: true\n}, InputWithErrorAndTooltip);\n\nexport interface IPickerProps extends ISharedInputProps {\n value?: Type;\n // if no value is set, this will be the focused date in picker popup when opened\n previewValue?: Date;\n onChange?: (e: IInputOnChangeEvent) => void;\n onBlur?: (args: IInputOnBlurEvent) => void;\n onFocus?: (e: FocusEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n format?: DateFormat | DisplayFormat;\n // DatePicker only props - makes sense also for others?\n defaultView?: DatePickerView;\n disableViewChange?: boolean;\n showSpecialValue?: DateRangeSpecialValue;\n minDate?: Date;\n maxDate?: Date;\n /** Content added to the end of the input. E.g. secondary warning icon */\n content?: React.ReactElement;\n isDateDisabled?: (date: Date, unit: TDisabledDateUnit) => boolean;\n workDate?: Date;\n className?: string;\n style?: React.CSSProperties;\n}\n\nclass DatePicker extends React.Component {\n static defaultProps: Partial = {\n format: DisplayFormat.DateMedium,\n width: BasicInputSizes.M\n };\n\n constructor(props: IPickerProps & WithTranslation) {\n super(props);\n\n this.formatter = this.formatter.bind(this);\n }\n\n get format(): string {\n // props.format is now ignored, since we changed from localized formats to user defined format in UserSetting\n const format = DateType.defaultDateFormat ?? this.props.format;\n\n return longDateFormat(getDateFormat(format));\n }\n\n get placeholder(): string {\n // TODO should we localize placeholder? How?\n return this.format?.toLowerCase();\n }\n\n formatter(value: Date): string {\n const formattedValue = DateType.format(value, this.format);\n\n if (this.props.showSpecialValue) {\n if (this.props.showSpecialValue === DateRangeSpecialValue.WithoutEnd && isMaxDay(this.props.value)) {\n return this.props.t(\"Common:Time.WithoutEnd\");\n } else if (this.props.showSpecialValue === DateRangeSpecialValue.WithoutStart && isMinDay(this.props.value)) {\n return this.props.t(\"Common:Time.WithoutStart\");\n }\n }\n\n return formattedValue;\n }\n\n parser = (value: string, strict: boolean): Date => {\n return DateType.parse({\n date: value,\n format: strict ? this.format : formatDateVariants(this.format),\n workDate: this.props.workDate\n });\n };\n\n isSame = (date1: Date, date2: Date): boolean => {\n if (date1 instanceof Date) {\n return DateType.isSameDay(date1, date2);\n }\n\n return date1 === date2;\n };\n\n get pickerPopup(): React.ComponentType {\n return DatePickerPopup;\n }\n\n get icon() {\n return ;\n }\n\n get inputComponent(): React.ComponentType> {\n return DateInput;\n }\n\n get popoverOffsetX(): number {\n // to be overridden\n return null;\n }\n\n get popoverOffsetY(): number {\n // to be overridden\n return null;\n }\n\n getCustomReferenceElement = (args: ICustomReferenceElement): React.ReactNode => {\n // can be overridden in inherited class\n return null;\n };\n\n getPopupProps = memoizeOne((): Partial => {\n return {\n value: this.props.value,\n defaultView: this.props.defaultView,\n disableViewChange: this.props.disableViewChange,\n showSpecialValue: this.props.showSpecialValue,\n minDate: this.props.minDate,\n maxDate: this.props.maxDate,\n isDateDisabled: this.props.isDateDisabled\n };\n }, () => [this.props.value, this.props.defaultView, this.props.disableViewChange, this.props.showSpecialValue, this.props.minDate, this.props.maxDate]);\n\n getInputProps = memoizeOne(() => {\n return {\n formatter: !this.props.formatter ? this.formatter : (value: Date) => {\n // if custom formatter specified, give it the already pre-formatted value\n return this.props.formatter(this.formatter(value));\n },\n parser: this.parser,\n isSame: this.isSame\n };\n }, () => [this.formatter, this.parser, this.isSame, this.props.formatter]);\n\n render = () => {\n const popupProps = this.getPopupProps();\n const inputProps = this.getInputProps();\n\n return (\n \n );\n };\n}\n\nconst DatePickerExtended = withTranslation([\"Components\"])(DatePicker);\n\nexport { DatePickerExtended as DatePicker, DatePicker as DatePickerClean };","import { getFocusableElements } from \"@utils/general\";\nimport { debounce } from \"lodash\";\nimport React, { FocusEvent } from \"react\";\nimport { ReferenceChildrenProps } from \"react-popper\";\n\nimport { TRecordAny } from \"../../../global.types\";\nimport { WithHideOnBlur, withHideOnBlur } from \"../../../HOC/withHideOnBlur\";\nimport { KeyName } from \"../../../keyName\";\nimport { IValidationError } from \"../../../model/Validator.types\";\nimport DateType from \"../../../types/Date\";\nimport Popover from \"../../popover/Popover\";\nimport { POPOVER_INPUT_OFFSET_X, POPOVER_INPUT_SHARP_LEFT_OFFSET_X } from \"../../popover/Popover.utils\";\nimport {\n getSharedInputProps,\n IInputOnBlurEvent,\n IInputOnChangeEvent,\n IInputProps,\n InputComponentType,\n ISharedInputProps\n} from \"../input/Input\";\n\nexport interface ICustomReferenceElement {\n ref: React.Ref;\n onClick: (e: React.MouseEvent) => void;\n onKeyDown: (args: any) => void;\n}\n\ninterface IProps extends ISharedInputProps, WithHideOnBlur {\n value: Date;\n popupProps: TRecordAny;\n onChange: (event: IInputOnChangeEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n pickerPopup: React.ComponentType;\n inputComponent: React.ComponentType;\n inputProps: TRecordAny;\n // use this callback render something else other than Input,\n // if used, set inputComponent and inputProps as null\n customReferenceElement?: (args: ICustomReferenceElement) => React.ReactNode;\n popoverOffsetX?: number;\n popoverOffsetY?: number;\n icon: React.ReactElement;\n content?: React.ReactElement;\n onBlur: (args: IInputOnBlurEvent) => void;\n onFocus: (e: FocusEvent) => void;\n}\n\nclass DatePickerBase extends React.Component {\n _inputRef = React.createRef();\n _inputComponentRef = React.createRef();\n _popupRef = React.createRef();\n _disabledAutoFocus: boolean;\n _isBlurringToPopup: boolean;\n\n componentDidMount() {\n this.props.setHideOnBlurOptions([this._popupRef, this._inputComponentRef?.current?._wrapperRef]);\n }\n\n handleIconClick = (e: React.MouseEvent) => {\n if (!this.props.isVisible && this._inputRef.current !== document.activeElement) {\n // if opened by icon click, move focus into the input,\n // otherwise, withHideOnClick would allow you to open multiple date pickers by clicking on their icon,\n // because there wouldn't be any focus change and thus no blur event\n this._inputRef.current?.focus();\n }\n\n this.setOpen(!this.props.isVisible);\n e.preventDefault();\n e.stopPropagation();\n };\n\n handleClick = () => {\n this.setOpen(true);\n };\n\n setOpen = (isOpen: boolean, byKeyboard = false) => {\n this._isBlurringToPopup = false;\n\n if (this.props.isVisible === isOpen) {\n // in some cases, focus is still inside input (error is not shown on input) AND the popup is closed (via keyboard or mouse)\n // calling setIsVisible doesn't cause rerender\n // => we need to rerender DatePickerBase so that this.getError returns value and error gets visible again on the input\n //\n this.forceUpdate();\n } else {\n this.props.setIsVisible(isOpen);\n }\n this._disabledAutoFocus = !byKeyboard;\n };\n\n handleInputKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === KeyName.Tab && this.props.isVisible) {\n // focus calendar to pick a date\n this.focusOnPopupContent();\n event.preventDefault();\n return;\n }\n\n const inputValue = (event.target as HTMLInputElement)?.value;\n const selectedText = window.getSelection().toString();\n const isFirstLetter = !inputValue || inputValue === selectedText || (!selectedText && this._inputRef.current.selectionStart === 0);\n // only open date picker with Space, not with Enter https://solitea-cz.atlassian.net/browse/DEV-15213\n if ((isFirstLetter && event.key === KeyName.Space)) {\n event.stopPropagation();\n event.preventDefault(); // otherwise, somehow fires click on DatePickerPopup's YearMonth button\n this.setOpen(!this.props.isVisible, true);\n\n return;\n }\n this.setOpen(false);\n\n this.handleSharedKeyDown(event);\n this.props.onKeyDown?.(event);\n };\n\n handlePickerKeyDown = (e: React.KeyboardEvent) => {\n if (!this.props.isContained(document.activeElement as HTMLElement)) {\n // DatePicker may loose focus on keyDown (Tab), close the popup then\n this.setOpen(false);\n\n return;\n }\n this.handleSharedKeyDown(e);\n };\n\n handleSharedKeyDown(e: React.KeyboardEvent) {\n if (e.key === KeyName.Escape) {\n this.setOpen(false);\n this.focusOnInput();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n handlePickerChange = (value: any) => {\n // close and set focus to the input\n this.setOpen(false);\n // !! Keep immediate focus before change so _wasChangedSinceBlur is handled correctly and validations are triggered. !!\n this.focusOnInput();\n\n this.props.onChange({\n value,\n triggerAdditionalTasks: true\n });\n };\n\n handleChange = (event: IInputOnChangeEvent) => {\n // Input triggers change event with triggerAdditionalTasks === false when user types and may trigger\n // debounced change event if configured.\n // We don't want to propagate the debounced change event if the data are not valid\n const isValid = DateType.isValid(event.value);\n if (!event.triggerAdditionalTasks || isValid) {\n event.triggerAdditionalTasks = isValid;\n this.props.onChange(event);\n }\n };\n\n focusOnInput = () => {\n this._inputRef.current?.focus();\n this.selectOnInput();\n };\n\n selectOnInput = debounce(() => {\n // select text, so that user can open popup again with Space key, without change cursor position or selecting text manually\n this._inputRef.current?.select();\n });\n\n focusOnPopupContent = () => {\n const focusable = getFocusableElements(this._popupRef.current);\n (focusable?.[0] as HTMLElement)?.focus();\n };\n\n handleBlur = (e: IInputOnBlurEvent) => {\n this.props.onBlur?.(e);\n const elem = e.origEvent.relatedTarget as HTMLElement;\n this._isBlurringToPopup = this.props.isContained(elem);\n if (!elem || !this._isBlurringToPopup) {\n this.setOpen(false);\n }\n };\n\n handleFocus = (e: FocusEvent) => {\n this.props.onFocus?.(e);\n };\n\n getError = (): IValidationError => {\n if (this._isBlurringToPopup || this.props.isContained(document.activeElement as HTMLElement)) {\n this._isBlurringToPopup = false;\n return null;\n }\n return this.props.error;\n };\n\n renderInput = ({ ref }: ReferenceChildrenProps) => {\n const InputComponent = this.props.inputComponent;\n return (\n \n );\n };\n\n renderCustomReference = ({ ref }: ReferenceChildrenProps) => {\n return this.props.customReferenceElement({\n ref,\n onClick: this.handleIconClick,\n onKeyDown: this.handleInputKeyDown\n });\n };\n\n render = () => {\n const PickerPopup = this.props.pickerPopup;\n\n return (\n \n \n \n );\n };\n}\n\nexport default withHideOnBlur(DatePickerBase);","import styled from \"styled-components/macro\";\nimport { IconButton } from \"../../button\";\nimport { CaretIcon } from \"../../icon\";\nimport { getFocusBorderElement, T_HEADER_small } from \"../../../global.style\";\n\nexport const MonthNavButton = styled(IconButton)`\n margin: 0 10px;\n visibility: hidden;\n`;\n\nexport const StyledMonthYearSelector = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 270px;\n\n :hover ${MonthNavButton} {\n visibility: visible;\n }\n`;\n\nexport const MonthAndYearValue = styled.div`\n position: relative;\n color: ${props => props.theme.C_ACT_main};\n cursor: pointer;\n\n ${T_HEADER_small};\n ${getFocusBorderElement({ offset: 2, keyboardOnly: true })};\n\n :hover {\n color: ${props => props.theme.C_BTN_4L_emph_text_hover};\n }\n`;\n\nexport const CaretIconLeft = styled(CaretIcon)`\n transform: rotate(90deg);\n`;\n\nexport const CaretIconRight = styled(CaretIcon)`\n transform: rotate(-90deg);\n`;\n","import React from \"react\";\nimport {\n CaretIconLeft,\n CaretIconRight,\n MonthAndYearValue,\n MonthNavButton,\n StyledMonthYearSelector\n} from \"./MonthYearSelector.styles\";\nimport { IconSize } from \"../../../enums\";\nimport DateType, { DateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { withTranslation } from \"react-i18next\";\nimport MonthYearPopup from \"./popup/MonthYearPopup\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { ICustomReferenceElement } from \"./DatePickerBase\";\nimport { DatePickerClean } from \"./DatePicker\";\nimport { IInputProps } from \"../input\";\nimport { capitalize } from \"@utils/string\";\n\n/** Shows month and a year, without input. MonthYearPopup can be opened by clicking on the label. */\nclass MonthYearSelector extends DatePickerClean {\n get pickerPopup() {\n return MonthYearPopup;\n }\n\n get inputComponent(): React.ComponentType> {\n return null;\n }\n\n get popoverOffsetX(): number {\n // center the popup\n return -10;\n }\n\n get popoverOffsetY(): number {\n return 10;\n }\n\n getCustomReferenceElement = (args: ICustomReferenceElement): React.ReactNode => {\n return this.renderValue(args);\n };\n\n handlePrevious = (): void => {\n this.props.onChange({\n value: getUtcDayjs(this.props.value).subtract(1, \"month\").toDate(),\n triggerAdditionalTasks: true\n });\n };\n\n handleNext = (): void => {\n this.props.onChange({\n value: getUtcDayjs(this.props.value).add(1, \"month\").toDate(),\n triggerAdditionalTasks: true\n });\n };\n\n renderValue = (args: ICustomReferenceElement): React.ReactElement => {\n return (\n \n \n \n \n \n {capitalize(DateType.format(this.props.value, DateFormat.monthAndYear))}\n \n \n \n \n \n );\n };\n}\n\nexport default withTranslation([\"Common\", \"Component\"])(MonthYearSelector);","import React from \"react\";\nimport { formatTimeVariants, longDateFormat } from \"./utils\";\nimport DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport { IInputProps, InputWithErrorAndTooltip } from \"../input\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { BasicInputSizes, TextAlign } from \"../../../enums\";\nimport { Stepper } from \"../numericValueInputBase/Stepper\";\nimport { isDefined, isNotDefined, mouseDownRepeat } from \"@utils/general\";\nimport { KeyName } from \"../../../keyName\";\n\nconst getFormat = (): string => {\n return longDateFormat(getDateFormat(DateType.defaultTimeFormat));\n};\n\nexport const TimeInput = withFormatter({\n parser: (value: string, strict: boolean): Date => {\n return DateType.parse({\n date: value?.padStart(4, \"0\"),\n format: formatTimeVariants(longDateFormat(getDateFormat(DateType.defaultTimeFormat))),\n strictMode: strict\n });\n },\n formatter: (value: Date): string => {\n return DateType.format(value, getFormat());\n },\n isValid: (value: Date): boolean => {\n return DateType.isValid(value);\n },\n isSame: (date1: Date, date2: Date): boolean => {\n if (date1 instanceof Date) {\n return date1.getMinutes() === date2?.getMinutes() && date1.getHours() === date2?.getHours();\n }\n\n return date1 === date2;\n }\n}, InputWithErrorAndTooltip);\n\n\ninterface IProps extends IInputProps, WithErrorAndTooltipProps {\n min?: Date;\n max?: Date;\n showSteppers?: boolean;\n}\n\nexport class TimePicker extends React.PureComponent {\n handleNextMouseDown = (): void => {\n mouseDownRepeat(this.increment);\n };\n\n handlePrevMouseDown = (): void => {\n mouseDownRepeat(this.decrement);\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === KeyName.ArrowDown) {\n event.preventDefault();\n this.decrement();\n } else if (event.key === KeyName.ArrowUp) {\n event.preventDefault();\n this.increment();\n }\n\n this.props.onKeyDown?.(event);\n };\n\n\n increment = (): void => {\n this.updateValue(getUtcDayjs(this.props.value).add(1, \"minute\").toDate());\n };\n\n decrement = (): void => {\n this.updateValue(getUtcDayjs(this.props.value).subtract(1, \"minute\").toDate());\n };\n\n canIncrement = (): boolean => {\n if (!DateType.isValid(this.props.value)) {\n return false;\n }\n\n const date = getUtcDayjs(this.props.value);\n\n return isNotDefined(this.props.max) || date.isBefore(this.props.max);\n };\n\n canDecrement = (): boolean => {\n if (!DateType.isValid(this.props.value)) {\n return false;\n }\n\n const date = getUtcDayjs(this.props.value);\n\n return isNotDefined(this.props.max) || date.isAfter(this.props.min);\n };\n\n updateValue = (value: Date): void => {\n let newVal = getUtcDayjs(value);\n\n if (isDefined(this.props.max) && newVal.isAfter(this.props.max)) {\n newVal = getUtcDayjs(this.props.max);\n }\n\n if (isDefined(this.props.min) && newVal.isBefore(this.props.min)) {\n newVal = getUtcDayjs(this.props.min);\n }\n\n // always focus the input before changing the value, so validations and _wasChangedSinceBlur flag works correctly\n // this.inputRef.current?.focus();\n\n this.props.onChange?.({\n value: newVal.toDate(),\n triggerAdditionalTasks: true\n });\n };\n\n renderSteppers = (): React.ReactElement => {\n return (\n \n );\n };\n\n render() {\n return (\n \n );\n }\n}","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { DateLabelButton, StyledRelativeDateValues } from \"./Calendar.styles\";\nimport { PredefinedFilter } from \"../../../conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { capitalize } from \"@utils/string\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../../../focusManager\";\nimport memoize from \"../../../../utils/memoize\";\n\nconst PossibleValue = [\n PredefinedFilter.ThisWeek,\n PredefinedFilter.LastWeek,\n PredefinedFilter.ThisMonth,\n PredefinedFilter.LastMonth,\n PredefinedFilter.ThisYear,\n PredefinedFilter.LastYear\n];\n\ninterface IProps extends WithTranslation {\n value: PredefinedFilter;\n onChange: (value: PredefinedFilter) => void;\n embedded?: boolean;\n}\n\nclass RelativeDateValues extends React.PureComponent {\n getOnClick = memoize((value: PredefinedFilter) => {\n return () => {\n this.props.onChange(value);\n };\n }, (value) => value.toString());\n\n renderValue = (value: PredefinedFilter, itemProps: IFocusableItemProps): React.ReactElement => {\n return (\n \n {capitalize(this.props.t(`Components:ValueHelper.${value}`))}\n \n );\n };\n\n render() {\n return (\n \n {({ itemProps, wrapperProps }) => (\n }\n embedded={this.props.embedded}>\n {PossibleValue.map(val => this.renderValue(val, itemProps))}\n \n )}\n \n );\n }\n}\n\n\nexport default withTranslation([\"Common\"])(RelativeDateValues);","import styled from \"styled-components/macro\";\nimport { themes } from \"../../../../theme\";\nimport { StyledDatePickerPopup } from \"./Calendar.styles\";\nimport { transparentize } from \"polished\";\n\nexport const StyledDateRangePickerPopup = styled.div`\n display: flex;\n height: fit-content;\n min-width: fit-content;\n background: ${themes.light.C_BG_dialogue};\n overflow: auto;\n\n & ${StyledDatePickerPopup}:not(:last-child)::after {\n content: \"\";\n position: absolute;\n right: 0;\n top: 65px;\n height: 245px;\n width: 1px;\n background-color: ${props => transparentize(0.75, props.theme.C_ACT_hover_without_opacity)};\n }\n`;","import React from \"react\";\nimport { Dayjs } from \"dayjs\";\nimport { DatePickerView } from \"../../../../enums\";\nimport { Calendar, IRenderDayArgs } from \"./Calendar\";\nimport {\n dateIntervalToDayjsInterval,\n dayjsIntervalToDateInterval,\n getValidDayjsDate,\n IDayInterval,\n IDayjsInterval,\n isSameDay,\n isValidDateInterval\n} from \"../utils\";\nimport { Day } from \"./Day\";\nimport RelativeDateValues from \"./RelativeDateValues\";\nimport { isInterval, PredefinedFilter } from \"../../../conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { StyledDateRangePickerPopup } from \"./DateRangePickerPopup.styles\";\nimport { IDateRangeValuePopupSharedProps } from \"./Calendar.utils\";\n\ninterface IState {\n previewDay: Dayjs;\n view: DatePickerView;\n // not only mouse, but keyboard focus also\n mouseOverDay: Dayjs;\n value: IDayjsInterval | PredefinedFilter;\n firstTime: Dayjs;\n secondTime: Dayjs;\n}\n\nexport interface IDateRangePickerPopupProps extends IDateRangeValuePopupSharedProps {\n showRelativeValues?: boolean;\n showTime?: boolean;\n}\n\nexport class DateRangePickerPopup extends React.PureComponent {\n constructor(props: IDateRangePickerPopupProps) {\n super(props);\n\n const fromDate = getValidDayjsDate((this.props.value && isInterval(this.props.value) ? this.props.value.from : null));\n const toDate = getValidDayjsDate((this.props.value && isInterval(this.props.value) ? this.props.value.to : null));\n\n this.state = {\n previewDay: fromDate,\n view: DatePickerView.Days,\n mouseOverDay: null,\n value: this.props.value ?\n !isInterval(this.props.value) ?\n this.props.value\n : dateIntervalToDayjsInterval(this.props.value)\n : { from: null, to: null },\n firstTime: fromDate,\n secondTime: toDate\n };\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n const prevValue = prevProps.value as IDayInterval;\n\n if (isValidDateInterval(this.props.value) &&\n (this.props.value?.from !== prevValue?.from || this.props.value?.to !== prevValue?.to)) {\n this.setState({ value: dateIntervalToDayjsInterval(this.props.value) });\n }\n }\n\n // date internal is handled here internally in state\n // and applied via this.renderDay method\n // this is only used for the time if showTime is true\n getFirstValue = (): Dayjs => {\n return this.state.firstTime;\n };\n\n getSecondValue = (): Dayjs => {\n return this.state.secondTime;\n };\n\n isRelativeValueSelected = (): boolean => {\n return this.state.value && !isInterval(this.state.value);\n };\n\n getRelativeValue = (): PredefinedFilter => {\n if (this.isRelativeValueSelected()) {\n return this.state.value as PredefinedFilter;\n }\n\n return null;\n };\n\n getFirstCalendarPreviewDay = (): Dayjs => {\n return this.state.previewDay;\n };\n\n getSecondCalendarPreviewDay = (): Dayjs => {\n return this.state.previewDay.add(1, \"month\");\n };\n\n handleCalendarChange = (day: Dayjs): void => {\n if (!day) {\n this.setState({\n value: null\n });\n\n return;\n }\n\n const value = this.state.value as IDayjsInterval;\n\n const shouldSelectFromDay = !value?.from\n || (value.from && value.to);\n\n if (shouldSelectFromDay) {\n this.setState({\n value: {\n from: day,\n to: null\n }\n });\n } else {\n // User selects second date, swaps them to correct order\n const swapInterval = value.from.isAfter(day);\n this.setState({\n value: {\n from: swapInterval ? day : value.from,\n to: (swapInterval ? value.from : day)\n }\n });\n }\n };\n\n handleFirstCalendarChange = (day: Dayjs, isTimeChange: boolean): void => {\n if (isTimeChange) {\n this.setState({\n firstTime: day\n });\n } else {\n this.handleCalendarChange(day);\n }\n };\n\n handleSecondCalendarChange = (day: Dayjs, isTimeChange: boolean): void => {\n if (isTimeChange) {\n this.setState({\n secondTime: day\n });\n } else {\n this.handleCalendarChange(day);\n }\n };\n\n isDaySelected = (day: Dayjs): boolean => {\n if (!this.state.value || this.isRelativeValueSelected()) {\n return false;\n }\n\n const value = this.state.value as IDayjsInterval;\n\n return isSameDay(day, value.from) || isSameDay(day, value.to);\n };\n\n isInActiveRange = (day: Dayjs): boolean => {\n const value = this.state.value as IDayjsInterval;\n\n if (!this.state.value || this.isRelativeValueSelected() || !value.from || value.to || !this.state.mouseOverDay) {\n return false;\n }\n\n const { from } = value;\n const to = this.state.mouseOverDay;\n const swapInterval = from?.isAfter(to);\n\n return this.isDaySelected(day) ||\n isSameDay(day, this.state.mouseOverDay) ||\n day.isBetween(swapInterval ? to : from, swapInterval ? from : to);\n };\n\n isInSelectedRange = (day: Dayjs): boolean => {\n const value = this.state.value as IDayjsInterval;\n\n if (!this.state.value || this.isRelativeValueSelected() || !value.from || !value.to) {\n return false;\n }\n\n const { from, to } = value;\n\n return this.isDaySelected(day) || day.isBetween(from, to);\n };\n\n shouldPreventHover = (day: Dayjs): boolean => {\n return !!this.state.mouseOverDay;\n };\n\n handleMouseEnterDay = (day: Dayjs): void => {\n const value = this.state.value as IDayjsInterval;\n\n if (value?.from && !value.to) {\n this.setState({\n mouseOverDay: day\n });\n }\n };\n\n handleMouseLeaveDay = (day: Dayjs): void => {\n this.setState({\n mouseOverDay: null\n });\n };\n\n renderDay = (args: IRenderDayArgs): React.ReactElement => {\n const value = this.state.value as IDayjsInterval;\n\n const { from, to } = value ?? {};\n const swapInterval = !to && this.state.mouseOverDay && from?.isAfter(this.state.mouseOverDay);\n const isFirst = isSameDay(args.day, from);\n const isLast = isSameDay(args.day, to) || isSameDay(args.day, this.state.mouseOverDay);\n\n return ;\n };\n\n handleFirstPreviewChange = (day: Dayjs): void => {\n this.setState({\n previewDay: day\n });\n };\n\n handleSecondPreviewChange = (day: Dayjs): void => {\n this.setState({\n previewDay: day.subtract(1, \"month\")\n });\n };\n\n handleOk = (): void => {\n if (!this.state.value) {\n this.props.onChange(null);\n\n return;\n }\n\n // todo how to propagate selected time when relative value is used?\n // should the time even be propagated or is relativeValue supposed to be without time?\n if (this.isRelativeValueSelected()) {\n this.props.onChange(this.state.value as PredefinedFilter);\n\n return;\n }\n\n const value = this.state.value as IDayjsInterval;\n let { from, to } = value;\n\n if (from.isAfter(to)) {\n from = to;\n to = value.from;\n }\n\n\n if (this.state.firstTime) {\n from = from.hour(this.state.firstTime.hour());\n from = from.minute(this.state.firstTime.minute());\n } else {\n from = from.endOf(\"day\");\n }\n\n if (this.state.secondTime) {\n to = to.hour(this.state.secondTime.hour());\n to = to.minute(this.state.secondTime.minute());\n } else {\n to = to.endOf(\"day\");\n }\n\n this.props.onChange(dayjsIntervalToDateInterval({\n from,\n to\n }));\n };\n\n handleCancel = (): void => {\n this.props.onChange(this.props.value);\n };\n\n handleRelativeValueChange = (value: PredefinedFilter): void => {\n this.setState({\n value\n });\n };\n\n renderRelativeValues = (): React.ReactElement => {\n if (!this.props.showRelativeValues) {\n return null;\n }\n\n return (\n \n );\n };\n\n\n render = (): React.ReactElement => {\n const value = this.state.value as IDayjsInterval;\n\n const disabledOk = this.state.value && !this.isRelativeValueSelected() && (!value.from || !value.to);\n\n return (\n \n {this.renderRelativeValues()}\n \n \n \n );\n };\n}","import DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport React from \"react\";\nimport { DateIcon } from \"../../icon\";\nimport { BasicInputSizes, IconSize } from \"../../../enums\";\nimport {\n formatDateInterval,\n formatDateVariants,\n IDayInterval,\n isSameInterval,\n isValidDateInterval,\n longDateFormat,\n parseDateInterval\n} from \"./utils\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport { getSharedInputProps, IInputProps, InputWithErrorAndTooltip } from \"../input\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { IPickerProps } from \"./DatePicker\";\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport DatePickerBase from \"./DatePickerBase\";\nimport { DateRangePickerPopup, IDateRangePickerPopupProps } from \"./popup/DateRangePickerPopup\";\nimport { isInterval, PredefinedFilter } from \"../../conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { capitalize } from \"@utils/string\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { TDateRangePickerValue } from \"./popup/Calendar.utils\";\n\n\nexport const DateRangeInput = withFormatter({\n parser: (value) => parseDateInterval(value),\n formatter: formatDateInterval,\n isValid: isValidDateInterval\n}, InputWithErrorAndTooltip);\n\ninterface IProps extends IPickerProps, WithTranslation {\n showRelativeValues?: boolean;\n}\n\nclass DateRangePicker extends React.Component {\n static defaultProps = {\n width: BasicInputSizes.L\n };\n\n get format(): string {\n const format = DateType.defaultDateFormat ?? this.props.format;\n\n return longDateFormat(getDateFormat(format));\n }\n\n parser = (value: string): IDayInterval => {\n const interval = parseDateInterval(value, formatDateVariants(this.format));\n\n return {\n from: interval.from,\n to: getUtcDayjs(interval.to).endOf(\"day\").toDate()\n };\n };\n\n get pickerPopup(): React.ComponentType {\n return DateRangePickerPopup;\n }\n\n get icon(): React.ReactElement {\n return ;\n }\n\n get placeholder(): string {\n // TODO should we localize placeholder? How?\n return [this.format, this.format].join(` ${DASH_CHARACTER} `).toLowerCase();\n }\n\n formatter = (value: TDateRangePickerValue): string => {\n if (!value) {\n return \"\";\n }\n\n if (isInterval(value)) {\n return formatDateInterval(value, this.format);\n }\n\n return capitalize(this.props.t(`Components:ValueHelper.${value}`));\n };\n\n isSame = (val1: TDateRangePickerValue, val2: TDateRangePickerValue) => {\n const val1IsInterval = isInterval(val1);\n const val2IsInterval = isInterval(val2);\n\n if (val1IsInterval !== val2IsInterval) {\n return false;\n }\n\n if (val1IsInterval && val2IsInterval) {\n return isSameInterval(val1, val2);\n }\n\n return val1 === val2;\n };\n\n isValid = (val: TDateRangePickerValue): boolean => {\n if (isInterval(val)) {\n return isValidDateInterval(val);\n }\n\n return Object.values(PredefinedFilter).includes(val);\n };\n\n getPopupProps = memoizeOne((): Partial => {\n return {\n value: this.props.value,\n showRelativeValues: this.props.showRelativeValues,\n minDate: this.props.minDate,\n maxDate: this.props.maxDate\n };\n }, () => [this.props.value, this.props.showRelativeValues, this.props.minDate, this.props.maxDate]);\n\n getInputProps = memoizeOne(() => {\n return {\n formatter: this.formatter,\n parser: this.parser,\n isSame: this.isSame,\n isValid: this.isValid\n };\n }, () => [this.formatter, this.parser, this.isSame, this.isValid]);\n\n render = () => {\n return (\n \n );\n };\n}\n\nconst DateRangePickerExtended = withTranslation([\"Components\"])(DateRangePicker);\n\nexport { DateRangePickerExtended as DateRangePicker, DateRangePicker as DateRangePickerClean };","import React from \"react\";\nimport { Dayjs } from \"dayjs\";\nimport { DatePickerView } from \"../../../../enums\";\nimport { getValidDayjsDate, isMaxDay, isMinDay } from \"../utils/DateUtils\";\nimport { DatePickerPopup } from \"./DatePickerPopup\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport DateType, { getUtcDayjs } from \"../../../../types/Date\";\nimport { IDateSingleValuePopupSharedProps } from \"./Calendar.utils\";\n\ninterface IState {\n previewValue: Dayjs;\n view: DatePickerView;\n}\n\ninterface IProps extends IDateSingleValuePopupSharedProps, WithTranslation {\n previewValue?: Date;\n}\n\nclass DateTimePickerPopup extends React.PureComponent {\n static defaultProps: Partial = {\n disableAutoFocus: true\n };\n\n _calendarRef = React.createRef();\n\n constructor(props: IProps) {\n super(props);\n\n const isSpecialDay = isMinDay(props.value) || isMaxDay(props.value);\n\n this.state = {\n previewValue: getValidDayjsDate(isSpecialDay ? null : this.props.value ?? this.props.previewValue),\n view: DatePickerView.Days\n };\n }\n\n componentDidMount(): void {\n if (!this.props.disableAutoFocus) {\n setTimeout(() => this.focusOnCalendar(), 0);\n }\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.props.value !== prevProps.value && DateType.isValid(this.props.value)) {\n this.setState({ previewValue: getValidDayjsDate(this.props.value) });\n }\n }\n\n focusOnCalendar = () => {\n // focus on day only after the popup opens (not when switching between date/time using tabs)\n (this._calendarRef?.current as any)?.focus();\n };\n\n handleViewChange = (view: DatePickerView) => {\n this.setState({\n view: view\n }, this.focusOnCalendar);\n };\n\n handleDateChange = (value: Date) => {\n this.setState(() => {\n return {\n previewValue: !value ? null : getUtcDayjs(value)\n };\n });\n };\n\n handleOk = () => {\n this.props.onChange(!this.state.previewValue ? null : this.state.previewValue.toDate());\n };\n\n handleCancel = () => {\n this.props.onChange(this.props.value);\n };\n\n render = () => {\n return (\n \n );\n };\n}\n\nconst DateTimePickerPopupWithTranslation = withTranslation(\"Components\")(DateTimePickerPopup);\n\nexport { DateTimePickerPopupWithTranslation as DateTimePickerPopup };","import React from \"react\";\nimport { DateTimeIcon } from \"../../icon\";\nimport { DateTimePickerPopup } from \"./popup/DateTimePickerPopup\";\nimport { DatePickerClean } from \"./DatePicker\";\nimport DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { BasicInputSizes, IconSize } from \"../../../enums\";\nimport { longDateFormat } from \"./utils\";\nimport { withTranslation } from \"react-i18next\";\n\nclass DateTimePicker extends DatePickerClean {\n static defaultProps = {\n width: BasicInputSizes.M\n };\n\n get format() {\n const format = `${getDateFormat(DateType.defaultDateFormat)}, ${getDateFormat(DateType.defaultTimeFormat)}`;\n\n return longDateFormat(format);\n }\n\n get pickerPopup() {\n return DateTimePickerPopup;\n }\n\n get icon() {\n return ;\n }\n\n isSame = (date1: Date, date2: Date): boolean => {\n if (date1 instanceof Date) {\n return getUtcDayjs(date1).isSame(date2, \"minutes\");\n }\n\n return date1 === date2;\n };\n}\n\nconst DateTimePickerExtended = withTranslation([\"Components\"])(DateTimePicker);\nexport { DateTimePickerExtended as DateTimePicker };","import React from \"react\";\nimport { DateIcon } from \"../../icon\";\nimport { IconSize } from \"../../../enums\";\nimport { DatePickerClean } from \"./DatePicker\";\nimport MonthYearPopup from \"./popup/MonthYearPopup\";\nimport { DateFormat, getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { longDateFormat } from \"./utils\";\nimport { withTranslation } from \"react-i18next\";\nimport { capitalize } from \"@utils/string\";\n\nclass MonthYearPicker extends DatePickerClean {\n static defaultProps = {\n format: DateFormat.monthAndYear\n };\n\n get pickerPopup() {\n return MonthYearPopup;\n }\n\n get icon() {\n return ;\n }\n\n get format() {\n const format = this.props.format;\n\n return longDateFormat(getDateFormat(format));\n }\n\n formatter(value: Date): string {\n const formattedValue = super.formatter(value);\n\n // first letter of month should be capitalized\n return formattedValue ? capitalize(formattedValue) : formattedValue;\n }\n\n isSame = (date1: Date, date2: Date): boolean => {\n if (date1 instanceof Date) {\n return getUtcDayjs(date1).isSame(date2, \"month\");\n }\n\n return date1 === date2;\n };\n}\n\nconst MonthYearPickerExtended = withTranslation([\"Components\"])(MonthYearPicker);\n\nexport { MonthYearPickerExtended as MonthYearPicker };","import styled, { css } from \"styled-components/macro\";\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n LocalStackOrder,\n T_HEADER_small,\n T_PLAIN_big,\n T_PLAIN_small\n} from \"../../../../global.style\";\nimport { StyledButton } from \"../../../button\";\nimport { COLOR_TRANSITION_TIME } from \"../../../../constants\";\nimport { StyledDay } from \"./Day.styles\";\nimport { transparentize } from \"polished\";\nimport { TextAlign } from \"../../../../enums\";\nimport { themes } from \"../../../../theme\";\nimport { TimePicker } from \"../TimePicker\";\nimport { StyledHtmlInput } from \"../../input/Input.styles\";\n\nexport const StyledDatePickerPopup = styled.div<{ embedded?: boolean; _height?: string; }>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 291px;\n height: ${props => props._height ? props._height : \"fit-content\"};\n background: ${props => props.embedded ? \"transparent\" : props.theme.C_BG_dialogue};\n color: ${props => props.theme.C_TEXT_dialogue};\n padding: 0 19px 18px;\n\n & *::selection {\n background-color: ${props => transparentize(0.7, props.theme.C_TEXT_dialogue)};\n }\n`;\n\nexport const StyledCalendar = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nexport const Header = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n`;\n\nexport const HeaderPart = styled.div<{ alignment: TextAlign; aboveContent?: boolean; }>`\n display: flex;\n\n position: ${props => props.alignment === TextAlign.Center ? \"relative\" : \"absolute\"};\n left: ${props => props.alignment === TextAlign.Left ? \"-9px\" : null};\n right: ${props => props.alignment === TextAlign.Right ? \"-9px\" : null};\n top: 11px;\n z-index: ${props => !props.aboveContent ? null : LocalStackOrder.AboveContent};\n\n ${props => props.alignment === TextAlign.Center && css`\n justify-content: center;\n width: 100%;\n height: 100%;\n top: 0;\n `};\n`;\n\nexport const HeaderVerticalSplit = styled.span`\n opacity: 0.5;\n width: 1px;\n height: 17px;\n background-color: ${props => themes.light.C_TEXT_dialogue};\n position: absolute;\n top: 50%;\n left: 50%;\n // add 0.5px to get rid of weird subpixel blur artefact\n transform: translate(calc(-50% - 0.5px), -50%);\n`;\n\nexport const DayLabels = styled.div<{ hasTopMargin?: boolean; }>`\n display: flex;\n user-select: none;\n margin-top: ${props => props.hasTopMargin ? \"13px\" : null};\n`;\n\nexport const WeekDayLabel = styled(StyledDay)`\n opacity: 0.5;\n cursor: default;\n ${T_PLAIN_small};\n`;\n\n\nexport const Weeks = styled.div`\n position: relative;\n margin-top: 1px;\n margin-bottom: 12px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n`;\n\nexport const PickersWrapper = styled.div<{ embedded?: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 42px;\n margin-top: ${props => props.embedded ? \"23px\" : \"30px\"};\n`;\n\nexport const HeaderTextWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst HeaderTextLabelBaseStyles = css`\n position: relative;\n top: 1px;\n ${T_HEADER_small};\n`;\n\nexport const HeaderTextLabel = styled.div`\n ${HeaderTextLabelBaseStyles};\n margin-right: 5px;\n`;\n\nexport const HeaderTextButton = styled.button<{ alignment?: TextAlign }>`\n all: unset;\n ${HeaderTextLabelBaseStyles};\n\n ${getFocusBorderElement({ offset: 3, keyboardOnly: true, isLight: true })};\n\n &:enabled:hover {\n color: ${props => themes.light.C_BTN_4L_emph_text_hover};\n transition: color ${COLOR_TRANSITION_TIME}ms ease-in-out;\n cursor: pointer;\n }\n\n &:disabled {\n opacity: ${props => themes.light.disabled_opacity};\n }\n\n ${props => props.alignment && css<{ alignment?: TextAlign }>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: ${props => props.alignment === TextAlign.Left ? \"translate(calc(-100% - 6px), -50%)\" : \"translate(6px, -50%)\"};\n `}\n`;\n\nconst GridSharedStyles = css`\n position: relative;\n display: grid;\n grid-gap: 2px;\n justify-content: center;\n align-items: center;\n justify-items: center;\n`;\n\nexport const MonthsGrid = styled.div`\n ${GridSharedStyles};\n grid-template-columns: repeat(3, 84px);\n grid-template-rows: repeat(4, 35px);\n margin-top: 46px;\n margin-bottom: 82px;\n`;\n\nexport const YearsGrid = styled.div`\n ${GridSharedStyles};\n grid-template-columns: repeat(3, 84px);\n grid-template-rows: repeat(7, 35px);\n grid-gap: 2px;\n margin-top: 17px;\n`;\n\nexport const DateLabelButton = styled.button<{ $isSelected?: boolean; $isDisabled?: boolean; }>`\n all: unset;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: fit-content;\n padding: 5px;\n border-radius: ${props => props.theme.borderRadius};\n background-color: ${props => props.$isSelected ? themes.light.C_BTN_4L_emph_bg_hover : \"transparent\"};\n\n &:hover, &:focus {\n background-color: ${props => props.$isSelected ? themes.light.C_BTN_4L_emph_bg_hover : transparentize(0.7, themes.light.C_BTN_hover_dark)};\n outline: none;\n }\n\n &:active {\n background-color: ${themes.light.C_BTN_4L_emph_bg_hover};\n }\n\n & > span {\n position: relative;\n top: 1px;\n }\n\n ${T_PLAIN_big};\n\n ${getFocusBorderElement({ offset: 0, keyboardOnly: true, isLight: true })};\n ${props => getDisabledStyle(props.$isDisabled)}\n`;\n\nexport const YearMonthLabelText = styled.span`\n cursor: default;\n ${T_HEADER_small};\n`;\n\nexport const SmallLabel = styled.span`\n display: flex;\n justify-content: center;\n cursor: default;\n user-select: none;\n opacity: 0.5;\n ${T_PLAIN_big};\n`;\n\nexport const StyledBottomButtons = styled.div<{ embedded?: boolean }>`\n display: flex;\n justify-content: flex-end;\n\n position: relative;\n margin-top: 19px;\n\n & ${StyledButton}:not(:first-child) {\n margin-left: 10px;\n }\n`;\n\nexport const SpecialValue = styled(DateLabelButton)`\n position: absolute;\n right: 0;\n bottom: 0;\n ${T_PLAIN_small};\n`;\n\n// todo maybe this should be behind some props directly on Input/StyledInput for inputs inside select/calendar colored components\nexport const TimePickerCalendarStyled = styled(TimePicker)`\n background-color: ${transparentize(0.8, themes.light.C_TEXT_dialogue)};\n border: 1px solid ${props => transparentize(0.7, props.theme.C_FIELD_line)};\n\n ${StyledHtmlInput} {\n color: ${themes.light.C_TEXT_dialogue};\n background-color: transparent;\n caret-color: ${themes.light.C_TEXT_dialogue};\n }\n;\n`;\n\nexport const StyledRelativeDateValues = styled.div<{ embedded?: boolean; }>`\n display: flex;\n flex-direction: column;\n gap: 5px;\n flex: 0 0 auto;\n background: ${props => props.embedded ? \"transparent\" : themes.light.C_BG_dialogue};\n color: ${themes.light.C_TEXT_dialogue};\n padding: 12px 19px 12px 19px;\n box-shadow: 1px 0 0 ${props => transparentize(0.5, props.theme.C_ACT_hover_without_opacity)};\n\n & ${DateLabelButton} {\n ${T_PLAIN_small};\n }\n`;","import { handleRefHandlers } from \"@utils/general\";\nimport { capitalize } from \"@utils/string\";\nimport { Dayjs } from \"dayjs\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { INFINITY } from \"../../../../constants\";\nimport { DatePickerView, TextAlign } from \"../../../../enums\";\nimport { EmptyObject } from \"../../../../global.types\";\nimport TestIds from \"../../../../testIds\";\nimport DateType, { DATE_MAX, DATE_MIN, DateFormat, getUtcDate, getUtcDayjs } from \"../../../../types/Date\";\nimport memoize from \"../../../../utils/memoize\";\nimport FocusManager, {\n FOCUSABLE_DISABLED_ITEM_ATTR,\n FocusDirection,\n IFocusableItemProps,\n TFocusManagerFocus\n} from \"../../../focusManager/FocusManager\";\nimport { IInputOnChangeEvent } from \"../../input\";\nimport { getWeekArray, getWeekdays, isCurrentDay, isOutsideMonth, isSameDay } from \"../utils\";\nimport {\n DateLabelButton,\n DayLabels,\n Header,\n HeaderPart,\n HeaderTextButton,\n HeaderTextLabel,\n HeaderTextWrapper,\n HeaderVerticalSplit,\n MonthsGrid,\n SpecialValue,\n StyledCalendar,\n StyledDatePickerPopup,\n TimePickerCalendarStyled,\n WeekDayLabel,\n Weeks,\n YearsGrid\n} from \"./Calendar.styles\";\nimport {\n BottomButtons,\n CaretIconButton,\n DateRangeSpecialValue,\n IDatePopupSharedProps,\n MONTH_COLS,\n MONTH_ROWS,\n NUM_WEEKS,\n setNextMonth,\n setNextYear,\n setPreviousMonth,\n setPreviousYear,\n TDisabledDateUnit,\n WEEK_LENGTH,\n YEAR_COLS,\n YEAR_ROWS\n} from \"./Calendar.utils\";\nimport { Day } from \"./Day\";\nimport { StyledDay } from \"./Day.styles\";\n\ninterface IProps extends Pick {\n // date that changes what is currently shown in calendar.\n previewDay: Dayjs;\n // actually selected value - used for TimePicker, and selected days\n // DATE_MIN/DATE_MAX can be used as special values with DateRangeSpecialValue.WithoutEnd/WithoutStart meaning\n value: Dayjs;\n view: DatePickerView;\n // This view triggers onChange when one of its value is selected,\n // other views redirects to this view when their value is selected.\n mainView: DatePickerView;\n getNextView?: (currentView: DatePickerView) => DatePickerView;\n // called on value (not previewDay) change\n // isTimeChange is set to true if the change is triggered by TimePicker\n onChange: (date: Dayjs, isTimeChange: boolean) => void;\n disableViewChange?: boolean;\n showSpecialValue?: DateRangeSpecialValue;\n renderDay?: (args: IRenderDayArgs) => React.ReactElement;\n renderBottom?: () => React.ReactElement;\n onPreviewChange?: (day: Dayjs) => void;\n onViewChange?: (view: DatePickerView) => void;\n hideBackArrow?: boolean;\n hideNextArrow?: boolean;\n showTime?: boolean;\n showConfirmButtons?: boolean;\n disabledOk?: boolean;\n onOk?: () => void;\n onCancel?: () => void;\n embedded?: boolean;\n // otherwise doesn't work for typescript, because of withTranslation HOC\n ref?: React.RefObject;\n disableAutoFocus?: boolean;\n}\n\nexport interface IRenderDayArgs {\n day: Dayjs;\n index: number;\n key: number;\n onClick: (day: Dayjs) => void;\n isDisabled: boolean;\n isSelected: boolean;\n isCurrent: boolean;\n isOutsideMonth: boolean;\n}\n\ninterface IExtendedProps extends IProps, WithTranslation {\n}\n\n// cannot be pure component, because it needs to be re-rendered to call renderDay on parent on selected day change\nclass Calendar extends React.Component {\n _selectedDateIndex: number;\n _previewDateIndex: number;\n _preventNextAutoFocus: boolean;\n _weeksRef = React.createRef();\n\n _focusManagerFocus: TFocusManagerFocus;\n\n static defaultProps: Partial = {\n // Dayjs doesn't parse years smaller than 1000 properly, use 1000 as min date instead of DATE_MIN const\n // https://github.com/iamkun/dayjs/issues/1237\n minDate: getUtcDate(\"0100-01-01\"),\n // subtract 1 day so that we can use DATE_MAX as constant for WithoutEnd\n maxDate: getUtcDayjs(DATE_MAX).subtract(1, \"day\").toDate()\n };\n\n componentDidMount(): void {\n if (!this.props.disableAutoFocus) {\n setTimeout(() => this.focus(), 0);\n }\n }\n\n componentDidUpdate(prevProps: IExtendedProps, prevState: EmptyObject): void {\n if (!this._preventNextAutoFocus && prevProps.view !== this.props.view) {\n this.focus();\n }\n\n if (this._preventNextAutoFocus) {\n this._preventNextAutoFocus = false;\n }\n }\n\n get previewDay(): Dayjs {\n return this.props.previewDay ?? getUtcDayjs();\n }\n\n isDateSelected = (date: Dayjs): boolean => {\n if (!this.props.value) {\n return false;\n }\n\n return DateType.isSameDay(this.props.value, date);\n };\n\n isMonthSelected = (date: Dayjs): boolean => {\n if (!this.props.value) {\n return false;\n }\n\n return getUtcDayjs(this.props.value).isSame(date, \"month\");\n };\n\n isYearSelected = (date: Dayjs): boolean => {\n if (!this.props.value) {\n return false;\n }\n\n return getUtcDayjs(this.props.value).isSame(date, \"year\");\n };\n\n focus = () => {\n this.focusOnInitialDate();\n };\n\n isDisabledDate = (date: Dayjs, unit: TDisabledDateUnit): boolean => {\n if (!this.props.minDate && !this.props.maxDate && !this.props.isDateDisabled) {\n return false;\n }\n\n let isDisabled = false;\n\n if (this.props.minDate) {\n isDisabled = isDisabled || date.isBefore(this.props.minDate, unit);\n }\n\n if (this.props.maxDate) {\n isDisabled = isDisabled || date.isAfter(this.props.maxDate, unit);\n }\n\n if (this.props.isDateDisabled) {\n isDisabled = isDisabled || this.props.isDateDisabled(date.toDate(), unit);\n }\n\n return isDisabled;\n };\n\n updateDateWithSetTime = (day: Dayjs) => {\n if (this.props.showTime) {\n return day.set(\"hour\", this.props.value.get(\"hour\")).set(\"minute\", this.props.value.get(\"minute\"));\n }\n\n return day;\n };\n\n handleDayClick = (day: Dayjs): void => {\n this.props.onChange(this.updateDateWithSetTime(day), false);\n };\n\n renderWeeks = (weeks: Dayjs[][], itemProps: IFocusableItemProps) => {\n this._selectedDateIndex = null;\n this._previewDateIndex = null;\n\n return weeks.map((week: Dayjs[], i: number) => {\n return (\n \n {week.map((day: Dayjs, j: number) => {\n if (!day) {\n return (\n \n {/*fake day just so that FocusManager grid works correctly*/}\n
\n \n );\n }\n\n const dayIndex = i * WEEK_LENGTH + j;\n const dayArgs: IRenderDayArgs = {\n day,\n index: j,\n key: j,\n onClick: this.handleDayClick,\n isDisabled: this.isDisabledDate(day, \"day\"),\n isCurrent: isCurrentDay(day),\n isSelected: this.isDateSelected(day),\n isOutsideMonth: isOutsideMonth(day, this.props.previewDay)\n };\n let renderedDay = this.props.renderDay ? this.props.renderDay(dayArgs) :\n ;\n\n // enrich renderedDay with FocusManager itemProps\n renderedDay = React.cloneElement(renderedDay, { passProps: itemProps });\n\n if (!this._selectedDateIndex && renderedDay.props.isSelected) {\n this._selectedDateIndex = dayIndex;\n }\n\n if (!this._previewDateIndex && isSameDay(renderedDay.props.day, this.props.previewDay)) {\n this._previewDateIndex = dayIndex;\n }\n\n return renderedDay;\n })}\n \n );\n });\n };\n\n handleSpecialNullValueClick = (): void => {\n const value = this.props.showSpecialValue === DateRangeSpecialValue.WithoutEnd ? DATE_MAX : DATE_MIN;\n\n this.props.onChange(this.updateDateWithSetTime(getUtcDayjs(value)), false);\n };\n\n renderSpecialValue = (style: React.CSSProperties = {}): React.ReactElement => {\n if (!this.props.showSpecialValue) {\n return null;\n }\n\n const isSelected = DateType.isSameDay(this.props.showSpecialValue === DateRangeSpecialValue.WithoutEnd ? DATE_MAX : DATE_MIN, this.props.value);\n\n return (\n \n {INFINITY} {this.props.t(`Common:Time.${this.props.showSpecialValue === DateRangeSpecialValue.WithoutEnd ? \"WithoutEnd\" : \"WithoutStart\"}`)}\n \n );\n };\n\n getMonthLabel = (date: Dayjs): string => {\n return capitalize(DateType.format(date, DateFormat.month));\n };\n\n getYearLabel = (date: Dayjs): string => {\n return DateType.format(date, DateFormat.year);\n };\n\n setMonthView = (): void => {\n !this.props.disableViewChange && this.props.onViewChange(DatePickerView.Months);\n };\n\n setYearView = (): void => {\n !this.props.disableViewChange && this.props.onViewChange(DatePickerView.Years);\n };\n\n handleBackArrowClick = (): void => {\n switch (this.props.view) {\n case DatePickerView.Days:\n setPreviousMonth(this.previewDay, this.props.onPreviewChange);\n break;\n case DatePickerView.Months:\n setPreviousYear(this.previewDay, this.props.onPreviewChange);\n break;\n case DatePickerView.Years:\n setPreviousMonth(this.previewDay, this.props.onPreviewChange);\n break;\n }\n };\n\n handleNextArrowClick = (): void => {\n switch (this.props.view) {\n case DatePickerView.Days:\n setNextMonth(this.previewDay, this.props.onPreviewChange);\n break;\n case DatePickerView.Months:\n setNextYear(this.previewDay, this.props.onPreviewChange);\n break;\n case DatePickerView.Years:\n setNextMonth(this.previewDay, this.props.onPreviewChange);\n break;\n }\n };\n\n renderHeader = (content: React.ReactNode): React.ReactElement => {\n return (\n
\n \n {!this.props.hideBackArrow &&\n \n }\n \n \n {content}\n \n \n {!this.props.hideNextArrow &&\n \n }\n \n
\n );\n };\n\n handleTimePickerChange = (event: IInputOnChangeEvent) => {\n this.props.onChange?.(getUtcDayjs(event.value), true);\n };\n\n renderHeaderButton = (label: string, testId: string, alignment: TextAlign, onClick: () => void): React.ReactElement => {\n if (this.props.disableViewChange) {\n return (\n \n {label}\n \n );\n }\n\n return (\n \n {label}\n \n );\n };\n\n renderDaysView = (): React.ReactElement => {\n const previewDay = this.previewDay;\n const weeks = getWeekArray(previewDay);\n\n while (weeks.length < NUM_WEEKS) {\n // insert 7 null for week length,\n // we want to keep the grid with correct number of days for FocusManager to work correctly\n weeks.push([null, null, null, null, null, null, null]);\n }\n\n // const header = DateType.format(previewDay, DateFormat.monthAndYear);\n const month = this.getMonthLabel(previewDay);\n const year = this.getYearLabel(previewDay);\n const withSplitter = !this.props.disableViewChange;\n\n return (\n <>\n {this.renderHeader(\n \n {this.renderHeaderButton(month, TestIds.DatePickerMonthLabel, TextAlign.Left, this.setMonthView)}\n {withSplitter &&\n \n }\n {this.renderHeaderButton(year, TestIds.DatePickerYearLabel, TextAlign.Right, this.setYearView)}\n \n )}\n\n \n {getWeekdays().map((weekDay: string) => {\n return (\n {weekDay}\n );\n })}\n \n \n {({ itemProps, wrapperProps, focus }) => {\n this._focusManagerFocus = focus;\n\n return (\n {\n this.handleWeekRef(ref, wrapperProps.ref);\n }}>\n {this.renderWeeks(weeks, itemProps)}\n {this.renderSpecialValue()}\n \n );\n }}\n \n {this.props.showTime &&\n \n }\n \n );\n };\n\n getHandleMonthClick = memoize((date: Dayjs) => {\n return () => {\n if (this.props.mainView === DatePickerView.Months) {\n this.props.onChange(this.updateDateWithSetTime(date), false);\n } else {\n this.props.onPreviewChange(this.previewDay.month(date.month()));\n this.props.onViewChange(this.props.mainView);\n }\n };\n }, (date) => date.toString());\n\n renderMonth = (date: Dayjs, index: number, itemProps: IFocusableItemProps): React.ReactNode => {\n const month = this.getMonthLabel(date);\n const isSelected = this.isMonthSelected(date);\n\n if (!this._previewDateIndex && isSelected) {\n this._previewDateIndex = index;\n }\n\n return (\n \n \n {month}\n \n \n );\n };\n\n renderMonthsView = (): React.ReactElement => {\n this._selectedDateIndex = null;\n this._previewDateIndex = null;\n\n const year = DateType.format(this.previewDay, DateFormat.year);\n const startOfYear = getUtcDayjs(this.previewDay).startOf(\"year\");\n const months: React.ReactNode[] = [];\n\n return (\n <>\n {this.renderHeader((\n \n {year}\n \n ))}\n \n {({ itemProps, wrapperProps, focus }) => {\n this._focusManagerFocus = focus;\n\n for (let i = 0; i < MONTH_COLS; i++) {\n for (let j = 0; j < MONTH_ROWS; j++) {\n const index = i * MONTH_ROWS + j;\n const month = startOfYear.add(index, \"month\");\n\n months.push(this.renderMonth(month, index, itemProps));\n }\n }\n\n return (\n }\n data-testid={TestIds.MonthsGrid}>\n {months}\n {this.renderSpecialValue({\n right: \"-9px\",\n bottom: \"-30px\"\n })}\n \n );\n }}\n \n \n );\n };\n\n getHandleYearClick = memoize((date: Dayjs) => {\n return () => {\n this.props.onPreviewChange(this.previewDay.year(date.year()));\n this.props.onViewChange(this.props.mainView);\n };\n }, (date) => date.toString());\n\n renderYear = (date: Dayjs, index: number, itemProps: IFocusableItemProps): React.ReactNode => {\n const year = this.getYearLabel(date);\n const isSelected = this.isYearSelected(date);\n\n if (!this._previewDateIndex && isSelected) {\n this._previewDateIndex = index;\n }\n\n return (\n \n \n {year}\n \n \n );\n };\n\n\n renderYearsView = (): React.ReactElement => {\n this._selectedDateIndex = null;\n this._previewDateIndex = null;\n\n const month = this.getMonthLabel(this.previewDay);\n const startYear = getUtcDayjs(this.previewDay).year(this.previewDay.year() - 7);\n const years: React.ReactNode[] = [];\n\n return (\n <>\n {this.renderHeader((\n \n {month}\n \n ))}\n \n {({ itemProps, wrapperProps, focus }) => {\n this._focusManagerFocus = focus;\n\n for (let i = 0; i < YEAR_COLS; i++) {\n for (let j = 0; j < YEAR_ROWS; j++) {\n const index = i * YEAR_ROWS + j;\n const year = startYear.add(index, \"year\");\n\n years.push(this.renderYear(year, index, itemProps));\n }\n }\n\n return (\n }\n data-testid={TestIds.YearsGrid}>\n {years}\n \n );\n }}\n \n \n );\n };\n\n handleWeekRef = (ref: HTMLDivElement, wrapperRef: React.RefObject) => {\n handleRefHandlers(ref, wrapperRef, this._weeksRef);\n };\n\n handleDayFocusChange = (cleanIndex: number, index: number): boolean => {\n let isChanging = false;\n\n if (index >= WEEK_LENGTH * NUM_WEEKS) {\n setNextMonth(this.previewDay, this.props.onPreviewChange);\n isChanging = true;\n } else if (index < 0) {\n setPreviousMonth(this.previewDay, this.props.onPreviewChange);\n isChanging = true;\n }\n\n if (isChanging) {\n this._preventNextAutoFocus = true;\n }\n\n return isChanging;\n };\n\n focusOnInitialDate = () => {\n this._focusManagerFocus(this._selectedDateIndex || this._previewDateIndex || 0);\n };\n\n render = () => {\n let view;\n\n switch (this.props.view) {\n case DatePickerView.Days:\n view = this.renderDaysView();\n break;\n case DatePickerView.Months:\n view = this.renderMonthsView();\n break;\n case DatePickerView.Years:\n view = this.renderYearsView();\n break;\n }\n\n return (\n \n \n {view}\n {this.props.showConfirmButtons &&\n \n }\n {this.props.renderBottom ? this.props.renderBottom() : null}\n \n \n );\n };\n}\n\nconst CalendarWithTranslation = withTranslation([\"Common\", \"Calendar\"], { withRef: true })(Calendar);\nexport { CalendarWithTranslation as Calendar };","import { Dayjs } from \"dayjs\";\nimport { getNextMonth, getNextYear, getPreviousMonth, getPreviousYear, IDayInterval } from \"../utils\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { StyledBottomButtons } from \"./Calendar.styles\";\nimport { Button, IconButton, IIconButtonProps } from \"../../../button\";\nimport { CaretIcon } from \"../../../icon\";\nimport { PredefinedFilter } from \"../../../conditionalFilterDialog/ConditionalFilterDialog.utils\";\n\nexport enum DateRangeSpecialValue {\n WithoutStart = \"WithoutStart\",\n WithoutEnd = \"WithoutEnd\"\n}\n\nexport const WEEK_LENGTH = 7;\nexport const NUM_WEEKS = 6;\nexport const MIN_YEAR = 100;\nexport const MAX_YEAR = 10000;\nexport const MONTH_COLS = 3;\nexport const MONTH_ROWS = 4;\nexport const YEAR_COLS = 3;\nexport const YEAR_ROWS = 7;\n\nexport type TDisabledDateUnit = \"day\" | \"month\" | \"year\";\n\nexport interface IDatePopupSharedProps {\n // minimum date allowed to be picked\n minDate?: Date;\n // maxDate date allowed to be picked\n maxDate?: Date;\n // custom callback to disable arbitrary values in the popup\n isDateDisabled?: (date: Date, unit: TDisabledDateUnit) => boolean;\n showSpecialValue?: DateRangeSpecialValue;\n embedded?: boolean;\n disableAutoFocus?: boolean;\n}\n\nexport interface IDateSingleValuePopupSharedProps extends IDatePopupSharedProps {\n value?: Date;\n onChange?: (day: Date) => void;\n}\n\nexport type TDateRangePickerValue = IDayInterval | PredefinedFilter;\n\n\nexport interface IDateRangeValuePopupSharedProps extends IDatePopupSharedProps {\n value?: TDateRangePickerValue;\n onChange?: (value: TDateRangePickerValue) => void;\n}\n\n\nexport const setNextMonth = (previewDay: Dayjs, onPreviewChange: (day: Dayjs) => void): void => {\n const nextMonth = getNextMonth(previewDay);\n\n if (nextMonth.year() <= MAX_YEAR) {\n onPreviewChange(nextMonth);\n }\n};\n\nexport const setPreviousMonth = (previewDay: Dayjs, onPreviewChange: (day: Dayjs) => void): void => {\n const previousMonth = getPreviousMonth(previewDay);\n\n if (previousMonth.year() >= MIN_YEAR) {\n onPreviewChange(previousMonth);\n }\n};\n\nexport const setNextYear = (previewDay: Dayjs, onPreviewChange: (day: Dayjs) => void): void => {\n const nextYear = getNextYear(previewDay);\n\n if (nextYear.year() <= MAX_YEAR) {\n onPreviewChange(nextYear);\n }\n};\n\nexport const setPreviousYear = (previewDay: Dayjs, onPreviewChange: (day: Dayjs) => void): void => {\n const previousYear = getPreviousYear(previewDay);\n\n if (previousYear.year() >= MIN_YEAR) {\n onPreviewChange(previousYear);\n }\n};\n\ninterface IBottomButtons {\n onOk: () => void;\n onCancel: () => void;\n embedded?: boolean;\n disabledOk?: boolean;\n style?: React.CSSProperties;\n}\n\nexport const BottomButtons: React.FunctionComponent = (\n { onCancel, onOk, disabledOk }: IBottomButtons\n) => {\n const { t } = useTranslation(\"Common\");\n\n return (\n \n \n \n \n );\n};\nexport type TCaretIconButtonArg = Pick\n\nexport function CaretIconButton({\n title,\n onClick,\n onMouseDown,\n onKeyDown,\n style,\n testid\n }: TCaretIconButtonArg): React.ReactElement {\n return (\n \n \n \n );\n}\n","import React from \"react\";\nimport { Dayjs } from \"dayjs\";\nimport { DatePickerView } from \"../../../../enums\";\nimport { Calendar } from \"./Calendar\";\nimport { getValidDayjsDate, isMaxDay, isMinDay, setTimeToDate } from \"../utils\";\nimport DateType, { getUtcDayjs } from \"../../../../types/Date\";\nimport memoizeOne from \"../../../../utils/memoizeOne\";\nimport { IDateSingleValuePopupSharedProps } from \"./Calendar.utils\";\n\ninterface IState {\n previewDay: Dayjs;\n view: DatePickerView;\n}\n\nexport interface IProps extends IDateSingleValuePopupSharedProps {\n defaultView?: DatePickerView;\n disableViewChange?: boolean;\n onViewChange?: (view: DatePickerView) => void;\n showTime?: boolean;\n showConfirmButtons?: boolean;\n onOk?: () => void;\n onCancel?: () => void;\n calendarRef?: React.Ref;\n}\n\nexport class DatePickerPopup extends React.PureComponent {\n static defaultProps: Partial = {\n disableAutoFocus: true\n };\n\n constructor(props: IProps) {\n super(props);\n\n const isSpecialDay = isMinDay(props.value) || isMaxDay(props.value);\n\n this.state = {\n previewDay: getValidDayjsDate(isSpecialDay ? null : this.props.value),\n view: this.props.defaultView ? this.props.defaultView : DatePickerView.Days\n };\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.props.value !== prevProps.value && DateType.isValid(this.props.value)) {\n let previewDay: Dayjs = this.state.previewDay;\n\n if (!this.props.value) {\n previewDay = null;\n } else if (!isMinDay(this.props.value) && !isMaxDay(this.props.value)) {\n previewDay = getValidDayjsDate(this.props.value);\n }\n\n this.setState({ previewDay });\n }\n }\n\n handleCalendarChange = (day: Dayjs, isTimeChange: boolean): void => {\n if (!this.props.onChange) {\n return null;\n }\n\n let value: Date;\n\n if (!day) {\n value = null;\n } else {\n if (this.props.showTime) {\n value = day.toDate();\n } else {\n value = setTimeToDate(day, getValidDayjsDate(this.props.value)).toDate();\n }\n }\n\n this.props.onChange(value);\n };\n\n handlePreviewChange = (day: Dayjs): void => {\n this.setState({\n previewDay: day\n });\n };\n\n handleViewChange = (view: DatePickerView): void => {\n this.setState({\n view: view\n });\n\n this.props.onViewChange?.(view);\n };\n\n getValue = memoizeOne(() => {\n return !this.props.value ? null : getUtcDayjs(this.props.value);\n }, () => [this.props.value]);\n\n render = (): React.ReactElement => {\n return (\n \n );\n };\n}","import styled, { css } from \"styled-components/macro\";\nimport { transparentize } from \"polished\";\nimport { getDisabledStyle, getFocusBorderElement, T_PLAIN_big } from \"../../../../global.style\";\nimport { IDaySettingsProps } from \"./Day\";\nimport { themes } from \"../../../../theme\";\n\nexport const DayLabel = styled.div`\n position: relative;\n // the label seems somehow not in center, even with line-heigth 1\n top: 1px;\n pointer-events: none;\n`;\n\nconst getBackgroundColor = (isInActiveRange: boolean, isInSelectedRange: boolean): string => {\n if (isInActiveRange) {\n return themes.light.C_ACT_hover;\n }\n\n if (isInSelectedRange) {\n return transparentize(0.6, themes.light.C_ACT_main);\n }\n\n return \"transparent\";\n};\n\nexport const StyledDay = styled.div`\n width: 36px;\n height: 34px;\n\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${props => getBackgroundColor(props.isInActiveRange, props.isInSelectedRange)};\n\n ${props => props.isFirst && !props.isLast && (props.isInActiveRange || props.isInSelectedRange) && css`\n ${props => props.isSelected && css`\n background: ${`linear-gradient(90deg, transparent 52%, ${getBackgroundColor(props.isInActiveRange, props.isInSelectedRange)} 52%)`};\n `};\n ${props => !props.isSelected && css`\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n `};\n `}\n ${props => props.isLast && !props.isFirst && (props.isInActiveRange || props.isInSelectedRange) && css`\n ${props => props.isSelected && css`\n background: ${`linear-gradient(90deg, ${getBackgroundColor(props.isInActiveRange, props.isInSelectedRange)} 52%, transparent 52%)`};\n `};\n ${props => !props.isSelected && css`\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n `};\n `}\n &:last-child {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n }\n\n &:first-child {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n\n ${props => getDisabledStyle(props.isDisabled)}\n`;\n\nexport const DayInner = styled.div`\n width: 33px;\n height: 33px;\n border-radius: 50%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: ${props => props.isOutsideMonth ? transparentize(0.5, themes.light.C_TEXT_dialogue) : themes.light.C_TEXT_dialogue};\n background-color: ${props => props.isSelected ? themes.light.C_BTN_4L_emph_bg_hover : \"transparent\"};\n font-weight: ${props => props.isSelected ? \"bold\" : \"normal\"};\n ${T_PLAIN_big};\n\n &:hover, &:focus {\n ${props => !props.preventHover && css`\n background-color: ${props => props.isSelected ? themes.light.C_BTN_4L_emph_bg_hover : transparentize(0.7, themes.light.C_BTN_hover_dark)};\n `};\n outline: none;\n }\n\n ${props => props.isSelected && getFocusBorderElement({ offset: -1, keyboardOnly: true, isLight: true })};\n\n &:active {\n background-color: ${themes.light.C_BTN_4L_emph_bg_hover};\n }\n\n ${props => props.isCurrent && css`\n font-weight: bold;\n\n & ${DayLabel}::after {\n position: absolute;\n content: \"\";\n width: 100%;\n height: 2px;\n background: ${themes.light.C_ACT_hover_without_opacity};\n bottom: 0;\n left: 0;\n opacity: 50%;\n }\n `}\n`;\n","import { Dayjs } from \"dayjs\";\nimport React from \"react\";\nimport TestIds from \"../../../../testIds\";\nimport { DayInner, DayLabel, StyledDay } from \"./Day.styles\";\nimport { KeyName } from \"../../../../keyName\";\nimport { TRecordAny } from \"../../../../global.types\";\nimport DateType, { DateFormat } from \"../../../../types/Date\";\nimport { FOCUSABLE_DISABLED_ITEM_ATTR } from \"../../../focusManager\";\n\nexport interface IDaySettingsProps {\n // \"hover\" state\n isInActiveRange?: boolean;\n // selected state\n isInSelectedRange?: boolean;\n // isInRange?: boolean;\n isFirst?: boolean;\n isLast?: boolean;\n isOutsideMonth?: boolean;\n isSelected?: boolean;\n isCurrent?: boolean;\n isDisabled?: boolean;\n preventHover?: boolean;\n}\n\nexport interface IDayProps extends IDaySettingsProps {\n day: Dayjs;\n onClick?: (day: Dayjs) => void;\n onMouseEnter?: (day: Dayjs) => void;\n onMouseLeave?: (day: Dayjs) => void;\n onFocus?: (day: Dayjs) => void;\n onBlur?: (day: Dayjs) => void;\n preventHover?: boolean;\n passProps?: TRecordAny;\n passRef?: React.Ref;\n}\n\nexport class Day extends React.PureComponent {\n\n handleClick = () => {\n if (this.props.onClick) {\n this.props.onClick(this.props.day);\n }\n };\n\n handleMouseEnter = () => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(this.props.day);\n }\n };\n\n handleMouseLeave = (event: React.MouseEvent) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(this.props.day);\n }\n };\n\n handleFocus = () => {\n if (this.props.onFocus) {\n this.props.onFocus(this.props.day);\n }\n };\n\n handleBlur = () => {\n if (this.props.onBlur) {\n this.props.onBlur(this.props.day);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (this.props.onClick && [KeyName.Enter, KeyName.Space].includes(event.key as KeyName)) {\n this.props.onClick(this.props.day);\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n render = () => {\n let testId;\n\n if (this.props.isSelected && this.props.isCurrent) {\n testId = TestIds.DayCurrentSelected;\n } else if (this.props.isSelected) {\n testId = TestIds.DaySelected;\n } else if (this.props.isCurrent) {\n testId = TestIds.DayCurrent;\n } else if (this.props.isOutsideMonth) {\n testId = TestIds.DayOutsideMonth;\n } else {\n testId = TestIds.DayCurrentMonth;\n }\n\n return (\n \n \n {DateType.format(this.props.day, DateFormat.dayOfMonth)}\n \n \n );\n };\n}\n","import React from \"react\";\nimport { Dayjs } from \"dayjs\";\nimport { Calendar } from \"./Calendar\";\nimport { getValidDayjsDate, isMaxDay, isMinDay } from \"../utils\";\nimport DateType, { getUtcDayjs } from \"../../../../types/Date\";\nimport { DatePickerView } from \"../../../../enums\";\nimport { IDateSingleValuePopupSharedProps } from \"./Calendar.utils\";\nimport memoizeOne from \"../../../../utils/memoizeOne\";\n\ninterface IProps extends IDateSingleValuePopupSharedProps {\n previewValue?: Date;\n defaultView?: DatePickerView;\n}\n\ninterface IState {\n previewDay: Dayjs;\n view: DatePickerView;\n}\n\nexport default class MonthYearPopup extends React.PureComponent {\n static defaultProps: Partial = {\n disableAutoFocus: true\n };\n\n constructor(props: IProps) {\n super(props);\n\n const isSpecialDay = isMinDay(props.value) || isMaxDay(props.value);\n\n this.state = {\n previewDay: getValidDayjsDate(isSpecialDay ? null : this.props.value ?? this.props.previewValue),\n view: this.props.defaultView ? this.props.defaultView : DatePickerView.Months\n };\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.props.value !== prevProps.value && DateType.isValid(this.props.value)) {\n this.setState({ previewDay: getValidDayjsDate(this.props.value) });\n }\n }\n\n handlePreviewChange = (day: Dayjs): void => {\n this.setState({\n previewDay: day\n });\n };\n\n handleViewChange = (view: DatePickerView): void => {\n this.setState({\n view: view\n });\n };\n\n handleCalendarChange = (day: Dayjs): void => {\n this.props.onChange(day.toDate());\n };\n\n getValue = memoizeOne(() => {\n return !this.props.value ? null : getUtcDayjs(this.props.value);\n }, () => [this.props.value]);\n\n\n render = (): React.ReactElement => {\n return (\n \n );\n };\n}","import { roundToDecimalPlaces } from \"@utils/general\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\n\nimport { DASH_CHARACTER } from \"../../../../constants\";\nimport DateType, { DATE_MAX, DATE_MIN, getUtcDate, getUtcDayjs, parseDayjs, TDateLike } from \"../../../../types/Date\";\nimport LocalSettings from \"../../../../utils/LocalSettings\";\nimport memoize from \"../../../../utils/memoize\";\nimport memoizeOne from \"../../../../utils/memoizeOne\";\n\n/** Custom date util methods */\nexport const parseDateInterval = (value: string, format: string | string[] = undefined, strictMode = true): IDayInterval => {\n const interval: IDayInterval = { from: null, to: null };\n\n if (value) {\n const [firstDate, secondDate] = value.replace(\"-\", DASH_CHARACTER).split(DASH_CHARACTER).map(str => str.trim());\n\n const args = { format, strictMode };\n const fromDayjsDate = parseDayjs({ date: firstDate, ...args });\n const toJsDate = parseDayjs({ date: secondDate, ...args });\n\n if (fromDayjsDate) {\n interval.from = fromDayjsDate.toDate();\n }\n\n if (toJsDate) {\n interval.to = toJsDate.toDate();\n }\n }\n\n return interval;\n};\n\nexport const isValidDateInterval = (value: any): value is IDayInterval => {\n return value?.from && value?.to && DateType.isValid(value.from) && DateType.isValid(value.to) && getUtcDayjs(value.from).isBefore(value.to);\n};\n\nexport const isSameInterval = (interval1: IDayInterval, interval2: IDayInterval): boolean => {\n return getUtcDayjs(interval1?.from).isSame(getUtcDayjs(interval2?.from)) && getUtcDayjs(interval1?.to).isSame(getUtcDayjs(interval2?.to));\n};\n\nexport const maxDate = (...args: (Date | string | Dayjs)[]): Date => {\n return dayjs.max(...args.map(arg => getUtcDayjs(arg))).toDate();\n};\n\nexport const formatDateInterval = (value: IDayInterval, format?: string): string => {\n let newValue = \"\";\n\n if (!value) {\n return newValue;\n }\n\n const from = getUtcDayjs(value.from);\n const to = getUtcDayjs(value.to);\n const formattedFrom = DateType.format(value.from, format);\n const formattedTo = DateType.format(value.to, format);\n\n if (from.isSameOrBefore(DATE_MIN, \"date\") && to.isSameOrAfter(DATE_MAX, \"date\")) {\n newValue = i18next.t(\"Common:Time.All\");\n } else if (from.isSameOrBefore(DATE_MIN, \"date\")) {\n newValue = `${i18next.t(\"Common:Time.To\")} ${formattedTo}`;\n } else if (to.isSameOrAfter(DATE_MAX, \"date\")) {\n newValue = `${i18next.t(\"Common:Time.From\")} ${formattedFrom}`;\n } else {\n newValue = `${formattedFrom} ${DASH_CHARACTER} ${formattedTo}`;\n }\n\n return newValue;\n};\n\n/** Format day interval using default format, without year in the \"from\" part if it is the same for both values.\n * 20.1. – 20.2.2021 but 20.1.2020 – 20.2.2021 */\nexport const formatDateIntervalWithoutSameYear = (value: IDayInterval): string => {\n let newValue = \"\";\n\n if (isValidDateInterval(value)) {\n const intlObj = new Intl.DateTimeFormat(i18next.language, {\n day: \"2-digit\",\n month: \"2-digit\",\n year: value.from.getFullYear() === value.to.getFullYear() ? undefined : \"numeric\"\n });\n newValue = intlObj.format(value.from).replace(\" \", \"\");\n newValue += ` ${DASH_CHARACTER} ${DateType.format(value.to)}`;\n }\n return newValue;\n};\n\nexport const longDateFormat = memoize((format: string) => {\n // RegEx describes locale specific date formats, e.g. L, lll, LTS, etc...\n const localDateStringRe = /(l{1,4}|lt|lts)([^lts]|$)/ig;\n const matches = [...format.matchAll(localDateStringRe)];\n\n /**\n * Whole format can be combined, e.g. locale specific DateTime - \"L, LT\", but method longDateFormat\n * can work only with the basic types, so, we need to loop through all the matches and replace them one by one.\n *\n * Additionally calling the method with non-locale specific format, e.g. localeData.longDateFormat(\"DD/MM/YYYY\")\n * will raise an error. Therefore if we are replacing only exact matches, our method will work\n * with any format (it just returns the original one)\n */\n if (matches) {\n const localeData = dayjs.localeData();\n matches.forEach(([, localeFormat]) => {\n format = format.replace(localeFormat, localeData.longDateFormat(localeFormat));\n });\n }\n\n return format;\n}, (format: string) => {\n // cache by format + locale as the format is locale specific\n return `${dayjs.locale()}+${format}`;\n});\n\nconst ALLOWED_DELIMITERS = [\".\", \"/\", \"-\", \",\"];\n\nexport const stripAllDelimiters = (format: string) => {\n return format.trim().replace(/[\\.,\\/]/g, \" \");\n};\n\n// replaces delimiter of the given formats with every possible delimiter (. , / -)\nexport const formatDelimiterVariants = memoizeOne((formats: string[]): string[] => {\n const allFormats = new Set(formats);\n\n for (const delim of ALLOWED_DELIMITERS) {\n for (const format of formats) {\n const clean = stripAllDelimiters(format).split(\" \");\n\n allFormats.add(clean.join(delim));\n }\n }\n\n return [...allFormats];\n});\n\n/**\n use multiple formats, because dayJs doesn't support strict mode parsing correctly\n D.M.YYYY won't parse multi digit days and months, like 02.02.2020 even though it should\n so we need to create all possible combinations from basic format, e.g.\n DD.MM.YYYY -> [\"D.M.YYYY\", \"DD.MM.YYYY\", \"DD.M.YYYY\", \"D.MM.YYYY\"]\n\n @see specification https://solitea-cz.atlassian.net/wiki/spaces/IRIS/pages/2193981441/Datumov+fieldy+-+textov+vstup\n */\nexport const formatVariants = memoize((longDateFormat: string, withoutDelimiterVariants?: boolean): string[] => {\n const formats = new Set();\n formats.add(longDateFormat);\n // Format characters, which can be used in format string solo or doubled\n const possibleReplacements = [\"D\", \"M\", \"H\", \"h\", \"m\"];\n\n const createRegExp = (c: string, size: number) => new RegExp(`(^|[^${c}])${c}{${size}}([^${c}]|$)`, \"g\");\n\n possibleReplacements.forEach((c) => {\n formats.forEach(format => {\n formats.add(format.replace(createRegExp(c, 1), `$1${c}${c}$2`));\n formats.add(format.replace(createRegExp(c, 2), `$1${c}$2`));\n });\n });\n\n if (withoutDelimiterVariants) {\n return [...formats];\n }\n\n return formatDelimiterVariants([...formats]);\n}, (longDateFormat, withoutDelimiterVariants) => `${longDateFormat}${withoutDelimiterVariants}`);\n\nexport const formatDateVariants = memoize((longDateFormat: string, withoutDelimiterVariants?: boolean): string[] => {\n const formats = new Set(formatVariants(longDateFormat, withoutDelimiterVariants));\n\n // format with 2-digit year and without delimiters\n const shortYearFormat = longDateFormat.replace(\"YYYY\", \"YY\");\n const sortedFormats = [\"DD\", \"MM\", \"YY\"].sort((a, b) => shortYearFormat.indexOf(a) - shortYearFormat.indexOf(b));\n const twoDigitsNoDelimFormat = sortedFormats.join(\"\");\n const forDigitsYearNoDelimFormat = twoDigitsNoDelimFormat.replace(\"YY\", \"YYYY\");\n\n formats.add(twoDigitsNoDelimFormat);\n formats.add(forDigitsYearNoDelimFormat);\n\n // format without year, keeping delimiters\n const noYearDelimiter = sortedFormats.filter(format => format !== \"YY\").join(\".\");\n // format with 2-digits year with delimiters\n const twoDigitsYearDelims = sortedFormats.join(\".\");\n const noYearAllDelims = formatDelimiterVariants([noYearDelimiter, twoDigitsYearDelims]);\n\n noYearAllDelims.forEach(format => formats.add(format));\n\n // format completely without years and without delimiters\n const noDelimWithoutYears = twoDigitsNoDelimFormat.replaceAll(\"Y\", \"\");\n\n formats.add(noDelimWithoutYears);\n\n return [...formats];\n});\n\nexport const formatTimeVariants = memoize((longDateFormat: string): string[] => {\n const formats = new Set(formatVariants(longDateFormat));\n\n // format with 2-digit minutes and hours without delimiters\n const sortedFormats = [\"HH\", \"mm\"].sort((a, b) => longDateFormat.indexOf(a) - longDateFormat.indexOf(b));\n const noDelimFormat = sortedFormats.join(\"\");\n\n formats.add(noDelimFormat);\n\n // use reverse to prioritize noDelimFormat,\n // so that when the parse is called with isStrict=false, it will still try to use the noDelimFormat\n return [...formats].reverse();\n});\n\nexport const isMaxDay = (day: TDateLike): boolean => {\n return DateType.isSameDay(day, DATE_MAX);\n};\n\nexport const isMinDay = (day: TDateLike): boolean => {\n return DateType.isSameDay(day, DATE_MIN);\n};\n\nexport const isCurrentDay = (day: TDateLike): boolean => {\n return DateType.isToday(day);\n};\n\nexport const isSameDay = (day: TDateLike, day2: TDateLike): boolean => {\n return !!(day2 && DateType.isSameDay(day, day2));\n};\n\nexport const getNextYear = (day: Dayjs): Dayjs => {\n return day.add(1, \"year\");\n};\n\nexport const getPreviousYear = (day: Dayjs): Dayjs => {\n return day.subtract(1, \"year\");\n};\n\nexport const getNextMonth = (day: Dayjs): Dayjs => {\n return day.add(1, \"month\");\n};\n\nexport const getPreviousMonth = (day: Dayjs): Dayjs => {\n return day.subtract(1, \"month\");\n};\n\nexport const isOutsideMonth = (day: Dayjs, month: Dayjs) => {\n return day.month() !== month.month();\n};\n\nexport const getNextHour = (day: Dayjs) => {\n return day.add(1, \"hour\");\n};\n\nexport const getPreviousHour = (day: Dayjs) => {\n return day.subtract(1, \"hour\");\n};\n\nexport const getNextMinute = (day: Dayjs) => {\n return day.add(1, \"minute\");\n};\n\nexport const getPreviousMinute = (day: Dayjs) => {\n return day.subtract(1, \"minute\");\n};\n\nexport const setTimeToDate = (date: Dayjs, time?: Dayjs) => {\n if (!time) {\n return date;\n }\n\n let newDate = date.second(time.second());\n newDate = newDate.minute(time.minute());\n newDate = newDate.hour(time.hour());\n\n return newDate;\n};\n\nexport const getWeekArray = (date: Dayjs): Dayjs[][] => {\n const start = getUtcDayjs(date).clone().startOf(\"month\").startOf(\"week\");\n const end = getUtcDayjs(date).clone().endOf(\"month\").endOf(\"week\");\n const currentMonth = date.month();\n\n let count = 0;\n let current = start;\n const nestedWeeks: Dayjs[][] = [];\n\n while (current.isBefore(end)) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n\n // only return days from this month,\n // days in from other months should be empty\n nestedWeeks[weekNumber].push(current.month() === currentMonth ? current : null);\n\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n\n return nestedWeeks;\n};\n\nexport const getWeekdays = (): string[] => {\n const start = dayjs().startOf(\"week\");\n return [0, 1, 2, 3, 4, 5, 6].map((diff) =>\n start.add(diff, \"day\").format(\"dd\"));\n};\n\n/**\n * If valid date given, returns its dayjs equivalent.\n * If no or invalid date given, returns dayjs object representing new Date().\n */\nexport const getValidDayjsDate = (date: Date) => {\n let validDate = getUtcDayjs(date);\n\n if (!validDate || !(validDate.isValid())) {\n validDate = getUtcDayjs();\n }\n\n return validDate;\n};\n\nexport interface IDayInterval {\n from: Date;\n to: Date;\n}\n\nexport interface IDayjsInterval {\n from?: Dayjs;\n to?: Dayjs;\n}\n\nexport type IDateInterval = IDayInterval | IDayjsInterval;\n\nexport const dateIntervalToDayjsInterval = ({ from, to }: IDayInterval): IDayjsInterval => {\n return {\n from: from ? getUtcDayjs(from) : null,\n to: to ? getUtcDayjs(to) : null\n };\n};\n\nexport const dayjsIntervalToDateInterval = ({ from, to }: IDayjsInterval): IDayInterval => {\n return {\n from: from.toDate(),\n to: to.toDate()\n };\n};\n\nexport const isSameMonth = (first: Date, second: Date): boolean => {\n return !!first && !!second && getUtcDayjs(first).isSame(second, \"month\");\n};\n\n// format Date to DateTimeOffset format (string with timezone)\nexport const formatDateToDateTimeOffsetString = (date: TDateLike): string => {\n if (!date) {\n return null;\n }\n\n return getUtcDayjs(date).toISOString();\n};\n\nexport const formatDateToDateString = (date: TDateLike): string => {\n if (!date) {\n return null;\n }\n\n // todo: most likely should not be called with invalid date?? Fix AgingAP report...\n if (!DateType.isValid(date)) {\n return date as string;\n }\n // dayjs doesn't add leading zeroes to year if the year is shorter than 4 characters\n // to ensure that the places where the string is used created correct Date, we need to add the zeroes,\n // otherwise years like \"1\" could result in Date with year 1970 or similar issues\n // ==> format year, add leading zeroes, merge with rest of the string\n return getUtcDayjs(date).toISOString().substring(0, 10);\n};\n\n\nexport const formatTimeOfDayToTimeString = (date: TDateLike): string => {\n if (!date) {\n return null;\n }\n\n return getUtcDayjs(date).toISOString().substring(11, 16);\n};\n\nexport const isValidDate = (date: Date): boolean => {\n return !!date && dayjs(date).isValid();\n};\n\nexport const getWorkDateFromLocalStorage = (): Date => {\n const workDate = LocalSettings.get(\"WorkDate\")?.customData?.workDate;\n\n return workDate ? getUtcDate(workDate) : null;\n};\n\nexport const getWorkDate = (): Date => {\n return getWorkDateFromLocalStorage() ?? getUtcDate();\n};\nexport const getWorkDateCallback = () => (getWorkDate());\n\ninterface ISlidingIntervals {\n current: IDayjsInterval;\n previous: IDayjsInterval;\n}\n\nexport function getSlidingInterval(to: Date | Dayjs, unit: \"year\" | \"month\" | \"quarter\"): ISlidingIntervals {\n const toParsed = getUtcDayjs(to);\n const prevTo = toParsed.subtract(1, unit);\n const from = prevTo.add(1, \"day\");\n const prevFrom = from.subtract(1, unit);\n const current: IDayjsInterval = {\n from, to: toParsed\n };\n const previous: IDayjsInterval = {\n from: prevFrom, to: prevTo\n };\n\n return {\n current, previous\n };\n}\n\nexport const getMonthDays = (date: Dayjs): Dayjs[] => {\n const start = getUtcDayjs(date).clone().startOf(\"month\");\n const end = getUtcDayjs(date).clone().endOf(\"month\");\n\n let current = start;\n const days: Dayjs[] = [];\n\n while (current.isBefore(end)) {\n days.push(current);\n current = current.clone().add(1, \"day\");\n }\n return days;\n};\n\n// week day offset for czech localization\nexport const getMonthFirstDayWeekOffset = (date: Dayjs): number => {\n const start = getUtcDayjs(date).clone().startOf(\"month\");\n return (start.day() + 6) % 7;\n};\n\nexport const getDaysInterval = (date: Dayjs, length: number): Dayjs[] => {\n const start = date.clone();\n let current = start;\n const days: Dayjs[] = [];\n\n for (let i = 0; i < length; i++) {\n days.push(current);\n current = current.clone().add(1, \"day\");\n }\n return days;\n};\n\nexport const getNextMonday = (date = getUtcDayjs(), startWithEvenWeek?: boolean): Dayjs => {\n let res: Dayjs;\n if (date.day() === 1) {\n res = date.clone();\n } else {\n res = date.clone().startOf(\"week\").add(1, \"week\");\n }\n\n if (startWithEvenWeek) {\n if (res.week() % 2 === 0) {\n return res;\n }\n return res.add(1, \"week\");\n }\n return res;\n};\n\nexport const getHourDifference = (time1: Dayjs, time2: Dayjs, overMidnight = true, inMinutes = false): number => {\n const totalMinutes1 = time1.hour() * 60 + time1.minute();\n const totalMinutes2 = time2.hour() * 60 + time2.minute();\n let diff = totalMinutes2 - totalMinutes1;\n if (!inMinutes) {\n diff = diff / 60;\n }\n return overMidnight && diff < 0 ? (inMinutes ? 3600 : 24) + diff : diff;\n};\n\nexport const formatHoursToTimeFormat = (hours: number): string => {\n const hour = Math.floor(hours);\n const minutes = roundToDecimalPlaces(0, (hours % 1) * 60);\n return `${hour}:${minutes.toString().padStart(2, \"0\")}`;\n};\n\n/** Much faster than dayjs.isBetween.\n * Use this in places that are called lots of times instead of dayjs. */\nexport const isDateBetween = (startDate: Date, endDate: Date, checkDate: Date): boolean => {\n // Create new Date objects to avoid modifying the original dates\n const check = getUtcDate(checkDate);\n const start = getUtcDate(startDate);\n const end = getUtcDate(endDate);\n\n // Set the time of all dates to the same value to ignore timezone\n check.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n const dateTime = check.getTime();\n\n return dateTime >= start.getTime() && dateTime <= end.getTime();\n};\n\nexport const getDateFromDateOrDayjs = (date?: Date | Dayjs): Date => {\n if (!date) {\n return getUtcDate();\n }\n\n if (date instanceof Date) {\n return date;\n }\n\n return (date as Dayjs).toDate();\n};","import styled, { css } from \"styled-components/macro\";\nimport { getDisabledStyle, getFocusBorderElement, multiline_ellipsis, T_PLAIN_big } from \"../../../global.style\";\nimport { FieldConfirmButtons } from \"../field/FieldConfirmButtons\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { StyledTextArea, textAreaErrorStyles } from \"../textArea/TextArea.styles\";\nimport { StyledInput } from \"../input/Input.styles\";\n\nexport const ReadLabel = styled.div<{\n _hoverable: boolean;\n}>`\n min-height: 14px;\n max-width: 600px;\n padding: 6px 12px 4px 12px;\n white-space: pre-line;\n border: 1px solid transparent;\n\n &:hover {\n border-color: ${props => props._hoverable ? props.theme.C_ACT_hover_without_opacity : \"\"};\n }\n \n ${textAreaErrorStyles};\n`;\n\nexport const ReadLabelText = styled.pre<{\n _hasValue: boolean;\n auditTrailType?: AuditTrailFieldType;\n maxRows: number;\n}>`\n font-style: ${props => props._hasValue ? \"\" : \"italic\"};\n color: ${props => props._hasValue ? props.theme.C_TEXT_primary : props.theme.C_ACT_main};\n\n ${T_PLAIN_big};\n\n ${props => multiline_ellipsis(\"100%\", props.maxRows)};\n overflow-wrap: break-word;\n\n background: transparent;\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && `\n opacity: 0\n`} ${props => (props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && `\n opacity: ${props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY}\n`}\n\n`;\n\nexport const Wrapper = styled.div<{\n _width: string;\n _hoverable: boolean;\n _isReponsive: boolean;\n isInEdit: boolean;\n}>`\n position: relative;\n width: ${props => props._isReponsive ? '100%' : props.isInEdit && props._width ? props._width : \"fit-content\"};\n height: fit-content;\n max-width: 100%;\n`;\n\nexport const TextAreaWrapper = styled.div`\n width: 100%;\n display: flex;\n\n ${StyledTextArea}, ${StyledInput} {\n display: block;\n }\n`;\n\nexport const EditableTextConfirmButtons = styled(FieldConfirmButtons)<{\n _visible: boolean;\n}>`\n visibility: ${props => props._visible? \"visible\" : \"hidden\"};\n margin-left: 8px;\n margin-top: 5px;\n`;\n\nexport const StyledEditableText = styled.div<{\n _width?: string;\n isInEdit: boolean;\n isDisabled: boolean;\n auditTrailType?: AuditTrailFieldType;\n _isResponsive?: boolean;\n}>`\n ${props => props._isResponsive && css`\n width: 100%;\n max-width: ${props._width};\n `}\n display: flex;\n position: relative;\n min-height: 34px;\n min-width: 180px;\n background: ${props => props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference ?\n props.theme.C_AUDIT_TRAIL_NO_DIFF : \"\"};\n \n max-width: 652px;\n\n ${getFocusBorderElement({ offset: 0, keyboardOnly: true })};\n ${props => getDisabledStyle(props.isDisabled)};\n\n border: ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) ?\n `3px solid ${props.theme.C_AUDIT_TRAIL_DIFF}` : \"\"};\n\n border-radius: 3px;\n`;","import { composeRefHandlers, doesElementContainsElement, isDefined } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { EditableTextSizes, Status } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport TestIds from \"../../../testIds\";\nimport KeyboardShortcutsManager from \"../../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport { RequiredMark } from \"../field/Label.styles\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent, ISharedInputProps } from \"../input\";\nimport { InputStatusStraight } from \"../input/Input.styles\";\nimport TextArea from \"../textArea\";\nimport { renderReadOnlyText } from \"../utils\";\nimport {\n EditableTextConfirmButtons,\n ReadLabel,\n ReadLabelText,\n StyledEditableText,\n TextAreaWrapper,\n Wrapper\n} from \"./EditableText.styles\";\n\nexport interface IEditableTextChangeEvent {\n value: string;\n}\n\nexport interface IEditableTextProps extends ISharedInputProps, WithErrorAndTooltipProps {\n /** Value of the text area*/\n value: string;\n placeholder: string;\n isResponsive?: boolean;\n isInEdit?: boolean;\n isDisabled?: boolean;\n isMultiLine?: boolean;\n isConfirmable?: boolean;\n showRequiredMark?: boolean;\n maxRows?: number;\n style?: React.CSSProperties;\n onConfirm?: () => void;\n onCancel?: () => void;\n onChange?: (args: IEditableTextChangeEvent) => void;\n onBlur?: (args: IInputOnBlurEvent) => void;\n onIsEditChanged?: (isInEdit: boolean) => void;\n auditTrailData?: IAuditTrailData;\n passRef?: React.Ref;\n outerRef?: React.RefObject;\n}\n\ninterface IProps extends IEditableTextProps, WithTranslation {\n className?: string;\n}\n\ninterface IEditableTextState {\n isInEdit: boolean;\n}\n\nconst MAX_ROWS_SMALL = 12;\nconst MAX_ROWS_MEDIUM = 16;\nconst MAX_ROWS_LARGE = 20;\n\nclass EditableText extends React.Component {\n textAreaRef = React.createRef();\n buttonsWrapper = React.createRef();\n _wasChangedSinceBlur = false;\n\n state: IEditableTextState = {\n isInEdit: false\n };\n\n componentDidUpdate(prevProps: IProps) {\n if (this.props.value !== prevProps.value) {\n this._wasChangedSinceBlur = true;\n }\n }\n\n get width() {\n return this.props.width || EditableTextSizes.M;\n }\n\n get maxRowCount() {\n if (this.props.maxRows) {\n return this.props.maxRows;\n }\n\n if (!this.props.isMultiLine) {\n return 1;\n }\n\n const width = this.width;\n\n if (width === EditableTextSizes.S) {\n return MAX_ROWS_SMALL;\n }\n\n if (width === EditableTextSizes.M) {\n return MAX_ROWS_MEDIUM;\n }\n\n if (width === EditableTextSizes.L) {\n return MAX_ROWS_LARGE;\n }\n\n return MAX_ROWS_SMALL;\n }\n\n get isInEdit() {\n // with error prop it's always rendered in edit mode as we are not able to display the error otherwise\n return !!this.props.error || this.props.isInEdit || this.state.isInEdit;\n }\n\n async autoConfirmOnBlur(e: React.FocusEvent): Promise {\n const target = e.relatedTarget as HTMLDivElement;\n const contains = doesElementContainsElement(this.textAreaRef.current, target) || doesElementContainsElement(this.buttonsWrapper.current, target);\n\n if (!contains) {\n await this.handleConfirm();\n }\n }\n\n switchToNonEditableState(): Promise {\n // await so that we can wait for the state to be updated in the caller functions\n return new Promise((resolve) => {\n if (this.state.isInEdit) {\n this.setState({\n isInEdit: false\n }, () => {\n this.props.onIsEditChanged?.(false);\n resolve(null);\n });\n } else {\n resolve(null);\n }\n });\n }\n\n handleChange = (e: IInputOnChangeEvent): void => {\n this.props.onChange({\n value: e.value as string\n });\n };\n\n handleBlur = async (e: React.FocusEvent) => {\n // ?. can make null -> undefined and mess up comparison\n const trimmedValue = isDefined(this.props.value) ? this.props.value?.trim() : this.props.value;\n if (this.props.value !== trimmedValue) {\n // todo: general solution to all inputs and textareas?\n this.props.onChange({\n value: trimmedValue\n });\n }\n if (!this.props.isConfirmable) {\n await this.switchToNonEditableState();\n\n this.props.onBlur?.({\n origEvent: e as unknown as React.FocusEvent,\n wasChanged: this._wasChangedSinceBlur\n });\n } else {\n await this.autoConfirmOnBlur(e);\n }\n\n this._wasChangedSinceBlur = false;\n };\n\n handleButtonsBlur = (e: React.FocusEvent) => {\n if (this.props.isConfirmable) {\n this.autoConfirmOnBlur(e);\n }\n };\n\n handleClick = () => {\n if (!this.state.isInEdit) {\n this.setState({\n isInEdit: true\n }, () => {\n this.props.onIsEditChanged?.(true);\n this.textAreaRef.current.focus();\n });\n }\n };\n\n handleConfirm = async () => {\n this.props.onConfirm?.();\n await this.switchToNonEditableState();\n };\n\n handleCancel = async () => {\n this.props.onCancel?.();\n await this.switchToNonEditableState();\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n switch (true) {\n case event.key === KeyName.Enter:\n if (event.target === event.currentTarget) {\n this.handleClick();\n event.preventDefault();\n }\n break;\n case event.key === KeyName.Escape:\n this.handleCancel();\n event.preventDefault();\n break;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_S):\n if (this.props.isConfirmable) {\n this.handleConfirm();\n }\n break;\n }\n };\n\n renderEditableText() {\n const value = this.props.value === null ? \"\" : this.props.value;\n const width = !this.isInEdit && !value ? \"fit-content\" : this.props.width;\n return (\n \n \n {this.props.showRequiredMark && !this.isInEdit &&\n \n }\n {!this.isInEdit &&\n }\n _hoverable\n title={value}>\n {/*TODO maybe use component instead of ReadLabelText*/}\n \n {value || this.props.placeholder}\n \n \n }\n {this.isInEdit &&\n \n \n \n }\n {!this.props.isReadOnly && this.props.showChange && }\n \n {this.props.isConfirmable &&\n \n }\n \n );\n }\n\n render(): React.ReactElement {\n return this.props.isReadOnly && !this.props.auditTrailData?.type ? renderReadOnlyText(this) : this.renderEditableText();\n }\n}\n\nexport default withTranslation([\"Components\", \"Common\"])(EditableText);\n","import styled, { css } from \"styled-components/macro\";\nimport { LocalStackOrder, textAlignToJustify } from \"../../../global.style\";\nimport { TextAlign } from \"../../../enums\";\nimport { StyledText } from \"../../text/Text.styles\";\nimport { StyledInput, SyncSymbolDefaultLeft } from \"../input/Input.styles\";\n\nexport const FIELD_HOR_MARGIN = \"32px\";\nexport const FIELD_VER_MARGIN = \"17px\";\n// for fast entry\nexport const FIELD_VER_MARGIN_SMALL = \"12px\";\n// used on fields wrappers to compensate for the field margin\nexport const FIELD_VER_NEG_MARGIN = \"-17px\";\nexport const CONNECTED_FIELD_MARGIN = \"5px\";\n\ninterface IStyledField {\n isReadOnly?: boolean;\n hasPadding?: boolean;\n isWithoutRightMargin?: boolean;\n isSharpRight?: boolean;\n isSharpLeft?: boolean;\n isAuditTrailIgnored?: boolean;\n $width?: string;\n textAlign?: TextAlign;\n}\n\nexport const getFieldPaddingValues = (args: IStyledField) => {\n let paddingLeft, paddingRight;\n\n if (args.isReadOnly && args.hasPadding) {\n switch (args.textAlign) {\n case TextAlign.Right:\n paddingLeft = 20;\n paddingRight = 12;\n break;\n case TextAlign.Center:\n paddingLeft = 12;\n paddingRight = 12;\n break;\n case TextAlign.Left:\n default:\n paddingLeft = 12;\n paddingRight = 20;\n }\n }\n\n return { paddingLeft, paddingRight };\n};\n\nexport const SyncSymbolStyled = styled.div`\n position: absolute;\n height: 34px;\n // center vertically\n top: 50%;\n transform: translate(0, -50%);\n width: 34px;\n color: ${props => props.theme.C_TEXT_primary};\n display: flex;\n align-items: center;\n justify-content: center;\n\n & svg {\n position: absolute;\n left: 3px\n }\n`;\n\nexport const getFieldPadding = (args: IStyledField) => {\n const { paddingLeft, paddingRight } = getFieldPaddingValues(args);\n\n return css`\n padding-left: ${paddingLeft && `${paddingLeft}px`};\n padding-right: ${paddingRight && `${paddingRight}px`};\n\n ${args.isReadOnly && css`\n & ${SyncSymbolStyled} {\n left: calc(${SyncSymbolDefaultLeft}px - ${paddingLeft ?? 0}px);\n }\n `};\n `;\n};\n\nexport const StyledField = styled.div`\n position: relative;\n display: flex;\n width: ${props => props.$width};\n flex-direction: column;\n opacity: ${props => props.isAuditTrailIgnored ? props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY : \"\"};\n\n margin-right: ${props => props.isReadOnly || props.isWithoutRightMargin ? 0 : props.isSharpRight ? CONNECTED_FIELD_MARGIN : FIELD_HOR_MARGIN};\n ${props => getFieldPadding(props)};\n\n ${SyncSymbolStyled} {\n background-color: ${props => props.theme.C_FIELD_sync};\n left: ${SyncSymbolDefaultLeft}px;\n border-top-left-radius: ${props => props.theme.borderLargeRadius};\n border-bottom-left-radius: ${props => props.theme.borderLargeRadius};\n }\n\n // those styles should work even when the fields have wrapper around them (like LastFieldWrapper or GroupedKey)\n // => use multiple selectors\n ${props => !props.isSharpLeft && css`\n [data-isreadonly=\"true\"][data-textalign=\"left\"]:has(+ &[data-isreadonly=\"false\"]),\n [data-isreadonly=\"true\"][data-textalign=\"left\"]:has(+ div > &[data-isreadonly=\"false\"]) {\n margin-right: 12px;\n }\n\n [data-isreadonly=\"false\"]:has(+ &[data-isreadonly=\"true\"]),\n [data-isreadonly=\"false\"]:has(+ div > &[data-isreadonly=\"true\"]),\n [data-isreadonly=\"true\"][data-textalign=\"right\"]:has(+ &[data-isreadonly=\"false\"]),\n [data-isreadonly=\"true\"][data-textalign=\"right\"]:has(+ div > &[data-isreadonly=\"false\"]) {\n margin-right: 20px;\n }\n `};\n`;\n\nexport const FIELD_CONTENT_PADDING = 12;\n\ninterface IStyledFieldContent {\n hasPadding: boolean;\n hasMinHeight: boolean;\n hasExtraTopMargin: boolean;\n textAlign: TextAlign;\n isSharpLeft: boolean;\n isSharpRight: boolean;\n isSynchronized: boolean;\n}\n\nconst getSyncBackgroundWidth = (props: IStyledFieldContent): number => {\n if (!props.isSharpRight && !props.isSharpLeft) {\n return 0;\n }\n\n if (props.isSharpLeft && !props.isSharpRight) {\n return 20;\n }\n\n // 12px + 20px for possible field paddings\n return 12 + 20 + parseInt(CONNECTED_FIELD_MARGIN);\n};\n\nexport const StyledFieldContent = styled.div`\n min-height: ${props => props.hasMinHeight ? \"34px\" : \"0\"};\n min-width: ${props => props.minWidth ? props.minWidth : \"0\"};\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: 0 ${props => props.hasPadding ? `${FIELD_CONTENT_PADDING}px` : \"0\"};\n margin-top: ${props => props.hasExtraTopMargin ? \"6px\" : \"0\"};\n justify-content: ${props => textAlignToJustify(props.textAlign)};\n position: relative;\n\n // we often add some fixed (readonly) text information before input. Use common rule here.\n ${StyledText} + ${StyledInput} {\n margin-left: ${CONNECTED_FIELD_MARGIN};\n }\n;\n\n ${props => props.isSynchronized && css`\n &::before {\n content: \"\";\n position: absolute;\n width: ${props => `calc(100% + ${getSyncBackgroundWidth(props)}px)`};\n height: 100%;\n left: ${props => {\n const width = getSyncBackgroundWidth(props);\n\n if (width > 0) {\n return props.isSharpLeft && !props.isSharpRight ? `${-width}px` : `-${width / 2}px`;\n }\n\n return 0;\n }};\n background-color: ${props => props.theme.C_FIELD_sync};\n border-top-left-radius: ${props => !props.isSharpLeft ? props.theme.borderLargeRadius : \"unset\"};\n border-bottom-left-radius: ${props => !props.isSharpLeft ? props.theme.borderLargeRadius : \"unset\"};\n border-top-right-radius: ${props => !props.isSharpRight ? props.theme.borderLargeRadius : \"unset\"};\n border-bottom-right-radius: ${props => !props.isSharpRight ? props.theme.borderLargeRadius : \"unset\"};\n z-index: ${LocalStackOrder.BelowContent};\n }\n `};\n`;\n\nexport const FieldMouseCapture = styled.div`\n position: absolute;\n left: -5px;\n top: 0;\n width: calc(100% + 10px);\n height: 100%;\n z-index: 5000;\n`;","import React, { ReactElement } from \"react\";\nimport { FieldMouseCapture, StyledField, StyledFieldContent } from \"./Field.styles\";\nimport { AuditTrailFieldMode, AuditTrailFieldType, IFieldInfoProperties } from \"../../smart/FieldInfo\";\nimport { FieldType, LabelStatus, Status, TextAlign } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { Label } from \"./Label\";\nimport { isDefined, uuidv4 } from \"@utils/general\";\nimport { HOTSPOT_ID_ATTR } from \"../../hotspots/Hotspots.utils\";\nimport { IconButton } from \"../../button\";\nimport SyncSymbol from \"./SyncSymbol\";\nimport Alert from \"../../alert/Alert\";\nimport PopperWrapper from \"../../popperWrapper\";\n\nexport interface IFieldProps extends React.HTMLAttributes {\n isFullRow?: boolean;\n /** Text of label (if visible)*/\n width?: string;\n height?: string;\n label?: string;\n /** Smaller, italic text, next to the label*/\n description?: string;\n labelStatus?: LabelStatus;\n tooltip?: string;\n name: string;\n textAlign?: TextAlign;\n isRequired?: boolean;\n isDisabled?: boolean;\n // adds grey background behind the Field content\n isSynchronized?: boolean;\n isValueHelp?: boolean;\n\n // for fields used alone, not in form with other fields after them\n // e.g. in small Dialogs\n isWithoutRightMargin?: boolean;\n\n // by default read only field takes width of its content. With this flag it has the same width as editable field.\n useWidthWhenReadOnly?: boolean;\n\n /** If field disabled and disabledMessage set, its value will be shown in alert popup */\n disabledMessage?: string;\n isReadOnly?: boolean;\n /** Enforce left padding on content to align it with label.\n * Can be used with arbitrary content, instead of \"type\" which is utilized by SmartField */\n hasPadding?: boolean;\n isLight?: boolean;\n isSharpRight?: boolean;\n isSharpLeft?: boolean;\n className?: string;\n\n type?: FieldType;\n\n style?: React.CSSProperties;\n auditTrailData?: IAuditTrailData;\n}\n\nexport const FieldsWithOwnLabel: Record = {\n [FieldType.Text]: true,\n [FieldType.Switch]: true\n};\n\nexport const FieldsWithOwnLabelWithSpacePlaceholder: Record = {\n // todo: switch is aligned well next to standard field and if wrapped (e.g. in NumberRange form ->\n // description | isActive | isDefault, wrapped on next line), there is no extra space because of hidden label.\n // same we probably don't want the space when it is alone on a row, e.g. ProformaInvoice \"vyčíslit DPH\".\n // Extra space looks weird in this case and according to Zeplin, it should not be there, so lets remove it everywhere.\n [FieldType.Switch]: false\n};\n\nexport const FieldsWithoutRequired: Record = {\n ...FieldsWithOwnLabel,\n [FieldType.Checkbox]: true\n};\n\nexport const FieldsWithPadding: Record = {\n [FieldType.Checkbox]: true,\n [FieldType.Switch]: true,\n [FieldType.CheckboxGroup]: true,\n [FieldType.RadioButtonGroup]: true,\n [FieldType.Slider]: true\n};\n\n/** Set the Fields width directly to the StyledField wrapper */\nexport const FieldsApplyingWidthToWholeField: Record = {\n [FieldType.CheckboxGroup]: true\n};\n\n/**\n * Fields without minHeight should be these, which are not displayed usually on one line with another fields,\n * because using top margin instead of min-height won't align them vertically with the rest fields\n */\nexport const FieldsWithoutMinHeight: Record = {\n [FieldType.Text]: true,\n [FieldType.CheckboxGroup]: true\n};\n\nexport const FieldsWithOwnReadOnlyMaxWidth: Record = {\n [FieldType.LabelSelect]: true // label selection has its own max width / overflow implementation (4 labels)\n};\n\ninterface IState {\n isHovered: boolean;\n showDisabledMessage: boolean;\n}\n\nclass Field extends React.PureComponent {\n static defaultProps: Partial = {\n textAlign: TextAlign.Left\n };\n\n private _refComparisonLabel = React.createRef();\n // create unique id to match label with input for accessibility purposes\n id = uuidv4();\n\n state = {\n isHovered: false,\n showDisabledMessage: false\n };\n\n _isRequired = (): boolean => {\n return !this.props.isReadOnly && this.props.isRequired && !FieldsWithoutRequired[this.props.type];\n };\n\n _showLabel = (): boolean => {\n return this.props.labelStatus === LabelStatus.Visible || this.props.isValueHelp ||\n (!FieldsWithOwnLabelWithSpacePlaceholder[this.props.type] && (this.props.label && this.props.labelStatus !== LabelStatus.Removed\n && this.props.labelStatus !== LabelStatus.Hidden));\n };\n\n _hasOwnLabel = (): boolean => {\n return !this.props.isValueHelp && FieldsWithOwnLabel[this.props.type] && !FieldsWithOwnLabelWithSpacePlaceholder[this.props.type]\n && this.props.labelStatus !== LabelStatus.Visible;\n };\n\n handleComparisonHover = (isHovered: boolean): void => {\n const isAuditTrail = this.isAuditTrail();\n if (isAuditTrail) {\n this.setState({ isHovered });\n }\n };\n\n /** Absolutely positioned FieldMouseCapture captures all events.\n * Sometimes we want to pass mouseenter and mouseleave events to field content,\n * e.g. to show Tooltip with tokens on disabled MultiSelect */\n passEventToFieldContent = (event: React.MouseEvent): void => {\n const content = (event.target as HTMLElement).parentElement.querySelector((`[data-testid=${TestIds.FieldContent}]`))?.firstChild;\n\n if (!content) {\n return;\n }\n\n const newEvent = new MouseEvent(event.type, {\n ...(event as any)\n });\n content.dispatchEvent(newEvent);\n };\n\n onMouseEnter = (event: React.MouseEvent): void => {\n if (this.isAuditTrail()) {\n return this.handleComparisonHover(true);\n }\n\n if (this.shouldShowDisableMessageOnClick()) {\n this.passEventToFieldContent(event);\n }\n };\n\n onMouseLeave = (event: React.MouseEvent): void => {\n if (this.isAuditTrail()) {\n return this.handleComparisonHover(false);\n }\n\n if (this.shouldShowDisableMessageOnClick()) {\n this.passEventToFieldContent(event);\n }\n };\n\n isAuditTrail = (): boolean => {\n const auditTrailMode = (this.props as IFieldInfoProperties).auditTrailMode;\n if (auditTrailMode === AuditTrailFieldMode.DisplayedButIgnored) {\n return false;\n }\n\n return !!this.props.auditTrailData;\n };\n\n getAuditTrailDataForField = (useOwnHandler: boolean): IAuditTrailData => {\n if (useOwnHandler && this.props.auditTrailData?.type) {\n let type;\n // even for fields with custom audit trail rendering field still does mouse hover thing, so we don't need to\n // handle in every control and can focus on rendering itself\n // fields basically switches types between (no)difference and (no)hoveredDifference\n if (this.props.auditTrailData.type === AuditTrailFieldType.NoDifference) {\n type = this.state.isHovered ? AuditTrailFieldType.HoveredNoDifference : AuditTrailFieldType.NoDifference;\n } else {\n type = this.state.isHovered ? AuditTrailFieldType.HoveredDifference : AuditTrailFieldType.Difference;\n }\n\n return {\n ...this.props.auditTrailData,\n type\n };\n }\n\n return this.props.auditTrailData;\n };\n\n handleCaptureClick = (): void => {\n this.setState({\n showDisabledMessage: true\n });\n };\n\n shouldShowDisableMessageOnClick = (): boolean => {\n return !this.props.isReadOnly && this.props.isDisabled && !!this.props.disabledMessage;\n };\n\n handleAlertFade = (): void => {\n this.setState({\n showDisabledMessage: false\n });\n };\n\n renderDisabledMessage = (): ReactElement => {\n // do not use oneLiner as field alert. The alert is in popover and if the content don't fit,\n // we are rendering tooltip over floting alert with ellipsis, which looks very strange\n // Alert itself is in Popper, so it should be OK to show whole content to the user.\n return (\n \n );\n };\n\n renderFieldContent = (ref?: React.Ref): React.ReactElement => {\n const type = this.props.type;\n const sharpRight = this.props.isSharpRight ?? (this.props.children as any)?.props?.isSharpRight;\n const sharpLeft = this.props.isSharpLeft ?? (this.props.children as any)?.props?.isSharpLeft;\n const additionalChildProps: Partial = {};\n const isAuditTrail = this.isAuditTrail();\n\n if (isAuditTrail) {\n // only add 'auditTrailData' if needed\n // otherwise forcing it to child as its prop can cause error when div is direct child of Field instead of react component\n additionalChildProps[\"auditTrailData\"] = this.getAuditTrailDataForField(isAuditTrail);\n }\n\n return (\n \n <>\n {this.props.isSynchronized && !this.props.isSharpLeft ? () : null}\n {\n React.Children.map(this.props.children, (child) => {\n return child && React.cloneElement(child as React.ReactElement, {\n width: this.props.isReadOnly && !this.props.useWidthWhenReadOnly ? \"auto\" : (child as React.ReactElement).props.width,\n // don't pass id to icon next to the field, causes html error because there are two elements in dom with same id\n // only relevant to SmartTemporalPropertyDialog pending button\n id: (child as React.ReactElement).type === IconButton || (child as React.ReactElement)?.props?.id ? null : this.id,\n ...additionalChildProps\n });\n })\n }\n \n \n );\n };\n\n render() {\n const type = this.props.type;\n const isAuditTrail = this.isAuditTrail();\n\n const auditTrailMode = (this.props as IFieldInfoProperties).auditTrailMode;\n if (isAuditTrail && auditTrailMode === AuditTrailFieldMode.Hidden) {\n return null;\n }\n\n const isAuditTrailIgnored = isAuditTrail && auditTrailMode === AuditTrailFieldMode.DisplayedButIgnored;\n // if sharpRight not specified on Field, try to take a look on the children (Input)\n const sharpRight = this.props.isSharpRight ?? (this.props.children as any)?.props?.isSharpRight;\n const sharpLeft = this.props.isSharpLeft ?? (this.props.children as any)?.props?.isSharpLeft;\n const width = this.props.isFullRow ? \"100%\" : this.props.isReadOnly && !this.props.useWidthWhenReadOnly ? \"auto\" : this.props.width;\n\n return (\n \n {(isAuditTrail || this.shouldShowDisableMessageOnClick()) &&\n \n }\n {!this._hasOwnLabel() && this.props.labelStatus !== LabelStatus.Removed && <>\n
\n \n {this.props.label}\n \n
\n \n }\n {!this.state.showDisabledMessage\n ? this.renderFieldContent()\n : \n {this.state.showDisabledMessage ? this.renderDisabledMessage() : null}\n }\n \n );\n }\n}\n\nexport default Field;","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components/macro\";\n\nimport { IconSize } from \"../../../enums\";\nimport { IconButton } from \"../../button\";\nimport { CheckIcon, CloseIcon } from \"../../icon\";\n\nexport interface IFieldConfirmButtons {\n onCancel: () => void;\n onConfirm: () => void;\n withoutConfirm?: boolean;\n iconSize?: string;\n isLight?: boolean;\n onBlur?: (e: React.FocusEvent) => void;\n passRef?: React.Ref;\n style?: React.CSSProperties;\n className?: string;\n}\n\nconst StyledFieldConfirmButtons = styled.div`\n display: flex;\n z-index: 1;\n`;\n\nexport const FieldConfirmButtons = React.memo(\n ({ onCancel, onConfirm, withoutConfirm, onBlur, passRef, className, style, iconSize, isLight }: React.PropsWithChildren) => {\n const { t } = useTranslation([\"Common\"]);\n const iconSizeValue: string = iconSize ?? IconSize.S;\n\n return (\n \n \n \n \n {!withoutConfirm &&\n \n \n \n }\n \n );\n});","import styled from \"styled-components/macro\";\n\nimport { FIELD_VER_MARGIN, FIELD_VER_MARGIN_SMALL, StyledField, StyledFieldContent } from \"./Field.styles\";\n\nexport const StyledFieldsWrapper = styled.div<{\n $isColumn?: boolean;\n $smallerGap?: boolean;\n $isWithoutWrap?: boolean;\n}>`\n // use gap instead of margin on field + negative margin here \n row-gap: ${props => props.$smallerGap ? FIELD_VER_MARGIN_SMALL : FIELD_VER_MARGIN};\n display: flex;\n flex-direction: ${props => props.$isColumn ? \"column\" : \"row\"};\n flex-wrap: ${props => props.$isWithoutWrap ? \"nowrap\" : \"wrap\"};\n align-items: ${props => props.$isColumn ? \"flex-start\" : \"flex-end\"};\n flex-grow: 1;\n\n & > *:last-child {\n margin-right: 0;\n\n & > ${StyledFieldContent} {\n padding-right: 0;\n }\n\n & > ${StyledField}:last-child { // if last child is grouped field\n margin-right: 0;\n }\n }\n\n // when all fields are invisible, empty wrapper renders extra space there -> hide it also\n &:empty,\n &:not(:has(> *:not(:empty))) {\n display: none;\n }\n`;","import React, { PropsWithChildren } from \"react\";\n\nimport TestIds from \"../../../testIds\";\nimport { StyledFieldsWrapper } from \"./FieldsWrapper.styles\";\n\ninterface IProps {\n /** Renders as flex column, instead of row */\n isColumn?: boolean;\n /** Used for smaller gap between rows (used in FastEntry) */\n smallerGap?: boolean;\n isWithoutWrap?: boolean;\n testid?: string;\n passRef?: React.Ref;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * Everytime multiple Field components are rendered next to each other,\n * they have to be put into FieldsWrapper.\n * This way, margins and row-gap will be correctly applied.\n *\n * */\nclass FieldsWrapper extends React.PureComponent> {\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default FieldsWrapper;\n","import { ellipsis } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { TextAlign } from \"../../../enums\";\nimport { T_PLAIN_big_hig, T_PLAIN_small, textAlignToJustify } from \"../../../global.style\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\n\nexport const StyledLabel = styled.div<{\n isLight: boolean;\n _width: string;\n _maxWidth: string;\n textAlign: TextAlign;\n isDisabled: boolean;\n}>`\n width: ${props => props._width};\n max-width: ${props => props._maxWidth};\n height: 16px;\n display: flex;\n color: ${props => !props.isLight ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n margin-bottom: 3px;\n justify-content: ${props => textAlignToJustify(props.textAlign)};\n position: relative;\n opacity: ${props => props.isDisabled ? 0.5 : 1};\n\n ${T_PLAIN_big_hig};\n`;\n\nexport const LabelWrapper = styled.div<{\n hasPadding: boolean;\n isAuditTrail: boolean;\n}>`\n position: relative;\n max-width: 100%;\n background: ${props => props.isAuditTrail ? props.theme.C_AUDIT_TRAIL_NO_DIFF : \"\"};\n ${props => props.isAuditTrail && css`\n color: ${props.theme.C_TEXT_primary};\n `}\n border-radius: 3px;\n padding: 0 ${props => props.hasPadding ? \"12px\" : \"0\"};\n\n & + button {\n margin-left: ${props => props.hasPadding ? \"-10px\" : \"2px\"};\n align-self: center;\n }\n\n display: flex;\n align-items: center;\n`;\n\nexport const InnerLabel = styled.label<{\n auditTrailType: AuditTrailFieldType;\n useMinWidth?: boolean;\n}>`\n opacity: ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference ?\n props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY : props.auditTrailType === AuditTrailFieldType.NoDifference ? 0 : 1};\n ${ellipsis()}\n min-width: ${props => props.useMinWidth ? \"50px\": \"\"};\n`;\n\nexport const RequiredMark = styled.div<{\n hasPadding?: boolean;\n auditTrailType?: AuditTrailFieldType;\n}>`\n position: absolute;\n opacity: ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference ?\n props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY : props.auditTrailType === AuditTrailFieldType.NoDifference ? 0 : 1};\n width: 5px;\n height: 5px;\n // todo: color\n background-color: #e50142;\n // There should be 3px space between text, so it means (hasPadding ? 12px : 0px) - 3px;\n left: ${props => props.hasPadding ? \"9px\" : \"-3px\"};;\n top: 0;\n transform: translate(-100%, 50%);\n border-radius: 50%;\n`;\n\nexport const LabelDescription = styled.span`\n ${T_PLAIN_small};\n margin-left: 8px;\n font-weight: normal;\n font-style: italic;\n white-space: nowrap;\n flex-shrink: 0;\n ${ellipsis()};\n max-width: 70%;\n`;","import React, { PropsWithChildren } from \"react\";\nimport { InnerLabel, LabelDescription, LabelWrapper, RequiredMark, StyledLabel } from \"./Label.styles\";\nimport { TextAlign } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { TooltipIconInfo } from \"../../tooltipIcon\";\nimport { HOTSPOT_ID_ATTR } from \"../../hotspots/Hotspots.utils\";\nimport { isNotDefined } from \"@utils/general\";\nimport { StyledTooltipContent } from \"../../tooltipIcon/TooltipIcon.styles\";\nimport Tooltip from \"../../tooltip\";\n\ninterface IProps {\n // id of the input for accessibility\n for?: string;\n /** Smaller, italic text, next to the label*/\n description?: string;\n hotspotId?: string;\n isLight?: boolean;\n isRequired?: boolean;\n isDisabled?: boolean;\n isHidden?: boolean;\n isWithoutColon?: boolean;\n width?: string;\n maxWidth?: string;\n textAlign?: TextAlign;\n className?: string;\n style?: React.CSSProperties;\n isSharpLeft?: boolean;\n isSharpRight?: boolean;\n hasPadding?: boolean;\n auditTrailData?: IAuditTrailData;\n tooltip?: string;\n}\n\nclass Label extends React.PureComponent> {\n static defaultProps = {\n hasPadding: true,\n textAlign: TextAlign.Left\n };\n\n render() {\n const isAuditTrailDiff = this.props.auditTrailData?.type === AuditTrailFieldType.NoDifference || this.props.auditTrailData?.type === AuditTrailFieldType.HoveredNoDifference;\n return (\n \n {(ref) =>\n \n {!this.props.isHidden &&\n <>\n \n {this.props.isRequired &&\n \n }\n \n {this.props.children}{isNotDefined(this.props.children) || this.props.isWithoutColon ? null : \":\"}\n \n {this.props.description &&\n {this.props.description}\n }\n \n {this.props.tooltip && (\n \n {this.props.tooltip}\n \n )}\n \n }\n }\n \n );\n }\n}\n\nexport {Label};","import React, { useCallback, useState } from \"react\";\n\nimport { KeyName } from \"../../../keyName\";\nimport Input, { IInputOnBlurEvent, IInputOnChangeEvent, IInputProps } from \"../input\";\nimport NumericInput, { IProps as NumericInputProps } from \"../numericInput/NumericInput\";\nimport NumericWriteLine, { IProps as NumericWriteLineProps } from \"../writeLine/NumericWriteLine\";\nimport WriteLine, { IProps as WriteLineProps } from \"../writeLine/WriteLine\";\n\nexport interface ISubmittedInput {\n value?: T;\n onChange?: (e: IInputOnChangeEvent) => void;\n onBlur?: (e: IInputOnBlurEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n// TODO remove submittedInput wrapper and instead add some option for debouncing settings directly to Input (or new DebouncedInput)\n// because we want to have debouncing on input anyway\n// submittedInput case would be handled by debouncing set to infinity => it would only be confirmed by pressing enter or blur\n\n/** Wrapped component will only fire onChange event on enter or blur*/\nexport const submittedInput =

, Type>(Component: React.ComponentType

) => {\n return React.forwardRef((props: P, ref) => {\n const [value, setValue] = useState(null);\n\n const handleChange = useCallback((e: IInputOnChangeEvent) => {\n if (e.triggerAdditionalTasks) {\n setValue(props.value);\n props.onChange(e);\n } else {\n setValue(e.value);\n }\n }, [props.onChange]);\n\n const handleBlur = useCallback(() => {\n if (value !== props.value) {\n props.onChange({ value });\n }\n }, [value, props.value, props.onChange]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter && value !== props.value) {\n props.onChange({ value });\n }\n }, [value, props.value, props.onChange]);\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n return (\n \n );\n });\n};\n\nexport const SubmittedWriteLine = submittedInput(WriteLine);\nexport const SubmittedNumericWriteLine = submittedInput(NumericWriteLine);\nexport const SubmittedInput = submittedInput(Input);\nexport const SubmittedNumericInput = submittedInput(NumericInput);","import React from 'react';\nimport { ColoredIcon, SynchronizationIcon } from \"../../icon\";\nimport { IconSize } from \"../../../enums\";\nimport { SyncSymbolStyled } from \"./Field.styles\";\n\ninterface IProps {\n}\n\nconst SyncSymbol: React.FC = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default SyncSymbol;","import styled from \"styled-components/macro\";\nimport { ellipsis } from \"polished\";\nimport { T_BOLD_tiny } from \"../../../global.style\";\n\n\nexport const StyledError = styled.div`\n position: absolute;\n\n width: 100%;\n margin-left: 0;\n background-color: ${props => props.theme.C_SEM_el_bad};\n height: 3px;\n border-bottom-right-radius: 1.5px;\n border-top-right-radius: 1.5px;\n z-index: 5;\n`;\n\nexport const Circle = styled.div`\n position: absolute;\n top: 0; \n left: 1px;\n width: 16px;\n height: 16px;\n background-color: ${props => props.theme.C_SEM_el_bad};\n\n // we will position center of the circle by top/left position\n transform: translate(-50%, -50%);\n border-radius: 50%;\n\n display: flex;\n justify-content: center;\n`;\n\nexport const ErrorText = styled.div`\n position: absolute;\n width: 100%;\n top: 3px;\n left: 0;\n ${ellipsis(\"100%\")}\n ${T_BOLD_tiny};\n user-select: none;\n pointer-events: none;\n`;","import { Circle, ErrorText, StyledError } from \"./FormError.styles\";\nimport TestIds from \"../../../testIds\";\nimport React from \"react\";\nimport { CloseIcon } from \"../../icon\";\n\n\ninterface IErrorProps {\n errorText: string;\n hideCircle?: boolean;\n hideText?: boolean;\n useErrorMinWidth?: boolean;\n}\n\ninterface IErrorState {\n isTextVisible: boolean;\n}\n\nexport default class FormError extends React.PureComponent {\n _errorRef = React.createRef();\n\n state: IErrorState = {\n isTextVisible: true\n };\n\n componentDidMount() {\n this._checkErrorVisibility();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n this._checkErrorVisibility();\n }\n\n _checkErrorVisibility(): void {\n if (this.props.useErrorMinWidth) {\n const minWidth = 60;\n // we show only error without text if the input is too small to display it. Text is always visible in tooltip\n const isTextVisible = this._errorRef.current?.offsetWidth >= minWidth;\n if (isTextVisible !== this.state.isTextVisible) {\n this.setState({ isTextVisible });\n }\n }\n }\n\n render() {\n return (\n \n {!this.props.hideCircle && (\n \n \n \n )}\n {!this.props.hideText && (\n \n {(this.state.isTextVisible && this.props.errorText) || \"\"}\n \n )}\n \n );\n }\n}\n","import React, { useRef, useState } from \"react\";\nimport { Validator } from \"../../../model/Validator\";\nimport { useTranslation } from \"react-i18next\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport FormError from \"./FormError\";\nimport { IValidationError } from \"../../../model/Validator.types\";\n\n// internal props between HOC and wrapped component\nexport interface WithErrorAndTooltip {\n hasError?: boolean;\n hasErrorText?: boolean;\n errorAndTooltip?: React.ReactNode;\n}\n\n// Props to pass through to wrapped component\ninterface WithErrorAndTooltipExtendedProps extends WithErrorAndTooltip {\n value?: string;\n onBlur?: (...args: any[]) => void;\n onFocus?: (...args: any[]) => void;\n passRef?: React.Ref;\n outerRef?: React.Ref;\n isReadOnly?: boolean;\n}\n\n// enhanced component props\nexport interface WithErrorAndTooltipProps {\n error?: IValidationError;\n tooltip?: string | (() => string);\n}\n\nexport interface WithErrorAndTooltipSettings {\n // render error state without circle, even when the input is focused\n renderErrorWithFocus?: boolean;\n renderErrorTextWithFocus?: boolean;\n useErrorMinWidth?: boolean;\n preventValueTooltip?: boolean;\n}\n\nexport const withErrorAndTooltip =

(WrappedComponent: React.ComponentType

, settings?: WithErrorAndTooltipSettings) => {\n\n return React.forwardRef((props: P & WithErrorAndTooltipProps, ref) => {\n const { error, tooltip, ...passProps } = props;\n\n const _inputRef = useRef();\n\n const { i18n } = useTranslation(\"Common\");\n\n const [hasFocus, setHasFocus] = useState(false);\n const [showTooltip, setShowTooltip] = useState(true);\n // if error or manual tooltip is set, we want to always show the tooltip on mouse over\n // otherwise, show full \"value\" only when it's overflowing\n const showTooltipOnlyWhenOverflowing = !(props.tooltip || props.error);\n\n function _getErrorText(error: IValidationError) {\n return Validator.getErrorText(error, i18n);\n }\n\n const renderErrorStateOnFocus = settings?.renderErrorWithFocus !== false;\n\n // we can turn off rendering error state when field is focused, but by default it should be rendered to\n // support form submission by shortcuts (so focus is kept in the current field and the user should be\n // informed about the error state in the current field)\n const _showError = (renderErrorStateOnFocus || !hasFocus) && !!props.error;\n\n const _getTooltip = () => {\n if (typeof props.tooltip === \"function\") {\n return props.tooltip();\n }\n\n return props.tooltip || (props.error && (\n {_getErrorText(props.error)})) || (!settings?.preventValueTooltip && props.value);\n };\n\n const handleBlur = (...args: any[]) => {\n setHasFocus(false);\n setShowTooltip(true);\n\n props.onBlur?.(...args);\n };\n\n const handleFocus = (...args: any[]) => {\n if (!hasFocus) {\n setHasFocus(true);\n setShowTooltip(false);\n }\n props.onFocus?.(...args);\n };\n\n function renderError() {\n return (\n <>\n {_showError && (\n \n )}\n \n );\n }\n\n return (\n \n {(refForTooltip, refRowTooltipOverflowCheck) =>\n }\n \n );\n });\n};\n","import { ClickableText } from \"@components/clickable/Clickable.styles\";\nimport { transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { Status, TextAlign } from \"../../../enums\";\nimport {\n getDisabledStyle,\n getFocusBorderDefinition,\n getSemanticElColor,\n LocalStackOrder,\n T_PLAIN_big\n} from \"../../../global.style\";\nimport TestIds from \"../../../testIds\";\nimport { StyledBusyIndicator, StyledBusyIndicatorWrapper } from \"../../busyIndicator/BusyIndicator.styles\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { Circle, StyledError } from \"../formError/FormError.styles\";\nimport { StyledStepper } from \"../numericValueInputBase/Stepper.styles\";\n\nexport interface ISharpBorders {\n isSharpLeft?: boolean;\n isSharpRight?: boolean;\n}\n\nexport const InputBorderRadiusLeft = css`\n border-top-left-radius: ${props => props.isSharpLeft ? props.theme.borderRadius : props.theme.borderLargeRadius};\n border-bottom-left-radius: ${props => props.isSharpLeft ? props.theme.borderRadius : props.theme.borderLargeRadius};\n`;\n\nexport const InputBorderRadiusRight = css`\n border-top-right-radius: ${props => props.isSharpRight ? props.theme.borderRadius : props.theme.borderLargeRadius};\n border-bottom-right-radius: ${props => props.isSharpRight ? props.theme.borderRadius : props.theme.borderLargeRadius};\n`;\n\nexport const InputBorderRadius = css`\n ${InputBorderRadiusLeft};\n ${InputBorderRadiusRight};\n`;\n\nexport const StyledContent = styled.div`\n margin-left: 12px;\n align-self: center;\n \n ${StyledStepper} {\n // position absolutely to prevent jumping when there is error in the field\n position: absolute;\n top: 0;\n right: 7px;\n }\n`;\n\nexport const StyledValueUnit = styled.div<{ hasErrorText: boolean }>`\n ${T_PLAIN_big};\n color: ${props => props.theme.C_ACT_thick_line};\n margin-top: ${props => props.hasErrorText ? \"9px\" : 0};\n height: ${props => props.hasErrorText ? \"14px\" : \"100%\"};\n white-space: nowrap;\n`;\n\ninterface IStyledInput {\n showErrorText?: boolean;\n showError?: boolean;\n textAlign?: TextAlign;\n hasIcon?: boolean;\n _cursor?: string;\n _width?: string;\n isDisabled?: boolean;\n auditTrailType?: AuditTrailFieldType;\n}\n\nconst StyledInputCss = css`\n border: none;\n outline: none;\n // margin-right: ${props => props.hasIcon ? \"42px\" : (props.textAlign === TextAlign.Right ? \"0\" : \"8px\")};\n text-align: ${props => props.textAlign || TextAlign.Left};\n width: 100%;\n padding: 0;\n background-color: ${props => props.theme.C_FIELD_fill};\n caret-color: ${({ theme }) => theme.C_TEXT_primary};\n border-radius: ${({ theme }) => theme.borderRadius};\n height: ${props => props.showErrorText ? \"14px\" : \"100%\"};\n cursor: ${props => props._cursor || \"auto\"};\n\n /* Chrome, Safari, Edge, Opera */\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* background-color transition delays default chrome style so we can use transparent background for autofill */\n\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px ${props => transparentize(0.5, props.theme.C_BTN_4L_trans_bg_selected)} inset !important;\n -webkit-transition: background-color 9999s ease-out;\n -webkit-text-fill-color: ${props => props.theme.C_TEXT_primary};\n }\n\n &[type=\"search\"]::-webkit-search-decoration,\n &[type=\"search\"]::-webkit-search-cancel-button,\n &[type=\"search\"]::-webkit-search-results-button,\n &[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n }\n\n -moz-appearance: textfield;\n\n &::placeholder {\n font-style: italic;\n color: ${props => props.theme.C_ACT_thick_line};\n }\n`;\n\nexport const AuditTrailInputCss = css`\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: 0,\n background: props.theme.C_AUDIT_TRAIL_NO_DIFF\n }}\n\n ${props => (props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n }}\n`;\n\n\ninterface IStyledTextArea extends IStyledInput {\n maxRows: number;\n}\n\nconst INPUT_FONT_SIZE = 14;\n\n\ninterface IStyledInputParts {\n isSharpLeft: boolean;\n isSharpRight: boolean;\n isActive?: boolean;\n hasIcon?: boolean;\n cursor?: string;\n isDisabled?: boolean;\n}\n\nexport const StyledTextArea = styled.textarea.attrs(() => ({\n rows: 1\n}))`\n ${StyledInputCss};\n\n margin-top: ${props => props.showErrorText ? \"5px\" : 0};\n\n // \"em\" resulted in rounding errors, using exact pixels instead \n // max-height: ${props => `${(props.maxRows * 1.2).toFixed(1)}px`};\n max-height: ${props => `${Math.ceil(props.maxRows * 1.2 * INPUT_FONT_SIZE)}px`};\n\n ${AuditTrailInputCss};\n resize: none;\n`;\n\nexport const InputBorder = css`\n border-color: ${props => props.isActive ?\n \"transparent\" :\n props.isDisabled ? transparentize(0.5, props.theme.C_ACT_der) : props.theme.C_ACT_main\n };\n`;\n\nexport const InputStatusCommonCSS = css`\n height: 100%;\n top: 0;\n position: absolute;\n border-radius: 2px;\n width: 2px;\n`;\n\nexport interface IStatus {\n status: Status;\n}\n\nexport const InputStatusStraight = styled.div`\n ${InputStatusCommonCSS};\n left: ${props => props.left ?? 0};\n background: ${props => getSemanticElColor(props.theme, props.status)};\n`;\n\nconst borderCircle = css`\n content: \"\";\n width: 2px;\n height: 2px;\n border-radius: 2px;\n background: ${props => getSemanticElColor(props.theme, props.status)};\n position: absolute;\n left: ${props => props.isSharpLeft ? 0 : \"14px\"};\n`;\n\nexport const InputStatus = styled.div`\n ${InputStatusCommonCSS};\n width: ${props => props.isSharpLeft ? props.theme.borderRadius : props.theme.borderLargeRadius};\n left: 0;\n border: 2px solid ${props => getSemanticElColor(props.theme, props.status)};\n border-right: none;\n ${InputBorderRadiusLeft};\n\n &:before {\n ${borderCircle};\n top: -2px;\n }\n\n &:after {\n ${borderCircle};\n bottom: -2px;\n }\n`;\n\nexport const IconWrapper = styled.div <{\n isSharpRight?: boolean;\n isActive?: boolean;\n}>`\n position: absolute;\n cursor: pointer;\n right: 0;\n top: 0;\n height: 100%;\n width: 34px;\n padding-left: 3px;\n ${InputBorderRadiusRight};\n background-color: ${props => props.isActive ? props.theme.C_ACT_hover_without_opacity : \"\"};\n`;\n\nexport const StyledInput = styled.div`\n position: relative;\n width: ${props => props._width};\n flex: 0 0 auto;\n align-items: center;\n min-height: 34px;\n height: ${props => props._height || \"fit-content\"};\n display: flex;\n background: ${props => props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference ?\n props.theme.C_AUDIT_TRAIL_NO_DIFF : props.theme.C_FIELD_fill};\n border: ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) ?\n `1px solid ${props.theme.C_AUDIT_TRAIL_NO_DIFF}` : `1px solid ${props.theme.C_FIELD_line}`};\n cursor: ${props => props._cursor || ((props.isDisabled || props.isSynchronized) ? \"default\" : \"text\")};\n ${InputBorderRadius};\n ${props => getDisabledStyle(props.isDisabled)};\n\n ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) && {\n border: `3px solid ${props.theme.C_AUDIT_TRAIL_DIFF}`\n}}\n ${props => props.auditTrailType === AuditTrailFieldType.NoDifference && `\n & svg {\n display: none !important\n };\n & ${StyledValueUnit} {\n opacity: 0;\n }; \n `}\n ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference && `\n & svg {\n opacity: ${props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY}\n }\n `}\n ${StyledError} {\n width: ${props => props.isSharpRight ? \"calc(100% - 14px)\" : \"calc(100% - 28px)\"};\n top: -1px; // negates input border\n\n ${Circle} {\n transform: translate(-100%, -50%);\n }\n\n [data-testid=\"${TestIds.ErrorText}\"] {\n width: ${props => !props._hasIcon ? \"100%\" : \"calc(100% - 18px)\"};\n text-align: left;\n }\n }\n\n ${StyledBusyIndicator} {\n background-color: transparent;\n justify-content: flex-end;\n padding-right: 3px;\n }\n\n ${StyledBusyIndicatorWrapper}[aria-hidden=\"true\"] + ${IconWrapper} {\n display: none;\n }\n\n`;\n\nexport const LinkWrapper = styled.div<{\n hasIcon: boolean;\n auditTrailType?: AuditTrailFieldType;\n}>`\n padding-left: 13px; // 12 input padding + 1 for border \n padding-top: 8px;\n position: absolute;\n width: ${props => props.hasIcon ? \"calc(100% - 50px)\" : \"calc(100% - 15px)\"};\n max-width: fit-content;\n z-index: ${props => props.auditTrailType === AuditTrailFieldType.NoDifference ? null : LocalStackOrder.AboveContent};\n \n ${ClickableText} {\n padding: 2px 5px;\n position: relative;\n top: -2px;\n height: 22px;\n border-radius: ${props => props.theme.borderRadius};\n border: solid 1px ${props => props.theme.C_FIELD_line};\n background-color: ${props => props.theme.C_FIELD_fill};\n width: fit-content;\n flex: 0 0 auto;\n user-select: none;\n \n &:hover {\n border-color: ${props => props.theme.C_ACT_main};\n }\n }\n \n ${T_PLAIN_big};\n`;\n\nexport const InputHoverContainer = styled.div <{\n isSharpRight: boolean;\n isSharpLeft: boolean;\n _hasIcon: boolean;\n _hasUnit?: boolean;\n isActive?: boolean;\n textAlign?: TextAlign;\n isSynchronized?: boolean;\n}>`\n width: 100%;\n height: fit-content;\n padding: 5px ${props => props._hasIcon ? \"40px\" : \"10px\"} 5px 12px;\n overflow: hidden;\n ${T_PLAIN_big};\n\n input, textarea {\n padding-right: ${props => props._hasIcon || props._hasUnit || props.textAlign === TextAlign.Right ? \"0\" : \"10px\"};\n padding-left: ${props => props.textAlign === TextAlign.Right ? \"8px\" : \"0\"};\n }\n\n display: flex;\n align-items: flex-start;\n\n &:after {\n display: ${props => props.isActive ? \"block\" : \"none\"};\n content: '';\n position: absolute;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 1px solid ${props => props.theme.C_ACT_main};\n left: 2px;\n top: 2px;\n ${InputBorderRadius};\n pointer-events: none;\n }\n\n &:hover:after,\n &:focus-within:after {\n display: block;\n }\n\n ${props => props.isSynchronized && getDisabledStyle(true)};\n`;\n\nexport const StyledHtmlInput = styled.input `\n ${StyledInputCss};\n\n margin-top: ${props => props.showErrorText ? \"8px\" : 0};\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: ${props => props._width};\n ${AuditTrailInputCss};\n`;\n\nexport const IconDelimiter = styled.div`\n width: 2px;\n left: 0;\n top: 3px;\n height: calc(100% - 6px);\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n display: none;\n position: absolute;\n\n ${IconWrapper}:hover & {\n display: block;\n }\n`;\n\nexport const SyncSymbolDefaultLeft = -20;\n\nexport const FakeTabbingButton = styled.button`\n width: 0;\n height: 0;\n opacity: 0;\n &:focus + div:before {\n ${getFocusBorderDefinition({\n offset: -3,\n borderRadius: \"50%\"\n })};\n left: 1px;\n right: 5px;\n }\n`;","import { composeRefHandlers, handleRefHandlers, isObjectEmpty } from \"@utils/general\";\nimport autosize from \"autosize\";\nimport { debounce } from \"lodash\";\nimport React, { FocusEvent } from \"react\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { Status, TextAlign } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { IValidationError } from \"../../../model/Validator.types\";\nimport TestIds from \"../../../testIds\";\nimport { getTabIndex } from \"../../auditTrail/Utils\";\nimport BusyIndicator from \"../../busyIndicator\";\nimport { BusyIndicatorSize } from \"../../busyIndicator/BusyIndicator.utils\";\nimport { IDayInterval } from \"../date/utils\";\nimport { WithErrorAndTooltip, withErrorAndTooltip, WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { renderReadOnlyText } from \"../utils\";\nimport {\n FakeTabbingButton,\n IconDelimiter,\n IconWrapper,\n InputHoverContainer,\n InputStatus,\n LinkWrapper,\n StyledContent,\n StyledHtmlInput,\n StyledInput,\n StyledTextArea,\n StyledValueUnit\n} from \"./Input.styles\";\nimport { IFormatterFns, withFormatter } from \"./WithFormatter\";\n\nexport interface IInputOnChangeEvent {\n value: Type;\n origEvent?: React.ChangeEvent;\n /** Distinguish between liveChange (user is writing) and change that should be considered as trigger\n * - steppers in NumericInput, selection in date popups */\n triggerAdditionalTasks?: boolean;\n}\n\nexport interface IInputOnBlurEvent {\n origEvent: FocusEvent;\n wasChanged: boolean;\n}\n\nexport interface IInputRowsChangeEvent {\n numRows: number;\n newHeight: string;\n}\n\n/** Shared props for every component that lets user write or select some kind of value.\n * Each of those components has to be able to work with these props.*/\nexport interface IValueInputComponentProps {\n /** Component should render as always, but in disabled state (lowered opacity, no pointer events) */\n isDisabled?: boolean;\n /** Component should render as text only, without input visuals */\n isReadOnly?: boolean;\n isLight?: boolean;\n showChange?: boolean;\n}\n\n/** Shared props for every component that internaly renders Input */\nexport interface ISharedInputProps extends IValueInputComponentProps, IFormatterFns {\n width?: string;\n height?: string;\n error?: IValidationError;\n /** Type of starting border-radius */\n isSharpLeft?: boolean;\n /** Type of ending border-radius */\n isSharpRight?: boolean;\n name?: string;\n id?: string;\n textAlign?: TextAlign;\n // text put into input and writelines as default(no value) background text\n placeholder?: string;\n // html attribute autocomplete, defaults to \"off\"\n autocomplete?: string;\n // text put into the end of the input and writeline, with grey color and always visible - typically to show unit\n unit?: string;\n // like placeholder, but doesn't disappear when value is used\n description?: string;\n // disables just the input value\n // TODO remove if we won't need this isDisabled is enough\n isSynchronized?: boolean;\n isMultiLine?: boolean;\n maxRows?: number;\n\n isLoading?: boolean;\n debouncedWait?: number;\n /** Indicates that icon has different action then the input click*/\n iconHasDifferentAction?: boolean;\n /** Only used for multiline input.\n * Called with current height of the input, when number of rows is changed, because of the length of the value. */\n onRowsChange?: (args: IInputRowsChangeEvent) => void;\n\n auditTrailData?: IAuditTrailData;\n}\n\nexport const SHARED_INPUT_PROPS = [\n \"width\", \"height\", \"error\", \"isDisabled\", \"isReadOnly\", \"isLight\", \"id\", \"isLoading\",\n \"isSharpLeft\", \"isSharpRight\", \"isSynchronized\", \"name\", \"textAlign\", \"tooltip\", \"isRequired\", \"showChange\",\n \"placeholder\", \"isMultiLine\", \"maxRows\", \"onRowsChange\", \"auditTrailData\", \"debouncedWait\", \"iconHasDifferentAction\"\n];\n\nexport const getSharedInputProps = (props: ISharedInputProps) => {\n const sharedProps: any = {};\n\n for (const sharedProp of SHARED_INPUT_PROPS) {\n sharedProps[sharedProp] = props[sharedProp as keyof ISharedInputProps];\n }\n\n return sharedProps;\n};\n\nexport interface IInputProps extends ISharedInputProps, WithErrorAndTooltip {\n onIconClick?: (e: React.MouseEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n onKeyPress?: (e: React.KeyboardEvent) => void;\n onChange?: (args: IInputOnChangeEvent) => void;\n onBlur?: (args: IInputOnBlurEvent) => void;\n onWheel?: (event: React.WheelEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n icon?: React.ReactElement;\n iconTitle?: string;\n /** Content added to the end of the input. Used f.e. in line items (add checkbox) */\n content?: React.ReactElement;\n /** Content rendered before the actual input */\n contentBefore?: React.ReactElement;\n link?: React.ReactElement;\n passRef?: React.Ref;\n value?: Type;\n type?: string;\n inputProps?: React.AllHTMLAttributes;\n outerRef?: React.RefObject;\n outerProps?: any;\n className?: string;\n isActive?: boolean;\n cursor?: string;\n onFocus?: (e: React.FocusEvent) => void;\n selectOnFocus?: boolean;\n debouncedWait?: number;\n}\n\ntype IInputPropsExtended = IInputProps & WithDomManipulator;\n\ninterface IIconProps {\n onClick: (e: React.MouseEvent) => void;\n hasAction: boolean;\n isActive: boolean;\n isSharpRight: boolean;\n icon: React.ReactElement;\n renderWrapperOnly: boolean;\n}\n\nconst Icon = (props: IIconProps) => {\n return (\n \n {!props.renderWrapperOnly && (<>\n {props.hasAction && }\n {props.icon}\n )}\n \n );\n};\n\ninterface IDomProps {\n numRows: number;\n newHeight: number;\n}\n\nclass Input extends React.Component {\n _inputRef = React.createRef();\n _wrapperRef = React.createRef();\n _wasChangedSinceBlur = false;\n\n static defaultProps = {\n iconHasDifferentAction: false\n };\n\n componentDidMount(): void {\n /** WARNING! changing multiLine during component lifecycle isn't supported */\n if (!this.props.isReadOnly && this.props.isMultiLine) {\n autosize(this._inputRef.current);\n this._inputRef.current.addEventListener(\"autosize:resized\", this.handleAutosizeResize);\n\n if (this.props.value) {\n // force height event after first render, the input can already be higher than one row\n this.handleRowsChange(true);\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.props.isMultiLine) {\n this._inputRef?.current?.removeEventListener(\"autosize:resized\", this.handleAutosizeResize);\n }\n }\n\n componentDidUpdate(prevProps: IInputPropsExtended): void {\n if (this.props.isMultiLine && prevProps.width !== this.props.width) {\n // autosize isn't triggered when value input is changed programatically\n // => Select calls autosize.update manually on item selected\n // prevProps.value !== this.props.value here would solve this (maybe not efficient?)\n autosize.update(this._inputRef.current);\n }\n if (this.props.value !== prevProps.value && this._inputRef.current === document.activeElement) {\n this._wasChangedSinceBlur = true;\n }\n }\n\n handleAutosizeResize = (): void => {\n this.handleRowsChange();\n };\n\n handleRowsChange = (firstTime = false): void => {\n this.props.domManipulatorOrchestrator.registerCallback(() => {\n if (!this._inputRef.current) {\n return null;\n }\n\n const normalLineHeight = 1.2;\n const inputStyle = getComputedStyle(this._inputRef.current);\n const lineHeight = Math.round(parseInt(inputStyle.fontSize) * normalLineHeight);\n const inputHeight = this._inputRef.current.clientHeight;\n const numRows = Math.round(inputHeight / lineHeight);\n return {\n numRows: numRows,\n newHeight: inputHeight + lineHeight\n };\n }, (data) => {\n if (!firstTime || data?.numRows > 1) {\n setTimeout(() => {\n this.props.onRowsChange?.({\n numRows: data.numRows,\n newHeight: `${data.newHeight}px`\n });\n }, 0);\n }\n },\n [this._inputRef]\n );\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n this.props.onKeyDown?.(e);\n };\n\n handleKeyPress = (e: React.KeyboardEvent): void => {\n this.props.onKeyPress?.(e);\n };\n\n handleFocus = (e: React.FocusEvent): void => {\n if (this.props.selectOnFocus) {\n this._inputRef.current?.setSelectionRange(0, this.props.value?.length ?? 0);\n }\n this.props.onFocus?.(e);\n };\n\n handleBlur = (e: FocusEvent): void => {\n this.props.onBlur?.({\n origEvent: e,\n wasChanged: this._wasChangedSinceBlur\n });\n\n this.debouncedOnChange?.flush();\n\n this._wasChangedSinceBlur = false;\n };\n\n handleOnIconClick = (event: React.MouseEvent): void => {\n this.props.onIconClick?.(event);\n };\n\n handleInputRef = (ref: HTMLInputElement): void => {\n handleRefHandlers(ref, this._inputRef, this.props.passRef);\n };\n\n debouncedOnChange = debounce((e: React.ChangeEvent) => {\n this.props?.onChange({\n value: e.target.value,\n origEvent: e,\n triggerAdditionalTasks: true\n });\n }, this.props.debouncedWait);\n\n handleOnChange = (e: React.ChangeEvent): void => {\n this.props?.onChange({\n value: e.target.value,\n origEvent: e\n });\n\n if (this.props.debouncedWait) {\n this.debouncedOnChange(e);\n }\n };\n\n handleInputClick = (event: React.MouseEvent): void => {\n if (this.props.isSynchronized || this.props.isDisabled) {\n return;\n }\n\n this._inputRef.current.focus();\n this.props.onClick && this.props.onClick(event);\n };\n\n handleMouseDown = (event: any): void => {\n // this prevents firing blur event on input when user still clicks inside wrapper (which is from user perspective\n // still input)\n if (this._wrapperRef.current.contains(event.target) && this._inputRef.current !== event.target && document.activeElement === this._inputRef.current) {\n event.preventDefault();\n }\n };\n\n getMaxRows = (): number => {\n return this.props.maxRows || 1;\n };\n\n handleFakeInputKeyDown = (e: React.KeyboardEvent): void => {\n if (e.key === KeyName.Enter) {\n this.props.onIconClick?.(e as any);\n }\n };\n\n renderIcon = (isOnTopLevel: boolean): React.ReactElement => {\n // if icon has different action, we render it on top level, so it does not share hover border with\n // input hover container. However we need to render the icon active background always in hover container,\n // so it doesn't cover the border. So in this case, we render the container twice, once with background and\n // without icon and one transparent with icon (onTopLevel)\n\n const iconHasDifferentAction = this.props.iconHasDifferentAction;\n if ((this.props.icon || this.props.isLoading)) {\n return (\n <>\n {this.props.isLoading && }\n {iconHasDifferentAction && isOnTopLevel &&\n }\n \n \n );\n }\n\n return null;\n };\n\n renderInput = (): React.ReactElement => {\n const StyledInputComponent: any = this.props.isMultiLine ? StyledTextArea : StyledHtmlInput;\n const showError = this.props.hasError;\n const showErrorText = this.props.hasErrorText;\n\n const styleProps = {\n isSharpLeft: this.props.isSharpLeft,\n isSharpRight: this.props.isSharpRight,\n isSynchronized: this.props.isSynchronized,\n isDisabled: this.props.isDisabled && !this.props.auditTrailData?.type\n };\n\n // turn of browser complete for every input\n const autocomplete = this.props.autocomplete ?? \"off\";\n\n const { unit } = this.props;\n\n const { width, ...inputProps } = { ...this.props.inputProps };\n\n const input = <>\n {this.props.link &&\n \n {this.props.link}\n \n }\n \n \n {this.props.contentBefore}\n \n {this.renderIcon(false)}\n {unit &&  {unit}}\n {this.props.content && {this.props.content}}\n {/* Error and tooltip from HOC */}\n {this.props.errorAndTooltip}\n \n {this.renderIcon(true)}\n \n {!this.props.isReadOnly && this.props.showChange &&\n }\n ;\n\n return input;\n };\n\n renderReadOnlyText = (): React.ReactElement => {\n return renderReadOnlyText(this);\n };\n\n render(): React.ReactElement {\n return this.props.isReadOnly && isObjectEmpty(this.props.auditTrailData) ? this.renderReadOnlyText() : this.renderInput();\n }\n}\n\nconst InputWithErrorAndTooltip = withDomManipulator(withErrorAndTooltip(Input));\n\n// Input with string formatter - note: we need to export it separately so we don't stack more withFormatter HOC\nexport { Input as InputComponentType, InputWithErrorAndTooltip };\n\nexport default withFormatter(InputWithErrorAndTooltip);\n","import React from \"react\";\n\nimport { IconSize } from \"../../../enums\";\nimport Input, { IInputProps } from \"./Input\";\nimport { WithPasswordInput, withPasswordInput } from \"./withPasswordInput\";\n\ninterface IProps extends IInputProps {\n\n}\n\nclass PasswordInput extends React.PureComponent {\n render = () => {\n const Icon = this.props.password.icon;\n return (\n }\n iconTitle={this.props.password.iconTitle}/>\n );\n };\n}\n\nexport default withPasswordInput(PasswordInput);","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { areSimpleValuesEqual, isDefined, isNotDefined } from \"@utils/general\";\nimport { IInputOnChangeEvent } from \"./Input\";\nimport { IParserArgs } from \"../../../types/Number\";\nimport { KeyName } from \"../../../keyName\";\n\nexport interface WithFormatter {\n value?: string;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n onChange?: (args: IInputOnChangeEvent) => void;\n onBlur?: (...args: any[]) => void;\n onFocus?: (...args: any[]) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nexport interface IFormatterFns {\n formatter?: (value: T) => string;\n // parser with strict flag means that parsed value must be formatted to the same string by formatter,\n // with strict flag === false, we may do some optimizations for the user e.g. 1.1.2020 -> 01.01.2020\n parser?: (value: string, strict?: boolean, args?: IParserArgs) => T;\n parserArgs?: IParserArgs;\n isValid?: (value: T) => boolean;\n isSame?: (val1: T, val2: T) => boolean;\n // prevent handleBlur from firing onChange event\n // needed e.g. in DatePickerBase when popup is opened and user wants to select new value with mouse\n dontFireChangeEventOnBlur?: boolean;\n // pressing Enter will parse current value with strict set to false\n parseOnEnter?: boolean;\n}\n\nexport interface WithFormatterProps extends IFormatterFns {\n value?: T;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n onChange?: (args: IInputOnChangeEvent) => void;\n onBlur?: (...args: any[]) => void;\n onFocus?: (...args: any[]) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nexport const withFormatter =

(compOrOpts: React.ComponentType

| IFormatterFns, component?: React.ComponentType

) => {\n const WrappedComponent = (component ?? compOrOpts) as React.ComponentType

;\n const options = ((component && compOrOpts) || {}) as IFormatterFns;\n\n const defaultProps: IFormatterFns = {\n formatter: (value) => isDefined(value) ? (value as unknown) as string : \"\",\n parser: (value, strict) => (value as unknown) as Type,\n isValid: () => true,\n isSame: (val1, val2) => areSimpleValuesEqual(val1, val2),\n ...options\n };\n\n return React.forwardRef((props: Omit & WithFormatterProps, ref) => {\n const {\n value,\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n formatter,\n parser,\n parserArgs,\n isValid,\n isSame,\n dontFireChangeEventOnBlur,\n parseOnEnter,\n ...restProps\n } = props;\n\n const formatValueIfValid = useCallback((value: Type) => {\n if (isNotDefined(value) || (isValid ?? defaultProps.isValid)(value)) {\n return (formatter ?? defaultProps.formatter)(value) ?? \"\";\n }\n return undefined;\n }, [formatter, isValid]);\n\n const formatValue = useCallback((value: Type) => {\n return (formatter ?? defaultProps.formatter)(value);\n }, [formatter]);\n\n const formattedValidValue = formatValueIfValid(value);\n\n const [currentValue, setCurrentValue] = useState(formattedValidValue ?? formatValue(value) ?? \"\");\n const [parsedValue, setParsedValue] = useState(value);\n const [isFocused, setIsFocused] = useState(false);\n\n // we are using formatter as computed value in some cases -> always uses formatted value, no matter what\n const shouldAlwaysFormat = restProps.isReadOnly || restProps.isDisabled;\n\n const previousValue = useRef();\n\n useEffect(() => {\n const isSameFn = isSame ?? defaultProps.isSame;\n const valueHasChanged = (!isSameFn(value, previousValue.current) && !isFocused) || !isSameFn(value, parsedValue);\n\n // value is different from last parsedValue and is valid (= formattedValidValue is defined)\n // note (isNaN !== isNaN) is true\n if (valueHasChanged && isDefined(formattedValidValue)) {\n setParsedValue(value);\n setCurrentValue(formattedValidValue);\n }\n\n if (valueHasChanged) {\n previousValue.current = value;\n }\n }, [value, formattedValidValue, isSame, parsedValue, isFocused]);\n\n const forceParseValue = useCallback((forceTriggerChange?: boolean) => {\n const parsedVal = (parser ?? defaultProps.parser)(currentValue, false, parserArgs);\n if (!dontFireChangeEventOnBlur && (forceTriggerChange || (currentValue && !(isSame ?? defaultProps.isSame)(parsedVal, value)))) {\n onChange?.({ value: parsedVal, triggerAdditionalTasks: true });\n }\n const formattedValue = formatValueIfValid(parsedVal);\n if (isDefined(formattedValue)) {\n setCurrentValue(formattedValue);\n }\n }, [formatValueIfValid, currentValue, onChange, parser, isSame, value, dontFireChangeEventOnBlur]);\n\n const handleBlur = useCallback((...args) => {\n forceParseValue();\n setIsFocused(false);\n onBlur?.(...args);\n }, [onBlur, forceParseValue]);\n\n const handleFocus = useCallback((...args) => {\n setIsFocused(true);\n onFocus?.(...args);\n }, [onFocus]);\n\n const handleChange = useCallback((args: IInputOnChangeEvent) => {\n let parsedValue = null;\n\n if (args.value) {\n parsedValue = (parser ?? defaultProps.parser)(args.value, true, parserArgs);\n }\n\n onChange?.({ ...args, value: parsedValue });\n\n let currentValue = args.value;\n\n // in some cases (e.g. when debouncedWait is set),\n // handleBlur that sets formatted current value is called first,\n // but then, handleChange is called with triggerAdditionalTasks and unformatted value,\n // so we need to set formatted value here, otherwise the input will show unformatted value\n if (args.triggerAdditionalTasks) {\n const newFormattedValue = formatValueIfValid(parsedValue);\n\n if (isDefined(newFormattedValue)) {\n currentValue = formatValueIfValid(parsedValue);\n }\n }\n\n setCurrentValue(currentValue);\n setParsedValue(parsedValue);\n }, [onChange, parser, formatValueIfValid]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter) {\n // Using Enter should always call onChange with triggerAdditionalTasks,\n // because we need the onChange events to be called before onKeyDown.\n // Otherwise, e.g. Dialog is confirmed by pressing enter, before onChange of the input is handled => error\n forceParseValue(true);\n }\n\n onKeyDown?.(e);\n }, [onKeyDown, forceParseValue]);\n\n // ToDo: figure out how to typecheck this\n const passProps = (restProps as unknown) as P;\n\n return (\n \n );\n });\n};\n\n","import React from \"react\";\nimport Input from \"./Input\";\nimport Checkbox from \"../checkbox\";\n\ninterface IProps {\n checked: boolean;\n value: string;\n onChecked: (checked: boolean) => void;\n}\n\nexport class InputWithCheckbox extends React.PureComponent {\n handleClick = () => {\n if (this.props.onChecked) {\n this.props.onChecked(!this.props.checked);\n }\n };\n\n render = () => {\n return (\n \n }\n />\n );\n };\n}","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { IProps as IIconProps, VisibleFilledIcon, VisibleIcon } from \"../../icon\";\n\ntype TInputType = \"password\" | \"text\";\n\nexport interface IPasswordInputProps {\n type: TInputType;\n icon?: React.ComponentType;\n iconTitle?: string;\n inputRef: React.Ref;\n onIconClick: () => void;\n}\n\nexport interface WithPasswordInput {\n password: IPasswordInputProps;\n}\n\nexport const withPasswordInput =

(Component: React.ComponentType

): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const passwordInputProps = usePasswordInput();\n\n return (\n \n );\n }) as any;\n};\n\n\nexport function usePasswordInput(): IPasswordInputProps {\n // use key to reset animation if setAlert is called again before previous animation ended\n const [type, setType] = useState(\"password\");\n const [cursorPosition, setCursorPosition] = useState(null);\n const icon = type === \"text\" ? VisibleFilledIcon : VisibleIcon;\n const { t } = useTranslation(\"Components\");\n const inputRef = useRef();\n\n const handleIconClick = useCallback(() => {\n const newType = type === \"text\" ? \"password\" : \"text\";\n const newCursorPosition = inputRef.current.selectionStart;\n setType(newType);\n setCursorPosition(newCursorPosition);\n }, [type]);\n\n useEffect(() => {\n if (inputRef.current && cursorPosition !== null) {\n // for some reason, without timeout the cursor still jumps back to start\n if (document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n inputRef.current.selectionStart = cursorPosition;\n }\n }, [type]);\n\n return {\n type: type,\n icon,\n iconTitle: t(`Components:Password:${type === \"text\" ? \"HidePassword\" : \"ShowPassword\"}`),\n inputRef,\n onIconClick: handleIconClick\n };\n}","import styled, { css } from \"styled-components/macro\";\nimport { InputWithErrorAndTooltip } from \"../input\";\nimport { ErrorText, StyledError } from \"../formError/FormError.styles\";\n\nexport const InputWithErrorAndTooltipStyled = styled(InputWithErrorAndTooltip)<{ showSteppers: boolean }>`\n // prevent error text from overflowing over steppers\n ${props => props.showSteppers && css`\n ${StyledError} > ${ErrorText} {\n padding-right: 25px;\n }\n `}\n`;\n\n/* Stepper is position absolutely to hold position even when there is error in the field,\n* => use relatively positioned placeholder to keep the space between field edge and its content */\nexport const StepperPlaceholder = styled.div`\n width: 10px;\n`;\n","import React from \"react\";\nimport { IInputProps } from \"../input\";\nimport { TextAlign } from \"../../../enums\";\nimport { INumericValueInput, NumericValueInputBase } from \"../numericValueInputBase/NumericValueInputBase\";\nimport { Stepper } from \"../numericValueInputBase/Stepper\";\nimport { InputWithErrorAndTooltipStyled, StepperPlaceholder } from \"./NumericInput.styles\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport NumberType, { IParserArgs } from \"../../../types/Number\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\n\nexport const NumericInput = withFormatter({\n parser: (value: string, strict?: boolean, args?: IParserArgs) => NumberType.parse(value, strict, { maximumFractionDigits: 3, ...(args ?? {}) }),\n formatter: (val) => NumberType.format(val, { maximumFractionDigits: 3 }),\n isValid: NumberType.isValid\n}, InputWithErrorAndTooltipStyled);\n\nexport interface IProps extends INumericValueInput, Omit {\n maximumFractionDigits?: number;\n}\n\nexport default class NumericInputWithStepper extends NumericValueInputBase {\n render() {\n const numberValue = this.getNumberValue();\n let content;\n\n const { step, precision, min, max, showSteppers, ...passProps } = this.props;\n\n if (!this.props.isReadOnly && showSteppers) {\n content = (\n <>\n \n \n \n );\n }\n\n return ;\n }\n}","import React from \"react\";\nimport { isDefined, isNotDefined, mouseDownRepeat } from \"@utils/general\";\nimport { KeyName } from \"../../../keyName\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent } from \"../input\";\n\nexport interface INumericValueInput {\n value?: number;\n step?: number;\n precision?: number;\n min?: number;\n max?: number;\n showSteppers?: boolean;\n onChange?: (args: IInputOnChangeEvent) => void;\n}\n\ninterface IProps extends INumericValueInput {\n onBlur?: (args: IInputOnBlurEvent) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n}\n\n/** \"Abstract\" class for NumericInput and NumericWriteLine */\nexport class NumericValueInputBase extends React.PureComponent {\n static defaultProps: any = {\n step: 1,\n precision: 0,\n max: Infinity,\n min: -Infinity\n };\n\n inputRef = React.createRef();\n inputWrapperRef = React.createRef();\n\n componentDidMount(): void {\n // wheel handling now wanted https://solitea-cz.atlassian.net/browse/DEV-9424\n // if (this.inputWrapperRef.current) {\n // // we need to manually attach to onWheel event so that it can be set as 'active'\n // // otherwise, we can't call preventDefault in the handler\n // this.inputWrapperRef.current.addEventListener(\"wheel\", this.handleWheel, { passive: false });\n // }\n }\n\n componentWillUnmount() {\n // if (this.inputWrapperRef.current) {\n // this.inputWrapperRef.current.removeEventListener(\"wheel\", this.handleWheel);\n // }\n }\n\n handleNextMouseDown = (): void => {\n mouseDownRepeat(this.increment);\n };\n\n handlePrevMouseDown = (): void => {\n mouseDownRepeat(this.decrement);\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === KeyName.ArrowDown) {\n event.preventDefault();\n this.decrement();\n } else if (event.key === KeyName.ArrowUp) {\n event.preventDefault();\n this.increment();\n }\n\n this.props.onKeyDown?.(event);\n };\n\n handleWheel = (event: WheelEvent) => {\n // only catch wheel events for \"showSteppers=true\" variant!\n if (!this.props.showSteppers) {\n return;\n }\n\n event.preventDefault();\n\n if (event.deltaY < 0) {\n this.increment();\n } else {\n this.decrement();\n }\n };\n\n getNumberValue = () => {\n const { value } = this.props;\n return !value || isNaN(value) ? 0 : value;\n };\n\n calcNextStepValue(delta: number): number {\n let step = this.props.step as number;\n const round = delta > 0 ? Math.floor : Math.ceil;\n\n if (step < 1) {\n // for better accuracy, calc with steps > 1\n step = 1 / step;\n return (round(this.getNumberValue() * step) + delta) / step;\n } else {\n return (round(this.getNumberValue() / step) + delta) * step;\n }\n }\n\n increment = () => {\n this.updateValue(\n this.calcNextStepValue(1)\n );\n };\n\n decrement = () => {\n this.updateValue(\n this.calcNextStepValue(-1)\n );\n };\n\n canIncrement = (number: number) => {\n return isNotDefined(this.props.max) || number < this.props.max;\n };\n\n canDecrement = (number: number) => {\n return isNotDefined(this.props.min) || number > this.props.min;\n };\n\n updateValue = (value: number) => {\n let newVal = value;\n\n if (isDefined(this.props.max) && newVal > this.props.max) {\n newVal = this.props.max;\n }\n\n if (isDefined(this.props.min) && newVal < this.props.min) {\n newVal = this.props.min;\n }\n\n if (this.props.precision) {\n newVal = parseFloat(newVal.toFixed(this.props.precision));\n }\n\n // always focus the input before changing the value, so validations and _wasChangedSinceBlur flag works correctly\n this.inputRef.current?.focus();\n\n this.props.onChange?.({\n value: newVal,\n triggerAdditionalTasks: true\n });\n };\n}\n","import styled from \"styled-components/macro\";\nimport { getDisabledStyle } from \"../../../global.style\";\n\nexport const StyledStepper = styled.div<{\n isDisabled: boolean;\n}>`\n display: flex;\n flex-direction: column;\n ${props => getDisabledStyle(props.isDisabled)};\n`;","import styled from \"styled-components/macro\";\nimport { getDisabledStyle, T_HEADER_small, T_PLAIN_big } from \"../../../../global.style\";\nimport WriteLine from \"../../writeLine/WriteLine\";\n\nexport const StyledValuePicker = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: fit-content;\n padding: 6px 0;\n`;\n\nexport const StyledWriteLine = styled(WriteLine)`\n ${T_HEADER_small};\n font-weight: bold;\n color: ${props => props.theme.C_TEXT_dialogue};\n`;\n\nconst OtherValue = styled.div`\n opacity: 0.5;\n cursor: default;\n ${T_PLAIN_big};\n user-select: none;\n`;\n\nexport const PrevValue = styled(OtherValue)` \n margin-top: 16px;\n margin-bottom: 14px;\n \n`;\n\nexport const NextValue = styled(OtherValue)`\n margin-top: 15px;\n margin-bottom: 12px;\n`;\n\nexport const StyledIconPressButton = styled.div<{\n isDisabled: boolean;\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n ${props => getDisabledStyle(props.isDisabled, 0.3)};\n`;","import React from \"react\";\nimport { NextValue, PrevValue, StyledIconPressButton, StyledValuePicker, StyledWriteLine } from \"./ValuePicker.styles\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent } from \"../../input/Input\";\nimport TestIds from \"../../../../testIds\";\nimport { deburr } from \"lodash\";\nimport { CaretIcon } from \"../../../icon\";\nimport { IconSize, MouseButton } from \"../../../../enums\";\nimport { KeyName } from \"../../../../keyName\";\nimport { mouseDownRepeat } from \"@utils/general\";\nimport { WriteLineComponentType } from \"../../writeLine\";\n\nexport interface ICaretIconPressButton {\n title: string;\n onClick?: () => void;\n onMouseDown?: (event: React.MouseEvent) => void;\n isLight?: boolean;\n isDisabled?: boolean;\n ignoreTheme?: boolean;\n size?: string;\n testid?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function CaretIconPressButton(\n {\n title, onClick, onMouseDown, style, testid,\n isLight, isDisabled, ignoreTheme, size, className\n }: ICaretIconPressButton\n) {\n return (\n \n \n \n );\n}\n\nexport interface IProps extends WithTranslation {\n mainValue: string;\n prevValue: string;\n nextValue: string;\n /** List of values for autocompletion */\n values?: string[];\n isReadOnly?: boolean;\n onChange?: (value: string) => void;\n onPrevValue: () => void;\n onNextValue: () => void;\n onEnterPress?: () => void;\n // allows mouse wheel to be used to change values\n allowMouseWheel?: boolean;\n isSmall?: boolean;\n maxLength?: number;\n // otherwise doesn't work for typescript, because of withTranslation HOC\n ref?: React.RefObject;\n}\n\ninterface IState {\n currentValue: string;\n matchingValue: string;\n}\n\nclass ValuePicker extends React.PureComponent {\n _holdTimeout: number = null;\n _isFirstTimeout = true;\n _wheelRef = React.createRef();\n _inputRef = React.createRef();\n _lineRef = React.createRef();\n\n state: IState = {\n currentValue: this.props.mainValue,\n matchingValue: \"\"\n };\n\n componentDidUpdate(prevProps: IProps, prevState: IState): void {\n if (prevProps.mainValue !== this.props.mainValue) {\n this.setState({\n currentValue: this.props.mainValue\n });\n }\n\n if (this.state.matchingValue) {\n this._inputRef.current.setSelectionRange(this.state.currentValue.length, this.state.matchingValue.length);\n }\n }\n\n // onWheel can't be handled by react, problem with passive events https://github.com/facebook/react/issues/6436\n // use addEventListener instead\n componentDidMount(): void {\n if (this._wheelRef.current && this.props.allowMouseWheel) {\n this._wheelRef.current.addEventListener(\"wheel\", this.handleWheel, { passive: false });\n }\n }\n\n componentWillUnmount(): void {\n if (this._wheelRef.current && this.props.allowMouseWheel) {\n this._wheelRef.current.removeEventListener(\"wheel\", this.handleWheel);\n }\n }\n\n handleWheel = (event: WheelEvent) => {\n const delta = event.deltaY;\n\n event.preventDefault(); // prevent scrolling\n\n if (delta < 0) {\n this.props.onPrevValue();\n } else {\n this.props.onNextValue();\n }\n };\n\n handlePrevMouseDown = (event: React.MouseEvent) => {\n if (event.button === MouseButton.MainButton) {\n event.preventDefault(); // prevents text selection\n mouseDownRepeat(this.props.onPrevValue);\n }\n };\n\n handleNextMouseDown = (event: React.MouseEvent) => {\n if (event.button === MouseButton.MainButton) {\n event.preventDefault(); // prevents text selection\n mouseDownRepeat(this.props.onNextValue);\n }\n };\n\n handlePrevKeyDown = (event: React.KeyboardEvent) => {\n // key down is automatically repetead when key is held down\n if (event.key === KeyName.Space) {\n this.props.onPrevValue();\n }\n };\n\n handleNextKeyDown = (event: React.KeyboardEvent) => {\n // key down is automatically repetead when key is held down\n if (event.key === KeyName.Space) {\n this.props.onNextValue();\n }\n };\n\n findMatchingValue = (value: string, values: string[]) => {\n return values.find(val => deburr(val.toLowerCase()).startsWith(deburr(value).toLowerCase()));\n };\n\n handleChange = (event: IInputOnChangeEvent) => {\n let val = event.value;\n let matchingValue: string;\n\n if (val && (event.origEvent?.nativeEvent as any).inputType === \"insertText\" && this.props.values) {\n matchingValue = this.findMatchingValue(val, this.props.values);\n\n if (!matchingValue) {\n val = this.state.currentValue;\n }\n }\n\n // without this, input hold a wrong value for a moment and that causes errors\n (this._lineRef.current as React.Component).forceUpdate();\n\n this.setState({\n currentValue: val,\n matchingValue\n });\n };\n\n handleBlur = (event: IInputOnBlurEvent) => {\n this.handleValueSelection(event.origEvent.target.value);\n };\n\n handleEnterPress = (event: React.KeyboardEvent) => {\n this.handleValueSelection((event.target as HTMLInputElement).value);\n\n this.props.onEnterPress && this.props.onEnterPress();\n };\n\n handleValueSelection = (value: string) => {\n // reset to value from props, in case that the current value is flawed\n // if the value is correct, it will get propagated back from parent\n this.setState({\n currentValue: this.props.mainValue,\n matchingValue: \"\"\n });\n\n if (this.props.onChange) {\n this.props.onChange(value);\n }\n };\n\n handleFocus = (event: React.FocusEvent) => {\n if (!this.props.isReadOnly) {\n this._inputRef.current.select();\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n // key down is automatically repetead when key is held down\n if (event.key === KeyName.ArrowUp) {\n this.props.onPrevValue();\n } else if (event.key === KeyName.ArrowDown) {\n this.props.onNextValue();\n }\n };\n\n focus = () => {\n this._inputRef.current && this._inputRef.current.focus();\n };\n\n select = () => {\n this._inputRef.current && this._inputRef.current.select();\n };\n\n render = () => {\n return (\n \n \n {this.props.prevValue}\n \n {this.props.nextValue}\n \n \n );\n };\n}\n\nconst ValuePickerWithTranslation = withTranslation(\"Components\", { withRef: true })(ValuePicker);\nexport { ValuePickerWithTranslation as ValuePicker };","import styled, { css } from \"styled-components/macro\";\nimport { CaretIconPressButton } from \"../date/popup/ValuePicker\";\nimport { LocalStackOrder } from \"../../../global.style\";\n\nconst KeepOnTopWhenHovered = css`\n /* Top & Bottom Stepper partly covers each other -> move on top the one, which is hovered, \n so user has bigger active area when uses one of it and don't click on the second one by mistake. */\n\n &:hover {\n z-index: ${LocalStackOrder.AboveContent};\n }\n`;\n\nexport const TopStepper = styled(CaretIconPressButton)`\n position: relative;\n top: 3px;\n transform: rotate(180deg);\n\n ${KeepOnTopWhenHovered};\n`;\nexport const BottomStepper = styled(CaretIconPressButton)`\n position: relative;\n bottom: 3px;\n\n ${KeepOnTopWhenHovered};\n`;","import React, { useCallback } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { IconSize } from \"../../../enums\";\nimport { BottomStepper, TopStepper } from \"./NumericValueInputBase.styles\";\nimport { StyledStepper } from \"./Stepper.styles\";\nimport TestIds from \"../../../testIds\";\n\nexport interface IStepperProps {\n isDisabled?: boolean;\n onNextMouseDown?: () => void;\n onPrevMouseDown?: () => void;\n isNextDisabled?: boolean;\n isPrevDisabled?: boolean;\n isLight?: boolean;\n style?: React.CSSProperties;\n}\n\nexport const Stepper: React.FunctionComponent = (props) => {\n const { t } = useTranslation([\"Components\"]);\n const handleMouseDown = (e: React.MouseEvent, callback: () => void) => {\n if (e.button === 0) {\n callback();\n }\n };\n\n return (\n \n handleMouseDown(e, props.onNextMouseDown), [])}\n title={t(\"Components:NumericInput.Increase\")}\n isDisabled={props.isDisabled || props.isNextDisabled}\n isLight={props.isLight}\n size={IconSize.XS}/>\n handleMouseDown(e, props.onPrevMouseDown), [])}\n title={t(\"Components:NumericInput.Decrease\")}\n isDisabled={props.isDisabled || props.isPrevDisabled}\n isLight={props.isLight}\n size={IconSize.XS}\n />\n \n );\n};","import { AuditTrailFieldType } from \"@components/smart/FieldInfo\";\nimport { transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { RadioButtonGroupLayout } from \"../../../enums\";\nimport { getFocusBorderDefinition, T_HEADER_small, T_TITLE_4_NORMAL } from \"../../../global.style\";\n\n\nexport const StyledRadioButton = styled.div<{\n _disabled: boolean;\n}>`\n display: flex;\n align-items: center;\n position: relative;\n opacity: ${props => props._disabled ? 0.5 : 1};\n cursor: ${props => props._disabled ? \"default\" : \"pointer\"};\n outline: none;\n`;\n\nexport const Circle = styled.div<{\n _checked: boolean;\n _disabled: boolean;\n}>`\n position: relative;\n width: 16px;\n min-width: 16px;\n height: 16px;\n background-color: ${props => props._checked ? props.theme.C_ACT_hover_without_opacity : props.theme.C_BG_menu};\n border: 1px solid;\n border-color: ${props => transparentize(0.5, props.theme.C_ACT_main)};\n border-radius: 50%;\n &:hover{\n border-color: ${props => props._disabled ? \"\" : props.theme.C_ACT_main};\n }\n \n ${(props) => !props._disabled && css`\n ${StyledRadioButton}:focus & {\n outline: none;\n &:before {\n ${getFocusBorderDefinition({offset: 2, borderRadius: \"50%\" })}\n }\n }\n `\n };\n`;\n\nexport const Label = styled.div`\n margin-left: 12px;\n color: ${props => props.theme.C_TEXT_primary};\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const InnerCircle = styled.div`\n width: 8px;\n height: 8px;\n margin: 3px;\n background-color: ${props => props.theme.C_ACT_main};\n border-radius: 50%;\n`;\n\nexport const StyledRadioButtonGroup = styled.div<{\n _layout: RadioButtonGroupLayout\n auditTrailType?: AuditTrailFieldType;\n}>`\n & > div {\n margin-right: ${props => props._layout !== RadioButtonGroupLayout.Column ? \"24px\" : \"\"};\n margin-bottom: ${props => props._layout === RadioButtonGroupLayout.Column ? \"12px\" : \"\"};\n }\n display: flex;\n flex-direction: ${props => props._layout === RadioButtonGroupLayout.Column ? \"column\" : \"row\"};\n\n ${props => props._layout === RadioButtonGroupLayout.Row && `\n & > ${StyledRadioButton}:last-child {\n margin-right: 0;\n }\n `}\n\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && `\n border-radius: 17px;\n background: ${props.theme.C_AUDIT_TRAIL_NO_DIFF};\n padding: 5px;\n & > ${StyledRadioButton} {\n opacity: ${props.auditTrailType === AuditTrailFieldType.NoDifference ? 0 : 1};\n } \n `}\n\n ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) && `\n border: solid 3px ${props.theme.C_AUDIT_TRAIL_DIFF};\n border-radius: 17px;\n padding: 5px;\n `};\n`;\n\nexport const StyledRadioListItem = styled.div`\n display: flex;\n min-height: 70px;\n margin: 7px 0;\n & > svg {\n margin-right: 25px;\n transform: scale(1.3);\n }\n & > div {\n & > h4 {\n font-weight: normal;\n ${T_HEADER_small}\n }\n display: flex;\n flex-direction: column;\n & > p {\n margin: 8px 0 0 0;\n }\n }\n`;","import { TInfoValue } from \"@components/smart/FieldInfo\";\nimport Text from \"@components/text\";\nimport { isDefined } from \"@utils/general\";\nimport React from \"react\";\n\nimport { RadioButtonGroupLayout } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport TestIds from \"../../../testIds\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../../focusManager/FocusManager\";\nimport { DescriptionSeparator, InputDescriptionText } from \"../select/Select.styles\";\nimport { Circle, InnerCircle, Label, StyledRadioButton, StyledRadioButtonGroup } from \"./RadioButtonGroup.styles\";\n\nexport interface IRadioButtonDefinition {\n id: string;\n label?: string | React.ReactElement;\n isDisabled?: boolean;\n isVisible?: TInfoValue;\n description?: string;\n}\n\ninterface IRadioButtonProps {\n label?: string | React.ReactElement;\n description?: string;\n onChecked: (id: string) => void;\n id?: string;\n checked: boolean;\n isDisabled?: boolean;\n itemProps?: IFocusableItemProps;\n className?: string;\n auditTrailData?: IAuditTrailData;\n}\n\nexport class RadioButton extends React.Component {\n _refCircle = React.createRef();\n\n select = (event: React.MouseEvent): void => {\n if (!this.props.isDisabled) {\n // for cases when user clicks the label not the button itself\n this._refCircle.current.focus();\n if (!this.props.checked) {\n this.props.onChecked(this.props.id);\n }\n }\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n if (e.key === KeyName.Space) {\n this.props.onChecked(this.props.id);\n }\n };\n\n render() {\n const itemProps = this.props.isDisabled ? {} : this.props.itemProps;\n return (\n \n \n {this.props.checked &&\n \n }\n \n {!!this.props.label &&\n \n }\n \n );\n }\n}\n\nexport interface IProps {\n definition: IRadioButtonDefinition[];\n defaultChecked?: string;\n layout?: RadioButtonGroupLayout;\n /** If undefined RadioButtonGroup will behave as uncontrolled component.\n * If set to true/false RadioButtonGroup will behave as controlled component, showing the value coming from this prop. */\n checkedButton?: string;\n onChange?: (id: string) => void;\n style?: React.CSSProperties;\n isReadOnly?: boolean;\n auditTrailData?: IAuditTrailData;\n}\n\ninterface IState {\n checkedButton?: string;\n}\n\nexport default class RadioButtonGroup extends React.Component {\n static defaultProps = {\n layout: RadioButtonGroupLayout.Row\n };\n\n constructor(props: IProps) {\n super(props);\n this.state = {\n checkedButton: props.defaultChecked !== undefined ? props.defaultChecked : props.definition && props.definition[0] && props.definition[0].id\n };\n }\n\n handleChecked = (key: string): void => {\n if (!isDefined(this.props.checkedButton)) {\n this.setState({\n checkedButton: key\n });\n }\n\n this.props.onChange?.(key);\n };\n\n getCheckedButtonId = (): string => {\n return isDefined(this.props.checkedButton) ? this.props.checkedButton : this.state.checkedButton;\n };\n\n render() {\n const checkedButton = this.getCheckedButtonId();\n\n if (this.props.isReadOnly) {\n const checkedBtnDef = this.props.definition.find(x => x.id === checkedButton);\n return {checkedBtnDef?.label};\n }\n\n return (\n \n {({ itemProps, wrapperProps }) => (\n \n {this.props.definition.map(button => {\n return (\n \n );\n })}\n \n )}\n \n );\n }\n}","import styled from \"styled-components/macro\";\n\nexport const TextMeasure = styled.span`\n opacity: 0;\n pointer-events: none;\n position: absolute;\n white-space: pre; // don't ignore multiple spaces\n`;","import React from \"react\";\n\nimport { BasicSelect, IProps } from \"./BasicSelect\";\n\n\nexport class Autocomplete extends React.Component {\n renderContent = (): React.ReactElement => {\n const sharedProps: IProps = {\n closeOnSelection: true,\n openOnClick: false,\n // there are 2 possibilities.\n // 1/ user often select from the menu, so we preselect the most relevant item to him and shows autocomplete in the input.\n // 2/ user often type the whole value, so we don't preselect anything and shows the input with the value he typed,\n // suggest alternatives in the menu.\n useAutoSelection: this.props.useAutoSelection ?? true,\n useTypingForward: this.props.useTypingForward ?? true,\n dontDisplayNoDataFound: true,\n allowCreate: true,\n minCharsToOpenMenu: this.props.minCharsToOpenMenu\n };\n\n return ;\n };\n\n render() {\n return this.renderContent();\n }\n}\n","import { withContextFactory } from \"../contexts.utils\";\nimport { PortalRootElementContext, TPortalRootElementContext } from \"./PortalRootElementProvider\";\n\nexport interface WithPortalRootElement {\n portalRootElementRef: TPortalRootElementContext;\n}\n\nexport const withPortalRootElement = withContextFactory(PortalRootElementContext, \"portalRootElementRef\");\n","import {\n Direction,\n IContentBefore,\n ISelectItem,\n ISelectPropsBase,\n ISharedData,\n SelectAdditionalItems,\n SelectGroups,\n TOnItemsFetchedCallback\n} from \"@components/inputs/select/Select.types\";\nimport { _isNoRecord, _showTabularHeader, NO_RECORD_FOUND } from \"@components/inputs/select/Select.utils\";\nimport {\n doesElementContainsElement,\n focusNextElement,\n handleRefHandlers,\n isDefined,\n isNotDefined,\n isObjectEmpty,\n isOverflowing\n} from \"@utils/general\";\nimport { fixWhiteSpaceChar, startsWithAccentsInsensitive } from \"@utils/string\";\nimport autosize from \"autosize\";\nimport React, { FocusEvent } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Manager, Popper, Reference, ReferenceChildrenProps } from \"react-popper\";\n\nimport { EMPTY_VALUE } from \"../../../constants\";\nimport { getPortalRootElement } from \"../../../contexts/portalRootElement/PortalRootElement.utils\";\nimport {\n WithPortalRootElement,\n withPortalRootElement\n} from \"../../../contexts/portalRootElement/withPortalRootElement\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport Token from \"../../token\";\nimport { getSharedInputProps, IInputOnBlurEvent, IInputOnChangeEvent } from \"../input\";\nimport { IFormatterFns } from \"../input/WithFormatter\";\nimport {\n DescriptionSeparator,\n InputDescriptionText,\n InputTabularAllText,\n InputWrapper,\n ReadOnlyTabularData,\n SelectItemLink,\n StyledSelect,\n StyledSelectInput\n} from \"./Select.styles\";\nimport {\n filterItems,\n getAllItems,\n getFirstMatchingItemIndex,\n getHighlightedIndex,\n handleNavigationKey,\n IGetFirstMatchingIndexReturnType,\n isDirectionKey\n} from \"./SelectAPI\";\nimport { Menu } from \"./SelectMenu\";\n\nconst ALLOW_CREATE_ID = \"__NEW_ITEM__\";\n\n/** Props used for multi selector*/\nexport interface IProps extends ISelectPropsBase {\n onItemsFetchRequested?: (value: string, highlightCallback?: TOnItemsFetchedCallback) => void;\n\n isSelected?: (item: ISelectItem) => boolean;\n hasValue?: boolean; // just for multiselect\n minCharsToOpenMenu?: number;\n}\n\nexport interface IState {\n isOpen?: boolean;\n currentValue?: string;\n}\n\nconst DEFAULT_WIDTH = 180;\n\nclass BasicSelect extends React.PureComponent, IState> {\n public static defaultProps = {\n useAutoSelection: false,\n useTypingForward: true\n };\n\n protected _refInput = React.createRef();\n protected _btnRef = React.createRef();\n protected _refContent = React.createRef();\n protected _refOpener = React.createRef();\n protected _refMenuWrapper = React.createRef();\n protected _refMenu = React.createRef();\n\n protected _skipAutoComplete = false;\n\n protected sharedData: ISharedData = {\n isLoading: false,\n highlightedIndex: null,\n searchTerm: \"\"\n };\n\n private _wasChanged = false;\n private _latestCurrentValueIsFromFocusHandler = false;\n private _lastItem: ISelectItem = null\n // flag for firing triggerAdditionalTasks on blur\n // typical case is, when user change item not by click (or enter) but by arrow selection and escape (or by typing half of item and autocomplete)\n private _shouldFireValueOnBlur = false;\n\n _refTabularData = React.createRef();\n\n constructor(props: IProps & WithTranslation & WithPortalRootElement) {\n super(props);\n this.state = {\n currentValue: \"\",\n isOpen: false\n };\n }\n\n _useAutoSelection = (): boolean => {\n return this.props.useAutoSelection && !this.props.showSearchBoxInMenu;\n };\n\n _isMulti = (): boolean => {\n return !!this.props.isMultiSelect;\n };\n\n _isTabular = (): boolean => {\n return (this.props.columns || []).length > 1 || !!this.props.customTabularData;\n };\n\n _isAsync = (): boolean => {\n return !!this.props.onItemsFetchRequested;\n };\n\n _cutEdges = (width: number): number => {\n if (this.props.isSharpLeft) {\n width += 14;\n }\n\n if (this.props.isSharpRight) {\n width += 14;\n }\n\n return width;\n };\n\n _getDefaultMenuWidth = (): number => {\n let width: number;\n if (this.props.openerRef) {\n //@ts-ignore\n width = this.props.openerRef.current.offsetWidth;\n } else if (this._refInput.current) {\n width = this._refInput.current.offsetWidth;\n }\n\n return width || DEFAULT_WIDTH;\n };\n\n _getComputedMenuWidth = (): number => {\n return this.props.width ? this._cutEdges((parseInt(this.props.width) || DEFAULT_WIDTH) - 28 /*edges*/) : this._getDefaultMenuWidth();\n };\n\n componentDidUpdate(prevProps: IProps, prevState: IState): void {\n if (this._refInput.current) {\n // Highlighted index is defined and is not -1 (item not found) -> there is smthg. to autocomplete\n const hasAutocompleteItem = isDefined(this.sharedData.highlightedIndex) && this.sharedData.highlightedIndex >= 0;\n\n const { item } = this.getItemByCurrentValue(this.getAllItems(), this.sharedData.searchTerm);\n const realCurrentValue = this.getCurrentValue();\n const currentValue = item?.label ?? realCurrentValue;\n // Skip situations, when user deletes e.g. first letter and the rest of the string matches with highlighted item, but we don't want to set cursor to the end of the input value\n const startsWithButNotSame = currentValue !== this.sharedData.searchTerm && startsWithAccentsInsensitive(currentValue, this.sharedData.searchTerm);\n if (!this.props.inputIsReadOnly && this.sharedData.searchTerm && hasAutocompleteItem && startsWithButNotSame && !this.sharedData.skipRangeSelection) {\n this._refInput.current.setSelectionRange(this.sharedData.searchTerm.length, currentValue.length);\n }\n\n if (prevProps.value !== this.props.value) {\n this.setState({ currentValue: this.getCurrentValue() });\n if (this._refInput.current.nodeName === \"TEXTAREA\") {\n autosize.update(this._refInput.current);\n }\n } else if (this.hasFocus && (this._latestCurrentValueIsFromFocusHandler || (!!this.getCurrentItem() && !this._lastItem)) && currentValue !== prevState.currentValue) {\n // state.currentValue is set in handleFocus\n // but at that time, items doesn't have to be loaded yet\n // => update state.currentValue if items are loaded and new currentValue is different\n this.setState({ currentValue });\n }\n\n // in some cases, items are not loaded yet => _lastItem is null,\n // but the select already has focus, and we need to update the current value once the item is available\n this._lastItem = this.getCurrentItem();\n\n if (this._latestCurrentValueIsFromFocusHandler && prevState.currentValue !== this.state.currentValue) {\n this._latestCurrentValueIsFromFocusHandler = false;\n }\n\n if (this.state.isOpen && !prevProps.isDisabled && this.props.isDisabled) {\n this.setIsOpen(false);\n }\n }\n }\n\n selectItem = (item: ISelectItem, triggerAdditionalTasks = true): void => {\n if (item && !item.isDisabled) {\n // user selects to create a new value, just don't try to match with existing item on blur. onChange\n // handler was already called via \"fireLiveChange\", we don't need to call it again\n const allowCreateItem = item.additionalData?.isAllowCreateItem;\n this._shouldFireValueOnBlur = !triggerAdditionalTasks;\n\n const value = (allowCreateItem ? item.additionalData.value : item.id);\n\n this.props.onChange({\n value,\n additionalData: item.additionalData,\n sharedData: this.sharedData,\n triggerAdditionalTasks: triggerAdditionalTasks\n });\n\n if (triggerAdditionalTasks && !this.props.inputIsReadOnly && !this._isMulti()) {\n this.sharedData.searchTerm = \"\";\n if (allowCreateItem) {\n this.setState({ currentValue: value.toString() });\n }\n } else if (this._isMulti()) {\n const currentValue = item.additionalData?.isNoRecord ? this.getNoRecordText() : (item.additionalData?.closeOnSelection ? item.label : this.sharedData.searchTerm);\n this.setState({ currentValue });\n\n if (item.additionalData?.closeOnSelection || item.additionalData?.isNoRecord) {\n this.setIsOpen(false);\n }\n }\n }\n\n this._wasChanged = true;\n };\n\n setIsOpen = (isOpen: boolean): void => {\n this._setState({\n isOpen\n }, () => {\n this.props.onIsOpenChange?.(isOpen);\n });\n };\n\n public open = (): void => {\n if (!this.state.isOpen) {\n this.openDialogByEnterOrClick();\n }\n };\n\n public isOpen = (): boolean => {\n return this.state.isOpen;\n };\n\n openDialogByEnterOrClick = (): void => {\n if (!this.state.isOpen) {\n this.props.onOpen?.();\n\n // this erase previous search\n if (this.props.showSearchBoxInMenu) {\n this.sharedData.searchTerm = \"\";\n }\n\n this.sharedData.scrollDirection = Direction.Center;\n this.sharedData.highlightedIndex = null;\n\n this.setIsOpen(true);\n }\n };\n\n fireLiveChange = (currentValue: string): void => {\n this._shouldFireValueOnBlur = true;\n\n this.props.onChange({\n value: this.props.allowCreate ? currentValue : (this.props.value || null),\n triggerAdditionalTasks: false\n });\n };\n\n _setState = (newState: TRecordAny, callback?: () => void): void => {\n let hasChanged = false;\n for (const [key, value] of Object.entries(newState)) {\n if (value !== this.state[key as keyof IState]) {\n hasChanged = true;\n }\n }\n\n if (hasChanged) {\n this.setState({\n ...newState\n }, callback);\n }\n };\n\n handleChange = (e: IInputOnChangeEvent): void => {\n // first letter of select string cannot be space\n const value = e.value === \" \" ? \"\" : (e.value as string);\n this._wasChanged = true;\n\n this.sharedData.searchTerm = value;\n this._shouldFireValueOnBlur = true;\n\n delete this.sharedData.highlightedIndex;\n\n this.setState({ currentValue: value });\n\n if (this._isAsync()) {\n this.sharedData.isLoading = true;\n\n this.props.onItemsFetchRequested(value, (items: ISelectItem[]) => this.handleItemsFetched(items, value));\n this.setIsOpen(!!e.value);\n\n this.fireLiveChange(value);\n return;\n }\n\n if (!this.props.minCharsToOpenMenu || value.length >= this.props.minCharsToOpenMenu) {\n this.openDialogByEnterOrClick();\n }\n\n // if we are typing FORWARD (not delete or backspace which is handled by flag _skipAutoComplete) we cant try to preselect first possible item -- if there is any\n // if not just fire live change to update input\n if (this.props.useTypingForward && !this._skipAutoComplete) {\n const allItems = this.getAllItems();\n if (this.changeHighlight(allItems, value) !== false) {\n return;\n }\n }\n\n this.fireLiveChange(value);\n };\n\n getItemByCurrentValue = (items: ISelectItem[], value: string): { item: ISelectItem, idx: number } => {\n const fitIndex = getFirstMatchingItemIndex(items, value, this.props.searchType);\n const item = isDefined(fitIndex) ? items[fitIndex?.startsWith] : null;\n return { item, idx: fitIndex?.startsWith };\n };\n\n changeHighlight = (items: ISelectItem[], value: string): boolean | number => {\n const { item, idx } = this.getItemByCurrentValue(items, value);\n if (item) {\n this.forceUpdate(); // TODO: suspicious forceupdate\n\n const useAutoSelection = this._useAutoSelection();\n const possibleCurrentValue = fixWhiteSpaceChar(item.label);\n const valueHasNotChanged = this.props.value && this.props.value === item.id;\n const currentValueHasNotChanged = this.getCurrentValue() === possibleCurrentValue;\n this.setState({ currentValue: possibleCurrentValue });\n\n if ((useAutoSelection && valueHasNotChanged) ||\n (!useAutoSelection && currentValueHasNotChanged && !this.props.allowCreate)) {\n // in this case we are typing same value as in selected string\n // we don't have to do anything as the value and label is still the same\n // we need to change the selection only which is in componentDidUpdate\n return true;\n }\n\n this.props.onChange({\n value: useAutoSelection ? item.id : (this.props.allowCreate ? value : this.props.value),\n additionalData: useAutoSelection ? item.additionalData : {},\n triggerAdditionalTasks: false\n });\n\n return idx;\n }\n return false;\n };\n\n handleItemsFetched = (items: ISelectItem[], value: string): void => {\n if (!this._skipAutoComplete && this.sharedData.searchTerm === value) {\n const index = this.changeHighlight(items, value);\n if (Number.isInteger(index)) {\n let highlighted = index as number;\n // fetched items doesn't contain \"allowCreate\" item, so we need to update index in case something was found\n if (!!this.sharedData.renderedItems.find(item => item.additionalData?.isAllowCreateItem)) {\n highlighted += 1;\n }\n this.sharedData.highlightedIndex = highlighted;\n this.forceUpdate();\n }\n }\n };\n\n getAllItems = (): ISelectItem[] => {\n return getAllItems({\n items: this.props.items,\n additionalItems: this.props.additionalItems,\n noRecordText: this.getNoRecordText()\n });\n };\n\n addNoRecordItem = (items: ISelectItem[]): void => {\n if (!this.props.isLoading && !this.sharedData.isLoading && !this.sharedData.dontDisplayNoDataFound && !this.props.dontDisplayNoDataFound) {\n items.push({\n isNotHighlightable: true,\n label: `(${!!this.state.currentValue && (this.props.items.length > 0 || this._isAsync()) ? this.props.t(\"Validation.NoRecord\") : this.props.t(\"Validation.NoItems\")})`,\n id: NO_RECORD_FOUND\n });\n }\n };\n\n isSearchable = (): boolean => {\n return !(this.props.inputIsReadOnly && !this.props.showSearchBoxInMenu);\n };\n\n handleSelectionChange = (item: ISelectItem, triggerAdditionalTasks: boolean): void => {\n if (!item || _isNoRecord(item) || item?.isDisabled) {\n return;\n }\n\n if (this.props.closeOnSelection && triggerAdditionalTasks) {\n this.setIsOpen(false);\n }\n\n // this will clear selection without losing focus which is the case of removeAllRanges\n // the high number move focus to the end of the input\n const length = (item.label?.length) || 100;\n this._refInput.current?.setSelectionRange(length, length);\n\n this.selectItem(item, triggerAdditionalTasks);\n this._refInput.current?.focus();\n };\n\n handleHeaderClick = () => {\n // when user clicks something in the menu what is not interactive\n // we don't want to lose focus of input before user leaves the select\n // by theory we can put it in handleBlur with some condition but it causes some tests issues\n\n this._refInput.current?.focus();\n }\n\n handleBlur = (e: IInputOnBlurEvent): void => {\n const origEvent: any = e.origEvent || e;\n const target: HTMLElement = origEvent.relatedTarget;\n const contains = doesElementContainsElement(this._refMenuWrapper.current, target);\n const isBlurringToSearch = target?.getAttribute(\"data-testid\") === TestIds.SelectSearchInput;\n\n if (!contains && !isBlurringToSearch) {\n if (!this.props.preventHideOnBlur) {\n this.setIsOpen(false);\n }\n\n let highlightedItem;\n if (this.state.isOpen && this.sharedData.searchTerm && !this._isMulti()) {\n if (isDefined(this.sharedData.highlightedIndex)) {\n highlightedItem = this.sharedData.renderedItems[this.sharedData.highlightedIndex];\n } else if (!this.props.allowCreate && (this._useAutoSelection() || this.props.useTypingForward)) {\n const { item } = this.getItemByCurrentValue(this.getAllItems(), this.sharedData.searchTerm);\n highlightedItem = item;\n }\n }\n if (highlightedItem) {\n // Confirmation of current highlighted value\n this.selectItem(highlightedItem);\n } else if (this._shouldFireValueOnBlur) {\n // revert to last value or clear currentValue, so there is \"no record\", etc...\n this._fireValueOnBlur();\n }\n\n e.wasChanged = this._wasChanged;\n this._wasChanged = false;\n this.props.onBlur?.(e);\n }\n\n const item = this.getCurrentItem();\n // draws additional columns with gray color to input after blur is fired (for read only items it is displayed only without focus)\n // also, when item contains link, we need to make sure it renders it on blur\n if ((!this.props.inputIsReadOnly && this._isTabular()) || (!e.wasChanged && item?.link)) {\n this.forceUpdate();\n }\n };\n\n handleInputClick = (e: React.MouseEvent): void => {\n this.props.onClick?.(e);\n\n if (this.props.openOnClick && !e?.defaultPrevented) {\n this.openDialogByEnterOrClick();\n e.preventDefault();\n }\n };\n\n handleIconClick = (e: React.MouseEvent): void => {\n // prevent trigger input click\n e.stopPropagation();\n\n this.props.onIconActivate?.(e);\n if (e.nativeEvent.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n\n // we prevented propagation so we need to focus input manually\n this._refInput.current?.focus();\n\n if (this.state.isOpen) {\n this._fireValueOnBlur();\n this.setIsOpen(false);\n } else {\n this.openDialogByEnterOrClick();\n }\n };\n\n handleInputRef = (ref: HTMLInputElement): void => {\n handleRefHandlers(ref, this._refInput, this.props.inputRef);\n };\n\n handleHighlightChange = (item: ISelectItem): void => {\n if (this._useAutoSelection()) {\n this.selectItem(item, false);\n } else {\n const { isAllowCreateItem, value } = item.additionalData ?? {};\n const currentValue = isAllowCreateItem ? value.toString() : item.label;\n this.fireLiveChange(currentValue);\n this.setState({ currentValue });\n }\n };\n\n _opener = (): HTMLButtonElement => {\n return (this.props.buttonRef as React.RefObject)?.current || this._btnRef?.current;\n };\n\n /**\n * Special handling of keydown on search input in menu\n * @param e\n */\n handleInputKeyDown = (e: React.KeyboardEvent): void => {\n // input in select menu is rendered directly in body, but we want to focus next element after it's opener\n const button = this._opener();\n\n if (e.key === KeyName.Tab) {\n focusNextElement(button);\n e.preventDefault();\n return;\n }\n\n if (e.key === KeyName.Escape) {\n if (this.props.isIconSelect) {\n button.focus();\n }\n }\n\n if (e.key === KeyName.Space) {\n return;\n }\n\n this.handleKeyDown(e);\n };\n\n _fireValueOnBlur(): void {\n const keepCurrentValue = this.props.allowCreate;\n const searchBy = keepCurrentValue ? this.sharedData.searchTerm : undefined;\n const item = !this._isMulti() && this.getCurrentItem(true, searchBy);\n if (item) {\n // Revert select to the last selected value\n this.selectItem(item, false);\n this.sharedData.searchTerm = \"\";\n } else {\n // If no item is selected (e.g. select was empty and there is no \"noRecordText\"), just clear currentValue\n // or if allowCreate with autoSelection === false is set, we may need to fire currentValue on blur\n const value = keepCurrentValue ? this.getCurrentValue() : \"\";\n this.fireLiveChange(value);\n this.sharedData.searchTerm = value;\n this.sharedData.highlightedIndex = null;\n }\n }\n\n _handleKeyDown(e: React.KeyboardEvent): void {\n // menu is opened -> forward the event to the menu component\n // @ts-ignore\n (this._refMenu.current as Menu)?._handleKeyDown(e);\n\n let shouldOpen = false;\n\n if (isDirectionKey(e.key)\n && !e.altKey // ignore combinations with alt, so that we can handle them somewhere else (e.g. fast entry), without triggering this action\n ) {\n this.props.onOpen?.();\n // this prevents scrolling page or div scrollers\n e.nativeEvent.preventDefault();\n\n // If menu is not open, direction keys change the value\n if (!this.state.isOpen && !this._isMulti()) {\n const items = this.getAllItems();\n const { value } = this.props;\n const highlightedIndex = this.sharedData.highlightedIndex ?? getHighlightedIndex(null, items, value, this.getCurrentValue());\n\n const result = handleNavigationKey(items, highlightedIndex, e.key as KeyName);\n if (result) {\n this.sharedData.highlightedIndex = result.highlightedIndex;\n this.sharedData.scrollDirection = result.scrollDirection;\n // Directly change the value\n this.handleSelectionChange(items[result.highlightedIndex], true);\n }\n }\n }\n\n this._skipAutoComplete = e.key === KeyName.Backspace || e.key === KeyName.Delete;\n\n switch (e.key) {\n case KeyName.Escape:\n if (this.state.isOpen) {\n this._fireValueOnBlur();\n // stop propagation so that for example we don't close dialog when closing opened select\n e.stopPropagation();\n this.setIsOpen(false);\n }\n\n this.sharedData.searchTerm = \"\";\n this.setState({ currentValue: this.getCurrentValue() });\n // Escape will by default clear input value -> we don't want that\n e.preventDefault();\n return;\n\n case KeyName.Enter:\n // enter on iconSelect already triggers open action by click event from button\n if (!this.props.isIconSelect) {\n shouldOpen = true;\n // stop propagation, so we don't confirm dialog when opening select\n e.stopPropagation();\n }\n break;\n\n case KeyName.Space:\n if (this.props.inputIsReadOnly) {\n this.setIsOpen(!this.state.isOpen);\n e.nativeEvent.preventDefault();\n }\n break;\n }\n\n if (shouldOpen) {\n this.openDialogByEnterOrClick();\n }\n\n // In case it's last character of autocompleted string, trigger handleChange manually as it's\n // not called automatically by the input (the text is already here, so no change is triggered from input)\n const nextValue = `${this.sharedData.searchTerm}${e.key}`;\n const inputValue = this._refInput.current?.value;\n if (nextValue === inputValue) {\n this.handleChange({\n value: nextValue\n });\n // + remove selection of the last character as we are preventing default behavior (nothing changes actually)\n this._refInput.current.setSelectionRange(nextValue.length, nextValue.length);\n // prevent default behavior, so the key stroke is not duplicated\n e.preventDefault();\n }\n }\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n this.props.onKeyDown?.(e);\n\n if (!e.defaultPrevented) {\n this._handleKeyDown(e);\n }\n };\n\n handleInputBlur = (e: FocusEvent): void => {\n this.handleBlur({\n wasChanged: false,\n origEvent: e\n });\n };\n\n renderMenuWithPortal = (autocompleteRoot: HTMLElement): React.ReactPortal => {\n return ReactDOM.createPortal(this.renderMenuContent(), autocompleteRoot);\n };\n\n renderMenuWithoutPortal = (): React.ReactElement => {\n return this.renderMenuContent();\n };\n\n renderMenu = (): React.ReactNode => {\n const autocompleteRoot = getPortalRootElement(this.props.portalRootElementRef);\n return autocompleteRoot ? this.renderMenuWithPortal(autocompleteRoot) : this.renderMenuWithoutPortal();\n };\n\n handleSelectInputChange = (e: React.ChangeEvent): void => {\n this.handleChange({\n value: e.target.value,\n origEvent: e\n });\n\n this.forceUpdate();\n };\n\n renderMenuContent = (): React.ReactElement => {\n const value = this.sharedData.searchTerm ?? this.state.currentValue;\n const { groups } = this.props;\n\n // filter items based on typing or other conditions\n this.sharedData.renderedItems = filterItems({\n items: this.getAllItems(),\n skipFilter: this._isAsync() || !this.isSearchable(),\n searchType: this.props.searchType,\n value\n });\n\n // if there is no filterable items (that DOES NOT MEAN NO ITEM) .. f.e. additionalItems or action items\n // are 'not filterable' => set no record found flag\n const haveAnyFilterableItem = (this.sharedData.renderedItems || []).find(item => !item.isNotFilterable);\n if (!haveAnyFilterableItem && !this.props.allowCreate) {\n this.addNoRecordItem(this.sharedData.renderedItems);\n }\n\n if (this.props.allowCreate && value && (this._useAutoSelection() || this.props.useTypingForward)) {\n this.sharedData.renderedItems.unshift({\n label: `${value} (${this.props.t(\"Common:General.New\")})`,\n id: ALLOW_CREATE_ID,\n isSearchable: false,\n additionalData: {\n isAllowCreateItem: true,\n value\n },\n groupId: SelectGroups.Default\n });\n }\n\n // the logic behind is this: typing RESET highlighting index so after user type stuff\n // this index is calculated and set to the first found item right here\n // the benefit is this is the only place who sets it after user types some stuff\n let firstItemIndex: IGetFirstMatchingIndexReturnType;\n if (value) {\n firstItemIndex = getFirstMatchingItemIndex(this.sharedData.renderedItems, value, this.props.searchType);\n } else if (this.props.noRecordText) {\n // if searchValue is empty, preselect noRecord item, so user can easily confirm it\n const noRecordIdx = this.sharedData.renderedItems.findIndex(item => item.additionalData?.isNoRecord);\n firstItemIndex = {\n anyWordFit: noRecordIdx,\n startsWith: noRecordIdx\n };\n }\n\n if (this.sharedData.searchTerm && isNotDefined(this.sharedData.highlightedIndex) && (this._useAutoSelection() || this.props.useTypingForward)) {\n if (this.props.allowCreate && (isNotDefined(firstItemIndex?.anyWordFit) || this._skipAutoComplete)) {\n delete this.sharedData.highlightedIndex;\n // todo: DEV-23821 try not to preselect \"New\" item, when there is no match. User has to select it explicitly\n // Put back if previous solution would be better from UX point of view\n // this.sharedData.highlightedIndex = this.sharedData.renderedItems.findIndex(item => item.additionalData?.isAllowCreateItem);\n } else {\n this.sharedData.highlightedIndex = firstItemIndex?.anyWordFit;\n }\n }\n\n const moveRight = !this.props.isSharpLeft && !this.props.fieldComponent;\n const left = this.props.menuOffset?.left ? this.props.menuOffset.left : (moveRight ? 15 : 0);\n const top = this.props.menuOffset?.top ? this.props.menuOffset.top : (this.props.displayArrow ? 15 : 0);\n return (\n \n {(popperProps) => (\n <>\n \n \n )}\n \n );\n };\n\n\n handleFocus = (e: React.FocusEvent): void => {\n const item = this.getCurrentItem();\n\n this.setState({ currentValue: this.getCurrentValue() }, () => {\n this._latestCurrentValueIsFromFocusHandler = true;\n });\n\n if (this._shouldRenderAdditionalColumnsInInput() || item?.link) {\n // re-render the select, so tabular data are not rendered when element gains focus\n this.forceUpdate();\n }\n this.props.onFocus?.(e);\n };\n\n getNoRecordText = (): string => {\n return this.props.noRecordText;\n };\n\n getCurrentValue = (): string => {\n if (this.props.formatter) {\n const value = this.props.formatter(this.props.value);\n\n if (!value && this.props.noRecordText) {\n return this.getNoRecordText();\n }\n\n if (isDefined(value)) {\n return value;\n }\n }\n\n if (this.props.allowCreate) {\n // for autocomplete values, we bind the select to actually string values,\n // e.g. BP name, item description, so we should show currentValue according to the real props.value\n // (the autocomplete result). It's not navigation, so it doesn't make sense to search for matching items\n return this.props.value as string;\n }\n\n const item = this.getCurrentItem(true);\n\n if (item) {\n return item.label;\n }\n\n if (this.props.value && !this.props.displayName) {\n return this.props.value.toString();\n }\n\n if (this.props.noRecordText && (!this._isMulti || !this.props.hasValue)) {\n return this.getNoRecordText();\n }\n\n return \"\";\n };\n\n getCurrentItem = (includeAllItems = false, searchBy = this.props.value): ISelectItem => {\n return ((includeAllItems ? this.getAllItems() : this.props.items) || [])\n .concat(this.props.additionalItems).concat(this.props.initialItems).find(item => item && item.id?.toString() === searchBy?.toString());\n };\n\n createReadOnlyTabularText = (): string => {\n if (this.props.isReadOnly && isObjectEmpty(this.props.auditTrailData) && this.props.shouldDisplayAdditionalColumns && this.props.value && this._isTabular()) {\n const item = this.getCurrentItem();\n const label = item?.label || this.getCurrentValue();\n // force cases when label is not on the first position\n const tabularData = (this.fillTabularDataFromPreloadedData(item) || []).filter(name => name !== label);\n\n return \" | \" + tabularData.join(\" | \");\n }\n\n return null;\n };\n\n createReadOnlyText = (currentValue?: string): string => {\n if (this._isMulti()) {\n return this.getAllItems().filter(item => item.id !== SelectAdditionalItems.SelectAll && this.props.isSelected(item)).map(item => item.label).join(\", \");\n }\n\n return currentValue;\n };\n\n fillTabularDataFromPreloadedData = (item: ISelectItem): string[] => {\n let tabularData = item?.tabularData;\n const additionalData = item?.additionalData ?? this.props.additionalData;\n // this is the scenario where items are not loaded yet but we cant get additional info data by loadData prop\n // which is loaded (used additionalProperties) with the initial entity load\n if (!item?.tabularData && additionalData) {\n tabularData = [];\n for (const col of this.props.columns || []) {\n if (col.id !== this.props.displayName) {\n tabularData.push(additionalData[col.id] as string);\n }\n }\n }\n\n return tabularData;\n };\n\n _shouldRenderAdditionalColumnsInInput = (): boolean => {\n return !!((this.props.shouldDisplayAdditionalColumns || this.props.customTabularData) && this.props.value);\n };\n\n get hasFocus(): boolean {\n return document.activeElement === this._refInput.current;\n }\n\n onLinkClick = (e: React.SyntheticEvent): void => {\n // prevent select from calling preventDefault\n e.stopPropagation();\n };\n\n createContentBefore = (): IContentBefore => {\n if (this.props.isReadOnly && isObjectEmpty(this.props.auditTrailData)) {\n return null;\n }\n\n if (!this._isMulti()) {\n const item = this.getCurrentItem();\n if (item?.color) {\n return {\n title: item.label,\n component: (\n \n ),\n zeroInputWidth: true\n };\n }\n\n if (item?.link && !this.hasFocus) {\n return {\n title: item.label,\n link: \n {this.getCurrentValue()}\n ,\n zeroInputWidth: false\n };\n }\n }\n\n if (this._shouldRenderAdditionalColumnsInInput()) {\n if ((this.props.inputIsReadOnly || !this.hasFocus) && this._isTabular()) {\n const item = this.getCurrentItem();\n const label = item?.label || this.getCurrentValue();\n const tabularData = this.props.customTabularData ?? this.fillTabularDataFromPreloadedData(item);\n\n if (tabularData?.length > 0) {\n const tabularText = (tabularData || []).filter(text => text && text !== label).join(DescriptionSeparator);\n const title = `${label}${tabularText && label ? DescriptionSeparator : \"\"}${tabularText}`;\n\n const component = (\n <>\n {/*itemContent should be rendered both standalone and together with additional columns description*/}\n {this.props.passItemContentToInput && item?.itemContent ? item.itemContent : null}\n \n {label}\n \n {DescriptionSeparator}{tabularText}\n \n \n \n );\n return {\n title, component, zeroInputWidth: true\n };\n }\n }\n }\n\n if (!this._isMulti()) {\n const item = this.getCurrentItem();\n\n if (this.props.passItemContentToInput && item?.itemContent) {\n return {\n title: item.label,\n component: item.itemContent,\n zeroInputWidth: false\n };\n }\n }\n\n return null;\n };\n\n getCursor = (): string => {\n return this.props.inputIsReadOnly && !this.props.isReadOnly && !this.props.isDisabled ? \"pointer\" : \"\";\n };\n\n render() {\n const singleSelectLabeledContentBefore = this.createContentBefore();\n const { title, component, link, zeroInputWidth } = singleSelectLabeledContentBefore ?? {};\n\n const inputProps: React.AllHTMLAttributes = {\n ...this.props.inputProps,\n width: !!zeroInputWidth ? \"0px\" : this.props.inputProps?.width,\n readOnly: isDefined(this.props.inputIsReadOnly) ? this.props.inputIsReadOnly : false\n };\n\n const sharedInputProps = getSharedInputProps(this.props);\n //todo: error handling not finished yet, decide what to throw and when\n // if (sharedInputProps.error && sharedInputProps.error.detailType === ValidationErrorDetailType.NoRecord) {\n // sharedInputProps.error = null;\n // }\n const { error } = sharedInputProps;\n\n const customOverflowTooltip = !singleSelectLabeledContentBefore ? {} : {\n tooltip: () => isOverflowing(this._refTabularData?.current, 1) || error ? (error?.message ?? title) : \"\"\n };\n\n const currentValue = this.getCurrentValue();\n const isItalic = !this.props.preventNoRecordDefaultStyle && ((currentValue === this.getNoRecordText() && !this.props.value) || this.props.value === EMPTY_VALUE);\n\n const readOnlyTabularData = this.createReadOnlyTabularText();\n\n let select = (\n \n \n {({ ref }: ReferenceChildrenProps) => {\n // ref cannot be called during rendering, otherwise setState is triggered leading to errors in console\n setTimeout(() => {\n //@ts-ignore\n this.props.openerRef && ref(this.props.openerRef.current);\n });\n\n const handleBtnRef = (element: HTMLButtonElement) => {\n handleRefHandlers(element, ref, this._btnRef);\n };\n\n return (\n <>\n {this.props.fieldComponent &&\n this.props.fieldComponent({\n isOpen: this.state.isOpen,\n isDisabled: this.props.isDisabled,\n onClick: this.handleInputClick,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onWheel: this.props.onWheel,\n onIconClick: this.props.isIconWithoutAction ? null : this.handleIconClick,\n openerRef: this.props.openerRef ? null : handleBtnRef\n })\n }\n {!this.props.fieldComponent &&\n \n \n {readOnlyTabularData &&\n {readOnlyTabularData}\n }\n \n }\n \n );\n }}\n \n {this.state.isOpen &&\n this.renderMenu()\n }\n \n );\n\n if (!this.props.fieldComponent) {\n select = (\n \n {select}\n \n );\n }\n\n return select;\n }\n}\n\nconst BasicSelectWithTranslation = withTranslation([\"Common\"], { withRef: true })(withPortalRootElement(BasicSelect));\nexport { BasicSelectWithTranslation as BasicSelect, BasicSelect as BasicSelectClean };\n","/**\n * returns element, which should be used as a root for portal to display elements in overlay\n * @param rootRef\n * @param fallbackId\n */\nexport function getPortalRootElement(rootRef: React.RefObject, fallbackId = \"autocomplete-root\"): HTMLDivElement | null {\n return rootRef?.current ?? (document.getElementById(fallbackId) as HTMLDivElement);\n}","import React from \"react\";\nimport {\n BasicSelect,\n BasicSelectClean\n} from \"./BasicSelect\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { IconButton, IIconButtonProps } from \"../../button\";\nimport * as PopperJS from \"@popperjs/core\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { IFieldComponentProps, ISelectionChangeArgs, ISelectPropsBase } from \"@components/inputs/select/Select.types\";\n\nexport interface IIconSelectProps extends Omit {\n icon: React.ReactElement;\n iconButtonProps?: Partial;\n title?: string;\n /** Renders html data-hotspotid attribute*/\n hotspotId: string;\n isDecorative?: boolean;\n isActive?: boolean;\n dontDisplayNoDataFound?: boolean;\n render?: (sharedProps: any) => React.ReactElement;\n selectRef?: React.RefObject;\n ref?: React.Ref;\n}\n\nclass IconSelect extends React.PureComponent {\n _refSelect = React.createRef();\n _refButton = React.createRef();\n\n public open = (): void => {\n this._refButton.current?.focus();\n this._refSelect.current?.open();\n };\n\n getHandleKeyDown = memoizeOne((onKeyDown: (e: React.KeyboardEvent) => void) => {\n return (event: React.KeyboardEvent): void => {\n // only call select.onKeyDown if the select is opened\n // it doesn't make sense to change select item by pressing arrow up/down on Button, without the select menu opened\n if (this._refSelect.current?.isOpen()) {\n onKeyDown(event);\n }\n };\n });\n\n renderFieldComponent = (props: IFieldComponentProps): React.ReactElement => {\n return (\n )}\n {...this.props.iconButtonProps}\n >\n {this.props.icon}\n \n );\n };\n\n handleChange = (e: ISelectionChangeArgs): void => {\n // if we ever need to remove this,\n // this check needs to be moved to every usage of IconSelect\n e.triggerAdditionalTasks && this.props.onChange?.(e);\n };\n\n renderContent = (): React.ReactElement => {\n const sharedProps = {\n onChange: this.handleChange,\n placement: \"bottom\" as PopperJS.Placement,\n displayArrow: true,\n fieldComponent: this.renderFieldComponent,\n closeOnSelection: true,\n openOnClick: true,\n inputIsReadOnly: true,\n isSharpLeft: true,\n isSharpRight: true,\n isIconSelect: true\n };\n\n return this.props.render ? this.props.render(sharedProps) :\n ();\n };\n\n render() {\n return this.renderContent();\n }\n}\n\nexport default withTranslation(\"Common\", { withRef: true })(IconSelect);\nexport { IconSelect as IconSelectClean };","import styled from \"styled-components/macro\";\n\nimport { BasicSelect } from \"./BasicSelect\";\n\nconst MIN_INPUT_WIDTH = 40;\n\nexport const BasicSelectStyled = styled(BasicSelect)<{\n $minWidth?: number;\n}>`\n input {\n flex: ${props => `1 0 ${props.$minWidth ?? MIN_INPUT_WIDTH}px`};\n }\n`;","import {\n IBaseSelectionChangeArgs,\n ISelectionChangeArgs,\n ISelectItem,\n ISelectPropsBase,\n ISharedData,\n SelectAdditionalItems,\n SelectGroups,\n TSelectItemId\n} from \"@components/inputs/select/Select.types\";\nimport { _showTabularHeader, NO_RECORD_FOUND } from \"@components/inputs/select/Select.utils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { debounce } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { BasicInputSizes, IconSize, TextAlign } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { CaretIcon } from \"../../icon\";\nimport Text from \"../../text\";\nimport { ITokenProps } from \"../../token\";\nimport Tokenizer, { TokenizerClean } from \"../../token/Tokenizer\";\nimport { ICheckboxChange } from \"../checkbox\";\nimport { IInputOnBlurEvent } from \"../input\";\nimport { BasicSelectClean, IState as IBasicSelectState } from \"./BasicSelect\";\nimport { BasicSelectStyled } from \"./MultiSelect.styles\";\nimport { GlobalAllPrefix, StyledCheckbox } from \"./Select.styles\";\nimport { filterItems, getFirstMatchingItemIndex } from \"./SelectAPI\";\nimport { ISelectMenuItemContentArgs } from \"./SelectMenuItem\";\n\n\nexport interface IMultiSelectionChangeArgs extends IBaseSelectionChangeArgs {\n value: TSelectItemId[];\n selectedItems?: ISelectItem[];\n}\n\nexport interface IMultiSelectProps extends Omit {\n hideDisplayAll?: boolean;\n showClearSelection?: boolean;\n shouldCheckParents?: boolean;\n shouldCheckChildren?: boolean;\n value?: TSelectItemId[];\n onChange?: (args: IMultiSelectionChangeArgs) => void;\n hiddenItems?: ISelectItem[];\n // for weird cases where we have MultiSelect but don't want to be able to select all items at once\n withoutMainToggle?: boolean;\n trailingTextWithoutFocus?: string; // to show text on blurred multiselect with tokens\n}\n\ninterface IState extends IBasicSelectState {\n selectedInputItemIndex?: number;\n skipKeyHandling?: boolean;\n hasFocus?: boolean;\n}\n\nclass MultiSelect extends React.Component {\n static defaultProps = {\n shouldCheckParents: true,\n shouldCheckChildren: true,\n openOnClick: true,\n inputIsReadOnly: false\n };\n\n private _refInput = React.createRef();\n private _refSelect = React.createRef();\n private _tokenizerRef = React.createRef();\n\n ignoreNextFocus = false;\n\n state: IState = {\n selectedInputItemIndex: -1,\n hasFocus: false\n };\n\n getWidth = () => {\n return parseInt(this.props.width || BasicInputSizes.L);\n };\n\n componentDidMount() {\n this.renderTokenLinksForDisabledMultiSelect();\n }\n\n componentDidUpdate(prevProps: IMultiSelectProps): void {\n // after deleting last item remove read only flag\n if (this.props.value?.length === 0) {\n this._refInput.current?.removeAttribute(\"readOnly\");\n }\n if (this.props.value?.length !== prevProps.value?.length) {\n // after selecting / unselecting value, current search term is kept in the input, so meno won't change.\n // However we want to select whole value, so user can start over easily with searching something different\n // @see DEV-6050\n this._refInput.current?.setSelectionRange(0, (this._refSelect?.current as any)?.state.currentValue?.length);\n this.getShareData().skipRangeSelection = true;\n }\n\n if (this.props.items?.length !== prevProps.items?.length\n || this.props.value?.length !== prevProps.value?.length\n || this.props.isDisabled !== prevProps.isDisabled) {\n this.renderTokenLinksForDisabledMultiSelect();\n }\n }\n\n get isOpen() {\n return !!(this._refSelect?.current as any)?.state?.isOpen;\n }\n\n get isGlobalAll() {\n return this.props.value?.find?.(item => item === SelectAdditionalItems.GlobalAll);\n }\n\n /** In case the MultiSelect is disabled, the Input it uses is disabled as well.\n * This creates a problem for us, because we want to be able to use links on the tokens, if present,\n * even if the MultiSelect itself is disabled.\n * This function is simple hack that does just that by copying the tokens text and rendering it in the DOM\n * in place that is outside the disabled styles (opacity:0.5 and pointer-events: none)\n * https://solitea-cz.atlassian.net/browse/DEV-24022\n * feel free to remove this function if we decide to completely change the behavior for disabled MultiSelects,\n * e.g. if we found out that users actually want to be able to see all values in disabled MultiSelect..\n * Then, we would've to make bigger overhaul of the component.\n * Wrapped in debounce to ensure that the tokens are already rendered and positioned\n * (i think tokenizer uses some timeouts of its own)*/\n renderTokenLinksForDisabledMultiSelect = debounce((): void => {\n const tokenizerElem = this._tokenizerRef.current?._tokenizerRef?.current;\n const inputWrapperElem = tokenizerElem?.parentElement?.parentElement?.parentElement?.parentElement;\n\n if (!this.props.isDisabled) {\n // remove all cloned links, only direct descendants (:scope + >)\n inputWrapperElem?.querySelectorAll(\":scope > a\").forEach(element => element.remove());\n\n return;\n }\n\n if (!inputWrapperElem || !this.props.isDisabled || this.props.value?.length === 0 || !this.props.items?.find(item => item.link)) {\n return;\n }\n\n const inputRect = inputWrapperElem.getBoundingClientRect();\n\n for (const tokenElem of tokenizerElem.children) {\n const link = tokenElem.children[0];\n\n if (link.tagName !== \"A\") {\n continue;\n }\n\n const linkComputedStyles = getComputedStyle(link);\n\n if (linkComputedStyles.visibility === \"hidden\") {\n continue;\n }\n\n const newLink = link.cloneNode() as HTMLAnchorElement;\n const linkRect = link.getBoundingClientRect();\n const linkParentRect = link.parentElement.getBoundingClientRect();\n const linkParentStyles = getComputedStyle(link.parentElement);\n const linkParentLeftPadding = parseInt(linkParentStyles.paddingLeft);\n const linkParentTopPadding = parseInt(linkParentStyles.paddingTop);\n\n newLink.style.fontSize = linkComputedStyles.fontSize;\n newLink.style.fontWeight = linkComputedStyles.fontWeight;\n newLink.style.letterSpacing = linkComputedStyles.letterSpacing;\n newLink.style.position = \"absolute\";\n newLink.style.left = `${linkRect.left - inputRect.left - linkParentLeftPadding - 1}px`;\n newLink.style.top = `${linkRect.top - inputRect.top - linkParentTopPadding - 2}px`;\n newLink.style.width = `${linkParentRect.width}px`;\n newLink.style.height = `${linkParentRect.height}px`;\n newLink.style.padding = getComputedStyle(link.parentElement).padding;\n newLink.style.border = linkParentStyles.border;\n newLink.style.borderColor = \"transparent\";\n newLink.textContent = link.textContent;\n newLink.style.overflow = \"hidden\";\n newLink.style.textOverflow = \"ellipsis\";\n newLink.style.whiteSpace = \"nowrap\";\n newLink.setAttribute(\"title\", newLink.textContent);\n\n inputWrapperElem.prepend(newLink);\n }\n });\n\n getMoreItemsText = (count: number) => {\n return count ? this.props.t(\"Common:Select.MoreItems\", { count }) : \"\";\n };\n\n moveLeft = () => {\n if (this._refInput.current.selectionStart > 0) {\n // caret in text\n return;\n }\n\n let { selectedInputItemIndex } = this.state;\n\n this._refInput.current.setAttribute(\"readOnly\", \"true\");\n\n if (selectedInputItemIndex === -1) {\n selectedInputItemIndex = this.props.value?.length ?? 0;\n }\n selectedInputItemIndex = Math.max(0, selectedInputItemIndex - 1);\n\n this.setState({\n selectedInputItemIndex\n });\n\n this.scrollToToken(selectedInputItemIndex);\n };\n\n moveRight = () => {\n let { selectedInputItemIndex } = this.state;\n\n if (this._refInput.current.selectionStart > 0 || selectedInputItemIndex === -1) {\n // caret in text\n return;\n }\n\n if (selectedInputItemIndex !== -1) {\n selectedInputItemIndex += 1;\n if (selectedInputItemIndex > this.props.value.length - 1) {\n selectedInputItemIndex = -1;\n }\n\n this.setState({\n selectedInputItemIndex\n });\n\n if (selectedInputItemIndex === -1) {\n this._refInput.current.removeAttribute(\"readOnly\");\n } else {\n this.scrollToToken(selectedInputItemIndex, TextAlign.Right);\n }\n }\n };\n\n // TODO move keyboard functionality to Tokenizer\n protected handleKeyDown = (e: React.KeyboardEvent) => {\n const _deleteItem = (index: number, moveCursor = -1) => {\n const values = [...this.props.value];\n values.splice(index, 1);\n const selectedItems = this.getAllItems()?.filter(item => values.indexOf(item.id) !== -1);\n this.props.onChange({\n value: values,\n triggerAdditionalTasks: true,\n selectedItems\n });\n const nextIndex = values.length === 0 ? -1\n : Math.max(Math.min(index + moveCursor, values.length - 1), 0);\n\n this.setState({\n selectedInputItemIndex: nextIndex\n });\n if (nextIndex !== -1) {\n this.scrollToToken(nextIndex, \"nearest\");\n }\n };\n\n let selectedInputItemIndex = this.state.selectedInputItemIndex;\n\n if ((this.props.value || \"\").length > 0) {\n switch (e.key) {\n case KeyName.Home:\n if (selectedInputItemIndex !== -1) {\n selectedInputItemIndex = 0;\n this.setState({\n selectedInputItemIndex\n });\n this.scrollToToken(selectedInputItemIndex, TextAlign.Left);\n }\n return;\n\n case KeyName.End:\n if (selectedInputItemIndex !== -1) {\n selectedInputItemIndex = this.props.value.length - 1;\n this.setState({\n selectedInputItemIndex\n });\n this.scrollToToken(selectedInputItemIndex, TextAlign.Right);\n }\n return;\n\n case KeyName.ArrowLeft:\n this.moveLeft();\n\n return;\n\n case KeyName.ArrowRight:\n this.moveRight();\n\n return;\n\n case KeyName.Delete:\n if (selectedInputItemIndex !== -1) {\n _deleteItem(selectedInputItemIndex, 0);\n }\n return;\n\n case KeyName.Backspace:\n const toDel = selectedInputItemIndex;\n if (toDel === -1 && this._refInput.current.selectionStart === 0 && this._refInput.current.selectionEnd === 0) {\n this._refInput.current.setAttribute(\"readOnly\", \"true\");\n this.setState({\n selectedInputItemIndex: this.props.value.length - 1\n });\n }\n\n if (toDel !== -1) {\n _deleteItem(toDel);\n }\n return;\n }\n }\n };\n\n handleWheel = (event: React.WheelEvent) => {\n if (event.deltaY < 0) {\n this.moveLeft();\n } else {\n this.moveRight();\n }\n };\n\n getAllItems = () => {\n return [...(this.props.additionalItems || []), ...this.props.items, ...(this.props.hiddenItems || [])]\n .filter(item => !this.isAdditionalUnselectableItem(item));\n };\n\n getAllSelectableItems = () => {\n return this.getAllItems().filter(item => !item.isDisabled);\n };\n\n getTokenDefs = memoizeOne((): ITokenProps[] => {\n const allItems = this.getAllItems();\n\n return (this.props.value || []).map((value, index: number) => {\n const item = allItems.find(item => item.id === value);\n\n if (!item) {\n return null;\n }\n\n return {\n id: item.id.toString(),\n title: item.label,\n description: item.description,\n color: item.color,\n link: item.link,\n isSelected: this.state.selectedInputItemIndex === index\n };\n }).filter(val => val);\n }, () => [\n this.props.additionalItems, this.props.items,\n this.props.hiddenItems, this.props.value,\n this.state.selectedInputItemIndex\n ]);\n\n setChildren = (item: ISelectItem, check: boolean, values: TSelectItemId[], recursiveCall = false) => {\n for (const child of item.children || []) {\n this.setChildren(child, check, values, true);\n }\n if (!item.isDisabled && recursiveCall) {\n this.setValue(item.id, values, check);\n }\n };\n\n isAllChildrenSet = (item: ISelectItem, values: TSelectItemId[]) => {\n if (!values.find(id => id === item.id)) {\n return false;\n }\n\n for (const child of item.children || []) {\n if (!this.isAllChildrenSet(child, values)) {\n return false;\n }\n }\n\n return true;\n };\n\n setParents = (item: ISelectItem, check: boolean, values: TSelectItemId[]) => {\n let parent = item.parent;\n while (parent) {\n if (!check) {\n this.setValue(parent.id, values, false);\n } else {\n // current parent is disabled -> stop processing selection\n if (parent.isDisabled) {\n return;\n }\n // test whether there is any unchecked children\n for (const child of parent.children) {\n if (!this.isAllChildrenSet(child, values)) {\n return;\n }\n }\n this.setValue(parent.id, values, true);\n }\n\n parent = parent.parent;\n }\n };\n\n setValue = (id: TSelectItemId, values: TSelectItemId[], forceCheck?: boolean) => {\n const index = values.findIndex(item => item === id);\n if ((isNotDefined(forceCheck) || forceCheck) && index === -1) {\n values.push(id);\n return true;\n }\n\n if ((isNotDefined(forceCheck) || !forceCheck) && index !== -1) {\n values.splice(index, 1);\n }\n\n return false;\n };\n\n handleInputItemClick = (index: number) => {\n this._refInput.current.setAttribute(\"readOnly\", \"true\");\n\n this.setState({\n selectedInputItemIndex: index\n });\n };\n\n handleInnerInputClick = () => {\n this.setState({\n selectedInputItemIndex: -1\n });\n this._refInput.current.removeAttribute(\"readOnly\");\n };\n\n isSelected = (item: ISelectItem) => {\n if (item.id === SelectAdditionalItems.SelectAll) {\n return this.areAllItemsChecked();\n } else if (item.id === SelectAdditionalItems.SelectFiltered) {\n return this.areAllAvailableItemsChecked();\n }\n const valueArr = this.props.value || [];\n // for boolean select, find will return the matched value, which might be \"false\", so check if defined instead\n return isDefined((valueArr).find(item1 => item1 === item.id)) || item.isSelected ||\n (!!item.additionalData?.isNoRecord && valueArr.length === 0 && !this.hasSelectedAdditionalItem());\n };\n\n _isTabular = () => {\n return (this.props.columns || []).length > 1;\n };\n\n removeSelection = () => {\n if (this.state.selectedInputItemIndex !== -1) {\n this.setState({\n selectedInputItemIndex: -1\n });\n }\n };\n\n correctTokenizerItems = () => {\n this._tokenizerRef.current?.correctItems();\n };\n\n /**\n * Scrolls to token with index idx\n * @param idx\n * @param alignment - new alignment or 'nearest' to calculate nearest edge\n * @param forceAlignment\n */\n scrollToToken = (idx: number, alignment: TextAlign | \"nearest\" = TextAlign.Left, forceAlignment = false) => {\n this._tokenizerRef.current.scrollToIndex(idx, alignment, forceAlignment);\n };\n\n handleBlur = (e: IInputOnBlurEvent) => {\n if (this.getShareData().searchTerm) {\n // we erase current value on blur\n this.props.onChange({\n value: this.props.value\n });\n this.getShareData().searchTerm = \"\";\n }\n\n this.removeSelection();\n this.setState({ hasFocus: false });\n\n this.props.onBlur?.(e);\n };\n\n handleFocus = (e: React.FocusEvent) => {\n if (!this.ignoreNextFocus) {\n this.props.onFocus?.(e);\n }\n this._tokenizerRef.current?.forceUpdate();\n this.ignoreNextFocus = false;\n this.setState({ hasFocus: true });\n };\n\n getShareData = (): ISharedData => {\n return (this._refSelect.current as any)?.sharedData;\n };\n\n handleChange = (args: ISelectionChangeArgs) => {\n this.getShareData().skipRangeSelection = false;\n\n if (!args.triggerAdditionalTasks) {\n this.props.onChange({\n value: this.props.value,\n triggerAdditionalTasks: false\n });\n this.forceUpdate(); // just for appendAdditionalItems\n return;\n }\n\n let triggerAdditionalTasks = args.triggerAdditionalTasks ?? false;\n let selectedItems: ISelectItem[] = [];\n let values: TSelectItemId[] = [];\n\n if (args.value === SelectAdditionalItems.GlobalAll) {\n values = [SelectAdditionalItems.GlobalAll];\n selectedItems = [(this.props.additionalItems).find(item => item.id === SelectAdditionalItems.GlobalAll)];\n triggerAdditionalTasks = true;\n this._refSelect.current.setIsOpen(false);\n } else {\n // remove global all\n let filteredValues = [...this.props.value || []];\n if (this.isGlobalAll) {\n filteredValues = [];\n }\n\n if (args.value === SelectAdditionalItems.SelectAll) {\n // toggles selection of ALL items\n const areAllItemsChecked = this.areAllItemsChecked();\n\n if (!areAllItemsChecked) {\n selectedItems = [...this.getAllSelectableItems()];\n values = selectedItems.map(item => item.id);\n }\n\n triggerAdditionalTasks = true;\n } else if (args.value === SelectAdditionalItems.SelectFiltered) {\n // toggles selection of currently rendered items\n const areAllFilteredItemsChecked = this.areAllAvailableItemsChecked();\n const newValues = new Set(filteredValues || []);\n const renderedItems = this.getRenderedItems();\n renderedItems.forEach(item => {\n newValues[areAllFilteredItemsChecked ? \"delete\" : \"add\"](item.id);\n });\n\n values = Array.from(newValues);\n selectedItems = (this.getAllItems() || []).filter(item => values.indexOf(item.id) !== -1);\n triggerAdditionalTasks = true;\n } else {\n values = filteredValues;\n const allItems = this.getAllItems() || [];\n\n // Note: false could be valid value for Boolean select/multiselect\n if (isDefined(args.value)) {\n const item = allItems.find(item => item.id === args.value);\n\n const isChecked = this.setValue(args.value, values);\n if (this.props.shouldCheckChildren) {\n this.setChildren(item, isChecked, values);\n }\n if (this.props.shouldCheckParents) {\n this.setParents(item, isChecked, values);\n }\n this.setState({\n selectedInputItemIndex: -1\n });\n\n triggerAdditionalTasks = true;\n }\n\n selectedItems = allItems.filter(item => values.indexOf(item.id) !== -1);\n }\n\n // When checkbox is clicked and selects a new value, we need to return back the focus to the main input\n if (isDefined(args.value)) {\n // since we are firing the focus our selves => ignore it in the handler\n this.ignoreNextFocus = true;\n this._refInput.current.focus();\n this._refInput.current.removeAttribute(\"readOnly\");\n }\n }\n\n this.props.onChange({\n value: values,\n selectedItems,\n triggerAdditionalTasks,\n additionalData: args.additionalData,\n sharedData: args.sharedData\n });\n };\n\n areAllItemsChecked = () => {\n const selectedIds = this.props.value || [];\n return this.getAllSelectableItems().every(item => selectedIds.includes(item.id));\n };\n\n areAllAvailableItemsChecked = () => {\n const selectedIds = this.props.value || [];\n return (this.getRenderedItems().every(item => selectedIds.includes(item.id)));\n };\n\n getHandleCheckboxChange = memoizeOne((itemArgs: ISelectMenuItemContentArgs) => {\n return (args: ICheckboxChange) => {\n itemArgs.onClick(args.origEvent as unknown as React.MouseEvent);\n };\n });\n\n renderCheckbox = (item: ISelectItem, itemArgs: ISelectMenuItemContentArgs) => {\n if (item.id === SelectAdditionalItems.GlobalAll) {\n return ;\n }\n\n if ((item.groupId === SelectGroups.Default && this.props.renderDefaultGroupWithoutCheckboxes)\n || (item.id === SelectAdditionalItems.SelectAll && this.props.withoutMainToggle)) {\n return null;\n }\n\n return (\n \n );\n };\n\n /**\n * Returns true if item is \"system\" one, which can't be selected (it's ID can't be used in value),\n * e.g. SelectAll, etc...\n * @param item\n */\n isAdditionalUnselectableItem = (item: ISelectItem): boolean => {\n const AdditionalItemIds: TSelectItemId[] = [\n SelectAdditionalItems.SelectAll,\n SelectAdditionalItems.SelectFiltered,\n SelectAdditionalItems.GlobalAll,\n NO_RECORD_FOUND\n ];\n return AdditionalItemIds.includes(item.id?.toString());\n };\n\n getRenderedItems = () => {\n // todo: dirty will need some love in the future -- better share data among them\n const items = this.getShareData()?.renderedItems as ISelectItem[];\n return (items || []).filter(item => !this.isAdditionalUnselectableItem(item) && !item.isDisabled);\n };\n\n appendAdditionalItems = () => {\n const extraItems = [];\n if (!this.props.hideDisplayAll && !(this._isTabular() && _showTabularHeader(this.props))) {\n /**\n * SelectAll should be displayed only when there are some visible items. When select is not\n * filtered (currentValue is empty) we need to check for all items - for the first render, there are no\n * sharedData with renderedItems :/. When there is currentValue, we need to check renderedItems from\n * SharedData, but without additionalItems\n */\n let shouldDisplaySelectAll;\n const { searchTerm } = this.getShareData() ?? {};\n if (searchTerm) {\n let filteredItems: ISelectItem[];\n const firstIndex = getFirstMatchingItemIndex(this.props.items, searchTerm, this.props.searchType);\n if (!firstIndex?.anyWordFit) {\n filteredItems = filterItems({\n items: this.getAllItems(),\n skipFilter: false,\n searchType: this.props.searchType,\n value: searchTerm\n });\n }\n const firstItem = filteredItems?.length ? filteredItems[0] : this.props.items?.[firstIndex?.anyWordFit];\n shouldDisplaySelectAll = firstItem && !this.isAdditionalUnselectableItem(firstItem);\n } else {\n shouldDisplaySelectAll = this.props.items.length > 1;\n }\n if (shouldDisplaySelectAll) {\n const hasAll = this.props.additionalItems?.find(item => item.id === SelectAdditionalItems.GlobalAll\n || item.id === SelectAdditionalItems.SelectAll);\n\n if (!hasAll) {\n const selectAllItem = {\n id: SelectAdditionalItems.SelectAll,\n label: this.props.t(\"Common:Select.All\"),\n isSearchable: false,\n groupId: SelectGroups.Default\n };\n extraItems.push(selectAllItem);\n }\n\n if (searchTerm) {\n const hasAllFiltered = this.props.additionalItems?.find(item => item.id === SelectAdditionalItems.SelectFiltered);\n\n if (!hasAllFiltered) {\n const selectAllFilteredItem = {\n id: SelectAdditionalItems.SelectFiltered,\n label: this.props.t(\"Common:Select.SearchResults\"),\n isSearchable: false,\n groupId: SelectGroups.Default\n };\n extraItems.push(selectAllFilteredItem);\n }\n }\n }\n }\n\n const specialTopItems = this.props.additionalItems?.filter(item => item.groupId === SelectGroups.BeforeDefault) || [];\n const rest = this.props.additionalItems?.filter(item => item.groupId !== SelectGroups.BeforeDefault) || [];\n\n return [...specialTopItems, ...extraItems, ...rest];\n };\n\n createContentBefore = () => {\n const tokenDefs = this.getTokenDefs();\n return (\n {\n this.handleInputItemClick(tokenDefs.findIndex(tokenDef => tokenDef.id === tokenId));\n }}\n trailingText={this.state.hasFocus ? \"\" : this.props.trailingTextWithoutFocus}\n extraSpace={this.state.hasFocus ? 40 : (this.props.trailingTextWithoutFocus ? 0 : 40)}\n ref={this._tokenizerRef}/>\n );\n };\n\n renderReadOnlyColorItems = () => {\n const tokenDefs = this.getTokenDefs();\n const isEmpty = !tokenDefs || tokenDefs.length === 0;\n\n if (isEmpty) {\n return (\n \n {DASH_CHARACTER}\n \n );\n }\n\n return (\n \n );\n };\n\n hasSelectedAdditionalItem = (): boolean => {\n return !!this.props.additionalItems?.some(i => i.isSelected);\n }\n\n render() {\n const { value, additionalItems, ...props } = this.props;\n\n if (this.props.isReadOnly && this.props.items?.[0]?.color) {\n return this.renderReadOnlyColorItems();\n }\n\n const isGlobalAll = this.isGlobalAll;\n\n return (\n }\n isSelected={this.isSelected}\n closeOnSelection={false}\n itemContent={this.renderCheckbox}\n onKeyDown={this.handleKeyDown}\n onWheel={this.handleWheel}\n value={isGlobalAll ? SelectAdditionalItems.GlobalAll : \"\"}\n contentBefore={isGlobalAll ? null : this.createContentBefore()}\n isMultiSelect\n hasValue={!!this.props.value?.length || this.hasSelectedAdditionalItem()}\n onChange={this.handleChange}\n useAutoSelection={false}\n useTypingForward={true}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n additionalItems={this.appendAdditionalItems()}\n inputRef={this._refInput}\n inputProps={{\n onClick: this.handleInnerInputClick\n }}\n />\n );\n }\n}\n\nconst MultiSelectWithTranslation = withTranslation([\"Common\"], { withRef: true })(MultiSelect);\nexport { MultiSelectWithTranslation as MultiSelect };\n","import { GroupDividerSize, IColumn, MenuLineItem } from \"@components/inputs/select/Select.types\";\nimport { ellipsis, transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { IconSize, TextAlign } from \"../../../enums\";\nimport { T_PLAIN_small_hig, T_TITLE_6 } from \"../../../global.style\";\nimport { themes } from \"../../../theme\";\nimport Clickable from \"../../clickable\";\nimport { ZoomSmallIcon } from \"../../icon\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { StyledToken } from \"../../token/Token.styles\";\nimport Checkbox from \"../checkbox/Checkbox\";\nimport { InputWithErrorAndTooltip } from \"../input\";\nimport { AuditTrailInputCss } from \"../input/Input.styles\";\n\n\nconst SelectUnderline = css<{\n isSelected?: boolean;\n isLabel?: boolean;\n}>`\n ${props => props.isSelected && `\n &:after{\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n background-color: ${props.theme.C_TEXT_dialogue};\n left: 0; \n bottom: ${props.isLabel ? \"1px\" : \"4px\"};\n }\n `};\n`;\n\nconst TabularSelectedUnderline = css<{\n isSelected?: boolean;\n}>`\n ${SelectUnderline};\n ${props => props.isSelected && `\n &:after{\n bottom: 1px;\n }\n `};\n`;\n\nexport const DescriptionSeparator = \" | \";\n\nexport const InputDescriptionText = styled.span`\n color: ${props => props.theme.C_ACT_thick_line}\n`;\n\nexport const InputTabularAllText = styled.div<{\n auditTrailType?: AuditTrailFieldType;\n hasError?: boolean;\n}>`\n ${props => props.hasError && css`\n position: relative;\n top: 10px;\n `};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n ${AuditTrailInputCss};\n`;\n\nexport const ArrowCover = styled.div`\n position: absolute;\n height: 14px;\n width: 19px;\n overflow: hidden;\n`;\n\nexport const ArrowTop = styled.div`\n position: absolute;\n width: 15px;\n height: 15px;\n left: 2px;\n background-color: #9e037f;\n transform: rotate(135deg);\n border-radius: 2px;\n`;\n\nexport const StyledSelect = styled.div<{\n _height: string,\n _cursor: string\n}>`\n position: relative;\n cursor: ${props => props._cursor};\n height: ${props => props._height ? props._height : \"\"};\n align-self: flex-start; // -> Select in read-only mode should be aligned same way as other inputs\n`;\n\nexport const InputWrapper = styled.div<{\n _isItalic?: boolean;\n}>`\n height: 100%;\n display: flex;\n font-style: ${props => props._isItalic ? \"italic\" : \"\"};\n`;\n\nexport const ReadOnlyTabularData = styled.span<{ isLight?: boolean }>`\n font-size: 14px;\n opacity: 0.5;\n color: ${props => !props.isLight ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n padding-top: 8px;\n margin-left: 4px;\n white-space: nowrap;\n`;\n\nexport const StyledMenuWrapper = styled.div`\n outline: none;\n`;\n\nexport const StyledMenu = styled.div`\n outline: none;\n border-radius: 3px;\n box-shadow: 0 0 12.7px 0.3px rgba(0, 0, 0, 0.15);\n background: ${props => props.theme.C_BG_popover};\n list-style: none;\n padding-left: 0;\n\n position: absolute;\n margin: 0;\n border-top: 0;\n cursor: default;\n z-index: 1000;\n\n &[data-popper-placement^=\"top\"] {\n ${ArrowCover} {\n bottom: -13px;\n }\n\n ${ArrowTop} {\n top: -7px;\n }\n }\n\n &[data-popper-placement^=\"bottom\"] {\n ${ArrowCover} {\n top: -13px;\n }\n\n ${ArrowTop} {\n top: 6px;\n }\n }\n`;\n\nexport const SelectGroup = styled.div<{\n _isTabular?: boolean;\n}>`\n width: 100%;\n`;\n\nexport const SelectGroupContent = styled.div<{\n _isTabular?: boolean;\n}>`\n display: ${props => props._isTabular ? \"table\" : \"block\"};\n width: 100%;\n`;\n\nexport const BoldText = styled.span`\n font-weight: 900;\n`;\nexport const StyledText = styled.span<{\n _hasColor?: boolean;\n}>`\n display: block;\n font-size: 12px;\n position: relative;\n height: 100%;\n color: ${props => props._hasColor ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n ${ellipsis()};\n\n ${props => props._hasColor && `\n text-transform: uppercase;\n font-weight: bold\n `}\n`;\n\nexport const Description = styled.span`\n font-style: italic;\n`;\n\nexport const ColSpanWrapper = styled.div<{\n isLast?: boolean;\n isFirst?: boolean;\n isSelected?: boolean;\n column: IColumn;\n}>`\n width: ${props => props.isLast && props.column?.textAlign !== TextAlign.Right ? \"fit-content\" : \"100%\"};\n position: relative;\n padding-left: ${props => props.isFirst ? \"\" : props.column?.textAlign === TextAlign.Right ? \"24px\" : \"12px\"};\n padding-right: ${props => props.isLast ? \"\" : props.column?.textAlign === TextAlign.Right ? \"12px\" : \"24px\"};\n max-width: 100%;\n min-height: 17px;\n ${TabularSelectedUnderline};\n`;\n\nexport const ItemWrapper = styled.div<{\n indent: number;\n isSelected: boolean;\n hasPreContent: boolean;\n hasIcon: boolean;\n isLabel: boolean;\n}>`\n position: relative;\n margin-left: ${props => ((props.hasPreContent ? 12 : 0) + (props.indent || 0) * 20) + (props.hasIcon ? IconSize.asNumber(\"S\") + 12 : 0) + \"px\"};\n padding-top: 9px;\n ${SelectUnderline};\n height: 100%;\n overflow: hidden;\n ${props => props.isLabel && `\n padding-left: 4px;\n padding-right: 4px;\n `}\n`;\n\nexport const ColorBackground = styled.div<{\n _color: string;\n}>`\n position: absolute;\n top: 4px;\n left: 0;\n height: 22px;\n width: 100%;\n border-radius: 3px;\n background: ${props => props._color};\n`;\n\n\nexport const StyledItem = styled.div.attrs({\n selected: true\n})<{\n _italic?: boolean;\n isHighlighted?: boolean,\n isSelected?: boolean,\n isTabular?: boolean\n _isDisabled?: boolean;\n _defaultWidth?: number;\n}>`\n font-style: ${props => props._italic ? \"italic\" : \"normal\"};\n height: 30px;\n display: ${props => props.isTabular ? \"table-row\" : \"flex\"};\n align-items: center;\n background-color: ${props => props.isHighlighted ? themes.light.C_ACT_hover : \"\"};\n padding-left: 12px;\n\n padding-right: 24px;\n cursor: ${props => props._isDisabled ? \"default\" : \"pointer\"};\n position: relative;\n // for table-row relative hack\n transform: scale(1);\n width: 100%;\n opacity: ${props => props._isDisabled ? 0.5 : 1};\n\n ${props => props._defaultWidth && `\n min-width: ${props._defaultWidth - 36}px;\n `}\n`;\n\nexport const GroupEndLine = styled.div <{\n _line: MenuLineItem;\n}>`\n position: absolute;\n width: calc(100% - 24px);\n background-color: ${props => transparentize(0.7, props.theme.C_ACT_hover_without_opacity)};\n height: 1px;\n left: 12px;\n bottom: ${props => props._line === MenuLineItem.Deep ? \"-12px\" : 0};\n`;\n\nexport const TabularHeader = styled.div`\n display: table-header-group;\n transform: scale(1);\n\n ${T_PLAIN_small_hig};\n width: 100%;\n justify-content: space-between;\n color: ${(props) => props.theme.C_BG_menu};\n\n &:after {\n content: '';\n position: absolute;\n height: 1px;\n top: 30px;\n width: calc(100% - 24px);\n left: 12px;\n opacity: 0.3;\n background: ${(props) => props.theme.C_ACT_hover_without_opacity};\n border-radius: 1.5px;\n }\n`;\n\nexport const TableHeaderBottomLine = styled.div`\n position: absolute;\n height: 1px;\n bottom: 0;\n width: calc(100% - 24px);\n left: 12px;\n opacity: 0.3;\n background: ${props => props.theme.C_ACT_hover_without_opacity};\n border-radius: 1.5px;\n`;\n\nexport const TabularHeaderItem = styled.div<{\n column?: IColumn;\n _isContentBefore?: boolean;\n}>`\n display: table-cell;\n padding: ${props => props._isContentBefore ? \"0 0 0 12px\" : \"8px 12px\"};\n vertical-align: middle;\n height: 30px;\n white-space: nowrap;\n text-align: ${props => props.column?.textAlign};\n`;\n\nexport const ContentWrapper = styled.div<{\n _minWidth: number,\n _maxWidth: number\n}>`\n min-width: ${props => `${props._minWidth}px`};\n max-width: ${props => props._maxWidth ? `${props._maxWidth}px` : null};;\n display: block;\n width: fit-content;\n z-index: 5;\n`;\n\nexport const ActionItemsWrapper = styled.div<{ $hasContentBefore: boolean }>`\n position: relative;\n ${props => props.$hasContentBefore && css`padding-top: 9px;`};\n`;\n\nexport const ActionIconsDelimiter = styled.div`\n position: absolute;\n left: 10px;\n width: calc(100% - 20px);\n height: 1px;\n background: ${props => props.theme.C_TEXT_dialogue};\n top: 10px;\n opacity: 0.3;\n`;\n\nexport const Content = styled.div`\n position: relative;\n`;\n\nexport const TabularIconColumn = styled.div <{\n isFirst?: boolean;\n}>`\n display: table-cell;\n padding-left: ${props => props.isFirst ? \"12px\" : \"0\"};\n vertical-align: middle;\n width: 33px;\n`;\n\n\nexport const TabularColumn = styled.div<{\n isFirst?: boolean;\n isLast?: boolean;\n column?: IColumn;\n isContentBefore?: boolean;\n}>`\n display: table-cell;\n vertical-align: middle;\n white-space: nowrap;\n font-size: 12px;\n color: ${props => props.theme.C_BG_menu};\n //padding-top: 8px;\n overflow: hidden;\n position: relative;\n text-align: ${props => props.column?.textAlign};\n //to make content before colum as small as possible\n width: ${props => props.isContentBefore ? \"1px\" : \"\"};\n padding-left: ${props => props.isFirst ? `${props.column?.textAlign === TextAlign.Right ? 24 : 12}px` : \"0\"};\n padding-right: ${props => props.isLast ? `${props.column?.textAlign === TextAlign.Right ? 12 : 24}px` : \"\"};\n\n max-width: 400px;\n`;\n\nexport const StyledCheckbox = styled(Checkbox)<{\n _isTabular: boolean\n}>``;\n\nexport const GlobalAllPrefix = styled.div`\n margin-left: -10px;\n`;\n\nexport const Header = styled.div`\n padding: 0 24px;\n height: 45px;\n width: 100%;\n display: flex;\n align-items: center;\n color: ${props => props.theme.C_TEXT_dialogue};\n position: relative;\n justify-content: center;\n ${T_TITLE_6}\n`;\n\nexport const HeaderText = styled.div`\n ${ellipsis()};\n color: ${props => props.theme.C_TEXT_dialogue_title};\n`;\n\nexport const StyledSelectInput = styled(InputWithErrorAndTooltip)<{\n _isItalic?: boolean;\n}>`\n ${props => props._isItalic && `\n & input {\n font-style: italic;\n }`}\n ${StyledToken} {\n opacity: ${props => props.auditTrailData?.type === AuditTrailFieldType.NoDifference ? 0 : 1}\n }\n`;\n\nexport const GroupTitle = styled.div`\n ${T_PLAIN_small_hig};\n padding-left: 12px;\n display: flex;\n align-items: flex-start;\n color: ${props => props.theme.C_TEXT_dialogue};\n padding-top: 10px;\n padding-bottom: 10px;\n flex-direction: column;\n position: relative;\n`;\n\nexport const AresSpecialGroupTitle = styled(GroupTitle)`\n padding-top: 20px;\n`;\n\nexport const AresSpecialGroupTitleWithoutLine = styled(GroupTitle)`\n padding-top: 10px;\n`;\n\nexport const GroupDivider = styled.div <{\n _dividerSize: GroupDividerSize;\n}>`\n position: relative;\n height: ${props => props._dividerSize === GroupDividerSize.Large ? \"20px\" : props._dividerSize === GroupDividerSize.Small ? \"10px\" : \"0\"};\n`;\n\n\nexport const GroupDividerLine = styled.div`\n position: absolute;\n left: 12px;\n width: calc(100% - 24px);\n background-color: ${props => transparentize(0.7, props.theme.C_ACT_hover_without_opacity)};\n height: 1px;\n top: 50%;\n`;\n\nexport const GroupSubTitle = styled.span`\n margin-top: 10px;\n font-weight: normal;\n font-style: italic;\n`;\n\nconst LEFT_START = 17;\nconst LEFT_NEXT = 19;\nconst MULTI_START = LEFT_START + 30;\nexport const HorizontalIndentLine = styled.div <{\n _diff: number;\n _isMulti: boolean;\n _indent: number;\n _drawLineForMissingIcon?: boolean;\n}>`\n position: absolute;\n width: ${props => props._drawLineForMissingIcon ? \"40px\" : \"11px\"};\n height: 1px;\n background-color: ${props => props.theme.C_HIERARCHICAL_SELECT_LINE};\n top: 14px;\n left: ${props => (props._indent - 1) * LEFT_NEXT + (props._isMulti ? MULTI_START : LEFT_START) + \"px\"};\n`;\n\nexport const VerticalIndentLine = styled.div <{\n _diff: number;\n _isMulti: boolean;\n _indent: number;\n}>`\n position: absolute;\n width: 1px;\n height: ${props => 19 + ((props._diff - 1) * 30) + \"px\"};\n background-color: ${props => props.theme.C_HIERARCHICAL_SELECT_LINE};\n bottom: 15px;\n left: ${props => (props._indent - 1) * LEFT_NEXT + (props._isMulti ? MULTI_START : LEFT_START) + \"px\"};\n`;\n\nexport const StyledInput = styled.input`\n background: ${props => props.theme.C_SELECT_SEARCH_INPUT_BACKGROUND};\n border: none;\n border-radius: 25px;\n padding-left: 35px;\n padding-right: ${IconSize.asNumber(\"S\") + 6}px;\n margin: 0;\n outline: none;\n height: 100%;;\n width: 100%;\n color: ${props => props.theme.C_TEXT_dialogue};\n`;\n\nexport const SelectInputWrapper = styled.div`\n position: relative;\n border-radius: 25px;\n margin: 10px 12px;\n height: 34px;\n border: none;\n\n &:hover:after,\n &:focus-within:after {\n content: '';\n position: absolute;\n width: calc(100% - 4px);\n height: 30px;\n border: 1px solid ${props => props.theme.C_SELECT_SEARCH_INPUT_FOCUS};\n left: 2px;\n top: 2px;\n border-radius: 25px;\n pointer-events: none;\n }\n\n`;\n\nexport const StyledSearchIcon = styled(ZoomSmallIcon)`\n position: absolute;\n left: 10px;\n color: #fff;\n`;\n\nexport const SelectItemLink = styled(Clickable)`\n position: absolute;\n ${ellipsis()};\n`;","import { THistoryLocation } from \"@components/drillDown/DrillDown.utils\";\nimport { IInputOnBlurEvent, ISharedInputProps } from \"@components/inputs/input\";\nimport { BasicSelectClean as BasicSelect } from \"@components/inputs/select/BasicSelect\";\nimport { IPropsBase } from \"@components/inputs/select/SelectMenu\";\nimport * as PopperJS from \"@popperjs/core\";\nimport React from \"react\";\n\nimport { TextAlign, ValueType } from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\n\nexport interface IColumn {\n label?: string;\n textAlign?: TextAlign;\n id?: string;\n}\n\nexport interface ISharedData {\n isLoading?: boolean;\n dontDisplayNoDataFound?: boolean;\n scrollDirection?: Direction;\n bottomMenuCustomContent?: React.ReactElement;\n highlightedIndex?: number;\n renderedItems?: ISelectItem[];\n searchTerm?: string;\n skipRangeSelection?: boolean;\n}\n\nexport interface IContentBefore {\n title: string;\n component?: React.ReactNode;\n link?: React.ReactNode;\n zeroInputWidth: boolean;\n}\n\nexport interface IBaseSelectionChangeArgs {\n additionalData?: TRecordAny;\n sharedData?: ISharedData;\n /** For some selection we don't want to fire additional stuff like loading dependent fields\n * Usually it is the case when we iterate through the items by cursor.\n * */\n triggerAdditionalTasks?: boolean;\n}\n\nexport type TOnItemsFetchedCallback = (items: ISelectItem[]) => void;\n\nexport interface ISelectionChangeArgs extends IBaseSelectionChangeArgs {\n value?: TSelectItemId;\n}\n\nexport enum SelectAdditionalItems {\n SelectAll = \"SelectAll\",\n GlobalAll = \"GlobalAll\",\n SelectFiltered = \"SelectFiltered\"\n}\n\nexport enum SelectGroups {\n Items = \"Items\",\n BeforeDefault = \"BeforeDefault\",\n Default = \"Default\",\n Action = \"Action\"\n}\n\nexport enum GroupDividerSize {\n Tiny = \"tiny\",\n Small = \"small\",\n Large = \"large\"\n}\n\nexport interface ISelectGroup {\n id: string;\n title?: string;\n hideDivider?: boolean;\n dividerSize?: GroupDividerSize;\n}\n\nexport type TSelectItemId = string | number | boolean;\n\nexport interface ISelectItem {\n id: Type;\n label?: string;\n // support for segmented icon button tooltip\n title?: string;\n description?: string;\n iconName?: string;\n tabularData?: string[];\n /** Holds any other that could be needed by parent components in item selection handler.\n * because values in tabular data doesn't have key and are irretrievable because of that. */\n additionalData?: TRecordAny;\n groupId?: string;\n /** Custom content rendered before the item in the select menu.\n * itemContent callback of BasicSelect can be used instead, for dynamic rendering.*/\n itemContent?: React.ReactNode;\n\n // hierarchy items\n indent?: number;\n parent?: ISelectItem;\n children?: ISelectItem[];\n index?: number;\n isWithoutCheckbox?: boolean;\n\n /** If given, selected value is rendered as clickable link */\n link?: THistoryLocation;\n\n /** Force selected state (underline) of the item,\n * even though the Select itself does not have the item set as its value.\n * Needed for IconSelect used in Toolbar, where we need to show multiple underlined items.*/\n isSelected?: boolean;\n isDisabled?: boolean;\n isNotFilterable?: boolean;\n isSearchable?: boolean;\n // item that can't be highlighted, f.e. no data found for filter selects\n isNotHighlightable?: boolean;\n color?: string;\n}\n\nexport enum Direction {\n Center = \"center\",\n Up = \"up\",\n Down = \"down\",\n None = \"none\"\n}\n\nexport interface IGetFilteredItemsReturn {\n items?: ISelectItem[];\n index?: number;\n}\n\n// inputs so far not supported, hence no change event\nexport interface IFieldComponentProps {\n onClick?: (e: React.MouseEvent) => void;\n value?: TValue;\n onBlur: (args: any) => void; // todo: InputOnBlurEvent | React.FocusEvent ?\n onKeyDown?: (e: React.KeyboardEvent) => void;\n onWheel?: (event: React.WheelEvent) => void;\n onIconClick?: (e: React.MouseEvent) => void;\n isOpen?: boolean;\n isDisabled?: boolean;\n openerRef: React.Ref;\n trailingTextWithoutFocus?: string; // to show text on blurred multiselect with tokens\n}\n\nexport interface IMenuOffset {\n left: number;\n top: number;\n}\n\nexport interface ISelectPropsBase extends ISharedInputProps, IPropsBase {\n /** Indicates whether close menu when user selects item */\n closeOnSelection?: boolean;\n displayName?: string;\n\n /** Should selection be opened when user clicks input? */\n openOnClick?: boolean;\n\n additionalData?: TRecordAny;\n\n /** Input is read only */\n inputIsReadOnly?: boolean;\n dontDisplayNoDataFound?: boolean;\n\n isIconSelect?: boolean;\n // directly selects currently highlighted item without any confirmation. If false, user needs to press Enter\n // or select the item by mouse click. Reverts select to last value on Esc or leaving it without confirmation.\n useAutoSelection?: boolean;\n\n // automatically fulfills the rest of the item if it there is any match\n useTypingForward?: boolean;\n\n // props passed directly to the input\n inputProps?: TRecordAny;\n inputIcon?: React.ReactElement;\n isIconWithoutAction?: boolean;\n\n isMultiSelect?: boolean;\n contentBefore?: React.ReactElement;\n\n /** If this value is set, this value is displayed for no selections*/\n noRecordText?: string;\n preventNoRecordDefaultStyle?: boolean;\n\n // items that are statically defined (usually in def) and are appended to the rest of the items\n additionalItems?: ISelectItem[];\n\n // flag for handling errors for not matching items\n allowCreate?: boolean;\n\n onOpen?: () => void;\n onChange?: (args: ISelectionChangeArgs) => void;\n\n onBlur?: (e: IInputOnBlurEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onWheel?: (event: React.WheelEvent) => void;\n onIconActivate?: (e: React.MouseEvent) => void;\n // Select isOpen is only stored in state of select and is not exposed via props,\n // but sometimes we still need to be notified about the change\n onIsOpenChange?: (isOpen: boolean) => void;\n // onClick callback - if default is prevented, select does not open menu\n onClick?: (e: React.MouseEvent) => void;\n\n ref?: React.Ref;\n\n // custom field component\n fieldComponent?: (args: IFieldComponentProps) => React.ReactElement;\n className?: string;\n style?: React.CSSProperties;\n menuOffset?: IMenuOffset;\n\n openerRef?: React.Ref;\n buttonRef?: React.Ref;\n showSearchBoxInMenu?: boolean;\n showTabularHeader?: boolean;\n searchType?: ValueType;\n\n placement?: PopperJS.Placement;\n displayArrow?: boolean;\n\n shouldDisplayAdditionalColumns?: boolean;\n customTabularData?: string[];\n\n inputRef?: React.Ref;\n passRef?: React.Ref;\n // will not close select on blur event, used mainly for story book\n preventHideOnBlur?: boolean;\n renderDefaultGroupWithoutCheckboxes?: boolean;\n}\n\nexport enum MenuLineItem {\n None = \"none\",\n Bottom = \"bottom\",\n Deep = \"Deep\"\n}","import { ISelectItem, ISelectPropsBase } from \"@components/inputs/select/Select.types\";\n\nexport const NO_RECORD_FOUND = \"##NORECORDFOUND##\";\nexport const PAGE_SIZE = 300;\nexport const ITEM_PAGE_SIZE = 15;\nexport const _isNoRecord = (item: ISelectItem): boolean => {\n return item?.id === NO_RECORD_FOUND;\n};\n\nexport function _showTabularHeader(props: Pick): boolean {\n return props.showTabularHeader ?? props.columns?.length > 2;\n}","import { Direction, ISelectItem, SelectGroups, TSelectItemId } from \"@components/inputs/select/Select.types\";\nimport { ITEM_PAGE_SIZE } from \"@components/inputs/select/Select.utils\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { isNotDefined } from \"@utils/general\";\nimport {\n fixWhiteSpaceChar,\n startOfWordRegExp,\n startsWith,\n startsWithAccentsInsensitive,\n testAccentsInsensitiveWithRegex,\n testWithRegex\n} from \"@utils/string\";\n\nimport { EMPTY_VALUE } from \"../../../constants\";\nimport { FieldType, ValueType } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { Model } from \"../../../model/Model\";\nimport { IValidationError } from \"../../../model/Validator.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { HIERARCHICAL_PARENT_PROP_NAME } from \"@components/smart/smartSelect/SmartSelectAPI.types\";\n\n// !! WARNING !!\n// don't import anything from SmartSelectAPI here, it will cause circular dependency\n\nexport interface IRaiseErrorArgs {\n error: IValidationError;\n shouldFire: boolean;\n}\n\nexport const isSelectBasedComponent = (type: string): boolean => {\n switch (type) {\n case FieldType.Autocomplete:\n case FieldType.BusinessPartnerSelect:\n case FieldType.ComboBox:\n case FieldType.HierarchyComboBox:\n case FieldType.HierarchyMultiComboBox:\n case FieldType.LabelSelect:\n case FieldType.MultiSelect:\n // case FieldType.Select:\n case FieldType.ValueHelper:\n return true;\n\n default:\n return false;\n }\n};\n\ninterface IGetBoundCurrentValue {\n storage: Model;\n info: IFieldInfo;\n fieldBindingContext: BindingContext;\n processMultiValue?: boolean;\n}\n\nexport const isDirectionKey = (keyName: string): boolean => {\n return [KeyName.ArrowUp, KeyName.PageUp, KeyName.ArrowDown, KeyName.PageDown].includes(keyName as KeyName);\n};\n\nexport const isSystemKey = (keyName: string): boolean => {\n return isDirectionKey(keyName) || [KeyName.Escape, KeyName.Enter, KeyName.Space, KeyName.Backspace, KeyName.Delete,\n KeyName.Tab, KeyName.Shift, KeyName.Control].includes(keyName as KeyName);\n};\n\nexport const getSelectDisplayValue = (args: IGetBoundCurrentValue): string => {\n let displayValue;\n if (args.info?.fieldSettings?.items) {\n const { value } = args.storage.getFieldValues(args.fieldBindingContext, args.info);\n if (Array.isArray(value) && args.processMultiValue) {\n const displayValues = (value as string[]).map(val => getSelectDisplayValueForOneItem(val, args));\n // filter out undefined values and join\n displayValue = displayValues.filter(item => item).join(\", \");\n } else {\n displayValue = getSelectDisplayValueForOneItem(value, args);\n }\n }\n\n return displayValue;\n};\n\nexport function getItemsForRenderCallbackArgs(storage: Model, info: IFieldInfo, fieldBc?: BindingContext, context?: IAppContext): IGetValueArgs {\n return {\n data: storage?.data.entity,\n context: context ?? storage?.context,\n bindingContext: fieldBc ?? info.bindingContext,\n info, storage\n };\n}\n\n/**\n * Display value for just one select item, so we can work with it further...\n * @param value\n * @param args\n */\nexport const getSelectDisplayValueForOneItem = (value: unknown, args: IGetBoundCurrentValue): string => {\n const _getValue = (value: string) => {\n const { fieldSettings } = args.info;\n let items = fieldSettings?.items ?? [];\n if (fieldSettings?.itemsForRender) {\n items = fieldSettings?.itemsForRender(items, getItemsForRenderCallbackArgs(args.storage, args.info, args.fieldBindingContext));\n }\n const item = [\n ...items,\n ...(fieldSettings?.additionalItems ?? []),\n ...(fieldSettings?.initialItems ?? [])\n ].find(item => item.id === value);\n\n if (item) {\n return item.label || item.id?.toString();\n }\n\n return \"\";\n };\n\n const displayValue = _getValue(value as string);\n\n if (!displayValue && args.info?.type === FieldType.LabelSelect) {\n // in reports, LabelSelect items are not fetched immediately,\n // but the value already represents LabelSelects label\n return value === EMPTY_VALUE ? args.storage.t(\"Common:General.Empty\") : (value || args.storage.t(\"Reporting:Common.NoLabel\")) as string;\n }\n\n return displayValue;\n};\n\nexport const buildTreeFromAllItems = (allItems: ISelectItem[], keyName = \"Id\"): ISelectItem[] => {\n const itemsById: Record = {};\n const rootItems: ISelectItem[] = [];\n\n // we have to handle cases where there are items with parent NOT present in this collection (due to the filter condition)\n // first we create hashmap and then check whether item has EXISTING PARENT\n allItems.forEach((item: ISelectItem) => {\n itemsById[item.id.toString()] = item;\n });\n\n allItems.forEach((item: ISelectItem) => {\n let parent = item.additionalData?.[HIERARCHICAL_PARENT_PROP_NAME];\n let isRoot = !parent;\n\n if (parent) {\n if (parent instanceof Array) {\n parent = parent[0];\n }\n\n const code = typeof parent === \"string\" ? parent : parent[keyName];\n if (!itemsById[code]) {\n isRoot = true;\n }\n }\n\n if (isRoot) {\n rootItems.push(item);\n }\n });\n\n\n const items: ISelectItem[] = [];\n let index = 0;\n const _add = (item: ISelectItem, indent: number, parent?: ISelectItem) => {\n item.indent = indent;\n item.index = index;\n item.parent = parent;\n item.children = [];\n items.push(item);\n index++;\n for (const childObj of item.additionalData?.Children || []) {\n const _item = itemsById[childObj[keyName]];\n if (_item) {\n // item might be filtered out by oData query -> skip it\n // (the item and all its children won't be visible in the tree)\n _add(_item, indent + 1, item);\n item.children.push(_item);\n }\n }\n };\n\n for (const root of rootItems) {\n _add(root, 0);\n }\n\n return items;\n};\n\nexport interface IGetFirstMatchingIndexReturnType {\n anyWordFit: number;\n startsWith: number;\n}\n\n// tries to find first item which matching condition of startsWith (with deburr)\n// if there is no such item we return starts with any word\n// the reason we return both is, on handleChange method we can \"autocomplete\" only items which fits \"startswith\" condition\nexport const getFirstMatchingItemIndex = (items: ISelectItem[], value: string, searchType: ValueType): IGetFirstMatchingIndexReturnType => {\n let startsWithIdx, anyWordFitIdx;\n let startsWithInsensitiveIdx, anyWordFitInsensitiveIdx;\n\n if (value) {\n const valueRegEx = startOfWordRegExp(value, searchType);\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (!item.isDisabled && item.isSearchable !== false) {\n if (startsWith(item.label, value)) {\n startsWithIdx = i;\n break;\n }\n // noinspection JSUnusedAssignment\n if (isNotDefined(startsWithInsensitiveIdx) &&\n startsWithAccentsInsensitive(item.label, value)) {\n startsWithInsensitiveIdx = i;\n }\n // noinspection JSUnusedAssignment\n if (isNotDefined(anyWordFitIdx) &&\n testWithRegex(item.label, valueRegEx)) {\n anyWordFitIdx = i;\n }\n // noinspection JSUnusedAssignment\n if (isNotDefined(anyWordFitInsensitiveIdx) &&\n testAccentsInsensitiveWithRegex(item.label, valueRegEx)) {\n anyWordFitInsensitiveIdx = i;\n }\n }\n }\n }\n\n return {\n anyWordFit: startsWithIdx ?? startsWithInsensitiveIdx ?? anyWordFitIdx ?? anyWordFitInsensitiveIdx,\n startsWith: startsWithIdx ?? startsWithInsensitiveIdx\n };\n};\n\nexport interface IFilterItemsArgs {\n value: string;\n items: ISelectItem[];\n searchType: ValueType;\n skipFilter: boolean;\n}\n\nexport const filterItems = (args: IFilterItemsArgs): ISelectItem[] => {\n const getItemsWithCorrectIndex = (filteredItems: ISelectItem[]) => {\n for (let i = 0; i < (filteredItems || []).length; i++) {\n filteredItems[i].index = i;\n }\n\n return filteredItems;\n };\n\n if (!args.value || args.skipFilter) {\n return getItemsWithCorrectIndex(args.items);\n }\n\n const valueRegEx = startOfWordRegExp(args.value, args.searchType);\n let items: ISelectItem[] = [];\n\n let i = 0;\n let filteredIndex = 0;\n\n const _add = (children: ISelectItem[]) => {\n const currentIndex = filteredIndex;\n const item = args.items[i];\n i++;\n for (const child of (item.children || [])) {\n _add(children);\n }\n\n const isFit = item.isNotFilterable\n || testAccentsInsensitiveWithRegex(item.label, valueRegEx)\n || (item.tabularData?.length && item.tabularData.find(colValue => testAccentsInsensitiveWithRegex(colValue, valueRegEx)));\n // fulfill condition or has children who fulfill condition\n if (isFit || currentIndex !== filteredIndex) {\n if (!item.indent) {\n items.push(item);\n if (children.length > 0) {\n items = [...items, ...children];\n }\n } else {\n if (children[children.length - 1]?.indent > item?.indent) {\n children.unshift(item);\n } else {\n children.push(item);\n }\n\n }\n\n filteredIndex++;\n }\n };\n\n for (i = 0; i < args.items.length;) {\n _add([]);\n }\n\n return getItemsWithCorrectIndex(items);\n};\n\nexport function getHighlightedIndex(currentIndex: number, items: ISelectItem[], value: TSelectItemId, currentValue: string): number {\n // if there is value find in among item\n // or there is non existent item and we doesnt select anything\n currentIndex = value ? items.findIndex(item => item.id === value) : -1;\n\n // in case there is some value but we were not able to find it among items by id we may try to find it with current value\n if (currentIndex === -1 && currentValue) {\n currentIndex = items.findIndex(item => fixWhiteSpaceChar(item.label) === currentValue);\n }\n\n return currentIndex;\n}\n\nexport function findHighlightableItem(items: ISelectItem[], oldPos: number, newPos: number, direction: Direction): number {\n const _isHighlightable = (i: number) => {\n const item = items[i];\n return item && !item.isNotHighlightable && !item.isDisabled;\n };\n\n const count = items.length;\n\n for (let i = newPos; direction === Direction.Up ? i >= 0 : i < count; direction === Direction.Up ? i-- : i++) {\n if (_isHighlightable(i)) {\n return i;\n }\n }\n\n // if we are out of bounds find (last (or first based on the direction) highlightable item\n const limit = direction === Direction.Down ? count - 1 : 0;\n for (let i = limit; i !== oldPos && i >= 0 && i < count; direction === Direction.Down ? i-- : i++) {\n if (_isHighlightable(i)) {\n return i;\n }\n }\n\n return oldPos;\n}\n\nexport function handleNavigationKey(items: ISelectItem[], highlightedIndex: number, key: KeyName): { highlightedIndex: number, scrollDirection: Direction } {\n let scrollDirection;\n\n switch (key) {\n case KeyName.ArrowUp:\n highlightedIndex = findHighlightableItem(items, highlightedIndex, highlightedIndex - 1, Direction.Up);\n scrollDirection = Direction.Up;\n break;\n\n case KeyName.PageUp:\n highlightedIndex = findHighlightableItem(items, highlightedIndex, highlightedIndex - ITEM_PAGE_SIZE, Direction.Up);\n scrollDirection = Direction.Up;\n break;\n\n case KeyName.ArrowDown:\n highlightedIndex = findHighlightableItem(items, highlightedIndex, highlightedIndex + 1, Direction.Down);\n scrollDirection = Direction.Down;\n break;\n\n case KeyName.PageDown:\n highlightedIndex = findHighlightableItem(items, highlightedIndex, highlightedIndex + ITEM_PAGE_SIZE, Direction.Down);\n scrollDirection = Direction.Down;\n break;\n default:\n return null;\n }\n\n return { highlightedIndex, scrollDirection };\n}\n\nconst setIsNotFilterableMark = (items: ISelectItem[]): ISelectItem[] => {\n return (items || []).map(item => {\n item.isNotFilterable = true;\n return item;\n });\n};\n\ninterface IGetAllItemsArgs {\n items: ISelectItem[];\n additionalItems?: ISelectItem[];\n noRecordText?: string;\n}\n\nexport const getAllItems = (args: IGetAllItemsArgs): ISelectItem[] => {\n // mark additional items as not filterable (so user doesn't need to do it himself)\n // put action items to the end and the rest to the beginning so it matches the order of display\n const actionItems = [];\n const additionalItems = [];\n if (args.additionalItems?.length > 0) {\n const originAdditionalItems = setIsNotFilterableMark(args.additionalItems);\n\n for (const item of originAdditionalItems) {\n item.groupId === SelectGroups.Action ? actionItems.push(item) : additionalItems.push(item);\n }\n }\n\n const items = additionalItems.concat(args.items).concat(actionItems);\n\n // No record === not selected item\n if (args.noRecordText) {\n const noRecordText = args.noRecordText;\n\n items.unshift({\n label: noRecordText,\n groupId: SelectGroups.Default,\n isNotFilterable: true,\n id: null,\n additionalData: {\n isNoRecord: true\n }\n });\n }\n\n return items;\n};","import { ClearButton } from \"@components/inputs/writeLine/WriteLine.style\";\nimport React from \"react\";\n\nimport { IconSize } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport { SelectInputWrapper, StyledInput, StyledSearchIcon } from \"./Select.styles\";\n\ninterface IProps {\n onChange: (e: React.ChangeEvent) => void;\n onKeyDown: (e: React.KeyboardEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n}\n\ninterface IState {\n value: string;\n}\n\nexport default class SelectInput extends React.Component {\n state: IState = {\n value: \"\"\n };\n _refInput = React.createRef();\n\n componentDidMount(): void {\n this._refInput.current.focus();\n }\n\n handleChange = (e: React.ChangeEvent): void => {\n this.setState({\n value: e.target.value\n });\n this.props.onChange(e);\n };\n\n handleClear = (): void => {\n this.setState({\n value: \"\"\n });\n // todo this component has weird props and state handling,\n // would be nice to rewrite..\n this.props.onChange({\n originalEvent: null,\n target: {\n value: \"\"\n } as unknown as EventTarget\n } as unknown as React.ChangeEvent);\n // return focus back to input so user can continue typing\n this._refInput.current.focus();\n };\n\n render() {\n return (\n \n \n \n {this.state.value &&\n \n }\n \n );\n }\n}","import { IColumn, ISelectItem, ISharedData, MenuLineItem } from \"@components/inputs/select/Select.types\";\nimport { splitStringToSearchedParts } from \"@utils/string\";\nimport React, { ReactElement } from \"react\";\n\nimport { IconSize, ValueType } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport { getIcon } from \"../../icon\";\nimport {\n BoldText,\n ColorBackground,\n ColSpanWrapper,\n Description,\n GroupEndLine,\n HorizontalIndentLine,\n ItemWrapper,\n StyledItem,\n StyledText,\n TabularColumn,\n TabularIconColumn,\n VerticalIndentLine\n} from \"./Select.styles\";\n\nexport interface ISelectMenuItemContentArgs {\n onClick: (e: React.MouseEvent) => void;\n}\n\ninterface IMenuItemProps {\n isSelected: boolean;\n isTabular?: boolean;\n isItalic: boolean;\n isHighlighted: boolean;\n inputValue: string;\n item: ISelectItem;\n defaultWidth: number;\n index: number;\n isMulti: boolean;\n /** Callback that is used dynamically for all items. Renders custom content before the item in the select menu.\n * itemContent property (not a callback) of ISelectItem can be used instead, if the content is ready before initialization.*/\n itemContent: (item: ISelectItem, args: ISelectMenuItemContentArgs) => React.ReactNode;\n onMouseClick: (item: ISelectItem, triggerAdditionalTasks: boolean) => void;\n onMouseEnter: (index: number) => void;\n onMouseLeave: (index: number) => void;\n line?: MenuLineItem;\n sharedData: ISharedData;\n useIconOffset?: boolean;\n columns?: IColumn[];\n isDisabled?: boolean;\n searchType?: ValueType;\n renderItemWithoutCheckboxes?: boolean;\n}\n\nexport class MenuItem extends React.PureComponent {\n _isHighlightable = (): boolean => {\n return !this.props.item.isNotHighlightable && !this.props.isDisabled;\n };\n\n handleMouseClick = (e: React.MouseEvent): void => {\n e.preventDefault();\n e.stopPropagation();\n !this.props.isDisabled && this.props.onMouseClick(this.props.item, true);\n };\n\n handleMouseDown = (e: React.MouseEvent): void => {\n e.preventDefault();\n };\n\n handleMouseEnter = (): void => {\n if (!this.props.isHighlighted && this._isHighlightable()) {\n this.props.onMouseEnter(this.props.index);\n }\n };\n\n handleMouseLeave = (): void => {\n if (this.props.isHighlighted) {\n this.props.onMouseLeave(this.props.index);\n }\n };\n\n renderItemIcon = (item: ISelectItem): ReactElement => {\n const left = ((item.indent || 0) * 20 + 12) + (this.props.isMulti ? 28 : 0);\n const Icon = item.iconName ? getIcon(item.iconName) : null;\n return Icon ? : null;\n };\n\n renderTabularIcon = (item: ISelectItem, isFirst: boolean): ReactElement => {\n const Icon = item.iconName ? getIcon(item.iconName) : null;\n return this.props.useIconOffset ?\n \n {Icon &&\n \n }\n : null;\n };\n\n renderTabularItemContent = (item: ISelectItem): null | ReactElement => {\n if (!this.props.itemContent && !item.itemContent) {\n return null;\n }\n\n return (\n \n {item.itemContent}\n {this.props.itemContent?.(item, { onClick: this.handleMouseClick })}\n \n );\n };\n\n renderTabularItem = (isSelected: boolean): ReactElement => {\n const item = this.props.item;\n const currentValue = this.props.inputValue || \"\";\n\n return (\n <>\n {this.renderTabularItemContent(item)}\n {this.renderTabularIcon(item, !this.props.itemContent)}\n {item.tabularData.map((text, index) => {\n const isFirst = index === 0;\n const isLast = index === item.tabularData.length - 1;\n const column = this.props.columns?.[index];\n\n return (\n \n \n {this.renderText(text, currentValue)}\n \n \n );\n })}\n \n );\n };\n\n renderSingleItem = (isSelected: boolean): ReactElement => {\n const item = this.props.item;\n const currentValue = this.props.inputValue || \"\";\n const useIconPadding = this.props.useIconOffset && !this.props.isTabular;\n\n return (\n <>\n {item.itemContent}\n {this.props.itemContent?.(item, { onClick: this.handleMouseClick })}\n {this.renderItemIcon(item)}\n\n \n\n {!!this.props.item.color &&\n \n }\n {this.renderText(item.label, currentValue, item.description)}\n \n \n );\n };\n\n renderItem = (isSelected: boolean): ReactElement => {\n return this.props.isTabular ? this.renderTabularItem(isSelected) : this.renderSingleItem(isSelected);\n };\n\n renderText = (text: string, pre = \"\", description?: string): React.ReactNode => {\n const res = splitStringToSearchedParts(text, pre, this.props.searchType);\n if (res) {\n const { prefix, root, suffix } = res;\n\n return (\n \n {prefix.length > 0 && {prefix}}\n {root}\n {suffix.length > 0 && {suffix}}\n {description &&  {description}}\n \n );\n }\n\n return (\n \n {text}\n {description &&  {description}}\n \n );\n };\n\n render() {\n const useIconPadding = this.props.useIconOffset && !this.props.isTabular;\n const isSelected = this.props.isSelected && !this.props.isMulti;\n return (\n \n {this.renderItem(isSelected)}\n {this.props.line && this.props.line !== MenuLineItem.None &&\n \n }\n\n {!!this.props.item.indent &&\n <>\n \n \n \n }\n \n\n );\n }\n}\n","import {\n Direction,\n IColumn,\n ISelectGroup,\n ISelectItem,\n ISharedData,\n SelectAdditionalItems,\n SelectGroups,\n TSelectItemId\n} from \"@components/inputs/select/Select.types\";\nimport { _isNoRecord, NO_RECORD_FOUND, PAGE_SIZE } from \"@components/inputs/select/Select.utils\";\nimport { handleRefHandlers, isNotDefined } from \"@utils/general\";\nimport { startsWithAccentsInsensitive } from \"@utils/string\";\nimport React, { MouseEventHandler } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { PopperChildrenProps } from \"react-popper\";\n\nimport { ValueType } from \"../../../enums\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { ScrollBar } from \"../../scrollBar/ScrollBar\";\nimport {\n ActionIconsDelimiter,\n ActionItemsWrapper,\n ArrowCover,\n ArrowTop,\n ContentWrapper,\n GroupDivider,\n GroupDividerLine,\n GroupTitle,\n Header,\n HeaderText,\n SelectGroup,\n SelectGroupContent,\n StyledMenu,\n StyledMenuWrapper,\n TableHeaderBottomLine,\n TabularHeader,\n TabularHeaderItem\n} from \"./Select.styles\";\nimport { getHighlightedIndex, handleNavigationKey, isSystemKey } from \"./SelectAPI\";\nimport SelectInput from \"./SelectInput\";\nimport { ISelectMenuItemContentArgs, MenuItem } from \"./SelectMenuItem\";\n\ninterface ISearch {\n timeStamp: number;\n searchTerm: string;\n}\n\ninterface IParsedGroup {\n def: ISelectGroup;\n items: ISelectItem[];\n isTabular: boolean;\n}\n\nexport interface IMenuProps extends IPropsBase, WithTranslation {\n ref?: React.RefObject;\n popperProps: Partial;\n defaultMenuWidth?: number;\n isSelected?: (item: ISelectItem) => boolean;\n isStandAlone?: boolean;\n currentValue?: string;\n shouldSearchWithKeyboard?: boolean;\n showTabularHeader?: boolean;\n // disable the use of SimpleBar, instead use default browser scroll\n isSimpleBarDisabled?: boolean;\n\n onSelectionChange?: (item: ISelectItem, triggerAdditionalTasks: boolean) => void;\n onHighlightChange?: (item: ISelectItem) => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onInputChange?: (e: React.ChangeEvent) => void;\n onInputBlur?: (e: React.FocusEvent) => void;\n\n refContent?: React.Ref;\n refMenu?: React.Ref;\n refOpener?: React.Ref;\n}\n\nexport interface IPropsBase {\n value?: TSelectItemId;\n items?: ISelectItem[];\n initialItems?: ISelectItem[];\n\n isTabular?: boolean;\n inputValue?: string;\n columns?: IColumn[];\n isMulti?: boolean;\n groups?: ISelectGroup[];\n /** Content rendered in front of the item in the first column */\n itemContent?: (item: ISelectItem, args: ISelectMenuItemContentArgs) => React.ReactNode;\n /** Pass itemContent of the selected item into Input as contentBefore*/\n passItemContentToInput?: boolean;\n displayArrow?: boolean;\n onHeaderClick?: MouseEventHandler;\n headerText?: string;\n sharedData?: ISharedData;\n searchType?: ValueType;\n\n // usable only for solo menus, rest won't have focus\n onKeyDown?: (e: React.KeyboardEvent) => void;\n\n showSearchBoxInMenu?: boolean;\n renderDefaultGroupWithoutCheckboxes?: boolean;\n preventNoRecordDefaultStyle?: boolean;\n}\n\n/**\n COMBINATIONS NOT SUPPORTED\n - Hierarchy with table\n */\n\nclass Menu extends React.PureComponent {\n static defaultProps = {\n isStandAlone: false,\n sharedData: {}\n };\n\n private _refMenu = React.createRef();\n private _refContent = React.createRef();\n protected _refScroll = React.createRef();\n private _actionItems = React.createRef();\n private _scrolledIndex: number;\n private _searchTerm = \"\";\n\n private _hasActionItems = false;\n\n private _indexCounter = -1;\n private _isMenuWithIcons = false;\n private _isTabularMenu = false;\n\n _lastSearch: ISearch = {\n timeStamp: getUtcDate().getTime(),\n searchTerm: \"\"\n };\n\n componentDidMount(): void {\n if (this.props.isStandAlone) {\n this.props.sharedData.highlightedIndex = null;\n }\n\n const selectedItemIndex = this.props.items.findIndex(item => this.isSelected(item));\n\n if (selectedItemIndex >= 0) {\n // without timeout, the items are not yet properly rendered\n setTimeout(() => {\n this.scrollToItem(selectedItemIndex, this.props.sharedData.scrollDirection);\n });\n }\n }\n\n getMaxWidth = () => {\n return this.props.defaultMenuWidth && !this._isTabularMenu ? this.props.defaultMenuWidth * 2 : undefined;\n };\n\n componentDidUpdate() {\n if (!this.props.isStandAlone && this._refMenu.current && this._refContent.current) {\n\n // scrollbar not always respect changes of width, so far we didn't find a better solution\n const menuWidth = this._refMenu.current.parentElement.offsetWidth;\n let contentWidth = this._refContent.current.scrollWidth;\n const actionItemsWidth = this._actionItems.current?.scrollWidth || 0;\n\n if (actionItemsWidth > contentWidth) {\n this._refContent.current.style.width = `${actionItemsWidth}px`;\n }\n\n contentWidth = Math.max(actionItemsWidth, contentWidth);\n\n // for zooms there may be slight difference in pixels even if div was set to the old value\n if (Math.abs(menuWidth - contentWidth) > 2) {\n this._refMenu.current.parentElement.style.width = `${contentWidth}px`;\n this.props.popperProps.update();\n }\n }\n\n if (this.props.sharedData.highlightedIndex !== this._scrolledIndex) {\n this.scrollToItem(this.props.sharedData.highlightedIndex, this.props.sharedData.scrollDirection);\n }\n\n if (this.props.isStandAlone) {\n this._refMenu.current.focus();\n }\n }\n\n scrollToItem = (index: number, direction: Direction = Direction.Center) => {\n if (direction !== Direction.None) {\n const scroller = this._refScroll.current;\n\n if (index !== -1 && scroller) {\n if (index === 0) {\n scroller.scrollTop = 0;\n return;\n }\n\n const childNodes = this._refContent.current.getElementsByClassName(\"select-item\");\n\n const targetItem = childNodes[index] as HTMLDivElement;\n if (targetItem) {\n const itemTop = targetItem.offsetTop;\n\n if (direction === Direction.Center) {\n scroller.scrollTop = itemTop - PAGE_SIZE / 2;\n } else {\n const _isVisible = itemTop > scroller.scrollTop - targetItem.offsetHeight && itemTop < scroller.scrollTop + PAGE_SIZE;\n if (!_isVisible) {\n scroller.scrollTop = direction === Direction.Down ? itemTop - PAGE_SIZE + targetItem.offsetHeight :\n itemTop;\n }\n }\n\n this._scrolledIndex = this.props.sharedData.highlightedIndex;\n }\n }\n }\n };\n\n _handleKeyDown(e: React.KeyboardEvent) {\n const valueIndex = getHighlightedIndex(null, this.props.items, this.props.value, this.props.currentValue);\n let highlightedIndex = this.getHighlightedIndex();\n const preventDefault = false;\n\n this.props.sharedData.scrollDirection = Direction.Center;\n\n if (isSystemKey(e.key)) {\n const result = handleNavigationKey(this.props.items, highlightedIndex ?? valueIndex, e.key as KeyName);\n if (result) {\n if (isNotDefined(highlightedIndex) && (!this.props.currentValue || this.props.currentValue === this.props.items[valueIndex]?.label)) {\n // first keystroke (both up and down) should just highlight current item\n // https://solitea-cz.atlassian.net/browse/DEV-10385\n this.props.sharedData.highlightedIndex = valueIndex === -1 ? 0 : valueIndex;\n this.forceUpdate();\n return false;\n } else {\n highlightedIndex = result.highlightedIndex;\n this.props.sharedData.scrollDirection = result.scrollDirection;\n }\n } else if (e.key === KeyName.Enter) {\n const currentItem = this.props.items[highlightedIndex ?? valueIndex];\n if (currentItem && !currentItem.isDisabled) {\n this.props.onSelectionChange(currentItem, true);\n }\n e.preventDefault();\n }\n } else if (this.props.isStandAlone || this.props.shouldSearchWithKeyboard) {\n const newHighlightedIndex = this.getSearchedIndex(e.key, highlightedIndex);\n if (newHighlightedIndex !== highlightedIndex) {\n this.props.onSelectionChange(this.props.items[newHighlightedIndex], false);\n this.props.sharedData.highlightedIndex = newHighlightedIndex;\n this.forceUpdate();\n return false;\n }\n }\n\n if (this.props.sharedData.highlightedIndex !== highlightedIndex) {\n const item = this.props.items[highlightedIndex];\n if (item && !item.isNotHighlightable) {\n this.props.onHighlightChange?.(this.props.items[highlightedIndex]);\n this.props.sharedData.highlightedIndex = highlightedIndex;\n this.forceUpdate();\n }\n }\n\n return preventDefault;\n }\n\n // user for read only selectors, this navigates to item without entering text to input\n getSearchedIndex = (key: string, currentIndex: number) => {\n const DIFF = 500;\n const alphaKeys = RegExp(/\\w$/i);\n\n if (alphaKeys.test(key)) {\n const currentStamp = getUtcDate().getTime();\n\n this._lastSearch.searchTerm = this._lastSearch.timeStamp + DIFF > currentStamp ?\n this._lastSearch.searchTerm + key : key;\n this._searchTerm = this._lastSearch.searchTerm;\n this._lastSearch.timeStamp = currentStamp;\n\n const index = this.props.items.findIndex(item => startsWithAccentsInsensitive(item.label || item.id.toString(), this._lastSearch.searchTerm));\n\n return index !== -1 ? index : currentIndex;\n }\n\n return 0;\n };\n\n getHighlightedIndex = () => {\n return this.props.sharedData?.highlightedIndex;\n };\n\n renderHeader = () => {\n const item = { id: SelectAdditionalItems.SelectAll };\n\n return (\n \n {!!this.props.itemContent &&\n \n {this.props.itemContent(item, { onClick: () => this.props.onSelectionChange?.(item, true) })}\n \n }\n {this._isMenuWithIcons &&\n \n }\n {this.props.columns.map((col, index) => {\n return (\n \n {col.label}\n \n );\n })}\n \n );\n };\n\n handleItemMouseEnter = (index: number) => {\n this.props.sharedData.scrollDirection = Direction.None;\n this.props.sharedData.highlightedIndex = index;\n this.forceUpdate();\n };\n\n handleItemMouseLeave = () => {\n this.props.sharedData.highlightedIndex = null;\n this.forceUpdate();\n };\n\n handleContentRef = (ref: HTMLInputElement) => {\n handleRefHandlers(ref, this._refContent, this.props.refContent);\n };\n\n handleMenuRef = (ref: HTMLElement) => {\n handleRefHandlers(ref, this._refMenu, this.props.refMenu);\n };\n\n isSelected = (item: ISelectItem) => {\n if (this.props.isSelected) {\n return this.props.isSelected(item);\n }\n\n if (isNotDefined(item.id)) {\n return isNotDefined(this.props.value) && (isNotDefined(this.props.currentValue) || this.props.currentValue === item.label);\n }\n\n return this.props.value === item.id || item.isSelected;\n };\n\n renderMenuItem = (item: ISelectItem, additionalProps: TRecordAny = {}) => {\n this._indexCounter++;\n const isSelected = this.isSelected(item);\n const isItalic = !this.props.preventNoRecordDefaultStyle && (item.additionalData?.isNoRecord || item.id === NO_RECORD_FOUND);\n const isHighlighted = this.getHighlightedIndex() === this._indexCounter;\n\n return (\n \n );\n };\n\n renderActionItems = (groups: IParsedGroup[], hasContentBefore: boolean) => {\n const actionGroup = groups.find(group => group.def?.id === SelectGroups.Action);\n const renderDivider = groups.length > 1; // render divider only when there are additional groups\n this._hasActionItems = false;\n\n if (actionGroup) {\n this._hasActionItems = true;\n return (\n \n {renderDivider && }\n {actionGroup.items.map(item => {\n return (\n \n {this.renderMenuItem(item)}\n \n );\n })}\n \n );\n }\n\n return null;\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n this.props.onKeyDown?.(e);\n };\n\n isMenuWithIcons = () => {\n return !!this.props.items?.find(item => !!item.iconName);\n };\n\n createGroup = (item: ISelectItem) => {\n return item.groupId ? {\n id: item.groupId\n } : undefined;\n };\n\n renderMenuHeader = () => {\n return (\n

{this.props.headerText}\n \n
\n );\n };\n\n createGroups = () => {\n const groups: IParsedGroup[] = [];\n let currentGroup = null;\n\n this._isTabularMenu = false;\n\n const items = this.props.items;\n for (let i = 0; i < items?.length; i++) {\n const item = items[i];\n this._isTabularMenu = this._isTabularMenu || item.tabularData?.length > 1;\n\n const isFirstGroupItem = i === 0 || item.groupId !== items[i - 1]?.groupId;\n if (isFirstGroupItem) {\n const group = (this.props.groups || []).find(group => group.id === item?.groupId);\n currentGroup = {\n def: group || this.createGroup(item),\n items: [item],\n isTabular: item.tabularData?.length > 1\n };\n\n groups.push(currentGroup);\n } else {\n currentGroup?.items.push(item);\n }\n }\n\n const _getGroupIndex = (group: ISelectGroup) =>\n (group?.id && this.props.groups?.findIndex(g => g.id === group.id)) ?? -1;\n\n groups.sort((a, b) => {\n return _getGroupIndex(a.def) - _getGroupIndex(b.def);\n });\n\n return groups;\n };\n\n renderGroup = (group: IParsedGroup) => {\n const showHeader = this.props.showTabularHeader && group.isTabular;\n const renderWithoutCheckboxes = group.def?.id === SelectGroups.Default && this.props.renderDefaultGroupWithoutCheckboxes;\n return (\n <>\n {showHeader && this.renderHeader()}\n {group.items.map((item) => {\n return (\n this.renderMenuItem(item, {\n renderWithoutCheckboxes,\n isTabular: group.isTabular,\n columns: this.props.columns\n }));\n })}\n \n );\n };\n\n renderGroupDivider = (group: ISelectGroup) => {\n return (\n \n {!group?.hideDivider &&\n \n }\n \n );\n };\n\n renderGroupTitle = (title: string) => {\n return title ? (\n \n {title}\n \n ) : null;\n };\n\n renderGroups = (groups: IParsedGroup[]) => {\n let isFirst = true;\n return (\n <>\n {groups.map((group, index) => {\n const r = (\n \n {!isFirst && this.renderGroupDivider(group.def)}\n {this.renderGroupTitle(group.def?.title)}\n\n \n {this.renderGroup(group)}\n \n {group.def?.id === SelectGroups.Default && this.props.renderDefaultGroupWithoutCheckboxes && this.renderGroupDivider(group.def)}\n \n );\n isFirst = false;\n return r;\n })}\n \n );\n };\n\n render() {\n const groups = this.createGroups();\n // action items are rendered in special section on the bottom of the menu\n const basicGroups = groups.filter(group => group.def?.id !== SelectGroups.Action);\n\n this._isMenuWithIcons = this.isMenuWithIcons();\n this._indexCounter = -1;\n\n const { showSearchBoxInMenu, defaultMenuWidth, isSimpleBarDisabled, headerText, displayArrow } = this.props;\n\n let scrollContent = (\n <>\n \n {this.renderGroups(basicGroups)}\n \n {this.props.currentValue &&\n
\n {this.props.sharedData.bottomMenuCustomContent}\n
\n }\n \n );\n\n if (!isSimpleBarDisabled) {\n scrollContent = (\n \n {scrollContent}\n \n );\n }\n\n const menuWrapperHasContents = !!(basicGroups.length || showSearchBoxInMenu || headerText || displayArrow);\n\n return (\n \n\n \n {headerText && this.renderMenuHeader()}\n {showSearchBoxInMenu &&\n \n }\n {displayArrow &&\n \n \n \n }\n {scrollContent}\n \n {this.renderActionItems(groups, menuWrapperHasContents)}\n \n );\n }\n}\n\nconst MenuWithTranslation = withTranslation(\"Common\", { withRef: true })(Menu);\nexport { MenuWithTranslation as Menu };\n","import React from \"react\";\nimport { CaretIcon } from \"../../icon\";\nimport { BasicSelect, IProps } from \"./BasicSelect\";\nimport { IconSize } from \"../../../enums\";\nimport { getAllItems } from \"./SelectAPI\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\n\nconst icon = ;\n\ninterface IState {\n currentValue: string;\n}\n\nexport class Select extends React.Component {\n\n constructor(props: IProps) {\n super(props);\n\n this.state = {\n currentValue: this.getCurrentValue(props)\n };\n }\n\n componentDidUpdate(prevProps: Readonly) {\n if (prevProps.value !== this.props.value || this.props.items?.length !== prevProps.items?.length) {\n const currentValue = this.getCurrentValue();\n if (currentValue !== this.state.currentValue) {\n this.setState({ currentValue });\n }\n }\n }\n\n getCurrentValue(props = this.props): string {\n const allItems = props.items?.concat(props.additionalItems || []);\n return allItems?.find(item => item.id === props.value)?.label\n ?? undefined; // use undefined instead of \"\", otherwise, BasicSelect won't use noRecordText;\n }\n\n getAllItems = (): ISelectItem[] => {\n return getAllItems({\n items: this.props.items,\n additionalItems: this.props.additionalItems,\n noRecordText: this.props.noRecordText\n });\n };\n\n handleChange = (args: ISelectionChangeArgs): void => {\n const item = this.getAllItems().find(item => item.id === args.value);\n\n this.setState({ currentValue: item?.label });\n this.props.onChange(args);\n };\n\n renderContent = (): React.ReactElement => {\n const sharedProps = {\n closeOnSelection: true,\n openOnClick: true,\n inputIsReadOnly: false\n };\n\n return ;\n };\n\n render() {\n return this.renderContent();\n }\n}\n","import { mix, transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n LocalStackOrder,\n T_BTN_main,\n T_PLAIN_big\n} from \"../../../global.style\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { PropsWithTheme } from \"../../../theme\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\n\nexport const StyledSwitch = styled.div<{\n isDisabled: boolean;\n isReadOnly: boolean;\n}>`\n position: relative;\n cursor: ${props => props.isReadOnly ? \"default\" : \"pointer\"};\n display: flex;\n align-items: center;\n\n ${props => getDisabledStyle(props.isDisabled)};\n pointer-events: ${props => props.isDisabled || props.isReadOnly ? \"none\" : \"all\"};\n`;\n\ninterface IChecked {\n _isChecked: boolean;\n}\n\ninterface ILight {\n _isLight: boolean;\n}\n\ninterface ISwitchStyleProps extends IChecked {\n _isSemantic: boolean;\n _isWithoutHover?: boolean;\n}\n\nenum SwitchColorType {\n Text,\n LightText,\n LightTextHover,\n LightBackground,\n SubtleBorder,\n Background,\n OuterCircleBackground,\n OuterCircleBackgroundHover,\n InnerCircle\n}\n\nconst getThemeValue = (props: ISwitchStyleProps & PropsWithTheme, type: SwitchColorType): string => {\n const { theme } = props;\n switch (type) {\n case SwitchColorType.Text:\n return theme.C_ACT_main;\n case SwitchColorType.LightText:\n return theme.C_BTN_4L_emph_text;\n case SwitchColorType.LightTextHover:\n return theme.C_BTN_4D_emph_text_hover;\n case SwitchColorType.LightBackground:\n return props._isChecked ? theme.C_ACT_der : \"transparent\";\n case SwitchColorType.SubtleBorder:\n return transparentize(0.5, theme.C_ACT_main);\n case SwitchColorType.Background:\n if (props._isChecked) {\n return props._isSemantic ? mix(0.15, theme.C_SEM_el_good, theme.C_BG_menu) : theme.C_ACT_hover_without_opacity;\n }\n return theme.C_BG_menu;\n case SwitchColorType.InnerCircle:\n if (props._isSemantic) {\n return props._isChecked ? theme.C_SEM_el_good : theme.C_SEM_el_bad;\n }\n return props._isChecked ? theme.C_ACT_main : theme.C_ACT_thick_line;\n case SwitchColorType.OuterCircleBackground:\n return getThemeValue({ _isChecked: false, _isSemantic: false, theme }, SwitchColorType.Background);\n case SwitchColorType.OuterCircleBackgroundHover:\n return props._isChecked && props._isSemantic ? getThemeValue(props, SwitchColorType.Background) : theme.C_ACT_hover_without_opacity;\n }\n};\n\nconst getPaddingValue = (isNextToCircle: boolean, hasIcon: boolean) => {\n return hasIcon ? (isNextToCircle ? \"30px\" : \"8px\")\n : (isNextToCircle ? \"34px\" : \"12px\");\n};\n\nexport const Base = styled.div`\n position: relative;\n height: 26px;\n min-width: 53px;\n padding-left: ${props => getPaddingValue(!props._isChecked, props._hasIcon)};\n padding-right: ${props => getPaddingValue(props._isChecked, props._hasIcon)};\n background-color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightBackground : SwitchColorType.Background)};\n border: 1px solid ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightText : SwitchColorType.SubtleBorder)};\n border-radius: 13px;\n\n ${props => !props._isWithoutHover && css`\n ${StyledSwitch}:hover & {\n border-color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightTextHover : SwitchColorType.Text)};\n `};\n \n display: flex;\n flex-direction: column;\n align-items: stretch;\n`;\n\nexport const Circle = styled.div`\n position: absolute;\n width: 32px;\n height: 32px;\n top: 50%;\n transform: translate(0, -50%);\n right: ${props => props._isChecked ? \"-4px\" : \"\"};\n left: ${props => props._isChecked ? undefined : \"-4px\"};\n\n border: 1px solid ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightText : SwitchColorType.Text)};\n background-color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightText : SwitchColorType.OuterCircleBackground)};\n \n border-radius: 50%;\n \n display: flex;\n align-items: center;\n justify-content: center;\n z-index: ${LocalStackOrder.AboveContent}; // needs to be over focus border\n\n ${props => !props._isWithoutHover && css`\n ${StyledSwitch}:hover & {\n border: 1px solid ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightTextHover : SwitchColorType.Text)};\n background-color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightTextHover : SwitchColorType.OuterCircleBackgroundHover)};\n }\n `};\n`;\n\nexport const InnerCircle = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: ${props => getThemeValue(props, SwitchColorType.InnerCircle)};\n`;\n\nexport const Body = styled.div`\n position: relative;\n cursor: ${props => props.isDisabled ? \"default\" : \"pointer\"};\n ${props => getFocusBorderElement({ offset: 2, isLight: props._isLight, keyboardOnly: true })};\n ${props => getDisabledStyle(props.isReadOnly)};\n pointer-events: ${props => props.isDisabled || props.isReadOnly ? \"none\" : \"all\"};\n`;\n\nexport const Label = styled.div<{\n auditTrailData: IAuditTrailData;\n isLight: boolean;\n}>`\n margin: 0 9px 0 -5px;\n padding: 0 5px;\n border-radius: 3px;\n color: ${props => !props.isLight ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n ${T_PLAIN_big};\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.NoDifference || props.auditTrailData?.type === AuditTrailFieldType.HoveredNoDifference) && {\n background: props.theme.C_AUDIT_TRAIL_NO_DIFF,\n color: `${props.theme.C_TEXT_primary} !important`\n}}\n`;\n\nexport const InnerSpan = styled.span <{\n auditTrailData: IAuditTrailData\n}>`\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.NoDifference) && {\n opacity: 0\n}}\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n}}\n\n`;\n\nexport const InnerLabel = styled.div`\n ${T_BTN_main};\n color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightText : SwitchColorType.Text)};\n height: ${props => props._isPositive === props._isChecked ? \"24px\" : 0};\n line-height: 24px;\n text-align: ${props => props._isPositive ? \"right\" : \"left\"};\n overflow: hidden;\n ${StyledSwitch}:hover & {\n color: ${props => getThemeValue(props, props._isLight ? SwitchColorType.LightTextHover : SwitchColorType.Text)};\n }\n`;\n\nexport const AuditTrailLayer = styled.div <{\n auditTrailData: IAuditTrailData;\n _isChecked: boolean;\n}>`\n width: calc(100% + 11px);\n height: 36px;\n position: absolute;\n top: -5px;\n left: ${props => props._isChecked ? \"-5px\" : \"-6px\"};\n border-radius: ${props => props.theme.borderLargeRadius};\n z-index: ${LocalStackOrder.AboveContent};\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.NoDifference || props.auditTrailData?.type === AuditTrailFieldType.HoveredNoDifference) && {\n background: props.theme.C_AUDIT_TRAIL_NO_DIFF,\n zIndex: 150\n}}\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.Difference || props.auditTrailData?.type === AuditTrailFieldType.HoveredDifference) && {\n border: `3px solid ${props.theme.C_AUDIT_TRAIL_DIFF}`\n }}\n ${props => (props.auditTrailData?.type === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n }}\n\n`;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IconSize, Status } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport TestIds from \"../../../testIds\";\nimport { getTabIndex } from \"../../auditTrail/Utils\";\nimport BusyIndicator from \"../../busyIndicator\";\nimport { BusyIndicatorSize, BusyIndicatorType } from \"../../busyIndicator/BusyIndicator.utils\";\nimport { HOTSPOT_ID_ATTR } from \"../../hotspots/Hotspots.utils\";\nimport { ColoredIcon } from \"../../icon\";\nimport { CheckIcon, CloseIcon, IProps as IIconProps } from \"../../icon/Icon\";\nimport { FIELD_CONTENT_PADDING } from \"../field/Field.styles\";\nimport { IValueInputComponentProps } from \"../input\";\nimport { InputStatusStraight } from \"../input/Input.styles\";\nimport {\n AuditTrailLayer,\n Base,\n Body,\n Circle,\n InnerCircle,\n InnerLabel,\n InnerSpan,\n Label,\n StyledSwitch\n} from \"./Switch.styles\";\n\nexport interface ISwitchIconSet {\n on: React.FunctionComponent;\n off: React.FunctionComponent;\n}\n\nexport interface IProps extends IValueInputComponentProps, WithTranslation {\n checked?: boolean;\n // if switch should indicate its state by semantic color, like on/off green/red\n hasSemanticColor?: boolean;\n // light variant could be rendered on dark backgrounds, like in filter\n isLight?: boolean;\n label?: string;\n onChange?: (checked: boolean) => void;\n type?: SwitchType;\n isBusy?: boolean;\n iconSet?: ISwitchIconSet;\n hotspotId?: string;\n auditTrailData?: IAuditTrailData;\n name?: string;\n\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport enum SwitchType {\n Default = \"Default\",\n YesNo = \"YesNo\",\n Icons = \"Icons\",\n OnOff = \"OnOff\"\n}\n\nclass Switch extends React.PureComponent {\n static defaultProps = {\n isLight: false,\n type: SwitchType.Default,\n hasSemanticColor: false,\n checked: false\n };\n\n handleClick = (/*e: MouseEvent*/) => {\n this.select();\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n if ([KeyName.Space, KeyName.Enter].includes(e.key as KeyName)) {\n e.preventDefault();\n this.select();\n }\n };\n\n select = () => {\n if (!this.isDisabledOrReadOnly() && !this.props.isBusy) {\n this.props.onChange?.(!this.props.checked);\n }\n };\n\n getIconWithProps = (Icon: React.FunctionComponent) => {\n const size = IconSize.S;\n const style = { position: \"relative\", top: \"50%\", transform: \"translateY(-50%)\" } as React.CSSProperties;\n return ;\n };\n\n getPositiveLabel = () => {\n switch (this.props.type) {\n case SwitchType.Icons:\n return this.getIconWithProps(this.props.iconSet?.on ?? CheckIcon);\n case SwitchType.YesNo:\n return this.props.t(\"Common:General.Yes\");\n case SwitchType.OnOff:\n return this.props.t(\"Common:General.On\");\n default:\n return null;\n }\n };\n\n getNegativeLabel = () => {\n switch (this.props.type) {\n case SwitchType.Icons:\n return this.getIconWithProps(this.props.iconSet?.off ?? CloseIcon);\n case SwitchType.YesNo:\n return this.props.t(\"Common:General.No\");\n case SwitchType.OnOff:\n return this.props.t(\"Common:General.Off\");\n default:\n return null;\n }\n };\n\n isDisabledOrReadOnly = () => {\n return this.props.isDisabled || this.props.isReadOnly;\n };\n\n render() {\n const positiveLabel = this.getPositiveLabel(),\n negativeLabel = this.getNegativeLabel();\n const switchStyleProps = {\n _isChecked: this.props.checked,\n _isLight: this.props.isLight,\n _isSemantic: this.props.hasSemanticColor\n };\n\n return (\n \n {this.props.label &&\n }\n \n \n \n {positiveLabel &&\n \n {positiveLabel}\n }\n {negativeLabel &&\n \n {negativeLabel}\n }\n \n {!this.props.isBusy\n ? \n :\n \n }\n \n \n \n {!this.props.isReadOnly && this.props.showChange &&\n }\n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(Switch);","import styled, { css } from \"styled-components/macro\";\nimport { getDisabledStyle, T_PLAIN_big } from \"../../../global.style\";\nimport { StyledError } from \"../formError/FormError.styles\";\nimport TestIds from \"../../../testIds\";\nimport { transparentize } from \"polished\";\n\nexport interface ITextArea {\n maxRows?: number;\n disabled?: boolean;\n}\n\nexport const textAreaErrorStyles = css`\n ${StyledError} {\n top: -3px;\n left: 0;\n\n [data-testid=\"${TestIds.ErrorText}\"] {\n left: 13px;\n width: calc(100% - 13px);\n }\n\n & + textarea, & + input {\n padding-top: 13px; // space for error message\n }\n }\n`;\n\nexport const Wrapper = styled.div`\n position: relative;\n width: 100%;\n\n ${textAreaErrorStyles};\n`;\n\nconst styles = css`\n min-height: 28px;\n min-width: 30px;\n // using 'em' can lead to problems (check Input.styles), but we can't use exact pixels,\n // because font-size can be controlled from outside TextArea component \n max-height: ${props => props.maxRows ? `${props.maxRows * 1.3}em` : \"14.4em\"};\n outline: none;\n ${T_PLAIN_big};\n resize: none;\n border-radius: 3px ;\n width: 100%;\n text-transform: inherit;\n background-color: ${props => props.theme.C_FIELD_fill};\n border: 1px solid ${props => props.theme.C_FIELD_line};\n padding: 6px 12px 4px 12px;\n\n &:hover {\n border-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n\n &:focus {\n border-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n\n &::placeholder {\n color: ${props => transparentize(0.5, props.theme.C_TEXT_primary)};\n font-style: italic;\n letter-spacing: 0.14px;\n }\n\n ${props => getDisabledStyle(props.disabled)};\n`;\n\nexport const StyledTextArea = styled.textarea.attrs({\n // set minimum number of rows (browser default is 2)\n rows: 1\n})`\n ${styles};\n`;\n\nexport const StyledInput = styled.input`\n ${styles};\n`;","import { composeRefHandlers } from \"@utils/general\";\nimport autosize from \"autosize\";\nimport React from \"react\";\n\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport { WithErrorAndTooltip, withErrorAndTooltip } from \"../formError/WithErrorAndTooltip\";\nimport { IInputOnChangeEvent, ISharedInputProps } from \"../input\";\nimport { renderReadOnlyText } from \"../utils\";\nimport { StyledInput, StyledTextArea, Wrapper } from \"./TextArea.styles\";\n\ninterface TextAreaProps extends ISharedInputProps, WithErrorAndTooltip {\n value: string;\n maxRows?: number;\n minRows?: number;\n passRef?: React.Ref;\n outerRef?: React.RefObject;\n onChange: (e: IInputOnChangeEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n className?: string;\n}\n\nclass TextArea extends React.PureComponent {\n textAreaRef = React.createRef();\n _autoSizedValue: string; // value autosize has been calculated according to\n\n componentDidMount() {\n if (!this.props.isReadOnly) {\n autosize(this.textAreaRef.current);\n this._autoSizedValue = this.getValue();\n }\n }\n\n componentDidUpdate(prevProps: Readonly) {\n if (!this.props.isReadOnly && this.getValue() !== this._autoSizedValue) {\n autosize.update(this.textAreaRef.current);\n this._autoSizedValue = this.getValue();\n }\n }\n\n getValue = () => {\n // return empty string if null given, otherwise textarea has problem differentiate if its controlled or uncontrolled\n return this.props.value ?? \"\";\n };\n\n handleChange = (e: React.ChangeEvent): void => {\n this._autoSizedValue = e.target.value;\n this.props?.onChange({\n value: e.target.value,\n origEvent: e\n });\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n // enter is handled by textarea itself, we do not permit any additional\n // actions (like closing dialog)\n if (e.key === KeyName.Enter) {\n e.stopPropagation();\n }\n\n this.props.onKeyDown?.(e);\n };\n\n\n renderTextArea(): React.ReactNode {\n const isSingleLine = this.props.maxRows === 1;\n const Component: any = isSingleLine ? StyledInput : StyledTextArea;\n\n return (\n \n {this.props.errorAndTooltip}\n \n \n );\n }\n\n render(): React.ReactNode {\n return this.props.isReadOnly && !this.props.auditTrailData?.type ? renderReadOnlyText(this) : this.renderTextArea();\n }\n}\n\nexport { TextArea as PureTextArea };\nexport default withErrorAndTooltip(TextArea, { preventValueTooltip: true });","import React from \"react\";\nimport Text from \"../text\";\nimport { ISharedInputProps } from \"./input\";\nimport { TValue } from \"../../global.types\";\n\nexport function renderReadOnlyText(component: React.PureComponent): React.ReactElement {\n let text = component.props.value;\n\n if (component.props.unit) {\n text += ` ${component.props.unit}`;\n }\n\n return (\n {text}\n );\n}\n","import styled from \"styled-components/macro\";\nimport { T_TITLE_4_NORMAL } from \"../../../global.style\";\n\nexport const StyledNumericWriteLine = styled.div`\n display: flex;\n ${T_TITLE_4_NORMAL};\n`;","import React from \"react\";\nimport { IProps as IWriteLineProps, WriteLineWithErrorAndTooltip } from \"./WriteLine\";\nimport { StyledNumericWriteLine } from \"./NumericWriteLine.styles\";\nimport { INumericValueInput, NumericValueInputBase } from \"../numericValueInputBase/NumericValueInputBase\";\nimport { Stepper } from \"../numericValueInputBase/Stepper\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport NumberType, { IParserArgs } from \"../../../types/Number\";\nimport { WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { composeRefHandlers } from \"@utils/general\";\n\nexport const NumericWriteLine = withFormatter({\n parser: (value: string, strict?: boolean, args?: IParserArgs) => NumberType.parse(value, strict, { maximumFractionDigits: 3, ...(args ?? {}) }),\n formatter: (val) => NumberType.format(val, { maximumFractionDigits: 3 }),\n isValid: NumberType.isValid\n}, WriteLineWithErrorAndTooltip);\n\nexport interface IProps extends INumericValueInput, Omit {\n}\n\nexport default class NumericWriteLineWithStepper extends NumericValueInputBase {\n render() {\n const { props } = this;\n const numberValue = this.getNumberValue();\n\n return (\n \n \n {!this.props.isReadOnly && this.props.showSteppers &&\n \n }\n \n );\n }\n}","import { ellipsis, transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { IconSize, TextAlign } from \"../../../enums\";\nimport { FONT_FAMILY, getDisabledStyle } from \"../../../global.style\";\nimport { themes } from \"../../../theme\";\nimport { IconButton } from \"../../button\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { FieldConfirmButtons } from \"../field/FieldConfirmButtons\";\nimport { Circle, ErrorText, StyledError } from \"../formError/FormError.styles\";\nimport { StyledStepper } from \"../numericValueInputBase/Stepper.styles\";\n\n// 5px instead of 6px from spec, because otherwise its too small for two characters in time range picker\nexport const WRITE_LINE_INPUT_PADDING = 5;\n\ninterface IProps {\n _width?: string;\n _minWidth?: string;\n _maxWidth?: string;\n maxLength?: number;\n isLight?: boolean;\n ignoreTheme?: boolean;\n isExtending?: boolean;\n isDisabled?: boolean;\n textAlign?: TextAlign;\n paddingRight?: string;\n marginRight?: number;\n auditTrailType?: AuditTrailFieldType,\n withClearButton?: boolean;\n}\n\nexport const WriteLineWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n\n width: ${props => props._width ? props._width : \"100%\"};\n max-width: ${props => props._maxWidth ?? \"inherit\"};\n min-width: ${props => props._minWidth ?? \"auto\"};\n\n ${props => props.isExtending && css`\n flex: 1 1 auto;\n `};\n`;\n\nexport const StyledWriteLine = styled.div`\n position: relative;\n max-width: 100%;\n width: ${props => props.isExtending ? \"fit-content\" : \"100%\"};\n display: flex;\n align-items: center;\n ${props => getDisabledStyle(props.isDisabled)};\n\n ${StyledError} {\n bottom: 0;\n\n ${Circle} {\n top: 50%; left: 0;\n transform: translate(-75%, -50%);\n }\n\n ${ErrorText} {\n padding-left: 3px;\n }\n }\n\n background: ${props => props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference ?\n props.theme.C_AUDIT_TRAIL_NO_DIFF : \"none\"};\n\n ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) && {\n border: `3px solid ${props.theme.C_AUDIT_TRAIL_DIFF}`\n }}\n ${WriteLineWrapper} {\n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: 0,\n background: props.theme.C_AUDIT_TRAIL_NO_DIFF\n }}\n\n ${props => (props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n }}\n }\n\n & + ${StyledStepper} {\n margin-left: 2px;\n }\n`;\n\nexport const ValueWrapper = styled.div`\n display: flex;\n padding: 0 ${`${WRITE_LINE_INPUT_PADDING}px`};\n ${FONT_FAMILY};\n`;\n\nexport const WriteLineIcon = styled(IconButton)`\n position: absolute;\n right: 0;\n bottom: 7px;\n cursor: pointer;\n`;\n\nexport const FloatingText = styled.span`\n position: absolute;\n color: ${props => props.theme.C_TEXT_primary};\n opacity: 0.5;\n pointer-events: none;\n font-size: 18px;\n`;\n\nexport const ValueInput = styled.input.attrs(props => ({\n type: props.type,\n maxlength: props.maxLength\n}))`\n border: none;\n outline: none;\n background: transparent;\n box-sizing: border-box;\n min-width: ${props => props.marginRight ? `calc(100% - ${props.marginRight}px)` : \"100%\"};\n width: 100%;\n ${ellipsis()};\n padding: 0 ${props => props.marginRight ? `${props.marginRight}px` : 0} 0 0;\n text-align: ${props => props.textAlign ? props.textAlign : \"center\"};\n\n // inherit size from parent so that we can easily style write line in different use cases from its wrapper\n font-size: inherit;\n color: ${props => props.isLight ? props.theme.C_TEXT_dialogue : props.theme.C_TEXT_primary};\n\n ${props => props.withClearButton && css`\n padding-right: ${IconSize.asNumber(\"S\") + 2}px;\n `};\n\n /* Chrome, Safari, Edge, Opera */\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* background-color transition delays default chrome style so we can use transparent background for autofill */\n\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px ${props => transparentize(0.5, props.theme.C_BTN_4L_trans_bg_selected)} inset !important;\n -webkit-transition: background-color 9999s ease-out;\n -webkit-text-fill-color: ${props => props.theme.C_TEXT_primary};\n }\n\n &::placeholder {\n color: ${props => props.isLight ? transparentize(0.5, props.theme.C_TEXT_dialogue) : transparentize(0.5, props.theme.C_TEXT_primary)};\n font-style: italic;\n letter-spacing: 0.14px;\n }\n\n /* Firefox */\n -moz-appearance: textfield;\n`;\n\nexport const Line = styled.div`\n margin-top: 2px;\n width: 100%;\n height: 2px;\n background-color: ${props => {\n const theme = props.ignoreTheme ? themes.light : props.theme;\n\n return props.isLight ? theme.C_ACT_hover_without_opacity : theme.C_ACT_main;\n }};\n`;\n\nexport const Suffix = styled.div`\n pointer-events: none;\n`;\n\nexport const WriteLineConfirmButtons = styled(FieldConfirmButtons)`\n position: absolute;\n right: -5px;\n transform: translateX(100%);\n`;\n\nexport const ClearButton = styled(FieldConfirmButtons).attrs(props => ({ withoutConfirm: true }))`\n position: absolute;\n right: 0;\n bottom: ${props => props.iconSize === IconSize.M ? \"7px\" : \"2px\"};\n`;","import { composeRefHandlers, doesElementContainsElement } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { logger } from \"@utils/log\";\nimport React from \"react\";\n\nimport TestIds from \"../../../../src/testIds\";\nimport { IconSize, TextAlign } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport KeyboardShortcutsManager from \"../../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport { IProps as IIconProps } from \"../../icon/Icon\";\nimport { RequiredMark } from \"../field/Label.styles\";\nimport { WithErrorAndTooltip, withErrorAndTooltip, WithErrorAndTooltipProps } from \"../formError/WithErrorAndTooltip\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent, IValueInputComponentProps } from \"../input\";\nimport { withFormatter } from \"../input/WithFormatter\";\nimport { TextMeasure } from \"../responsiveInput/ResponsiveInput.styles\";\nimport { renderReadOnlyText } from \"../utils\";\nimport {\n ClearButton,\n FloatingText,\n Line,\n StyledWriteLine,\n Suffix,\n ValueInput,\n ValueWrapper,\n WRITE_LINE_INPUT_PADDING,\n WriteLineConfirmButtons,\n WriteLineIcon,\n WriteLineWrapper\n} from \"./WriteLine.style\";\n\nexport interface IProps extends IValueInputComponentProps, WithErrorAndTooltip {\n value?: Type;\n maxLength?: number;\n placeholder?: string;\n isRequired?: boolean;\n /** WriteLine will extend, based on the content size, upto MAX_WIDTH_RESPONSIVE/props.maxWidth*/\n isExtending?: boolean;\n textAlign?: TextAlign;\n /** Always use colors from default theme */\n ignoreTheme?: boolean;\n passRef?: React.Ref;\n outerRef?: React.RefObject;\n onChange?: (args: IInputOnChangeEvent) => void;\n onBlur?: (args: IInputOnBlurEvent) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n onEnterPress?: (event: React.KeyboardEvent) => void;\n floatingText?: string;\n onWheel?: (event: React.WheelEvent) => void;\n onConfirm?: () => void;\n onCancel?: () => void;\n description?: string;\n width?: string;\n minWidth?: string;\n maxWidth?: string;\n isReadOnly?: boolean;\n /** When value is written inside WriteLine, confirm and cancel button is shown.\n * Value is either automatically confirmed on blur or by pressing one of the buttons or enter/escape key.\n * Buttons are then hidden again.\n * */\n isConfirmable?: boolean;\n /** Don't use together with isConfirmable.\n * Adds just clear button when there is some value present in WriteLine.\n * Used on \"search\" fields */\n withClearButton?: boolean;\n withClearButtonSize?: string;\n icon?: React.ComponentType;\n onIconClick?: (e: React.MouseEvent) => void;\n iconTitle?: string;\n type?: string;\n id?: string;\n name?: string;\n // html attribute autocomplete, defaults to \"off\"\n autocomplete?: string;\n testid?: string;\n className?: string;\n style?: React.CSSProperties;\n\n auditTrailData?: IAuditTrailData;\n}\n\ninterface IState {\n showButtons: boolean;\n}\n\nconst MIN_WIDTH_FIXED = 19;\nconst MAX_WIDTH_FIXED = 240;\nconst MIN_WIDTH_EXTENDING = 240;\nconst MAX_WIDTH_EXTENDING = 600;\n\nclass WriteLine extends React.PureComponent {\n static defaultProps: Partial = {\n autocomplete: \"off\"\n };\n\n state: IState = {\n showButtons: false\n };\n\n _inputRef = React.createRef();\n _textMeasure = React.createRef();\n _floatingText = React.createRef();\n\n _wasChangedSinceBlur = false;\n _buttonsRef = React.createRef();\n _clearButtonsRef = React.createRef();\n\n get minWidth(): string {\n return this.props.minWidth ?? (this.props.isExtending ? MIN_WIDTH_EXTENDING : MIN_WIDTH_FIXED) + \"px\";\n }\n\n get maxWidth(): string {\n return this.props.maxWidth ?? (this.props.isExtending ? MAX_WIDTH_EXTENDING : MAX_WIDTH_FIXED) + \"px\";\n }\n\n componentDidMount(): void {\n if (this.props.isRequired && !this.props.placeholder) {\n logger.error(\"WriteLine with isRequired is expects to have placeholder set as well\");\n }\n\n this.adaptSize();\n }\n\n componentDidUpdate(prevProps: IProps): void {\n this.adaptSize();\n\n if (this.props.value !== prevProps.value && this._inputRef.current === document.activeElement) {\n this._wasChangedSinceBlur = true;\n }\n }\n\n adaptSize = (): void => {\n if ((!this.props.isExtending && !this.props.floatingText) || this.props.isReadOnly) {\n return;\n }\n\n // use computed width to get precise sub pixel value,\n // otherwise chrome kind of randomly changes rounding of that value and the measurement breaks\n let textMeasureWidth = Math.round(parseFloat(getComputedStyle(this._textMeasure.current).width));\n\n if (this.props.floatingText) {\n // if text is too long for input, we just prevent enlarge it\n const floatingTextWidth = this._floatingText.current?.offsetWidth;\n const inputWidth = this._inputRef.current?.offsetWidth;\n const maxWidth = inputWidth - floatingTextWidth;\n textMeasureWidth = Math.min(maxWidth, textMeasureWidth);\n\n this._floatingText.current.style.left = `${textMeasureWidth + 6}px`;\n this._inputRef.current.style.paddingRight = `${floatingTextWidth + WRITE_LINE_INPUT_PADDING}px`;\n }\n\n // +1 because sometimes the input has scrollWidth 1px bigger for some reason\n this._inputRef.current.style.width = `calc(${textMeasureWidth}px + ${2 * WRITE_LINE_INPUT_PADDING}px - 1px)`;\n };\n\n handleChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n\n if (this.props.isConfirmable && !this.state.showButtons) {\n this.setState({\n showButtons: true\n });\n }\n\n this.props.onChange({\n value,\n origEvent: event\n });\n };\n\n handleBlur = (event: React.FocusEvent): void => {\n this.props.onBlur?.({\n origEvent: event,\n wasChanged: this._wasChangedSinceBlur\n });\n\n this._wasChangedSinceBlur = false;\n\n if (this.props.isConfirmable) {\n this.autoConfirmOnBlur(event);\n }\n };\n\n handleFocus = (event: React.FocusEvent): void => {\n if (this.props.isConfirmable) {\n this.setState({\n showButtons: true\n });\n }\n\n this.props.onFocus?.(event);\n };\n\n handleButtonsBlur = (e: React.FocusEvent): void => {\n if (this.props.isConfirmable) {\n this.autoConfirmOnBlur(e);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n this.props.onKeyDown?.(event);\n\n switch (true) {\n case event.key === KeyName.Enter:\n this.props.onEnterPress?.(event);\n\n if (!event.defaultPrevented && this.props.isConfirmable) {\n this.handleConfirm();\n event.preventDefault();\n }\n break;\n case event.key === KeyName.Escape:\n if (this.props.isConfirmable || this.props.withClearButton) {\n this.handleCancel();\n event.preventDefault();\n }\n break;\n case KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_S):\n if (this.props.isConfirmable) {\n this.handleConfirm();\n }\n break;\n }\n };\n\n autoConfirmOnBlur(e: React.FocusEvent): void {\n const target = e.relatedTarget as HTMLDivElement;\n const contains = doesElementContainsElement(this._inputRef.current, target) || doesElementContainsElement(this._buttonsRef.current, target);\n if (!contains) {\n this.handleConfirm();\n }\n }\n\n handleConfirm = (): void => {\n this.setState({\n showButtons: false\n });\n this.props.onConfirm?.();\n };\n\n handleCancel = (): void => {\n this.setState({\n showButtons: false\n });\n this.props.onCancel?.();\n };\n\n handleClearValue = (): void => {\n this.props.onChange({\n value: \"\",\n triggerAdditionalTasks: true\n });\n // return focus back to input so user can continue typing\n this._inputRef.current.focus();\n };\n\n renderWriteLine = (): React.ReactElement => {\n const styleProps = {\n isDisabled: this.props.isDisabled\n };\n const Icon = this.props.icon;\n\n return (\n \n \n {this.props.isRequired &&\n }\n \n \n {(this.props.isExtending || this.props.floatingText) &&\n \n {this.props.value}\n \n }\n {this.props.floatingText &&\n \n {this.props.floatingText}\n \n }\n {this.props.description &&\n {this.props.description}\n }\n {Icon &&\n \n \n \n }\n \n \n\n {this.props.errorAndTooltip}\n {this.props.withClearButton && this.props.value &&\n \n }\n \n {this.state.showButtons &&\n \n }\n \n );\n };\n\n render(): React.ReactElement {\n return this.props.isReadOnly ? renderReadOnlyText(this) : this.renderWriteLine();\n }\n}\n\nconst WriteLineWithErrorAndTooltip = withErrorAndTooltip(WriteLine, {\n renderErrorTextWithFocus: true,\n useErrorMinWidth: true\n});\n\nexport { WriteLine as WriteLineComponentType, WriteLineWithErrorAndTooltip };\n\nexport default withFormatter(WriteLineWithErrorAndTooltip);","import styled from \"styled-components/macro\";\nimport { StyledTokenizer } from \"../token\";\n\nexport const MoreItemsWrapper = styled.span<{\n $showTooltip: boolean;\n $selected: boolean;\n $isVisible: boolean;\n}>`\n color: ${props => props.$showTooltip ? props.theme.C_ACT_main : props.theme.C_TEXT_primary};\n cursor: pointer;\n text-transform: none;\n visibility: ${props => props.$isVisible ? \"visible\" : \"hidden\"};\n\n ${props => props.$selected && props.$showTooltip && `color: ${props.theme.C_BTN_4L_emph_bg_selected};`}\n &:hover {\n color: ${props => !props.$selected && props.$showTooltip && props.theme.C_BTN_4L_emph_text_hover};\n }\n`;\n\nexport const TooltipContentWrapper = styled.div`\n ${StyledTokenizer} {\n padding: 5px 0;\n }\n`;","import React, { ReactNode, useCallback, useRef } from \"react\";\nimport { MoreItemsWrapper, TooltipContentWrapper } from \"./MoreItems.styles\";\nimport useHideOnBlur from \"../../hooks/HideOnBlurHook\";\nimport PopperTooltip from \"../popperTooltip/PopperTooltip\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n count: number;\n tooltipContent: ReactNode;\n passRef?: React.RefObject;\n showTooltip?: boolean;\n}\n\nconst tooltipLikeStyles: React.CSSProperties = { padding: \"3px 8px\", maxWidth: \"400px\" };\n\nconst MoreItems = React.memo((props: IProps) => {\n const { count, tooltipContent } = props;\n\n const showTooltip = props.showTooltip !== false;\n\n const tooltipRef = useRef(null);\n const referenceElement = useRef(null);\n const { isVisible, setIsVisible } = useHideOnBlur({\n refs: [tooltipRef, referenceElement],\n initialIsVisible: false,\n onHide: () => {\n setIsVisible(false);\n }\n });\n\n const handleKeyDown = useCallback((e) => {\n if (e.key === KeyName.Enter) {\n handleClick(e);\n }\n }, [isVisible, showTooltip]);\n\n const handleClick = useCallback((e) => {\n if (showTooltip) {\n const nextIsVisible = !isVisible;\n e.stopPropagation();\n e.preventDefault();\n setIsVisible(nextIsVisible);\n }\n }, [isVisible, showTooltip]);\n\n // has to be rendered all the time, even if count is zero, tokenizer directly changes absolute position of more items wrapper before rerender\n return (\n {tooltipContent}}\n passRef={tooltipRef}\n inPlace={false}\n useFade={false}\n placement={\"bottom-start\"}\n offsetY={4}\n offsetX={18}\n style={tooltipLikeStyles}\n color={\"C_ACT_hover_without_opacity\"}\n hideArrow={true}\n isHidden={!isVisible}>\n {(ref) => {\n return \n {`+${count}`}\n ;\n }}\n \n );\n});\n\nexport default MoreItems;\n","import React from \"react\";\nimport { DashboardBackgroundStyled } from \"./NavDashboard.styles\";\nimport { Theme } from \"../../theme\";\n\nexport enum BackgroundType {\n WelcomeScreen,\n ConnectWithIDoklad,\n GoodbyeScreen\n}\n\ninterface IProps {\n type?: BackgroundType;\n isOverContent?: boolean;\n isTransparent?: boolean;\n hasShellBar?: boolean;\n}\n\nfunction getBackgroundImageNameFromType(type: BackgroundType): keyof Theme {\n switch (type) {\n case BackgroundType.WelcomeScreen:\n return \"F_wave_mountain\";\n case BackgroundType.ConnectWithIDoklad:\n return \"F_wave_mountain_panorama\";\n case BackgroundType.GoodbyeScreen:\n return \"F_wave_mountain_complex\";\n default:\n return \"F_wave\";\n }\n}\n\nconst DashboardBackground: React.FC = ({ type, isTransparent, isOverContent, hasShellBar }) => {\n // todo image maps to prevent click on specific area, disabled when not on foreground\n return (\n \n );\n};\n\nexport default DashboardBackground;","import { Link } from \"react-router-dom\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n LayoutStackOrder,\n LocalStackOrder,\n T_TITLE_1,\n T_TITLE_4\n} from \"../../global.style\";\nimport { Theme } from \"../../theme\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport WorkDatePicker from \"../workDatePicker\";\n\nexport const StyledNavDashboard = styled.div`\n display: flex;\n flex-direction: column;\n padding: ${VIEW_PADDING_VALUE}px 0 0 0;\n height: 100%;\n\n position: absolute;\n width: 100%;\n overflow: hidden;\n top: 0;\n z-index: ${LayoutStackOrder.MenuDashboard};\n background-color: ${props => props.theme.C_BG_menu};\n`;\n\nexport const StyledNavDashBoardBody = styled.div`\n height: 100%;\n`;\n\nexport const LEFT_BAR_OFFSET = 64;\nexport const REPEAT_WAVE_OFFSET = 2000;\n\nexport const DashboardBody = styled.div<{\n $isWithoutPadding?: boolean // eg. company dashboard is in VIew which already has desired padding\n}>`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-content: flex-start;\n padding: ${props => props.$isWithoutPadding ? \"0\" : `0 ${VIEW_PADDING_VALUE}px ${VIEW_PADDING_VALUE}px ${VIEW_PADDING_VALUE}px`};\n margin-top: 10px;\n position: relative;\n gap: 34px;\n`;\n\ninterface IDashboardBackgroundProps {\n $isTransparent?: boolean;\n $isBehindContent?: boolean;\n $type: keyof Theme;\n $hasShellBar?: boolean;\n}\n\nexport const DashboardBackgroundStyled = styled.div`\n background-image: url(${props => props.theme[props.$type]});\n background-repeat: no-repeat;\n background-position: ${props => props.$hasShellBar ? `${LEFT_BAR_OFFSET}px` : 0} bottom;\n background-size: auto 445px;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n opacity: ${props => props.$isTransparent ? 0.4 : 1};\n z-index: ${props => props.$isBehindContent ? LocalStackOrder.BelowContent : LocalStackOrder.AboveContent};\n\n &::after {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 117px;\n left: ${props => REPEAT_WAVE_OFFSET + (props.$hasShellBar ? LEFT_BAR_OFFSET : 0)}px;\n bottom: 0;\n ${props => props.$type === \"F_wave\" ? css`\n background-color: #A3047B;\n opacity: 0.3;\n ` : (props.$type === \"F_wave_mountain\" ? css`\n background-color: #DCDCDC;\n ` : props.$type === \"F_wave_mountain_complex\" ? css`\n background-color: #DCDCDC;\n ` : css`\n background-color: #AFAFAF;\n `)}\n }\n`;\n\nexport const DashboardTitle = styled.div`\n display: flex;\n ${T_TITLE_1};\n padding: 17px 0 42px;\n`;\n\n\nexport const WorkDatePickerStyled = styled(WorkDatePicker)`\n margin-left: 20px;\n`;\n\nexport const WriteLineWrapper = styled.div<{\n isBig?: boolean;\n}>`\n width: 240px;\n margin-right: 10px;\n font-size: ${props => props.isBig ? \"18px\" : \"14px\"};\n`;\n\nexport const BodyWrapper = styled.div`\n height: 100%;\n margin-top: 10px;\n`;\nexport const DashboardHeader = styled.div`\n margin-bottom: 20px;\n padding: 0 ${VIEW_PADDING_VALUE}px;\n height: 60px;\n`;\n\nexport const ItemBody = styled.div`\n width: 100%;\n height: calc(100% - 10px);\n`;\n\nexport const StyledLink = styled(Link)<{ $isDisabled?: boolean }>`\n display: block;\n width: 100%;\n height: 100%;\n ${getFocusBorderElement({ offset: 1 })};\n ${props => getDisabledStyle(props.$isDisabled)};\n`;\n\nexport const ItemFooter = styled.div`\n ${T_TITLE_4};\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n position: absolute;\n top: 152px;\n width: 100%;\n\n`;\n\nexport const NavListItem = styled.div<{ $isDisabled?: boolean }>`\n width: 200px;\n height: 200px;\n border-radius: 3px;\n border: 2px solid transparent;\n margin-bottom: 30px;\n margin-right: 30px;\n position: relative;\n\n [data-icon=\"UnderConstruction\"] {\n opacity: 0.3;\n }\n\n ${props => !props.$isDisabled && css`\n &:hover {\n border-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n\n &:active {\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n\n &:focus {\n outline: 1px dashed ${props => props.theme.C_ACT_main};\n }\n `};\n`;\n","import React from \"react\";\nimport { IMenuItem } from \"./NavMenu\";\nimport { ItemBody, ItemFooter, NavListItem, StyledLink } from \"./NavDashboard.styles\";\nimport TestIds from \"../../testIds\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { SvgImage } from \"../svgImage/SvgImage\";\nimport underConstructionSvg from \"../../svg/menu/underConstruction.svg\";\nimport Badge from \"../badge\";\nimport Tooltip from \"../tooltip\";\nimport { getValue } from \"@utils/general\";\nimport { addCompanyIdToUrl } from \"../../contexts/appContext/AppContext.utils\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\n\ninterface IProps extends IMenuItem {\n}\n\nclass NavDashboardItem extends React.PureComponent {\n static contextType = AppContext;\n\n render() {\n const title = this.props.t(getValue(this.props.title));\n\n return (\n \n {(ref) => {\n return (\n \n \n \n \n \n \n \n {title}\n \n \n \n );\n }}\n \n );\n }\n}\n\nexport default withTranslation(\"Common\")(NavDashboardItem);","import React from \"react\";\n\nimport {\n DashboardBody,\n DashboardHeader,\n DashboardTitle,\n WorkDatePickerStyled,\n StyledNavDashboard, StyledNavDashBoardBody\n} from \"./NavDashboard.styles\";\nimport DashboardBackground from \"./DashboardBackground\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\nimport { ScrollBar } from \"../scrollBar\";\nimport { IMenuGroup } from \"./NavMenu\";\nimport TestIds from \"../../testIds\";\nimport NavDashboardItem from \"./NavDashboardItem\";\n\nexport interface INavDashboardProps {\n group: IMenuGroup;\n\n className?: string;\n}\n\nclass NavDashboard extends React.PureComponent {\n refFooter = React.createRef();\n refItems = React.createRef();\n refBody = React.createRef();\n\n render() {\n // this class is very important as it directs animation for \"csstransition\" with react router in app.tsx\n const className = `dashboard-menu ${this.props.className || ''}`;\n return (\n \n \n {this.props.group &&\n <>\n \n \n {this.props.t(this.props.group.title)}\n {/*for now this works only for documents*/}\n {this.props.group.key === \"Documents\" &&\n \n }\n \n \n \n \n {this.props.group.items.map((item) => {\n return ;\n\n })}\n \n \n \n \n }\n \n \n );\n }\n\n}\n\nconst NavDashboardWithTranslation = withTranslation(\"Common\")(withRouter(NavDashboard));\nexport { NavDashboardWithTranslation as NavDashboard };\n","import styled, { css } from \"styled-components/macro\";\nimport { getFocusBorderElement, LayoutStackOrder, T_TITLE_4 } from \"../../global.style\";\n\nexport const Navigation = styled.div`\n height: 100%;\n\n display: flex;\n min-width: 20px;\n overflow: visible;\n z-index: ${LayoutStackOrder.Menu};\n`;\nexport const NavList = styled.nav`\n width: calc(100% - 8px);\n min-width: 202px;\n padding-left: 8px;\n user-select: none;\n padding-top: 40px;\n max-height: 100%;\n overflow: auto;\n`;\n\nexport const MenuContent = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n\nexport const Menu = styled.div.attrs((props) => ({\n // moved wave background here from root to prevent image reload on every styled-component change\n // this doesn't happen when the image is set via style attribute\n // https://github.com/styled-components/styled-components/issues/1593\n style: {\n backgroundImage: `url(${props.theme.F_wave})`,\n backgroundPosition: \"left bottom\",\n backgroundSize: \"2000px 445px\",\n backgroundRepeat: \"no-repeat\"\n }\n}))<{\n isFloating: boolean;\n _width: number;\n}>`\n flex-grow: 1;\n height: 100%;\n\n width: ${props => props._width ? `${props._width}px` : \"auto\"};\n transition: width 300ms ease-in-out;\n\n display: flex;\n flex-direction: column;\n\n position: ${props => props.isFloating ? \"absolute\" : \"relative\"};\n\n padding-left: 20px;\n box-sizing: border-box;\n\n background-color: ${props => props.theme.C_BG_menu};\n overflow: visible;\n`;\n\nexport const Underline = css<{\n selected?: boolean\n}>`\n &::after {\n content: \"\";\n bottom: -2px;\n height: 2px;\n margin-left: auto;\n margin-right: auto;\n position: absolute;\n\n border-radius: 1px;\n background-color: ${props => props.theme.C_ACT_thick_line};\n\n transition: 0.2s ease-out all .01s;\n\n left: ${props => props.selected ? \"0\" : \"50%\"};\n width: ${props => props.selected ? \"100%\" : \"1%\"};\n opacity: ${props => props.selected ? 1 : 0};\n }\n\n &:hover::after, &:focus-visible::after {\n opacity: 1;\n background-color: ${props => props.theme.C_ACT_thick_line_hover};\n width: 100%;\n left: 0;\n }\n`;\n\nexport const NavListGroupTitle = styled.a`\n display: block;\n margin-bottom: 20px;\n position: relative;\n width: fit-content;\n cursor: pointer;\n outline: none;\n\n ${getFocusBorderElement({ offset: 3, keyboardOnly: true })};\n \n ${T_TITLE_4} ${Underline}\n`;","import { ellipsis } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport {\n multiline_ellipsis,\n T_PLAIN_big_hig,\n T_PLAIN_EMP,\n T_TITLE_2,\n T_TITLE_3,\n T_TITLE_3_small,\n T_TITLE_4,\n T_TITLE_4_NORMAL\n} from \"../../global.style\";\nimport { Button } from \"../button\";\n\nexport const ListItemColumnWidth = 320;\nexport const TitleColumnWidth = 181;\n\ninterface ISmall {\n _small?: boolean;\n}\n\nexport enum ListItemStatus {\n Active,\n Progress\n}\n\nexport enum ItemContentRowType {\n OneRow,\n Small,\n Large\n}\n\nexport const StyledListItem = styled.div`\n width: 100%;\n position: relative;\n display: flex;\n justify-content: flex-start;\n align-items: ${props => props._small ? \"flex-start\" : \"stretch\"};\n flex-direction: ${props => props._small ? \"column\" : \"row\"};\n padding: 30px 0 32px 0;\n`;\n\nexport const DefaultTitle = styled.div `\n ${T_PLAIN_big_hig};\n font-style: italic;\n text-align: center;\n font-weight: bold;\n`;\n\nexport const ActiveTitle = styled.span<{ status: ListItemStatus }>`\n color: ${props => props.status === ListItemStatus.Active ? props.theme.C_SEM_el_highlighted : props.theme.C_SEM_text_warning};\n ${T_PLAIN_big_hig};\n font-style: italic;\n text-align: center;\n margin-top: 5px;\n`;\n\nexport const ControlsWrapper = styled.div`\n padding-left: ${props => props._small ? `${TitleColumnWidth + 50}px` : \"0\"};\n display: flex;\n flex-direction: ${props => props._small ? \"row\" : \"column\"};\n width: ${props => props._small ? \"100%\" : \"auto\"};\n justify-content: flex-end;\n align-items: flex-start;\n padding-right: 10px;\n`;\n\nexport const ActiveBar = styled.div<{ status: ListItemStatus }>`\n position: absolute;\n top: 28px;\n left: 0;\n bottom: 28px;\n width: 6px;\n background-color: ${props => props.status === ListItemStatus.Active ? props.theme.C_SEM_el_highlighted : props.theme.C_SEM_text_warning};\n border-bottom-left-radius: 7px;\n border-top-left-radius: 7px;\n`;\n\nexport const ContentWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n padding-left: 8px;\n min-height: 220px;\n`;\n\nexport const ColumnWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n // compensate for the margin on ContentColumn\n margin-bottom: ${props => props._small? \"\" : \"5px\"};\n`;\n\nexport const ColumnContent = styled.div`\n`;\n\nexport const ColumnTitle = styled.div `\n ${T_PLAIN_big_hig};\n margin-bottom: 7px;\n`;\n\nexport const ContentColumn = styled.div`\n flex: 0 0 auto;\n width: ${ListItemColumnWidth}px;\n margin-right: 30px;\n /* min-height: 210px; */\n max-height: 320px;\n overflow: hidden;\n // margin between columns when wrapped\n margin-bottom: ${props => props._small && props._isLast? \"14px\" : \"30px\"};\n\n &:hover, &:focus {\n overflow-y: auto;\n }\n\n h6 {\n margin-bottom: 1em;\n ${T_PLAIN_big_hig};\n }\n`;\n\ninterface IListItem {\n hasSpaceAfter?: boolean;\n hasEllipsis?: boolean;\n}\n\nexport const ListItemContentRowStyled = styled.div<{ hasSpaceAfter?: boolean }>`\n ${multiline_ellipsis(\"100%\", 2)};\n margin-bottom: ${props => props.hasSpaceAfter ? \"12px\" : 0};\n`;\n\n\nexport const ListItemValueNewRowWrapper = styled.div``;\n\nexport const ListItemContentValue = styled.span`\n ${T_TITLE_4_NORMAL};\n margin-left: 4px;\n`;\n\nexport const ListItemValueNewRow = styled.div <{ isLarge: boolean }>`\n ${props => props.isLarge ? T_PLAIN_EMP : T_TITLE_4_NORMAL}\n`;\n\nconst OneRowDesc = css`\n ${T_TITLE_4_NORMAL};\n opacity: 0.5;\n`;\n\nexport const ListItemDescription = styled.span<{ type: ItemContentRowType }>`\n ${({ type }) => {\n if (type === ItemContentRowType.OneRow) return OneRowDesc;\n if (type === ItemContentRowType.Large) return T_TITLE_3;\n if (type === ItemContentRowType.Small) return T_TITLE_3_small;\n \n return T_TITLE_3;\n }}\n`;\n\nexport const ListItemDelimiter = styled.span`\n margin-left: 2px;\n margin-right: 2px;\n`;\n\n\nexport const ListItemRow = styled.div`\n margin-bottom: 2px;\n`;\n\nexport const ListItemLabel = styled.span`\n ${T_TITLE_4};\n`;\n\nexport const ListItemMoreRowLabel = styled.div`\n ${T_TITLE_4};\n margin-bottom: 4px;\n`;\n\nexport const ListItemContentLabel = styled.span`\n ${T_TITLE_4};\n margin-bottom: 4px;\n`;\n\nexport const ListItemValue = styled.div`\n margin-bottom: ${props => props.hasSpaceAfter ? \"1em\" : 0};\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const TitleColumn = styled(ContentColumn)`\n width: ${TitleColumnWidth}px;\n min-height: 143px;\n display: grid;\n grid-gap: 0;\n grid-template-columns: 143px 1fr;\n grid-template-rows: 130px 1fr;\n grid-template-areas: \"icon toolbar\" \"text toolbar\";\n margin-bottom: 15px;\n`;\n\nexport const ToolbarWrapper = styled.div`\n grid-area: toolbar;\n grid-column: 2;\n grid-row: 1 / span 2;\n`;\n\nexport const Title = styled.span`\n text-align: center;\n grid-area: text;\n ${T_TITLE_2};\n`;\n\nexport const TitleWrapper = styled.div`\n ${ellipsis()};\n max-width: 320px;\n margin-bottom: 18px;\n`;\n\nexport const IconWrapper = styled.div`\n width: 143px;\n height: 146px;\n margin-top: -13px;\n grid-area: icon;\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nexport const CustomImageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 5px;\n grid-area: icon;\n`;\n\nexport const ListItemButton = styled(Button)<{\n isSmall?: boolean\n}>`\n white-space: nowrap;\n\n &:not(:first-child) {\n margin-left: 21px;\n }\n`;\n\nexport const ListItemColumn = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const ExtensionListDescriptionText = styled.div `\n margin-bottom: 12px;\n`;\n\nexport const ListItemDescriptionTitle = styled.div`\n && {\n ${T_TITLE_2};\n margin-bottom: 15px;\n }\n\n margin-right: 18px;\n\n`;\n\nexport const ListItemTitlesWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n margin-bottom: 15px;\n\n ${ListItemDescriptionTitle} {\n margin-bottom: 0;\n }\n`;\n\nexport const ListItemSubDescription = styled.div`\n ${T_TITLE_3_small};\n white-space: nowrap;\n text-transform: capitalize;\n position: relative;\n bottom: 2px;\n`;","import { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport Tooltip from \"@components/tooltip\";\nimport { isDefined } from \"@utils/general\";\nimport React, { PropsWithChildren, ReactElement } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { ToolbarItemType } from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport TestIds from \"../../testIds\";\nimport { Theme } from \"../../theme\";\nimport { Image } from \"../avatar\";\nimport CustomResizeObserver from \"../customResizeObserver/CustomResizeObserver\";\nimport { getIcon } from \"../icon\";\nimport { SvgImage } from \"../svgImage/SvgImage\";\nimport { VerticalToolbar } from \"../toolbar/VerticalToolbar\";\nimport {\n ActiveBar,\n ActiveTitle,\n ColumnContent,\n ColumnTitle,\n ColumnWrapper,\n ContentColumn,\n ContentWrapper,\n ControlsWrapper,\n CustomImageWrapper,\n DefaultTitle,\n IconWrapper,\n ItemContentRowType,\n ListItemButton,\n ListItemContentLabel,\n ListItemContentRowStyled,\n ListItemContentValue,\n ListItemDelimiter,\n ListItemDescription,\n ListItemMoreRowLabel,\n ListItemStatus,\n ListItemValueNewRow,\n ListItemValueNewRowWrapper,\n StyledListItem,\n Title,\n TitleColumn,\n TitleWrapper,\n ToolbarWrapper\n} from \"./ListItem.styles\";\n\nexport interface IColumnContent {\n title?: string;\n content: any;\n highlighted?: boolean;\n}\n\nexport interface IListItem {\n id: string;\n key?: string;\n name?: string;\n /** Only one action is expected to be 'main' action - ToolbarItemType.Button */\n actions?: IToolbarItem[];\n /** Icon shown as the main image on the left. Use either iconName or customImageSrc.*/\n iconName?: string;\n iconTitle?: string;\n /** URL/other img tag acceptable src of custom image. Use either iconName or customImageSrc.*/\n customImageSrc?: string;\n contents: IColumnContent[];\n className?: string;\n isDefault?: boolean;\n status?: ListItemStatus;\n isCustomImageSvg?: boolean;\n appliedText?: string;\n}\n\ninterface IProps extends IListItem {\n onTriggerAction?: (itemId: string, action: string) => void;\n}\n\ninterface IState {\n isSmall?: boolean;\n}\n\nclass ListItem extends React.Component {\n _refStyledItem = React.createRef();\n _refContent = React.createRef();\n _refButtonWrap = React.createRef();\n\n state: IState = {\n isSmall: false\n };\n\n componentDidMount(): void {\n this.update();\n }\n\n get mainIconAction() {\n return this.getToolbarActions()?.[0];\n }\n\n handleResize = () => {\n this.update();\n };\n\n handleAction = (action: string) => {\n this.props.onTriggerAction?.(this.props.id, action);\n };\n\n getMainActions = () => {\n return this.props.actions?.filter(item => item.itemType === ToolbarItemType.Button || item.itemType === ToolbarItemType.TransparentButton);\n };\n\n getToolbarActions = () => {\n return this.props.actions?.filter(item => item.itemType === ToolbarItemType.Icon) || [];\n };\n\n update = () => {\n let isSmall = false;\n if (this._refStyledItem.current && this._refContent.current && this._refButtonWrap.current) {\n isSmall = this._refStyledItem.current.offsetWidth - this._refContent.current.offsetWidth < this._refButtonWrap.current.offsetWidth;\n }\n // mark layout small vs. big\n this.setState({\n isSmall\n });\n };\n\n handleIconClick = () => {\n const toolbarActions = this.getToolbarActions();\n if (toolbarActions?.length) {\n this.handleAction(toolbarActions[0]?.id);\n }\n };\n\n getImage = (): ReactElement => {\n const props = {\n src: this.props.customImageSrc,\n alt: this.props.t(\"Common:General.Logo\"),\n title: this.props.name\n };\n return this.props.isCustomImageSvg ? : ;\n };\n\n render() {\n const Icon = this.props.iconName && getIcon(this.props.iconName);\n\n const toolbarIcons = this.getToolbarActions(),\n mainButtons = this.getMainActions();\n const appliedText = this.props.appliedText ?? this.props.t(\"Components:ObjectList.Applied\");\n\n return (\n \n\n \n \n {isDefined(this.props.status) && }\n \n {this.props.iconName &&\n \n \n \n }\n {this.props.customImageSrc &&\n \n {this.getImage()}\n \n }\n {this.props.isDefault &&\n /{this.props.t(\"Components:ObjectList.Default\")}/}\n {isDefined(this.props.status) &&\n /{this.props.status === ListItemStatus.Active ? appliedText :\n this.props.t(\"Components:ObjectList.Working\")}/}\n\n \n \n \n \n \n \n {ref => {\n return \n {this.props.name}\n ;\n }}\n \n \n\n {this.props.contents.map((col: IColumnContent, idx) =>\n \n {col.title && {col.title}}\n
{col.content}
\n
\n )}\n
\n
\n
\n \n {mainButtons &&\n
\n {mainButtons.map(btn => ( this.handleAction(btn.id)}>{btn.label}))}\n
}\n
\n \n );\n }\n}\n\ninterface ListItemContentRowProps {\n label?: string;\n hasSpaceAfter?: boolean;\n hasEllipsis?: boolean;\n type?: ItemContentRowType;\n description?: string;\n delimiter?: string;\n text?: string;\n color?: keyof Theme;\n}\n\nexport const ListItemContentRow: React.FunctionComponent = (args: PropsWithChildren) => {\n const type = args.type ?? ItemContentRowType.OneRow;\n const isOneRow = type === ItemContentRowType.OneRow;\n\n const _renderText = () => {\n const text = args.color ?\n {args.text ?? args.children} : args.text ?? args.children;\n return (\n <>\n {text}\n {args.description &&\n \n {args.delimiter ?? '/'}\n {args.description}\n }\n\n \n );\n\n };\n\n return (\n \n {isOneRow &&\n <>\n {args.label &&\n {args.label}:}\n {_renderText()}\n \n }\n {!isOneRow &&\n <>\n {args.label &&\n {args.label}:}\n\n \n \n {_renderText()}\n \n \n \n }\n \n );\n};\n\nexport default withTranslation([\"Components\"])(ListItem);\n","import { ALERT_BOTTOM_MARGIN, ALERT_TOP_MARGIN } from \"@components/alert/Alert.styles\";\nimport styled from \"styled-components/macro\";\n\nimport { T_HEADER_bold } from \"../../global.style\";\n\nexport const StyledObjectList = styled.div`\n margin: 33px 0 36px;\n`;\n\nexport const NoDataWrapper = styled.div`\n text-align: center;\n padding: 15px 0;\n ${T_HEADER_bold};\n`;\n\nexport const ObjectListAlertWrapper = styled.div`\n margin-top: ${ALERT_TOP_MARGIN}px;\n margin-bottom: ${ALERT_BOTTOM_MARGIN}px;\n`;","import React, { PureComponent } from \"react\";\nimport { NoDataWrapper, StyledObjectList } from \"./ObjectList.styles\";\nimport ListItem, { IListItem } from \"./ListItem\";\nimport { Separator } from \"../separator/Separator\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport TestIds from \"../../testIds\";\nimport { withBusyIndicator, WithBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { NoData } from \"../table/NoData\";\n\n\nexport interface ISection {\n id: string;\n name?: string;\n children: IListItem[];\n}\n\nexport interface IObjectListProps extends WithTranslation, WithBusyIndicator {\n listId?: string;\n sections: ISection[];\n noDataText?: string;\n onTriggerAction?: (itemId: string, action: string) => void;\n appliedText?: string;\n}\n\nclass ObjectList extends PureComponent {\n renderSections = (sections: ISection[]) => {\n return sections.map((section, idx) => {\n // renders separator if it's not first section or name is explicitly specified\n const renderSeparator = idx || section.name;\n return (\n \n {renderSeparator && }\n {this.renderListItems(section.children)}\n \n );\n });\n };\n\n renderListItems = (items: IListItem[]) => {\n return items.map((item, idx) => {\n const id = `${this.props.listId}/${item.id}`,\n key = `${this.props.listId}/${item.key ?? item.id}`;\n return (\n \n \n {idx !== items.length - 1 ? : \"\"}\n \n );\n });\n };\n\n renderNoData = () => (\n \n \n \n );\n\n render = () => {\n const sectionsWithChildren = this.props.sections?.filter(section => section.children?.length);\n\n return (\n \n {this.props.busyIndicator}\n {!this.props.busy &&\n (sectionsWithChildren?.length ? this.renderSections(sectionsWithChildren) : this.renderNoData())}\n \n );\n };\n}\n\n\nexport default withBusyIndicator({ passBusyIndicator: true })(withTranslation([\"Components\"])(ObjectList));","import React from \"react\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"../smart/smartField/SmartField\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport SmartFastEntryList, {\n ActionButtonPosition,\n ActionType,\n ISmartFastEntriesActionEvent\n} from \"../smart/smartFastEntryList\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { AccountingBalanceStyled, PairingRow } from \"@pages/banks/bankTransactions/BankTransactions.styles\";\nimport i18next from \"i18next\";\nimport { ColoredText } from \"../../global.style\";\nimport { getTranBalance, IBankCustomData } from \"@pages/banks/bankTransactions/BankTransactions.utils\";\nimport { PaymentDocumentItemTypeCode } from \"@odata/GeneratedEnums\";\nimport { IPaymentDocumentEntity, IPaymentDocumentItemEntity, PaymentDocumentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getInfoValue, TInfoValue } from \"../smart/FieldInfo\";\nimport TestIds from \"../../testIds\";\nimport { arrayInsert, roundToDecimalPlaces } from \"@utils/general\";\nimport { CBA_CATEGORY_PATH } from \"@pages/cashBasisAccounting/CashBasisAccounting.utils\";\nimport { getNewItemsMaxId, setDirtyFlag } from \"@odata/Data.utils\";\nimport { EXCHANGE_GAIN_GROUP, isPaymentOrOther, PAYMENT_GROUP } from \"@pages/banks/Pair.utils\";\nimport { invalidateItems } from \"../smart/smartSelect/SmartSelectAPI\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { setNewItemDefaultCategoryData } from \"@pages/banks/Payments.utils\";\nimport { FormMode } from \"../../enums\";\nimport { correctBpForLinkedDocument } from \"@utils/PairTableUtils\";\n\ninterface IProps {\n bindingContext: BindingContext;\n storage: FormStorage;\n onChange: (args: ISmartFieldChange) => void;\n onBlur: (args: ISmartFieldBlur) => Promise;\n isDisabled: TInfoValue;\n isReadOnly: boolean;\n groupId: string;\n hasAccountAssignment: boolean;\n renderReadOnlyAsTable?: boolean;\n}\n\nexport class PairingFastEntryList extends React.Component {\n handleLineItemsChangeGain = (e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n if (e.additionalData?.Number && (path === \"CreditAccount\" || path === \"DebitAccount\")) {\n e.currentValue = e.additionalData.Number;\n }\n\n this.handleLineItemsChange(e);\n };\n\n handleLineItemsChange = (event: ISmartFieldChange): void => {\n if (event.bindingContext.getPath().includes(\"AccountAssignment\")) {\n this.props.storage.setCustomData({\n oldAssSelId: this.props.storage.getValue(event.bindingContext, {\n useDirectValue: false\n })\n });\n\n this.props.onChange(event);\n } else {\n\n this.props.onChange(event);\n (this.props.storage as FormStorage).handleLineItemsChange(event);\n }\n\n setDirtyFlag(this.props.storage, event.bindingContext);\n this.props.storage.refreshFields();\n };\n\n handleLineItemsAction = async (e: ISmartFastEntriesActionEvent) => {\n const storage = this.props.storage;\n const entity = storage.data.entity as IPaymentDocumentEntity;\n const items = storage.getValue(e.bindingContext) as IPaymentDocumentItemEntity[];\n\n const createdItems: IPaymentDocumentItemEntity[] = [];\n\n const _appendGains = (linkedDocId?: number) => {\n\n if (items) {\n const gains = items.filter((item: IPaymentDocumentItemEntity) => {\n return (item.LinkedDocument?.Id !== linkedDocId || !linkedDocId) && (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss);\n });\n\n if (gains.length > 0) {\n createdItems.push(...gains);\n }\n }\n };\n\n if (e.actionType === ActionType.Custom && e.customActionType === \"pair\") {\n this.openDialog();\n return;\n }\n\n if (e.actionType === ActionType.Remove) {\n const removedBc: BindingContext[] = [];\n e.affectedItems.forEach(item => {\n removedBc.push(e.bindingContext.addKey(item).navigate(\"AccountAssignmentSelection/AccountAssignment\"));\n _appendGains(item.LinkedDocument?.Id);\n });\n invalidateItems(removedBc, storage);\n\n if (entity.IsUnrelatedToBusiness) {\n storage.setValueByPath(PaymentDocumentEntity.IsUnrelatedToBusiness, false);\n }\n }\n\n if (e.actionType === ActionType.Add) {\n const [newItem] = e.affectedItems;\n if (isCashBasisAccountingCompany(storage.context)) {\n setNewItemDefaultCategoryData(newItem);\n }\n\n newItem.PaymentDocumentItemTypeCode = PaymentDocumentItemTypeCode.Other;\n newItem[BindingContext.NEW_ENTITY_ID_PROP] = getNewItemsMaxId(items) + 1;\n\n const balance = getTranBalance(this.props.storage) || 0;\n\n if (balance > 0) {\n const tranExRate = entity.ExchangeRatePerUnit ?? 1;\n\n newItem.TransactionAmount = roundToDecimalPlaces(2, balance);\n newItem.Amount = roundToDecimalPlaces(2, balance * tranExRate);\n }\n\n // as we don't clear new line on save for banks we set entity dirty in either way\n setDirtyFlag(this.props.storage, e.bindingContext);\n storage.handleFirstChange();\n\n _appendGains();\n }\n\n if (e.actionType === ActionType.Reorder || e.actionType === ActionType.Remove) {\n setDirtyFlag(this.props.storage, e.bindingContext);\n }\n\n\n (this.props.storage as FormStorage).handleLineItemsAction({\n ...e,\n items: [...e.items, ...createdItems],\n affectedItems: [...e.affectedItems, ...createdItems]\n });\n\n if (e.actionType === ActionType.Remove) {\n await correctBpForLinkedDocument(this.props.storage, entity, entity.Items);\n }\n\n this.props.storage.refresh();\n };\n\n openDialog = (): void => {\n this.props.storage.setCustomData({\n pairedDialogOpened: true\n });\n this.props.storage.refresh();\n };\n\n handleBlur = async (blurArgs: ISmartFieldBlur): Promise => {\n if (blurArgs.bindingContext.getPath() === \"Amount\" && blurArgs.wasChanged) {\n (this.props.storage as FormStorage).refreshGroup(blurArgs.bindingContext.getParent());\n }\n this.props.onBlur(blurArgs);\n };\n\n render() {\n const isDisabled = this.props.storage?.isDisabled || getInfoValue?.(this.props, \"isDisabled\", {\n storage: this.props.storage,\n bindingContext: this.props.bindingContext\n }) || !!this.props.storage.getBackendDisabledFieldMetadata(this.props.bindingContext);\n\n let columns = [{\n id: \"TransactionAmount\"\n }, {\n id: \"LinkedDocument/NumberOurs\"\n }];\n\n if (this.props.hasAccountAssignment) {\n columns = arrayInsert(columns, { id: \"Amount\" }, 1);\n columns = arrayInsert(columns, { id: \"AccountAssignmentSelection/AccountAssignment\" }, 2);\n columns = arrayInsert(columns, { id: \"DateAccountingTransaction\" }, 2);\n } else {\n columns = arrayInsert(columns, { id: CBA_CATEGORY_PATH }, 1);\n }\n\n const customActionButtons = this.props.isReadOnly ? [] : [{\n id: \"pair\",\n position: ActionButtonPosition.Before,\n isTransparent: false,\n title: i18next.t(\"Banks:Transactions.PairingTitle\"),\n isDisabled\n }];\n\n return (\n
\n \n \n \n {\n\n return items.filter(item => {\n return isPaymentOrOther(item.PaymentDocumentItemTypeCode)\n // in audit trail, empty items can be added into storage, to show missing item on one side\n // => render all items PaymentDocumentItemTypeCode here, so that they are not missing in audit trail\n || ((this.props.storage as FormStorage).formMode === FormMode.AuditTrail && !item.PaymentDocumentItemTypeCode);\n });\n }}\n order={null}\n onBlur={this.handleBlur}\n onChange={this.handleLineItemsChange}\n onAction={this.handleLineItemsAction}\n />\n\n {this.props.hasAccountAssignment && {\n return items.filter(item => {\n return (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss);\n });\n }}\n onBlur={this.handleBlur}\n onChange={this.handleLineItemsChangeGain}\n onAction={this.handleLineItemsAction}\n />}\n
\n );\n }\n}\n\ninterface IHeaderProps {\n storage: FormStorage;\n bindingContext: BindingContext;\n isReadOnly: boolean;\n isDisabled: TInfoValue;\n}\n\nclass PairingListHeader extends React.Component {\n constructor(props: IHeaderProps) {\n super(props);\n\n this.props.storage.addRef(this, this.getThisBc());\n }\n\n getThisBc = () => {\n return this.props.bindingContext.getParent().navigate(BindingContext.localContext(\"ItemsHeader\"));\n };\n\n componentWillUnmount() {\n this.props.storage.removeRef(this, this.getThisBc());\n }\n\n render() {\n const balance = getTranBalance(this.props.storage) || 0;\n const tranCurrency = this.props.storage.data.entity?.TransactionCurrency?.Code ?? this.props.storage.data.entity?.TransactionCurrencyCode;\n const formattedValue = formatCurrency(balance, tranCurrency);\n\n const color = balance === 0 ? \"C_SEM_text_good\" : balance < 0 ? \"C_SEM_text_bad\" : \"C_SEM_text_warning\";\n\n return (\n <>\n \n {formattedValue}\n \n );\n }\n}","import styled from \"styled-components/macro\";\n\ninterface IProps {\n sharpLeft?: boolean;\n}\n\nexport const PopupWrapper = styled.div`\n position: relative;\n // left: ${props => props.sharpLeft ? \"0\" : \"12px\"};\n outline: none;\n border-radius: 3px;\n box-shadow: 0 0 12.7px 0.3px rgba(0, 0, 0, 0.15);\n background: ${props => props.theme.C_BG_dialogue};\n`;\n","import React from \"react\";\nimport { Transition } from \"react-transition-group\";\n\nconst duration = 100;\n\n\nexport enum SlideInDirection {\n Down = \"Down\",\n Up = \"Up\"\n}\n\nconst defaultStyle = {\n // transition: `opacity ${duration}ms ease-in-out`,\n // opacity: 0,\n [SlideInDirection.Down]: {\n transition: `transform ${duration}ms ease-in-out`,\n transform: \"translateY(-100%)\"\n },\n [SlideInDirection.Up]: {\n transition: `transform ${duration}ms ease-in-out`,\n transform: \"translateY(100%)\"\n }\n};\n\nconst transitionStyles: any = {\n [SlideInDirection.Down]: {\n entering: { transform: \"translateY(-100%)\" },\n entered: { transform: \"translateY(0%)\" },\n exiting: { transform: \"translateY(-100%)\" },\n exited: { transform: \"translateY(-100%)\" }\n },\n [SlideInDirection.Up]: {\n entering: { transform: \"translateY(100%)\" },\n entered: { transform: \"translateY(0%)\" },\n exiting: { transform: \"translateY(100%)\" },\n exited: { transform: \"translateY(100%)\" }\n }\n};\n\ninterface IProps {\n in: boolean;\n /* Called before the transition starts\n * this is needed so that popper js can correctly\n * set data-popper-placement based on the content size*/\n onFirstHiddenRender?: () => void;\n innerProps?: any;\n}\n\ninterface IState {\n isOpen: boolean;\n}\n\nexport default class SlideIn extends React.Component {\n state: IState = {\n isOpen: false\n };\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (prevProps.in !== this.props.in) {\n if (!this.state.isOpen) {\n this.props.onFirstHiddenRender?.();\n }\n\n if (this.props.in) {\n // this micro delay is probably slightly noticeable,\n // but it will let popper js update placement\n setTimeout(() => {\n this.setState({\n isOpen: this.props.in\n });\n });\n } else {\n this.setState({\n isOpen: this.props.in\n });\n }\n }\n }\n\n renderInvisibleChildren = () => {\n return (\n
\n {this.props.children}\n
\n );\n };\n\n render = () => {\n if (this.props.in && !this.state.isOpen) {\n return this.renderInvisibleChildren();\n }\n\n let outerStyle = { overflow: \"hidden\" };\n\n if (this.props.innerProps?.style) {\n outerStyle = { ...this.props.innerProps.style, ...outerStyle };\n }\n\n const direction = this.props.innerProps?.[\"data-popper-placement\"]?.startsWith(\"top\") ? SlideInDirection.Up : SlideInDirection.Down;\n\n return (\n \n {state => {\n return (\n
\n
\n {this.props.children}\n
\n
\n );\n }}\n
\n );\n };\n}","import React from \"react\";\nimport { Manager, Popper, PopperChildrenProps, Reference, ReferenceChildrenProps } from \"react-popper\";\nimport { PopupWrapper } from \"./Popover.styles\";\nimport ReactDOM from \"react-dom\";\nimport SlideIn from \"../slideIn/SlideIn\";\nimport { KeyName } from \"../../keyName\";\nimport { composeRefHandlers, focusNextElement, getFocusableElements } from \"@utils/general\";\n\ninterface IProps {\n reference: (props: ReferenceChildrenProps) => React.ReactNode;\n isOpen: boolean;\n offsetX?: number;\n offsetY?: number;\n passRef?: React.Ref;\n popperProps?: PopperChildrenProps;\n preventSlideIn?: boolean;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nclass PopperElement extends React.PureComponent {\n update = () => {\n // update popover position (and placement),\n // otherwise the position is wrong (e.g. in filter bar)\n this.props.popperProps.update();\n };\n\n render = () => {\n return (\n \n \n {this.props.children}\n \n \n );\n };\n}\n\nexport default class Popover extends React.Component {\n\n _popupWrapperRef = React.createRef();\n _triggerRef = React.createRef();\n\n get autocompleteRoot(): HTMLElement {\n return document.getElementById(\"autocomplete-root\");\n }\n\n renderPopover = (popperProps: PopperChildrenProps): React.ReactElement => {\n const rootEl = this.autocompleteRoot;\n return rootEl ? ReactDOM.createPortal(this.renderPopoverContent(popperProps), rootEl) : this.renderPopoverContent(popperProps);\n };\n\n renderPopoverContent = (popperProps: PopperChildrenProps): React.ReactElement => {\n const { passRef, onKeyDown, ...restProps } = this.props;\n return (\n \n );\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n if (!!this.autocompleteRoot && e.key === KeyName.Tab) {\n // Handle Tab key - focus elements according to reference, because popup is rendered in autocomplete root\n const popupItems = getFocusableElements(this._popupWrapperRef.current);\n const lastFocusable = popupItems?.[popupItems.length - 1];\n const firstFocusable = popupItems?.[0];\n const referenceItems = getFocusableElements(this._triggerRef.current);\n const lastReferenceItem = referenceItems?.[referenceItems.length - 1];\n\n if (e.shiftKey) {\n if (firstFocusable?.isSameNode(document.activeElement)) {\n // focus previous element before popup - last focusable el from reference\n lastReferenceItem?.focus();\n e.preventDefault();\n }\n } else if (lastFocusable.isSameNode(document.activeElement)) {\n // focus next element after reference\n focusNextElement(lastReferenceItem);\n e.preventDefault();\n }\n }\n this.props.onKeyDown(e);\n };\n\n render() {\n return (\n \n \n {({ ref }) => {\n return this.props.reference({ ref: composeRefHandlers(ref, this._triggerRef) });\n }}\n \n \n {this.renderPopover}\n \n \n );\n }\n}","export const POPOVER_INPUT_OFFSET_X = 15;\nexport const POPOVER_INPUT_SHARP_LEFT_OFFSET_X = 2;","import styled from \"styled-components/macro\";\nimport TestIds from \"../../testIds\";\nimport { StyledTooltip } from \"../tooltipIcon/TooltipIcon.styles\";\n\nexport const StyledPopperTooltip = styled(StyledTooltip)`\n // styles specific for components used inside PopperTooltip\n [data-testid=\"${TestIds.WriteLine}\"] input {\n color: ${props => props.theme.C_BTN_4L_emph_text};\n }\n \n [data-testid=\"${TestIds.WriteLine}\"] input::placeholder {\n color: ${props => props.theme.C_ACT_thick_line};\n }\n\n [data-testid=\"${TestIds.Line}\"] {\n background-color: ${props => props.theme.C_BTN_4L_emph_text};\n }\n\n [data-testid=\"${TestIds.CheckboxLabel}\"] {\n color: ${props => props.theme.C_BTN_4L_emph_text};\n }\n\n [data-testid=\"${TestIds.Checkbox}\"] {\n border: solid 1px rgba(255, 255, 255, 0.5);\n background-color: rgba(255, 255, 255, 0.5);\n }\n`;\n\nexport const Background = styled.div`\n position: absolute;\n z-index: -1;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border-radius: 3px;\n background-image: ${props => `linear-gradient(to bottom, ${props.theme.C_BG_info})`};\n\n [data-popper-placement^=\"bottom\"] & {\n background-image: ${props => `linear-gradient(to top, ${props.theme.C_BG_info})`};\n }\n`;","import React, { useCallback, useContext, useEffect, useState } from \"react\";\nimport { Background, TooltipArrow } from \"../tooltipIcon/TooltipIcon.styles\";\nimport { focusNextElement, getFocusableElements, getValue, handleRefHandlers } from \"@utils/general\";\nimport TestIds from \"../../testIds\";\nimport { usePopper } from \"react-popper\";\nimport ReactDOM from \"react-dom\";\nimport * as PopperJS from \"@popperjs/core\";\nimport { DefaultTheme } from \"styled-components\";\nimport { StyledPopperTooltip } from \"./PopperTooltip.styles\";\nimport { AppContext, ContextEvents } from \"../../contexts/appContext/AppContext.types\";\nimport { KeyName } from \"../../keyName\";\n\nexport interface IProps {\n /** Content of the opened tooltip.\n * Can receive content as callback - performance optimization. We don't need to render tooltips that are not opened. */\n content: React.ReactNode | (() => React.ReactNode);\n /** Pass the reference element */\n children: (reference: React.Ref) => React.ReactElement;\n /** Render in the current DOM instead of React.Portal to support different cases */\n isHidden?: boolean;\n color?: string | keyof DefaultTheme;\n inPlace?: boolean;\n /** By default, if inPlace==false, tooltip is rendered via React.Portal into \"context-menu-root\",\n * use domPortalParent to choose custom DOM parent element */\n domPortalParent?: React.RefObject;\n useFade?: boolean;\n offsetY?: number;\n offsetX?: number;\n placement?: PopperJS.Placement;\n onAnimationEnd?: (event: React.AnimationEvent) => void;\n passRef?: React.Ref;\n className?: string;\n style?: React.CSSProperties;\n hideArrow?: boolean;\n}\n\n/** Tooltip with dark background and pointer arrow, positioned by Popper.js */\nconst PopperTooltip = React.memo((props: React.PropsWithChildren) => {\n const appContext = useContext(AppContext);\n const [referenceElement, setReferenceElement] = useState(null);\n const [popperElement, setPopperElement] = useState(null);\n const [arrowElement, setArrowElement] = useState(null);\n const usedPopper = usePopper(referenceElement, popperElement, {\n placement: props.placement ?? \"top\",\n modifiers: [\n { name: \"arrow\", options: { element: arrowElement } },\n { name: \"offset\", options: { offset: [props.offsetX ?? 0, props.offsetY] } },\n // add 19px padding from window borders\n { name: \"preventOverflow\", options: { mainAxis: true, padding: 19 } }\n ]\n });\n const onPopperUpdate = useCallback(() => {\n if (!props.isHidden && usedPopper.update) {\n usedPopper.update();\n }\n }, [props.isHidden, usedPopper]);\n\n useEffect(() => {\n appContext?.eventEmitter?.on(ContextEvents.UpdatePoppers, onPopperUpdate);\n\n return () => {\n appContext?.eventEmitter?.off(ContextEvents.UpdatePoppers, onPopperUpdate);\n };\n }, [appContext, onPopperUpdate]);\n\n /** If inPlace==false, default browser tabindex order is broken for keyboard navigation.\n * When use press Tab on the reference element, set the focus inside the PopperTooltip to enable keyboard navigation. */\n const onReferenceElementKeydown = useCallback((event: KeyboardEvent) => {\n if (!props.inPlace && !props.isHidden && event.key === KeyName.Tab && !event.shiftKey) {\n const focusableElements = getFocusableElements(popperElement);\n\n if (focusableElements?.length > 0) {\n event.stopPropagation();\n event.preventDefault();\n focusableElements[0]?.focus();\n }\n }\n }, [popperElement, props.isHidden, props.inPlace]);\n\n useEffect(() => {\n referenceElement?.addEventListener(\"keydown\", onReferenceElementKeydown);\n\n return () => {\n referenceElement?.removeEventListener(\"keydown\", onReferenceElementKeydown);\n };\n }, [referenceElement, onReferenceElementKeydown]);\n\n /** If inPlace==false, default browser tabindex order is broken for keyboard navigation.\n * When user press Tab inside the PopperTooltip and the focus should move out of it,\n * return it to the reference element or move it to the element after the reference element.*/\n const onPopperElementKeyDown = useCallback((event: KeyboardEvent) => {\n if (!props.inPlace && !props.isHidden && event.key === KeyName.Tab) {\n const focusableElements = getFocusableElements(popperElement);\n\n if (!event.shiftKey) {\n // forward\n if (document.activeElement === focusableElements[focusableElements.length - 1]) {\n event.stopPropagation();\n event.preventDefault();\n focusNextElement(referenceElement);\n }\n } else {\n // backward\n if (document.activeElement === focusableElements[0] && referenceElement) {\n event.stopPropagation();\n event.preventDefault();\n referenceElement.focus();\n }\n }\n }\n }, [popperElement, referenceElement, props.isHidden, props.inPlace]);\n\n useEffect(() => {\n if (!props.inPlace && !props.isHidden && popperElement) {\n popperElement?.addEventListener(\"keydown\", onPopperElementKeyDown);\n\n }\n\n return () => {\n popperElement?.removeEventListener(\"keydown\", onPopperElementKeyDown);\n };\n }, [props.inPlace, props.isHidden, popperElement, onPopperElementKeyDown]);\n\n const renderTooltip = (isGlobal?: boolean) => {\n return !props.isHidden &&\n (\n {\n // stop event here, to prevent e.g. triggering sort change event in table\n e.stopPropagation();\n }}\n useFade={props.useFade}\n onAnimationEnd={props.onAnimationEnd}\n ref={(ref) => {\n handleRefHandlers(ref, setPopperElement, props.passRef);\n }}\n className={props.className}\n style={{\n ...usedPopper.styles.popper,\n ...props.style\n }}\n {...usedPopper.attributes.popper}\n data-testid={TestIds.Tooltip}>\n {!props.hideArrow && }\n \n {getValue(props.content)}\n \n );\n };\n\n const contextMenuRoot = !props.inPlace && (props.domPortalParent?.current ?? document.getElementById(\"context-menu-root\"));\n const tooltip = contextMenuRoot ? ReactDOM.createPortal(renderTooltip(true), contextMenuRoot) : renderTooltip();\n\n return (\n <>\n {props.children?.(setReferenceElement)}\n {tooltip}\n \n );\n});\n\nexport default PopperTooltip;","import styled from \"styled-components/macro\";\n\n\nexport const StyledPopperWrapper = styled.div`\n z-index: 1000;\n`;","import React from \"react\";\nimport { Manager, Modifier, Popper, Reference } from \"react-popper\";\nimport ReactDOM from \"react-dom\";\nimport * as PopperJS from \"@popperjs/core\";\nimport { StyledPopperWrapper } from \"./PopperWrapper.styles\";\n\nexport interface IPopperOptions {\n placement?: PopperJS.Placement;\n modifiers?: ReadonlyArray>;\n}\n\n// either use reference (element) for positioning,\n// or virtualElementReference e.g. if you want to position the popper relative to mouse\ninterface IReferenceProps {\n reference: (ref: React.Ref) => React.ReactNode;\n virtualElementReference?: never;\n}\n\ninterface IVirtualElementReferenceProps {\n reference?: never;\n virtualElementReference: HTMLElement | PopperJS.VirtualElement;\n}\n\ninterface IProps extends IPopperOptions {\n withoutPortal?: boolean;\n isHidden?: boolean;\n}\n\ntype TProps = IProps & (IReferenceProps | IVirtualElementReferenceProps);\n\nexport default class PopperWrapper extends React.PureComponent {\n static defaultProps = {\n placement: \"auto\"\n };\n\n render() {\n return (\n \n {!this.props.virtualElementReference &&\n \n {({ ref }) => {\n return this.props.reference(ref);\n }}\n \n }\n {!this.props.isHidden &&\n \n {(popperProps) => {\n if (!this.props.children) {\n return null;\n }\n\n let Object = (\n it throws exception on production\n style={popperProps.style}\n data-popper-placement={popperProps.placement}>\n {this.props.children}\n \n );\n\n if (!this.props.withoutPortal) {\n Object = ReactDOM.createPortal(\n Object,\n document.body\n );\n }\n\n return Object;\n }}\n \n }\n \n );\n }\n}","import styled from \"styled-components/macro\";\nimport { transparentize } from \"polished\";\nimport { T_PLAIN_small, T_PLAIN_small_hig, T_TITLE_5 } from \"../../global.style\";\nimport { ProgressBarColor } from \"./ProgressBar.utils\";\nimport { Theme } from \"../../theme\";\n\ninterface IProgressBar {\n $value?: number;\n $color?: ProgressBarColor;\n}\n\nconst getBackgroundColor = (color: ProgressBarColor, theme: Theme): string => {\n switch (color) {\n case ProgressBarColor.Gray:\n return theme.C_BG_progresswheeel_gray;\n default:\n return transparentize(0.5, theme.C_ACT_hover_without_opacity);\n }\n};\n\nconst getFillBackgroundColor = (color: ProgressBarColor, theme: Theme): string => {\n switch (color) {\n case ProgressBarColor.Semantic:\n return theme.C_BG_progressbar_semantic;\n case ProgressBarColor.Gray:\n return theme.C_ACT_thick_line;\n default:\n return theme.C_BG_progressbar;\n }\n};\n\nconst getBorderColor = (color: ProgressBarColor, theme: Theme): string => {\n switch (color) {\n case ProgressBarColor.Gray:\n return theme.C_ACT_thick_line;\n default:\n return transparentize(0.5, theme.C_ACT_main);\n }\n};\n\nexport const StyledProgressBar = styled.div`\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: center;\n`;\n\nexport const ProgressWrapper = styled.div`\n height: 8px;\n border-radius: ${props => props.theme.borderLargeRadius};\n\n background-color: ${props => getBackgroundColor(props.$color, props.theme)};\n border: 1px solid ${props => getBorderColor(props.$color, props.theme)};\n\n display: flex;\n position: relative;\n`;\n\nexport const ProgressValue = styled.div.attrs((props: IProgressBar) => ({\n style: {\n clipPath: `inset(0 ${100 - props.$value}% 0 0)`\n }\n}))`\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n position: absolute;\n top: -1px;\n left: -1px;\n border-radius: ${props => props.theme.borderLargeRadius};\n background: ${props => getFillBackgroundColor(props.$color, props.theme)};\n //transition: clip-path 0.7s ease-in-out;\n`;\n\nexport const StyledCanvas = styled.canvas.attrs({ height: \"8px\" })`\n position: absolute;\n width: calc(100% + 2px);\n top: -1px;\n left: -1px;\n border-radius: ${props => props.theme.borderLargeRadius};\n`;\n\nexport const Description = styled.div<{ flexDirection: \"row\" | \"column\" }>`\n display: flex;\n flex-direction: ${props => props.flexDirection};\n justify-content: center;\n align-items: center;\n margin-top: 5px;\n white-space: pre;\n\n span {\n ${T_PLAIN_small};\n\n &:last-child {\n ${T_PLAIN_small_hig};\n }\n }\n`;\n\nexport const StatusDescriptionFormatterWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 3px;\n ${T_TITLE_5};\n text-transform: none;\n`;","import React from \"react\";\nimport { Description, ProgressValue, ProgressWrapper, StyledCanvas, StyledProgressBar } from \"./ProgressBar.styles\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { withTheme } from \"styled-components/macro\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { transparentize } from \"polished\";\nimport TestIds from \"../../testIds\";\nimport { ProgressBarColor } from \"./ProgressBar.utils\";\nimport { roundToDecimalPlaces } from \"../../utils/general\";\n\nexport type TProgressBarDescFormatter = (value: number, parts: number) => string | React.ReactElement;\n\nexport interface IProps {\n value: number;\n parts: number;\n showMarks?: boolean;\n /** Displayed number of parts in description is value subtracted from parts. */\n isDescriptionInverseValue?: boolean;\n /** Changes the color scheme */\n color?: ProgressBarColor;\n /** Custom string before the value/of part */\n customDescription?: string;\n /** Fully custom description */\n descriptionFormatter?: TProgressBarDescFormatter;\n descriptionFlexDirection?: \"row\" | \"column\";\n style?: React.CSSProperties;\n className?: string;\n /** Custom description formatter */\n hideNumbers?: boolean;\n hideDescription?: boolean;\n}\n\ninterface IPropsExtended extends IProps, PropsWithTheme, WithTranslation {\n\n}\n\nclass ProgressBar extends React.PureComponent {\n static defaultProps: Partial = {\n descriptionFlexDirection: \"row\",\n color: ProgressBarColor.Default\n };\n\n canvasRef = React.createRef();\n\n componentDidMount() {\n if (this.canvasRef.current) {\n this.canvasRef.current.width = this.canvasRef.current.parentElement.offsetWidth;\n }\n\n this.renderCanvas();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\n this.renderCanvas();\n }\n\n renderCanvas = () => {\n if (!this.props.showMarks) {\n return;\n }\n\n const ctx = this.canvasRef.current.getContext(\"2d\");\n const width = this.canvasRef.current.width;\n const partWidth = width / this.props.parts;\n\n ctx.clearRect(0, 0, this.canvasRef.current.width, this.canvasRef.current.height);\n\n for (let i = 1; i < this.props.parts; i++) {\n let color = \"transparent\";\n\n if (i < this.props.value) {\n color = this.props.theme.C_ACT_light_line;\n } else if (i > this.props.value) {\n color = transparentize(0.5, this.props.theme.C_ACT_main);\n }\n\n ctx.fillStyle = color;\n ctx.fillRect(i * partWidth - 1, 0, 1, 8);\n }\n\n };\n\n getPercentage = () => {\n if (this.props.parts === 0) {\n return 100;\n }\n\n return this.props.value * 100 / this.props.parts;\n };\n\n renderDescription = () => {\n if (this.props.hideDescription){\n return null;\n }\n\n const { parts, value, hideNumbers } = this.props;\n const calcValue = roundToDecimalPlaces(0, this.props.isDescriptionInverseValue ? parts - value : value);\n\n if (this.props.descriptionFormatter) {\n const description = this.props.descriptionFormatter(calcValue, this.props.parts);\n return typeof description === \"string\" ? {description} : description;\n }\n\n const showNumbers = !hideNumbers && parts > 0;\n\n return (\n <>\n {this.props.customDescription ?? this.props.t(`Components:ProgressBar.${showNumbers ? \"Remaining\" : \"InProgress\"}`)} \n {showNumbers && {`${calcValue}/${parts}`}}\n \n );\n };\n\n render() {\n return (\n \n \n \n {this.props.showMarks &&\n \n }\n \n \n {this.renderDescription()}\n \n\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(withTheme(ProgressBar));","import { EntityTypeName, IBackgroundJobEntity } from \"@odata/GeneratedEntityTypes\";\nimport { BackgroundJobTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IconSize, Status } from \"../../enums\";\nimport { CloseIcon, FieldValidationPositiveIcon, FieldValidationWarningIcon } from \"../icon\";\nimport { TProgressBarDescFormatter } from \"./ProgressBar\";\nimport { StatusDescriptionFormatterWrapper } from \"./ProgressBar.styles\";\n\nexport enum ProgressBarColor {\n Default = \"Default\",\n Semantic = \"Semantic\",\n Gray = \"Gray\"\n}\n\nconst progressStatusFormatter = (status: Status, value: number, parts: number): React.ReactElement => {\n const Icon = status === Status.Success ? FieldValidationPositiveIcon : status === Status.Warning ? FieldValidationWarningIcon : CloseIcon;\n\n return (\n \n \n {i18next.t(`Components:ProgressBar.Description${status}`)}\n \n );\n};\n\nexport const progressSuccessFormatter: TProgressBarDescFormatter = (value: number, parts: number): React.ReactElement => {\n return progressStatusFormatter(Status.Success, value, parts);\n};\n\nexport const progressWarningFormatter: TProgressBarDescFormatter = (value: number, parts: number): React.ReactElement => {\n return progressStatusFormatter(Status.Warning, value, parts);\n};\n\nexport const progressErrorFormatter: TProgressBarDescFormatter = (value: number, parts: number): React.ReactElement => {\n return progressStatusFormatter(Status.Error, value, parts);\n};\n\nexport interface IPostMultipleDraftsParameters {\n DraftIds: number[];\n}\n\nexport interface IPostMultipleDraftsFailedWithWarningResult {\n FailedDraftsCount: number;\n TotalDraftsCount: number;\n SuccessfullyPostedDraftsIds: number[];\n}\n\nexport interface IPostMultipleDraftsParameters {\n EntityTypeCode: EntityTypeName;\n}\n\nexport const getProgressFinishedWithWarningFormatter = (job: IBackgroundJobEntity): TProgressBarDescFormatter => {\n const result = JSON.parse(job.Result) as IPostMultipleDraftsFailedWithWarningResult;\n const failedDraftCounts = result.FailedDraftsCount;\n\n return (value: number, parts: number): React.ReactElement => {\n return (\n \n \n {i18next.t(\"Components:ProgressBar.PostMultipleDraftsFailedWithWarning\", { count: failedDraftCounts })}\n \n );\n };\n};\n\nexport const getBackgroundJobTitle = (job: IBackgroundJobEntity): string => {\n if (job.TypeCode === BackgroundJobTypeCode.PostMultipleDrafts && job.Parameters) {\n try {\n const parameters = JSON.parse(job.Parameters) as IPostMultipleDraftsParameters;\n const key = `BackgroundJobs:PostMultipleDrafts.Title${parameters.EntityTypeCode}`;\n\n return i18next.exists(key) ? i18next.t(key) : i18next.t(\"BackgroundJobs:PostMultipleDrafts.Title\");\n } catch (e) {\n return i18next.t(\"BackgroundJobs:PostMultipleDrafts.Title\");\n }\n }\n\n return i18next.t(`${getEnumNameSpaceName(EntityTypeName.BackgroundJobType)}:${job.TypeCode}`);\n};","import React from \"react\";\nimport { PurchaseDialogPaymentType } from \"./PurchaseWizardDialog.utils\";\nimport { ConfirmationDialog } from \"../dialog/ConfirmationDialog\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n PurchaseFinishedContentWrapper,\n PurchaseFinishedDescription,\n PurchaseFinishedImageWrapper,\n PurchaseFinishedTitle\n} from \"./PurchaseWizard.styles\";\nimport { FireworksAnim } from \"../../animations/Animations\";\n\ninterface IProps {\n type: PurchaseDialogPaymentType;\n onClose: () => void;\n}\n\nconst PurchaseFinishedDialog: React.FC = (props: IProps) => {\n const { type, onClose } = props;\n const { t } = useTranslation([\"Subscriptions\"]);\n const isCard = type === PurchaseDialogPaymentType.Card;\n\n return (\n \n \n \n {t(`Subscriptions:ProductSelection.${isCard ? \"PaymentCardFinishedTitle\" : \"PaymentWireFinishedTitle\"}`)}\n \n \n {t(`Subscriptions:ProductSelection.${isCard ? \"PaymentCardFinishedDescription\" : \"PaymentWireFinishedDescription\"}`)}\n \n \n \n \n \n \n );\n};\n\nexport default PurchaseFinishedDialog;","import styled, { css } from \"styled-components/macro\";\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n T_PLAIN_big,\n T_PLAIN_small,\n T_TITLE_2,\n T_TITLE_3_normal,\n T_TITLE_4_NORMAL\n} from \"../../global.style\";\nimport { StyledSeparator } from \"../separator/Separator.styles\";\nimport { StyledView, StyledViewWrapper } from \"../../views/View.styles\";\n\nexport const DialogHeader = styled.div`\n ${T_TITLE_2};\n margin-bottom: 32px;\n`;\n\nexport const ProductTypeSelectionScreenWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: fit-content;\n`;\n\nexport const PurchaseWizardTileFlex = styled.div`\n display: flex;\n gap: 17px;\n justify-content: center;\n margin: 0 51px 16px;\n min-width: fit-content;\n`;\n\ninterface IStyledProductTypeItem {\n $isSelected: boolean;\n $isDisabled: boolean;\n $isCentered: boolean;\n $isStandaloneUse: boolean;\n}\n\nexport const StyledProductTypeItem = styled.div`\n ${T_PLAIN_small};\n position: relative;\n width: 420px;\n min-width: 390px;\n\n ${props => !props.$isStandaloneUse && css`\n height: 450px;\n padding: 38px;\n border-radius: 15px;\n box-shadow: 0 0 18px 0 rgba(0, 0, 0, ${props => props.theme.dashboard_tile_shadow_opacity});\n background-color: ${props => props.$isSelected ? props.theme.C_BG_row_field_hover : props.theme.C_BG_menu};\n border: 1px solid ${props => props.$isSelected ? props.theme.C_ACT_main : \"transparent\"};\n cursor: ${props => props.$isDisabled ? \"default\" : \"pointer\"};\n`};\n\n display: flex;\n flex-direction: column;\n\n ${props => props.$isCentered && css`\n align-items: center;\n `};\n\n & ${StyledSeparator} {\n flex: 0 0 auto;\n margin: 17px 0 12px;\n }\n\n ${props => props.$isDisabled && getDisabledStyle(props.$isDisabled)};\n ${getFocusBorderElement({ keyboardOnly: true, offset: -5 })};\n`;\n\nexport const SubItemWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\n\nexport const ItemTitle = styled.div<{ $isStandaloneUse: boolean; }>`\n ${T_TITLE_2};\n margin-bottom: 5px;\n\n ${props => !props.$isStandaloneUse && css`\n min-width: max-content;\n `};\n\n ${props => props.$isStandaloneUse && css`\n max-width: 254px;\n text-align: center;\n `};\n`;\n\nexport const ItemDescription = styled.div`\n ${T_PLAIN_small};\n height: 14px;\n margin-bottom: 55px;\n opacity: 0.5;\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nexport const SubItemTitleWrapper = styled.div`\n display: flex;\n flex-direction: column;\n text-align: left;\n`;\n\nexport const SubItemTitle = styled.div`\n ${T_TITLE_3_normal};\n`;\n\nexport const SubItemPriceWrapper = styled.div`\n display: flex;\n flex-direction: column;\n text-align: right;\n`;\n\nexport const SubItemPrice = styled.div`\n ${T_TITLE_2};\n font-weight: 800;\n`;\n\nexport const SubItemDescription = styled.div`\n ${T_PLAIN_big};\n font-weight: 300;\n margin-top: 5px;\n`;\n\nexport const SmallDescription = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n white-space: pre-wrap;\n text-align: center;\n ${T_PLAIN_small};\n\n & {\n svg {\n margin-right: 2px;\n margin-top: -2px;\n }\n }\n`;\n\nexport const PlugAndPlayFormWrapper = styled.div`\n ${StyledViewWrapper}, ${StyledView} {\n height: unset;\n }\n`;\n\nexport const ConsentCheckboxWrapper = styled.div`\n margin-top: 30px;\n`;\n\nexport const PaymentTypeImageWrapper = styled.div`\n position: relative;\n width: 198px;\n height: 198px;\n top: -10px\n`;\n\nexport const PaymentTypeDescription = styled.div`\n position: relative;\n max-width: 305px;\n text-align: center;\n ${T_PLAIN_small};\n white-space: pre-wrap;\n`;\n\nexport const PurchaseFinishedContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n overflow: hidden;\n`;\n\nexport const PurchaseFinishedTitle = styled.div`\n ${T_TITLE_2};\n margin-bottom: 15px;\n`;\n\nexport const PurchaseFinishedDescription = styled.div`\n ${T_TITLE_4_NORMAL};\n margin-bottom: 15px;\n`;\n\nexport const PurchaseFinishedImageWrapper = styled.div`\n position: relative;\n top: -35px;\n width: 200px;\n height: 200px;\n`;","import { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { ITenantEntity } from \"@odata/GeneratedEntityTypes\";\nimport { individualSettingsCompanyPath } from \"./PurchaseWizardDialog.utils\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass PurchaseWizardDialogFormView extends FormViewForExtend {\n onAfterLoad() {\n const companies = this.props.storage.context?.getData()?.companies;\n\n if (companies?.length > 1) {\n const fieldInfo = this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(individualSettingsCompanyPath));\n\n fieldInfo.fieldSettings.items = companies.map(company => {\n return {\n id: company.Id,\n label: company.Name\n };\n });\n }\n\n return super.onAfterLoad();\n }\n}\n\nexport default withPermissionContext(PurchaseWizardDialogFormView);\n","import { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { createBindingContext, createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n AddressEntity,\n BillingAddressEntity,\n BillingPricingEntity,\n EntitySetName,\n IBillingPricingEntity,\n ITenantEntity,\n TenantEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BillingModuleTypeCode, CurrencyCode, ProductCode } from \"@odata/GeneratedEnums\";\nimport { parseError } from \"@odata/ODataParser\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { getDefinition } from \"@pages/admin/subscriptions/subpages/Invoicing.def\";\nimport { isEduLicenceWaitingForConfirmation } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport { IDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\n\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, IconSize, LabelStatus, Status } from \"../../enums\";\nimport { EvalaTermsAndConditionsEduLink, EvalaTermsAndConditionsLink } from \"../../login/Login.utils\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport { ROUTE_SUBSCRIPTIONS_PLAN } from \"../../routes\";\nimport billingPayCardSvg from \"../../svg/menu/billingPayCard.svg\";\nimport billingPayWireSvg from \"../../svg/menu/billingPayWire.svg\";\nimport TestIds from \"../../testIds\";\nimport Currency from \"../../types/Currency\";\nimport { getUtcDate } from \"../../types/Date\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { FormViewForExtend } from \"../../views/formView/FormView\";\nimport PlugAndPlayForm from \"../../views/formView/PlugAndPlayForm\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { WithAlert, withAlert } from \"../alert/withAlert\";\nimport { Button } from \"../button\";\nimport Clickable from \"../clickable\";\nimport Dialog from \"../dialog\";\nimport { WithPromisedComponent, withPromisedComponent } from \"../dialog/withPromisedComponent\";\nimport { ArrowIcon, InfoIcon } from \"../icon\";\nimport Checkbox, { ICheckboxChange } from \"../inputs/checkbox\";\nimport Field from \"../inputs/field\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\nimport Input, { IInputOnBlurEvent, IInputOnChangeEvent } from \"../inputs/input\";\nimport { Separator } from \"../separator/Separator\";\nimport { IFieldDefFn, IGetValueArgs, TGetValueFn } from \"../smart/FieldInfo\";\nimport { phoneNumberInputFormatter, phoneNumberIsValid, phoneNumberParser } from \"../smart/GeneralFieldDefinition\";\nimport { SvgImage } from \"../svgImage/SvgImage\";\nimport Text from \"../text\";\nimport PurchaseFinishedDialog from \"./PurchaseFinishedDialog\";\nimport {\n ConsentCheckboxWrapper,\n DialogHeader,\n PaymentTypeDescription,\n PaymentTypeImageWrapper,\n PlugAndPlayFormWrapper,\n ProductTypeSelectionScreenWrapper,\n PurchaseWizardTileFlex,\n SmallDescription,\n SubItemDescription,\n SubItemPrice,\n SubItemPriceWrapper,\n SubItemTitle,\n SubItemTitleWrapper,\n SubItemWrapper\n} from \"./PurchaseWizard.styles\";\nimport {\n consentPath,\n individualSettingsCompanyPath,\n individualSettingsTextPath,\n IPurchaseEvalaResponseData,\n PurchaseDialogPaymentType,\n purchaseEvala,\n PurchaseWizardDialogScreen\n} from \"./PurchaseWizardDialog.utils\";\nimport PurchaseWizardDialogFormView from \"./PurchaseWizardDialogFormView\";\nimport PurchaseWizardTile from \"./PurchaseWizardTile\";\n\ninterface IProps extends WithTranslation, WithPromisedComponent, WithOData, WithAlert, RouteComponentProps {\n onClose: (finished: boolean) => void;\n onAfterTenantSave?: () => Promise;\n}\n\ninterface IState {\n isBusy: boolean;\n selectedProduct: ProductCode;\n screen: PurchaseWizardDialogScreen;\n paymentType: PurchaseDialogPaymentType;\n isConsentChecked: boolean;\n tenant: Partial;\n phoneNumber: string;\n phoneNumberError: IValidationError;\n showWireFinished: boolean;\n showEvalaPurchased: boolean;\n productPrices: IBillingPricingEntity[];\n individualCompanyId: number;\n}\n\nclass PurchaseWizardDialog extends React.PureComponent {\n static contextType = AppContext;\n\n formRef = React.createRef>();\n\n constructor(props: IProps, context: IAppContext) {\n super(props);\n\n this.state = {\n isBusy: true,\n selectedProduct: ProductCode.EvalaForAccountants,\n paymentType: PurchaseDialogPaymentType.Card,\n screen: PurchaseWizardDialogScreen.SelectProductType,\n isConsentChecked: true,\n tenant: null,\n phoneNumber: null,\n phoneNumberError: null,\n showWireFinished: false,\n showEvalaPurchased: false,\n productPrices: null,\n individualCompanyId: null\n };\n }\n\n componentDidMount() {\n this.init();\n }\n\n init = async (): Promise => {\n const context = this.context as IAppContext;\n const today = formatDateToDateString(getUtcDate());\n const reqTenant = this.props.oData.getEntitySetWrapper(EntitySetName.Tenants).query(context.getData().tenant.Id)\n .expand(TenantEntity.BillingAddress, q => q.expand(AddressEntity.Country))\n .fetchData();\n const reqProductPrices = this.props.oData.getEntitySetWrapper(EntitySetName.BillingPricings).query()\n .filter(`${BillingPricingEntity.DateValidFrom} le ${today} AND (${BillingPricingEntity.DateValidTo} ge ${today} or ${BillingPricingEntity.DateValidTo} eq null)`)\n .fetchData();\n const [resTenant, resProductPrices] = await Promise.all([reqTenant, reqProductPrices]);\n\n const tenant = resTenant.value;\n const productPrices = resProductPrices.value;\n\n // for some reason, DateCreated is not readonly,\n // and currently our formatDateToDateTimeOffsetString sends wrong value on patch and backend fails\n // => delete DateCreated\n delete tenant.DateCreated;\n\n if (!tenant.PhoneNumber) {\n tenant.PhoneNumber = \"+420\";\n }\n\n this.setState({\n tenant,\n productPrices,\n isBusy: false\n });\n\n if (this.isEdu) {\n this.setState({\n screen: PurchaseWizardDialogScreen.InvoicingInfo\n });\n }\n };\n\n get isEdu(): boolean {\n return isEduLicenceWaitingForConfirmation(this.context.getData().subscription);\n }\n\n getTenantBc = memoizeOne(() => {\n const context = this.context as IAppContext;\n\n return createBindingContext(EntitySetName.Tenants, this.props.oData.getMetadata()).addKey(context.getData().tenant.Id);\n }, () => {\n const context = this.context as IAppContext;\n\n return [context.getData().tenant.Id];\n });\n\n formatAmount = (amount: number): string => {\n return Currency.format(amount, {\n currency: CurrencyCode.CzechKoruna,\n maximumFractionDigits: 0\n });\n };\n\n // i think this is used to prevent fetching data every time\n // the form screen is rendered (form of caching)\n syncFormEntityToState = (): void => {\n this.setState({\n tenant: this.formRef.current.entity,\n phoneNumber: this.formRef.current.entity.PhoneNumber\n });\n };\n\n handleProductSelection = (id: string): void => {\n this.setState({\n selectedProduct: id as ProductCode\n });\n };\n\n handlePaymentTypeSelection = (id: string): void => {\n const purchaseType = id as PurchaseDialogPaymentType;\n\n if (purchaseType === PurchaseDialogPaymentType.Card) {\n this.setState({\n phoneNumberError: null\n });\n }\n\n this.setState({\n paymentType: purchaseType\n });\n };\n\n handleConfirm = async (): Promise => {\n if (this.state.screen === PurchaseWizardDialogScreen.InvoicingInfo) {\n this.syncFormEntityToState();\n\n this.setState({\n isBusy: true\n });\n\n const individualCompanyId = (this.formRef.current.entity as IEntity)[individualSettingsCompanyPath] as number;\n\n this.formRef.current.entity.BillingAddress.TenantId = this.formRef.current.entity.Id;\n\n const wasSaved = await this.formRef.current.save({\n updateEnabledFor: [TenantEntity.BillingAddress]\n });\n\n if (this.props.onAfterTenantSave) {\n try {\n await this.props.onAfterTenantSave();\n } catch (e) {\n const error = parseError(e);\n const errorAlert = getAlertFromError(error);\n\n this.setState({\n isBusy: false\n });\n this.props.setAlert({\n ...errorAlert,\n // detailData: data,\n });\n\n return;\n }\n }\n\n if (wasSaved && this.isEdu) {\n this.setState({\n showEvalaPurchased: true\n });\n }\n\n this.setState({\n isBusy: false,\n individualCompanyId\n });\n\n if (!wasSaved) {\n return;\n }\n } else if (this.state.screen === PurchaseWizardDialogScreen.PaymentType) {\n const productCode = this.state.selectedProduct;\n const individualCompanyId = this.state.individualCompanyId;\n\n if (this.state.paymentType === PurchaseDialogPaymentType.Card) {\n this.setState({\n isBusy: true\n });\n\n const res = await purchaseEvala({\n paymentType: PurchaseDialogPaymentType.Card,\n productCode: productCode,\n phoneNumber: this.state.phoneNumber,\n individualCompanyId: individualCompanyId\n });\n const data = await res.json();\n\n if (res.ok) {\n window.location.href = (data as IPurchaseEvalaResponseData).Url;\n return;\n } else {\n const errorObject = parseError(data);\n const errorAlert = getAlertFromError(errorObject);\n\n this.props.setAlert({\n ...errorAlert,\n detailData: data,\n });\n\n this.setState({\n isBusy: false\n });\n return;\n }\n } else {\n const context = this.context as IAppContext;\n const isPhoneNumberValid = this.isPhoneNumberValid();\n\n if (!isPhoneNumberValid) {\n this.setPhoneNumberError(true);\n return;\n } else {\n this.setState({\n isBusy: true\n });\n\n const res = await purchaseEvala({\n paymentType: PurchaseDialogPaymentType.Wire,\n productCode: productCode,\n phoneNumber: this.state.phoneNumber,\n individualCompanyId: individualCompanyId\n });\n\n if (!res.ok) {\n const error = await res.json();\n this.props.setAlert({\n status: Status.Error,\n title: this.props.t(\"Common:Errors.ErrorHappened\"),\n detailData: error\n });\n this.setState({\n isBusy: false\n });\n return;\n } else {\n const context = this.context as IAppContext;\n\n // propagate the updated ProductCode into the context subscription\n await context.updateTenantAndSubscription();\n\n // some companies could've been deleted => update\n await context.updateCompanies();\n\n this.setState({\n showWireFinished: true,\n isBusy: false\n });\n }\n }\n }\n }\n\n this.setState({\n screen: this.state.screen + 1\n });\n };\n\n handleCancel = (): void => {\n this.props.onClose(false);\n };\n\n handleBack = (): void => {\n this.props.setAlert(null);\n\n if (this.state.screen === PurchaseWizardDialogScreen.InvoicingInfo) {\n this.syncFormEntityToState();\n }\n\n this.setState({\n screen: this.state.screen - 1\n });\n };\n\n getBillingInfoDefinition = (): IDefinition => {\n const tenantFormDef = getDefinition(this.context);\n const addressGroup = tenantFormDef.form.groups.find(group => group.id === \"address\");\n const rows = addressGroup.rows;\n const groups = [{\n ...addressGroup,\n rows\n }];\n\n const hasCompaniesFn: TGetValueFn = (args: IGetValueArgs) => {\n return args.storage.context.getData()?.companies?.length > 1;\n };\n\n if (this.state.selectedProduct !== ProductCode.EvalaForCompanies) {\n rows.push([{ id: consentPath }]);\n } else {\n groups.push({\n id: \"individualSettings\",\n title: i18next.t(\"Subscriptions:ProductSelection.IndividualSettingsTitle\"),\n isVisible: hasCompaniesFn,\n rows: [\n [{ id: individualSettingsTextPath }],\n [{ id: individualSettingsCompanyPath }]\n ]\n });\n }\n\n tenantFormDef.form.fieldDefinition[TenantEntity.LegalNumber] = {\n ...tenantFormDef.form.fieldDefinition[TenantEntity.LegalNumber],\n isRequired: true\n };\n\n if (this.isEdu) {\n tenantFormDef.form.fieldDefinition[createPath(TenantEntity.BillingAddress, BillingAddressEntity.Name)] = {\n ...tenantFormDef.form.fieldDefinition[createPath(TenantEntity.BillingAddress, BillingAddressEntity.Name)],\n label: this.props.t(`Subscriptions:ProductSelection.EduInstitutionName`),\n width: BasicInputSizes.XL\n };\n }\n\n return {\n ...tenantFormDef,\n form: {\n ...tenantFormDef.form,\n fieldDefinition: {\n ...tenantFormDef.form.fieldDefinition,\n [consentPath]: {\n type: FieldType.Custom,\n labelStatus: LabelStatus.Removed,\n render: (args: IFieldDefFn) => {\n const handleChange = (event: ICheckboxChange) => {\n this.setState({\n isConsentChecked: event.value\n });\n args.storage.refresh();\n };\n\n return (\n \n \n {`${this.props.t(`Subscriptions:ProductSelection.${this.isEdu ? \"ConsentPrefixEdu\" : \"ConsentPrefix\"}`)} `}\n \n {this.props.t(`Subscriptions:ProductSelection.${this.isEdu ? \"ConsentVOPEdu\" : \"ConsentVOP\"}`)}\n \n }/>\n \n );\n }\n },\n [individualSettingsTextPath]: {\n type: FieldType.Custom,\n render: () => {\n return (\n \n {this.props.t(\"Subscriptions:ProductSelection.IndividualSettingsDescription\")}\n \n );\n }\n\n },\n [individualSettingsCompanyPath]: {\n label: this.props.t(\"Subscriptions:ProductSelection.IndividualSettingsCompany\"),\n type: FieldType.ComboBox,\n isVisible: hasCompaniesFn,\n isRequired: true,\n width: BasicInputSizes.L\n }\n },\n groups\n }\n };\n };\n\n getProductTypePrice = (productTypeCode: BillingModuleTypeCode): number => {\n const productPrice = this.state.productPrices.find(p => p.BillingModuleTypeCode === productTypeCode);\n\n if (!productPrice) {\n return null;\n }\n\n return productPrice.Price;\n };\n\n renderProductTypeSelectionScreen = (): React.ReactElement => {\n if (!this.state.productPrices) {\n return null;\n }\n\n return (\n \n \n \n \n \n {this.props.t(\"Subscriptions:ProductSelection.AccountingForBusiness\")}\n \n \n \n {this.formatAmount(this.getProductTypePrice(BillingModuleTypeCode.DoubleEntry))}\n \n \n {this.props.t(\"Subscriptions:ProductSelection.Customer\")} / {this.props.t(\"Subscriptions:ProductSelection.Month\")}\n \n \n \n\n \n\n \n \n {this.props.t(\"Subscriptions:ProductSelection.CashBasisAccounting\")}\n \n \n \n {this.formatAmount(this.getProductTypePrice(BillingModuleTypeCode.CashBased))}\n \n \n {this.props.t(\"Subscriptions:ProductSelection.Customer\")} / {this.props.t(\"Subscriptions:ProductSelection.Month\")}\n \n \n \n\n \n\n \n \n {this.props.t(\"Subscriptions:ProductSelection.ArchivedAgenda\")}\n \n \n \n {this.formatAmount(this.getProductTypePrice(BillingModuleTypeCode.Archived))}\n \n \n {this.props.t(\"Subscriptions:ProductSelection.Customer\")} / {this.props.t(\"Subscriptions:ProductSelection.Month\")}\n \n \n \n \n \n \n \n \n {this.props.t(\"Subscriptions:ProductSelection.AccountingForBusiness\")}\n \n \n \n \n {this.formatAmount(this.getProductTypePrice(BillingModuleTypeCode.IndividualDoubleEntry))}\n \n \n {this.props.t(\"Subscriptions:ProductSelection.User\")} / {this.props.t(\"Subscriptions:ProductSelection.Month\")}\n \n \n \n\n \n\n \n \n \n {this.props.t(\"Subscriptions:ProductSelection.CashBasisAccounting\")}\n \n \n \n \n {this.formatAmount(this.getProductTypePrice(BillingModuleTypeCode.IndividualCashBased))}\n \n \n {this.props.t(\"Subscriptions:ProductSelection.User\")} / {this.props.t(\"Subscriptions:ProductSelection.Month\")}\n \n \n \n \n \n \n \n \n \n }}/>\n \n \n \n );\n };\n\n renderBillingInfoScreen = () => {\n return (\n // hack to prevent form from having scrollbar (by removing height 100%)\n \n \n \n );\n };\n\n isPhoneNumberValid = (): boolean => {\n return phoneNumberIsValid(this.state.phoneNumber);\n };\n\n setPhoneNumberError = (isError: boolean) => {\n this.setState({\n phoneNumberError: isError ? {\n message: this.props.t(\"Common:Validation.WrongNumber\")\n } : null\n });\n };\n\n handlePhoneNumberChange = (e: IInputOnChangeEvent): void => {\n this.setState({\n phoneNumber: e.value\n });\n };\n\n handlePhoneNumberBlur = (e: IInputOnBlurEvent): void => {\n this.setPhoneNumberError(!this.isPhoneNumberValid());\n };\n\n handleFinishedDialogClose = (): void => {\n if (this.props.history.location.pathname !== ROUTE_SUBSCRIPTIONS_PLAN) {\n // Wire mode selected - current company could've been removed\n // => redirect to ROUTE_SUBSCRIPTIONS_PLAN just to show safe page\n const context = this.context as IAppContext;\n // change to our agenda, just to be sure\n context.setCurrentCompanyId(null);\n\n // redirect to /org/plan if not already there\n this.props.history.push(ROUTE_SUBSCRIPTIONS_PLAN);\n }\n this.props.onClose(true);\n };\n\n renderPaymentTypeScreen = (): React.ReactElement => {\n return (\n \n \n \n \n \n \n {this.props.t(\"Subscriptions:ProductSelection.PaymentCardDescription\")}\n \n \n \n \n \n \n \n {this.props.t(\"Subscriptions:ProductSelection.PaymentWireDescription\")}\n \n \n \n \n \n \n \n \n );\n };\n\n renderHeader = () => {\n if (this.isEdu) {\n return (\n \n {this.props.t(`Subscriptions:ProductSelection.HeaderEdu`)}\n \n );\n }\n\n let titleKey: string;\n\n switch (this.state.screen) {\n case PurchaseWizardDialogScreen.SelectProductType:\n titleKey = \"HeaderSelectPlanType\";\n break;\n\n case PurchaseWizardDialogScreen.InvoicingInfo:\n titleKey = \"HeaderInvoicingInfo\";\n break;\n case PurchaseWizardDialogScreen.PaymentType:\n titleKey = \"HeaderPaymentType\";\n break;\n }\n\n const title = this.props.t(`Subscriptions:ProductSelection.${titleKey}`);\n\n return (\n \n {`${this.state.screen + 1}/${Object.keys(PurchaseWizardDialogScreen).filter(key => isNaN(Number(key))).length}: ${title}`}\n \n );\n };\n\n renderFooter = () => {\n if (this.isEdu) {\n return (\n \n \n );\n }\n\n let isContinueDisabled = false;\n\n if (this.state.screen === PurchaseWizardDialogScreen.InvoicingInfo) {\n isContinueDisabled = !this.state.isConsentChecked && this.state.selectedProduct !== ProductCode.EvalaForCompanies;\n }\n\n return (\n \n {this.state.screen > 0 ?\n \n : null}\n \n );\n };\n\n renderScreen = (): React.ReactElement => {\n switch (this.state.screen) {\n case PurchaseWizardDialogScreen.SelectProductType:\n return this.renderProductTypeSelectionScreen();\n case PurchaseWizardDialogScreen.InvoicingInfo:\n return this.renderBillingInfoScreen();\n case PurchaseWizardDialogScreen.PaymentType:\n return this.renderPaymentTypeScreen();\n }\n };\n\n render() {\n if (!this.props.tReady) {\n return null;\n }\n\n if (this.state.showWireFinished || this.state.showEvalaPurchased) {\n return ;\n }\n\n return (\n \n {this.renderHeader()}\n {this.props.alert}\n {this.renderScreen()}\n \n );\n }\n}\n\nexport default withRouter(withTranslation([\"Subscriptions\", \"Common\"])(withPromisedComponent(withOData(withAlert({ isFullWidth: true, isOneLiner: true })(PurchaseWizardDialog)))));","import BindingContext from \"../../odata/BindingContext\";\nimport { REST_API_URL } from \"../../constants\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport { ProductCode } from \"@odata/GeneratedEnums\";\nimport { isDefined } from \"@utils/general\";\nimport { addCompanyIdToUrl } from \"../../contexts/appContext/AppContext.utils\";\n\nexport enum PurchaseWizardDialogScreen {\n SelectProductType,\n InvoicingInfo,\n PaymentType\n}\n\nexport enum PurchaseDialogPaymentType {\n Card = \"Card\",\n Wire = \"Wire\"\n}\n\nexport const consentPath = BindingContext.localContext(\"consent\");\nexport const individualSettingsTextPath = BindingContext.localContext(\"individualSettingsText\");\nexport const individualSettingsCompanyPath = BindingContext.localContext(\"individualSettingsCompany\");\n\nconst PURCHASE_API = `${REST_API_URL}/Subscription/Purchase`;\n\ninterface IPurchaseEvalaArgs {\n productCode: ProductCode;\n paymentType: PurchaseDialogPaymentType;\n phoneNumber?: string;\n individualCompanyId?: number;\n}\n\nexport interface IPurchaseEvalaResponseData {\n Url: string;\n}\n\nexport const purchaseEvala = async (args: IPurchaseEvalaArgs) => {\n let url = `${PURCHASE_API}/${args.paymentType}`;\n\n if (isDefined(args.individualCompanyId)) {\n url = addCompanyIdToUrl(url, args.individualCompanyId);\n }\n\n return await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n PhoneNumber: args.phoneNumber,\n ProductCode: args.productCode\n })\n });\n};","import React from \"react\";\nimport { ItemDescription, ItemTitle, StyledProductTypeItem } from \"./PurchaseWizard.styles\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n id?: string;\n title: string;\n description?: string;\n isCentered?: boolean;\n isDisabled?: boolean;\n isSelected?: boolean;\n isWithoutDescription?: boolean;\n // used in dialog as standalone informative item,\n // without any additional actions\n isStandaloneUse?: boolean;\n onClick?: (id: string) => void;\n}\n\nexport default class PurchaseWizardTile extends React.PureComponent {\n handleClick = (): void => {\n this.props.onClick?.(this.props.id);\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === KeyName.Enter) {\n this.handleClick();\n }\n };\n\n render() {\n return (\n \n \n {this.props.title}\n \n {!this.props.isWithoutDescription &&\n {this.props.description}}\n {this.props.children}\n \n );\n }\n}\n\nexport type { IProps as IProductTypeItemProps };","import styled from \"styled-components/macro\";\nimport { T_TITLE_2, T_TITLE_4, T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { ListType } from \"./ReadOnlyListItem\";\n\n\nexport const TitleStyled = styled.div`\n ${T_TITLE_2};\n margin-bottom: 20px;\n`;\n\nexport const ListStyled = styled.div<{ $withoutPadding?: boolean }>`\n display: flex;\n flex-wrap: wrap;\n padding-left: ${props => props.$withoutPadding ? 0 : \"12px\"};\n`;\n\nexport const ItemStyled = styled.div<{ type: ListType }>`\n width: fit-content;\n margin-right: 32px;\n align-items: flex-start;\n margin-bottom: ${props => props.type === ListType.Condensed ? \"17px\" : \"24px\"};\n`;\n\nexport const ItemLabel = styled.div<{ type: ListType }>`\n ${T_TITLE_4};\n margin-bottom: ${props => props.type === ListType.Condensed ? \"9px\" : \"12px\"};\n`;\n\nexport const ItemValue = styled.div`\n position: relative; // to support drilldown link in read-only list with correct caret position\n ${T_TITLE_4_NORMAL};\n white-space: nowrap;\n`;\n\nexport const ItemDescription = styled.span`\n color: ${props => props.theme.C_ACT_thick_line};\n`;\n","import React from \"react\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport { DASH_CHARACTER } from \"../../constants\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { ListStyled, TitleStyled } from \"./ReadOnlyList.styles\";\nimport { IProps as IListItemProps, IReadOnlyListItem, ReadOnlyListItem } from \"./ReadOnlyListItem\";\n\n// Empty characted\nexport const EMPTY_DASH = \"-\";\n\n/**\n * Formats value with \"empty\" fallback\n * @param value\n * @param formatter\n */\nexport function formatHeaderValue(value: T, formatter?: ((value: T) => string)): string {\n return value ? (formatter ? formatter(value) : value as string) : EMPTY_DASH;\n}\n\nexport interface IProps extends PropsWithTheme, Pick {\n title?: string;\n data: IReadOnlyListItem[];\n withoutPadding?: boolean;\n}\n\nclass ReadOnlyList extends React.PureComponent {\n render() {\n return (\n <>\n {this.props.title && ({this.props.title})}\n \n {this.props.data.map((item, idx) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default withTheme(ReadOnlyList);","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { ItemDescription, ItemLabel, ItemStyled, ItemValue } from \"./ReadOnlyList.styles\";\n\nexport enum ListType {\n Standard,\n Condensed\n}\n\nexport interface IReadOnlyListItem {\n label: string;\n value: string | React.ReactElement;\n description?: string;\n}\n\nexport interface IProps extends IReadOnlyListItem {\n type?: ListType;\n}\n\nexport function ReadOnlyListItem({ label, value, type, description }: IProps): React.ReactElement {\n return (\n \n {label}:\n {value}\n {description && {description}}\n \n \n );\n}","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","// Helper function to retrieve options from element attributes\nexport const getOptions = function(obj) {\n const options = Array.prototype.reduce.call(\n obj,\n (acc, attribute) => {\n const option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n const key = option[1].replace(/\\W+(.)/g, (x, chr) => chr.toUpperCase());\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n },\n {}\n );\n return options;\n};\n\nexport function getElementWindow(element) {\n if (\n !element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView\n ) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\n\nexport function getElementDocument(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n","import canUseDOM from 'can-use-dom';\nimport { getElementDocument } from \"./helpers\";\n\nlet cachedScrollbarWidth = null;\nlet cachedDevicePixelRatio = null;\n\nif (canUseDOM) {\n window.addEventListener('resize', () => {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\n\nexport default function scrollbarWidth(el) {\n if (cachedScrollbarWidth === null) {\n \n const document = getElementDocument(el);\n \n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n const body = document.body;\n const box = document.createElement('div');\n\n box.classList.add('simplebar-hide-scrollbar');\n\n body.appendChild(box);\n\n const width = box.getBoundingClientRect().right;\n\n body.removeChild(box);\n\n cachedScrollbarWidth = width;\n }\n\n return cachedScrollbarWidth;\n}\n","import throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\nimport memoize from 'lodash.memoize';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport canUseDOM from 'can-use-dom';\nimport scrollbarWidth from './scrollbar-width';\nimport { getElementWindow, getElementDocument } from './helpers';\n\nexport default class SimpleBar {\n constructor(element, options) {\n this.el = element;\n this.minScrollbarWidth = 20;\n this.options = { ...SimpleBar.defaultOptions, ...options };\n this.classNames = {\n ...SimpleBar.defaultOptions.classNames,\n ...this.options.classNames\n };\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n }\n };\n this.removePreventClickId = null;\n\n // Don't re-instantiate over an existing one\n if (SimpleBar.instances.has(this.el)) {\n return;\n }\n\n this.recalculate = throttle(this.recalculate.bind(this), 64);\n this.onMouseMove = throttle(this.onMouseMove.bind(this), 64);\n this.hideScrollbars = debounce(\n this.hideScrollbars.bind(this),\n this.options.timeout\n );\n this.onWindowResize = debounce(this.onWindowResize.bind(this), 64, {\n leading: true\n });\n\n SimpleBar.getRtlHelpers = memoize(SimpleBar.getRtlHelpers);\n\n this.init();\n }\n\n /**\n * Static properties\n */\n\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n static getRtlHelpers() {\n const dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '
';\n const scrollbarDummyEl = dummyDiv.firstElementChild;\n document.body.appendChild(scrollbarDummyEl);\n const dummyContainerChild = scrollbarDummyEl.firstElementChild;\n scrollbarDummyEl.scrollLeft = 0;\n const dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);\n const dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);\n scrollbarDummyEl.scrollLeft = 999;\n const dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(\n dummyContainerChild\n );\n\n return {\n // determines if the scrolling is responding with negative values\n isRtlScrollingInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left &&\n dummyContainerChildOffset.left -\n dummyContainerScrollOffsetAfterScroll.left !==\n 0,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isRtlScrollbarInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left\n };\n }\n\n static defaultOptions = {\n autoHide: true,\n forceVisible: false,\n clickOnTrack: true,\n clickOnTrackSpeed: 40,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging'\n },\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n timeout: 1000\n };\n\n static getOffset(el) {\n const rect = el.getBoundingClientRect();\n const elDocument = getElementDocument(el);\n const elWindow = getElementWindow(el);\n\n return {\n top:\n rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left:\n rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n }\n\n static instances = new WeakMap();\n\n init() {\n // Save a reference to the instance, so we know this DOM node has already been instancied\n SimpleBar.instances.set(this.el, this);\n\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n\n this.setAccessibilityAttributes();\n\n this.scrollbarWidth = this.getScrollbarWidth();\n\n this.recalculate();\n\n this.initListeners();\n }\n }\n\n initDOM() {\n // make sure this element doesn't have the elements yet\n if (\n Array.prototype.filter.call(this.el.children, child =>\n child.classList.contains(this.classNames.wrapper)\n ).length\n ) {\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(`.${this.classNames.wrapper}`);\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(`.${this.classNames.contentWrapper}`);\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(`.${this.classNames.contentEl}`);\n\n this.offsetEl = this.el.querySelector(`.${this.classNames.offset}`);\n this.maskEl = this.el.querySelector(`.${this.classNames.mask}`);\n\n this.placeholderEl = this.findChild(\n this.wrapperEl,\n `.${this.classNames.placeholder}`\n );\n this.heightAutoObserverWrapperEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverWrapperEl}`\n );\n this.heightAutoObserverEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverEl}`\n );\n this.axis.x.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.horizontal}`\n );\n this.axis.y.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.vertical}`\n );\n } else {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n\n this.wrapperEl.classList.add(this.classNames.wrapper);\n this.contentWrapperEl.classList.add(this.classNames.contentWrapper);\n this.offsetEl.classList.add(this.classNames.offset);\n this.maskEl.classList.add(this.classNames.mask);\n this.contentEl.classList.add(this.classNames.contentEl);\n this.placeholderEl.classList.add(this.classNames.placeholder);\n this.heightAutoObserverWrapperEl.classList.add(\n this.classNames.heightAutoObserverWrapperEl\n );\n this.heightAutoObserverEl.classList.add(\n this.classNames.heightAutoObserverEl\n );\n\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n }\n\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n const track = document.createElement('div');\n const scrollbar = document.createElement('div');\n\n track.classList.add(this.classNames.track);\n scrollbar.classList.add(this.classNames.scrollbar);\n\n track.appendChild(scrollbar);\n\n this.axis.x.track.el = track.cloneNode(true);\n this.axis.x.track.el.classList.add(this.classNames.horizontal);\n\n this.axis.y.track.el = track.cloneNode(true);\n this.axis.y.track.el.classList.add(this.classNames.vertical);\n\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n\n this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n\n if (!this.options.autoHide) {\n this.axis.x.scrollbar.el.classList.add(this.classNames.visible);\n this.axis.y.scrollbar.el.classList.add(this.classNames.visible);\n }\n\n this.el.setAttribute('data-simplebar', 'init');\n }\n\n setAccessibilityAttributes() {\n const ariaLabel = this.options.ariaLabel || 'scrollable content';\n\n this.contentWrapperEl.setAttribute('tabindex', '0');\n this.contentWrapperEl.setAttribute('role', 'region');\n this.contentWrapperEl.setAttribute('aria-label', ariaLabel);\n }\n\n initListeners() {\n const elWindow = getElementWindow(this.el);\n // Event listeners\n if (this.options.autoHide) {\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n\n this.contentWrapperEl.addEventListener('scroll', this.onScroll);\n\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n let resizeObserverStarted = false;\n let resizeAnimationFrameId = null;\n const resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n\n this.resizeObserver = new resizeObserver(() => {\n if (!resizeObserverStarted || resizeAnimationFrameId !== null) return;\n\n resizeAnimationFrameId = elWindow.requestAnimationFrame(() => {\n this.recalculate();\n resizeAnimationFrameId = null;\n });\n });\n\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n\n elWindow.requestAnimationFrame(() => {\n resizeObserverStarted = true;\n });\n\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(this.recalculate);\n\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n }\n\n recalculate() {\n const elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n\n const isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n const isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;\n const contentElOffsetWidth = this.contentEl.offsetWidth;\n\n const contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n\n const elOverflowX = this.elStyles.overflowX;\n const elOverflowY = this.elStyles.overflowY;\n\n this.contentEl.style.padding = `${this.elStyles.paddingTop} ${this.elStyles.paddingRight} ${this.elStyles.paddingBottom} ${this.elStyles.paddingLeft}`;\n this.wrapperEl.style.margin = `-${this.elStyles.paddingTop} -${this.elStyles.paddingRight} -${this.elStyles.paddingBottom} -${this.elStyles.paddingLeft}`;\n\n const contentElScrollHeight = this.contentEl.scrollHeight;\n const contentElScrollWidth = this.contentEl.scrollWidth;\n\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? `${contentElOffsetWidth}px`\n : 'auto';\n this.placeholderEl.style.height = `${contentElScrollHeight}px`;\n\n const contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n\n this.axis.x.isOverflowing = contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n\n this.hideNativeScrollbar();\n\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n let offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n let offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n\n this.axis.x.scrollbar.el.style.width = `${this.axis.x.scrollbar.size}px`;\n this.axis.y.scrollbar.el.style.height = `${this.axis.y.scrollbar.size}px`;\n\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n }\n\n /**\n * Calculate scrollbar size\n */\n getScrollbarSize(axis = 'y') {\n if (!this.axis[axis].isOverflowing) {\n return 0;\n }\n\n const contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n const trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n let scrollbarSize;\n\n let scrollbarRatio = trackSize / contentSize;\n\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(\n ~~(scrollbarRatio * trackSize),\n this.options.scrollbarMinSize\n );\n\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n\n return scrollbarSize;\n }\n\n positionScrollbar(axis = 'y') {\n if (!this.axis[axis].isOverflowing) {\n return;\n }\n\n const contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n const trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n const scrollbar = this.axis[axis].scrollbar;\n\n let scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollOffset\n : scrollOffset;\n let scrollPourcent = scrollOffset / (contentSize - hostSize);\n\n let handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n\n scrollbar.el.style.transform =\n axis === 'x'\n ? `translate3d(${handleOffset}px, 0, 0)`\n : `translate3d(0, ${handleOffset}px, 0)`;\n }\n\n toggleTrackVisibility(axis = 'y') {\n const track = this.axis[axis].track.el;\n const scrollbar = this.axis[axis].scrollbar.el;\n\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n } else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n }\n\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n } else {\n scrollbar.style.display = 'none';\n }\n }\n\n hideNativeScrollbar() {\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? `-${this.scrollbarWidth}px`\n : 0;\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? `-${this.scrollbarWidth}px`\n : 0;\n }\n\n /**\n * On scroll event handling\n */\n onScroll = () => {\n const elWindow = getElementWindow(this.el);\n if (!this.scrollXTicking) {\n elWindow.requestAnimationFrame(this.scrollX);\n this.scrollXTicking = true;\n }\n\n if (!this.scrollYTicking) {\n elWindow.requestAnimationFrame(this.scrollY);\n this.scrollYTicking = true;\n }\n };\n\n scrollX = () => {\n if (this.axis.x.isOverflowing) {\n this.showScrollbar('x');\n this.positionScrollbar('x');\n }\n\n this.scrollXTicking = false;\n };\n\n scrollY = () => {\n if (this.axis.y.isOverflowing) {\n this.showScrollbar('y');\n this.positionScrollbar('y');\n }\n\n this.scrollYTicking = false;\n };\n\n onMouseEnter = () => {\n this.showScrollbar('x');\n this.showScrollbar('y');\n };\n\n onMouseMove = e => {\n this.mouseX = e.clientX;\n this.mouseY = e.clientY;\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseMoveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseMoveForAxis('y');\n }\n };\n\n onMouseMoveForAxis(axis = 'y') {\n this.axis[axis].track.rect = this.axis[\n axis\n ].track.el.getBoundingClientRect();\n this.axis[axis].scrollbar.rect = this.axis[\n axis\n ].scrollbar.el.getBoundingClientRect();\n\n const isWithinScrollbarBoundsX = this.isWithinBounds(\n this.axis[axis].scrollbar.rect\n );\n\n if (isWithinScrollbarBoundsX) {\n this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n if (this.isWithinBounds(this.axis[axis].track.rect)) {\n this.showScrollbar(axis);\n this.axis[axis].track.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n }\n }\n\n onMouseLeave = () => {\n this.onMouseMove.cancel();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseLeaveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseLeaveForAxis('y');\n }\n\n this.mouseX = -1;\n this.mouseY = -1;\n };\n\n onMouseLeaveForAxis(axis = 'y') {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n onWindowResize = () => {\n // Recalculate scrollbarWidth in case it's a zoom\n this.scrollbarWidth = this.getScrollbarWidth();\n\n this.hideNativeScrollbar();\n };\n\n /**\n * Show scrollbar\n */\n showScrollbar(axis = 'y') {\n let scrollbar = this.axis[axis].scrollbar.el;\n\n if (!this.axis[axis].isVisible) {\n scrollbar.classList.add(this.classNames.visible);\n this.axis[axis].isVisible = true;\n }\n\n if (this.options.autoHide) {\n this.hideScrollbars();\n }\n }\n\n /**\n * Hide Scrollbar\n */\n hideScrollbars = () => {\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n if (!this.isWithinBounds(this.axis.y.track.rect)) {\n this.axis.y.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.y.isVisible = false;\n }\n\n if (!this.isWithinBounds(this.axis.x.track.rect)) {\n this.axis.x.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.x.isVisible = false;\n }\n };\n\n onPointerEvent = e => {\n let isWithinTrackXBounds, isWithinTrackYBounds;\n\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n isWithinTrackXBounds = this.isWithinBounds(this.axis.x.track.rect);\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n isWithinTrackYBounds = this.isWithinBounds(this.axis.y.track.rect);\n }\n\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Preventing the event's default action stops text being\n // selectable during the drag.\n e.preventDefault();\n // Prevent event leaking\n e.stopPropagation();\n\n if (e.type === 'mousedown') {\n if (isWithinTrackXBounds) {\n this.axis.x.scrollbar.rect = this.axis.x.scrollbar.el.getBoundingClientRect();\n\n if (this.isWithinBounds(this.axis.x.scrollbar.rect)) {\n this.onDragStart(e, 'x');\n } else {\n this.onTrackClick(e, 'x');\n }\n }\n\n if (isWithinTrackYBounds) {\n this.axis.y.scrollbar.rect = this.axis.y.scrollbar.el.getBoundingClientRect();\n\n if (this.isWithinBounds(this.axis.y.scrollbar.rect)) {\n this.onDragStart(e, 'y');\n } else {\n this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n\n /**\n * on scrollbar handle drag movement starts\n */\n onDragStart(e, axis = 'y') {\n const elDocument = getElementDocument(this.el);\n const elWindow = getElementWindow(this.el);\n const scrollbar = this.axis[axis].scrollbar;\n\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n const eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - scrollbar.rect[this.axis[axis].offsetAttr];\n this.draggedAxis = axis;\n\n this.el.classList.add(this.classNames.dragging);\n\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n } else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n }\n\n /**\n * Drag scrollbar handle\n */\n drag = e => {\n let eventOffset;\n const track = this.axis[this.draggedAxis].track;\n const trackSize = track.rect[this.axis[this.draggedAxis].sizeAttr];\n const scrollbar = this.axis[this.draggedAxis].scrollbar;\n const contentSize = this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollSizeAttr\n ];\n const hostSize = parseInt(\n this.elStyles[this.axis[this.draggedAxis].sizeAttr],\n 10\n );\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n } else {\n eventOffset = e.pageX;\n }\n\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n let dragPos =\n eventOffset -\n track.rect[this.axis[this.draggedAxis].offsetAttr] -\n this.axis[this.draggedAxis].dragOffset;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n let dragPerc = dragPos / (trackSize - scrollbar.size);\n\n // Scroll the content by the same percentage.\n let scrollPos = dragPerc * (contentSize - hostSize);\n\n // Fix browsers inconsistency on RTL\n if (this.draggedAxis === 'x') {\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? scrollPos - (trackSize + scrollbar.size)\n : scrollPos;\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollPos\n : scrollPos;\n }\n\n this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollOffsetAttr\n ] = scrollPos;\n };\n\n /**\n * End scroll handle drag\n */\n onEndDrag = e => {\n const elDocument = getElementDocument(this.el);\n const elWindow = getElementWindow(this.el);\n e.preventDefault();\n e.stopPropagation();\n\n this.el.classList.remove(this.classNames.dragging);\n\n elDocument.removeEventListener('mousemove', this.drag, true);\n elDocument.removeEventListener('mouseup', this.onEndDrag, true);\n this.removePreventClickId = elWindow.setTimeout(() => {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', this.preventClick, true);\n elDocument.removeEventListener('dblclick', this.preventClick, true);\n this.removePreventClickId = null;\n });\n };\n\n /**\n * Handler to ignore click events during drag\n */\n preventClick = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n onTrackClick(e, axis = 'y') {\n if (!this.options.clickOnTrack) return;\n\n const elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect = this.axis[\n axis\n ].scrollbar.el.getBoundingClientRect();\n const scrollbar = this.axis[axis].scrollbar;\n const scrollbarOffset = scrollbar.rect[this.axis[axis].offsetAttr];\n const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n let scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n const t =\n axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n const dir = t < 0 ? -1 : 1;\n const scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n\n const scrollTo = () => {\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= this.options.clickOnTrackSpeed;\n this.contentWrapperEl.scrollTo({\n [this.axis[axis].offsetAttr]: scrolled\n });\n elWindow.requestAnimationFrame(scrollTo);\n }\n } else {\n if (scrolled < scrollSize) {\n scrolled += this.options.clickOnTrackSpeed;\n this.contentWrapperEl.scrollTo({\n [this.axis[axis].offsetAttr]: scrolled\n });\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n\n scrollTo();\n }\n\n /**\n * Getter for content element\n */\n getContentElement() {\n return this.contentEl;\n }\n\n /**\n * Getter for original scrolling element\n */\n getScrollElement() {\n return this.contentWrapperEl;\n }\n\n getScrollbarWidth() {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if (\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none' ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style\n ) {\n return 0;\n } else {\n return scrollbarWidth(this.el);\n }\n } catch (e) {\n return scrollbarWidth(this.el);\n }\n }\n\n removeListeners() {\n const elWindow = getElementWindow(this.el);\n // Event listeners\n if (this.options.autoHide) {\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n\n elWindow.removeEventListener('resize', this.onWindowResize);\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n // Cancel all debounced functions\n this.recalculate.cancel();\n this.onMouseMove.cancel();\n this.hideScrollbars.cancel();\n this.onWindowResize.cancel();\n }\n\n /**\n * UnMount mutation observer and delete SimpleBar instance from DOM element\n */\n unMount() {\n this.removeListeners();\n SimpleBar.instances.delete(this.el);\n }\n\n /**\n * Check if mouse is within bounds\n */\n isWithinBounds(bbox) {\n return (\n this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height\n );\n }\n\n /**\n * Find element children matches query\n */\n findChild(el, query) {\n const matches =\n el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, child =>\n matches.call(child, query)\n )[0];\n }\n}\n","/**\n * simplebar-react - v2.4.3\n * React component for SimpleBar\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat\n * Under MIT License\n */\n\nimport React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SimpleBarJS from 'simplebar/dist/simplebar-core.esm';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar _excluded = [\"children\", \"scrollableNodeProps\", \"tag\"];\n/* Deprecated\n * Hardcore this here until we can safely deprecated it.\n * Helper function to retrieve options from element attributes\n */\n\nvar getOptions = function getOptions(obj) {\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (x, chr) {\n return chr.toUpperCase();\n });\n\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n\n case 'false':\n acc[key] = false;\n break;\n\n case undefined:\n acc[key] = true;\n break;\n\n default:\n acc[key] = attribute.value;\n }\n }\n\n return acc;\n }, {});\n return options;\n};\n\nvar SimpleBar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n _ref$scrollableNodePr = _ref.scrollableNodeProps,\n scrollableNodeProps = _ref$scrollableNodePr === void 0 ? {} : _ref$scrollableNodePr,\n _ref$tag = _ref.tag,\n tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var RootTag = tag;\n var instance;\n var scrollableNodeRef = useRef();\n var elRef = useRef();\n var contentNodeRef = useRef();\n var options = {};\n var rest = {};\n var deprecatedOptions = [];\n Object.keys(otherProps).forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(SimpleBarJS.defaultOptions, key)) {\n options[key] = otherProps[key];\n } else if (key.match(/data-simplebar-(.+)/) && key !== 'data-simplebar-direction') {\n deprecatedOptions.push({\n name: key,\n value: otherProps[key]\n });\n } else {\n rest[key] = otherProps[key];\n }\n });\n\n if (deprecatedOptions.length) {\n console.warn(\"simplebar-react: this way of passing options is deprecated. Pass it like normal props instead:\\n 'data-simplebar-auto-hide=\\\"false\\\"' \\u2014> 'autoHide=\\\"false\\\"'\\n \");\n }\n\n useEffect(function () {\n scrollableNodeRef = scrollableNodeProps.ref || scrollableNodeRef;\n\n if (elRef.current) {\n instance = new SimpleBarJS(elRef.current, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, getOptions(deprecatedOptions)), options), scrollableNodeRef && {\n scrollableNode: scrollableNodeRef.current\n }), contentNodeRef.current && {\n contentNode: contentNodeRef.current\n }));\n\n if (typeof ref === 'function') {\n ref(instance);\n } else if (ref) {\n ref.current = instance;\n }\n }\n\n return function () {\n instance.unMount();\n instance = null;\n\n if (typeof ref === 'function') {\n ref(null);\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(RootTag, _extends({\n ref: elRef,\n \"data-simplebar\": true\n }, rest), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-mask\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-offset\"\n }, typeof children === 'function' ? children({\n scrollableNodeRef: scrollableNodeRef,\n contentNodeRef: contentNodeRef\n }) : /*#__PURE__*/React.createElement(\"div\", _extends({}, scrollableNodeProps, {\n className: \"simplebar-content-wrapper\".concat(scrollableNodeProps.className ? \" \".concat(scrollableNodeProps.className) : '')\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-content\"\n }, children)))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-placeholder\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-track simplebar-horizontal\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-track simplebar-vertical\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })));\n});\nSimpleBar.displayName = 'SimpleBar';\nSimpleBar.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n scrollableNodeProps: PropTypes.object,\n tag: PropTypes.string\n};\n\nexport default SimpleBar;\n","import { composeRefHandlers } from \"@utils/general\";\nimport React, { Ref, useEffect, useRef } from \"react\";\nimport SimpleBar from \"simplebar-react\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport TestIds from \"../../testIds\";\n\nexport interface IScrollBarProps {\n className?: string;\n scrollableNodeProps?: object;\n style?: React.CSSProperties;\n autoHide?: boolean | undefined;\n primary?: boolean;\n // adds styles necessary for the scrollbar to shrink itself in flex container\n isInFlex?: boolean;\n children: React.ReactNode;\n}\n\n// wrapper class to prevent props (like 'primary') from beeing sent to SimpleBar which tries to render all unknown props to DOM\nconst ScrollBar = React.forwardRef((props: IScrollBarProps, ref: Ref) => {\n const simplebarRef = useRef(null);\n\n // SimpleBar added tabIndex to allow users keyboard navigation directly on scroll element,\n // https://github.com/Grsmto/simplebar/commit/3875dbbc5019214cd41467ae1cd7958bae7824da\n // but didn't add an option to remove it, and we don't want it\n useEffect(() => {\n const el = simplebarRef.current.el as HTMLDivElement;\n\n el.querySelector(\".simplebar-content-wrapper\")?.removeAttribute(\"tabIndex\");\n });\n\n return (\n \n {props.children}\n \n );\n});\n\n\n// use styled component on the wrapper instead pf SimpleBar\n// otherwise custom props like 'primary' would cause either warnings or console\n// or they would get rendered to DOM without a reason\nconst StyledScrollBar = styled(ScrollBar)`\n width: 100%;\n height: 100%;\n\n .simplebar-track.simplebar-hover.simplebar-vertical {\n width: 14px;\n }\n\n //.simplebar-vertical .simplebar-scrollbar.simplebar-visible.simplebar-hover {\n // width: 14px;\n //}\n\n .simplebar-track.simplebar-hover.simplebar-horizontal {\n height: 11px;\n }\n\n .simplebar-track.simplebar-horizontal {\n height: 7px;\n }\n\n .simplebar-horizontal .simplebar-scrollbar {\n position: absolute;\n top: 0;\n bottom: 0;\n height: 100%;\n }\n\n .simplebar-content {\n height: 100%;\n }\n\n // TODO pointer events are disabled by default, this could cause something wrong? \n .simplebar-track {\n pointer-events: all;\n }\n\n // prevent simple bar from creating stacking context, \n // so that e.g. items overlayed by LockedFormOverrideOverlay can use z-index to get over it \n\n .simplebar-mask {\n z-index: unset;\n }\n\n .simplebar-scrollbar.simplebar-visible::before {\n opacity: 0.7;\n }\n\n ${props => props.primary && css`\n // don't affect all the simplebars inside, only the root one\n & > div > .simplebar-scrollbar::before {\n background-color: ${props => props.theme.C_ACT_main};\n }\n `};\n\n ${props => props.isInFlex && css`\n flex: 1 1 auto;\n min-height: 0;\n `};\n`;\n\nexport { StyledScrollBar as ScrollBar };","import styled from \"styled-components/macro\";\nimport { T_TITLE_5 } from \"../../global.style\";\nimport { Theme } from \"../../theme\";\n\nexport const StyledSeparator = styled.div`\n display: flex;\n align-items: center;\n ${T_TITLE_5}\n`;\n\nexport const SeparatorLine = styled.hr<{\n $isEmphasised?: boolean;\n $isBold?: boolean;\n $color?: keyof Theme;\n}>`\n width: 100%;\n border: none;\n border-radius: 1px;\n height: ${props => props.$isBold ? \"2\" : \"1\"}px;\n background-color: ${props => props.$color ? props.theme[props.$color] : props.$isEmphasised ? props.theme.C_ACT_thick_line : props.theme.C_FIELD_section_line};\n margin: 0;\n`;\n\nexport const SeparatorLabel = styled.span`\n padding-right: 9px;\n margin: -6px 0;\n white-space: nowrap;\n`;","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { SeparatorLabel, SeparatorLine, StyledSeparator } from \"./Separator.styles\";\nimport { Theme } from \"../../theme\";\n\ninterface IProps {\n label?: string;\n isEmphasised?: boolean;\n isBold?: boolean;\n color?: keyof Theme;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Separator: React.FC = ({ label, isEmphasised, isBold, color, className, style }) => {\n return (\n \n {label && ({label})}\n \n \n );\n};\n","import styled, { css } from \"styled-components/macro\";\nimport { T_TITLE_4_NORMAL, textAlignToJustify } from \"../../global.style\";\nimport { TextAlign } from \"../../enums\";\nimport { ellipsis } from \"polished\";\n\nexport const StyledSimpleGridTable = styled.div<{ numColumns: number; $width?: string; $height?: string; }>`\n display: grid;\n grid-template-columns: ${props => [...Array(props.numColumns)].map((_, index) => index < props.numColumns - 1 ? \"fit-content(300px)\" : \"auto\").join(\" \")};\n column-gap: 20px;\n row-gap: 7px;\n padding: 0 5px;\n width: ${props => props.$width ?? null};\n height: ${props => props.$height ?? null};\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const SimpleGridTableColumn = styled.div<{ textAlign?: TextAlign }>`\n justify-self: ${props => textAlignToJustify(props.textAlign ?? TextAlign.Left)};\n ${ellipsis(\"100%\")};\n`;\n\nexport const SimpleGridTableLine = styled.div<{ spanColumns: number }>`\n grid-column: 1 / span ${props => props.spanColumns};\n position: relative;\n left: -5px;\n width: calc(100% + 10px);\n height: 1px;\n background-color: ${props => props.theme.C_FORM_GROUP_HEADER_LINE};\n`;\n\nconst SmallAmountStyles = css`\n font-weight: 300;\n`;\n\nexport const SimpleGridTableSmallValue = styled(SimpleGridTableColumn)`\n ${SmallAmountStyles};\n`;\n\nconst FullAmountStyles = css`\n font-size: 20px;\n font-weight: bold;\n`;\n\nexport const SimpleGridTableBoldValue = styled(SimpleGridTableColumn)`\n ${FullAmountStyles};\n`;","import React from \"react\";\nimport { StyledSimpleGridTable } from \"./SimpleGridTable.styles\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n numColumns: number;\n width?: string;\n height?: string;\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport default class SimpleGridTable extends React.PureComponent {\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport type { IProps as ISimpleGridTableProps };","import styled, { css } from \"styled-components/macro\";\nimport { TextAlign } from \"../../enums\";\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n getFocusOutlineDefinition,\n T_PLAIN_big,\n T_PLAIN_big_hig,\n T_PLAIN_small,\n T_PLAIN_small_hig,\n T_TITLE_6\n} from \"../../global.style\";\nimport { getRowPadding, getStickyStyles, GroupIconWrapperStyles } from \"../table/Rows.styles\";\nimport { ellipsis, transparentize } from \"polished\";\nimport { StatusIndicator } from \"../tabs/Tabs.styles\";\nimport { ISticky } from \"../table\";\nimport { SelectedHighLightType } from \"./SimpleTable\";\n\nexport const SIMPLE_TABLE_ROW_HEIGHT = 30;\n\ninterface IGetBottomLine {\n color: string;\n bottom: string;\n el?: \"after\" | \"before\";\n isDouble?: boolean;\n isFullWidth?: boolean;\n}\n\nconst getLine = (args: IGetBottomLine) => {\n const pseudoElem = args.el ?? \"after\";\n\n return css`\n &::${pseudoElem} {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n bottom: ${args.bottom};\n height: 3px;\n width: auto;\n border-bottom: 1px solid ${args.color};\n border-top: 1px solid ${args.isDouble ? args.color : \"transparent\"};\n }\n\n ${!args.isFullWidth && css`\n &:first-child::${pseudoElem} {\n left: 12px;\n }\n\n &:last-child::${pseudoElem} {\n right: 12px;\n }\n `};\n `;\n};\n\nexport const ScrollWrapper = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n`;\n\nexport const StyledSelectedDiv = styled.div`\n position: relative;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n border-radius: 3px;\n color: ${props => props.theme.C_BTN_4L_emph_text};\n width: 32px;\n height: 20px;\n padding-right: 2px;\n background-color: ${props => props.theme.C_ICON_primary_dark};\n\n & > svg {\n position: absolute;\n top: 0;\n right: -14px;\n transform: rotate(180deg);\n }\n`;\n\nexport const StyledRowOrderCell = styled.td<{\n isSelected: boolean,\n isSelectable: boolean\n}>`\n position: sticky;\n cursor: ${props => props.isSelectable ? \"pointer\" : \"not-allowed\"};\n left: 0;\n z-index: 3;\n ${T_TITLE_6};\n color: ${props => props.theme.C_ACT_thick_line};\n background-color: ${props => props.theme.C_SPLIT_LAYOUT_BUBBLE};\n min-width: 38px;\n text-align: right;\n padding: ${props => props.isSelected ? 0 : \"0 8px\"};\n`;\n\nexport const StyledSimpleTable = styled.table<{ _width?: string; _hasHighlight?: boolean; }>`\n position: relative;\n border-collapse: collapse;\n width: ${props => props._width};\n height: fit-content;\n white-space: nowrap;\n\n ${getFocusBorderElement()};\n\n tr {\n height: ${SIMPLE_TABLE_ROW_HEIGHT}px;\n }\n\n tbody {\n ${props => props._hasHighlight && css`\n tr:hover td, tr:focus td {\n background-color: ${transparentize(0.5, props.theme.C_ACT_hover_without_opacity)};\n }\n `}\n tr:focus {\n ${getFocusOutlineDefinition({ offset: -2 })}\n }\n }\n`;\n\ninterface ISimpleCell {\n maxWidth?: number;\n textAlign: TextAlign;\n isSelected?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n hasBigFont?: boolean;\n hasTopLine?: boolean;\n hasBottomLine?: boolean;\n hasGroupPadding?: boolean;\n isFirst?: boolean;\n isLast?: boolean;\n hasAfterContent?: boolean;\n sticky?: ISticky;\n isGrey?: boolean;\n hasPinkBg?: boolean;\n selectedHighLightType?: SelectedHighLightType;\n}\nconst simpleCell = css`\n position: relative;\n text-align: ${props => props.textAlign || TextAlign.Left};\n ${props => getRowPadding(props.textAlign)};\n\n ${props => props.isFirst && css`\n padding-left: 12px;\n `};\n ${props => props.isLast && css`\n padding-right: 12px;\n `};\n\n ${props => props.isLast && props.hasAfterContent && css`\n padding-right: 0;\n `};\n ${props => props.maxWidth && css`\n ${ellipsis(props.maxWidth)};\n // overflow-x: hidden for some reason hides vertical overflow as well,\n // using 'clip' instead seems to resolve the issue\n overflow: unset;\n overflow-x: clip;\n display: table-cell;\n `};\n`;\n\nexport const DraggableArea = styled.div`\n position: absolute;\n width: 100%;\n height: 15px;\n top: 50%;\n transform: translate(0, -50%);\n background-color: transparent;\n cursor: row-resize;\n`;\n\n\nexport const DraggableCircle = styled.div`\n position: absolute;\n width: 10px;\n height: 10px;\n border-radius: 10px;\n top: 50%;\n transform: translate(0, -50%);\n background-color: #fefefe;\n border: 2px solid #5e1146;\n cursor: row-resize;\n`;\n\nexport const DashedResizeLine = styled.div`\n position: absolute;\n display: flex;\n z-index: 2;\n justify-content: center;\n overflow: visible;\n top: 60px;\n width: 100%;\n height: 2px;\n background-image: linear-gradient(to right, ${props => props.theme.C_ACT_main} 50%, transparent 0%);\n background-position: bottom;\n background-size: 16px 2px;\n background-repeat: repeat-x;\n cursor: row-resize;\n`;\n\nexport const SimpleHeaderCell = styled.th.attrs(props => ({\n style: {\n ...getStickyStyles(props.sticky),\n backgroundColor: props.isGrey ? \"#f2f2f2\" : props.sticky ? props.theme.C_BG_floorplan : null\n }\n}))`\n ${simpleCell}\n ${props => props.isGrey ? T_PLAIN_small : props.hasBigFont ? T_PLAIN_big_hig : T_PLAIN_small_hig};\n\n ${props => props.hasBottomLine && getLine({\n color: props.theme.C_ACT_hover_without_opacity,\n bottom: \"0\",\n isFullWidth: true\n })};\n ${props => props.isGrey ? `\n color: ${props.theme.C_ACT_thick_line};\n text-align: ${TextAlign.Center};\n ` : \"\"};\n`;\n\ninterface ISimpleRowCell extends ISimpleCell {\n isDivider?: boolean;\n hasSplitLine?: boolean;\n colSpan?: number;\n}\n\nexport const SimpleRowCell = styled.td.attrs(props => ({\n style: {\n ...getStickyStyles(props.sticky),\n backgroundColor: props.sticky ? props.theme.C_BG_floorplan : null,\n colspan: props.colSpan ? props.colSpan : null\n }\n}))`\n ${simpleCell}\n\n ${props => getDisabledStyle(props.isDisabled)}\n ${props => props.isBold ? (props.hasBigFont ? T_PLAIN_big_hig : T_PLAIN_small_hig) : (props.hasBigFont ? T_PLAIN_big : T_PLAIN_small)};\n ${props => props.hasTopLine && getLine({\n color: props.theme.C_ACT_hover_without_opacity,\n bottom: \"100%\",\n el: \"before\",\n isDouble: true,\n isFullWidth: true\n })};\n ${props => props.hasBottomLine && getLine({\n color: props.theme.C_FIELD_section_line,\n bottom: \"0\",\n isDouble: false,\n isFullWidth: true\n })};\n ${props => props.isSelected && (props.selectedHighLightType === SelectedHighLightType.Bold ? \"font-weight: bold;\" : getLine({\n color: props.theme.C_TEXT_primary,\n bottom: \"4px\"\n }))};\n\n ${props => props.isDivider && css`\n ${getLine({ color: props.theme.C_ACT_hover_without_opacity, bottom: \"100%\", el: \"before\", isFullWidth: true })}\n ${getLine({ color: props.theme.C_ACT_hover_without_opacity, bottom: \"0\", el: \"after\", isFullWidth: true })}\n `}\n ${StatusIndicator} {\n position: absolute;\n left: ${props => props.hasGroupPadding ? \"23px\" : \"3px\"};\n top: 50%;\n transform: translate(-100%, -50%);\n }\n\n ${props => props.hasPinkBg && `background: ${transparentize(0.5, props.theme.C_ACT_hover_without_opacity)}`}\n ${props => !props.hasPinkBg && !props.isSelected && props.hasSplitLine && `opacity: 0.5`}\n`;\n\nexport const SimpleRowCellContentWrapper = styled.div<{\n _lpad?: number;\n}>`\n position: relative;\n display: flex;\n align-items: center;\n padding-left: ${props => `${props._lpad}px`};\n`;\n\nexport const SimpleGroupIconWrapper = styled.span<{\n isOpen: boolean\n}>`\n ${GroupIconWrapperStyles};\n position: relative;\n margin-right: 2px;\n`;\n\nexport const ContentAfterRow = styled.div`\n display: flex;\n align-items: center;\n height: ${SIMPLE_TABLE_ROW_HEIGHT}px;\n padding-left: 12px;\n`;","import { clamp, getValue, handleRefHandlers, isDefined } from \"@utils/general\";\nimport React, { MouseEventHandler } from \"react\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { IconSize, MouseButton, RowType, TextAlign } from \"../../enums\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../focusManager/FocusManager\";\nimport { ArrowIcon, TableCaretIcon } from \"../icon\";\nimport { ScrollBar } from \"../scrollBar\";\nimport { getRowFromArray } from \"../smart/smartTable/SmartTable.utils\";\nimport { IColumn, IRow, ISticky, TId } from \"../table\";\nimport { isRowValueCellValueObject } from \"../table/TableUtils\";\nimport { StatusIndicator } from \"../tabs/Tabs.styles\";\nimport Tooltip from \"../tooltip\";\nimport {\n ContentAfterRow,\n DashedResizeLine,\n DraggableArea,\n DraggableCircle,\n ScrollWrapper,\n SIMPLE_TABLE_ROW_HEIGHT,\n SimpleGroupIconWrapper,\n SimpleHeaderCell,\n SimpleRowCell,\n SimpleRowCellContentWrapper,\n StyledRowOrderCell,\n StyledSelectedDiv,\n StyledSimpleTable\n} from \"./SimpleTable.styles\";\n\nconst GROUP_L_PAD = 18;\n\nexport interface ISimpleTableRow extends IRow {\n /** colSpan will be propagated to elements as \"colspan\"\n * key should be column id and number is how many columns it should span across */\n colSpan?: Record;\n /** To be used with colSpan, custom column textAlign overwrite for just one row */\n textAlign?: Record;\n isUnderlined?: boolean;\n}\n\nexport interface ISimpleTableProps extends WithBusyIndicator {\n // isUnderlined adds subtle line under the row\n rows: ISimpleTableRow[];\n // add maxWidth to columns, to prevent table from getting too big\n columns: (IColumn & {\n maxWidth?: number;\n })[];\n width?: string;\n passRef?: React.Ref;\n hasBigFont?: boolean;\n showHeaderBorder?: boolean;\n highlightRowsHover?: boolean;\n disableFocus?: boolean;\n // can be used to add action after the row\n contentAfter?: (row: IRow, index: number) => React.ReactElement;\n useHorizontalScrollbar?: boolean;\n onGroupToggle?: (id: TId) => void;\n onRowSelect?: (id: TId, linePosition: number) => void;\n showOrder?: boolean;\n selectedHighLightType?: SelectedHighLightType;\n onSplitLineMove?: (e: MouseEvent) => void;\n onSplitLineMoveEnd?: (lineIndex: number) => void;\n splitLinePosition?: number;\n style?: React.CSSProperties;\n}\n\nexport enum SelectedHighLightType {\n Underline = \"underline\",\n Bold = \"bold\"\n}\n\ninterface IState {\n hasGroups: boolean;\n /** Hybrid approach to allow groups toggling, when onGroupToggle isn't used on parent */\n openedGroups: Record;\n columnsStickyVals: Record;\n linePosition: number;\n}\n\nclass SimpleTable extends React.PureComponent {\n static defaultProps = {\n showHeaderBorder: true,\n highlightRowsHover: false\n };\n\n _tableRef = React.createRef();\n _contentAfter = React.createRef();\n _scrollRef = React.createRef();\n _splitLineRef = React.createRef();\n\n\n state: IState = {\n hasGroups: false,\n openedGroups: {},\n columnsStickyVals: {},\n linePosition: 2\n };\n\n componentDidMount() {\n this.checkGroups();\n this.applyStickyColumns();\n this.updateSimpleBarWidth();\n if (this.props.splitLinePosition) {\n this.setDefaultLinePosition();\n }\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (prevProps.rows !== this.props.rows) {\n this.checkGroups();\n }\n if (prevProps.columns !== this.props.columns) {\n this.updateSimpleBarWidth();\n }\n\n if (this.props.splitLinePosition !== prevProps.splitLinePosition) {\n this.setDefaultLinePosition();\n }\n }\n\n setDefaultLinePosition = () => {\n const lineDiv = this._splitLineRef.current;\n const linePosition = this.props.splitLinePosition + 1; // add one for Excel like header\n if (lineDiv) {\n lineDiv.style.top = `${(linePosition) * SIMPLE_TABLE_ROW_HEIGHT}px`;\n }\n this.setState({ linePosition });\n\n };\n\n elementDrag = (e: MouseEvent) => {\n e.preventDefault();\n const lineDiv = this._splitLineRef.current;\n const parentClientRect = this._splitLineRef.current.parentElement.getBoundingClientRect();\n const posY = e.clientY - parentClientRect.top;\n\n lineDiv.style.top = clamp(posY, 0, parentClientRect.height) + \"px\";\n\n this.props.onSplitLineMove?.(e);\n };\n\n closeDragElement = () => {\n const lineDiv = this._splitLineRef.current;\n const minPos = (this.props.rows?.findIndex(row => row.selected) + 2) * SIMPLE_TABLE_ROW_HEIGHT;\n const maxPos = this.props.rows.length * SIMPLE_TABLE_ROW_HEIGHT;\n const newPos = Math.min(Math.max(lineDiv.offsetTop - (lineDiv.offsetTop % SIMPLE_TABLE_ROW_HEIGHT), minPos), maxPos);\n lineDiv.style.top = `${newPos - 1}px`;\n /* stop moving when mouse button is released:*/\n document.onmouseup = null;\n document.onmousemove = null;\n\n const linePosition = Math.floor((parseInt(lineDiv.style.top) + 1) / SIMPLE_TABLE_ROW_HEIGHT);\n this.props.onSplitLineMoveEnd?.(linePosition - 1); // we want position without header here, therefore -1\n this.setState({ linePosition });\n };\n\n dragCircleMouseDown: MouseEventHandler = (e: React.MouseEvent) => {\n if (e.button === MouseButton.MainButton) {\n e.preventDefault();\n document.onmouseup = this.closeDragElement;\n document.onmousemove = this.elementDrag;\n }\n };\n\n updateSimpleBarWidth = () => {\n // once again, SimpleBar doesn't work well enough as browser default scroll bar\n // we want it to take width of its content => do it manually\n if (this.props.contentAfter && this._scrollRef.current) {\n this.props.domManipulatorOrchestrator.registerCallback(\n () => {\n const tableWrapper = this._scrollRef.current.children[0].children[0].children[0] as HTMLDivElement;\n\n return {\n tableWrapperWidth: tableWrapper.clientWidth,\n contentAfterWidth: this._contentAfter.current.clientWidth\n };\n },\n ({ tableWrapperWidth, contentAfterWidth }) => {\n const simpleBarRootDiv = this._scrollRef.current.parentElement.parentElement.parentElement.parentElement as HTMLDivElement;\n\n\n simpleBarRootDiv.style.width = `${tableWrapperWidth}px`;\n simpleBarRootDiv.style.maxWidth = `calc(100% - ${contentAfterWidth}px)`;\n },\n [this._scrollRef, this._contentAfter]\n );\n }\n };\n\n checkGroups = () => {\n let hasGroups = false;\n\n for (const row of this.props.rows) {\n if (row?.type === RowType.Group) {\n hasGroups = true;\n }\n }\n this.setState({\n hasGroups\n });\n };\n\n applyStickyColumns = () => {\n if (!this.props.columns.find(col => col.isSticky)) {\n return;\n }\n\n const columnsStickyVals: Record = {};\n const headerCols = (this._tableRef.current.firstChild.firstChild as HTMLTableRowElement).children;\n\n for (let i = 0; i < this.props.columns.length; i++) {\n const column = this.props.columns[i];\n let left = 0;\n let right = 0;\n\n if (column.isSticky) {\n for (let j = 0; j < this.props.columns.length; j++) {\n if (i === j || !this.props.columns[j].isSticky) {\n continue;\n }\n\n const otherHeaderCol = headerCols[j] as HTMLTableHeaderCellElement;\n\n if (j < i) {\n left += otherHeaderCol.getBoundingClientRect().width;\n } else {\n right += otherHeaderCol.getBoundingClientRect().width;\n }\n }\n\n columnsStickyVals[column.id] = {\n left,\n right\n };\n }\n }\n\n this.setState({\n columnsStickyVals\n });\n };\n\n handleGroupToggle = (rowId: TId) => {\n if (this.props.onGroupToggle) {\n this.props.onGroupToggle(rowId);\n } else {\n const stringId = rowId.toString();\n const newState = isDefined(this.state.openedGroups[stringId]) ? !this.state.openedGroups[stringId] : !getRowFromArray(this.props.rows, rowId).open;\n\n this.setState({\n openedGroups: {\n ...this.state.openedGroups,\n [stringId]: newState\n }\n });\n }\n };\n\n getGroupOpenState = (row: ISimpleTableRow) => {\n if (this.props.onGroupToggle) {\n return row.open;\n } else {\n const openedState = this.state.openedGroups[row.id.toString()];\n\n return isDefined(openedState) ? openedState : row.open;\n }\n };\n\n renderHeader = () => {\n return (\n \n {this.props.showOrder &&  }\n {this.props.columns.map((column, index) => (\n \n {column.label}\n \n ))}\n \n );\n };\n\n renderRow = (row: ISimpleTableRow, focusProps: IFocusableItemProps, path: string, level = 0): React.ReactElement => {\n const isOpen = !!row && this.getGroupOpenState(row);\n const statusIcon = row?.statusHighlight && ();\n let rowContent;\n const rowNumber = this.props.rows.findIndex(r => r && r?.id === row?.id) + 1;\n\n if (row?.type === RowType.Merged) {\n rowContent = (\n \n {row.content}\n \n );\n } else {\n let currentColSpan = 0;\n\n rowContent = row && this.props.columns.map((column, i) => {\n currentColSpan -= 1;\n\n if (currentColSpan > 0) {\n return null;\n }\n\n const colSpan = row.colSpan?.[column.id];\n currentColSpan = colSpan;\n\n const value = getValue(row.values[column.id]);\n const isObject = isRowValueCellValueObject(value);\n let cellContent: React.ReactNode = isObject ? value.value : value;\n const tooltip = isObject ? value.tooltip : value;\n const hasGroupPadding = (level > 0 || this.state.hasGroups);\n\n if (hasGroupPadding && i === 0) {\n cellContent = (\n \n {row.type === RowType.Group &&\n this.handleGroupToggle(row.id)}>\n \n \n }\n {cellContent}\n \n );\n }\n\n return (\n \n {(ref) => {\n const hasPinkBg = !!(this.props.onSplitLineMoveEnd && rowNumber >= this.state.linePosition);\n return (\n \n {i === 0 && statusIcon}\n {cellContent}\n \n );\n }}\n \n );\n });\n }\n\n return (\n \n e.key === KeyName.Enter && this.props.onRowSelect?.(row.id, this.state.linePosition)}\n onClick={() => this.props.onRowSelect?.(row.id, this.state.linePosition)}\n data-testid={TestIds.TableRow}>\n {this.props.showOrder && \n {!row.selected && rowNumber}\n {row.selected && \n {rowNumber}\n \n }\n }\n {rowContent}\n \n {isOpen && row.rows && row.rows.map((childRow, i) => this.renderRow(childRow, focusProps, `${path}-${i}`, level + 1))}\n \n );\n };\n\n renderRows = (rowFocusProps: IFocusableItemProps) => {\n return (\n \n {this.props.rows.map((row, i) => this.renderRow(row, rowFocusProps, i.toString()))}\n \n );\n };\n\n renderContentAfter = () => {\n if (!this.props.contentAfter) {\n return null;\n }\n\n return (\n
\n \n {this.props.rows.map((row, index) => {\n return (\n \n {this.props.contentAfter(row, index)}\n \n );\n })}\n
\n );\n };\n\n handleTableRef = (ref: HTMLDivElement, wrapperRef: React.RefObject) => {\n handleRefHandlers(ref, this.props.passRef, this._tableRef, wrapperRef);\n };\n\n render() {\n return (\n \n {({ itemProps, wrapperProps }) => {\n let result = (\n
\n {/*todo better solution how to have busyIndicator (which have by default 100% width)*/}\n {/*but that can't be inside */}\n {/*without arbitrary div*/}\n {this.props.busyIndicator}\n {this.props.onSplitLineMoveEnd &&\n \n \n \n }\n {\n this.handleTableRef(ref, wrapperProps.ref);\n }}>\n \n {this.renderHeader()}\n \n {this.renderRows(itemProps)}\n \n \n );\n\n // only render scrollbar if afterContent is used, so that we don't always have to deal with the problems it causes\n if (this.props.contentAfter || this.props.useHorizontalScrollbar) {\n result = (\n \n \n {result}\n \n {this.props.contentAfter ? this.renderContentAfter() : null}\n \n );\n }\n\n return result;\n }}\n \n );\n }\n}\n\nexport default withDomManipulator(withBusyIndicator({ passBusyIndicator: true })(SimpleTable));","import styled from \"styled-components/macro\";\n\nexport const StyledSimpleTableWithPaginator = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;","import styled from \"styled-components/macro\";\nimport { getFocusBorderElement, T_PLAIN_small } from \"../../global.style\";\n\nexport const StyledPaginator = styled.div`\n display: flex;\n align-items: center;\n\n & > :first-child, & > :nth-last-child(2) {\n margin-right: 4px;\n }\n\n & > :not(:first-child):not(:last-child):not(:nth-last-child(2)) {\n margin-right: 6px;\n }\n\n position: relative;\n ${getFocusBorderElement({ offset: 0, keyboardOnly: true })}\n`;\n\nexport const EllipsisWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: ${props => props.theme.C_ACT_main};\n ${T_PLAIN_small};\n`;","import React from \"react\";\nimport { Button, IconButton } from \"../button\";\nimport { CaretIcon } from \"../icon\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { clamp, TabIndex } from \"@utils/general\";\nimport { EllipsisWrapper, StyledPaginator } from \"./Paginator.styles\";\nimport { ELLIPSIS_CHAR } from \"../../constants\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../focusManager/FocusManager\";\nimport TestIds from \"../../testIds\";\nimport { ButtonSize } from \"../button/Button.utils\";\n\ninterface IProps extends WithTranslation {\n /** Page number from zero */\n page: number;\n pagesCount: number;\n onPageChange: (page: number) => void;\n}\n\nconst MAX_ITEMS_COUNT = 7;\n\nclass Paginator extends React.PureComponent {\n componentDidMount() {\n this.setPage(this.props.page);\n }\n\n componentDidUpdate(prevProps: IProps) {\n // prevent page from being outside of pagesCount\n this.setPage(this.props.page);\n }\n\n handlePreviousClick = () => {\n this.setPage(this.props.page - 1);\n };\n\n handleNextClick = () => {\n this.setPage(this.props.page + 1);\n };\n\n setPage = (page: number) => {\n const newPage = clamp(page, 0, this.props.pagesCount - 1);\n\n if (newPage !== this.props.page) {\n this.props.onPageChange(newPage);\n }\n };\n\n getMiddle(value: number) {\n return Math.floor(MAX_ITEMS_COUNT / 2);\n }\n\n getCurrentPagePos = (page: number, pagesCount: number, maxItems: number) => {\n const middle = this.getMiddle(maxItems);\n\n if (page < middle) {\n return page;\n } else if (pagesCount - page - 1 < middle) {\n return maxItems - 1 - (pagesCount - 1 - page);\n } else {\n return middle;\n }\n };\n\n renderButtons = (itemProps: IFocusableItemProps) => {\n const buttons = [];\n\n const itemsCount = Math.min(this.props.pagesCount, MAX_ITEMS_COUNT);\n const currentPagePos = this.getCurrentPagePos(this.props.page, this.props.pagesCount, itemsCount);\n\n buttons.push(this.renderButton(0, itemProps));\n\n\n for (let i = 1; i < itemsCount - 1; i++) {\n const diff = currentPagePos - i;\n const page = this.props.page - diff;\n const middle = this.getMiddle(itemsCount);\n\n if (this.props.pagesCount > MAX_ITEMS_COUNT &&\n ((i === 1 && this.props.page > middle) || (i === itemsCount - 2 && this.props.pagesCount - 1 - this.props.page > middle))) {\n buttons.push(this.renderDots(page));\n } else {\n buttons.push(this.renderButton(page, itemProps));\n }\n }\n\n buttons.push(this.renderButton(this.props.pagesCount - 1, itemProps));\n\n\n return buttons;\n };\n\n renderButton = (i: number, itemProps: IFocusableItemProps) => {\n const isSelected = this.props.page === i;\n\n return (\n \n );\n };\n\n renderDots = (i: number) => {\n return (\n \n {ELLIPSIS_CHAR}\n \n );\n };\n\n render() {\n return (\n \n {({ itemProps, wrapperProps }) => (\n \n \n \n \n {this.renderButtons(itemProps)}\n \n \n \n \n )}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(Paginator);","import React from \"react\";\nimport SimpleTable, { ISimpleTableProps } from \"./SimpleTable\";\nimport { ILoadMoreItemsEvent, IRow } from \"../table\";\nimport { StyledSimpleTableWithPaginator } from \"./SimpleTableWithPaginator.styles\";\nimport Paginator from \"../paginator/Paginator\";\nimport { isNotDefined } from \"@utils/general\";\nimport { ScrollBar } from \"../scrollBar\";\n\ninterface IProps extends ISimpleTableProps {\n pageSize: number;\n currentPage: number;\n rowCount?: number;\n onPageChange?: (page: number) => void;\n onLoadMoreItems?: (props: ILoadMoreItemsEvent) => void;\n passRef?: React.Ref;\n renderScrollbar?: boolean;\n}\n\nexport default class SimpleTableWithPaginator extends React.PureComponent {\n static defaultProps = {\n renderScrollbar: true\n };\n\n componentDidMount() {\n this.checkRows();\n }\n\n componentDidUpdate() {\n this.checkRows();\n }\n\n checkRows = (): void => {\n if (this.props.busy) {\n return;\n }\n\n const { from, to } = this.getCurrentPageRange();\n\n for (let i = from; i < to; i++) {\n if (this.props.rows[i] === undefined) {\n // load rows up the end of this page\n this.props.onLoadMoreItems?.({\n startIndex: i,\n stopIndex: to\n });\n\n break;\n }\n }\n };\n\n getRowCount = (): number => {\n return this.props.rowCount ?? this.props.rows.length;\n };\n\n getPageCount = (): number => {\n return Math.ceil(this.getRowCount() / this.props.pageSize);\n };\n\n getCurrentPageRange = (): { from: number, to: number } => {\n const pageStart = this.props.currentPage * this.props.pageSize;\n const pageEnd = Math.min(pageStart + this.props.pageSize, this.getRowCount());\n\n return { from: pageStart, to: pageEnd };\n };\n\n getRows = (): IRow[] => {\n if (this.props.busy && isNotDefined(this.props.rowCount)) {\n // empty rows to keep table height while loading\n return new Array(this.props.pageSize).fill(null);\n }\n\n const rows: IRow[] = [];\n const { from, to } = this.getCurrentPageRange();\n\n for (let i = from; i < to; i++) {\n rows.push(this.props.rows[i]);\n }\n\n return rows;\n };\n\n render() {\n const { rows, ...passProps } = this.props;\n const rowCount = this.props.rowCount ?? this.props.rows.length;\n\n if (this.props.currentPage !== 0) {\n delete passProps.onSplitLineMoveEnd;\n delete passProps.splitLinePosition;\n }\n\n const table = (\n \n );\n\n return (\n \n {this.props.renderScrollbar ? (\n \n {table}\n \n ) : table}\n {rowCount > this.props.pageSize &&\n \n }\n \n );\n }\n}","export enum SimpleTimeLineStatus {\n History = \"History\",\n Current = \"Current\",\n Future = \"Future\"\n}\n\nexport const SIMPLE_TIMELINE_POINT_SIZE = 12;\nexport const SIMPLE_TIMELINE_POINT_MARGIN = 16;","import { ISelectGroup, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { IOrderBy } from \"@odata/OData\";\nimport { ICreateFilterStringSettings, IFormatOptions, IPrepareQuerySettings } from \"@odata/OData.utils\";\nimport { TTemporal } from \"@odata/TemporalUtils\";\nimport { TFieldDefinitionFactory } from \"@pages/PageUtils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { IOneFetch } from \"@utils/oneFetch\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { TestConfig, TestContext, ValidationError } from \"yup\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n CacheStrategy,\n FieldType,\n FieldVisibility,\n GroupedField,\n LabelStatus,\n ODataFilterFunction,\n RadioButtonGroupLayout,\n Status,\n TextAlign,\n ValidatorType,\n ValueType\n} from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { IFilterQuery, TableStorage } from \"../../model/TableStorage\";\nimport { TValidatorSettings } from \"../../model/Validator.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { DisplayFormat } from \"../../types/Date\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { IChangedFilter } from \"../../views/table/TableView.utils\";\nimport { IAlertProps } from \"../alert/Alert\";\nimport { DateRangeSpecialValue, TDisabledDateUnit } from \"../inputs/date/popup/Calendar.utils\";\nimport { IFormatterFns } from \"../inputs/input/WithFormatter\";\nimport { IRadioButtonDefinition } from \"../inputs/radioButtonGroup/RadioButtonGroup\";\nimport { ISwitchIconSet, SwitchType } from \"../inputs/switch/Switch\";\nimport { ISmartFieldRenderProps } from \"./smartField/SmartField\";\nimport { ISmartFieldEvents } from \"./smartField/SmartFieldUtils\";\nimport { IDependentFieldDef } from \"./smartFormGroup/SmartFormGroup\";\nimport { TExportFormatterFn, TFormatterFn } from \"./smartTable/SmartTable.utils\";\n\nexport type TValidatorMessageCallback = (args: Partial) => string;\nexport type TValidatorFnResult = boolean | ValidationError;\nexport type TValidatorFn = (value: TValue, args: IGetValueArgs, testContext?: TestContext) => TValidatorFnResult | Promise;\n// other args is the original \"info\" object\nexport type TGetValueFn = (args: IGetValueArgs, otherArgs?: TRecordAny) => type;\nexport type TInfoValue = type | TGetValueFn;\n\nexport interface IValidator {\n type: ValidatorType;\n settings?: TValidatorSettings;\n}\n\nexport interface IFieldInfoFilter {\n /** Used as filter in oData request, when fetching select items */\n select?: TInfoValue;\n\n /** Used as filter in oData request, when fetching data in table view.\n * Overrides default filter built by table view with custom filter query. */\n buildFilter?(item: IChangedFilter, settings: ICreateFilterStringSettings, storage: TableStorage): string | IFilterQuery;\n\n /** Used to transform filter value in reports in case we need different value of the\n * filter than the saved one. Similar behavior to buildFilter for oData */\n transformFilterValue?(value: TValue, info: IFieldInfo): TValue;\n\n /** Changes how the filter is build for null values.\n * False (default), expects the navigation value to be null, e.g. Items/any(x: x/Vat eq null)\n * True, expects the whole navigation to be empty, e.g. not(Labels/any())\n * */\n nullFilterMeansEmptyCollectionFilter?: boolean;\n /** Changes how filter is build for collections.\n * When false, collection filter is applied both as root filter and as filter in the expand of the collection.\n * When true, filter is only applied in root and not in the collection expand.\n * E.g.\n * false - $expand=Items($expand=LinkedDocument($filter=startswith(LinkedDocument/NumberOurs,'FAP2022000008'))&$filter=Items/any(x: startswith(x/LinkedDocument/NumberOurs,'FAP2022000008'))\n * true - $expand=Items($expand=LinkedDocument()&$filter=Items/any(x: startswith(x/LinkedDocument/NumberOurs,'FAP2022000008'))\n * */\n onlyApplyCollectionFilterOnRoot?: boolean;\n\n /**\n * When we use string filter, we may want to define different filter function (default is \"StartsWith\")\n */\n stringFilterFn?: ODataFilterFunction;\n\n /**\n * custom oData function applied on the column, e.g. \"abs\" or other supported mathematical function\n */\n oDataFn?: string;\n\n /** Used for composite value help filters like BankAccount which is made from AccountNumber and BankCode (and some other values...)\n * props should be relative to root binding context path.\n * groupByProperties are added to the query and used to create unique id for value help select items.\n * Use custom buildFilter method if you need some smart behavior for ConditionalDialog complex filter values.\n * */\n groupByProperties?: string[];\n /**\n * Used to define custom values (different from what is stored in \"parsedValue\" of TableStorage) for the read only values in FilterBar\n */\n customReadOnlyParsedValue?: TInfoValue;\n}\n\nexport interface IAffectedField {\n id: string;\n navigateFromParent?: boolean;\n reload?: boolean;\n // if set to true, validateField is gonna be called for this field\n revalidate?: boolean;\n}\n\nexport interface ITableSettings {\n // needed for navigation properties to show correct value in table and excel export\n displayName?: string;\n hierarchy?: string;\n disableSort?: boolean;\n}\n\nexport interface IFieldDef extends IFieldInfoProperties {\n id: string;\n factory?: TFieldDefinitionFactory;\n isCollectionField?: boolean;\n}\n\nexport interface IInputSettings extends IFormatterFns {\n // time in ms, in which input sends normal onchange event but with triggerAdditionalChange flag\n debouncedWait?: number;\n placeholder?: TInfoValue;\n unit?: TInfoValue;\n}\n\nexport interface ICustomizationData {\n // fields, which depends on the field. They are not used for customization, they are displayed always directly after\n // the field in order in this prop and cannot be customized\n dependents?: string[];\n useForCustomization?: TInfoValue;\n // customization of groups -> group can be locked. In that case it's not possible to change its layout\n // (order of fields, add fields in it, etc...)\n isLocked?: boolean;\n // for some reason if the field is required for form (at least to be present but still available to be empty)\n isRequired?: TInfoValue;\n}\n\nexport interface ISmartEventData {\n storage: Model;\n bindingContext: BindingContext;\n}\n\nexport interface ISelectSettings {\n // name of the column with display name to select components\n displayName?: string;\n // name of the property which is supposed to be used as 'id' in the items\n // by default, SmartSelect use key property of the current binding context (Id/Code)\n // currently used in Saldo.tsx to change id of items from Id to Number\n idName?: string;\n\n // static additional items\n additionalItems?: ISelectItem[];\n\n groups?: ISelectGroup[];\n\n // for multiselects and another M:N relations this field specifies path in collection to the ID of the item\n keyPath?: string;\n\n orderBy?: IOrderBy;\n // queryParams passed into Odata.query object (like charted=1)\n queryParams?: TInfoValue>;\n\n // defines custom entitySet from which the select items should be loaded\n // needed when we can't deduce the entitySet from the metadata\n entitySet?: TInfoValue;\n isEnum?: boolean;\n\n // for cases entityset is defined and display name in entity and select's entity set is different -->\n // keep displayName correct with entity loaded and this display name is shown for select purposes\n entitySetDisplayName?: string;\n\n // default values for select type components\n items?: ISelectItem[];\n\n cacheFetchedItemsInFieldInfo?: boolean;\n itemsFactory?: (args: IGetValueArgs) => Promise;\n // itemsFactory for conditional dialog - we should have in separate property as itemsFactory is used for value help (same field definition)\n conditionalDialogItemsFactory?: (args: IGetValueArgs) => Promise;\n // itemsForRender is called on every render, can alter items shown by SmartSelect (e.g. filter out some unwanted items)\n itemsForRender?: (items: ISelectItem[], args: IGetValueArgs) => ISelectItem[];\n // transform items is called after fetch before the items are stored in fieldInfo\n transformFetchedItems?: (items: ISelectItem[], args: IGetValueArgs) => ISelectItem[];\n // endpoint for custom backend calls\n endpoint?: TInfoValue;\n // called before items fetch,\n // very useful if the select is dependent on another data, and you need to load them before transformFetchedItems is called\n onBeforeRequest?: (args: IGetValueArgs) => Promise;\n /** If true, select doesn't display no record found item when there is some nonexisting item typed */\n allowCreate?: boolean;\n /** Suffix for translation string for select for no selection values(we won't display empty field in such cases) */\n noRecordText?: string;\n preventNoRecordDefaultStyle?: boolean;\n dontDisplayNoDataFound?: boolean;\n // custom settings passed to prepareQuery when loading the smart select items\n querySettings?: IPrepareQuerySettings;\n // allows to specify search type -> Numbers, to get better search results for searching formatted/unformatted numbers\n // e.g. 1000 matches 1 000 etc...\n searchType?: ValueType;\n\n // fields affected by selection (usually field loaded for additional data)\n dependentFields?: IDependentFieldDef[];\n\n // dependent fields which are not requested from server but are searched in items additional data\n localDependentFields?: IDependentFieldDef[];\n\n // should we immediately change a value if user navigates in select by arrows?\n useAutoSelection?: boolean;\n // should we preselect items (highlight them and show the rest of the label selected in input,\n // so user can confirm it with tab\n useTypingForward?: boolean;\n\n // minimum characters to open basic select menu\n minCharsToOpenMenu?: number;\n\n // flag if tabular header should be displayed\n showTabularHeader?: boolean;\n\n // hide display all button for multi selects\n hideDisplayAll?: boolean;\n\n // for hierarchical multiselects check(uncheck) children(parents) based on checked hierarchy data\n shouldCheckParents?: boolean;\n shouldCheckChildren?: boolean;\n\n // for tabular selects, display additional (not display name) columns in input\n shouldDisplayAdditionalColumns?: boolean;\n\n // items for display information before original items are loaded\n initialItems?: ISelectItem[];\n\n // other properties to be retrieved by select and stored in select items, but not used as columns\n additionalProperties?: IFieldDef[];\n\n // in some cases current value is dynamically set based by item's values not just simple value (f.e. account assignment)\n // in such cases such value can be incorrect\n dontSetCurrentValueFromEntity?: boolean;\n\n // allow custom select handling in forms (custom icon, custom selection dialog\n onClick?: (e: React.MouseEvent, args: ISmartEventData) => void;\n onIconActivate?: (e: React.MouseEvent, args: ISmartEventData) => void;\n inputIcon?: React.ReactElement;\n\n // load items before open, in some cases it's better than handle default value manually\n preloadItems?: boolean;\n // Pass itemContent of the selected item into Input as contentBefore\n passItemContentToInput?: boolean;\n\n // there are case, where we want to display some custom tabular data for selected item,\n // which are not in the select menu. We can use this callback then.\n getCustomTabularData?: (val: TValue, args: IFormatOptions) => string[];\n\n trailingTextWithoutFocus?: TInfoValue; // for smart label select (eg. \"(Default)\" after tokens)\n renderDefaultGroupWithoutCheckboxes?: boolean;\n}\n\nexport enum AuditTrailFieldType {\n Difference = \"Difference\",\n NoDifference = \"NoDifference\",\n HoveredDifference = \"HoveredDifference\",\n HoveredNoDifference = \"HoveredNoDifference\"\n}\n\nexport interface ISwitchSettings {\n type?: SwitchType;\n iconSet?: ISwitchIconSet;\n}\n\nexport interface IFieldDefFn {\n storage: Model;\n fieldElement?: React.ReactElement;\n props?: ISmartFieldRenderProps;\n events?: ISmartFieldEvents;\n}\n\nexport type TFieldDefFn = (args: IFieldDefFn) => React.ReactNode;\n\n\nexport interface IDateSettings {\n // if the picker doesn't have value assigned, preview value will be shown in the popup\n previewValue?: TInfoValue;\n // default date which is filled after user writes down only part of date (something like '0407')\n workDate?: TInfoValue;\n minDate?: TInfoValue;\n maxDate?: TInfoValue;\n showSpecialValue?: DateRangeSpecialValue;\n // custom callback to disable arbitrary values in the date popup\n isDateDisabled?: (date: Date, unit: TDisabledDateUnit) => boolean;\n}\n\nexport interface ITokenFieldSettings {\n color?: string;\n}\n\nexport interface IColorPickerSettings {\n colors?: string[];\n}\n\nexport interface IReportFieldInfoSettings {\n /** Parameter is only for front end usage and will not be automatically send with the request */\n frontendOnly?: boolean;\n /** Id of the configuration group */\n groupId?: string;\n aggregationFunction?: string;\n}\n\nexport interface IFilterSettings {\n /** Moves the filter field closer to the previous filter.\n * Only one use case now, if more were to come => crete filter groups. */\n groupWithPrevious?: boolean;\n}\n\nexport interface IWriteLineSettings {\n isExtending?: boolean;\n maxLength?: number;\n}\n\nexport interface INumericSettings {\n min?: number;\n max?: number;\n showSteppers?: boolean;\n}\n\nexport interface IRadioButtonGroupSettings {\n definition?: IRadioButtonDefinition[];\n defaultChecked?: string;\n layout?: RadioButtonGroupLayout;\n}\n\nexport interface IBusinessPartnerSelectSettings {\n loadFromDb?: boolean;\n}\n\nexport interface ILabelSelectSettings {\n oneItemPerHierarchy?: boolean;\n}\n\nexport interface ITextAreaSettings {\n maxRows?: number;\n minRows?: number;\n}\n\nexport interface IEditableTextSettings extends ITextAreaSettings {\n showRequiredMark?: boolean;\n isResponsive?: boolean;\n}\n\nexport interface ICheckBoxSettings {\n checkBoxFieldLabel?: string;\n}\n\nexport interface ITemporalPropertySettings {\n temporalDialog?: {\n /** Title of the SmartTemporalPropertyDialog */\n dialogTitle?: string;\n /** If not specified, dialog will only contain the current field and DateValidFrom/DateValidTo.\n * This can be used to specify multiple fields that should be edited together.\n * !! WARNING !!\n * If multiple fields should be grouped together, columns has to be specified in each of the fields definitions.\n * This is so that when the fields are edited in the form, not from the dialog,\n * we still know about the relation between all of them.*/\n columns?: string[];\n /** change the type of DateValidFrom/To field */\n dateType?: FieldType;\n /** Only one item can be planned into the future */\n onlyOneFuturePlan?: boolean;\n // columns? for when there are multiple fields (temporal collection?)\n /** Every interval has to be connected to each other, can't plan into the future with a gap */\n withoutGaps?: boolean;\n /** Property cannot be removed, only changed to another value => DateValidTo should be disabled */\n cannotBeEnded?: boolean;\n /** Use to define the default value that is automatically uses for DateValidFrom,\n * so far we need either day (for current day) or month for start of the current month.\n * If something specials is needed, use defaultDateValidFrom instead.\n * \"month\" is used by default*/\n granularity?: \"month\" | \"day\";\n /** Custom default value for DateValidFrom for newly add line item */\n customDateValidFrom?: (items?: TTemporal[]) => Date;\n /** Custom callback to disable arbitrary values in the DateValidFrom popup */\n isCalendarDateDisabledDateValidFrom?: (date: Date, unit: TDisabledDateUnit) => boolean;\n /** Custom callback to disable arbitrary values in the DateValidTo popup */\n isCalendarDateDisabledDateValidTo?: (date: Date, unit: TDisabledDateUnit) => boolean;\n /** If value is somehow synchronized (that means there is null value in the temporalPropertyBag),\n * we need to replace it with real values when dialog is opened. This callback should do the job and\n * return the expanded values */\n extractHistory?: (storage: FormStorage, entity: IEntity, propertyBag: TTemporal[]) => Promise;\n };\n /** Field value is taken from some other entity => field is supposed to look different */\n isSynchronized?: TInfoValue;\n}\n\nexport type TTemporalDialogSettings = ITemporalPropertySettings[\"temporalDialog\"];\n\nexport interface IFieldSettings extends IInputSettings, ISelectSettings,\n ISwitchSettings, IDateSettings, ITableSettings, IReportFieldInfoSettings,\n IWriteLineSettings, IFilterSettings, ILabelSelectSettings, ICheckBoxSettings,\n INumericSettings, IColorPickerSettings, ITokenFieldSettings, IRadioButtonGroupSettings,\n IBusinessPartnerSelectSettings, ITextAreaSettings, IEditableTextSettings, ITemporalPropertySettings {\n\n}\n\nexport enum AuditTrailFieldMode {\n Default = \"Default\",\n Hidden = \"Hidden\",\n DisplayedButIgnored = \"Ignored\"\n}\n\nexport type TFieldDefaultValue = TValue | TValue[] | TRecordAny;\n\n// TODO readme (+ storybook) with example and explanation of all the different properties\nexport interface IFieldInfoProperties {\n // type of control handling the field\n type?: FieldType;\n // type of the value that the field represents (e.g. Number, String, Date..)\n valueType?: ValueType;\n // arbitrary props passed down to the component (e.g. Switch type...)\n fieldSettings?: IFieldSettings;\n // label of the field\n label?: string;\n // another possible part of the label, used e.g. in configuration dialogs, like \"Ulice (Korespondenční adresa)\"\n description?: string | boolean;\n descriptionPath?: string; // custom description binding context path, e.g. for localContext fields\n showLabelDescription?: boolean;\n tooltip?: TInfoValue;\n disableSort?: boolean;\n // adds extra content to Field before Input\n extraFieldContent?: TInfoValue;\n // adds extra content to Field after Input\n extraFieldContentAfter?: TInfoValue;\n tooltipAfter?: TInfoValue;\n customFieldStyle?: React.CSSProperties;\n\n // default value of the field\n defaultValue?: TFieldDefaultValue | ((args: IGetValueArgs) => TFieldDefaultValue);\n // name of the column which the filters/autocomplete should use for filtering on the entity set. by default it's key property\n // can be multiple strings to force one filter definition to filter on multiple properties\n filterName?: string | string[];\n shouldNotFilterCollection?: boolean;\n displayFormat?: DisplayFormat;\n // used in Select to define popup columns and in Table to define meta columns\n columns?: IFieldDef[];\n // indicator for required\n isRequired?: TInfoValue;\n // with of the wrapper fields&labels will be set to 100%. Set for controls solo in the row\n isFullRow?: boolean;\n // render field in disabled state => lowered opacity\n isDisabled?: TInfoValue;\n // render field in readonly state => text only\n isReadOnly?: TInfoValue;\n // validation object for yup validation\n validator?: IValidator;\n useForValidation?: boolean;\n // text shown (after click) for disabled items (similar to locked page)\n disabledText?: TInfoValue;\n // formatter for returned values\n // Formatter for selects -> Select is formatted only twice:\n // A. setCurrentValueFromEntity on model when data are loaded\n // B. smart select load function when they are formatted\n // smart field DOES NOT format select values\n // for tabular selects formatter in main info (NOT COLUMN) is used ONLY for formatting selection of current value\n // for columns use formatting of columns themselves\n formatter?: TFormatterFn;\n // formatter for export -> can be used to export more columns than are displayed in table\n // e.g. document status has 3 icons in one table column, but we want to export it as 3 columns,\n // so user can work with single status values\n exportFormatter?: TExportFormatterFn;\n parser?: (val: string, args?: IFormatOptions) => TValue;\n isValid?: (value: TValue, args: IGetValueArgs) => boolean;\n // field visibility for edit or new\n fieldVisibility?: FieldVisibility;\n isVisible?: TInfoValue;\n width?: TInfoValue;\n labelStatus?: TInfoValue;\n // align of the field input and its label\n textAlign?: TextAlign;\n\n // other properties that should be retrieved from backend together with the main property\n additionalProperties?: IFieldDef[];\n\n // if false the field value is sent to BE even if the field is not visible\n // TRUE BY DEFAULT\n clearIfInvisible?: boolean;\n\n // array of ids which are re-rendered whenever user updates (blur) current field\n // use for dynamically changed properties by callback (required, visible)\n affectedFields?: IAffectedField[];\n\n /** Defines group of fields hidden in collapsed area after current field */\n collapsedRows?: (IFieldDef[])[];\n // if group is marked as 'creating' meaning its collapsed section content some data for new object,\n // this is the string to be rendered as title of the collapsible group\n creatingTitle?: string;\n\n // the value of this field will not be stored directly into the entity but to separate model, so it can be cancelled\n isConfirmable?: boolean;\n\n filter?: IFieldInfoFilter;\n\n // !!!! IMPORTANT!!!!!\n // due to the customization reasons , GROUPED FIELD MULTISTART AND MULTIEND MUST BE ORDERED IN A ROW WITHOUT ANY OTHER FIELDS AMONG THEM !!!!!!!!!!\n groupedField?: TInfoValue;\n auditTrailMode?: AuditTrailFieldMode;\n cacheStrategy?: CacheStrategy;\n\n customizationData?: ICustomizationData;\n // used to check if value is different from orig entity (draft) and to compare in audit trail\n comparisonFunction?: (entity1: IEntity, entity2: IEntity, bc: BindingContext) => boolean;\n // used to ignore value in audit trail check\n useForComparison?: boolean;\n\n // property is related to BE values returned in evala.metadata (disabled flags)\n // mappings for errors returned from backend are handled in form views getCorrectErrorBc\n // in some cases, BE use different path for field than we do on FE (+ our local context fields)\n // use this to map FE paths to BE paths\n backendPath?: string;\n\n render?: TFieldDefFn;\n}\n\nexport interface IGetValueArgs {\n data?: TRecordAny;\n item?: TRecordAny;\n context?: IAppContext;\n info?: IFieldInfoProperties;\n // remnants of IFieldCheckArgs\n bindingContext?: BindingContext;\n dataBindingContext?: BindingContext;\n storage?: Model;\n fastEntryListId?: string;\n fetchFn?: IOneFetch;\n isValidateAll?: boolean;\n}\n\nexport type TInfoValueProp =\n \"isItemVisible\"\n | \"isRequired\"\n | \"isDisabled\"\n | \"isReadOnly\"\n | \"isRemovable\"\n | \"isVisible\"\n | \"isItemRemovable\"\n | \"isItemCloneable\"\n | \"isItemDisabled\"\n | \"isItemReadOnly\"\n | \"isItemSelectable\"\n | \"endpoint\"\n | \"select\"\n | \"entitySet\"\n | \"defaultValue\"\n | \"previewValue\"\n | \"dependentFields\"\n | \"filter\"\n | \"filterOperator\"\n | \"unit\"\n | \"tooltip\"\n | \"groupedField\"\n | \"isCollapsedVisible\"\n | \"isValueHelp\"\n | \"disabledAlert\"\n | \"title\"\n | \"hoverAlert\"\n | \"placeholder\"\n | \"link\"\n | \"secondaryBookmark\"\n | \"itemsSummaryRenderer\"\n | \"extraFieldContent\"\n | \"extraFieldContentAfter\"\n | \"labelStatus\"\n | \"tooltipAfter\"\n | \"disabledText\"\n | \"width\"\n | \"useForCustomization\"\n | \"useForValidation\"\n | \"isDeletable\"\n | \"workDate\"\n | \"minDate\"\n | \"maxDate\"\n | \"isSynchronized\"\n | \"queryParams\"\n | \"trailingTextWithoutFocus\"\n | \"customReadOnlyParsedValue\";\n\nexport function isTGetValueFn(val: TInfoValue): val is TGetValueFn {\n return typeof val === \"function\";\n}\n\nfunction getValue(value: TInfoValue, args: IGetValueArgs, obj: TRecordAny): T {\n if (isTGetValueFn(value)) {\n return value(args, obj);\n }\n\n return value;\n}\n\nexport const getInfoValue = (obj: TRecordAny, name: TInfoValueProp, args?: IGetValueArgs) => {\n if (isNotDefined(obj)) {\n return undefined;\n }\n\n return getValue(obj[name], args, obj);\n};\n\nexport function allowCreateValues(info: IFieldInfoProperties): boolean {\n return info?.fieldSettings?.allowCreate || [FieldType.Autocomplete].includes(info?.type);\n}\n\nexport function getInfoByPath(storage: FormStorage, path: string): IFieldInfo {\n const accAssBc = storage.data.bindingContext.navigate(path);\n return storage.getInfo(accAssBc);\n}\n\nexport const isRequired = (args: IGetValueArgs): boolean => {\n if (args.info?.isRequired !== undefined) {\n return getInfoValue(args.info, \"isRequired\", args);\n }\n\n return args.bindingContext?.getProperty()?.isNullable() === false;\n};\n\n// for customization, we consider just existing condition for required field, so we don't allow to remove field,\n// which might become required on certain conditions.\nexport const isRequiredForCustomization = (args: IGetValueArgs): boolean => {\n const { info } = args;\n if (info?.isRequired === false) {\n // in case we explicitly set false as isRequired, we don't want to check any other conditions\n return false;\n }\n if (isDefined(info?.customizationData?.isRequired)) {\n // required for customization could be conditional, but MUST NOT depend on formular data.\n // it should be consistent accross all use cases where the customization is applied, so pass only\n // context to distinguish e.g. VatPayer companies from non-VatPayer\n const context = args.context ?? args.storage?.context;\n return getInfoValue(info.customizationData, \"isRequired\", { context });\n }\n if (info?.isRequired !== undefined) {\n return true;\n }\n\n return args.bindingContext?.getProperty()?.isNullable() === false;\n};\n\nexport const isFieldDisabledWithoutLock = (fieldInfo: IFieldInfo, storage: Model, bindingContext: BindingContext, fastEntryListId?: string): boolean => {\n return getInfoValue(fieldInfo, \"isDisabled\", {\n bindingContext,\n storage,\n context: storage?.context,\n data: storage?.data.entity,\n fastEntryListId\n });\n};\n\nexport const isFieldDisabled = (fieldInfo: IFieldInfo, storage: Model, bc: BindingContext, fastEntryListId?: string): boolean => {\n if (!!(storage as FormStorage).getBackendDisabledFieldMetadata?.(bc)) {\n return true;\n }\n\n // used when lock or delete table action is active\n const isStorageDisabled = storage?.isDisabled;\n return isStorageDisabled || isFieldDisabledWithoutLock(fieldInfo, storage, bc, fastEntryListId);\n};\n\nexport const isFieldReadOnly = (fieldInfo: IFieldInfo, storage: Model, bc: BindingContext) => {\n const isReadOnlyForm = (storage as FormStorage).isReadOnly;\n /**\n * Priority is a little tricky here. More situations:\n * - we are forcing fiscalPeriod on document not to be readOnly even if set on BE\n * - we have readOnly flag on form and some fields have special conditions also, e.g. on COA/COAHist form\n * Solution: In case whole form is readOnly, we respect that for every field. Otherwise we prioritize local config\n * over the backend one.\n */\n if (isReadOnlyForm) {\n return true;\n }\n return getInfoValue(fieldInfo, \"isReadOnly\", {\n bindingContext: bc,\n storage,\n data: storage?.data.entity\n }) ?? bc.getProperty()?.isReadOnly();\n};\n\nexport const isVisible = (args: IGetValueArgs): boolean => {\n const info = args.info ?? args.storage?.getInfo(args.bindingContext);\n const isVisible = getInfoValue(info, \"isVisible\", args);\n\n if (isDefined(isVisible)) {\n return isVisible;\n } else {\n // return true by default only when there is field info -> the field without fieldinfo is not visible\n return !!info;\n }\n};\n\nexport const isVisibleByPath = (storage: FormStorage, path: string, data?: TRecordAny): boolean => {\n const bindingContext = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bindingContext);\n return isVisible({\n storage, bindingContext, info, data, context: storage.context\n });\n};\n\nexport const isReadOnlyByPath = (storage: FormStorage, path: string): boolean => {\n const bc = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bc);\n return isFieldReadOnly(info, storage, bc);\n};\n\nexport const isFieldDisabledByPath = (storage: FormStorage, path: string): boolean => {\n const bc = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bc);\n return isFieldDisabled(info, storage, bc);\n};\n\nexport const isEditableByPath = (storage: FormStorage, path: string, data?: TRecordAny): boolean => {\n return isVisibleByPath(storage, path, data) && !isReadOnlyByPath(storage, path) && !isFieldDisabledByPath(storage, path);\n};\n\nexport const DEBUG = \"debug\";\n\nexport function ifAny(...args: (TInfoValue | typeof DEBUG)[]): TGetValueFn {\n const isDebug = args[0] === DEBUG;\n if (isDebug) {\n args.shift();\n }\n return (...conditionArgs) => (args as TInfoValue[]).some((f, idx) => {\n const val = getValue(f, ...conditionArgs);\n if (isDebug && val) {\n // eslint-disable-next-line no-console\n console.debug(`Condition at idx:${idx} succeeded`);\n }\n return val;\n });\n}\n\nexport function ifAll(...args: (TInfoValue | typeof DEBUG)[]): TGetValueFn {\n const isDebug = args[0] === DEBUG;\n if (isDebug) {\n args.shift();\n }\n return (...conditionArgs) => (args as TInfoValue[]).every((f, idx) => {\n const val = isDefined(f) ? getValue(f, ...conditionArgs) : true;\n if (isDebug && !val) {\n // eslint-disable-next-line no-console\n console.debug(`Condition at idx:${idx} failed`);\n }\n return val;\n });\n}\n\nexport function not(fn: TInfoValue): TGetValueFn {\n return (...conditionArgs) => !getValue(fn, ...conditionArgs);\n}\n\ninterface IDisabledProps {\n isDisabled: boolean;\n disabledAlert?: IAlertProps;\n}\n\nexport const getDisabledProps = (obj: TRecordAny, args: IGetValueArgs): IDisabledProps => {\n const disabled = getInfoValue(obj, \"isDisabled\", args);\n let disabledAlert: IAlertProps;\n\n if (disabled) {\n const disabledAlertInfo = getInfoValue(obj, \"disabledAlert\", args);\n disabledAlert = disabledAlertInfo &&\n {\n isSmall: true,\n status: Status.Error,\n ...disabledAlertInfo\n };\n }\n\n return {\n isDisabled: !!disabled,\n disabledAlert\n };\n};\n\nexport const getSimpleBoolSelectItems = (): ISelectItem[] => {\n return [\n {\n label: i18next.t(\"Common:General.Yes\"),\n id: true\n },\n {\n label: i18next.t(\"Common:General.No\"),\n id: false\n }\n ];\n};\n\nexport function getDaysUnit({ storage, bindingContext }: IGetValueArgs): string {\n const count = storage.getValue(bindingContext) ?? 0;\n return storage.t(\"Common:Time.Days\", { count });\n}\n","import { GroupDividerSize, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n CountryEntity,\n EntitySetName,\n IAddressEntity,\n ICompanyBankAccountEntity,\n IDocumentEntity,\n IEntityLabelEntity,\n ILabelHierarchyEntity,\n IPaymentDocumentItemEntity,\n IVatEntity,\n VatEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode, DocumentTypeCode, VatCode, VatReverseChargeCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { isEeaRule, isEuRuleExceptAgendaDomestic, isVatRegisteredEntity } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { TEntityWithAccount } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport {\n getAccountUsageAcrossCharts,\n IAccountUsage,\n isAccountUsedCheck\n} from \"@pages/chartOfAccounts/ChartOfAccounts.utils\";\nimport { getAgendaCountryCode } from \"@pages/companies/Company.shared.utils\";\nimport { getCompanyUsedCurrencyCodes } from \"@pages/companies/Company.utils\";\nimport { getVatItemsDecisiveDateName, isReceivedBc } from \"@pages/documents/Document.utils\";\nimport { TFieldDefinition, TFieldsDefinition } from \"@pages/PageUtils\";\nimport { getCompanyCurrency, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport {\n BankAccountType,\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n GroupedField,\n LabelStatus,\n NavigationSource,\n TextAlign,\n ValidatorType\n} from \"../../enums\";\nimport { TRecordAny, TRecordType, TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { PHONE_REG, POSTAL_CODE_REG } from \"../../model/Validator.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport NumberType from \"../../types/Number\";\nimport memoize from \"../../utils/memoize\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport Clickable from \"../clickable\";\nimport { getIntentLink } from \"../drillDown/DrillDown.utils\";\nimport { IFormatterFns } from \"../inputs/input/WithFormatter\";\nimport { ICellValueObject, TCellValue, TId } from \"../table\";\nimport Text from \"../text\";\nimport { tableTokenFormatter } from \"../token\";\nimport { getInfoValue, IFieldDef, IFieldInfoProperties, IGetValueArgs, isFieldReadOnly, not } from \"./FieldInfo\";\nimport { getCollapsedGroupId } from \"./Smart.utils\";\nimport { IFilterDef, TFilterDef } from \"./smartFilterBar/SmartFilterBar.types\";\nimport { TFormatterFn } from \"./smartTable/SmartTable.utils\";\n\nexport const AccountDefFormatter = (val: TValue, args?: IFormatOptions): string => {\n const entity = args.item ?? {};\n return entity.Number ? `${entity.Number ?? \"\"} - ${entity.Name ?? \"\"}` : entity.Name;\n};\n\nexport const getAccountDef = (path?: string): IFieldInfoProperties => {\n const obj: IFieldInfoProperties = {\n type: FieldType.HierarchyComboBox,\n cacheStrategy: CacheStrategy.View,\n fieldSettings: {\n displayName: \"Number\",\n localDependentFields: [\n {\n from: { id: \"Number\" }, to: { id: \"Number\" },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"Name\" }, to: { id: \"Name\" },\n navigateFrom: NavigationSource.Itself\n }\n ]\n },\n columns: [{\n id: \"Number\",\n additionalProperties: [{ id: \"/Name\" }, { id: \"/IsClosed\" }],\n formatter: AccountDefFormatter\n }],\n additionalProperties: [{ id: \"Name\" }]\n };\n\n if (path) {\n obj.additionalProperties.push({\n id: path\n });\n }\n\n return obj;\n};\n\nexport const CurrencyDef: IFieldInfoProperties = {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.Route,\n fieldSettings: {\n displayName: \"Code\",\n shouldDisplayAdditionalColumns: true,\n entitySet: EntitySetName.Currencies\n },\n filter: {\n select: ({ context }) => {\n const usedByCompany = getCompanyUsedCurrencyCodes(context);\n return `Code in (${usedByCompany.map((code: string) => `'${code}'`).join(\", \")})`;\n }\n },\n defaultValue: (args: IGetValueArgs) => {\n return getCompanyCurrency(args.context);\n },\n columns: [{ id: \"Code\" }, { id: \"Name\" }],\n additionalProperties: [{\n id: \"MinorUnit\"\n }, {\n id: \"Name\"\n }]\n};\n\nexport const SingleBusinessPartnerDef: IFieldInfoProperties = {\n type: FieldType.BusinessPartnerSelect,\n fieldSettings: {\n allowCreate: true,\n groups: [{\n id: \"aresCZ\",\n title: \"ARES\",\n dividerSize: GroupDividerSize.Tiny\n }, {\n id: \"aresSK\",\n title: \"ARES.SK\",\n dividerSize: GroupDividerSize.Tiny\n }]\n }\n};\n\nexport const getLabelsDef = (translationFile: string): IFieldInfoProperties => ({\n label: i18next.t(`${translationFile}:Form.Labels`),\n type: FieldType.LabelSelect,\n width: BasicInputSizes.XL,\n defaultValue: [],\n fieldSettings: {\n keyPath: \"Label/Id\",\n localDependentFields: [{\n from: { id: \"LabelHierarchy/Id\" },\n to: { id: \"LabelHierarchy/Id\" }\n }]\n },\n additionalProperties: [{ id: \"Label\" }, { id: \"LabelHierarchy\" }]\n});\n\nexport async function extractVirtualColumnsDef(def: IFieldDef, storage: Model): Promise {\n const columnBc = storage.data.bindingContext.navigate(def.id);\n const entitySet = columnBc.getEntitySet().getName();\n const keyPropertyName = columnBc.getKeyPropertyName();\n const { displayName } = def.fieldSettings;\n const query = storage.oData.getEntitySetWrapper(entitySet as EntitySetName)\n .query()\n .filter(getInfoValue(def.filter, \"select\", { context: storage.context }))\n .select(displayName, keyPropertyName)\n .orderBy(displayName);\n const result = await query.fetchData();\n\n return result?.value;\n}\n\nexport const extractVirtualColumnsDefMemoized = memoize(extractVirtualColumnsDef,\n (def: IFieldDef): string => {\n return def.id; // todo: better resolver...\n });\n\nconst LabelsTableColumnDefinitionId = \"Labels/LabelHierarchy\";\nexport const LabelsTableColumnDef: TFieldsDefinition = {\n [LabelsTableColumnDefinitionId]: {\n factory: async (storage): Promise => {\n const labelHierarchies: ILabelHierarchyEntity[] = await extractVirtualColumnsDefMemoized({\n id: LabelsTableColumnDefinitionId,\n fieldSettings: { displayName: \"Name\" }\n }, storage);\n\n const tableColumnDef = {\n fieldSettings: {\n disableSort: true,\n displayName: \"Name\"\n },\n textAlign: TextAlign.Left,\n additionalProperties: [{ id: \"/Labels/Label/Name\" }, { id: \"Color\" }],\n formatter: (val: TValue, args: IFormatOptions): TCellValue => {\n const { entity, info } = args;\n const { key } = BindingContext.parseKey(info.id, true);\n\n const item = entity.Labels.find((documentLabel: IEntityLabelEntity) => documentLabel.LabelHierarchy?.Id === key);\n\n return tableTokenFormatter(item?.Label?.Name, item?.LabelHierarchy?.Color);\n }\n };\n const columnBc = storage.data.bindingContext.navigate(LabelsTableColumnDefinitionId);\n\n return labelHierarchies.map(hierarchy => {\n const columnId = columnBc.addKey(hierarchy).getNavigationPath();\n return {\n ...tableColumnDef,\n id: columnId,\n label: hierarchy.Name\n };\n });\n }\n }\n};\n\n/**\n * Returns filter definition\n * @param basePaths\n */\nexport const getLabelsFilterDef = (...basePaths: string[]): TRecordType => {\n const filterProp = \"Label\";\n const filterPaths = basePaths.map(basePath => `${basePath}/${filterProp}`);\n const basePath = basePaths[0];\n\n return {\n [filterPaths[0]]: {\n factory: async (storage, filterId): Promise<(IFilterDef & IFieldInfo)[]> => {\n let labelHierarchies: ILabelHierarchyEntity[] = await extractVirtualColumnsDefMemoized({\n id: `${basePath}/LabelHierarchy`,\n fieldSettings: {\n displayName: \"Name\"\n }\n }, storage);\n\n let hierarchyId: number;\n const columnBc = storage.data.bindingContext.navigate(basePath);\n\n if (filterId) {\n // filterId is specified -> return only the filter, which corresponds with the Id\n const result = BindingContext.parseKey(filterId, true);\n hierarchyId = result?.key as number;\n labelHierarchies = labelHierarchies.filter(hierarchy => hierarchy.Id === hierarchyId);\n }\n\n return labelHierarchies\n .map((hierarchy) => {\n const bindingContext = columnBc.addKey(hierarchy).navigate(filterProp);\n const id = bindingContext.getNavigationPath(false);\n return {\n id,\n bindingContext,\n filterName: filterPaths.map(path => `/${path}/Name`),\n type: FieldType.LabelSelect,\n label: hierarchy.Name,\n isValueHelp: false,\n textAlign: TextAlign.Left,\n additionalProperties: [{ id: \"/Labels/Label/Name\" }, { id: \"Color\" }],\n fieldSettings: {\n entitySet: `LabelHierarchies(${hierarchy.Id})/Labels`,\n displayName: \"Name\",\n // todo this in combination with filterName helps to show correct label in read only filter bar\n // but sometimes when you add/remove label hierarchy from filters, filter query is not built correctly\n idName: \"Name\",\n dontSetCurrentValueFromEntity: true,\n oneItemPerHierarchy: false\n },\n // generated filter flag -> uses keys in path\n factory: true,\n shouldNotFilterCollection: true,\n filter: {\n select: hierarchyId ? `Id eq ${hierarchyId}` : \"\",\n nullFilterMeansEmptyCollectionFilter: true\n }\n };\n });\n }\n }\n };\n};\n\n\nexport const vatEntityRateFormatter = (vat: TValue | IVatEntity): string => {\n const vatEntity = vat as IVatEntity;\n return vatRateFormatter(typeof (vat) === \"number\" ? vat : vatEntity?.Rate) as string;\n};\n\nexport const vatRateFormatter: TFormatterFn = function(value) {\n return isDefined(value) ? `${value} %` : i18next.t(\"Common:Select.NoVat\") as string;\n};\n\nexport function getValidVats(storage: FormStorage, docType?: DocumentTypeCode, date?: Date): IVatEntity[] {\n const allVats = (storage.context.getData().custom?.Vats ?? []) as IVatEntity[];\n const countryCode = getAgendaCountryCode(storage.context);\n\n // https://solitea-cz.atlassian.net/browse/DEV-26594\n const docTypesWithAlmostAllVats = [DocumentTypeCode.CorrectiveInvoiceReceived, DocumentTypeCode.CorrectiveInvoiceIssued];\n\n // docType is not set for DocumentItemTemplate entity, which shows common Vats -> use currentDate in this case\n const currentDate = date ?? (docType && storage.getValueByPath(getVatItemsDecisiveDateName(storage))) ?? getUtcDayjs();\n let fromDate = currentDate;\n\n if (!docType || docTypesWithAlmostAllVats.includes(docType)) {\n // we need to display valid vats in last 3 years\n fromDate = getUtcDayjs(currentDate).subtract(3, \"years\").startOf(\"year\");\n }\n\n return allVats.filter((vat) => vat.CountryCode === countryCode\n && (!vat.DateValidFrom || getUtcDayjs(vat.DateValidFrom).isSameOrBefore(currentDate, \"day\"))\n && (!vat.DateValidTo || getUtcDayjs(vat.DateValidTo).isSameOrAfter(fromDate, \"day\"))\n );\n}\n\n// if we access i18next, we have to use callback fn instead of static variable\nexport const getDocumentItemVatDef: (docType?: DocumentTypeCode) => Omit = (docType: DocumentTypeCode) => {\n return {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.View,\n fieldSettings: {\n displayName: VatEntity.Rate,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const correspondingVats = getValidVats(args.storage as FormStorage, docType);\n\n const items: ISelectItem[] = correspondingVats.map((vat: IVatEntity): ISelectItem => {\n const label = vatEntityRateFormatter(vat) as string;\n\n return {\n label: label,\n id: vat.Code,\n // since we're building the item by our selves,\n // we need to add additionalProperties as well, otherwise Rate won't get propagated properly\n additionalData: {\n Code: vat.Code,\n Rate: vat.Rate,\n DateValidFrom: vat.DateValidFrom,\n DateValidTo: vat.DateValidTo\n }\n };\n });\n\n items.unshift({\n id: null,\n label: i18next.t(\"Common:Select.NoVat\")\n });\n\n return items;\n }\n },\n formatter: (val, args) => {\n const value = args.item?.Rate ?? val;\n return vatEntityRateFormatter(value ?? 0);\n },\n additionalProperties: [{\n id: \"Rate\"\n }],\n defaultValue: (args) => {\n const isReceived = isReceivedBc(args.storage.data.bindingContext);\n const vatRule = (args.storage.data.entity as IDocumentEntity).VatClassificationSelection?.VatClassification;\n const _isEuRuleExceptAgendaDomestic = isEuRuleExceptAgendaDomestic(args);\n const _isVatRegistered = isVatRegisteredEntity(args);\n if (isReceived && !_isVatRegistered && isEeaRule(args)) {\n return null; // Received document from non-payer has no Vat\n }\n if (isReceived && _isEuRuleExceptAgendaDomestic && !vatRule?.IsInAutomatedVatInclusionMode) {\n return null; // DEV-13419 - received documents in automatedVatInclusionMode\n }\n if (!isReceived && _isEuRuleExceptAgendaDomestic && vatRule && vatRule.VatReverseChargeCode !== VatReverseChargeCode.Ne) {\n return null; // DEV-13415 - issued documents in reverseCharge\n }\n\n if (!isVatRegisteredCompany(args.storage.context)) {\n return null; // Company is not VAT registered\n }\n\n return {\n Code: VatCode.CzStd2013,\n // TODO it would be better to retrieve additionalProperties for defaultValue from backend\n Rate: 21\n };\n },\n width: FastEntryInputSizes.S\n };\n};\n\nexport const countryDef: IFieldInfoProperties = {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n defaultValue: (args: IGetValueArgs) => {\n const context = args?.context || args?.storage?.context;\n const currentCompany = context?.getCompany();\n return currentCompany?.Accounting?.CountryCode ?? CountryCode.CzechRepublic;\n },\n columns: [\n {\n id: \"Name\",\n additionalProperties: [\n { id: CountryEntity.IsEuMember },\n { id: CountryEntity.IsEEA }\n ]\n },\n { id: \"Code\" }\n ],\n fieldSettings: {\n displayName: \"Name\",\n shouldDisplayAdditionalColumns: true,\n preloadItems: true,\n localDependentFields: [{\n from: { id: CountryEntity.IsEEA },\n to: { id: CountryEntity.IsEEA },\n navigateFrom: NavigationSource.Itself\n }]\n }\n};\n\nexport const getAddressFields = (name: string, args: Partial = {}): Record => {\n return {\n [`${name}/Street`]: {\n width: BasicInputSizes.L,\n ...args\n },\n [`${name}/City`]: {\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.M,\n ...args\n },\n [`${name}/PostalCode`]: {\n ...getPostalCodeDef(),\n groupedField: GroupedField.MultiEnd,\n ...args\n },\n [`${name}/Country`]: {\n ...countryDef,\n affectedFields: [\n { id: \"PostalCode\", navigateFromParent: true, revalidate: true }\n ],\n ...args\n }\n };\n};\n\nfunction getNumberValidator(length: number) {\n return {\n type: ValidatorType.String,\n settings: {\n numberString: true,\n max: length\n }\n };\n}\n\nexport const SymbolConstantDef: IFieldInfoProperties = {\n fieldSettings: {\n parser: (val: string) => {\n const value = removeWhiteSpace(val);\n // strip / pad with leading zeros (if it contains just numbers) as it's the only valid case\n return /^[0-9]+$/.test(value) ? parseInt(value).toString().padStart(4, \"0\") : value;\n }\n },\n validator: getNumberValidator(10)\n};\n\nexport const SymbolVariableDef: IFieldInfoProperties = {\n validator: getNumberValidator(10),\n fieldSettings: {\n parser: (val: string) => {\n return val?.trim();\n }\n }\n};\n\nexport const SymbolSpecificDef: IFieldInfoProperties = {\n validator: getNumberValidator(10),\n fieldSettings: {\n parser: (val: string) => {\n return val?.trim();\n }\n }\n};\n\nexport const getSavedAccountsGroups = (): IFieldDef[] => {\n return [\n { id: BankAccountType.Account },\n { id: BankAccountType.ABA },\n { id: BankAccountType.IBANOnly },\n { id: BankAccountType.Service }\n ];\n};\n\nexport const getSavedAccountsDef = (): IFieldInfoProperties => {\n return {\n type: FieldType.ComboBox,\n fieldSettings: {\n items: [],\n groups: getSavedAccountsGroups()\n },\n comparisonFunction: (entity: IDocumentEntity, origEntity: IDocumentEntity) => {\n return origEntity.BankAccount?.BankCode === entity.BankAccount?.BankCode &&\n origEntity.BankAccount?.AccountNumber === entity.BankAccount?.AccountNumber;\n }\n };\n};\n\n\n// Todo: we may default the prefix / enhance formatting according to country\n// Todo: consider DB format as +420.123456789, so we can distinguish country prefix\nexport const phoneNumberInputFormatter: IFormatterFns[\"formatter\"] = (value: string): string => {\n if (!value || !PHONE_REG.test(value)) {\n return value;\n }\n\n const match = value.match(/^(\\+(42[01]|[0-9]{1,2}))?([0-9]+)$/);\n const countryCode = match[1];\n const number = match[3];\n const parts: string[] = number.match(/.{1,3}/g) || [];\n parts.unshift(countryCode ?? \"+420\");\n return parts.join(\" \");\n};\n\nexport const phoneNumberFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions) => {\n return phoneNumberInputFormatter(val as string);\n};\n\nexport const phoneNumberParser: IFormatterFns[\"parser\"] = (value: string) => {\n // replace leading zeroes to +\n value = value.replace(/^00/, \"+\");\n // we just remove whitespaces and dash characters, other characters\n // should correct user manually if present @see Validator.ts -> PHONE_REG\n return value.replaceAll(/[-\\s]+/g, \"\");\n};\n\nexport const phoneNumberIsValid: IFormatterFns[\"isValid\"] = (value: string): boolean => {\n return PHONE_REG.test(value);\n};\n\nexport const PhoneNumberDef: IFieldInfoProperties = {\n validator: {\n type: ValidatorType.Phone\n },\n fieldSettings: {\n formatter: phoneNumberInputFormatter,\n parser: phoneNumberParser,\n isValid: phoneNumberIsValid\n }\n};\n\nexport const postalCodeFormatter = (value: string, countryCode: CountryCode): string => {\n if (!value) {\n // cant return null, breaks WithFormatter => always return empty string instead\n return \"\";\n }\n\n if (countryCode !== CountryCode.CzechRepublic) {\n return value;\n }\n\n // add 0 prefix in case postal code is stored without leading zero\n const postalCode = value?.length === 4 ? `0${value}` : value;\n\n return `${postalCode.slice(0, 3)} ${postalCode.slice(3)}`;\n};\n\nexport const hasOptionalPostalCode = (args: IGetValueArgs): boolean => {\n const address = args.storage.getValue(args.bindingContext.getParent()) as IAddressEntity;\n\n return ![CountryCode.CzechRepublic, CountryCode.Slovakia].includes(address?.Country?.Code as CountryCode);\n};\n\nconst postalCodeValidator = (value: TValue, args: IGetValueArgs): boolean => {\n if (hasOptionalPostalCode(args)) {\n return true;\n }\n\n return !value || POSTAL_CODE_REG.test(removeWhiteSpace(value as string));\n};\n\nexport const getPostalCodeDef: () => TFieldDefinition = () => ({\n width: BasicInputSizes.S,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: postalCodeValidator,\n message: i18next.t(\"Common:Validation.PostalCode\")\n }\n },\n isRequired: not(hasOptionalPostalCode),\n formatter: (val, args) => {\n const address = args.storage.getValue(args.bindingContext.getParent()) as IAddressEntity;\n\n return postalCodeFormatter(val as string, address?.Country?.Code as CountryCode);\n },\n parser: (val) => {\n return removeWhiteSpace(val);\n },\n isValid: postalCodeValidator,\n fieldSettings: {\n placeholder: (args) => {\n const address = args.storage.getValue(args.bindingContext.getParent()) as IAddressEntity;\n\n return !address?.Country?.Code || address.Country.Code === CountryCode.CzechRepublic ? \"123 45\" : \"\";\n }\n }\n});\n\nexport const withDisplayName = (id: string, displayNameOrDef?: string | T, fieldDef?: T): Record => {\n let displayName = \"Name\";\n if (typeof displayNameOrDef === \"string\") {\n displayName = displayNameOrDef;\n } else if (isNotDefined(fieldDef)) {\n fieldDef = displayNameOrDef;\n }\n return {\n [id]: {\n id,\n ...fieldDef,\n fieldSettings: {\n displayName,\n ...fieldDef?.fieldSettings\n }\n }\n };\n};\n\n/** Columns that should be available in almost all tables */\nexport const getCommonTableColumnsDefs = (): TFieldsDefinition => {\n return {\n DateCreated: {\n label: i18next.t(\"Common:General.Created\")\n },\n DateLastModified: {},\n ...withDisplayName(\"CreatedBy\"),\n ...withDisplayName(\"LastModifiedBy\")\n };\n};\n\n/** Filters that should be available in almost all tables */\nexport const getCommonFilterDefs = (def?: TFilterDef): Record => ({\n DateCreated: { ...def },\n DateLastModified: { ...def },\n ...withDisplayName(\"CreatedBy\", { isValueHelp: true, ...def }),\n ...withDisplayName(\"LastModifiedBy\", { isValueHelp: true, ...def })\n});\n\nexport const AttachmentsDef = {\n collection: \"Attachments\",\n property: \"File\"\n};\n\nexport const AttachmentsAdditionalProperties: IFieldDef[] = [\n {\n id: \"Attachments\",\n additionalProperties: [\n { id: \"File/Name\" },\n { id: \"File/Size\" },\n { id: \"File/DateCreated\" },\n { id: \"File/DateLastModified\" },\n { id: \"File/IsIsdocReadable\" },\n { id: \"File/IsRossumReadable\" },\n { id: \"Description\" }\n ]\n }\n];\n\nexport const getLinks = (args: IFormatOptions, items: TRecordAny[]) => {\n let text = \"\";\n let fragment: React.ReactElement;\n const filteredItems = items?.filter(item => !!item.LinkedDocument?.NumberOurs);\n if (filteredItems?.length > 0) {\n fragment =\n <>\n {filteredItems.map((postingItem: IPaymentDocumentItemEntity, i: number) => {\n if (postingItem.LinkedDocument?.Id) {\n const route = getRouteByDocumentType(postingItem.LinkedDocument.DocumentTypeCode as DocumentTypeCode);\n const to = `${route}/${postingItem.LinkedDocument.Id}`;\n const intentLink = getIntentLink(postingItem.LinkedDocument.NumberOurs, {\n route: to,\n context: args.storage.context,\n storage: args.storage\n });\n const isLast = filteredItems.length - 1 === i;\n text = postingItem.LinkedDocument.NumberOurs;\n if (!isLast) {\n text += \" ,\";\n }\n\n return (\n \n {intentLink}\n {isLast ? \"\" : \" ,\"}\n \n );\n }\n\n return null;\n })}\n ;\n }\n\n return {\n fragment: fragment ?? \"\",\n text\n };\n};\n\nexport const DocumentLinks = {\n additionalProperties: [\n { id: \"LinkedDocument/NumberOurs\" },\n { id: \"LinkedDocument/DocumentTypeCode\" }\n ],\n formatter: (val: TValue, args?: IFormatOptions): TCellValue => {\n const code = getLinks(args, args.entity.Items);\n\n return {\n tooltip: code.text,\n value: code.fragment\n };\n }\n};\n\n\nconst balanceSheetLayoutAccountValidator = (value: TValue, args: IGetValueArgs) => {\n const pattern = /^\\d+$/;\n const isNumber = pattern.test(value as string);\n\n if (!value) {\n return new ValidationError(i18next.t(\"Banks:Validation.Required\"), false, args.bindingContext.getPath(true));\n }\n\n if (!isNumber) {\n return new ValidationError(i18next.t(\"Banks:Validation.Balance\"), false, args.bindingContext.getPath(true));\n }\n\n return true;\n};\n\n/** Custom data related to payment entities (CashBox, BankAccount) */\nexport interface IPaymentRelatedEntityCustomData extends IFormStorageDefaultCustomData {\n /** Usage data for the selected account in current CoA*/\n accountUsage?: IAccountUsage;\n // todo used in multiple places for isReadOnly check,\n // could be removed, because backend sends correct value in disabledProperties metadata, but field would change from readOnly to disabled\n /** Either CashReceipt or BankTransactions exists for this entity */\n hasRelatedEntity?: boolean;\n /* we need to be able to access all bank accounts in AccountsRelatedToBankAccountsSelectPath definition\n so that we can filter out accounts already used in some bank account\n => store in PARENT_DATA_KEY custom data */\n parentData?: TEntityWithAccount[];\n}\n\nexport function isBalanceSheetLayoutAccountUsed({ storage }: IGetValueArgs): boolean {\n const usage = (storage as FormStorage).getCustomData().accountUsage;\n\n return !storage.data.bindingContext.isNew() && isAccountUsedCheck(usage);\n}\n\nexport async function balanceSheetLayoutAccountOnAfterLoad(storage: FormStorage, accNumber: number): Promise {\n let usage: IAccountUsage = null;\n\n const bankAccount = storage.data.entity as ICompanyBankAccountEntity;\n if (!storage.data.bindingContext.isNew() && bankAccount?.BalanceSheetAccountNumberSuffix) {\n const accountNumber = `${accNumber}${bankAccount.BalanceSheetAccountNumberSuffix}`;\n usage = await getAccountUsageAcrossCharts(accountNumber);\n }\n\n (storage as FormStorage).setCustomData({ accountUsage: usage });\n}\n\nexport const AccountSettingsAccountsSelectPath = BindingContext.localContext(\"AccountSettingsAccountsSelect\");\nexport const getBalanceSheetLayoutAccount = (accNumber: number): TFieldDefinition => {\n return {\n label: i18next.t(\"Document:Form.AnalyticalAccount\"),\n width: \"130px\",\n isRequired: true,\n groupedField: GroupedField.MultiStart,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: balanceSheetLayoutAccountValidator\n }\n },\n extraFieldContent: (args) => {\n const { bindingContext, storage, info } = args;\n const isReadOnly = isFieldReadOnly({\n id: bindingContext.getPath(true),\n bindingContext, ...info\n }, storage, bindingContext);\n const styles = isReadOnly ? {} : { paddingLeft: \"12px\" };\n const groupStatus = (args.storage as FormStorage).getGroupStatus(getCollapsedGroupId({ id: AccountSettingsAccountsSelectPath }));\n return (\n \n {accNumber}\n );\n }\n };\n};\n\nexport const fourDigitsFormatter = (val: TValue): string => {\n return NumberType.format(val as number, {\n minimumFractionDigits: 4,\n maximumFractionDigits: 4\n });\n};\n\nexport const ExchangeRatePerUnit = {\n defaultValue: (args: IGetValueArgs): number => {\n const document = args.storage.getEntity();\n return document.TransactionCurrencyCode === getCompanyCurrency(args.context) ? 1 : null;\n },\n textAlign: TextAlign.Right,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n excludeMin: true\n }\n },\n formatter(val: TValue, args: IFormatOptions): string {\n return fourDigitsFormatter(val);\n },\n isVisible: (args: IGetValueArgs): boolean => {\n const code = args.storage.data?.entity?.TransactionCurrency?.Code;\n return !!(code && code !== getCompanyCurrency(args.context));\n }\n};\n\n\nexport const NoteFieldDef = {\n isConfirmable: true,\n type: FieldType.EditableText,\n labelStatus: LabelStatus.Removed,\n isFullRow: true,\n fieldSettings: {\n isResponsive: true\n }\n};\n\nexport const BirthNumberFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions) => {\n const birthNumber = val as string;\n\n if (!birthNumber || birthNumber.length < 9) {\n return birthNumber;\n }\n\n const index = 6;\n\n return birthNumber.substring(0, index) + \"/\" + birthNumber.substring(index);\n};\n\nexport const BirthNumberFieldDef: TFieldDefinition = {\n // do we want to implement birth number check function?\n // isValid\n parser: (val: string, args?: IFormatOptions) => {\n return val.replace(\"/\", \"\");\n },\n formatter: BirthNumberFormatter\n};\n\nexport function emailFormatter(value: TValue, opts?: IFormatOptions): ICellValueObject {\n const { name } = opts?.customArgs ?? {};\n return value ? {\n tooltip: `${value}`,\n value: (\n {name ?? value}\n )\n } : null;\n}\n\n/**\n * form-based isReadOnly flag - system entities (with negative IDs => id < 0) are readOnly\n */\nexport const isSystemEntityId = (id: TId): boolean => (id as number) < 0;\nexport const isSystemEntity = (args: IGetValueArgs): boolean => isSystemEntityId(args.data?.Id);","import { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getValue } from \"@utils/general\";\nimport React, { ComponentType } from \"react\";\n\nimport { ActionState, IconSize, RowAction, Status } from \"../../enums\";\nimport { EmptyObject } from \"../../global.types\";\nimport { ModelEvent } from \"../../model/Model\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport TableView from \"../../views/table\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../views/table/TableToolbar.utils\";\nimport { IHandleCustomActionArgs, ITableViewBaseProps } from \"../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../views/table/TableView.render.utils\";\nimport { TableWrapper } from \"../../views/table/TableView.styles\";\nimport { createCustomTableToolbarItem } from \"../../views/table/TableView.utils\";\nimport View from \"../../views/View\";\nimport { AlertAction, AlertPosition, IAlertProps } from \"../alert/Alert\";\nimport { WithBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { IconButton } from \"../button\";\nimport { getIcon, IProps as IIconProps } from \"../icon\";\nimport ReadOnlyList from \"../readOnlyList/ReadOnlyList\";\nimport { TitleStyled } from \"../readOnlyList/ReadOnlyList.styles\";\nimport { IReadOnlyListItem } from \"../readOnlyList/ReadOnlyListItem\";\nimport { IActionRendererArgs, IRow, IRowAction, TId } from \"../table\";\nimport { IRowProps } from \"../table/Rows\";\nimport { IProps as ISmartFilterBarProps } from \"./smartFilterBar/SmartFilterBar\";\nimport { SmartTable } from \"./smartTable\";\nimport { TSmartODataTableStorage } from \"./smartTable/SmartODataTableBase\";\nimport { getRow, TCustomRowAction } from \"./smartTable/SmartTable.utils\";\n\nexport const SELECTION_TABLEVIEW_ACTION = \"selectionTableViewAction\";\n\nexport type THeaderDataGetter = IReadOnlyListItem[] | (() => IReadOnlyListItem[]);\n\nexport interface ISelectionTableViewProps extends ITableViewBaseProps {\n selectedItems?: BindingContext[];\n onClose?: () => void;\n onSelection?: (selected: BindingContext[], entities: IEntity[]) => void;\n\n title?: string;\n secondaryTitle?: string;\n headerData?: THeaderDataGetter;\n confirmText?: string;\n successMessage?: string;\n isRowWithoutAction?: (storage: TSmartODataTableStorage, rowId: TId, action: RowAction, row: IRow) => boolean;\n presetDefaultFilters?: (storage: TSmartODataTableStorage) => void;\n /** Whether only one row can be selected (paired), or multiple, true by default. */\n isSingleSelect?: boolean;\n // for multi select variant, if we don't want to render the main toggle\n withoutMainToggle?: boolean;\n}\n\ninterface IProps extends ISelectionTableViewProps, WithBusyIndicator {\n}\n\nexport const SelectionTableViewAlertProps = {\n useFade: true,\n isFullWidth: false,\n position: AlertPosition.CenteredBottom,\n style: {\n width: \"500px\",\n maxWidth: \"calc(100% - 100px)\"\n }\n};\n\nexport default abstract class SelectionTableViewBase extends TableView {\n // configuration options\n _actionIconName = \"CopyLink\";\n _selectedIconName = \"Chained\";\n _notSelectedIconName = \"Unchained\";\n _hotspotContextId: string = null;\n\n // common props\n _selectedItems: BindingContext[];\n\n // ReadOnlyList could be customized in extended classes or passed by props\n get title(): string {\n return this.props.title;\n }\n\n get headerData(): THeaderDataGetter {\n return this.props.headerData;\n }\n\n get secondaryTitle(): string {\n return this.props.secondaryTitle;\n }\n\n get selectionConfirmText(): string {\n return this.props.confirmText;\n }\n\n get successMessage(): string {\n return this.props.successMessage;\n }\n\n get isSingleSelect(): boolean {\n return this.props.isSingleSelect ?? true;\n }\n\n constructor(props: IProps) {\n // @ts-ignore\n super(props);\n\n this.handleCustomAction = this.handleCustomAction.bind(this);\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n this._selectedItems = props.selectedItems;\n this.handleCustomAction(SELECTION_TABLEVIEW_ACTION, { update: false });\n\n props.storage.emitter.on(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n this.presetDefaultFilters();\n }\n\n shouldComponentUpdate(nextProps: Readonly, nextState: Readonly): boolean {\n return this.props.busy !== nextProps.busy;\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n this.props.storage.emitter.off(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n }\n\n presetDefaultFilters(): void {\n // we can customize default filters for the tableView, which\n // should be kept even when user clears filters. They can be only removed manually or changed.\n if (this.props.presetDefaultFilters) {\n this.props.presetDefaultFilters(this.props.storage);\n }\n }\n\n getCustomFilterBarProps(): Partial {\n return {\n onFilterCustomizationChanged: this.presetDefaultFilters\n };\n }\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [\n // https://solitea-cz.atlassian.net/browse/DEV-24786\n // apparently, users don't want to see the table settings\n // TableButtonsAction.Settings\n ];\n }\n\n get customToolbarItems(): IToolbarItem[] {\n return [this.createToolbarItem(SELECTION_TABLEVIEW_ACTION, this._actionIconName, this.selectionConfirmText)];\n }\n\n createToolbarItem(id: string, iconName: string, label: string, forceDisabled = false): IToolbarItem {\n const action = this.getTableAction();\n\n return createCustomTableToolbarItem({\n tableAction: action,\n id,\n iconName,\n label,\n forceDisabled\n });\n }\n\n getRow = (bindingContext: BindingContext): IRow => {\n return getRow(this.props.storage.tableAPI.getState().rows, bindingContext);\n };\n\n getConfirmText = (tableAction: TableButtonsAction | string): string | React.ReactElement => {\n const { storage } = this.props;\n\n if (tableAction === SELECTION_TABLEVIEW_ACTION) {\n if (this.isSingleSelect) {\n return this.selectionConfirmText;\n } else {\n const activeRowActionCount = storage.tableAPI?.getState().activeRows.size ?? 0;\n return getConfirmationActionText(this.selectionConfirmText, activeRowActionCount);\n }\n }\n\n return super.getConfirmText(tableAction);\n };\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n this.setTableAction(action, true, false);\n if (update) {\n this.forceUpdate();\n }\n }\n\n getIcon = (isActive: boolean): ComponentType => isActive ? getIcon(this._selectedIconName) : getIcon(this._notSelectedIconName);\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n if (!this.props.isRowWithoutAction) {\n return false;\n }\n return this.props.isRowWithoutAction?.(this.props.storage, rowId, action, row);\n }\n\n getCustomRowAction = memoizeOne((): TCustomRowAction => {\n return {\n actionType: RowAction.Custom,\n isSingleSelect: this.isSingleSelect,\n render: (args: IActionRendererArgs) => {\n if (args.isMainToggle && (this.props.withoutMainToggle || this.isSingleSelect)) {\n return null;\n }\n\n const isActive = args.actionState === ActionState.Active;\n const Icon = this.getIcon(isActive);\n return (\n \n \n \n );\n }\n };\n });\n\n setAlert({ status, ...restProps }: IAlertProps): void {\n const { storage } = this.props;\n const title = status === Status.Success ? storage.t(\"Common:Validation.SuccessTitle\") : storage.t(\"Common:General.Error\");\n\n this.props.storage.data.alert = {\n status,\n title,\n ...SelectionTableViewAlertProps,\n action: status !== Status.Success ? AlertAction.Close : AlertAction.None,\n ...restProps\n };\n }\n\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n if (rowAction) {\n return null;\n }\n\n // this._selectedItems has corrected entity type, different from the one in id\n // (e.g. Documents vs InvoicesIssued)\n // but documents have unique id across all the types\n // => use just key\n return this._selectedItems.map(item => item.getKey()).includes((id as BindingContext).getKey()) && this.getIcon(true);\n };\n\n // can be overridden in extended tableview\n getCorrectBindingContext = (bindingContext: BindingContext, row: IRow): BindingContext => {\n return bindingContext;\n };\n\n handleToolbarConfirm = async (): Promise => {\n const { storage } = this.props;\n\n this.props.setBusy(true);\n const affectedRows = await storage.tableAPI.getAffectedRows();\n\n // contains the original bcs\n this._selectedItems = affectedRows?.map(affectedRow => {\n return affectedRow.bc;\n });\n // contains the corrected bcs\n const affectedBCs = affectedRows?.map(affectedRow => {\n const bc = affectedRow.bc;\n const row = bc && this.getRow(bc);\n\n return this.getCorrectBindingContext(bc, row);\n });\n const entities = affectedRows.map(row => this.getRow(row.bc).customData?.entity);\n\n this.props.onSelection?.(affectedBCs, entities);\n this.setTableAction(null);\n this.props.setBusy(false);\n this.props.storage.tableAPI?.reloadTable();\n\n // if success message is configured and at least one entity selected, shows success message\n if (this.successMessage && entities?.[0]) {\n this.props.storage.tableAPI?.reloadTable();\n\n this.setAlert({\n status: Status.Success,\n subTitle: this.successMessage\n });\n }\n };\n\n renderHeader(): React.ReactElement {\n return (<>\n \n {this.secondaryTitle &&\n {this.secondaryTitle}}\n );\n }\n\n render() {\n return (<>\n \n {this.renderHeader()}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderTabs()}\n {this.renderToolbar()}\n \n \n \n {this.renderDefaultDialogs()}\n {this.props.busyIndicator}\n \n );\n }\n}","import { FormStorage } from \"../../views/formView/FormStorage\";\nimport React, { ComponentType } from \"react\";\nimport Dialog from \"../dialog/Dialog\";\nimport DialogPage from \"../../pages/DialogPage\";\nimport { PageViewMode } from \"../../enums\";\nimport { IGetDefinition } from \"@pages/PageUtils\";\nimport { ISelectionTableViewProps } from \"./SelectionTableViewBase\";\n\ninterface IProps extends Pick {\n storage: FormStorage;\n\n getDefinition: IGetDefinition;\n tableView: ComponentType;\n}\n\nconst SelectionTableViewDialog: React.FC = (props) => {\n const {\n storage,\n tableView,\n selectedItems,\n getDefinition,\n title,\n headerData,\n onClose,\n onSelection,\n isSingleSelect,\n isRowWithoutAction\n } = props;\n return (\n \n\n \n \n );\n};\n\nexport default SelectionTableViewDialog;\n","import { IFieldDef } from \"./FieldInfo\";\n\nconst CollapsedGroupPrefix = \"##CollapsedGroup##\";\n// Collapsed groups are bound to particular fields, so we need some unique generated ID which\n// relates to the field, they are bound to.\nexport function getCollapsedGroupId(def: IFieldDef): string {\n return `${CollapsedGroupPrefix}${def.id}`;\n}","import { getDrillDownFilters } from \"@components/drillDown/DrillDown.utils\";\nimport { IBankTransactionEntity, ICompanyBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { xor } from \"lodash\";\n\nimport { P13nType } from \"../../../enums\";\nimport { TRecordType, TValue } from \"../../../global.types\";\nimport { ITableStorageDefaultCustomData, TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { toggleItemInArray } from \"../../../utils/general\";\nimport { IGetValueArgs } from \"../FieldInfo\";\nimport { TSmartODataTableStorage } from \"../smartTable/SmartODataTableBase\";\n\nexport interface ISmartBankAccountFilterCustomData extends ITableStorageDefaultCustomData {\n isBankAccountFilterCustomizationDialogOpen?: boolean;\n accountIdForCreationDialog?: boolean;\n CurrentBankAccountFilterAccounts?: ICompanyBankAccountEntity[];\n waitingTransactions?: Record;\n csvFile?: File;\n bankAccountId?: number;\n uploadedFileId?: number;\n uploadCsv?: boolean;\n initialBalance?: number;\n transactionCount?: number;\n isStatementDialog?: boolean;\n}\n\nexport function toggleCompanyFilterValue(values: number[], id?: number): number[] {\n if (id) {\n toggleItemInArray(values, id);\n }\n\n return values;\n}\n\nexport function companyBankAccountFormatter(val: TValue, args?: IFormatOptions): string {\n const companyBankAccounts = args.storage.context.getCompanyBankAccounts();\n const acc = companyBankAccounts.find(acc => acc.Id === val);\n if (acc) {\n return acc.Name;\n }\n\n return val as string;\n}\n\nconst getHiddenIds = (itemIds: number[], items: IEntity[]) => {\n /**\n * Note: We store both type of accounts - visible bank accounts to keep order, which user prefers.\n * Hidden ones to be able to distinguish newly added bank accounts and to add them to the end of the list.\n */\n return items.reduce((retVal, currentValue) => {\n if (!itemIds.includes(currentValue.Id)) {\n retVal.push(currentValue.Id);\n }\n return retVal;\n }, []);\n};\n\ntype TBankAccountFilterSettings = TRecordType;\n\nexport function storeCustomizedBankAccounts(storage: TableStorage, accountIds: number[]): void {\n const { context, id } = storage;\n context.p13n.update(id, P13nType.SelectedBankAccounts, accountIds);\n context.p13n.update(id, P13nType.HiddenBankAccounts, getHiddenIds(accountIds, storage.context.getCompanyBankAccounts()));\n}\n\nexport function storeCustomizedCashBoxes(storage: TableStorage, cashBoxIds: number[]): void {\n const { context, id } = storage;\n context.p13n.update(id, P13nType.SelectedCashBoxes, cashBoxIds);\n context.p13n.update(id, P13nType.HiddenCashBoxes, getHiddenIds(cashBoxIds, storage.context.getCashBoxes()));\n}\n\ninterface ILoadCustomizationItemsArgs {\n allAccounts: IEntity[];\n visibleIds: number[];\n hiddenIds: number[];\n storage: TableStorage;\n bindingContext: BindingContext;\n addedAccountIds: number[];\n}\n\nconst _loadCustomizationItems = (args: ILoadCustomizationItemsArgs) => {\n let activeAccounts = args.allAccounts;\n if (args.visibleIds) {\n // map visibleIds to accounts, so configured order from customization is respected\n activeAccounts = args.visibleIds.reduce((activeExistingAccounts, id) => {\n const account = args.allAccounts.find(account => account.Id === id);\n if (account) {\n activeExistingAccounts.push(account);\n }\n return activeExistingAccounts;\n }, []);\n\n // add newly added account to the end of the array\n const newAccounts = args.allAccounts.filter(account => !(args.hiddenIds ?? []).includes(account.Id) && !args.visibleIds.includes(account.Id));\n activeAccounts.push(...newAccounts);\n }\n\n const storage = args.storage as TSmartODataTableStorage;\n // store synced to storage\n storage.setCustomData({ CurrentBankAccountFilterAccounts: activeAccounts });\n\n // update filter value to contain only accounts, which are configured as visible\n const origValues: number[] = args.storage.getValue(args.bindingContext, { useDirectValue: false }) || [];\n let values: number[];\n\n if (origValues.length) {\n values = origValues.filter((id) => activeAccounts.find(acc => acc.Id === id));\n } else {\n values = [];\n }\n\n values.push(...args.addedAccountIds || []);\n // just fixes with FakeId in case values are empty\n values = toggleCompanyFilterValue(values);\n\n const diff = xor(origValues, values);\n\n if (diff.length) {\n // skip variant save as it makes converting default variant -> custom on some types of page load\n args.storage.handleFilterChange({\n value: values,\n bindingContext: args.bindingContext\n }, false);\n }\n\n return activeAccounts;\n};\n\nexport async function loadCustomizedBankAccounts(storage: TableStorage, bindingContext: BindingContext, addedAccountIds: number[] = []): Promise {\n const { context, id } = storage;\n const allAccounts = context.getCompanyBankAccounts();\n const visibleIds = await context.p13n.get(id, P13nType.SelectedBankAccounts);\n const hiddenIds = await context.p13n.get(id, P13nType.HiddenBankAccounts);\n\n return _loadCustomizationItems({ allAccounts, visibleIds, hiddenIds, bindingContext, addedAccountIds, storage });\n}\n\nexport async function loadCustomizedCashBoxes(storage: TableStorage, bindingContext: BindingContext, addedAccountIds: number[] = []): Promise {\n const { context, id } = storage;\n const allAccounts = context.getCashBoxes();\n const visibleIds = await context.p13n.get(id, P13nType.SelectedCashBoxes);\n const hiddenIds = await context.p13n.get(id, P13nType.HiddenCashBoxes);\n\n return _loadCustomizationItems({ allAccounts, visibleIds, hiddenIds, bindingContext, addedAccountIds, storage });\n}\n\n\nexport function getCustomizedBankAccountsSync(storage: TSmartODataTableStorage): ICompanyBankAccountEntity[] {\n return storage.getCustomData().CurrentBankAccountFilterAccounts ?? [];\n}\n\n/** By default, filter values are stored in \"parsedValue\", and this array of values is used to create read only values of FilterBar.\n * Because we store inverse values for BankStatement/BankAccount (values that are supposed to be unchecked),\n * we need to define custom function for the getFilterBarItemRenderValue, so that it can show the inverse set correctly. */\nexport const getFilterBarItemParsedValue = (args: IGetValueArgs): TValue => {\n const origParsedValue = args.storage.getAdditionalFieldData(args.bindingContext, \"parsedValue\") as number[] ?? [];\n const fixedParsedValue: number[] = [];\n const visibleBankAccounts = getCustomizedBankAccountsSync(args.storage as TSmartODataTableStorage) ?? [];\n\n for (const acc of visibleBankAccounts) {\n if (!origParsedValue.find(id => id === acc.Id)) {\n fixedParsedValue.push(acc.Id);\n }\n }\n\n return fixedParsedValue;\n};\n\n/**\n * We store \"inverse\" value (unselected accounts instead of selected accounts)\n * for BankStatement/BankAccount, so that it can work correctly in variants.\n * When drilldown is used, it would be to complicated to pass the reversed value.\n * Instead, we inverse the value here.\n * */\nexport const fixInverseDrilldownFilterValue = (storage: TSmartODataTableStorage, filterPath: string): void => {\n const drilldownFilterValue = getDrillDownFilters()?.[filterPath] as number[];\n\n if (drilldownFilterValue) {\n // reverse the values and refresh filter\n const visibleBankAccounts = getCustomizedBankAccountsSync(storage) ?? [];\n const reversedBankAccountIds: number[] = [];\n\n for (const acc of visibleBankAccounts) {\n if (!drilldownFilterValue.find(id => id === acc.Id)) {\n reversedBankAccountIds.push(acc.Id);\n }\n }\n\n storage.setFilterValue(storage.data.bindingContext.navigate(filterPath), reversedBankAccountIds);\n storage.setValue(storage.data.bindingContext.navigate(`${filterPath}/Id`), reversedBankAccountIds);\n storage.applyFilters();\n storage.refresh(true);\n }\n};","import { ICompanyBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport React, { MouseEvent } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { FILES_API_URL } from \"../../constants\";\nimport { IconSize } from \"../../enums\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport DateType from \"../../types/Date\";\nimport { IconButton } from \"../button\";\nimport { getDroppedFiles } from \"../fileUploader/File.utils\";\nimport HiddenFileInput from \"../fileUploader/HiddenFileInput\";\nimport {\n ColoredIcon,\n CreateStatementIcon,\n LastUpdatedSimpleIcon,\n RefreshSimpleIcon,\n UploadIcon,\n UploadSimpleIcon\n} from \"../icon\";\nimport Checkbox, { IProps as ICheckboxProps } from \"../inputs/checkbox\";\nimport { SvgImage } from \"../svgImage/SvgImage\";\nimport Tooltip from \"../tooltip\";\nimport {\n AccountNumber,\n ActionsWrapper,\n Balance,\n BankAccountFilterWrapper,\n BankAccountLogoWrapper,\n CheckboxFilterWrapper,\n CheckboxWrapper,\n DropArea,\n DropAreaText,\n DropHandler,\n InfoWrapper,\n LastImport,\n Title\n} from \"./BankAccountCheckbox.styles\";\n\nexport type IBankAccountFilterData = Pick;\n\ninterface IProps extends IBankAccountFilterData, ICheckboxProps, WithTranslation {\n className?: string;\n isActive: boolean;\n onUploadFile?: (file: FileList, id: number) => Promise;\n onCreateStatement?: () => void;\n onRefresh?: (id: number) => Promise;\n lastUpdateDate?: Date;\n hasApiToken: boolean;\n}\n\ninterface IState {\n isDragging: boolean;\n}\n\nclass BankAccountCheckbox extends React.PureComponent {\n _fileInput = React.createRef();\n\n state = {\n isDragging: false\n };\n\n handleRefresh = (e?: React.MouseEvent) => {\n this.props.onRefresh(this.props.Id);\n e?.preventDefault();\n };\n\n handleDrop = async (event: React.DragEvent | DragEvent) => {\n event?.preventDefault();\n this.setState({ isDragging: false });\n\n if (!this.props.isActive) {\n return;\n }\n\n const f = await getDroppedFiles(event);\n\n await this.props.onUploadFile(f, this.props.Id);\n };\n\n handleFileInputChange = (event: React.ChangeEvent) => {\n this.props.onUploadFile(event.target.files, this.props.Id);\n };\n\n\n handleUpload = (e?: React.MouseEvent) => {\n e.preventDefault();\n\n this._fileInput.current.click();\n };\n\n createStatement = () => {\n this.props.onCreateStatement();\n };\n\n handleKeyDown = (callback: (e?: React.MouseEvent) => void, e: React.KeyboardEvent) => {\n if (e.key === KeyName.Space || e.key === KeyName.Enter) {\n e.preventDefault();\n callback();\n }\n };\n\n getFormattedAccount = () => {\n return generalBankAccountFormatter(null, {\n entity: null,\n item: this.props\n });\n };\n\n handleDragOver = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n\n startDragging = (e: React.DragEvent) => {\n if (!this.state.isDragging) {\n this.setState({\n isDragging: true\n });\n }\n };\n\n endDragging = (e: React.DragEvent) => {\n if (this.state.isDragging) {\n this.setState({\n isDragging: false\n });\n }\n };\n\n handleWrapperClick = (e: MouseEvent) => {\n this.props.onChange?.({\n origEvent: e as unknown as Event,\n value: !this.props.checked\n });\n };\n\n render() {\n const { isDisabled, isActive, hasApiToken } = this.props;\n return (\n <>\n {isActive && }\n \n \n {isActive &&\n \n \n \n {this.props.t(\"Banks:ConfirmationDialog.DragFileHere\")}\n }\n\n \n \n \n \n \n \n \n \n {(ref) => {\n return ({this.props.Name});\n }}\n \n {this.getFormattedAccount()}\n {formatCurrency(this.props.Balance?.TransactionBalance, this.props.TransactionCurrencyCode)}\n \n {!isActive ? this.props.t(\"Components:BankAccountCheckbox.Inactive\") : (\n <>\n \n {DateType.localFormat(this.props.lastUpdateDate, DateType.defaultDateTimeFormat)}\n \n )}\n \n \n \n {isActive &&\n <>\n \n \n \n \n \n \n \n }\n\n {hasApiToken &&\n \n \n }\n \n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(BankAccountCheckbox);","import { isBankApiConnected } from \"@pages/banks/bankAccounts/Api.utils\";\nimport { refreshStatementsAPI } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { getUploadErrorMessage } from \"@pages/banks/bankStatements/BankStatements.utils\";\nimport React from \"react\";\n\nimport { BANK_STATEMENTS, FILES_API_URL } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Status } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport FileStorage from \"../../../utils/FileStorage\";\nimport BankAccountCheckbox from \"../../bankAccountCheckbox/BankAccountCheckbox\";\nimport { SmartBankAccountFilterStyledWrapper } from \"../../bankAccountCheckbox/BankAccountCheckbox.styles\";\nimport { fileNameToMime, isFileCsv } from \"../../fileUploader/File.utils\";\nimport { ICheckboxChange } from \"../../inputs/checkbox\";\nimport { ISmartFieldChange } from \"../smartField/SmartField\";\nimport { TSmartODataTableStorage } from \"../smartTable/SmartODataTableBase\";\nimport {\n getCustomizedBankAccountsSync,\n ISmartBankAccountFilterCustomData,\n toggleCompanyFilterValue\n} from \"./SmartBankAccountFilter.utils\";\n\ninterface IProps {\n storage: TSmartODataTableStorage;\n className?: string;\n onChange: (args: ISmartFieldChange) => void;\n isDisabled?: boolean;\n bindingContext?: BindingContext;\n onCreateStatement?: (accId: number) => void;\n}\n\nexport default class SmartBankAccountFilter extends React.Component {\n static contextType = AppContext;\n dropAreaRef = React.createRef();\n\n handleCsvImport = async (file: File, uploadedFileId: number, bankAccountId: number): Promise => {\n this.props.storage.setCustomData({ csvFile: file, bankAccountId, uploadedFileId, uploadCsv: true });\n this.props.storage.refresh();\n };\n\n refresh = async (id: number): Promise => {\n await refreshStatementsAPI(id);\n };\n\n uploadFile = async (files: FileList, id: number): Promise => {\n const companyId = this.context.getCompany().Id;\n const url = `${BANK_STATEMENTS}/PostFileAsync/${id}?CompanyId=${companyId}`;\n let errorMessage = \"\";\n\n if (files.length > 1) {\n this.props.storage.data.alert = {\n status: Status.Error,\n title: this.props.storage.t(\"Banks:Validation.FileCantBeUploaded\"),\n subTitle: this.props.storage.t(\"Banks:Validation.OnlySingleFileSupported\")\n };\n\n this.props.storage.refresh();\n return;\n }\n\n for (const file of files) {\n try {\n const fileMime = fileNameToMime(file?.name);\n const isCsv = isFileCsv(fileMime);\n\n const ret = await FileStorage.upload({\n file,\n url: isCsv ? FILES_API_URL : url,\n name: file.name\n });\n\n if (isCsv) {\n await this.handleCsvImport(file, ret?.Id, id);\n return;\n }\n } catch (error) {\n errorMessage = getUploadErrorMessage(error);\n }\n }\n\n if (errorMessage) {\n this.props.storage.data.alert = {\n status: Status.Error,\n title: this.props.storage.t(\"Banks:Validation.FileCantBeUploaded\"),\n subTitle: errorMessage\n };\n this.props.storage.refresh();\n } else if (this.props.storage.data.alert) {\n delete this.props.storage.data.alert;\n this.props.storage.refresh();\n }\n\n this.forceUpdate();\n };\n\n handleChange = (id: number): void => {\n const values = this.props.storage.getValue(this.props.bindingContext, { useDirectValue: false }) || [];\n\n this.props.onChange?.({\n value: toggleCompanyFilterValue(values, id),\n bindingContext: this.props.bindingContext\n });\n };\n\n isDisabled = (): boolean => {\n return this.props.storage.isDisabled || this.props.isDisabled;\n };\n\n render() {\n const { storage } = this.props;\n const values: number[] = storage.getValue(this.props.bindingContext, { useDirectValue: false }) || [];\n const visibleBankAccounts = getCustomizedBankAccountsSync(storage);\n\n return (\n \n {visibleBankAccounts.map((acc) => {\n const isChecked = !values.find((val: number) => val === acc.Id);\n\n return (\n {\n this.props.onCreateStatement(acc.Id);\n }}\n isActive={acc.IsActive}\n hasApiToken={isBankApiConnected(acc)}\n isDisabled={this.isDisabled()}\n onChange={(args: ICheckboxChange) => {\n this.handleChange(acc.Id);\n }}\n />\n );\n })}\n \n );\n }\n}\n","import SmartBankAccountFilter from \"./SmartBankAccountFilter\";\n\nexport default SmartBankAccountFilter;\nexport * from \"./SmartBankAccountFilter\";\n","import styled from \"styled-components/macro\";\nimport Checkbox from \"../../inputs/checkbox\";\nimport { ButtonGroup, StyledButton } from \"../../button\";\nimport { SmartActionButton } from \"../smartFormGroup/SmartActionButton\";\nimport { Label } from \"../../inputs/field\";\nimport { VIEW_PADDING_VALUE } from \"../../../views/View.styles\";\nimport { PrimaryContent, StyledFastEntryList } from \"../../fastEntry/FastEntryList.styles\";\nimport { T_PLAIN_small_hig } from \"../../../global.style\";\nimport { ExpandArea, MouseCatcher } from \"../../collapsibleContent/CollapsibleContent.styles\";\n\nexport const StyledSmartFastEntryList = styled.div<{\n showLineNumbers: boolean;\n}>`\n position: relative;\n // item indices of FastEntryList are supposed to render inside the view padding\n // but would get hidden by overflow if positioned outside of FastEntryList absolutely \n // => use negative margin\n ${StyledFastEntryList} {\n left: ${props => props.showLineNumbers ? `-${VIEW_PADDING_VALUE}px` : 0};\n }\n\n ${PrimaryContent} {\n width: calc(100% - 12px - ${`${VIEW_PADDING_VALUE}px`});\n }\n\n ${MouseCatcher}, ${ExpandArea} {\n margin-left: ${`${VIEW_PADDING_VALUE}px`};\n }\n\n ${PrimaryContent} {\n width: calc(100% - 12px - ${VIEW_PADDING_VALUE});\n }\n\n ${MouseCatcher}, ${ExpandArea} {\n margin-left: ${VIEW_PADDING_VALUE};\n }\n`;\n\nexport const ConfirmationButtonsWrapper = styled(ButtonGroup)`\n margin-top: 20px;\n margin-right: 12px;\n padding-bottom: 12px;\n justify-content: flex-end;\n`;\n\nexport const CheckboxStyledMainToggle = styled(Checkbox)`\n position: absolute;\n left: 8px;\n top: -3px;\n z-index: 3;\n`;\n\nexport const ButtonsFooter = styled.div<{ hasMargin?: boolean; width?: number; }>`\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n row-gap: 15px;\n width: ${props => props.width ? `${props.width}px` : \"100%\"};\n\n ${StyledButton}:first-of-type {\n margin-left: ${props => props.hasMargin ? 31 : 0}px;\n }\n`;\n\nexport const SmartActionButtonStyled = styled(SmartActionButton)<{\n isBefore: boolean;\n}>`\n margin-left: ${props => props.isBefore ? \"\" : \"15px\"};\n margin-right: ${props => props.isBefore ? \"15px\" : \"\"};\n`;\n\nexport const StyledHeaderLabelAbs = styled(Label) <{\n _opacity: number\n}> `\n opacity: ${props => props._opacity};\n`;\n\nexport const FastEntryLabelWrapper = styled.div `\n position: absolute;\n`;\n\nexport const StyledErrorStepper = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 15px;\n\n ${T_PLAIN_small_hig};\n`;","import { handleRefHandlers } from \"@utils/general\";\nimport React from \"react\";\nimport { DraggableProvidedDragHandleProps } from \"react-beautiful-dnd\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { VariableSizeList } from \"react-window\";\n\nimport { LabelStatus } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport { CollapsibleContent } from \"../collapsibleContent\";\nimport { FIELD_VER_MARGIN, FIELD_VER_MARGIN_SMALL } from \"../inputs/field/Field.styles\";\nimport SortableList from \"../sortableList\";\nimport {\n LabelsOverflowWrapper,\n LabelsWrapper,\n PrimaryContent,\n PrimaryContentTitle,\n StyledFastEntryList\n} from \"./FastEntryList.styles\";\n\nexport interface IFastEntryListChildRender {\n dragHandleProps?: DraggableProvidedDragHandleProps;\n connectEntryRef: React.RefCallback;\n labelStatus: LabelStatus;\n}\n\nexport interface IFastEntryListChild {\n id: string;\n render: (args: IFastEntryListChildRender) => React.ReactElement;\n showIndicator?: () => boolean;\n isEmptyItem?: boolean;\n emptyItemText?: string;\n}\n\nexport interface IProps extends WithTranslation {\n id: string;\n recalculate?: string;\n onReorder?: (dragIndex: number, hoverIndex: number) => void;\n labels: React.ReactElement[];\n labelsLeftPad?: number;\n containsPrimary?: boolean;\n customPreContent?: React.ReactElement;\n canReorder?: boolean;\n isCollapsible?: boolean;\n isCollapsed?: boolean;\n onCollapsed?: () => void;\n onCollapsingEnd?: () => void;\n useVirtualization?: boolean;\n // use together with virtualization\n height?: number | string;\n useLabelWrapping?: boolean;\n showLineNumbers?: boolean;\n virtualizedListRef?: React.RefObject;\n\n onWrapChange?: (isWrapped: boolean) => void;\n\n children: IFastEntryListChild | IFastEntryListChild[];\n passRef?: React.Ref;\n}\n\ninterface IState {\n wrapped: boolean;\n collapsibleMargin?: number;\n recalculateList?: number;\n}\n\nclass FastEntryList extends React.Component {\n _fastEntryRef = React.createRef();\n _primaryContentRef = React.createRef();\n\n state: IState = {\n wrapped: false\n };\n\n componentDidMount() {\n this.handleResize();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void {\n this.handleCollapsibleContentHeightAndMargin();\n\n if (this.state.wrapped !== prevState.wrapped || this.props.recalculate !== prevProps.recalculate) {\n this.setState(({ recalculateList }) => ({ recalculateList: (recalculateList ?? 0) + 1 }));\n this.props.onWrapChange?.(this.state.wrapped);\n }\n }\n\n get isWrapped(): boolean {\n return this.state.wrapped && this.props.useLabelWrapping;\n }\n\n handleCollapsibleContentHeightAndMargin = () => {\n if (this._fastEntryRef.current) {\n const firstChildHeight = this._fastEntryRef.current.offsetHeight;\n\n if (this.props.containsPrimary && this._primaryContentRef.current) {\n const offset = this.state.wrapped ? 3 : 19;\n const countedHeight = firstChildHeight + offset + parseInt(FIELD_VER_MARGIN);\n\n this._primaryContentRef.current.style.height = `${countedHeight}px`;\n }\n\n if (this.props.isCollapsible) {\n const collapsibleMargin = firstChildHeight + (this.state.wrapped ? 15 : 0);\n if (this.state.collapsibleMargin !== collapsibleMargin) {\n this.setState({\n collapsibleMargin: collapsibleMargin\n });\n }\n }\n }\n };\n\n handleResize = () => {\n if (this.props.useLabelWrapping && this._fastEntryRef.current) {\n let isWrapped = false;\n const firstRowTop = this._fastEntryRef.current.children[0]?.getBoundingClientRect().top;\n\n for (const child of Array.from(this._fastEntryRef.current.children)) {\n if (child.getBoundingClientRect().top > firstRowTop) {\n isWrapped = true;\n break;\n }\n }\n\n if (isWrapped !== this.state.wrapped) { // setState cause rerender even if the state remains the same\n this.setState({\n wrapped: isWrapped\n }, this.handleCollapsibleContentHeightAndMargin);\n } else {\n this.handleCollapsibleContentHeightAndMargin();\n }\n }\n };\n\n handleReorder = (dragIndex: number, hoverIndex: number) => {\n this.props.onReorder?.(dragIndex, hoverIndex);\n };\n\n handleFastEntryRef = (ref: HTMLDivElement) => {\n handleRefHandlers(ref, this._fastEntryRef);\n };\n\n renderList = (children: IFastEntryListChild[]) => {\n return (\n \n {children.map((fastEntry: IFastEntryListChild, i) => {\n return (\n {\n id: fastEntry.id,\n render: (dragHandleProps: DraggableProvidedDragHandleProps) => {\n return fastEntry.render({\n dragHandleProps,\n connectEntryRef: this.handleFastEntryRef,\n labelStatus: !this.state.wrapped && this.props.useLabelWrapping ? LabelStatus.Removed : LabelStatus.Visible\n });\n },\n showIndicator: fastEntry.showIndicator,\n isEmptyItem: fastEntry.isEmptyItem,\n emptyItemText: fastEntry.emptyItemText\n }\n );\n })}\n \n );\n };\n\n isCollapsible = () => {\n return this.props.isCollapsible;\n };\n\n renderContent = (children: IFastEntryListChild[]) => {\n if (this.isCollapsible()) {\n return (\n \n {this.renderList(children)}\n \n );\n }\n\n return this.renderList(children);\n };\n\n render = () => {\n let children: IFastEntryListChild[];\n\n if (this.props.children) {\n children = Array.isArray(this.props.children as IFastEntryListChild[]) ? this.props.children as IFastEntryListChild[] : [this.props.children as IFastEntryListChild];\n } else {\n children = [];\n }\n\n return (\n \n {this.props.containsPrimary && children.length > 0 &&\n \n {this.props.t(\"Common:General.Primary\")}\n \n }\n {this.props.useLabelWrapping && !this.state.wrapped && (this.props.children as []).length > 0 &&\n // not every child is emptyItem\n !children.every(child => !!child?.isEmptyItem) &&\n \n \n {this.props.labels}\n \n \n }\n {this.props.customPreContent}\n {this.renderContent(children)}\n \n );\n };\n}\n\nexport default withTranslation(\"Common\")(FastEntryList);","import React from \"react\";\nimport { ColoredText } from \"../../../global.style\";\nimport { ButtonGroup, IconButton } from \"../../button\";\nimport { DownIcon, UpIcon } from \"../../icon\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { StyledErrorStepper } from \"./SmartFastEntryList.styles\";\nimport { IconSize } from \"../../../enums\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport TestIds from \"../../../testIds\";\n\ninterface IProps {\n storage: FormStorage;\n bindingContext: BindingContext;\n groupId: string;\n isLight: boolean;\n onErrorFocusChange?: (bindingContext: BindingContext, index: number) => void;\n}\n\ninterface IState {\n currentIndex: number;\n}\n\nclass ErrorStepper extends React.Component {\n state: IState = {\n currentIndex: 0\n };\n\n currentErrors: BindingContext[];\n\n getAllErrors = (): BindingContext[] => {\n const currentVariantColumns = this.props.storage.getVariant().find(group => group.id === this.props.groupId)?.lineItems?.columns;\n const data = this.props.storage.getValue(this.props.bindingContext);\n const propName = this.props.bindingContext.getPath();\n const errors: BindingContext[] = [];\n\n if (!currentVariantColumns) {\n return errors;\n }\n\n for (const item of this.props.storage.data.bindingContext.iterateNavigation(propName, data)) {\n for (const column of currentVariantColumns) {\n const error = this.props.storage.getError(item.bindingContext.navigate(column.id));\n\n if (error) {\n errors.push(item.bindingContext);\n }\n }\n }\n\n return errors;\n };\n\n changeError = (newIndex: number) => {\n const newErrorKey = this.currentErrors[newIndex].getKey();\n\n const data = this.props.storage.getValue(this.props.bindingContext);\n let realItemIndex: number;\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n const itemBc = this.props.bindingContext.addKey(item);\n\n if (itemBc.getKey() === newErrorKey) {\n realItemIndex = i;\n break;\n }\n }\n\n this.props.onErrorFocusChange?.(this.currentErrors[newIndex], realItemIndex);\n\n this.setState({\n currentIndex: newIndex\n });\n };\n\n handlePreviousClick = () => {\n let newIndex = this.state.currentIndex - 1;\n\n if (newIndex < 0) {\n newIndex = this.currentErrors.length - 1;\n }\n\n this.changeError(newIndex);\n };\n\n handleNextClick = () => {\n let newIndex = this.state.currentIndex + 1;\n\n if (newIndex >= this.currentErrors.length) {\n newIndex = 0;\n }\n\n this.changeError(newIndex);\n };\n\n render() {\n const errors = this.getAllErrors();\n\n this.currentErrors = errors;\n\n if (errors.length === 0) {\n return null;\n }\n\n return (\n \n \n {this.props.storage.t(\"Components:SmartFastEntryList.WrongFields\")}: {this.state.currentIndex + 1}/{errors.length}\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default ErrorStepper;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BasicInputSizes, TextAlign } from \"../../../enums\";\nimport { IInputOnChangeEvent } from \"../../inputs/input\";\nimport WriteLine from \"../../inputs/writeLine/WriteLine\";\n\ninterface IProps {\n isLight?: boolean;\n onChange?: (val: string) => void;\n // otherwise doesn't work for typescript, because of withTranslation HOC\n ref?: React.RefObject>;\n}\n\nexport type { IProps as ISearchFieldProps };\n\ninterface IState {\n searchValue: string;\n}\n\nexport type { IState as ISearchFieldState };\n\n// Render as standalone component instead of adding this as part of SmartFastEntryList.\n// Re-rendering of SmartFastEntryList on every SearchField would be too slow.\nclass SearchField extends React.PureComponent {\n state: IState = {\n searchValue: \"\"\n };\n\n handleSearchChange = (args: IInputOnChangeEvent) => {\n this.setState({\n searchValue: args.value\n });\n\n this.props.onChange?.(args.value);\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"], { withRef: true })(SearchField);","import BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getInfoValue, IFieldDef } from \"../FieldInfo\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { getBoundValue, getNewItemsMaxId, setBoundValue, updateDataOnChange } from \"@odata/Data.utils\";\nimport { ValueType } from \"../../../enums\";\n\nexport enum ActionType {\n Add = \"Add\",\n Clone = \"Clone\",\n Remove = \"Remove\",\n Reorder = \"Reorder\",\n Custom = \"Custom\"\n}\n\nexport interface ISmartFastEntriesActionEvent {\n items: T[];\n actionType: ActionType;\n customActionType?: string;\n bindingContext?: BindingContext;\n affectedItems?: T[];\n groupId?: string;\n}\n\ninterface IAddNewLineItemArgs {\n storage: FormStorage;\n newItemsCount: number;\n columns: IFieldDef[];\n bindingContext: BindingContext;\n context: IAppContext,\n order?: string;\n index?: number; // order index for new item\n}\n\nexport function addNewLineItem(storage: FormStorage, path: string, grpId?: string, columns?: IFieldDef[], defaultData?: IEntity): Partial {\n const { bindingContext, entity } = storage.data;\n const fieldBc = bindingContext.navigate(path);\n if (!grpId) {\n grpId = path;\n }\n const itemsGroup = storage.getVariant().find(group => group.id === grpId);\n\n const currentItems = getBoundValue({\n bindingContext: fieldBc,\n data: entity,\n dataBindingContext: bindingContext\n }) ?? [];\n\n const orderProps = itemsGroup?.lineItems?.order ? {\n order: itemsGroup.lineItems.order,\n // index from 1 as \"zero\" means \"put it at the end\", at least for minor asset BE\n index: (currentItems?.length ?? 0) + 1\n } : {};\n\n const newItemsMax = getNewItemsMaxId(currentItems);\n\n let newItem = addEmptyLineItem({\n storage,\n bindingContext: fieldBc,\n newItemsCount: newItemsMax + 1,\n columns: columns ?? itemsGroup.lineItems.columns,\n context: storage.context,\n ...orderProps\n });\n\n if (defaultData) {\n newItem = {\n ...newItem,\n ...defaultData\n };\n }\n\n storage.store({\n entity: setBoundValue({\n bindingContext: fieldBc,\n data: entity,\n newValue: [...currentItems, newItem],\n dataBindingContext: bindingContext,\n preventCloning: true\n })\n });\n\n return newItem;\n}\n\nexport function addEmptyLineItem(args: IAddNewLineItemArgs): Partial {\n let newItem = BindingContext.createNewEntity(args.newItemsCount);\n const parentBc = args.bindingContext.addKey(newItem);\n for (const column of args.columns) {\n const columnBc = parentBc.navigate(column.id);\n const info = args.storage.getInfo(columnBc);\n\n if (info && info.defaultValue) {\n const defVal = getInfoValue(info, \"defaultValue\", {\n data: args.storage.data.entity,\n storage: args.storage,\n info: info,\n bindingContext: info.bindingContext,\n context: args.context\n });\n\n newItem = updateDataOnChange({\n storage: args.storage,\n bindingContext: columnBc,\n dataBindingContext: parentBc,\n data: newItem,\n newValue: defVal\n }, true);\n }\n }\n\n if (args.order && args.order !== \"Id\") {\n newItem[args.order] = args.index;\n }\n\n return newItem as Partial;\n}\n","import { FieldsWithOwnReadOnlyMaxWidth } from \"@components/inputs/field/Field\";\nimport { isNumericType } from \"@evala/odata-metadata/src\";\nimport { getBoundValue, getNewItemsMaxId, getSharedContextPrefix } from \"@odata/Data.utils\";\nimport {\n arrayMove,\n composeRefHandlers,\n getElementOuterHeight,\n getValue,\n isDefined,\n isNotDefined,\n isObjectEmpty,\n sortCompareFn\n} from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { startsWithAccentsInsensitive } from \"@utils/string\";\nimport { cloneDeep, debounce } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { VariableSizeList } from \"react-window\";\n\nimport { DASH_CHARACTER, INPUT_DEBOUNCE_TIME } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { WithDomManipulator, withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport {\n FastEntryInputSizes,\n FormMode,\n GroupedField,\n IconSize,\n LabelStatus,\n Sort,\n TextAlign,\n ToggleState\n} from \"../../../enums\";\nimport { TRecordAny, TRecordString } from \"../../../global.types\";\nimport { AuditTrailLineComparison, FieldAdditionalData, ModelEvent } from \"../../../model/Model\";\nimport BindingContext, { areBindingContextsDifferent, IEntity } from \"../../../odata/BindingContext\";\nimport TestIds from \"../../../testIds\";\nimport DateType from \"../../../types/Date\";\nimport NumberType from \"../../../types/Number\";\nimport KeyboardShortcutsManager from \"../../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport ConfirmationButtons from \"../../../views/table/ConfirmationButtons\";\nimport { getConfirmationActionText } from \"../../../views/table/TableView.render.utils\";\nimport { TableWrapper } from \"../../../views/table/TableView.styles\";\nimport { VIEW_PADDING_VALUE } from \"../../../views/View.styles\";\nimport { Button, IconButton, IProps as IButtonProps } from \"../../button\";\nimport { FastEntry, FastEntryActionStatus, IFastEntryChild } from \"../../fastEntry/FastEntry\";\nimport { REORDER_ICON_MARGIN } from \"../../fastEntry/FastEntry.styles\";\nimport FastEntryList, { IFastEntryListChild, IFastEntryListChildRender } from \"../../fastEntry/FastEntryList\";\nimport { ButtonGroupStyled } from \"../../formGroup\";\nimport { CloseIcon } from \"../../icon\";\nimport { ICheckboxChange } from \"../../inputs/checkbox\";\nimport { ScrollBar } from \"../../scrollBar\";\nimport SimpleTable from \"../../simpleTable\";\nimport {\n ItemIndex,\n ORDER_BACKGROUND_RIGHT_MARGIN,\n ORDER_BACKGROUND_WIDTH,\n OrderBackground\n} from \"../../sortableList/SortableList.styles\";\nimport { IRow } from \"../../table\";\nimport {\n getInfoValue,\n IFieldInfoProperties,\n isRequired,\n isTGetValueFn,\n isVisible,\n TInfoValue,\n TInfoValueProp\n} from \"../FieldInfo\";\nimport SmartField from \"../smartField\";\nimport {\n ISmartFieldBlur,\n ISmartFieldChange,\n ISmartFieldHeightChange,\n ISmartFieldProps,\n ISmartFieldWidthChange\n} from \"../smartField/SmartField\";\nimport { isFieldValueSame } from \"../smartField/SmartFieldUtils\";\nimport { IFormLineItemsDef } from \"../smartFormGroup/SmartFormGroup\";\nimport { getFormattedValueFromValues } from \"../smartTable/SmartTable.utils\";\nimport ErrorStepper from \"./ErrorStepper\";\nimport SearchField, { ISearchFieldProps, ISearchFieldState } from \"./SearchField\";\nimport {\n ButtonsFooter,\n CheckboxStyledMainToggle,\n ConfirmationButtonsWrapper,\n FastEntryLabelWrapper,\n SmartActionButtonStyled,\n StyledHeaderLabelAbs,\n StyledSmartFastEntryList\n} from \"./SmartFastEntryList.styles\";\nimport { ActionType, addEmptyLineItem, ISmartFastEntriesActionEvent } from \"./SmartFastEntryList.utils\";\n\nconst VIRTUALIZATION_THRESHOLD = 20;\n\ninterface ISmartFastEntryColumnsExtension {\n [id: string]: {\n width: string;\n widths: TRecordString;\n textAlign: TextAlign;\n\n // at least on of the field in the column IS read only\n hasReadOnly?: boolean;\n // at least one of the field in the column is NOT read only\n hasEditable?: boolean;\n\n isFirstReadOnly?: boolean;\n columnIndex?: number;\n };\n}\n\ninterface ISmartFastEntryLineExtension {\n [id: string]: {\n heights: TRecordString;\n };\n}\n\nexport enum ActionButtonPosition {\n Before = \"Before\",\n After = \"After\"\n}\n\ntype DefinitionProps =\n \"columns\"\n | \"order\"\n | \"orderDirection\"\n | \"canReorder\"\n | \"useLabelWrapping\"\n | \"isCollapsible\"\n | \"containsPrimary\"\n | \"isItemCloneable\"\n | \"isItemRemovable\"\n | \"isItemVisible\"\n | \"isItemSelectable\"\n | \"canAdd\"\n | \"isAddDisabled\"\n | \"isItemDisabled\"\n | \"isTheOnlyItemRemovable\"\n | \"isGroupToggleable\"\n | \"customActionButtons\"\n | \"disableFieldsOnActiveAction\"\n | \"showLineNumbers\";\n\nexport interface ICustomPreContentArgs {\n itemBc: BindingContext;\n index: number;\n item: IEntity;\n items: IEntity[];\n labelStatus?: LabelStatus;\n}\n\ninterface IProps extends WithTranslation, WithDomManipulator, Pick {\n storage?: FormStorage;\n groupId?: string;\n isReadOnly?: boolean;\n isDisabled?: TInfoValue;\n isLight?: boolean;\n /** Never virtualize items */\n disableVirtualization?: boolean;\n // adds checkboxes and confirm buttons\n customAction?: { id: string; confirmLabel: string; ignoreTheme?: boolean; };\n /** Sometimes, e.g. when customPreContent is used for FastEntries, we move the items to the right by some amount.\n * This is ok when each item has its own labels. In case we use useLabelWrapping and items are not wrapped,\n * we need to move the main labels to the right by the same amount. labelsLeftMargin lets you pass that amount.*/\n labelsLeftMargin?: number;\n onCustomActionFinish?: () => void;\n /** List of properties from given entity (set) that are supposed to be shown */\n bindingContext: BindingContext;\n onBlur?: (args: ISmartFieldBlur) => Promise;\n onChange?: (args: ISmartFieldChange) => void;\n onTemporalChange?: (args: ISmartFieldChange) => void;\n onAction?: (args: ISmartFastEntriesActionEvent) => void;\n isAddButtonTransparent?: boolean;\n\n renderAsFastEntryForReadOnly?: boolean;\n\n // should display draft changes for this list\n showChanges?: boolean;\n\n /** Renders custom content custom next to the \"Add\" button. */\n customFooterContent?: React.ReactElement;\n customPreContent?: (args: ICustomPreContentArgs) => React.ReactNode;\n customAddButtonText?: string;\n addDisabledAlert?: IButtonProps[\"alert\"];\n\n filterItems?: (items: IEntity[]) => IEntity[];\n style?: React.CSSProperties;\n searchInChildProps?: string[];\n deletedItemsTranslationKey?: string;\n /** Pass isConfirmable to every field */\n isConfirmable?: boolean;\n}\n\ninterface IState {\n columnsExtensions: ISmartFastEntryColumnsExtension;\n lineExtensions: ISmartFastEntryLineExtension;\n selectedItems: Record;\n searchValue: string;\n isWrapped?: boolean;\n contentWidth?: number;\n}\n\nfunction getScrollParent(node: HTMLElement): HTMLElement {\n if (node == null) {\n return null;\n }\n\n if (node.scrollHeight > node.clientHeight) {\n return node;\n } else {\n return getScrollParent(node.parentElement);\n }\n}\n\n\nconst ITEM_PROPS_DEFAULTS: Partial> = {\n isItemDisabled: { readOnly: false, editable: false },\n isItemReadOnly: { readOnly: true, editable: false },\n isItemVisible: { readOnly: true, editable: true },\n isItemRemovable: { readOnly: false, editable: true },\n isItemCloneable: { readOnly: false, editable: true }\n};\n\nenum CalculationStateType {\n None,\n Items,\n Labels,\n Finished\n}\n\nclass SmartFastEntryList extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n _fastEntryListRef = React.createRef();\n _fastEntryRef = React.createRef();\n _buttonRef = React.createRef();\n _errorStepperRef = React.createRef();\n _virtualizedListRef = React.createRef();\n _searchFieldRef = React.createRef>();\n\n _calculationState = CalculationStateType.None;\n\n _updateAddPos = false;\n _focusItemN: number = null;\n\n _items: IEntity[];\n\n _calculatedBc: BindingContext;\n\n _lastVisibleColCount: number;\n\n\n // use debounce to prevent multiple slow re-renders\n handleSearchChange = debounce((searchValue: string) => {\n this.setState({\n searchValue\n });\n }, INPUT_DEBOUNCE_TIME);\n\n constructor(props: IProps) {\n super(props);\n\n // automatically register on model\n this.props.storage.addRef(this, this.props.bindingContext);\n this.props.storage.emitter.on(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n this.props.storage.emitter.on(ModelEvent.RecalculateFastEntryList, this.updateColumnExtensions);\n\n this.state = {\n // Set all possible (editable) column extensions before first render,\n // so that the field widths are immediately correct - needed when virtualization is used.\n columnsExtensions: this.getColumnExtensions(),\n lineExtensions: {},\n selectedItems: {},\n searchValue: \"\"\n };\n }\n\n componentDidMount() {\n if (this._calculationState === CalculationStateType.Labels) {\n this.updateLabelsPosition();\n }\n\n if (this._calculationState === CalculationStateType.Items && this.getItems().length > 0) {\n this.updateColumnExtensions();\n }\n\n this._items = getBoundValue({\n bindingContext: this.props.bindingContext,\n data: this.props.storage.data.entity,\n dataBindingContext: this.props.storage.data.bindingContext\n });\n\n this.getListWidth();\n }\n\n componentWillUnmount() {\n this.props.storage.removeRef(this, this.props.bindingContext);\n this.props.storage.emitter.off(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n this.props.storage.emitter.off(ModelEvent.RecalculateFastEntryList, this.updateColumnExtensions);\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n const bindingContextHasChanged = areBindingContextsDifferent(prevProps.bindingContext, this.props.bindingContext);\n if ((!prevProps.customAction && this.props.customAction) || bindingContextHasChanged) {\n this.setState({\n selectedItems: {}\n });\n }\n\n const _currentItems = this.getItems();\n\n if ((this._calculationState === CalculationStateType.Items && _currentItems.length > 0) || bindingContextHasChanged) {\n this.updateColumnExtensions();\n return;\n }\n\n if (this._calculationState === CalculationStateType.Finished) {\n const visibleColCount = this.getVisibleColumnCount();\n if (this._lastVisibleColCount !== visibleColCount) {\n this.updateLabelsPosition();\n this._lastVisibleColCount = visibleColCount;\n return;\n }\n }\n\n // this is magic check when list if fully rendered and some EXTERNAL situation makes its items changed\n if (this._calculationState === CalculationStateType.Finished && this._items && this._items !== _currentItems) {\n this.updateColumnExtensions();\n } else if (this._calculationState === CalculationStateType.Labels) {\n this.updateLabelsPosition();\n }\n\n if (!this.useVirtualization() && this.state.searchValue) {\n // when number of items gets under VIRTUALIZATION_THRESHOLD\n // remove filter value so that all items are rendered\n this.setState({\n searchValue: null\n });\n }\n\n this._items = _currentItems;\n\n // when add button is clicked, keep it in the same position for user by scrolling down the page , kinda hacky\n if (this._updateAddPos) {\n if (!this.useVirtualization() && this._fastEntryRef.current) {\n const diff = getElementOuterHeight(this._fastEntryRef.current?.parentElement?.parentElement);\n let scrollParent = getScrollParent(this._buttonRef.current);\n\n if (scrollParent) {\n scrollParent = scrollParent.parentElement;\n }\n\n const scroll = getScrollParent(scrollParent);\n\n if (scroll && scroll.parentElement) {\n scroll.parentElement.scrollTop += diff;\n }\n } else if (this.useVirtualization() && this._virtualizedListRef.current) {\n this._virtualizedListRef.current.scrollToItem(this.getItems().length, \"start\");\n }\n\n this._updateAddPos = false;\n }\n\n if (isDefined(this._focusItemN)) {\n const focusN = this._focusItemN;\n this._focusItemN = null;\n setTimeout(() => {\n this.focusFirstInputOfNItem(focusN);\n }, 20);\n }\n\n this.getListWidth();\n }\n\n getListWidth() {\n if (this._fastEntryListRef.current) {\n const width = this._fastEntryListRef.current.offsetWidth;\n if (this.state.contentWidth !== width) {\n this.setState({ contentWidth: width });\n }\n }\n }\n\n getVisibleColumnCount = () => {\n return this.props.columns?.filter(column => {\n const columnBindingContext = this.props.bindingContext.navigate(column.id);\n const columnMetadata = this.props.storage.getInfo(columnBindingContext);\n if (!columnMetadata) {\n console.error(`Unable to load info for field ${column.id}`);\n }\n\n return getInfoValue(columnMetadata, \"isVisible\", {\n storage: this.props.storage,\n bindingContext: columnBindingContext,\n context: this.props.storage.context\n }) !== false;\n })?.length || 0;\n };\n\n /** Negative index can be used to select last item */\n focusFirstInputOfNItem = (index: number) => {\n if (index >= this.getItems().length || index < 0) {\n return;\n }\n\n // items can be virtualized - we cannot query all items, we need to query only the specific item which should be rendered\n const item = this._fastEntryListRef.current?.querySelector(`[data-fasteentry-id=\"${index}\"]`);\n\n if (item) {\n const firstInput = item.querySelector(\"input,textarea\");\n\n if (firstInput) {\n (firstInput as HTMLInputElement).focus();\n }\n }\n };\n\n\n handleFormAfterLoad = () => {\n this._calculationState = CalculationStateType.Items;\n };\n\n handleKeyDown = (event: React.KeyboardEvent): void => {\n if (KeyboardShortcutsManager.isEventShortcut(event, KeyboardShortcut.ALT_R)) {\n if (this.canAdd && !this.isAddDisabled) {\n this.handleAdd();\n }\n }\n };\n\n getCorrectIndexFromAttr = (item: HTMLDivElement) => {\n return parseFloat(item.dataset.fasteentryId);\n };\n\n getColumnExtensions = () => {\n const columnsExtensions: ISmartFastEntryColumnsExtension = {};\n let needRecalc = false;\n let invisibleCount = 0;\n\n const { storage, bindingContext, columns } = this.props;\n\n this._calculatedBc = bindingContext;\n\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n const columnBindingContext = bindingContext.navigate(column.id);\n const columnMetadata = storage.getInfo(columnBindingContext);\n if (!columnMetadata) {\n console.error(`Unable to load info for field ${column.id}`);\n }\n // read only columns should have width based on their widest row value\n const isVisible = getInfoValue(columnMetadata, \"isVisible\", {\n storage,\n bindingContext: columnBindingContext,\n context: this.props.storage.context\n });\n\n if (isVisible === false) {\n invisibleCount++;\n continue;\n }\n const columnIndex = i - invisibleCount;\n\n const fieldWidth = parseFloat(getInfoValue(columnMetadata, \"width\", {\n bindingContext: columnBindingContext,\n info: columnMetadata,\n storage\n }) || FastEntryInputSizes.M);\n\n let width = 0;\n let hasReadOnly, hasEditable, isFirstReadOnly;\n\n // if we are sure no field can be readonly (either there is no callback or \"isReadOnly\" is straight NO\n // we don't need to do any crazy width calculation from DOM and just set concrete value\n const canBeReadOnly = isTGetValueFn(columnMetadata.isReadOnly) || columnMetadata.isReadOnly === true;\n\n if (canBeReadOnly) {\n // top label, if the lines are not wrapped\n const mainLabel = this._fastEntryListRef.current?.querySelector(`[data-testid=\"${TestIds.FastEntryListHeader}\"]`)?.querySelectorAll(`[data-testid=\"${TestIds.FieldLabel}\"]`)?.[columnIndex] as HTMLDivElement;\n const htmlItems = this._fastEntryListRef.current?.querySelectorAll(`[data-testid=\"${TestIds.FastEntryItem}\"]`);\n\n const hasOwnReadOnlyMaxWidth = FieldsWithOwnReadOnlyMaxWidth[columnMetadata.type];\n\n if (!htmlItems || htmlItems.length === 0) {\n needRecalc = true;\n width = 0;\n } else {\n\n const items = this.getItems();\n\n for (let i = 0; i < (htmlItems ?? []).length; i++) {\n const htmlItem = htmlItems[i];\n\n // for virtualization HTML div index doesn't match index of items\n const correctIndex = this.getCorrectIndexFromAttr(htmlItem as HTMLDivElement);\n const item = items[correctIndex];\n const itemBc = bindingContext.addKey(item).navigate(column.id);\n const isReadOnly = getInfoValue(columnMetadata, \"isReadOnly\", {\n storage,\n bindingContext: itemBc,\n context: this.props.storage.context\n }) || this.props.isReadOnly;\n\n const row = htmlItem.querySelector(`[data-testid=\"${TestIds.FormGroupLine}\"]`);\n const columnElement = row?.children[columnIndex] as HTMLDivElement;\n\n isFirstReadOnly = isDefined(isFirstReadOnly) ? isFirstReadOnly : isReadOnly;\n\n // todo: width for read only columns doesn't work in audit trail mode\n if (isReadOnly && this.props.storage.formMode !== FormMode.AuditTrail) {\n // for maximum size, subtract paddings\n const maxWidth = Math.min(fieldWidth, parseInt(FastEntryInputSizes.L) - 36);\n\n const labelElement = mainLabel ?? columnElement.querySelector(`[data-testid=\"${TestIds.FieldLabel}\"]`) as HTMLDivElement;\n const labelWidth = labelElement?.children[0] ? (labelElement.children[0] as HTMLDivElement).offsetWidth + 2 : 0;\n const textElement = columnElement.querySelector(`[data-testid=\"${TestIds.Text}\"]`) as HTMLDivElement;\n const fieldContentElement = columnElement.querySelector(`[data-testid=\"${TestIds.FieldContent}\"]`) as HTMLDivElement;\n const finalElement = (textElement?.children[0] ?? fieldContentElement?.children[0] ?? columnElement) as HTMLDivElement;\n let elementWidth = finalElement.offsetWidth;\n\n if (finalElement === columnElement) {\n console.warn(\"No text or field content element found, this might be probably mistake and width is not correctly calculated to the content size\");\n } else {\n // increase only in case we calculate width of children element.\n // It would increase the width of the whole column on each calculation otherwise\n elementWidth += 2;\n }\n\n width = Math.max(width, elementWidth, labelWidth);\n if (!hasOwnReadOnlyMaxWidth) {\n width = Math.min(maxWidth, width);\n }\n hasReadOnly = true;\n } else {\n width = Math.max(width, fieldWidth);\n hasEditable = true;\n }\n }\n }\n } else {\n width = fieldWidth;\n hasEditable = true;\n }\n\n columnsExtensions[column.id] = {\n width: `${width}px`,\n widths: {},\n columnIndex,\n isFirstReadOnly,\n hasReadOnly, hasEditable,\n textAlign: columnMetadata.textAlign ?? (isNumericType(\n columnBindingContext.getNavigationBindingContext(columnMetadata.fieldSettings?.displayName).getProperty()\n ) ? TextAlign.Right : TextAlign.Left)\n };\n }\n\n this._calculationState = needRecalc && this.props.useLabelWrapping ? CalculationStateType.Items : CalculationStateType.Labels;\n this._lastVisibleColCount = (this.props.columns?.length || 0) - invisibleCount;\n\n return columnsExtensions;\n };\n\n correctLabelPosition = (data: IEntity, left: number, columnId: string) => {\n const bc = this.props.bindingContext.navigate(columnId);\n const info = this.props.storage.getInfo(bc);\n const textAlign = data.textAlign;\n\n const _isRequired = isRequired({\n bindingContext: bc,\n info,\n storage: this.props.storage\n }) && data?.hasEditable;\n\n // UX shifts\n if ((_isRequired && textAlign === TextAlign.Left) ||\n (!_isRequired && textAlign === TextAlign.Left && !data.isFirstReadOnly)) {\n left += 12;\n }\n\n if (textAlign === TextAlign.Right && !data?.isFirstReadOnly) {\n left -= 12;\n }\n\n if (textAlign === TextAlign.Right && data?.isFirstReadOnly && data?.hasEditable) {\n left -= 8;\n }\n\n return left;\n };\n\n updateColumnExtensions = () => {\n if (!this.renderAsTable) {\n const columnsExtensions = this.getColumnExtensions();\n this.setState({\n columnsExtensions\n });\n }\n };\n\n updateLabelsPosition = () => {\n if (this.renderAsTable || !this.props.useLabelWrapping) {\n return;\n }\n\n const htmlItems = this._fastEntryListRef.current?.querySelectorAll(`[data-testid=\"${TestIds.FastEntryItem}\"]`);\n if (!htmlItems || htmlItems.length === 0) {\n return;\n }\n\n const htmlLabelsWrapper = this._fastEntryListRef.current?.querySelector(`[data-testid=\"${TestIds.FastEntryListHeader}\"]`);\n const htmlLabels = htmlLabelsWrapper?.children;\n\n if (!htmlLabelsWrapper || !htmlLabels || htmlLabels.length === 0) {\n return;\n }\n\n let i = 0;\n\n const htmlItem = htmlItems[0] as HTMLDivElement;\n // in children collection there can be a lot of different trash nodes so try to grab only direct field items or some of their wrappers\n const firstRow = [...htmlItem.querySelector(`[data-testid=\"${TestIds.FormGroupLine}\"]`)?.children || []].filter((item: Element) => {\n const htmlElement = item as HTMLElement;\n return htmlElement.dataset.testid === TestIds.Field || htmlElement.dataset.elementtype === \"FastEntryCol\" || htmlElement.dataset.testid === TestIds.FastEntryListLastField;\n });\n\n for (const columnElement of firstRow || []) {\n const htmlLabel = htmlLabels[i++] as HTMLDivElement;\n\n const columnId = htmlLabel.dataset.columnId;\n\n const data = this.state.columnsExtensions[columnId];\n // todo: should we check for data and if not defined, should we call 'updateColumnExtensions' ?\n\n const parent = (columnElement.parentNode as HTMLElement);\n const parentLeft = parent.getBoundingClientRect().left;\n const _fieldElement = columnElement.querySelector(`[data-testid=\"${TestIds.Field}\"]`) as HTMLDivElement;\n const fieldElement = _fieldElement ?? columnElement;\n\n const paddingLeft = parseFloat(window.getComputedStyle(fieldElement).getPropertyValue(\"padding-left\"));\n const hasBoth = data.hasEditable && data.hasReadOnly;\n const left = this.correctLabelPosition(data, columnElement.getBoundingClientRect().left - parentLeft + (!hasBoth ? paddingLeft : 0), columnId);\n\n htmlLabel.style.left = `${left}px`;\n }\n\n this._calculationState = CalculationStateType.Finished;\n };\n\n getLineHeight = (lineBindingContext: BindingContext) => {\n let height;\n\n const lineExtension = this.state.lineExtensions[lineBindingContext.toString()];\n\n if (lineExtension) {\n height = Math.max(...Object.values(lineExtension.heights).map(colHeight => parseInt(colHeight)));\n }\n\n return height;\n };\n\n handleReorder = (dragIndex: number, hoverIndex: number) => {\n const allItems = this.getItems(false);\n\n if (hoverIndex - 1 >= allItems.length) {\n // sadly, it is now possible to drag items over/behind \"removed\" items indicators\n // ignore it, but ideally, prevent it completely somehow\n return;\n }\n\n const { visible, invisible } = allItems.reduce((ret, item) => {\n const type = this.isItem(\"isItemVisible\", item, this.props.bindingContext.addKey(item)) ? \"visible\" : \"invisible\";\n ret[type].push(item);\n return ret;\n }, { visible: [], invisible: [] });\n\n let newItems = [...arrayMove(visible, dragIndex, hoverIndex), ...invisible];\n if (this.props.order) {\n newItems = newItems.map((item: IEntity, i: number) => {\n return { ...item, [this.props.order]: i + 1 }; // order property is expected from 1 not from 0\n });\n }\n\n this.props.onAction?.({\n bindingContext: this.props.bindingContext,\n actionType: ActionType.Reorder,\n groupId: this.props.groupId,\n items: newItems\n });\n };\n\n handleBlur = async (args: ISmartFieldBlur) => {\n // optimization - only recompute all errors if error state changed on blurred field\n const hadError = this.props.storage.getError(args.bindingContext);\n\n await this.props.onBlur?.(args);\n\n const hasError = this.props.storage.getError(args.bindingContext);\n\n if (hadError !== hasError) {\n this._errorStepperRef.current?.forceUpdate();\n }\n };\n\n _debounceForceUpdate = debounce(() => {\n this.forceUpdate();\n }, 300);\n\n handleChange = (e: ISmartFieldChange) => {\n e.groupId = this.props.groupId;\n this.showChanges && this._debounceForceUpdate();\n this.props.onChange?.(e);\n };\n\n handleTemporalChange = (e: ISmartFieldChange) => {\n e.groupId = this.props.groupId;\n this.props.onTemporalChange?.(e);\n };\n\n handleWidthChange = ({ width, bindingContext }: ISmartFieldWidthChange) => {\n const path = bindingContext.getPath();\n\n const currentWidth = this.state.columnsExtensions[path].width;\n const columnsExtensions = { ...this.state.columnsExtensions };\n\n columnsExtensions[path] = { ...columnsExtensions[path] };\n columnsExtensions[path].widths[bindingContext.toString()] = width;\n\n const maxWidth = Object.values(columnsExtensions[path].widths).reduce((maxWidth, currentWidth) => {\n return `${Math.max(parseInt(maxWidth), parseInt(currentWidth))}px`;\n }, \"0\");\n\n if (maxWidth !== currentWidth) {\n columnsExtensions[path].width = maxWidth;\n this.setState({\n columnsExtensions\n });\n }\n };\n\n handleHeightChange = ({ height, bindingContext }: ISmartFieldHeightChange) => {\n const linePath = getSharedContextPrefix(this.props.bindingContext, bindingContext).toString();\n const lineExtensions = {\n ...this.state.lineExtensions,\n [linePath]: {\n ...this.state.lineExtensions[linePath],\n heights: {\n ...this.state.lineExtensions[linePath]?.heights,\n [bindingContext.toString()]: height\n }\n }\n };\n\n this.setState({\n lineExtensions\n });\n };\n\n handleAdd = () => {\n if (this.props.isCollapsible) {\n const isExpanded = this.props.storage.getGroupStatus(this.props.groupId)?.isExpanded;\n if (!isExpanded) {\n this.props.storage.expandGroup(true, this.props.groupId);\n this.forceUpdate(this.addItem);\n return;\n }\n }\n\n if (this.state.searchValue) {\n // remove filter, otherwise new item will not be visible\n this.setState({\n searchValue: null\n });\n this._searchFieldRef.current?.setState({\n searchValue: null\n });\n }\n\n this._calculationState = CalculationStateType.Items;\n\n this.addItem();\n };\n\n getNewItemIndex = (): number => {\n return this.getItems(false).length;\n };\n\n addItem = (preventScrolling?: boolean) => {\n if (!preventScrolling) {\n this._updateAddPos = true;\n this._focusItemN = this.getNewItemIndex();\n }\n\n const items = this.getItems(false);\n const newItemsMax = getNewItemsMaxId(items);\n const newItem = addEmptyLineItem({\n storage: this.props.storage,\n bindingContext: this.props.bindingContext,\n newItemsCount: newItemsMax + 1,\n index: items.length + 1,\n order: this.props.order,\n columns: this.props.columns,\n context: this.props.storage.context\n });\n this.props.onAction({\n bindingContext: this.props.bindingContext,\n actionType: ActionType.Add,\n groupId: this.props.groupId,\n items: [...items, newItem],\n affectedItems: [newItem]\n });\n };\n\n handleClone = (clonedIndex: number) => {\n this._updateAddPos = true;\n this._focusItemN = this.getNewItemIndex();\n\n let newItems = [...this.getItems(false)];\n const visibleItems = [...this.getItems(true)];\n const originalItem = visibleItems[clonedIndex];\n const newItemsMax = getNewItemsMaxId(newItems);\n let newItem = BindingContext.createNewEntity(newItemsMax + 1);\n const keyName = this.props.bindingContext.getKeyPropertyName();\n\n for (const [key, value] of Object.entries(originalItem)) {\n if (key !== keyName && !(key in newItem)) {\n newItem[key] = cloneDeep(value);\n }\n }\n\n newItems.push(newItem);\n\n if (this.props.order) {\n newItems = newItems.map((item, index) => {\n return {\n ...item,\n [this.props.order]: index + 1\n };\n });\n // replace newItem, so it's the same object as in the list\n newItem = newItems.find(i => i[BindingContext.NEW_ENTITY_ID_PROP] === newItem[BindingContext.NEW_ENTITY_ID_PROP]);\n }\n\n // cloning should set dirty flag as we are cloning non-empty row and the new row is not saved on BE\n const itemBindingContext = this.props.bindingContext.addKey(newItem);\n this.props.storage.setDirty(itemBindingContext);\n\n this.props.onAction?.({\n bindingContext: this.props.bindingContext,\n items: newItems,\n groupId: this.props.groupId,\n actionType: ActionType.Clone,\n affectedItems: [newItem]\n });\n };\n\n handleRemove = (removedIndex: number) => {\n // Note: there may be difference between visible items and all items. We need to work with both\n const visibleItems = this.getItems();\n let items = this.getItems(false);\n\n this._focusItemN = removedIndex >= items.length - 1 ? removedIndex - 1 : removedIndex;\n\n const removedItem = visibleItems[removedIndex];\n const itemBindingContext = this.props.bindingContext.addKey(removedItem);\n\n // remove width from columnsExtensions for removed bindingContext\n for (const column of Object.keys(this.state.columnsExtensions)) {\n const colBc = itemBindingContext.navigate(column);\n if (this.state.columnsExtensions[column].widths[colBc.getFullPath()]) {\n this.handleWidthChange({ width: \"0px\", bindingContext: colBc });\n }\n }\n\n // remove extension for the line\n const lineExtensions = { ...this.state.lineExtensions };\n delete lineExtensions[itemBindingContext.getFullPath()];\n\n this.setState({\n lineExtensions\n });\n\n items = items.filter(item => item !== removedItem);\n\n if (this.props.order) {\n // order property is expected from 1 not from 0\n const _getNextOrder = (idx: number) => this.props.orderDirection === Sort.Desc ? items.length - idx : idx + 1;\n\n items = items.map((item, i) => { // update Order\n return { ...item, [this.props.order]: _getNextOrder(i) };\n });\n }\n\n this._calculationState = CalculationStateType.Items;\n\n this.props.onAction?.({\n bindingContext: this.props.bindingContext,\n actionType: ActionType.Remove,\n groupId: this.props.groupId,\n items,\n affectedItems: [removedItem]\n });\n };\n\n handleFocusPreviousItem = (index: number): void => {\n this.focusFirstInputOfNItem(index - 1);\n };\n\n handleFocusNextItem = (index: number): void => {\n this.focusFirstInputOfNItem(index + 1);\n };\n\n handleReorderUp = (index: number): void => {\n if (index > 0) {\n const newIndex = index - 1;\n\n this._focusItemN = newIndex;\n this.handleReorder(index, newIndex);\n }\n };\n\n handleReorderDown = (index: number): void => {\n if (index < this.getItems().length - 1) {\n const newIndex = index + 1;\n\n this._focusItemN = newIndex;\n this.handleReorder(index, newIndex);\n }\n };\n\n sortByOrder = (a: IEntity, b: IEntity) => {\n const dir = this.props.orderDirection === Sort.Desc ? Sort.Desc : Sort.Asc;\n\n return sortCompareFn(a[this.props.order], b[this.props.order], dir);\n };\n\n useVirtualization = (applySearchValue = false): boolean => {\n return !this.props.disableVirtualization && this.getItems(true, applySearchValue).length > VIRTUALIZATION_THRESHOLD;\n };\n\n handleWrapChange = (isWrapped: boolean) => {\n if (!isWrapped) {\n this._calculationState = CalculationStateType.Labels;\n }\n this.setState((state: IState) => ({ ...state, isWrapped }));\n };\n\n getLabels = () => {\n return this.props.columns\n .map((column) => {\n const bc = this.props.bindingContext.navigate(column.id);\n const data = this.state.columnsExtensions?.[column.id];\n const width = !data?.width || data.width === \"0px\" ? \"auto\" : data.width;\n\n const info = this.props.storage.getInfo(bc);\n const textAlign = data?.textAlign;\n\n const _isVisible = isVisible({\n bindingContext: bc,\n info,\n storage: this.props.storage\n });\n\n const _isLabelRemoved = info.labelStatus === LabelStatus.Removed;\n\n if (!_isVisible || _isLabelRemoved) {\n return null;\n }\n\n const _isRequired = isRequired({\n bindingContext: bc,\n info,\n storage: this.props.storage\n }) && data?.hasEditable;\n\n const key = bc.toString();\n\n return \n {info.label}\n ;\n ;\n })\n .filter(label => !!label); // filter out invisible fields' labels\n };\n\n getAuditTrailData = (bc: BindingContext) => {\n if ((this.props.storage as FormStorage)?.formMode === FormMode.AuditTrail) {\n return this.props.storage.getAdditionalFieldData(bc, FieldAdditionalData.AuditTrailData);\n }\n\n return undefined;\n };\n\n isFormDisabled = () => {\n return this.props.storage?.isDisabled;\n };\n\n isComparison = () => {\n return (this.props.storage as FormStorage)?.formMode === FormMode.AuditTrail;\n };\n\n isReadOnlyFormMode = () => {\n return (this.props.storage as FormStorage)?.isReadOnly;\n };\n\n /**\n * returns if whole line item is removable or cloneable - when in readOnly mode,\n * item is by default not cloneable or removable, however in default form, all line items\n * are by default removable and cloneable, so we handle here different default value.\n */\n isItem = (name: TInfoValueProp, item: IEntity, bindingContext: BindingContext) => {\n const propVal = getInfoValue(this.props, name, {\n storage: this.props.storage,\n bindingContext, item,\n context: this.props.storage.context,\n fastEntryListId: this.props.groupId\n });\n const isReadOnlyMode = this.isReadOnlyFormMode();\n const defaults = ITEM_PROPS_DEFAULTS[name];\n const defaultValue = (isReadOnlyMode ? defaults?.readOnly : defaults?.editable) ?? false;\n\n return isDefined(propVal) ? propVal : defaultValue;\n };\n\n handleCollapsed = () => {\n const isExpanded = this.props.storage.getGroupStatus(this.props.groupId)?.isExpanded;\n this.props.storage.expandGroup(!isExpanded, this.props.groupId);\n this.forceUpdate();\n };\n\n handleCollapsingEnd = () => {\n this.props.storage.emitter.emit(ModelEvent.RecalculateScrollbar);\n };\n\n getMainToggleState = (): ToggleState => {\n let allToggled = true;\n let allUntoggled = true;\n\n const items = this.getItems();\n\n for (let i = 0; i < items.length; i++) {\n const isSelectable = this.isSelectable(items[i]);\n\n allToggled = allToggled && (this.state.selectedItems[i] || !isSelectable);\n allUntoggled = allUntoggled && (!this.state.selectedItems[i] || !isSelectable);\n }\n\n if (allToggled) {\n return ToggleState.AllChecked;\n } else if (allUntoggled) {\n return ToggleState.AllUnchecked;\n } else {\n return ToggleState.Other;\n }\n };\n\n isSelectable(item: IEntity, lineBindingContext?: BindingContext) {\n if (!lineBindingContext) {\n lineBindingContext = this.props.bindingContext.addKey(item);\n }\n return lineBindingContext.isNew() ? false : this.isItem(\"isItemSelectable\", item, lineBindingContext);\n }\n\n handleSelect = (id: number, selected: boolean) => {\n this.setState({\n selectedItems: {\n ...this.state.selectedItems,\n [id]: selected\n }\n });\n };\n\n handleMainToggleChange = (e: ICheckboxChange) => {\n const items = this.getItems();\n const selectedItems: Record = {};\n\n for (let i = 0; i < items.length; i++) {\n const isSelectable = this.isSelectable(items[i]);\n\n if (isSelectable) {\n selectedItems[i] = e.value;\n }\n }\n\n this.setState({\n selectedItems\n });\n };\n\n getSelectedItems = () => {\n return this.getItems()\n .filter((item, index) => !!this.state.selectedItems[index]);\n };\n\n handleCustomActionConfirm = () => {\n const items = this.getSelectedItems();\n\n // custom action sends only selected items in 'items'\n this.props.onAction({\n bindingContext: this.props.bindingContext,\n actionType: ActionType.Custom,\n customActionType: this.props.customAction.id,\n groupId: this.props.groupId,\n items, // todo: refactor customActions, use affectedItems instead of items\n affectedItems: items\n });\n\n this.props.onCustomActionFinish?.();\n };\n\n getItems = (onlyVisible = true, applySearchValue?: boolean): IEntity[] => {\n if (applySearchValue === undefined) {\n applySearchValue = onlyVisible;\n }\n\n // clone items to prevent side effect mutation on the original object (like sort)\n let _items: IEntity[] = [...getBoundValue({\n bindingContext: this.props.bindingContext,\n data: this.props.storage.data.entity,\n dataBindingContext: this.props.storage.data.bindingContext\n }) || []];\n\n if (onlyVisible) {\n _items = _items.filter((item: IEntity) => this.isItem(\"isItemVisible\", item, this.props.bindingContext.addKey(item)));\n }\n\n if (this.props.filterItems) {\n _items = this.props.filterItems(_items);\n }\n\n if (this.props.order) {\n _items.sort(this.sortByOrder);\n }\n\n // todo how exactly should filtering work?\n if (this.state.searchValue && applySearchValue) {\n _items = _items.filter(item => {\n let values = Object.values(item);\n if (this.props.searchInChildProps) {\n for (const prop of this.props.searchInChildProps) {\n values = [\n ...values,\n ...Object.values(item[prop])\n ];\n }\n }\n const searchValue = this.state.searchValue;\n\n return values.some(val => {\n let correctedSearchVal = searchValue;\n let correctedVal;\n\n if (typeof val === \"number\") {\n const parsedSearchVal = NumberType.parse(searchValue);\n\n if (isNaN(val) || isNaN(parsedSearchVal)) {\n return false;\n }\n\n correctedVal = Math.abs(val).toString();\n correctedSearchVal = parsedSearchVal.toString();\n } else if (val && val instanceof Date) {\n correctedVal = DateType.format(val);\n } else {\n correctedVal = val;\n }\n\n return startsWithAccentsInsensitive(correctedVal?.toString(), correctedSearchVal);\n });\n });\n }\n\n return _items;\n };\n\n get showChanges() {\n return isDefined(this.props.showChanges) ? this.props.showChanges : this.props.storage.data.definition.showChanges;\n }\n\n getRemovedItems = (): IEntity[] => {\n if (!this.showChanges) {\n return [];\n }\n\n const items = this.getItems(true, false);\n let origItems: IEntity[] = getBoundValue({\n bindingContext: this.props.bindingContext,\n data: this.props.storage.data.origEntity,\n dataBindingContext: this.props.storage.data.bindingContext\n }) || [];\n\n const keyName = this.props.bindingContext.getKeyPropertyName();\n\n if (this.props.filterItems) {\n origItems = this.props.filterItems(origItems);\n }\n\n return origItems.filter(origItem => !items.find(item => item[keyName] === origItem[keyName]));\n };\n\n renderMainToggle = () => {\n return (\n \n );\n };\n\n handleCustomButtonAction = (id: string): void => {\n const items = this.getSelectedItems();\n\n this.props.onAction({\n bindingContext: this.props.bindingContext,\n actionType: ActionType.Custom,\n customActionType: id,\n groupId: this.props.groupId,\n items,\n affectedItems: items\n });\n };\n\n renderCustomActionButtons = (position: ActionButtonPosition) => {\n const visibleActions = this.props.customActionButtons.filter(action => {\n const _isVisible = isVisible({ info: action, storage: this.props.storage });\n return _isVisible && (action.position === position || (!action.position && position === ActionButtonPosition.After));\n });\n\n if (visibleActions.length === 0) {\n return null;\n }\n\n return (\n \n {visibleActions.map(action => (\n ))}\n \n );\n };\n\n renderConfirmationButtons = () => {\n const selectedCount = Object.values(this.state.selectedItems).reduce((count, isSelected) => {\n return count + (isSelected ? 1 : 0);\n }, 0);\n\n return (\n \n \n \n );\n };\n\n renderReadOnly = (sortedItems: IEntity[]) => {\n const columns = this.props.columns.filter(col => {\n const colBc = this.props.bindingContext.navigate(col.id);\n const isVisible = getInfoValue(this.props.storage.getInfo(colBc), \"isVisible\", {\n storage: this.props.storage,\n bindingContext: colBc,\n context: this.props.storage.context\n });\n return isVisible !== false;\n }).map(col => {\n const colBc = this.props.bindingContext.navigate(col.id);\n const colId = colBc.getNavigationPath();\n const colDef: IFieldInfoProperties = this.props.storage.data.mergedDefinition?.[colId]?.fieldDef ?? {};\n const colInfo = this.props.storage.getInfo(colBc);\n const colExt = this.state.columnsExtensions[col.id];\n const path = this.props.bindingContext.getPath(true);\n\n // width and columns in line item definition is different from table columns width and has to be removed\n // additionalProperties use root notation like 'id: \"/Items/UnitPrice\"'\n // we use different root here than in FormView load => remove the /Items prefix, if present\n const additionalProperties = colDef.additionalProperties?.map(def => {\n const prefix = `/${path}`;\n if (def.id.startsWith(prefix)) {\n return {\n ...def,\n id: def.id.slice(prefix.length)\n };\n }\n\n return def;\n });\n\n return {\n ...colDef, ...col,\n bindingContext: colBc,\n additionalProperties,\n label: colInfo?.label || \"\",\n textAlign: colDef?.textAlign ?? colExt?.textAlign,\n width: null, columns: null\n };\n });\n\n const removableRows: { id: string, index: number }[] = [];\n const isReadOnlyForm = this.props.storage.isReadOnly;\n const rows: IRow[] = sortedItems.map((item: IEntity, idx: number) => {\n const lineBindingContext = this.props.bindingContext.addKey(item);\n const values: IEntity = {};\n for (const column of columns) {\n // Formatters are usually made to work with regular fields.\n // Unfortunately, we try to use them from multiple places, with multiple different bc/item/entity values.\n // => To make them work from here, if the column has a formatter, we have to call it the same way SmartField would.\n // For other columns, use getFormattedValueFromValues to format values automatically, like in SmartTable.\n const colHasFormatter = !!column.formatter;\n\n if (colHasFormatter) {\n const value = item[column.id];\n const formattedValue = column.formatter(value, {\n entity: this.props.storage.data.entity,\n item: item,\n bindingContext: lineBindingContext.navigate(column.id),\n readonly: true,\n storage: this.props.storage\n });\n\n if (column.render) {\n values[column.id] = column.render({\n storage: this.props.storage,\n props: {\n formattedValue,\n info: {\n ...column,\n bindingContext: lineBindingContext.navigate(column.id)\n }\n }\n });\n } else {\n values[column.id] = formattedValue;\n }\n }\n\n // it seems like some values are not necessarily handled by the formatter\n // as it is expected for Selects that the value is already stored in their (additional) items\n // => call getFormattedValueFromValues not only if colHasFormatter is false, but even if \"formatter\" didn't return any data\n if (!colHasFormatter || isNotDefined(values[column.id])) {\n values[column.id] = getFormattedValueFromValues({\n column,\n values: item,\n valuesBindingContext: this.props.bindingContext,\n storage: this.props.storage\n });\n }\n\n if (isNotDefined(values[column.id]) || values[column.id] === \"\") {\n values[column.id] = DASH_CHARACTER;\n }\n }\n\n const rowId = `row-${idx}`;\n\n if (!isReadOnlyForm && this.isItem(\"isItemRemovable\", item, lineBindingContext)) {\n removableRows.push({\n id: rowId,\n index: idx\n });\n }\n\n return {\n id: rowId,\n values,\n isDisabled: this.isItem(\"isItemDisabled\", item, lineBindingContext)\n };\n });\n const getContentAfter = (row: IRow, index: number) => {\n const removableRow = removableRows.find(r => r.id === row.id);\n\n if (!removableRow) {\n return null;\n }\n\n return (\n this.handleRemove(index)}\n isDecorative\n isTransparent>\n \n \n );\n };\n\n\n const rowHeight = 30;\n if (!rows.length) {\n return null;\n }\n return (\n <>\n \n {this.props.showLineNumbers &&\n \n {rows.map((row, index) => {\n return (\n \n {index + 1}\n \n );\n })}\n }\n \n \n \n \n {this.props.customFooterContent ?\n
{this.props.customFooterContent}
: null}\n \n );\n };\n\n handleErrorFocusChange = (errorBc: BindingContext, itemIndex: number) => {\n this._virtualizedListRef.current.scrollToItem(itemIndex, \"start\");\n };\n\n renderErrorStepper = () => {\n return ;\n };\n\n getCustomPreContent = (labelStatus: LabelStatus, index: number): React.ReactNode => {\n const items = this.getItems();\n const item = items[index];\n const lineBindingContext = this.props.bindingContext.addKey(item);\n\n return this.props.customPreContent({\n itemBc: lineBindingContext,\n index,\n item,\n items,\n labelStatus\n });\n };\n\n getCustomPreContentWithLabelStatus = memoizeOne((labelStatus: LabelStatus) => {\n return this.getCustomPreContent.bind(this, labelStatus);\n });\n\n getFastEntryListChildren = (sortedItems: IEntity[], isFormDisabled: boolean): IFastEntryListChild[] => {\n const children: IFastEntryListChild[] = [];\n const removedItems = this.getRemovedItems();\n\n const canReorder = this.canReorder;\n\n const originalOrder = this.props.storage.data.origEntity?.Items?.reduce((origOrderMap: TRecordAny, item: IEntity) => {\n origOrderMap[item[this.props.bindingContext.getKeyPropertyName()]] = item[this.props.order];\n return origOrderMap;\n }, {}) ?? {};\n\n // use getItems to get all items, not just filtered ones (when virtualized)\n // so that only LAST item can not be removed\n const disableRemoveAction = !this.canRemoveLastItem && this.getItems(false, false).length === 1;\n\n sortedItems.forEach((row, i) => {\n const lineBindingContext = this.props.bindingContext.addKey(row);\n const height = this.getLineHeight(lineBindingContext);\n const key = lineBindingContext.toString();\n let heightPx: string;\n\n if (height) {\n heightPx = `${height}px`;\n }\n\n children.push({\n id: i.toString(),\n showIndicator: () => {\n const isAnyFieldChanged = this.props.columns.some(column => {\n const bc = lineBindingContext.navigate(column.id);\n const info = this.props.storage.getInfo(bc);\n const isVisible = getInfoValue(info, \"isVisible\", {\n storage: this.props.storage,\n bindingContext: bc,\n context: this.props.storage.context\n });\n\n return isVisible !== false && !isFieldValueSame(this.props.storage, bc);\n });\n const showNewLineIndicator = !this.props.bindingContext.getRootParent()?.isNew() &&\n !this.props.storage.loading && (lineBindingContext.isNew() || isAnyFieldChanged || row[this.props.order] !== originalOrder[lineBindingContext.getKey()])\n && this.showChanges && !this.getAuditTrailData(lineBindingContext);\n\n return showNewLineIndicator;\n },\n render: ({\n dragHandleProps,\n connectEntryRef,\n labelStatus\n }: IFastEntryListChildRender) => {\n const auditTrailData = this.getAuditTrailData(lineBindingContext);\n const isDisabled = this.isItem(\"isItemDisabled\", row, lineBindingContext);\n const itemCannotBeDeleted = !!this.props.storage.getBackendDisabledFieldMetadata(lineBindingContext)?.cannotBeDeleted;\n const hasCustomAction = !!this.props.customAction;\n const isSelectable = this.isSelectable(row, lineBindingContext);\n return (\n \n {this.props.columns.filter(column => {\n const bc = lineBindingContext.navigate(column.id);\n const info = this.props.storage.getInfo(bc);\n const isVisible = getInfoValue(info, \"isVisible\", {\n storage: this.props.storage,\n bindingContext: bc,\n context: this.props.storage.context\n });\n return isVisible !== false;\n }).map((column) => {\n return ({ isSharpLeft, isSharpRight }: IFastEntryChild) => {\n const bc = lineBindingContext.navigate(column.id);\n\n const colExtension = this._calculatedBc.getFullPath() === this.props.bindingContext.getFullPath() && this.state.columnsExtensions[column.id];\n if (!colExtension && this.props.useLabelWrapping) {\n // sometimes DOM manipulator doesn't trigger calculation, so we have to do it manually\n this._calculationState = CalculationStateType.Items;\n }\n\n const auditTrailLineType = auditTrailData?.lineData?.type;\n if (auditTrailLineType === AuditTrailLineComparison.AdditionalRow || auditTrailLineType === AuditTrailLineComparison.MissingRow) {\n // this renders fields without tabindex\n this.props.storage.setAdditionalFieldData(bc, FieldAdditionalData.AuditTrailData, {}, false);\n }\n\n let width = colExtension?.width;\n if (colExtension?.hasEditable && colExtension?.hasReadOnly) {\n const columnBindingContext = this.props.bindingContext.navigate(column.id);\n const columnInfo = this.props.storage.getInfo(columnBindingContext);\n const isFieldReadOnly = getInfoValue(columnInfo, \"isReadOnly\", {\n storage: this.props.storage,\n bindingContext: bc,\n context: this.props.storage.context\n });\n\n // https://solitea-cz.atlassian.net/browse/DEV-18871\n // when different readonly/editable states are used in one column\n // we need to subtract width of the paddings (20+10) from the readonly fields\n // to make them the same size as the editable ones\n\n if (isFieldReadOnly) {\n width = `${parseInt(colExtension?.width) - 27}px`;\n }\n }\n\n isSharpRight = isSharpRight && column.groupedField !== GroupedField.MultiEnd;\n isSharpLeft = isSharpLeft && column.groupedField !== GroupedField.MultiStart;\n\n const fieldDef: IFieldInfoProperties = {};\n if (hasCustomAction && (!isSelectable || this.props.disableFieldsOnActiveAction)) {\n fieldDef.isDisabled = true;\n }\n if (this.props.isConfirmable) {\n fieldDef.isConfirmable = true;\n }\n const props = {\n storage: this.props.storage,\n fieldDef: isObjectEmpty(fieldDef) ? null : fieldDef,\n fastEntryListId: this.props.groupId,\n fieldProps: {\n width,\n textAlign: colExtension?.textAlign,\n isSharpRight: isSharpRight,\n isSharpLeft: isSharpLeft,\n isLight: this.props.isLight,\n height: heightPx,\n isMultiLine: false,\n showChange: false,\n maxRows: 3,\n // Removed should be always passed down, otherwise let SmartField take its LabelStatus from fieldinfo\n labelStatus: labelStatus === LabelStatus.Removed ? labelStatus : undefined\n },\n\n useWidthWhenReadOnly: true,\n key: column.id,\n bindingContext: bc,\n onBlur: this.handleBlur,\n onChange: this.handleChange,\n onTemporalChange: this.handleTemporalChange,\n onWidthChange: this.handleWidthChange,\n onHeightChange: this.handleHeightChange\n };\n\n if (this.props.isReadOnly) {\n (props as ISmartFieldProps).fieldProps.isReadOnly = true;\n }\n\n return (\n // todo should we disable all fields when isFormDisabled || isDisabled is true?\n \n );\n };\n })}\n \n );\n }\n });\n });\n\n if (removedItems.length > 0) {\n const tKey = this.props.deletedItemsTranslationKey ?? \"Components:SmartFastEntryList.ItemsDeleted\";\n children.push({\n id: (sortedItems.length + 1).toString(),\n render: null,\n showIndicator: () => {\n return true;\n },\n isEmptyItem: true,\n emptyItemText: this.props.t(tKey, { count: removedItems.length })\n });\n }\n\n return children;\n };\n\n get canReorder() {\n return getValue(this.props.canReorder, {\n storage: this.props.storage,\n context: this.props.storage.context\n }) && !this.isDisabled;\n }\n\n get canRemoveLastItem() {\n return this.props.isTheOnlyItemRemovable;\n }\n\n get showOrderIcon() {\n return this.canReorder && !this.isComparison();\n }\n\n get canAdd(): boolean {\n if (this.props.isReadOnly) {\n return false;\n }\n\n if (this.props.isGroupToggleable) {\n const items = this.getItems(false, false);\n if (!items.length) {\n // toggleable group without items should not show add button\n return false;\n }\n }\n\n const args = {\n storage: this.props.storage,\n context: this.props.storage.context\n };\n\n return getValue(this.props.canAdd, args);\n }\n\n get isAddDisabled(): boolean {\n const args = {\n storage: this.props.storage,\n context: this.props.storage.context\n };\n\n return getValue(this.props.isAddDisabled, args) || this.isDisabled;\n }\n\n /** In the context of SmartFastEntryList, isDisabled means that the items of the collection cannot be add or removed.\n * We don't care about disabled state of the fields, that is handled by SmartField for each field */\n get isDisabled(): boolean {\n return getInfoValue(this.props, \"isDisabled\", {\n storage: this.props.storage,\n bindingContext: this.props.bindingContext,\n context: this.props.storage.context\n }) || !!this.props.storage.getBackendDisabledFieldMetadata(this.props.bindingContext);\n }\n\n get renderAsTable(): boolean {\n return this.props.isReadOnly && !this.props.renderAsFastEntryForReadOnly;\n }\n\n render = () => {\n const sortedItems = this.getItems();\n\n if (this.renderAsTable) {\n return this.renderReadOnly(sortedItems);\n }\n\n const isFormDisabled = this.isFormDisabled();\n const canAdd = this.canAdd;\n const useVirtualization = this.useVirtualization();\n\n let labelsLeftPad = 0;\n\n if (!!this.props.customAction) {\n // todo this is suspicious, maybe the value should be passed from place it is used in\n labelsLeftPad = 42;\n } else {\n if (this.showOrderIcon) {\n // icon + its margin\n labelsLeftPad += IconSize.asNumber(\"M\") + REORDER_ICON_MARGIN;\n }\n if (this.props.showLineNumbers) {\n labelsLeftPad += ORDER_BACKGROUND_WIDTH + ORDER_BACKGROUND_RIGHT_MARGIN;\n }\n }\n\n if (this.props.labelsLeftMargin) {\n labelsLeftPad += this.props.labelsLeftMargin;\n }\n\n /* Currently only VAT table is using customFooterContent. The VAT table should have same\n width as FastEntryList content in case it is not wrapped, but the other content (buttons)\n should be on the most right edge -> set the width only to the CustomFooterContent*/\n const contentWidth = !useVirtualization && this.props.customFooterContent && !this.state.isWrapped\n ? this.state.contentWidth : null;\n\n // when virtualized, we need to recalculate item size when columns change,\n // => remount here by using columns as key instead of finding a way how to propagate the columns into SortableList\n const columnsKey = useVirtualization ? this.props.columns.map(col => col.id).join(\"-\") : \"\";\n\n return (\n \n {useVirtualization &&\n }\n {useVirtualization && this.renderErrorStepper()}\n call useVirtualization with applySearchValue true\n useVirtualization={this.useVirtualization(true)}\n height={\"70vh\"}\n containsPrimary={this.props.containsPrimary}\n customPreContent={!!this.props.customAction ? this.renderMainToggle() : null}\n labels={this.getLabels()}\n labelsLeftPad={labelsLeftPad}\n passRef={this._fastEntryListRef}\n virtualizedListRef={this._virtualizedListRef}\n >\n\n {this.getFastEntryListChildren(sortedItems, isFormDisabled)}\n\n \n {!this.props.customAction && !this.isComparison() && (canAdd || this.props.customActionButtons || this.props.customFooterContent) && (\n \n {this.props.customActionButtons && this.renderCustomActionButtons(ActionButtonPosition.Before)}\n {canAdd &&\n \n {this.props.customAddButtonText ?? this.props.t(\"Common:General.Add\")}\n \n }\n {this.props.customActionButtons && this.renderCustomActionButtons(ActionButtonPosition.After)}\n {this.props.customFooterContent}\n \n )}\n {this.props.customAction && this.renderConfirmationButtons()}\n\n \n );\n };\n}\n\nexport default withDomManipulator(withTranslation(\"Common\")(SmartFastEntryList));","import SmartFastEntryList from \"./SmartFastEntryList\";\n\nexport * from \"./SmartFastEntryList\";\nexport * from \"./SmartFastEntryList.utils\";\nexport default SmartFastEntryList;","import { ICachedFieldState, IStorageSmartFieldValues } from \"@odata/Data.utils\";\nimport { getFieldInfo, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { isDefined } from \"@utils/general\";\nimport React, { ComponentType } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext, IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FieldType, LabelStatus } from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { IAuditTrailData, Model } from \"../../../model/Model\";\nimport { IValidationError } from \"../../../model/Validator.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IMultiFieldSelectChange } from \"../../inputs/businessPartnerSelect\";\nimport { ICheckboxChange } from \"../../inputs/checkbox\";\nimport { ICheckboxGroupChange } from \"../../inputs/checkboxGroup/CheckboxGroup\";\nimport { ISmartCheckboxGroupChangeEvent } from \"../../inputs/checkboxGroup/SmartCheckboxGroup\";\nimport Field from \"../../inputs/field\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent, IInputRowsChangeEvent, ISharedInputProps } from \"../../inputs/input\";\nimport { IMultiSelectionChangeArgs } from \"../../inputs/select/MultiSelect\";\nimport { TCellValue } from \"../../table\";\nimport { TooltipIconInfo } from \"../../tooltipIcon\";\nimport { StyledTooltipContent } from \"../../tooltipIcon/TooltipIcon.styles\";\nimport { getInfoValue, IFieldDef, IFieldInfoProperties } from \"../FieldInfo\";\nimport { ISmartRadioGroupChange } from \"../smartRadioButtonGroup/SmartRadioButtonGroup\";\nimport { TFieldValue } from \"../smartTable/SmartTable.utils\";\nimport { IValueHelperChangeArgs } from \"../smartValueHelper\";\nimport {\n getControlData,\n getValueHelperChangeParams,\n IGetControlDataRetValue,\n ISmartFieldEvents\n} from \"./SmartFieldUtils\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface ISmartFieldTempDataActionArgs {\n bindingContext: BindingContext;\n groupId?: string;\n}\n\nexport interface ISmartFieldChange {\n value?: TValue;\n parsedValue?: TValue;\n selectedItems?: ISelectItem[];\n currentValue?: string;\n groupId?: string;\n\n type?: FieldType;\n bindingContext: BindingContext;\n triggerAdditionalTasks?: boolean;\n additionalData?: TRecordAny;\n // time to time, we need to work with previous value of the field. Storage is responsible to set the previous value\n // to the event just before if updates it in the storage, so it's always available\n previousValue?: TValue;\n}\n\nexport interface ISmartFieldWidthChange {\n width: string;\n bindingContext: BindingContext;\n}\n\nexport interface ISmartFieldHeightChange {\n height: string;\n bindingContext: BindingContext;\n}\n\nexport interface ISmartFieldBlur extends IInputOnBlurEvent {\n groupId?: string;\n bindingContext: BindingContext;\n isCreating?: boolean;\n}\n\nexport interface ISmartFieldValidationError {\n groupId?: string;\n data: IValidationError;\n bindingContext: BindingContext;\n}\n\nexport interface ISmartFieldProps {\n bindingContext: BindingContext;\n storage: Model;\n uuid?: string;\n /** Use if SmartField is defined with custom Model or to override definition stored in storage fieldsInfo\n * for example if you want to use multiple SmartFields for same property with different formatter */\n fieldDef?: IFieldInfoProperties;\n\n fieldProps?: ISharedInputProps & {\n labelStatus?: LabelStatus;\n hasPadding?: boolean;\n tooltip?: string;\n isRequired?: boolean;\n };\n\n className?: string;\n style?: React.CSSProperties;\n\n showLabelDescription?: boolean;\n useWidthWhenReadOnly?: boolean;\n\n fastEntryListId?: string;\n\n onChange?: (args: ISmartFieldChange) => void;\n onTemporalChange?: (args: ISmartFieldChange) => void;\n onCancel?: (args: ISmartFieldTempDataActionArgs) => void;\n onConfirm?: (args: ISmartFieldTempDataActionArgs) => void;\n\n // callback when field state has changed (become visible/hidden, become required or is not required anymore)\n onFieldStateChange?: (bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState) => void;\n\n onBlur?: (args: ISmartFieldBlur) => void;\n /** ResponsiveInput can cause width change event */\n onWidthChange?: (args: ISmartFieldWidthChange) => void;\n onHeightChange?: (args: ISmartFieldHeightChange) => void;\n\n // Method called to customize render\n customRenderWrapper?: (field: React.ReactNode, info: IFieldInfo, data: IGetControlDataRetValue) => React.ReactNode;\n // adds extra content to Field before Input\n extraFieldContent?: React.ReactElement;\n\n // otherwise doesn't work for typescript, because of withTranslation HOC\n ref?: React.Ref;\n}\n\ninterface ISmartFieldState {\n fieldInfo: IFieldInfo;\n}\n\nexport interface ISmartFieldRenderProps {\n info?: IFieldInfo;\n formattedValue?: TCellValue | Promise | TFieldValue;\n parentProps?: ISmartFieldProps;\n storageData?: IStorageSmartFieldValues;\n auditTrailData?: IAuditTrailData;\n onRowsChange?: ({ numRows, newHeight }: IInputRowsChangeEvent) => void;\n onBlur?: (args: IInputOnBlurEvent) => void;\n error?: IValidationError;\n name?: string;\n width?: string;\n value?: any;\n checked?: boolean;\n currentValue?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isSharpLeft?: boolean;\n isSharpRight?: boolean;\n isVisible?: boolean;\n labelStatus?: LabelStatus;\n showChange?: boolean;\n // could be any of the change events handled by SmartField (input, select...)\n onChange?: (args: unknown) => void;\n}\n\nclass SmartField extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n state = {\n fieldInfo: null as IFieldInfo\n };\n\n _isMounted: boolean;\n _currentFieldState: ICachedFieldState;\n uuid: string;\n\n constructor(props: ISmartFieldProps & WithTranslation, context: IAppContext) {\n super(props, context);\n\n // automatically register SmartField on model\n this.props.storage.addRef(this, this.props.bindingContext);\n }\n\n cacheCurrentFieldStateAndTriggerEvents(triggerEvents: boolean) {\n const { storage, bindingContext } = this.props;\n\n const savedState = storage.getAdditionalFieldData(bindingContext, \"currentFieldState\");\n const savedStateKeys: (keyof ICachedFieldState)[] = [\"isRequired\", \"isVisible\"];\n if (savedState && savedStateKeys.some((key) => isDefined(savedState[key]) && savedState[key] !== this._currentFieldState[key])) {\n this.props.onFieldStateChange?.(bindingContext, this._currentFieldState, savedState);\n }\n\n storage.setAdditionalFieldData(bindingContext, \"currentFieldState\", { ...this._currentFieldState }, false);\n }\n\n\n componentDidMount() {\n this._isMounted = true;\n this.loadInfo();\n this.cacheCurrentFieldStateAndTriggerEvents(false);\n }\n\n componentDidUpdate(prevProps: ISmartFieldProps, prevState: ISmartFieldState): void {\n this.loadInfo();\n this.cacheCurrentFieldStateAndTriggerEvents(true);\n if (!prevProps.bindingContext.isSame(this.props.bindingContext)) {\n this.props.storage?.removeRef(this, prevProps.bindingContext);\n this.props.storage.addRef(this, this.props.bindingContext);\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n this.props.storage?.removeRef(this, this.props.bindingContext);\n }\n\n getInfo = () => {\n let fieldInfo = this.props.storage.getInfo(this.props.bindingContext);\n\n if (this.props.fieldDef) {\n fieldInfo = { ...fieldInfo, ...this.props.fieldDef };\n }\n\n return fieldInfo;\n };\n\n loadInfo = async () => {\n if (this.getInfo()) {\n return;\n }\n\n const info = await getFieldInfo({\n bindingContext: this.props.bindingContext,\n context: this.context,\n fieldDef: this.props.fieldDef as IFieldDef\n });\n\n if (info) {\n this.props.storage.data.fieldsInfo[this.props.bindingContext.getFullPath(true)] = info;\n this.forceUpdate();\n }\n };\n\n handleBlur = (args: IInputOnBlurEvent) => {\n this.props.onBlur?.({\n ...args,\n bindingContext: this.props.bindingContext\n });\n };\n\n handleFocus = () => {\n // do nothing\n };\n\n handleInputChange = (data: IInputOnChangeEvent) => {\n this.handleFieldChange({\n value: data.value,\n type: this.getControlType(),\n bindingContext: this.props.bindingContext\n });\n };\n\n handleColorChange = (value: string) => {\n this.handleFieldChange({\n value,\n type: this.getControlType(),\n bindingContext: this.props.bindingContext\n });\n };\n\n handleCheckboxChange = (args: ICheckboxChange) => {\n this.handleFieldChange({\n value: args.value,\n type: this.getControlType(),\n bindingContext: this.props.bindingContext\n });\n };\n\n handleSwitchChange = (checked: boolean) => {\n this.handleFieldChange({\n value: checked,\n parsedValue: checked,\n type: this.getInfo().type,\n bindingContext: this.props.bindingContext\n });\n };\n\n handleConfirm = () => {\n this.props.onConfirm?.({\n bindingContext: this.props.bindingContext\n });\n };\n\n handleCancel = () => {\n this.props.onCancel?.({\n bindingContext: this.props.bindingContext\n });\n };\n\n handleSelectChange = (args: ISelectionChangeArgs | IMultiFieldSelectChange | IMultiSelectionChangeArgs) => {\n this.handleFieldChange({\n value: args.value as TValue,\n selectedItems: (args as IMultiSelectionChangeArgs).selectedItems,\n additionalData: args.additionalData,\n triggerAdditionalTasks: args.triggerAdditionalTasks,\n type: this.getControlType(),\n bindingContext: this.props.bindingContext\n });\n };\n\n handleValueHelperChange = (args: IValueHelperChangeArgs) => {\n this.handleFieldChange(getValueHelperChangeParams(this.props.bindingContext, this.getControlType(), args));\n };\n\n handleSegmentedButtonChange = (key: string) => {\n this.handleFieldChange({\n value: key,\n type: FieldType.SegmentedButton,\n bindingContext: this.props.bindingContext,\n // to trigger correctEnumValue in FormStorage.handleChange\n triggerAdditionalTasks: true\n });\n };\n\n handleOnDateChange = (e: IInputOnChangeEvent) => {\n this.handleFieldChange({\n value: e.value,\n parsedValue: e.value,\n type: this.getControlType(),\n bindingContext: this.props.bindingContext,\n triggerAdditionalTasks: e.triggerAdditionalTasks\n });\n };\n\n handleFileChange = (files: File[]) => {\n this.handleFieldChange({\n value: files,\n type: FieldType.FileInput,\n bindingContext: this.props.bindingContext\n });\n }\n\n handleWidthChange = (width: string) => {\n this.props.onWidthChange?.({\n bindingContext: this.props.bindingContext,\n width\n });\n };\n\n handleRowsChange = ({ newHeight }: IInputRowsChangeEvent) => {\n this.props.onHeightChange?.({\n bindingContext: this.props.bindingContext,\n height: newHeight\n });\n };\n\n handleCheckboxGroupChange = (args: ICheckboxGroupChange) => {\n this.handleFieldChange({\n bindingContext: this.props.bindingContext,\n value: args.values,\n // FormStorage.storeMultiValue expects this\n triggerAdditionalTasks: true\n });\n };\n\n handleRadioButtonChange = (args: ISmartRadioGroupChange) => {\n this.handleFieldChange({\n bindingContext: this.props.bindingContext,\n value: args.value\n });\n };\n\n handleSmartCheckboxGroupChange = (args: ISmartCheckboxGroupChangeEvent) => {\n this.handleFieldChange({\n bindingContext: args.bindingContext,\n value: args.value\n });\n };\n\n handleFieldChange = (args: ISmartFieldChange) => {\n const isConfirmable = this.getInfo()?.isConfirmable;\n\n if (isConfirmable) {\n this.props.onTemporalChange?.(args);\n } else {\n (this.props.storage as FormStorage).handleFirstChange?.();\n this.props.onChange(args);\n }\n };\n\n getDisabledMessage = (): string => {\n // currently, we don't want to show automatic disabled message https://solitea-cz.atlassian.net/browse/DEV-18205\n return \"\";\n };\n\n getControlType = () => {\n return this.getInfo()?.type;\n };\n\n render() {\n const info = this.getInfo();\n if (!info) {\n return null;\n }\n\n const events: ISmartFieldEvents = {\n onBlur: this.handleBlur,\n onFocus: this.handleFocus,\n onDateChange: this.handleOnDateChange,\n onFileChange: this.handleFileChange,\n onSegmentedButtonChange: this.handleSegmentedButtonChange,\n onWidthChange: this.handleWidthChange,\n onInputChange: this.handleInputChange,\n onCheckboxChange: this.handleCheckboxChange,\n onColorChange: this.handleColorChange,\n onSwitchChange: this.handleSwitchChange,\n onCheckboxGroupChange: this.handleCheckboxGroupChange,\n onSmartRadioButtonChange: this.handleRadioButtonChange,\n onSmartCheckboxGroupChange: this.handleSmartCheckboxGroupChange,\n onRowsChange: this.handleRowsChange,\n onSelectChange: this.handleSelectChange,\n onValueHelperChange: this.handleValueHelperChange,\n onCancel: this.handleCancel,\n onConfirm: this.handleConfirm,\n onChange: this.props.onChange\n };\n\n const { storage, bindingContext } = this.props;\n let { fieldProps } = this.props;\n const controlData = getControlData({\n bc: bindingContext,\n storage,\n type: this.getControlType(),\n context: this.context,\n fieldDef: this.props.fieldDef,\n events,\n fastEntryListId: this.props.fastEntryListId\n });\n\n const { isRequired, isVisible } = controlData.storageData ?? {};\n this._currentFieldState = { isRequired, isVisible };\n\n if (!controlData?.storageData.isVisible) {\n return null;\n }\n\n let fieldElement;\n const auditTrailData = fieldProps?.auditTrailData ?? controlData.storageData.additionalFieldData?.auditTrailData;\n\n if (this.getControlType() !== FieldType.Custom) {\n const tooltip = fieldProps?.tooltip ?? (info?.tooltip && getInfoValue(info, \"tooltip\", {\n storage\n }));\n const extraFieldContent = getInfoValue(info, \"extraFieldContent\", {\n storage, info, bindingContext\n }) || this.props.extraFieldContent;\n const extraFieldContentAfter = getInfoValue(info, \"extraFieldContentAfter\", {\n storage, info, bindingContext\n });\n\n const tooltipAfter = getInfoValue(info, \"tooltipAfter\", { storage });\n const labelStatus = getInfoValue(info, \"labelStatus\", { storage });\n\n // Currently, we show sharpLeft input for fields with extra content before, usually text,\n // but we may need to customize this in fieldSettings in the future?\n fieldProps = {\n ...fieldProps,\n isSharpLeft: fieldProps?.isSharpLeft || !!extraFieldContent,\n isSynchronized: controlData.props.isSynchronized\n };\n\n //@ts-ignore\n const Control = ;\n\n // the same thing could be done for checkbox/radiobutton HERE instead of in field\n fieldElement = (\n \n {extraFieldContent}\n {Control}\n {extraFieldContentAfter}\n {tooltipAfter && \n {tooltipAfter}\n }\n \n );\n }\n\n if (info.render) {\n fieldElement = info.render({\n storage: this.props.storage as Model,\n fieldElement,\n events,\n props: {\n parentProps: this.props,\n info,\n storageData: controlData.storageData,\n ...controlData.props,\n ...this.props.fieldProps,\n auditTrailData: auditTrailData\n }\n });\n }\n\n return this.props.customRenderWrapper ? this.props.customRenderWrapper(fieldElement, info, controlData) : fieldElement;\n }\n}\n\nconst HOC = withTranslation([\"Common\", \"Components\"], { withRef: true })(SmartField) as ComponentType;\nHOC.displayName = \"SmartFieldWithTranslation\";\n\nexport default HOC;\n","import { DropArea } from \"@components/fileUploader/FileUploader.styles\";\nimport { IconWrapper, StyledInput } from \"@components/inputs/input/Input.styles\";\nimport styled from \"styled-components/macro\";\n\nimport { T_PLAIN_big } from \"../../../global.style\";\n\nexport const StyledFileInput = styled(StyledInput)`\n border: none;\n cursor: default;\n\n ${DropArea} {\n border-radius: inherit;\n border-width: 2px;\n border-color: ${props => props.theme.C_FIELD_line};\n border-style: dashed;\n width: 100%;\n height: 100%;\n }\n\n ${IconWrapper} {\n display: flex;\n align-items: center;\n }\n`;\n\nexport const FileNamesWrapper = styled.div<{\n hasError: boolean\n}>`\n width: calc(100% - 34px);\n height: 100%;\n display: flex;\n align-items: center;\n padding-left: 12px;\n ${T_PLAIN_big};\n padding-top: ${props => props.hasError ? \"9px\" : null};\n`;\n\nexport const ErrorWrapper = styled.div`\n padding: 0 12px;\n position: absolute;\n width: 100%;\n top: 0;\n`;","import { IconButton } from \"@components/button\";\nimport Clickable from \"@components/clickable\";\nimport FileUploadButton from \"@components/fileUploadButton/FileUploadButton\";\nimport FileDropArea from \"@components/fileUploader/FileDropArea\";\nimport { CloseIcon } from \"@components/icon\";\nimport { ErrorWrapper, FileNamesWrapper, StyledFileInput } from \"@components/inputs/fileInput/FileInput.styles\";\nimport { WithErrorAndTooltip, withErrorAndTooltip } from \"@components/inputs/formError/WithErrorAndTooltip\";\nimport { ISharedInputProps } from \"@components/inputs/input\";\nimport { IconDelimiter, IconWrapper } from \"@components/inputs/input/Input.styles\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IconSize } from \"../../../enums\";\n\ninterface IProps extends ISharedInputProps {\n width: string;\n files?: File[];\n multiple?: boolean;\n onChange: (files: File[]) => void;\n}\n\ninterface IState {\n files: File[];\n fileLinks: string[];\n}\n\nclass FileInput extends React.PureComponent {\n state: IState = {\n files: null,\n fileLinks: null\n };\n\n componentDidMount() {\n if (this.props.files) {\n this.setState({ files: this.props.files });\n this.createLinks(this.props.files);\n }\n }\n\n componentWillUnmount() {\n this.revokeLinks();\n }\n\n createLinks = (files: File[]): void => {\n const fileLinks: string[] = [];\n for (const file of files) {\n fileLinks.push(URL.createObjectURL(file));\n }\n this.setState({ fileLinks });\n };\n\n revokeLinks = (): void => {\n if (this.state.fileLinks) {\n for (const fileLink of this.state.fileLinks) {\n URL.revokeObjectURL(fileLink);\n }\n }\n };\n\n handleNewFiles = (files: File[]): void => {\n if (!this.props.multiple) {\n files = [files[0]];\n }\n\n this.setState({ files });\n this.props.onChange(files);\n this.createLinks(files);\n };\n\n handleRemoveButtonClick = (): void => {\n this.revokeLinks();\n this.props.onChange(null);\n this.setState({ files: null, fileLinks: null });\n };\n\n renderFiles = (): React.ReactElement => {\n return (\n \n {this.state.files?.map((file, index) => (\n \n {file.name}\n \n ))}\n \n );\n };\n\n renderIcon = (): React.ReactElement => {\n return (\n \n {}\n {!this.state.files && }\n {this.state.files &&\n \n \n \n }\n \n );\n };\n\n render() {\n return (\n \n {this.props.errorAndTooltip}\n \n {this.renderFiles()}\n {this.renderIcon()}\n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(withErrorAndTooltip(FileInput, { preventValueTooltip: true }));\n\nexport type { IProps as IFileInputProps };","import FileInput from \"@components/inputs/fileInput/FileInput\";\nimport React from \"react\";\n\nimport { IValidationError } from \"../../../model/Validator.types\";\n\ninterface IProps {\n onChange: (files: File[]) => void;\n width: string;\n error?: IValidationError;\n}\n\nclass SmartFileInput extends React.Component {\n render() {\n return ;\n }\n}\n\nexport default SmartFileInput;","import {\n ISelectionChangeArgs,\n ISelectItem,\n ISelectPropsBase,\n TOnItemsFetchedCallback\n} from \"@components/inputs/select/Select.types\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n BillingAddressEntity,\n BusinessPartnerEntity,\n CountryEntity,\n EntitySetName,\n IBusinessPartnerEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode } from \"@odata/GeneratedEnums\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { fetchAresDetail, loadPartner } from \"@pages/businessPartner/BusinessPartner.utils\";\nimport { debounce } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { ARES_SEARCH_API, INPUT_DEBOUNCE_TIME } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { ValueType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IFieldDef } from \"../../smart/FieldInfo\";\nimport { prepareColumns } from \"../../smart/smartTable/SmartTable.utils\";\nimport { BasicSelect } from \"../select/BasicSelect\";\nimport { AresSpecialGroupTitleWithoutLine, GroupSubTitle } from \"../select/Select.styles\";\n\ninterface IProps extends ISelectPropsBase, WithOData, WithTranslation {\n columns: IFieldDef[];\n bindingContext?: BindingContext;\n loadFromDb?: boolean;\n storage: FormStorage;\n}\n\ninterface IState {\n items: ISelectItem[];\n columns: IFieldInfo[];\n}\n\nexport interface IMultiFieldSelectChange extends ISelectionChangeArgs {\n}\n\nconst ARES_MAX_ITEMS = 50;\n\nclass SingleBusinessPartnerSelect extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n public static defaultProps = {\n allowCreate: true\n };\n\n _searchValue = \"\";\n _selectRef = React.createRef();\n\n constructor(props: IProps) {\n super(props);\n this.state = {\n items: [],\n columns: []\n };\n }\n\n componentDidMount = () => {\n this.updateColumns((this.props.columns || []).map(col => col));\n };\n\n componentWillUnmount() {\n this.fetchSuggestions.cancel();\n }\n\n updateColumns = memoizeOne(async (columnNames: IFieldDef[]) => {\n const columns = await prepareColumns({\n bindingContext: this.props.bindingContext.getParent(),\n context: this.context,\n columns: columnNames\n });\n\n this.setState({\n columns\n });\n });\n\n _transformAresItem = (item: IEntity, isSearchedByName: boolean, countryCode: CountryCode.CzechRepublic | CountryCode.Slovakia): ISelectItem => ({\n id: \"ARES-\" + item.IdentificationNumber,\n groupId: `ares${countryCode}`,\n label: isSearchedByName ? item.CompanyName : item.IdentificationNumber,\n additionalData: {\n isAres: true,\n LegalNumber: item.IdentificationNumber,\n Name: item.CompanyName,\n Country: {\n Code: countryCode,\n IsEuMember: true,\n IsEEA: true\n }\n },\n tabularData: [item.CompanyName, item.IdentificationNumber]\n });\n\n _transformDbItem = (item: IEntity, isSearchedByName: boolean): ISelectItem => ({\n id: item.Id,\n groupId: \"db\",\n label: isSearchedByName ? item.Name : item.LegalNumber,\n additionalData: {\n isAres: false,\n Id: item.Id,\n LegalNumber: item.LegalNumber,\n Name: item.Name,\n Country: item.BillingAddress.Country\n },\n tabularData: [item.Name, item.LegalNumber]\n });\n\n fetchFromARES = async (searchValue: string, isSearchedByName: boolean, country: CountryCode.CzechRepublic | CountryCode.Slovakia): Promise => {\n if (searchValue?.length < 3) {\n // ares doesn't support search for string shorter than 3 chars\n return [];\n }\n\n const searchType = isSearchedByName ? \"CompanyNameOnly\" : \"IdentificationNumberOnly\";\n const result = await fetch(`${ARES_SEARCH_API}?country=${country}&count=${ARES_MAX_ITEMS}&searchText=${searchValue}&searchType=${searchType}`);\n const rawItems = await result.json();\n\n return (rawItems.Records || []).map((item: IEntity) => this._transformAresItem(item, isSearchedByName, country));\n };\n\n fetchFromDB = async (searchValue: string, isSearchedByName: boolean): Promise => {\n const propName = isSearchedByName ? \"Name\" : \"LegalNumber\";\n const filter = `startswith(${propName},${transformToODataString(searchValue, ValueType.String)})`;\n\n const response = await this.props.oData\n .getEntitySetWrapper(EntitySetName.BusinessPartners)\n .query()\n .expand(\"BillingAddress\", q => {\n q.expand(\"Country\", (q) => {\n q.select(CountryEntity.IsEuMember, CountryEntity.IsEEA, CountryEntity.Code, CountryEntity.Name);\n });\n })\n .select(\"Id\", \"Name\", \"LegalNumber\")\n .filter(filter)\n .fetchData();\n\n return (response.value || []).map((item: IEntity) => this._transformDbItem(item, isSearchedByName));\n };\n\n fetchSuggestions = debounce(async (value: string, onFetched?: TOnItemsFetchedCallback) => {\n if (value) {\n this._searchValue = value;\n const isSearchedByName = this.props.bindingContext.getPath().includes(\"Name\");\n\n let dbItems: ISelectItem[] = [];\n this.setBottomMenuContent(value);\n\n const promiseAres = Promise.all([\n this.fetchFromARES(value, isSearchedByName, CountryCode.CzechRepublic),\n this.fetchFromARES(value, isSearchedByName, CountryCode.Slovakia)\n ]);\n\n if (this.props.loadFromDb) {\n const promiseDB = this.fetchFromDB(value, isSearchedByName);\n\n dbItems = await promiseDB;\n if (this._searchValue === value) {\n this.setState({\n items: dbItems\n });\n }\n }\n\n const aresItems = await promiseAres;\n this.setLoadingStatus(false);\n if (this._searchValue === value) {\n const items = dbItems.concat(...aresItems);\n onFetched?.(items);\n this.setState({\n items\n });\n }\n }\n }, INPUT_DEBOUNCE_TIME);\n\n isAres = (value: TValue) => {\n return value?.toString().startsWith(\"ARES\");\n };\n\n handleChange = async (args: ISelectionChangeArgs) => {\n let loadedDetail: IBusinessPartnerEntity;\n if (args.triggerAdditionalTasks) {\n const Id = args.additionalData?.Id;\n // we send id to the upper states to the states, as the ID should be ignored\n\n // loads full BP detail to additional Data\n if (args.additionalData?.isAllowCreateItem) {\n const { bindingContext, storage } = this.props;\n const partnerBc = bindingContext.getParent();\n const propName = bindingContext.getPath();\n const value = args.additionalData.value;\n delete args.additionalData.value;\n\n loadedDetail = {\n [propName]: value,\n [BusinessPartnerEntity.BillingAddress]: {\n [BillingAddressEntity.Country]: {\n Code: CountryCode.CzechRepublic\n },\n [BillingAddressEntity.PostalCode]: \"\"\n }\n };\n\n if (propName === BusinessPartnerEntity.LegalNumber) {\n loadedDetail[BusinessPartnerEntity.Name] = storage.getValue(partnerBc.navigate(BusinessPartnerEntity.Name));\n }\n } else if (Id) {\n // load from DB\n loadedDetail = await loadPartner(Id, this.props.oData);\n } else {\n // load from ARES\n loadedDetail = await fetchAresDetail(args.additionalData.LegalNumber, args.additionalData.Country?.Code);\n }\n\n args.additionalData = {\n ...args.additionalData,\n ...loadedDetail\n };\n }\n\n this.props.onChange(args);\n };\n\n handleSuggestionsFetchRequested = (value: string, onFetched?: TOnItemsFetchedCallback) => {\n this.setLoadingStatus(true);\n if (value?.length > 2 || this.state.items.length === 0) {\n delete this._selectRef.current.sharedData.bottomMenuCustomContent;\n }\n\n this._selectRef.current.sharedData.dontDisplayNoDataFound = !this.props.loadFromDb && value?.length < 3;\n this.fetchSuggestions(value, onFetched);\n };\n\n setLoadingStatus = (isLoading: boolean) => {\n if (this._selectRef.current) {\n this._selectRef.current.sharedData.isLoading = isLoading;\n }\n };\n\n setBottomMenuContent = (value: string) => {\n if (value && value.length < 3) {\n this._selectRef.current.sharedData.bottomMenuCustomContent = (\n \n ARES\n Vyhledává až od tří napsaných znaků\n \n );\n } else {\n delete this._selectRef.current.sharedData.bottomMenuCustomContent;\n }\n };\n\n render() {\n return (\n this.handleSuggestionsFetchRequested(value, onFetched)}\n />\n );\n }\n}\n\nexport default withTranslation(\"Common\")(withOData(SingleBusinessPartnerSelect));","import React from \"react\";\nimport { IAuditTrailData, Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { AutoSizedCheckboxGroup } from \"./AutoSizedCheckboxGroup\";\nimport { ICheckboxGroupChange, ICheckboxGroupItem } from \"./CheckboxGroup\";\nimport { getFieldInfo } from \"@odata/FieldInfo.utils\";\n\nexport interface ISmartCheckboxGroupChangeEvent {\n value: boolean;\n bindingContext: BindingContext;\n}\n\ninterface IProps {\n bindingContext: BindingContext;\n storage: Model;\n items: ICheckboxGroupItem[];\n isDisabled?: boolean;\n isReadOnly?: boolean;\n onChange: (args: ISmartCheckboxGroupChangeEvent) => void;\n\n auditTrailData?: IAuditTrailData;\n}\n\ninterface IState {\n items: ICheckboxGroupItem[];\n}\n\nexport class SmartCheckboxGroup extends React.Component {\n state: IState = {\n items: null\n };\n\n componentDidMount() {\n if (this.props.items) {\n this.loadItems();\n }\n }\n\n componentDidUpdate(prevProps: IProps) {\n if (prevProps.items !== this.props.items) {\n this.loadItems();\n }\n }\n\n componentWillUnmount() {\n for (const item of this.props.items) {\n const bindingContext = this.props.bindingContext.navigate(item.id);\n const navigationPath = bindingContext.getNavigationPath();\n const refIndex = this.props.storage.refs[navigationPath]?.indexOf(this);\n\n if (refIndex >= 0) {\n // remove reference to this\n this.props.storage.refs[navigationPath].splice(refIndex, 1);\n }\n }\n }\n\n loadItems = async () => {\n const items = await Promise.all(\n this.props.items.map(async (item) => {\n const newItem = { ...item };\n const bindingContext = this.props.bindingContext.navigate(newItem.id);\n\n if (!newItem.label) {\n newItem.label = (await getFieldInfo({\n bindingContext: bindingContext,\n context: this.props.storage.context\n })).label;\n }\n\n const navigationPath = bindingContext.getNavigationPath();\n\n // because one Smart component uses several different properties\n // we have to manually add them to model.ref for automatic rerendering\n if (!this.props.storage.refs[navigationPath]) {\n this.props.storage.refs[navigationPath] = [];\n }\n\n if (!this.props.storage.refs[navigationPath].includes(this)) {\n this.props.storage.refs[navigationPath].push(this);\n }\n\n return newItem;\n })\n );\n\n this.setState({ items });\n };\n\n getValues = () => {\n return this.props.items\n .filter(item => this.props.storage.getValue(this.props.bindingContext.navigate(item.id)))\n .map(item => item.id);\n };\n\n handleChange = (args: ICheckboxGroupChange) => {\n const currentValues = this.getValues();\n const newValues = args.values;\n let changedItem, changedItemValue;\n\n if (currentValues.length < newValues.length) { // new item\n changedItem = newValues.filter(item => !currentValues.includes(item))[0];\n changedItemValue = true;\n } else { // removed item\n changedItem = currentValues.filter(item => !newValues.includes(item))[0];\n changedItemValue = false;\n }\n\n this.props.onChange({\n value: changedItemValue,\n bindingContext: this.props.bindingContext.navigate(changedItem)\n });\n };\n\n render() {\n if (!this.state.items) {\n return null;\n }\n\n return (\n \n );\n }\n}","import styled from \"styled-components/macro\";\nimport { transparentize } from \"polished\";\nimport { CheckIcon } from \"../../icon\";\nimport { getDisabledStyle } from \"../../../global.style\";\nimport { AuditTrailFieldType } from \"../../smart/FieldInfo\";\nimport { DefaultTheme } from \"styled-components\";\n\ninterface ISelected {\n focused?: boolean;\n selected?: boolean;\n}\n\nexport const StyledMenu = styled.div`{\n max-width: 208px;\n padding: 5px;\n line-height: 0;\n position: relative;\n z-index: 1;\n}`;\n\nexport const Circle = styled.div`\n width: 23px;\n height: 23px;\n margin: 5px;\n border-radius: 23px;\n display: inline-block;\n background: ${props => props.theme[props.color as keyof DefaultTheme] || props.color};\n position: relative;\n \n &:before {\n content: \"\";\n width: 27px;\n height: 27px; \n border-radius: 27px;\n position: absolute;\n top:-2px;\n left: -2px;\n z-index: -1;\n display: ${props => props.selected || props.focused ? \"block\" : \"none\"};\n background: ${props => props.selected ? props.theme.C_BG_selected_color \n : transparentize(0.5, props.theme.C_ACT_hover_without_opacity)};\n }\n \n &:hover {\n cursor: pointer;\n &:before {\n display: block;\n }\n } \n \n ${CheckIcon} {\n position: relative;\n left: 1px;\n opacity: 0.75;\n }\n`;\n\nexport const StyledSelect = styled.div<{\n isDisabled: boolean;\n auditTrailType?: AuditTrailFieldType;\n}>` \n position: relative;\n width: 68px;\n height: 34px;\n border-radius: ${props => props.theme.borderLargeRadius};\n border: solid 1px ${props => props.theme.C_FIELD_line};\n background: ${props => props.theme.C_FIELD_fill};\n \n &:hover {\n cursor: pointer;\n } \n \n &:hover:after,\n &:focus-within:after {\n content: '';\n position: absolute;\n width: 62px;\n height: 28px;\n border: 1px solid ${props => props.theme.C_ACT_main} ;\n left: 2px;\n top: 2px;\n border-radius: ${props => props.theme.borderLargeRadius};\n pointer-events: none;\n }\n \n ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n background: props.theme.C_AUDIT_TRAIL_NO_DIFF\n }}\n \n ${props => (props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) && {\n opacity: props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY\n }}\n \n border: ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference || props.auditTrailType === AuditTrailFieldType.HoveredNoDifference) ?\n `1px solid ${props.theme.C_AUDIT_TRAIL_NO_DIFF}` : `1px solid ${props.theme.C_FIELD_line}`}; \n \n ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) && {\n border: `3px solid ${props.theme.C_AUDIT_TRAIL_DIFF}`}}\n \n ${props => props.auditTrailType === AuditTrailFieldType.NoDifference && `\n & svg {\n display: none !important\n }\n `}\n \n ${props => props.auditTrailType === AuditTrailFieldType.HoveredNoDifference && `\n & svg {\n opacity: ${props.theme.C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY}\n }\n `} \n \n & > input {\n height: 0;\n border: none;\n padding: 0;\n margin: 0;\n }\n \n & > ${Circle} {\n position: absolute;\n width: 22px;\n height: 22px;\n top: ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) ? \"3px\" : \"5px\"};\n left: ${props => (props.auditTrailType === AuditTrailFieldType.Difference || props.auditTrailType === AuditTrailFieldType.HoveredDifference) ? \"4px\" : \"6px\"};\n margin: 0;\n opacity: ${props => (props.auditTrailType === AuditTrailFieldType.NoDifference ? 0 : 1)}\n }\n \n \n ${props => getDisabledStyle(props.isDisabled)};\n`;","import React from \"react\";\nimport { Circle, StyledMenu, StyledSelect } from \"./ColorPicker.styles\";\nimport { KeyName } from \"../../../keyName\";\nimport TestIds from \"../../../testIds\";\nimport { IconSize } from \"../../../enums\";\nimport { IValueInputComponentProps } from \"../input\";\nimport { CaretIcon, CheckIcon } from \"../../icon\";\nimport { IconDelimiter, IconWrapper } from \"../input/Input.styles\";\nimport Popover from \"../../popover/Popover\";\nimport { parseToHsl } from \"polished\";\nimport { DefaultTheme, withTheme } from \"styled-components/macro\";\nimport { IAuditTrailData } from \"../../../model/Model\";\nimport { PropsWithTheme } from \"../../../theme\";\nimport { ReferenceChildrenProps } from \"react-popper\";\nimport { POPOVER_INPUT_SHARP_LEFT_OFFSET_X } from \"../../popover/Popover.utils\";\n\nexport interface IState {\n isOpen?: boolean;\n focusedValue?: string;\n}\n\nexport interface IProps extends IValueInputComponentProps, PropsWithTheme {\n colors: string[];\n value?: string;\n onChange?: (color: string) => void;\n auditTrailData?: IAuditTrailData;\n}\n\nclass ColorPicker extends React.PureComponent {\n state: IState = {\n focusedValue: this.props.value ?? \"\",\n isOpen: false\n };\n private colorInputRef: React.RefObject = React.createRef();\n\n handleMouseDown = () => {\n if (!this.state.isOpen) {\n // set focus after all mouse events are dealt with\n setTimeout(() => {\n this.colorInputRef.current?.focus();\n this.setState({ isOpen: true });\n });\n }\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n const colorsArr = this.props.colors,\n index = colorsArr.indexOf(this.state.focusedValue),\n maxLineIndex = 6;\n let nextColor = index,\n linePosition;\n switch (e.key) {\n case KeyName.ArrowRight:\n nextColor = index + 1 === colorsArr.length ? 0 : index + 1;\n break;\n case KeyName.ArrowLeft:\n nextColor = index === 0 ? colorsArr.length - 1 : index - 1;\n break;\n case KeyName.ArrowUp:\n if ((colorsArr.length % maxLineIndex) < (index % maxLineIndex)) {\n linePosition = colorsArr.length - ((colorsArr.length % maxLineIndex) + maxLineIndex - index);\n } else {\n linePosition = colorsArr.length - ((colorsArr.length % maxLineIndex) - index);\n }\n if (linePosition < index) {\n linePosition = index;\n }\n nextColor = index - maxLineIndex < 0 ? linePosition : index - maxLineIndex;\n break;\n case KeyName.ArrowDown:\n linePosition = index % maxLineIndex;\n if (linePosition > index) {\n linePosition = index;\n }\n nextColor = index + maxLineIndex >= colorsArr.length ? linePosition : index + maxLineIndex;\n break;\n case KeyName.Enter:\n if (this.state.isOpen) {\n this.select(this.state.focusedValue);\n }\n this.setState({ isOpen: !this.state.isOpen });\n break;\n case KeyName.Space:\n this.setState({ isOpen: !this.state.isOpen });\n break;\n case KeyName.Escape:\n this.setState({ isOpen: false });\n break;\n }\n\n this.setState({ focusedValue: this.props.colors[nextColor] });\n };\n\n select = (color: string) => {\n this.setState({ focusedValue: color });\n this.props.onChange?.(color);\n this.forceUpdate();\n };\n\n isDisabled = () => {\n return this.props.isDisabled || this.props.isReadOnly;\n };\n\n isHex(color: string) {\n return !!color.match(/^#([0-9a-f]{3}){1,2}$/i);\n }\n\n // get dark checkIcon for light colors and vice versa\n getCheckIconColor = (color: string) => {\n if (!this.isHex(color)) {\n color = this.props.theme[color as keyof DefaultTheme];\n }\n const HslColor = parseToHsl(color);\n return (HslColor.lightness > 0.5) ? \"C_ACT_main\" : \"C_BG_selected_color\";\n };\n\n handleBlur = () => {\n this.setState({ isOpen: false });\n };\n\n render() {\n const styledSelect = ({ ref }: ReferenceChildrenProps) => (\n \n \n \n \n \n \n \n \n );\n\n return (\n \n \n {this.props.colors.map(color => {\n return this.select(color)}\n selected={color === this.props.value}\n focused={color === this.state.focusedValue}\n color={color}>\n {color === this.props.value\n && }\n ;\n })}\n \n \n );\n }\n}\n\nexport default withTheme(ColorPicker);","import React from \"react\";\nimport Input, { getSharedInputProps, IInputOnChangeEvent, IInputProps, ISharedInputProps } from \"../input/Input\";\nimport { FastEntryInputSizes } from \"../../../enums\";\nimport { TextMeasure } from \"./ResponsiveInput.styles\";\nimport { handleRefHandlers } from \"@utils/general\";\n\ninterface IProps extends IInputProps, ISharedInputProps {\n onWidthChange?: (newWidth: string) => void;\n}\n\ninterface IState {\n width: FastEntryInputSizes;\n}\n\nexport default class ResponsiveInput extends React.Component {\n _inputRef: React.RefObject = React.createRef();\n _textMeasure: React.RefObject = React.createRef();\n\n _isControlled: boolean;\n\n state: IState = {\n width: FastEntryInputSizes.XS\n };\n\n constructor(props: IProps) {\n super(props);\n\n this._isControlled = props.width !== undefined;\n }\n\n componentDidMount(): void {\n this.adaptSize(\"\");\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState): void {\n if (!this._isControlled || this.props.value !== prevProps.value) {\n this.adaptSize(prevProps.value as string);\n }\n }\n\n adaptSize = (oldValue: string) => {\n if (this.props.isReadOnly) {\n return;\n }\n\n // textMeasure value doesn't have to come from the props for the uncontrolled version\n const textMeasureValue = this._textMeasure.current.textContent;\n this._textMeasure.current.textContent = oldValue;\n const oldWidth = `${this._textMeasure.current.scrollWidth}px`;\n this._textMeasure.current.textContent = textMeasureValue;\n\n const newWidth = this.getNewWidth(this._textMeasure.current.scrollWidth, this._inputRef.current.clientWidth, parseInt(this.getCurrentWidth()));\n const isWidthChanged = oldWidth !== newWidth;\n\n if (isWidthChanged) {\n if (!this._isControlled && this.state.width !== newWidth) {\n this.setState({\n width: newWidth\n });\n }\n\n this.props.onWidthChange && this.props.onWidthChange(newWidth);\n }\n };\n\n getNewWidth = (textWidth: number, inputWidth: number, currentWidth: number) => {\n // ordered widths from smallest to biggest\n const widths = [FastEntryInputSizes.XS, FastEntryInputSizes.S, FastEntryInputSizes.M, FastEntryInputSizes.L];\n const padding = currentWidth - inputWidth;\n\n const newWidth = widths.find((width: string) => {\n return parseInt(width) - padding >= textWidth;\n });\n\n return newWidth || FastEntryInputSizes.L;\n };\n\n getCurrentWidth = () => {\n return this._isControlled ? this.props.width : this.state.width;\n };\n\n handleChange = (event: IInputOnChangeEvent) => {\n if (!this._isControlled) {\n // force update to trigger componentDidUpdate for uncontrolled input value\n this._textMeasure.current.textContent = event.value;\n this.forceUpdate();\n }\n\n this.props.onChange?.(event);\n };\n\n handleInputRef = (ref: HTMLInputElement) => {\n handleRefHandlers(ref, this._inputRef, this.props.passRef);\n };\n\n render = () => {\n return (\n <>\n \n \n {this.props.value}\n \n \n );\n };\n}","import styled from \"styled-components/macro\";\nimport { AuditTrailInputCss, StyledInput } from \"../input/Input.styles\";\nimport { T_PLAIN_small, T_PLAIN_small_hig } from \"../../../global.style\";\nimport { DefaultTheme } from \"styled-components\";\n\nexport const StyledTokenInput = styled.span<{\n color: string;\n value: string | number;\n}>`{\n display: inline-grid;\n position: relative;\n left: 11px;\n color: ${props => props.theme.C_TEXT_primary};\n padding: 3px;\n height: 22px;\n min-width: 1em;\n max-width: calc(100% - 57px);\n white-space: nowrap;\n border: 1px solid transparent;\n border-radius: 3px;\n background-color: ${props => props.value ? props.theme[props.color as keyof DefaultTheme] || props.color : \"transparent\"}; \n \n & > input {\n width: 100%;\n position: absolute;\n left:0; right:0;\n border: none;\n background: transparent;\n outline: none;\n grid-area: 1 / 1;\n padding: 0;\n ${T_PLAIN_small_hig};\n text-transform: uppercase;\n\n &:focus-within {\n font-weight: normal;\n }\n }\n &:after {\n display: inline-block;\n content: attr(data-value) ' ';\n visibility: hidden;\n grid-area: 1 / 1;\n text-transform: uppercase;\n white-space: nowrap;\n ${T_PLAIN_small};\n }\n}`;\n\nexport const StyledTokenInputWrapper = styled(StyledInput)`\n ${StyledTokenInput} {\n ${AuditTrailInputCss};\n padding: 4px;\n } \n`;","import React from \"react\";\nimport { IInputProps, ISharedInputProps } from \"../input\";\nimport { FastEntryInputSizes } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport { StyledTokenInputWrapper, StyledTokenInput } from \"./TokenInput.styles\";\nimport { KeyName } from \"../../../keyName\";\n\ninterface IProps extends IInputProps, ISharedInputProps {\n color: string;\n}\n\ninterface IState {\n width: FastEntryInputSizes;\n}\n\nexport default class TokenInput extends React.Component {\n private inputRef: React.RefObject = React.createRef();\n\n handleClick = (): void => {\n this.inputRef.current?.focus();\n };\n\n handleOnChange = (e: React.ChangeEvent): void => {\n this.props?.onChange({\n value: e.target.value,\n origEvent: e\n });\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n switch (e.key) {\n case KeyName.Enter:\n this.inputRef.current?.blur();\n break;\n }\n };\n\n render = () => {\n return (\n \n \n \n \n \n );\n };\n}","import { getInfoValue } from \"@components/smart/FieldInfo\";\nimport React from \"react\";\n\nimport { RadioButtonGroupLayout } from \"../../../enums\";\nimport { IAuditTrailData, Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport RadioButtonGroup from \"../../inputs/radioButtonGroup\";\nimport { IRadioButtonDefinition } from \"../../inputs/radioButtonGroup/RadioButtonGroup\";\n\nexport interface ISmartRadioGroupChange {\n value: string;\n bindingContext: BindingContext;\n}\n\ninterface IProps {\n value: string;\n bindingContext: BindingContext;\n storage: Model;\n definition: IRadioButtonDefinition[];\n defaultChecked?: string;\n isReadOnly?: boolean;\n layout?: RadioButtonGroupLayout;\n onChange: (args: ISmartRadioGroupChange) => void;\n auditTrailData?: IAuditTrailData;\n}\n\nexport class SmartRadioButtonGroup extends React.Component {\n handleChange = (value: string): void => {\n this.props.onChange({\n value: value,\n bindingContext: this.props.bindingContext\n });\n };\n\n render() {\n const definition = this.props.definition.filter(def => getInfoValue(def, \"isVisible\", { storage: this.props.storage }) !== false);\n\n return (\n \n );\n }\n}","import React from \"react\";\nimport { Autocomplete } from \"../../inputs/select/Autocomplete\";\nimport SmartSelectBase from \"../../smart/smartSelect/SmartSelectBase\";\nimport { ISmartSelectProps } from \"./SmartSelect\";\n\nclass SmartAutocomplete extends React.Component {\n\n render = (): React.ReactElement => {\n return (\n \n );\n };\n}\n\nexport default SmartAutocomplete;","import { ISelectGroup, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { createBindingContext, createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n ILabelEntity,\n ILabelHierarchyEntity,\n LabelEntity,\n LabelHierarchyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { SelectionCode } from \"@odata/GeneratedEnums\";\nimport { IPrepareQuerySettings, prepareQuery } from \"@odata/OData.utils\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { DefaultTheme, withTheme } from \"styled-components\";\n\nimport { EMPTY_VALUE } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IconSize, Sort, TextAlign } from \"../../../enums\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { LabelIcon } from \"../../icon\";\nimport { IMultiSelectionChangeArgs, MultiSelect } from \"../../inputs/select/MultiSelect\";\nimport { buildTreeFromAllItems } from \"../../inputs/select/SelectAPI\";\nimport { getInfoValue, ILabelSelectSettings } from \"../FieldInfo\";\nimport { ISmartMultiSelectProps } from \"./SmartMultiSelect\";\nimport { ModelEvent } from \"../../../model/Model\";\n\ninterface IProps extends ISmartMultiSelectProps, ILabelSelectSettings {\n theme: DefaultTheme;\n /** Adds EMPTY_VALUE item */\n addEmptyItem?: boolean;\n}\n\nclass SmartLabelSelect extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps: Partial = {\n oneItemPerHierarchy: true\n };\n\n _isMounted: boolean;\n _isLoading: boolean;\n _isFirstTime = true;\n _hiddenItems: ISelectItem[];\n\n componentDidMount() {\n this._isMounted = true;\n this.load();\n }\n\n componentDidUpdate() {\n this.load();\n }\n\n componentWillUnmount(): void {\n this._isMounted = false;\n }\n\n get items(): ISelectItem[] {\n return this.props.fieldInfo?.fieldSettings?.items || this.props.fieldInfo?.fieldSettings?.initialItems || [];\n }\n\n load = async () => {\n if (this._isLoading || this.props.storage?.loading) {\n return;\n }\n this._isLoading = true;\n await this.getHierarchies();\n this._isLoading = false;\n };\n\n // this way it is still loaded for every document, maybe set hierarchies on context?\n fetchLabelHierarchies = memoizeOne(async () => {\n const bc = createBindingContext(EntitySetName.LabelHierarchies, this.props.storage.oData.getMetadata()),\n settings: IPrepareQuerySettings = {};\n settings[\"\"] = {\n sort: [{ id: \"Name\", sort: Sort.Asc }]\n };\n\n const query = prepareQuery({\n oData: this.props.storage.oData,\n bindingContext: bc,\n fieldDefs: [{ id: LabelHierarchyEntity.Id }, { id: LabelHierarchyEntity.Color }, { id: LabelHierarchyEntity.Name },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Id) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Name) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.IsActive) },\n {\n id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Parent),\n additionalProperties: [{ id: LabelEntity.Name }]\n },\n {\n id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Children),\n additionalProperties: [{ id: LabelEntity.Name }]\n }\n ],\n settings\n });\n\n const filter = getInfoValue(this.props.fieldInfo?.filter, \"select\", { context: this.context });\n if (filter) {\n query.filter(filter);\n }\n\n const hierarchies = await query.fetchData();\n return hierarchies.value;\n });\n\n getHierarchies = async () => {\n const hierarchies = await this.fetchLabelHierarchies();\n\n if (this._isMounted) {\n const keyName = this.props.fieldInfo?.fieldSettings?.idName ?? \"Id\";\n const groups: ISelectGroup[] = [];\n let items: ISelectItem[] = [];\n\n for (const hierarchy of hierarchies) {\n groups.push({\n id: hierarchy.Id.toString(),\n title: hierarchies.length > 1 ? hierarchy.Name : undefined,\n hideDivider: true\n });\n for (const label of hierarchy.Labels) {\n items.push({\n label: label.Name,\n // in reports, we filter by Name instead of Id\n id: label[keyName as keyof ILabelEntity] as (string | number),\n groupId: hierarchy.Id.toString(),\n color: this.props.theme[hierarchy.Color as keyof DefaultTheme],\n additionalData: {\n Name: label.Name,\n Parent: label.Parent,\n Children: label.Children,\n isActive: label.IsActive,\n LabelHierarchy: { Id: hierarchy.Id }\n }\n });\n }\n }\n\n // new document has undefined value, which is obviously not iterable\n this._hiddenItems = [];\n if (this.props.value) {\n for (const value of this.props.value) {\n const item = items.find(item => item.id === value);\n\n if (item) {\n this._hiddenItems.push(item);\n }\n }\n this.disableRestOfLabelHierarchy(items, this._hiddenItems);\n }\n\n items = buildTreeFromAllItems(items.filter(item => item.additionalData.isActive), keyName);\n\n if (this.props.addEmptyItem) {\n items.unshift({\n id: EMPTY_VALUE,\n label: this.props.storage.t(\"Common:General.Empty\")\n });\n }\n\n this.props.fieldInfo.fieldSettings.items = items;\n this.props.fieldInfo.fieldSettings.groups = groups;\n\n if (this._isFirstTime) {\n this._isFirstTime = false;\n // rerender read only item in the SmartFilterBar for the same bc as well\n this.props.storage.addActiveField(this.props.bindingContext);\n this.props.storage.refreshFields();\n if (this.props.bindingContext.isAnyPartCollection()) {\n this.props.storage.emitter.emit(ModelEvent.RecalculateFastEntryList);\n }\n }\n\n this.forceUpdate();\n }\n };\n\n disableRestOfLabelHierarchy(items: ISelectItem[], selectedItems: ISelectItem[]) {\n if (this.props.oneItemPerHierarchy) {\n for (const item of items) {\n item.isDisabled = !!selectedItems.find(selected => selected.id !== item.id && selected.groupId === item.groupId);\n }\n }\n }\n\n handleChange = (args: IMultiSelectionChangeArgs) => {\n if (args.triggerAdditionalTasks) {\n this.disableRestOfLabelHierarchy(this.props.fieldInfo.fieldSettings?.items, args.selectedItems);\n }\n this.props.onChange(args);\n };\n\n handleClick = (e: React.MouseEvent) => {\n const { storage, bindingContext } = this.props;\n return this.props.onClick?.(e, { storage, bindingContext });\n };\n\n handleIconActivate = (e: React.MouseEvent) => {\n const { storage, bindingContext } = this.props;\n return this.props.onIconActivate?.(e, { storage, bindingContext });\n };\n\n render() {\n const additionalItems = cloneDeep(this.props.additionalItems);\n if (this.props.bindingContext.getParent().getPath() === \"LabelSelection\") {\n const defItem = additionalItems?.find(i => i.id === SelectionCode.Default);\n if (defItem) {\n defItem.isSelected = this.props.storage.getValue(this.props.bindingContext.getParent())?.SelectionCode === SelectionCode.Default;\n }\n }\n\n return }\n items={this.items}\n groups={this.props.fieldInfo.fieldSettings?.groups || []}\n hiddenItems={this._hiddenItems}\n onChange={this.handleChange}\n textAlign={TextAlign.Left}\n shouldCheckParents={false}\n shouldCheckChildren={!this.props.oneItemPerHierarchy}\n hideDisplayAll={true}\n />;\n }\n}\n\nexport default withTheme(SmartLabelSelect);","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport SmartFileInput from \"@components/smart/smartFileInput/SmartFileInput\";\nimport { isDateTimeType, isDateType } from \"@evala/odata-metadata/src\";\nimport { IStorageSmartFieldValues } from \"@odata/Data.utils\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, IconSize, Status } from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport NumberType, { getScale, IParserArgs } from \"../../../types/Number\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { SegmentedButton } from \"../../button/SegmentedButton\";\nimport { FieldValidationNegativeIcon, FieldValidationPositiveIcon, FieldValidationWarningIcon } from \"../../icon\";\nimport SingleBusinessPartnerSelect from \"../../inputs/businessPartnerSelect/SingleBusinessPartnerSelect\";\nimport Checkbox, { ICheckboxChange } from \"../../inputs/checkbox/Checkbox\";\nimport { AutoSizedCheckboxGroup } from \"../../inputs/checkboxGroup/AutoSizedCheckboxGroup\";\nimport { ICheckboxGroupChange } from \"../../inputs/checkboxGroup/CheckboxGroup\";\nimport { ISmartCheckboxGroupChangeEvent, SmartCheckboxGroup } from \"../../inputs/checkboxGroup/SmartCheckboxGroup\";\nimport ColorPicker from \"../../inputs/colorPicker/ColorPicker\";\nimport { DatePicker, MonthYearPicker, TimePicker } from \"../../inputs/date\";\nimport EditableText from \"../../inputs/editableText/EditableText\";\nimport { FieldsWithOwnLabel } from \"../../inputs/field/Field\";\nimport Input, { IInputOnBlurEvent, IInputOnChangeEvent, IInputRowsChangeEvent } from \"../../inputs/input\";\nimport PasswordInput from \"../../inputs/input/PasswordInput\";\nimport { IFormatterFns } from \"../../inputs/input/WithFormatter\";\nimport NumericInput from \"../../inputs/numericInput/NumericInput\";\nimport ResponsiveInput from \"../../inputs/responsiveInput/ResponsiveInput\";\nimport { IMultiSelectionChangeArgs } from \"../../inputs/select/MultiSelect\";\nimport { isSelectBasedComponent } from \"../../inputs/select/SelectAPI\";\nimport Switch from \"../../inputs/switch/Switch\";\nimport TextArea from \"../../inputs/textArea/TextArea\";\nimport TokenInput from \"../../inputs/tokenInput/TokenInput\";\nimport WriteLine from \"../../inputs/writeLine/WriteLine\";\nimport Text from \"../../text\";\nimport Tooltip from \"../../tooltip\";\nimport { getInfoValue, IFieldDef, IFieldInfoProperties, isFieldDisabled, isFieldReadOnly } from \"../FieldInfo\";\nimport { ISmartRadioGroupChange, SmartRadioButtonGroup } from \"../smartRadioButtonGroup/SmartRadioButtonGroup\";\nimport { ISmartSelectProps, SmartSelect } from \"../smartSelect\";\nimport SmartAutocomplete from \"../smartSelect/SmartAutocomplete\";\nimport SmartLabelSelect from \"../smartSelect/SmartLabelSelect\";\nimport { ISmartMultiSelectProps, SmartMultiSelect } from \"../smartSelect/SmartMultiSelect\";\nimport { isComplexFilterArr, isValueHelperField } from \"../smartValueHelper\";\nimport SmartValueHelper, { IValueHelperChangeArgs } from \"../smartValueHelper/SmartValueHelper\";\nimport { ISmartFieldChange } from \"./SmartField\";\n\nexport interface ISmartFieldEvents {\n onChange?: (args: ISmartFieldChange) => void;\n onBlur: (args: IInputOnBlurEvent) => void;\n onFocus: () => void;\n onDateChange: (e: IInputOnChangeEvent) => void;\n onSegmentedButtonChange: (key: string) => void;\n onWidthChange: (width: string) => void;\n onFileChange: (files: File[]) => void;\n onInputChange: (data: IInputOnChangeEvent) => void;\n onCancel: () => void;\n onCheckboxChange: (args: ICheckboxChange) => void;\n onColorChange: (value: string) => void;\n onSwitchChange: (checked: boolean) => void;\n onCheckboxGroupChange: (args: ICheckboxGroupChange) => void;\n onSmartCheckboxGroupChange: (args: ISmartCheckboxGroupChangeEvent) => void;\n onSmartRadioButtonChange: (args: ISmartRadioGroupChange) => void;\n onRowsChange: ({ numRows, newHeight }: IInputRowsChangeEvent) => void;\n onSelectChange: (args: ISelectionChangeArgs | IMultiSelectionChangeArgs) => void;\n onValueHelperChange: (args: IValueHelperChangeArgs) => void;\n onConfirm: () => void;\n}\n\nexport interface IGetControlData {\n bc: BindingContext;\n storage: Model;\n type: FieldType;\n context: IAppContext;\n events: ISmartFieldEvents;\n /** Use to override field definition from storage */\n fieldDef?: IFieldInfoProperties;\n fastEntryListId?: string;\n}\n\nconst getWidth = (fieldDef: IFieldDef, type: FieldType, isValueHelp: boolean, bc: BindingContext, storage: Model) => {\n let width = getInfoValue(fieldDef, \"width\", {\n bindingContext: bc,\n storage,\n data: storage?.data.entity\n });\n\n\n if (!width && (!FieldsWithOwnLabel[type] || isValueHelp) && !fieldDef.labelStatus && ![FieldType.Switch, FieldType.SegmentedButton].includes(type)) {\n width = BasicInputSizes.M;\n }\n\n return width;\n};\n\nconst enhanceWithValidationResult = (props: TRecordAny, storageData: IStorageSmartFieldValues, componentProp: \"icon\" | \"content\") => {\n const validationResult = storageData.additionalFieldData?.validationResult;\n\n if (!!validationResult) {\n const Icon = validationResult.icon ?? (validationResult.status === Status.Success ? FieldValidationPositiveIcon : validationResult.status === Status.Warning ? FieldValidationWarningIcon : FieldValidationNegativeIcon);\n const style: React.CSSProperties = {};\n\n if (componentProp === \"content\") {\n style.position = \"absolute\";\n style.top = \"0\";\n style.right = \"36px\";\n }\n\n props[componentProp] = \n {(ref) =>\n \n }\n ;\n } else {\n props[componentProp] = null;\n }\n};\n\nexport interface IGetControlDataRetValue {\n storageData: IStorageSmartFieldValues;\n Control: React.ReactNode;\n isValueHelp: boolean;\n props: TRecordAny;\n}\n\nexport const isFieldValueSame = (storage: FormStorage, bc: BindingContext): boolean => {\n const fieldInfo = storage.getInfo(bc);\n const storageData = storage.getFieldValues(bc, fieldInfo);\n const val = storageData.value;\n const origVal = storageData.origValue;\n\n if (fieldInfo?.comparisonFunction) {\n return fieldInfo.comparisonFunction(storage.data.origEntity, storage.data.entity, bc);\n } else if (bc.isLocal()) {\n // iF we want to show changes on local context field, we have to specify comparisonFunction in fieldInfo\n return true;\n } else if (bc.isCollection()) {\n const ids = val as number[];\n const origIds = origVal as number[];\n return ids?.length === origIds?.length && origIds?.every(origId => {\n return ids.includes(origId);\n });\n }\n if (isDateType(bc.getProperty())) {\n const unit = isDateTimeType(bc.getProperty()) ? \"second\" : \"day\";\n return (isNotDefined(origVal) && isNotDefined(val)) || getUtcDayjs(val as Date).isSame(origVal as Date, unit);\n }\n if (isNotDefined(origVal)) {\n return !val; // if origVal was null, \"\" should also return true\n }\n return val === origVal || storage.getValue(bc) === origVal;\n};\n\nexport const getControlData = (args: IGetControlData): IGetControlDataRetValue => {\n const bc = args.bc;\n const type = args.type;\n\n let fieldInfo = args.storage.getInfo(bc);\n\n if (args.fieldDef) {\n fieldInfo = { ...fieldInfo, ...args.fieldDef };\n }\n\n const storageData = args.storage.getFieldValues(bc, fieldInfo);\n const value = storageData.value;\n\n const isSameValue = isFieldValueSame(args.storage as FormStorage, bc);\n\n const showChange = !(args.bc.getParentCollection()?.isNew()) &&\n !args.storage.loading &&\n (args.storage as FormStorage).data.definition?.showChanges &&\n !args.storage.data.bindingContext.isNew() && !isSameValue;\n\n const items = fieldInfo.fieldSettings?.items as ISelectItem[];\n const name = bc.getNavigationPath(true);\n\n const isValueHelp = isValueHelperField(fieldInfo, (args.storage as TableStorage));\n\n const isReadOnly = isFieldReadOnly(fieldInfo, args.storage, bc);\n const isDisabled = isFieldDisabled(fieldInfo, args.storage, bc, args.fastEntryListId);\n\n const getInfoValueArgs = {\n bindingContext: bc,\n storage: args.storage,\n data: args.storage?.data.entity,\n context: args.context\n };\n\n const unit = getInfoValue(fieldInfo?.fieldSettings, \"unit\", getInfoValueArgs);\n const trailingTextWithoutFocus = getInfoValue(fieldInfo?.fieldSettings, \"trailingTextWithoutFocus\", getInfoValueArgs);\n\n const temporalData = args.storage.getTemporalData(bc);\n\n const isSynchronized = getInfoValue(fieldInfo?.fieldSettings, \"isSynchronized\", getInfoValueArgs);\n const sharedProps = {\n ...fieldInfo?.fieldSettings,\n placeholder: getInfoValue(fieldInfo?.fieldSettings, \"placeholder\", getInfoValueArgs),\n onRowsChange: args.events?.onRowsChange,\n error: storageData.additionalFieldData?.error,\n key: bc.toString(),\n name,\n width: getWidth(fieldInfo, type, isValueHelp, bc, args.storage),\n disabledText: getInfoValue(fieldInfo, \"disabledText\", getInfoValueArgs),\n isRequired: storageData.isRequired,\n // isSynchronized fields are by default disabled as well\n isDisabled: isDisabled || isSynchronized,\n isReadOnly,\n isVisible: storageData.isVisible,\n onBlur: args.events?.onBlur,\n showChange,\n unit,\n isLoading: storageData.additionalFieldData?.isBusy,\n isSynchronized,\n isFullRow: fieldInfo.isFullRow\n };\n\n let formatterOptions: IFormatterFns = {};\n if (fieldInfo.formatter) {\n formatterOptions = {\n ...formatterOptions,\n formatter: (value: any) => fieldInfo.formatter(value, {\n entity: args.storage.data.entity,\n // temporal items don't have additional data in entity as standard select may have\n item: args.storage.getTemporalData(bc)?.additionalData ?? args.storage?.getValue(bc),\n bindingContext: bc,\n storage: args.storage,\n context: args.storage.context\n }) as string\n };\n }\n\n if (fieldInfo.parser) {\n formatterOptions = {\n ...formatterOptions,\n parser: (value: string) => fieldInfo.parser(value, {\n entity: args.storage.data.entity,\n item: args.storage?.getValue(bc),\n bindingContext: bc,\n storage: args.storage\n })\n };\n }\n\n if (fieldInfo.isValid) {\n formatterOptions = {\n ...formatterOptions,\n isValid: (value: TValue) => fieldInfo.isValid(value, {\n ...getInfoValueArgs,\n item: args.storage?.getValue(bc)\n })\n };\n }\n\n let smartSelectProps: ISmartSelectProps | ISmartMultiSelectProps = null;\n let Control, props: TRecordAny;\n\n if (isSelectBasedComponent(type) || isValueHelp) {\n smartSelectProps = {\n fieldInfo: fieldInfo,\n ...fieldInfo?.fieldSettings,\n storage: args.storage,\n bindingContext: bc,\n ...sharedProps,\n // value doesn't have to be string, but e.g. boolean\n value: isNotDefined(value) || value === \"\" ? null : value as any,\n onChange: args.events.onSelectChange\n };\n }\n\n const fnGetDateProps = () => {\n return {\n previewValue: getInfoValue(fieldInfo?.fieldSettings, \"previewValue\", getInfoValueArgs),\n workDate: getInfoValue(fieldInfo?.fieldSettings, \"workDate\", getInfoValueArgs),\n showChange,\n isDateDisabled: fieldInfo?.fieldSettings?.isDateDisabled,\n minDate: getInfoValue(fieldInfo?.fieldSettings, \"minDate\", getInfoValueArgs),\n maxDate: getInfoValue(fieldInfo?.fieldSettings, \"maxDate\", getInfoValueArgs)\n };\n };\n\n if (isValueHelp) {\n Control = SmartValueHelper;\n props = {\n label: fieldInfo.label,\n ...smartSelectProps,\n value: storageData.additionalFieldData?.parsedValue as any,\n onChange: args.events?.onValueHelperChange\n };\n } else {\n switch (type) {\n case FieldType.Autocomplete:\n Control = SmartAutocomplete;\n props = {\n ...smartSelectProps\n };\n break;\n\n // case FieldType.Select:\n // Control = SmartSelect;\n // props = {\n // inputIsReadOnly: true,\n // ...smartSelectProps\n // };\n // break;\n\n case FieldType.ComboBox:\n Control = SmartSelect;\n props = {\n ...smartSelectProps,\n ...formatterOptions\n };\n break;\n\n case FieldType.HierarchyComboBox:\n Control = SmartSelect;\n props = {\n ...smartSelectProps,\n isHierarchical: true,\n ...formatterOptions\n };\n break;\n\n case FieldType.LabelSelect:\n Control = SmartLabelSelect;\n\n props = {\n ...smartSelectProps,\n trailingTextWithoutFocus\n };\n break;\n\n case FieldType.FileInput:\n Control = SmartFileInput;\n\n props = {\n value: value,\n onChange: args.events?.onFileChange,\n width: sharedProps.width\n };\n break;\n\n case FieldType.HierarchyMultiComboBox:\n Control = SmartMultiSelect;\n props = {\n ...smartSelectProps,\n isHierarchical: true\n };\n break;\n\n case FieldType.MultiSelect:\n Control = SmartMultiSelect;\n props = {\n ...smartSelectProps\n };\n break;\n\n case FieldType.BusinessPartnerSelect:\n Control = SingleBusinessPartnerSelect;\n props = {\n ...smartSelectProps,\n columns: smartSelectProps?.fieldInfo?.columns,\n value: value as string\n };\n break;\n\n case FieldType.EditableText:\n Control = EditableText;\n props = {\n isConfirmable: fieldInfo?.isConfirmable,\n isResponsive: sharedProps.isResponsive,\n placeholder: sharedProps.placeholder ?? args.storage.t(\"Components:EditableText.EmptyText\"),\n value,\n isMultiLine: true,\n // force edit mode when there is an error, undefined otherwise to let component handle it's edit state\n isInEdit: (sharedProps.error ?? temporalData?.additionalFieldData?.error) ? true : undefined,\n onChange: args.events?.onInputChange,\n onCancel: args.events?.onCancel,\n onConfirm: args.events?.onConfirm,\n onBlur: args.events?.onBlur,\n showChange\n };\n break;\n\n case FieldType.NumberInput:\n Control = NumericInput;\n\n const { scale, minorUnit, isCurrency } = getScale(bc, args.storage);\n const opts: Intl.NumberFormatOptions = {\n maximumFractionDigits: scale\n };\n\n if (isCurrency) {\n opts.minimumFractionDigits = minorUnit;\n }\n\n if (scale) {\n formatterOptions = {\n ...formatterOptions,\n formatter: formatterOptions.formatter ?? NumberType.format.bind(null, value as number, opts),\n parser: formatterOptions.parser ?? ((_val: string, strict?: boolean, args?: IParserArgs) => {\n return NumberType.parse(_val, strict, {\n ...args,\n maximumFractionDigits: scale\n });\n })\n };\n }\n\n props = {\n ...sharedProps,\n value, // react doesn't like when input goes between undefined and set value (controled vs uncontrolled component)\n onFocus: args.events?.onFocus,\n onChange: args.events?.onInputChange,\n ...formatterOptions\n };\n break;\n\n case FieldType.SegmentedButton:\n Control = SegmentedButton;\n props = {\n selectedButtonId: value,\n name: name,\n def: items,\n onChange: args.events?.onSegmentedButtonChange,\n showChange\n };\n break;\n\n case FieldType.Date:\n Control = DatePicker;\n\n props = {\n ...fnGetDateProps(),\n ...formatterOptions,\n value: value as Date || null,\n onChange: args.events?.onDateChange\n };\n enhanceWithValidationResult(props, storageData, \"content\");\n break;\n\n case FieldType.MonthYear:\n Control = MonthYearPicker;\n props = {\n ...fnGetDateProps(),\n value: value as Date || null,\n onChange: args.events?.onDateChange\n };\n enhanceWithValidationResult(props, storageData, \"content\");\n break;\n\n case FieldType.ResponsiveInput:\n Control = ResponsiveInput;\n props = {\n value: value as string,\n onChange: args.events?.onInputChange,\n onWidthChange: args.events?.onWidthChange\n };\n break;\n\n case FieldType.TokenInput:\n Control = TokenInput;\n props = {\n value: value as string,\n onChange: args.events?.onInputChange\n };\n break;\n\n case FieldType.Checkbox:\n Control = Checkbox;\n props = {\n ...fieldInfo?.fieldSettings,\n checked: !!value,\n label: fieldInfo.label,\n onChange: args.events?.onCheckboxChange,\n showChange\n };\n break;\n\n case FieldType.ColorPicker:\n Control = ColorPicker;\n\n props = {\n ...fieldInfo?.fieldSettings,\n value: value as string,\n onChange: args.events?.onColorChange\n };\n break;\n\n case FieldType.Password:\n Control = PasswordInput;\n\n props = {\n value: value as string,\n onFocus: args.events?.onFocus,\n onChange: args.events?.onInputChange\n };\n break;\n\n case FieldType.Switch:\n Control = Switch;\n /**\n * Default behavior is that switch displays inner label (when labelStatus is not defined)\n * When LabelStatus === Visible - there is field label displayed and therefore no inner label\n * When LabelStatus === Removed | Hidden - no label is displayed at all (inner or field label)\n */\n const label = isNotDefined(fieldInfo?.labelStatus) && fieldInfo?.label;\n const formattedValue = formatterOptions.formatter?.(value) ?? value;\n\n props = {\n ...fieldInfo?.fieldSettings,\n label,\n auditTrailData: storageData?.additionalFieldData?.auditTrailData,\n onChange: args.events?.onSwitchChange,\n checked: !!formattedValue,\n ...formatterOptions,\n showChange\n };\n break;\n\n case FieldType.CheckboxGroup:\n // case in AccountAssignment - each checkbox points to different entity of entity set\n if (bc.isCollection()) {\n Control = AutoSizedCheckboxGroup;\n props = {\n ...fieldInfo?.fieldSettings,\n items,\n auditTrailData: storageData?.additionalFieldData?.auditTrailData,\n values: storageData.value as string[],\n onChange: args.events?.onCheckboxGroupChange\n };\n } else {\n Control = SmartCheckboxGroup;\n // case in FiscalYearDef - each CheckBox points to different property of one entity\n props = {\n bindingContext: bc.getParent(),\n storage: args.storage,\n onChange: args.events?.onSmartCheckboxGroupChange,\n items: items\n };\n }\n break;\n\n case FieldType.RadioButtonGroup:\n Control = SmartRadioButtonGroup;\n props = {\n value,\n bindingContext: bc,\n isReadOnly,\n storage: args.storage,\n auditTrailData: storageData?.additionalFieldData?.auditTrailData,\n ...args.fieldDef?.fieldSettings,\n onChange: args.events?.onSmartRadioButtonChange,\n showChange\n };\n break;\n\n case FieldType.WriteLine:\n Control = WriteLine;\n props = {\n ...fieldInfo?.fieldSettings,\n onConfirm: args.events?.onConfirm,\n isConfirmable: fieldInfo?.isConfirmable,\n onCancel: args.events?.onCancel,\n textAlign: fieldInfo.textAlign,\n value,\n onChange: args.events?.onInputChange,\n ...formatterOptions,\n showChange\n };\n break;\n\n case FieldType.TextArea:\n Control = TextArea;\n props = {\n value,\n ...sharedProps,\n ...args.fieldDef?.fieldSettings,\n onFocus: args.events?.onFocus,\n onChange: args.events?.onInputChange\n };\n break;\n\n case FieldType.Text:\n Control = Text;\n props = {\n isBig: true,\n children: formatterOptions?.formatter ? formatterOptions.formatter(value) : value,\n showChange\n };\n break;\n\n case FieldType.Time:\n Control = TimePicker;\n props = {\n ...fnGetDateProps(),\n ...formatterOptions,\n value,\n onChange: args.events?.onDateChange\n };\n enhanceWithValidationResult(props, storageData, \"content\");\n break;\n\n case FieldType.Input:\n default:\n Control = Input;\n props = {\n value,\n onFocus: args.events?.onFocus,\n onChange: args.events?.onInputChange,\n textAlign: fieldInfo.textAlign,\n ...formatterOptions,\n showChange\n };\n\n enhanceWithValidationResult(props, storageData, \"icon\");\n }\n }\n\n if (isComplexFilterArr(storageData.additionalFieldData?.parsedValue)) {\n // force \"Applied\" placeholder for complex conditional dialog values\n props.placeholder = i18next.t(\"Components:ValueHelper.Applied\");\n }\n\n return {\n storageData,\n Control,\n isValueHelp,\n props: {\n ...sharedProps,\n ...props\n }\n };\n};\n\nexport function getValueHelperChangeParams(bindingContext: BindingContext, type: FieldType, args: IValueHelperChangeArgs): ISmartFieldChange {\n return {\n // ValueHelper has complex value which doesn't correspond with BindingContext for given path, so we\n // use parsedValue instead. E.g. if property is of Date type, filters could be array of dates or\n // array of date intervals, etc...\n value: undefined,\n parsedValue: args.value as TValue,\n selectedItems: args.selectedItems,\n type, bindingContext,\n additionalData: {\n isValueHelper: true\n },\n triggerAdditionalTasks: args.triggerAdditionalTasks\n };\n}\n\nexport const getTooltip = (tooltip: (((storage?: FormStorage) => React.ReactElement) | string), storage: FormStorage): (React.ReactElement | string) => {\n if (isNotDefined(tooltip)) {\n return undefined;\n }\n\n if (typeof tooltip === \"function\") {\n return tooltip(storage);\n }\n\n return tooltip;\n};","import i18next from \"i18next\";\nimport React, { PureComponent } from \"react\";\n\nimport { Button } from \"../../button\";\nimport { IDialogProps } from \"../../dialog\";\nimport { AutoSizedCheckboxGroup } from \"../../inputs/checkboxGroup/AutoSizedCheckboxGroup\";\nimport { ICheckboxGroupChange, ICheckboxGroupItem, ICheckboxSubgroup } from \"../../inputs/checkboxGroup/CheckboxGroup\";\nimport { StyledDialog } from \"./SmartFilterBar.styles\";\n\n\nexport interface IProps extends IDialogProps {\n title: string;\n items: ICheckboxGroupItem[];\n selectedItems: string[];\n itemsSubgroups?: ICheckboxSubgroup[];\n onChange?: (args: ICheckboxGroupChange) => void;\n customPreContent?: React.ReactElement;\n}\n\nexport default class CustomizationDialog extends PureComponent {\n\n render() {\n const { items, selectedItems, onChange, ...passProps } = this.props;\n\n return (\n \n \n \n \n )}>\n {this.props.customPreContent}\n {items &&\n }\n \n );\n }\n}","import styled, { css } from \"styled-components/macro\";\nimport SmartField from \"../smartField/index\";\nimport Dialog from \"../../dialog\";\nimport { Body } from \"../../dialog/Dialog.styles\";\nimport { IconButton } from \"../../button\";\nimport { FIELD_HOR_MARGIN } from \"../../inputs/field/Field.styles\";\n\n\nexport const StyledDialog = styled(Dialog)`\n ${Body} {\n padding-right: 44px;\n }\n`;\n\n/**\n * SmartField styles with conditional dialog icon\n */\nexport const SmartFieldStyled = styled(SmartField)<{\n groupHasConditionalDialog: boolean;\n itemHasConditionalDialog: boolean;\n}>`\n ${props => props.groupHasConditionalDialog && css`\n margin-right: ${props.itemHasConditionalDialog ? 0 : 60}px;\n `};\n`;\n\n\nexport const IconButtonStyled = styled(IconButton)`\n margin-left: 2px;\n margin-right: ${FIELD_HOR_MARGIN};\n // prevent the button from making the whole field bigger\n height: 34px;\n align-self: flex-end;\n`;\n","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n var str = css(node, property) || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n var duration = parseDuration(element, 'transitionDuration');\n var delay = parseDuration(element, 'transitionDelay');\n var remove = transitionEnd(element, function (e) {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.filter(function (f) {\n return f != null;\n }).reduce(function (acc, f) {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) return f;\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // @ts-ignore\n acc.apply(this, args); // @ts-ignore\n\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"className\", \"children\", \"dimension\", \"getDimensionValue\"];\n\nvar _collapseStyles;\n\nimport classNames from 'classnames';\nimport css from 'dom-helpers/css';\nimport React, { useMemo } from 'react';\nimport Transition, { ENTERED, ENTERING, EXITED, EXITING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport createChainedFunction from './createChainedFunction';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nvar MARGINS = {\n height: ['marginTop', 'marginBottom'],\n width: ['marginLeft', 'marginRight']\n};\n\nfunction getDefaultDimensionValue(dimension, elem) {\n var offset = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n var value = elem[offset];\n var margins = MARGINS[dimension];\n return value + // @ts-ignore\n parseInt(css(elem, margins[0]), 10) + // @ts-ignore\n parseInt(css(elem, margins[1]), 10);\n}\n\nvar collapseStyles = (_collapseStyles = {}, _collapseStyles[EXITED] = 'collapse', _collapseStyles[EXITING] = 'collapsing', _collapseStyles[ENTERING] = 'collapsing', _collapseStyles[ENTERED] = 'collapse show', _collapseStyles);\nvar defaultProps = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n getDimensionValue: getDefaultDimensionValue\n};\nvar Collapse = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var onEnter = _ref.onEnter,\n onEntering = _ref.onEntering,\n onEntered = _ref.onEntered,\n onExit = _ref.onExit,\n onExiting = _ref.onExiting,\n className = _ref.className,\n children = _ref.children,\n _ref$dimension = _ref.dimension,\n dimension = _ref$dimension === void 0 ? 'height' : _ref$dimension,\n _ref$getDimensionValu = _ref.getDimensionValue,\n getDimensionValue = _ref$getDimensionValu === void 0 ? getDefaultDimensionValue : _ref$getDimensionValu,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n /* Compute dimension */\n var computedDimension = typeof dimension === 'function' ? dimension() : dimension;\n /* -- Expanding -- */\n\n var handleEnter = useMemo(function () {\n return createChainedFunction(function (elem) {\n elem.style[computedDimension] = '0';\n }, onEnter);\n }, [computedDimension, onEnter]);\n var handleEntering = useMemo(function () {\n return createChainedFunction(function (elem) {\n var scroll = \"scroll\" + computedDimension[0].toUpperCase() + computedDimension.slice(1);\n elem.style[computedDimension] = elem[scroll] + \"px\";\n }, onEntering);\n }, [computedDimension, onEntering]);\n var handleEntered = useMemo(function () {\n return createChainedFunction(function (elem) {\n elem.style[computedDimension] = null;\n }, onEntered);\n }, [computedDimension, onEntered]);\n /* -- Collapsing -- */\n\n var handleExit = useMemo(function () {\n return createChainedFunction(function (elem) {\n elem.style[computedDimension] = getDimensionValue(computedDimension, elem) + \"px\";\n triggerBrowserReflow(elem);\n }, onExit);\n }, [onExit, getDimensionValue, computedDimension]);\n var handleExiting = useMemo(function () {\n return createChainedFunction(function (elem) {\n elem.style[computedDimension] = null;\n }, onExiting);\n }, [computedDimension, onExiting]);\n return /*#__PURE__*/React.createElement(Transition // @ts-ignore\n , _extends({\n ref: ref,\n addEndListener: transitionEndListener\n }, props, {\n \"aria-expanded\": props.role ? props.in : null,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: handleEntered,\n onExit: handleExit,\n onExiting: handleExiting\n }), function (state, innerProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({}, innerProps, {\n className: classNames(className, children.props.className, collapseStyles[state], computedDimension === 'width' && 'width')\n }));\n });\n}); // @ts-ignore\n\n// @ts-ignore\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import React from \"react\";\nimport { AddFilterIcon, CleanFilterIcon, getIcon } from \"../icon\";\nimport Collapse from \"react-bootstrap/Collapse\";\nimport { CustomClasses, IconSize } from \"../../enums\";\nimport { IconButton } from \"../button\";\nimport TestIds from \"../../testIds\";\nimport {\n CollapseWrapper,\n ControlButtonsGroup,\n EmptyFieldGroup,\n ExpandIconWrapper,\n FilterBarCollapsedWrapper,\n FilterBarWrapper,\n FilterReadOnlyBody,\n GroupItem,\n NoDataWrapper,\n ReadOnlyGroups\n} from \"./FilterBar.styles\";\nimport ReadOnlyGroup from \"./ReadOnlyGroup\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport FieldGroup, { FieldGroupPaddingType } from \"../fieldGroup/FieldGroup\";\nimport { TValue } from \"../../global.types\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\nimport { FilterBarGroup, IFilterBarButtonDef } from \"../smart/smartFilterBar/SmartFilterBar.types\";\n\nexport interface IFilterBarReadOnlyItem {\n label?: string;\n description?: string;\n /** Filters without value are hidden in collapsed mode */\n value?: TValue;\n storage?: TableStorage;\n bindingContext?: BindingContext;\n}\n\nexport interface IFilterBarItem extends IFilterBarReadOnlyItem {\n field: {\n props: any,\n component: React.ComponentType\n };\n groupWithPrevious?: boolean;\n}\n\nexport interface IFilterBarTab {\n id: string;\n icon: string;\n groups: IFilterBarItem[][];\n removePadding?: boolean;\n customButtons?: IFilterBarButtonDef[];\n title: string;\n showEditFiltersButton?: boolean;\n createQuery?: boolean;\n}\n\nexport interface IProps extends WithTranslation {\n tabs: IFilterBarTab[];\n expandedGroupKey: string;\n expanded?: boolean;\n onExpand?: (id: string) => void;\n onExpandFinish?: () => void;\n onClear?: () => void;\n isClearDisabled?: boolean;\n onEditFiltersClick?: (tabId: string) => void;\n onCustomButtonClick?: (tabId: string, buttonId: string) => void;\n className?: string;\n isDisabled?: boolean;\n hideReadOnlyFilters?: string[];\n}\n\n\ninterface IState {\n changing: boolean;\n animateButton: boolean;\n}\n\nclass FilterBar extends React.Component {\n state: IState = {\n changing: false,\n animateButton: false\n };\n\n _filterBarRef = React.createRef();\n\n get tabIdx() {\n return this.props.tabs.findIndex(tab => tab.id === this.props.expandedGroupKey);\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState): void {\n // set focus on last opened tab after clicking on close icon\n if (!this.props.expanded && this.props.expanded !== prevProps.expanded) {\n const groupIconButton = this._filterBarRef.current.getElementsByClassName(CustomClasses.FilterBarGroupIcon)[this.tabIdx];\n groupIconButton && (groupIconButton as HTMLButtonElement).focus();\n }\n }\n\n getOpacity = (index = this.tabIdx) => {\n return 1 - (this.props.tabs.length - 1 - index) * 0.15;\n };\n\n getReadOnlyFields = () => {\n const maxRowsPerTab = this.props.tabs.length > 1 ? 3 : 7;\n\n const allFields = this.props.tabs.map((tab, i) => {\n return (\n \n );\n });\n\n return (\n \n {allFields}\n \n );\n };\n\n renderGroup = (group: IFilterBarItem[]) => {\n const groupItems: IFilterBarItem[][] = [];\n\n for (const item of group) {\n if (item.groupWithPrevious) {\n groupItems[groupItems.length - 1].push(item);\n } else {\n groupItems.push([item]);\n }\n }\n\n return (\n \n {\n groupItems.map((items, j) => {\n return (\n item.groupWithPrevious)}>\n {items.map((item, index) => {\n const Component = item.field.component;\n\n return ;\n })}\n \n );\n })\n }\n \n );\n };\n\n renderGroups = () => {\n const expandedTab = this._getExpandedTab();\n const isEmpty = expandedTab && !expandedTab.groups.find(group => group.length > 0);\n\n if (isEmpty) {\n return (\n \n {isEmpty &&\n \n {this.props.t(\"Components:Table.NoData\")}\n \n }\n \n );\n }\n\n\n return expandedTab?.groups.map((group, i) => {\n const isFirst = i === 0;\n const isLast = i === expandedTab.groups.length - 1;\n\n return (\n \n {this.renderGroup(group)}\n \n );\n });\n };\n\n handleCollapseStarted = () => {\n this.setState({\n changing: true,\n animateButton: false\n });\n };\n\n handleCollapseEnd = (isExit: boolean) => {\n this.setState({\n changing: false,\n animateButton: isExit\n });\n this.props.onExpandFinish?.();\n };\n\n _getExpandedTab = () => {\n return this.props.tabs[this.tabIdx];\n };\n\n handleEditFiltersClick = () => {\n this.props.onEditFiltersClick?.(this._getExpandedTab().id);\n };\n\n handleCustomButtonClick(id: string) {\n this.props.onCustomButtonClick?.(this._getExpandedTab().id, id);\n }\n\n renderControlButtons = () => {\n const expandedTab = this._getExpandedTab();\n\n return (\n \n {expandedTab?.id === FilterBarGroup.Filters && (\n \n \n \n )}\n {expandedTab?.showEditFiltersButton && (\n \n \n \n )}\n {/*not ready, hidden*/}\n {/*{expandedTab?.createQuery && (*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/*)}*/}\n {expandedTab?.customButtons?.map((button) => {\n const Icon = getIcon(button.iconName);\n return (\n \n \n \n );\n })}\n \n );\n };\n\n render() {\n return (\n \n \n {this.props.tabs.map((tab, index) => {\n const Icon = getIcon(tab.icon);\n return (\n \n \n \n );\n })}\n {!this.props.expanded && !this.state.changing &&\n \n {this.getReadOnlyFields()}\n \n }\n \n {this.props.expanded && this.renderControlButtons()}\n \n \n {this.renderGroups()}\n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"])(FilterBar);","import styled from \"styled-components/macro\";\nimport { T_TITLE_4 } from \"../../global.style\";\nimport { StyledSelect } from \"../inputs/select/Select.styles\";\nimport { StyledIconButton } from \"../button\";\n\n\nexport const BodyWrapper = styled.div`\n /* ToDo: move to dialog and use percentage to work well on small screens */\n min-height: 500px;\n`;\n\nexport const ValueInput = styled.div`\n white-space: nowrap;\n`;\n\nexport const StyledConditionalFilterRow = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 13px;\n\n ${StyledSelect}, ${ValueInput} {\n margin-left: 32px;\n }\n\n ${StyledIconButton} {\n margin-left: 20px;\n }\n`;\n\nexport const Title = styled.h4<{ _visible: boolean; }>`\n ${T_TITLE_4};\n\n margin-right: 45px;\n visibility: ${props => props._visible ? 'unset' : 'hidden'};\n`;","import styled from \"styled-components\";\nimport { StyledNumericWriteLine } from \"../writeLine/NumericWriteLine.styles\";\n\n\nexport const StyledNumericRange = styled.div<{\n _width?: string;\n}>`\n display: flex;\n width: ${props => props._width ? props._width : \"100%\"};\n\n ${StyledNumericWriteLine} {\n flex: 1 1 auto;\n width: 0; // auto calculated by flex\n }\n`;","import NumericWriteLine from \"../writeLine/NumericWriteLine\";\nimport { BasicInputSizes } from \"../../../enums\";\nimport { IValueInterval } from \"../../smart/smartValueHelper\";\nimport React, { useCallback } from \"react\";\nimport { IInputOnChangeEvent, IInputProps } from \"../input\";\nimport { StyledNumericRange } from \"./NumericRange.styles\";\nimport { IValidationError } from \"../../../model/Validator.types\";\n\nexport interface IValidationErrorInterval {\n from: IValidationError;\n to: IValidationError;\n}\n\ninterface IProps extends Omit>, \"error\" | \"onChange\"> {\n error: IValidationErrorInterval;\n onChange: (value: IValueInterval) => void;\n}\n\nexport const NumericRange = (props: IProps) => {\n const { width, value, onChange, onBlur, error, ...forwardProps } = props;\n\n const handleChange = useCallback((key: keyof IValueInterval, e: IInputOnChangeEvent) => {\n const newVal = {\n ...value,\n [key]: e.value\n };\n onChange(newVal);\n }, [onChange, value]);\n\n const handleChangeFrom = useCallback((e: IInputOnChangeEvent) => handleChange(\"from\", e), [handleChange]);\n const handleChangeTo = useCallback((e: IInputOnChangeEvent) => handleChange(\"to\", e), [handleChange]);\n\n return (\n <>\n \n \n  - \n \n \n \n );\n};","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport {\n Condition,\n defaultValue,\n getComplexFilterValue,\n IComplexFilter,\n isInterval,\n IValueInterval,\n PredefinedFilter,\n TFilterValue,\n ValueTypeAndConditionToPredefinedFilter,\n ValueTypeToCondition\n} from \"./ConditionalFilterDialog.utils\";\nimport { StyledConditionalFilterRow, Title, ValueInput } from \"./ConditionalFilterDialog.styles\";\nimport { BasicInputSizes, IconSize, TextAlign, ValidationErrorType, ValueType } from \"../../enums\";\nimport { IInputOnChangeEvent, ISharedInputProps } from \"../inputs/input\";\nimport WriteLine from \"../inputs/writeLine\";\nimport NumericWriteLine from \"../inputs/writeLine/NumericWriteLine\";\nimport { DatePicker, DateRangePicker } from \"../inputs/date\";\nimport { IDayInterval, isValidDateInterval } from \"../inputs/date/utils\";\nimport TestIds from \"../../testIds\";\nimport { IValidationErrorInterval, NumericRange } from \"../inputs/numericRange\";\nimport { IValidationError, ValidationMessage } from \"../../model/Validator.types\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { IconButton } from \"../button\";\nimport { BasicSelect } from \"../inputs/select/BasicSelect\";\nimport { CaretIcon, CloseIcon } from \"../icon\";\nimport { GroupDividerSize, ISelectGroup } from \"@components/inputs/select/Select.types\";\n\nexport type TFilterValueError = IValidationError | IValidationErrorInterval;\nexport type TGetCustomValueInput = (row: IComplexFilter, onChange: (value: IComplexFilter) => void) => React.ReactElement;\n\nexport interface IProps extends WithTranslation {\n label: string;\n row: IComplexFilter;\n error: TFilterValueError;\n type: ValueType;\n canRemove?: boolean;\n isLabelVisible?: boolean;\n isEnum?: boolean;\n getCustomValueInput?: TGetCustomValueInput;\n validator?: (value: TFilterValue) => void;\n\n onChange: (val: IComplexFilter) => void;\n onRemove: (id: string) => void;\n onValueError: (rowId: string, error: TFilterValueError) => void;\n}\n\nclass ConditionalFilterRow extends React.PureComponent {\n prepareItems = memoizeOne((type: ValueType, condition: Condition) => {\n const _createItem = (key: any) => {\n return {\n id: key,\n label: this.props.t(`Components:ValueHelper.${key}`)\n };\n };\n\n const conditions = this.props.isEnum ? [_createItem(Condition.Equals)] : ValueTypeToCondition[type].map(_createItem);\n const filters = ValueTypeAndConditionToPredefinedFilter[type]?.[condition]?.map(_createItem);\n\n return { conditions, filters };\n }, () => [this.props.tReady]);\n\n get isValueVisible() {\n return !!this.props.row.filter;\n }\n\n /**\n * Filter values could be 2 value interval or Array, otherwise it will be simple value...\n * @param v1\n * @param v2\n */\n valueTypeDiffers(v1: TFilterValue, v2: TFilterValue) {\n return isInterval(v1) !== isInterval(v2) || Array.isArray(v1) !== Array.isArray(v2);\n }\n\n\n changeRow(newRow: IComplexFilter) {\n const prevRow = this.props.row,\n prevRealValue = getComplexFilterValue(prevRow),\n defVal = defaultValue(newRow, this.props.type);\n\n if (newRow.filter !== PredefinedFilter.Value) {\n // new row value has predefined filter -> there will be no value at all\n delete newRow.value;\n } else if (prevRow.filter !== PredefinedFilter.Value && !this.valueTypeDiffers(prevRealValue, defVal)) {\n // previous row value type was predefined and is of the same type\n // -> keep that value to be edited by user\n newRow.value = prevRealValue;\n } else if (this.valueTypeDiffers(newRow.value, defVal)) {\n // new value type differs from the defaultOne -> reinitiate\n newRow.value = defVal;\n }\n this.props.onChange(newRow);\n }\n\n validateRow(row: IComplexFilter) {\n let error: TFilterValueError;\n // We need to validate Number range separately as two fields are used\n if (isInterval(row.value)) {\n let errorInterval = {} as IValidationErrorInterval;\n // Validate both interval values (DatePicker), fall on first error\n const value = row.value as IValueInterval;\n ([\"from\", \"to\"] as (keyof IValueInterval)[]).forEach((k) => {\n try {\n this.props.validator?.(value[k] as TFilterValue);\n } catch (e) {\n errorInterval[k] = e;\n }\n });\n if (isObjectEmpty(errorInterval) && isDefined(value.from) && isDefined(value.to)) {\n const isValidInterval = this.props.type === ValueType.Date\n ? isValidDateInterval(value as IDayInterval)\n : value.from < value.to;\n if (!isValidInterval) {\n const invRangeError = {\n errorType: ValidationErrorType.Field,\n message: ValidationMessage.NotARange\n };\n errorInterval = {\n from: invRangeError, to: invRangeError\n };\n }\n }\n error = errorInterval;\n } else {\n try {\n // validate single value\n this.props.validator?.(row.value);\n } catch (e) {\n error = e;\n }\n }\n // empty error object means no error actually (we might delete the last one from interval)\n if (isObjectEmpty(error)) {\n error = null;\n }\n this.props.onValueError(row.id, error);\n }\n\n handleConditionChange = (args: any) => {\n if (args.triggerAdditionalTasks) {\n const newRow = {\n ...this.props.row,\n filter: PredefinedFilter.Value,\n condition: args.value\n };\n this.changeRow(newRow);\n this.validateRow(newRow);\n }\n };\n\n handleFilterChange = (args: any) => {\n if (args.triggerAdditionalTasks) {\n const newRow = {\n ...this.props.row,\n filter: args.value\n };\n this.changeRow(newRow);\n if (args.value === PredefinedFilter.Value) {\n this.validateRow(newRow);\n } else {\n // it's filter with predefined value -> it's always valid (value is not defined)\n // -> clear error\n this.props.onValueError(newRow.id, null);\n }\n }\n };\n\n handleValueChange = (value: TFilterValue) => {\n const newRow = {\n ...this.props.row,\n value\n };\n\n this.changeRow(newRow);\n this.validateRow(newRow);\n };\n\n handleInputChange = (event: IInputOnChangeEvent) => {\n this.handleValueChange(event.value);\n };\n\n handleBlur = () => {\n if (this.props.error) {\n // rerender components to show error on focus out\n this.forceUpdate();\n }\n };\n\n handleRemove = () => {\n this.props.onRemove(this.props.row.id);\n };\n\n renderValueInput(row: IComplexFilter) {\n const value = getComplexFilterValue(row);\n\n const _singleInputByType = (value: TFilterValue, type: ValueType, props: ISharedInputProps) => {\n if (this.props.getCustomValueInput) {\n return this.props.getCustomValueInput(row, this.props.onChange);\n }\n\n switch (type) {\n case ValueType.Date:\n return (\n \n );\n case ValueType.Number:\n return (\n \n );\n default:\n return (\n \n );\n }\n };\n\n const _doubleInputByType = (value: TFilterValue, type: ValueType, props: ISharedInputProps) => {\n const error = this.props.error as IValidationErrorInterval;\n switch (type) {\n case ValueType.Date:\n return (\n \n );\n case ValueType.Number:\n return (\n }\n error={error}\n onChange={this.handleValueChange}\n />\n );\n default:\n // We don't have double input for other types, fallback to single one\n return _singleInputByType(value, type, props);\n }\n };\n\n const sharedProps = {\n width: BasicInputSizes.L,\n textAlign: TextAlign.Left,\n onBlur: this.handleBlur,\n isDisabled: row.filter !== PredefinedFilter.Value\n };\n\n const getValueControls = isInterval(value) ? _doubleInputByType : _singleInputByType;\n\n return (\n {getValueControls(value, this.props.type, sharedProps)}\n );\n }\n\n render() {\n const selectProps = {\n width: BasicInputSizes.L,\n inputIcon: ,\n closeOnSelection: true,\n openOnClick: true,\n inputIsReadOnly: true\n };\n\n const defaultValueGroup = {\n id: \"Default\"\n },\n itemsGroup: ISelectGroup = { id: undefined, dividerSize: GroupDividerSize.Small },\n defaultValue = {\n id: PredefinedFilter.Value,\n label: this.props.t(`Components:ValueHelper.${this.props.type === ValueType.Date ? \"DateValue\" : \"Value\"}`),\n groupId: defaultValueGroup.id\n };\n\n const items = this.prepareItems(this.props.type, this.props.row.condition);\n\n return (\n \n {this.props.label}\n\n {items.conditions?.length &&\n }\n\n {items.filters?.length &&\n }\n\n {this.isValueVisible && this.renderValueInput(this.props.row)}\n\n \n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(ConditionalFilterRow);","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { ValueType } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport { Button } from \"../button\";\nimport CollapsibleSection from \"../collapsibleSection/CollapsibleSection\";\nimport Dialog from \"../dialog\";\nimport { PlusIcon } from \"../icon\";\nimport { BodyWrapper } from \"./ConditionalFilterDialog.styles\";\nimport {\n ConditionType,\n createFilterRow,\n IComplexFilter,\n isInterval,\n IValueInterval,\n PredefinedFilter,\n TFilterValue\n} from \"./ConditionalFilterDialog.utils\";\nimport ConditionalFilterRow, { TFilterValueError, TGetCustomValueInput } from \"./ConditionalFilterRow\";\n\nexport interface IProps extends WithTranslation {\n name: string;\n values: IComplexFilter[];\n type: ValueType;\n isEnum?: boolean;\n validator?: (value: TFilterValue) => void;\n getCustomValueInput?: TGetCustomValueInput;\n\n onCancel: () => void;\n onConfirm: (values: IComplexFilter[]) => void;\n}\n\ninterface IState {\n rows: IComplexFilter[];\n errors: Map;\n}\n\nfunction isFilterValueEmpty(val: TFilterValue) {\n const isValueEmpty = (v: any) => [undefined, null, \"\", NaN].includes(v);\n\n if (Array.isArray(val)) {\n return !val?.length || (val as unknown[]).every(isValueEmpty);\n } else if (isInterval(val)) {\n const i = val as IValueInterval;\n return isValueEmpty(i.from) || isValueEmpty(i.to);\n }\n return isValueEmpty(val);\n}\n\nexport function isFilterEmpty(complexFilter: IComplexFilter): boolean {\n return !complexFilter.filter || (complexFilter.filter === PredefinedFilter.Value && isFilterValueEmpty(complexFilter.value));\n}\n\nclass ConditionalFilterDialog extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n constructor(props: IProps) {\n super(props);\n\n const rows = this.prepareRows(props.values, this.props.type);\n\n this.state = {\n rows,\n errors: new Map()\n };\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n // refresh state\n }\n\n prepareRows(values: IComplexFilter[], valueType: ValueType): IComplexFilter[] {\n const rows = values.map(v => createFilterRow(v, valueType));\n\n [ConditionType.Included, ConditionType.Excluded]\n .forEach(type => {\n if (!rows.find((item: IComplexFilter) => item.type === type)) {\n rows.push(createFilterRow({ type }, valueType));\n }\n });\n\n return rows;\n }\n\n handleAdd = (type: ConditionType) => {\n const item = createFilterRow({ type }, this.props.type);\n\n this.setState({ rows: [...this.state.rows, item] });\n };\n\n handleRowRemove = (id: string) => {\n // clear possible error for given row\n this.handleValueError(id, null);\n // remove row\n this.setState(({ rows }) => ({ rows: [...rows.filter((val: IComplexFilter) => val.id !== id)] }));\n };\n\n handleChange = (val: IComplexFilter) => {\n const newRows = [...this.state.rows],\n idx = newRows.findIndex(item => item.id === val.id);\n\n newRows.splice(idx, 1, val);\n\n this.setState({\n rows: newRows\n });\n };\n\n handleClear = () => {\n const rows = this.prepareRows([], this.props.type);\n this.setState({\n rows,\n errors: new Map()\n });\n };\n\n handleConfirm = () => {\n const filledValues = this.state.rows.filter(item => !isFilterEmpty(item));\n this.props.onConfirm(filledValues);\n };\n\n handleValueError = (rowId: string, error: TFilterValueError) => {\n if (error || this.state.errors.has(rowId)) {\n this.setState(({ errors }) => {\n if (error) {\n errors.set(rowId, error);\n } else {\n errors.delete(rowId);\n }\n\n return {\n errors: new Map(errors)\n };\n });\n }\n };\n\n renderSection(type: ConditionType) {\n const rows = this.state.rows.filter((val: IComplexFilter) => val.type === type);\n const isEnum = this.props.isEnum;\n const isBoolean = this.props.type === ValueType.Boolean;\n\n const commonProps = {\n label: this.props.name,\n type: this.props.type,\n onChange: this.handleChange,\n onRemove: this.handleRowRemove,\n onValueError: this.handleValueError,\n validator: this.props.validator,\n canRemove: rows.length > 1,\n isEnum: isEnum\n };\n\n const hasUnfilledOrInvalidRow = !!rows.find(row => isFilterEmpty(row) || this.state.errors.has(row.id));\n\n return (\n <>\n {rows.map((val, idx) =>\n )\n }\n \n \n );\n }\n\n render() {\n const hasFilledRow = !!this.state.rows.find(row => !isFilterEmpty(row));\n const hasError = !!this.state.errors.size;\n\n return (\n \n \n \n \n \n )}\n testid={TestIds.ConditionalFilterDialog}>\n \n \n {this.renderSection(ConditionType.Included)}\n \n \n {this.renderSection(ConditionType.Excluded)}\n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(ConditionalFilterDialog);\n","import { IColumn, ISelectGroup, ISelectItem, TSelectItemId } from \"@components/inputs/select/Select.types\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { getIndexedPathFromBindingContext, getUniqueContextsSuffixAsString, setBoundValue } from \"@odata/Data.utils\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { CurrencyCode } from \"@odata/GeneratedEnums\";\nimport { getEnumEntities, getEnumName, isEnum } from \"@odata/GeneratedEnums.utils\";\nimport { getCompanyUsedCurrencyCodes } from \"@pages/companies/Company.utils\";\nimport { logger } from \"@utils/log\";\nimport React from \"react\";\n\nimport { AppContext, AppMode } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, IconSize } from \"../../../enums\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { ButtonSize } from \"../../button/Button.utils\";\nimport ConditionalFilterDialog from \"../../conditionalFilterDialog/ConditionalFilterDialog\";\nimport {\n IComplexFilter,\n isComplexFilterArr,\n TFilterValue,\n ValueTypeToCondition\n} from \"../../conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { TGetCustomValueInput } from \"../../conditionalFilterDialog/ConditionalFilterRow\";\nimport { ValueHelpFilledIcon, ValueHelpIcon } from \"../../icon\";\nimport { MultiSelect } from \"../../inputs/select/MultiSelect\";\nimport { ISmartFieldProps } from \"../smartField/SmartField\";\nimport { getValueHelperChangeParams, IGetControlDataRetValue } from \"../smartField/SmartFieldUtils\";\nimport { createSelectItem } from \"../smartValueHelper/ValueHelper.utils\";\nimport { IconButtonStyled, SmartFieldStyled } from \"./SmartFilterBar.styles\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\n\ninterface IProps extends Omit {\n hasConditionalDialog?: boolean;\n}\n\ninterface IState {\n isDialogOpen: boolean;\n isBusy?: boolean;\n items?: ISelectItem[];\n}\n\nclass SmartFilterField extends React.Component {\n static contextType = AppContext;\n\n state: IState = {\n isDialogOpen: false\n };\n\n get groupHasConditionalDialog(): boolean {\n return this.props.hasConditionalDialog;\n }\n\n get itemHasConditionalDialog(): boolean {\n const type = this.props.storage.getInfo(this.props.bindingContext).valueType;\n return ValueTypeToCondition[type]?.length > 0;\n }\n\n get fieldInfo(): IFieldInfo {\n return this.props.storage.getInfo(this.props.bindingContext);\n }\n\n isEnum = (): boolean => {\n return isEnum(this.fieldInfo);\n };\n\n isCurrencyEnum = (): boolean => {\n return this.isEnum() && this.getEnumName() === \"Currency\";\n };\n\n getEnumName = (): string => {\n return getEnumName(this.fieldInfo, this.props.storage.oData);\n };\n\n isOptional = (): boolean => {\n return this.props.bindingContext.getProperty()?.isNullable();\n };\n\n createSelectItems = async (): Promise => {\n const { bindingContext, storage } = this.props;\n\n // could be null in case we create enum items manually, e.g. for document status filter\n const isEnum = this.isEnum();\n const fieldInfo = this.fieldInfo;\n\n const opts = {\n bindingContext, fieldInfo,\n storage: storage as TableStorage,\n isEnum: true\n };\n\n let items: ISelectItem[] = [];\n\n if (fieldInfo.fieldSettings?.conditionalDialogItemsFactory) {\n items = (await fieldInfo.fieldSettings.conditionalDialogItemsFactory({\n storage, bindingContext, info: fieldInfo\n })) ?? [];\n } else if (isEnum) {\n let rows: IEntity[];\n if (fieldInfo.additionalProperties?.length || (fieldInfo.fieldSettings?.displayName && fieldInfo.fieldSettings?.displayName !== \"Name\")) {\n const displayName = fieldInfo.fieldSettings?.displayName ?? \"Name\";\n const columns = [\"Code\", displayName, ...fieldInfo.additionalProperties?.map(prop => prop.id)];\n const query = storage.oData.getEntitySetWrapper(bindingContext.getEntitySet().getName() as EntitySetName).query()\n .select(...columns);\n\n const data = await query.fetchData();\n rows = data.value;\n } else {\n // todo: getEnumEntities should return enum with all props (add Description to entity toml)\n rows = getEnumEntities(this.getEnumName());\n }\n items = rows.map((item: IEntity) => createSelectItem(item, opts, bindingContext));\n }\n\n if (isEnum && this.isOptional()) {\n const emptyItem = createSelectItem(null, opts);\n items = [emptyItem, ...items];\n }\n\n return items;\n };\n\n getCustomValueInput = (): TGetCustomValueInput => {\n if (!this.isEnum()) {\n return null;\n }\n const { bindingContext } = this.props;\n\n let { items } = this.state;\n let isTabular = false;\n let columns: IColumn[];\n let groups: ISelectGroup[];\n\n if (this.isCurrencyEnum()) {\n const isOnCompanyLevel = this.context.getAppMode() === AppMode.Company;\n const usedCurrencies = isOnCompanyLevel && getCompanyUsedCurrencyCodes(this.context);\n items = items.reduce((ret, item) => {\n if (!isOnCompanyLevel || usedCurrencies.includes(item.id as CurrencyCode)) {\n ret.push({\n ...item,\n tabularData: [item.id, item.label],\n label: item.id,\n description: item.label\n });\n }\n return ret;\n }, []);\n isTabular = true;\n columns = [{ id: \"Code\" }, { id: \"Name\" }];\n }\n\n // generally enum with local context has to predefine its items, because there is no other way how to obtain them\n if (bindingContext.isLocal()) {\n groups = this.fieldInfo.fieldSettings.groups;\n items = items?.length > 0 ? items : this.fieldInfo.fieldSettings.initialItems;\n\n if (!items) {\n logger.warn(`SmartFilterField: local enum filter ${this.props.bindingContext.toString()} is missing initialItems definition`);\n }\n }\n\n // we don't need to pollute ConditionalFilterDialog with binding context,\n // instead we can create the SmartMultiSelect here\n return (row: IComplexFilter, handleChange: (value: IComplexFilter) => void) => {\n return (\n {\n handleChange({\n ...row,\n value: event.value as TFilterValue\n });\n }}/>\n );\n };\n };\n\n handleIconClick = async (e: React.MouseEvent): Promise => {\n e.preventDefault();\n\n this.setState({ isBusy: true });\n\n const items = await this.createSelectItems();\n\n this.setState({\n isDialogOpen: true,\n isBusy: false,\n items\n });\n };\n\n handleCancel = (): void => {\n this.setState({\n isDialogOpen: false\n });\n };\n\n handleConfirm = (values: IComplexFilter[]): void => {\n const { storage, bindingContext } = this.props;\n const info = storage.getInfo(bindingContext);\n this.props.onChange(getValueHelperChangeParams(bindingContext, info.type, {\n value: values,\n triggerAdditionalTasks: true\n }));\n\n this.setState({\n isDialogOpen: false\n });\n };\n\n\n getValidatorFn = () => {\n const { storage } = this.props;\n let { bindingContext } = this.props;\n const data = storage.data;\n let path: string;\n\n const fieldInfo = storage.getInfo(bindingContext);\n\n if (fieldInfo.fieldSettings?.displayName) {\n bindingContext = bindingContext.navigate(fieldInfo.fieldSettings?.displayName);\n }\n\n if (bindingContext.isAnyPartCollection()) {\n path = getIndexedPathFromBindingContext(bindingContext, data.entity, data.bindingContext);\n } else {\n path = getUniqueContextsSuffixAsString(bindingContext, data.bindingContext, \".\");\n }\n\n return (value: TFilterValue) => {\n const entity = {};\n // store data in simulated entity to support validation\n setBoundValue({\n bindingContext,\n data: entity,\n newValue: value,\n dataBindingContext: data.bindingContext,\n preventCloning: true\n });\n\n storage._validationSchema.validateSyncAt(path, entity);\n };\n };\n\n renderSmartFieldWrapper = (field: React.ReactNode, fieldInfo: IFieldInfo, data: IGetControlDataRetValue): React.ReactNode => {\n const { storage, fieldProps } = this.props;\n const { additionalFieldData } = data.storageData;\n const type = fieldInfo.valueType;\n const _isEnum = isEnum(fieldInfo);\n\n const hasConditionalDialog = this.groupHasConditionalDialog && this.itemHasConditionalDialog;\n const conditionalValues: IComplexFilter[] = [];\n if (isComplexFilterArr(additionalFieldData?.parsedValue)) {\n conditionalValues.push(...additionalFieldData.parsedValue);\n }\n\n const Icon = conditionalValues.length ? ValueHelpFilledIcon : ValueHelpIcon;\n\n return (<>\n {field}\n\n {hasConditionalDialog &&\n \n \n }\n\n {this.state.isDialogOpen &&\n }\n );\n };\n\n render() {\n return ();\n }\n}\n\nexport default SmartFilterField;","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { getFieldInfo, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\nimport { compareString } from \"@utils/string\";\nimport React, { Component } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FieldType } from \"../../../enums\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport memoize from \"../../../utils/memoize\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport FilterBar, { IFilterBarItem, IFilterBarTab } from \"../../filterBar/FilterBar\";\nimport { ICheckboxGroupChange, ICheckboxGroupItem, ICheckboxSubgroup } from \"../../inputs/checkboxGroup/CheckboxGroup\";\nimport Tabs from \"../../tabs\";\nimport { isVisible } from \"../FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"../smartField/SmartField\";\nimport CustomizationDialog from \"./CustomizationDialog\";\nimport { FilterBarGroup, IFieldData, IFilterGroupDef, TFilterDef } from \"./SmartFilterBar.types\";\nimport SmartFilterField from \"./SmartFilterField\";\n\nexport interface IProps extends WithTranslation {\n tableId: string;\n className?: string;\n storage: TableStorage;\n isDisabled?: boolean;\n shouldAutoSort?: boolean;\n\n onClearFilter: () => void;\n onFilterChange: (args?: ISmartFieldChange) => void;\n onFilterBlur?: (args?: ISmartFieldBlur) => void;\n /** Called when CustomizationDialog is confirmed -> user changed filter bar fields */\n onFilterCustomizationChanged?: () => void;\n onExpandFinish?: () => void;\n onCustomButtonClick?: (tabId: string, buttonId: string) => void;\n}\n\ninterface IState {\n isExpanded: boolean;\n isDialogOpen: boolean;\n visibleFilters: string[];\n availableFilters: ICheckboxGroupItem[];\n detailTabFilters?: ICheckboxGroupItem[];\n detailTabGroups?: ICheckboxSubgroup[];\n selectedTab?: string;\n}\n\nconst DEFAULT_TAB_ID = \"defaultTab\";\nconst DETAIL_TAB_ID = \"detailTab\";\n\nclass SmartFilterBar extends Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n constructor(props: IProps) {\n super(props);\n\n let isExpanded = false;\n if (this.props.storage.data?.definition) {\n const expandedGroup = (this.props.storage.data.definition.filterBarDef || []).find(group => group.isExpanded);\n if (expandedGroup) {\n isExpanded = true;\n props.storage.data.expandedGroupKey = expandedGroup.id;\n }\n }\n\n this.state = {\n isExpanded,\n isDialogOpen: false,\n visibleFilters: [],\n availableFilters: [],\n detailTabFilters: [],\n detailTabGroups: [],\n selectedTab: DEFAULT_TAB_ID\n };\n }\n\n handleExpand = (id: string) => {\n const isCurrentClicked = this.props.storage.data.expandedGroupKey === id;\n this.props.storage.store({\n expandedGroupKey: id as FilterBarGroup\n });\n\n this.setState((state) => {\n const isOpen = state.isExpanded;\n let shouldChange = false;\n\n if ((isOpen && isCurrentClicked) || !isOpen) {\n shouldChange = true;\n }\n return {\n isExpanded: shouldChange ? !state.isExpanded : state.isExpanded\n };\n });\n };\n\n _getCurrentGroupVisibleFilters = () => {\n return this.props.storage.data.visibleFilters[this.props.storage.data.expandedGroupKey];\n };\n\n get filterBarDef() {\n return this.props.storage.data.definition.filterBarDef.find(filterBarDef => filterBarDef.id === this.props.storage.data.expandedGroupKey);\n }\n\n handleEditFiltersClick = async (id: string) => {\n await this.prepareAvailableFilters();\n\n this.setState({\n isDialogOpen: true,\n selectedTab: DEFAULT_TAB_ID,\n visibleFilters: [...this._getCurrentGroupVisibleFilters()]\n });\n };\n\n handleClearFilter = () => {\n this.props.onClearFilter();\n };\n\n handleCloseDialog = () => {\n this.setState({\n isDialogOpen: false\n });\n };\n\n prepareAvailableFilters = async (): Promise => {\n const filterBarDef = this.filterBarDef;\n const { storage } = this.props;\n\n const preparedDefs: IFieldInfo[] = [];\n\n const _add = (def: TFilterDef, id: string) => {\n return getFieldInfo({\n bindingContext: storage.data.bindingContext.navigate(id),\n context: this.context,\n fieldDef: {\n id,\n ...def\n }\n }).then(info => preparedDefs.push(info));\n };\n\n const defPromises: Promise[] = Object.keys(filterBarDef.filterDefinition)\n .map((id) => {\n const filterDefinition = filterBarDef.filterDefinition[id];\n if (typeof filterDefinition?.factory === \"function\") {\n return filterDefinition.factory(storage)\n .then((defs) => Promise.all(defs.map(def => _add(def, def.id))));\n }\n return _add(filterDefinition, id);\n });\n\n await Promise.all(defPromises);\n\n const groupStatus = storage.data.visibleFilters[storage.data.expandedGroupKey];\n if (!groupStatus) {\n return null;\n }\n\n const availableFilters: ICheckboxGroupItem[] = [];\n const detailTabFilters: ICheckboxGroupItem[] = [];\n const detailTabGroups: ICheckboxSubgroup[] = [];\n\n for (const field of preparedDefs) {\n if (storage.predefinedFilters?.[field.id]) {\n // predefined filters are not customizable\n continue;\n }\n // we use fullpath with keys when using factory filter (more filters are created from one definition)\n const withoutKey = !field.factory;\n const path = field.bindingContext.getFullPath(withoutKey);\n const item: ICheckboxGroupItem = {\n id: path,\n label: field.label\n };\n const parentBc = field.bindingContext.getParent();\n const isDefaultTabFilter = !field.description;\n\n if (isDefaultTabFilter) {\n availableFilters.push(item);\n } else {\n const groupId = field.descriptionPath ?? parentBc.getPath(true);\n\n if (!detailTabGroups.find(group => group.id === groupId)) {\n detailTabGroups.push({\n id: groupId,\n label: field.description as string\n });\n }\n item.groupId = groupId;\n detailTabFilters.push(item);\n }\n }\n\n availableFilters.sort((a: ISelectItem, b: ISelectItem) => compareString(a.label, b.label));\n detailTabFilters.sort((a: ISelectItem, b: ISelectItem) => compareString(a.label, b.label));\n detailTabGroups.sort((a: ISelectItem, b: ISelectItem) => compareString(a.label, b.label));\n\n this.setState({\n availableFilters,\n detailTabFilters,\n detailTabGroups\n });\n };\n\n handleConfirmDialog = async () => {\n const { storage } = this.props;\n const id = storage.data.expandedGroupKey;\n const currentVisibleFilters = this._getCurrentGroupVisibleFilters();\n const visibleFilters = [...this.state.visibleFilters];\n\n // TODO predefinedFilters vs presetDefaultFilters =_=\n // https://solitea-cz.atlassian.net/browse/DEV-23571\n if (storage.predefinedFilters) {\n Object.keys(storage.predefinedFilters).forEach(predefinedFilterId => {\n const predefinedFilterBc = storage.data.bindingContext.navigate(predefinedFilterId);\n visibleFilters.push(predefinedFilterBc.getFullPath(true));\n });\n }\n\n // in case that filter that had previously value was removed, filter query has to be refreshed\n // otherwise the items would still be filtered by the old filter value and the filter couldn't be changed by the user anymore\n const removedFilters = currentVisibleFilters.filter((filterName) => {\n return !visibleFilters.includes(filterName);\n });\n\n for (const removedFilter of removedFilters) {\n // force empty string into the data for the removed filters\n storage.handleChange({\n value: null,\n bindingContext: storage.data.fieldsInfo[removedFilter].bindingContext\n });\n }\n\n // trigger filter query refresh\n this.props.onFilterChange?.();\n\n await storage.updateVisibleFilters(id, visibleFilters);\n\n this.setState({\n isDialogOpen: false\n }, () => {\n this.props.onFilterCustomizationChanged?.();\n });\n };\n\n getTabsData = memoizeOne(() => {\n return [\n {\n id: DEFAULT_TAB_ID,\n title: this.props.storage.data.definition.title ?? this.props.t(\"Common:General.Default\")\n },\n {\n id: DETAIL_TAB_ID,\n title: this.props.t(\"Common:General.Detail\")\n\n }\n ];\n });\n\n handleCustomFilterAddChange = async (args: ICheckboxGroupChange) => {\n const nonActiveTabSelectedFilters = this.getSelectedFilters(this.state.selectedTab === DEFAULT_TAB_ID ? DETAIL_TAB_ID : DEFAULT_TAB_ID);\n const visibleFilters: string[] = [\n ...nonActiveTabSelectedFilters,\n ...args.values\n ];\n\n this.setState({\n visibleFilters\n });\n };\n\n createGroup = (filter: IFilterGroupDef, fields: IFieldData[]): IFilterBarItem[] => {\n const { storage } = this.props;\n const group: IFilterBarItem[] = fields\n .filter((item) => {\n const isNotRenderedPredefinedFilter = item.type === FieldType.Custom && !item.render;\n return isVisible({ info: item, storage }) && !isNotRenderedPredefinedFilter;\n })\n .map((item) => {\n const filterBarItem: IFilterBarItem = {\n bindingContext: item.bindingContext,\n storage: storage,\n label: item.label,\n description: item.description as string,\n groupWithPrevious: !!item.fieldSettings?.groupWithPrevious,\n // pass component and props, so that the instantiation happens in the filter bar\n // otherwise, there would be rendering issues, because getTabGroups is memoized => SmartField wouldn't rerender together with SmartFilterBar\n field: {\n component: SmartFilterField,\n props: {\n fieldDef: {\n isReadOnly: false,\n label: item.label,\n description: item.description\n },\n fieldProps: {\n isLight: true\n },\n hasConditionalDialog: filter.id !== FilterBarGroup.Parameters,\n showLabelDescription: true,\n storage,\n key: item.id, //todo: this looks suspicious, but is required for correct info load in smart field constructor , better investigate more due to the perf. reasons\n bindingContext: item.bindingContext,\n onChange: this.props.onFilterChange,\n onBlur: this.props.onFilterBlur\n }\n }\n };\n\n // add option to filter over empty values\n if (item.type === FieldType.LabelSelect) {\n filterBarItem.field.props.fieldProps.addEmptyItem = true;\n }\n\n if (isDefined(storage.data.predefinedFilters?.[item.id])) {\n // drilldown filters should disabled in filter bar\n filterBarItem.field.props.fieldProps.isDisabled = true;\n // filters should also be empty\n filterBarItem.field.props.fieldProps.value = undefined;\n }\n\n return filterBarItem;\n });\n\n return group;\n };\n\n getTabs = (): IFilterBarTab[] => {\n return this.props.storage.data.definition.filterBarDef.map((filter, index) => {\n const groups = this.props.storage.loading ? [] : this.getTabGroups(filter);\n\n return {\n id: filter.id,\n icon: filter.icon,\n title: filter.title,\n removePadding: filter.removePadding,\n customButtons: filter.customButtons,\n createQuery: filter.createQuery,\n showEditFiltersButton: filter.allowCustomFilters,\n groups\n };\n });\n };\n\n getTabGroups = memoize((filterGroup: IFilterGroupDef) => {\n const groupDefs: IFieldData[][] = [];\n const visibleFieldInfos = this.props.storage.getFilterGroupFieldInfos(filterGroup.id);\n\n const defaultGroup = visibleFieldInfos.filter(info => !info.description);\n const detailGroup = visibleFieldInfos.filter(info => info.description);\n\n if (this.props.shouldAutoSort) {\n defaultGroup?.sort((a, b) => compareString(a.label, b.label));\n detailGroup?.sort((a, b) => {\n // first, order by description\n // second, order by label\n const descriptionCompare = compareString(a.description as string, b.description as string);\n\n if (descriptionCompare !== 0) {\n return descriptionCompare;\n }\n\n return compareString(a.label, b.label);\n });\n }\n\n if (defaultGroup.length > 0) {\n groupDefs.push(defaultGroup);\n }\n\n if (detailGroup.length > 0) {\n groupDefs.push(detailGroup);\n }\n\n return groupDefs.map((def, idx) => {\n return this.createGroup(filterGroup, def);\n });\n }, (filter: IFilterGroupDef) => {\n const customFilters = this.props.storage.data.visibleFilters[filter.id];\n const path = this.props.storage.data.bindingContext?.getFullPath();\n return `${filter.id}::${path}::${customFilters.join(\"::\")}`;\n });\n\n handleTabChange = (selectedTab: string) => {\n this.setState({\n selectedTab\n });\n };\n\n renderCustomizationDialogTabs = () => {\n if (this.state.detailTabFilters.length === 0) {\n return null;\n }\n\n return ;\n };\n\n getSelectedFilters = (tabId: string) => {\n const filters = tabId === DEFAULT_TAB_ID ? this.state.availableFilters : this.state.detailTabFilters;\n\n return this.state.visibleFilters.filter(selectedFilter => {\n return filters.find(filter => filter.id === selectedFilter);\n });\n };\n\n render() {\n if (!this.props.storage || isObjectEmpty(this.props.storage.data)) {\n return null;\n }\n const { predefinedFilters } = this.props.storage;\n return (\n <>\n \n {this.state.isDialogOpen &&\n \n }\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"])(SmartFilterBar);","import { Optional, TRecordAny, TValue } from \"../../../global.types\";\nimport { IFieldDef, TInfoValue } from \"../FieldInfo\";\nimport i18next from \"i18next\";\nimport { TFieldDefinitionFactory } from \"@pages/PageUtils\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface IFieldData extends IFieldInfo {\n value?: TValue;\n selectedItems?: ISelectItem[];\n currentValue?: string;\n additionalData?: TRecordAny;\n}\n\n// complete filter definition\nexport interface IFilterDef extends Omit {\n isValueHelp?: boolean;\n /** Filter, that stores its value in variants per company. */\n isCompanyDependent?: boolean;\n factory?: TFieldDefinitionFactory;\n}\n\n// filter definition without the 'id' property, used in IFilterGroupDef.filterDefinition for less redundancy\nexport type TFilterDef = Optional;\n\n/** We only use two different groups in filter bar so far.\n * The id is sometimes used directly, better to keep them in enum. */\nexport enum FilterBarGroup {\n Parameters = \"Parameters\",\n Filters = \"Filters\"\n}\n\nexport interface IFilterBarButtonDef {\n id: string;\n title: string;\n iconName: string;\n}\n\nexport interface IFilterGroupDef {\n id: FilterBarGroup;\n /** Add icon button with possibility of adding custom filters*/\n allowCustomFilters: boolean;\n /** Add button with 'create query' text ---> allows user to create custom query*/\n createQuery: boolean;\n\n /** Indicates whether group is expanded by default */\n isExpanded?: boolean;\n icon: string;\n title: string;\n\n /** Removes inner padding from Field group -> should be part of custom rendered content */\n removePadding?: boolean;\n\n /** Definitions for all available filters,\n * those that are not used in defaultFilters will be available in the filter add/remove dialog */\n filterDefinition: Record;\n /** List of default filters */\n defaultFilters: string[];\n\n /** Custom buttons rendered in top right corner (before clearFilters, etc.. buttons)*/\n customButtons?: IFilterBarButtonDef[];\n\n /** Only filter parameters are cleared by default. Set true for Parameters groups, which should be cleared on variant change */\n clearOnVariantChange?: boolean;\n\n isValueHelp?: TInfoValue;\n}\n\nexport const getDefaultFilterGroupDef = (filterGroup: FilterBarGroup): Pick => {\n return {\n id: filterGroup,\n allowCustomFilters: filterGroup === FilterBarGroup.Filters,\n createQuery: filterGroup === FilterBarGroup.Filters,\n icon: filterGroup === FilterBarGroup.Filters ? \"Filter\" : \"Parameters\",\n title: i18next.t(`Common:General.${filterGroup}`)\n };\n};","import { isAbortException, TFetchFn } from \"@utils/oneFetch\";\nimport { createUrl } from \"@utils/url\";\nimport i18next from \"i18next\";\n\nimport { VALIDATE_DELETE_DEPENDENT_URL, VALIDATE_DELETE_URL } from \"../../../constants\";\nimport { TRecordAny } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport { TId } from \"../../table\";\nimport { isSystemEntityId } from \"../GeneralFieldDefinition\";\nimport { TDeleteCheckServiceResponse, TDeleteDependentCheckServiceResponse } from \"./SmartFormDeleteButton\";\n\ninterface IMap {\n system: TId[],\n user: TId[]\n}\n\nexport type TDeleteCheckError = TDeleteCheckServiceResponse | TDeleteDependentCheckServiceResponse;\n\nfunction isDependentEntity(bc: BindingContext): boolean {\n return !!bc.getParent();\n}\n\nasync function getValidateDeleteBackendErrors(args: IValidateDeleteArgs): Promise {\n const { bindingContext, ids, fetchFn, queryParams } = args;\n const fetchFunction = fetchFn ?? customFetch;\n if (!isDependentEntity(bindingContext)) {\n let url = VALIDATE_DELETE_URL;\n\n if (queryParams) {\n url = createUrl(url, queryParams);\n }\n\n try {\n const res = await fetchFunction(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n EntityTypeCode: bindingContext.getEntityType().getName(),\n EntitiesIds: ids\n })\n });\n\n const data = await res.json();\n return Array.isArray(data) ? data as TDeleteCheckServiceResponse[] : [];\n } catch (e) {\n if (isAbortException(e)) {\n // if request was aborted, rethrow the exception to be handled in the caller\n throw (e);\n }\n\n // if request fail, treat entities as deletable\n // worst case, delete request with fail with some error explain message\n return [];\n }\n } else {\n // so far, probably only for ChartOfAccounts/Accounts\n try {\n const res = await fetchFunction(VALIDATE_DELETE_DEPENDENT_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n MainEntityTypeCode: bindingContext.getRootParent().getEntityType().getName(),\n MainEntityId: bindingContext.getParent().getKey(),\n DependentEntityTypeCode: bindingContext.getEntityType().getName(),\n DependentEntitiesIds: ids\n })\n });\n\n const data = await res.json();\n return Array.isArray(data) ? data as TDeleteDependentCheckServiceResponse[] : [];\n } catch (e) {\n if (isAbortException(e)) {\n // if request was aborted, rethrow the exception to be handled in the caller\n throw (e);\n }\n\n // if request fail, treat entities as deletable\n // worst case, delete request with fail with some error explain message\n return [];\n }\n }\n}\n\nexport interface IValidateDeleteArgs {\n bindingContext: BindingContext;\n ids: TId[];\n fetchFn?: TFetchFn;\n queryParams?: TRecordAny;\n}\n\n/** Returns if the given entities can be deleted or reasons why they can't be. */\nexport const validateDelete = async (args: IValidateDeleteArgs): Promise => {\n const { bindingContext, ids, fetchFn, queryParams } = args;\n const errors: TDeleteCheckError[] = [];\n const idMap: IMap = {\n system: [],\n user: []\n };\n ids.forEach(id => {\n idMap[isSystemEntityId(id) ? \"system\" : \"user\"].push(id);\n });\n\n if (idMap.user.length) {\n const beErrors = await getValidateDeleteBackendErrors({\n bindingContext,\n ids: idMap.user,\n fetchFn,\n queryParams\n });\n errors.push(...beErrors);\n }\n\n if (idMap.system.length) {\n const IdProp = isDependentEntity(bindingContext) ? \"DependentEntityId\" : \"EntityId\";\n const systemEntityError = i18next.t(\"Common:Errors.SystemEntity\");\n const deleteCheckResponse: TDeleteCheckError[] = idMap.system.map(id => ({\n [IdProp]: parseInt(id.toString()),\n ErrorCodes: [systemEntityError]\n } as unknown as TDeleteCheckError));\n errors.push(...deleteCheckResponse);\n }\n\n return errors;\n};","import styled from \"styled-components/macro\";\n\nexport const WarningList = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 5px 0 0 0;\n`;","import { getOneFetch } from \"@utils/oneFetch\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { FETCH_ABORT_ERROR } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Status } from \"../../../enums\";\nimport BindingContext, { areBindingContextsDifferent } from \"../../../odata/BindingContext\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { IEditOverride } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IAlertProps } from \"../../alert/Alert\";\nimport { Button } from \"../../button\";\nimport { getInfoValue, TInfoValue } from \"../FieldInfo\";\nimport { IValidateDeleteArgs, validateDelete } from \"./SmartDelete.utils\";\nimport { WarningList } from \"./SmartFormDeleteButton.styles\";\n\ninterface IProps {\n storage: FormStorage;\n isDisabled?: TInfoValue;\n onClick?: () => void;\n}\n\ninterface IState {\n isDeletable: boolean;\n errors: string[];\n}\n\nexport interface TDeleteCheckServiceResponse {\n EntityId: number;\n ErrorCodes: string[];\n}\n\nexport interface TDeleteDependentCheckServiceResponse {\n DependentEntityId: number;\n ErrorCodes: string[];\n}\n\nclass SmartFormDeleteButton extends React.Component {\n static contextType = AppContext;\n lastBindingContext: BindingContext;\n lastFormUuid: string;\n ignoreNextUuidChange: boolean;\n lastFormEditOverride: IEditOverride;\n oneFetch = getOneFetch();\n\n state: IState = {\n isDeletable: false,\n errors: null\n };\n\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: IProps & WithTranslation, prevState: IState) {\n const bcChanged = areBindingContextsDifferent(this.lastBindingContext, this.props.storage.data.bindingContext);\n const uuIdChanged = this.lastFormUuid !== this.props.storage.data.uuid;\n\n if (\n bcChanged\n // reload if the form has been saved (changed)\n || (!this.ignoreNextUuidChange && uuIdChanged)\n || this.lastFormEditOverride !== this.props.storage.getEditOverride()\n ) {\n this.init();\n }\n\n // ignore first form load (uuid change) after bc has changed\n // to prevent validateDelete from calling two times\n if (bcChanged) {\n this.ignoreNextUuidChange = true;\n }\n\n if (uuIdChanged) {\n this.ignoreNextUuidChange = false;\n this.lastFormUuid = this.props.storage.data.uuid;\n }\n }\n\n componentWillUnmount() {\n this.oneFetch?.abort();\n }\n\n init = async () => {\n if (this.state.isDeletable) {\n this.setState({\n isDeletable: false,\n errors: null\n });\n }\n\n const bc = this.props.storage.data.bindingContext;\n\n if (!bc || bc.isNew()) {\n return;\n }\n\n this.lastBindingContext = bc;\n this.lastFormUuid = this.props.storage.data.uuid;\n this.lastFormEditOverride = (this.props.storage as FormStorage).getEditOverride();\n\n const args: IValidateDeleteArgs = {\n bindingContext: bc,\n ids: [bc.getKey()],\n fetchFn: this.oneFetch.fetch\n };\n\n // use editOverride (currently only used for, FORCE_VAT_LOCK_OVERRIDE_PARAM),\n // but can be changed to something more universal if needed\n const editOverride = this.lastFormEditOverride;\n\n if (editOverride) {\n // query param will change the validation logic on the backend\n args.queryParams = {\n [editOverride.id]: true\n };\n }\n\n try {\n const errors = await validateDelete(args);\n\n this.setState({\n // same behavior as in the table -> if no errors are returned for given\n // entity or first response is without errors, manage the entity as deletable\n isDeletable: !errors?.length || errors[0]?.ErrorCodes?.length === 0,\n errors: errors?.[0]?.ErrorCodes ?? []\n });\n } catch (e) {\n if (e.name !== FETCH_ABORT_ERROR) {\n throw (e);\n }\n }\n\n };\n\n getAlert = memoizeOne((): IAlertProps => {\n if (!this.state.errors || this.state.errors.length === 0\n || this.props.storage.isDisabled || this.state.isDeletable) {\n return null;\n }\n\n return {\n status: Status.Warning,\n isSmall: true,\n title: (\n <>\n {this.props.t(\"Common:Errors.CannotDeleteTitle\")}\n \n {this.state.errors.map(error => {\n const key = `Error:${error}`;\n\n return (\n // sometimes, the message is already translated\n
  • • {i18next.exists(key) ? this.props.t(key) : error}
  • \n );\n })}\n
    \n \n )\n };\n }, () => [this.state.errors, this.props.storage.isDisabled, this.props.storage.data.bindingContext.toString(), this.props.tReady]);\n\n isDisabled = (): boolean => {\n return getInfoValue(this.props, \"isDisabled\", {\n storage: this.props.storage,\n bindingContext: this.props.storage.data.bindingContext,\n context: this.context\n }) || this.props.storage.isDisabled || !this.state.isDeletable;\n };\n\n isBusy = (): boolean => {\n return !!this.props.storage.getCustomData()?.isDeleteButtonBusy;\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Document\", \"Error\"])(SmartFormDeleteButton);","import React from \"react\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getDisabledProps, getInfoValue, TInfoValue } from \"../FieldInfo\";\nimport { Button } from \"../../button\";\nimport { IAlertProps } from \"../../alert/Alert\";\nimport { ActionButtonPosition } from \"../smartFastEntryList\";\n\nexport interface IActionItem {\n id: string;\n icon?: React.ReactElement;\n title: string;\n isVisible?: TInfoValue;\n isDisabled?: TInfoValue;\n disabledAlert?: TInfoValue>;\n hoverAlert?: TInfoValue>;\n // true by default\n isTransparent?: boolean;\n position?: ActionButtonPosition;\n}\n\ninterface IProps {\n storage: FormStorage,\n action: IActionItem;\n className?: string;\n onClick: (id: string) => void;\n}\n\nexport class SmartActionButton extends React.Component {\n\n handleClick = (): void => {\n this.props.onClick(this.props.action.id);\n };\n\n render() {\n const { action, storage } = this.props;\n const { icon, title } = action;\n const { isDisabled, disabledAlert } = getDisabledProps(this.props.action, { storage, item: action });\n const hoverAlert = getInfoValue(this.props.action, \"hoverAlert\");\n\n return (\n \n );\n }\n}","import { ICachedFieldState } from \"@odata/Data.utils\";\nimport { getPageViewMode } from \"@pages/PageUtils\";\nimport { isDefined } from \"@utils/general\";\nimport React from \"react\";\n\nimport { FieldType, PageViewMode } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getInfoValue, IFieldDef, isFieldDisabledWithoutLock, isVisible } from \"../FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange, ISmartFieldTempDataActionArgs } from \"../smartField/SmartField\";\nimport { IFormGroupDef } from \"./SmartFormGroup\";\nimport { forceRepaintElement, isSafariBrowser } from \"@utils/dom.utils\";\nimport { throttle } from \"lodash\";\n\nexport interface ISmartFormGroupBaseProps {\n bindingContext: BindingContext;\n def: IFormGroupDef;\n title?: string;\n\n storage: FormStorage;\n\n isSimple?: boolean;\n\n onChange: (args: ISmartFieldChange) => void;\n onTemporalChange?: (args: ISmartFieldChange) => void;\n onCancel?: (args: ISmartFieldTempDataActionArgs) => void;\n onConfirm?: (args: ISmartFieldTempDataActionArgs) => void;\n onFieldStateChange?: (bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState) => void;\n onBlur?: (args: ISmartFieldBlur) => void;\n}\n\n\nexport default abstract class SmartFormGroupBase extends React.Component {\n _ref = React.createRef();\n\n getFieldDefinition(rowItem: IFieldDef): IFieldDef {\n let path = rowItem.id;\n\n if (this.props.def.collection) {\n path = `${this.props.def.collection}/${path}`;\n }\n\n return this.props.storage.data.mergedDefinition?.[path]?.fieldDef || rowItem;\n }\n\n repaintFieldsWrapper = throttle((): void => {\n if (this._ref.current) {\n forceRepaintElement(this._ref.current);\n }\n }, 100);\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n args.groupId = this.props.def.id;\n await this.props.onBlur?.(args);\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n e.groupId = this.props.def.id;\n if (this.props.def.togglePropPath && e.bindingContext.getPath(true) === this.props.def.togglePropPath) {\n this.props.storage.addActiveGroupByKey(this.props.def.id);\n }\n this.props.onChange?.(e);\n };\n\n handleTemporalChange = (e: ISmartFieldChange): void => {\n e.groupId = this.props.def.id;\n this.props.onTemporalChange?.(e);\n };\n\n handleCancel = (args: ISmartFieldTempDataActionArgs): void => {\n this.props.onCancel?.({\n bindingContext: args.bindingContext,\n groupId: this.props.def.id\n });\n };\n\n handleFieldStateChange = (bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState): void => {\n if (this._ref.current && isSafariBrowser() && state.isVisible !== prevState.isVisible) {\n this.repaintFieldsWrapper();\n }\n this.props.onFieldStateChange?.(bc, state, prevState);\n };\n\n handleConfirm = (args: ISmartFieldTempDataActionArgs): void => {\n this.props.onConfirm?.({\n bindingContext: args.bindingContext,\n groupId: this.props.def.id\n });\n };\n\n getCollapsedFieldsVisibility(def: IFieldDef): {\n hasVisibleCollapsedFields: boolean,\n hasEnabledCollapsedFields: boolean,\n hasEditableFields: boolean\n } {\n const modelBc = this.props.storage.data.bindingContext;\n\n const hasVisibleCollapsedFields = !!def.collapsedRows?.find(collapsedRow => {\n return !!collapsedRow.find(field => {\n const fieldInfo = this.props.storage.getInfo(modelBc.navigate(field.id));\n return isVisible({\n info: fieldInfo,\n storage: this.props.storage,\n bindingContext: fieldInfo.bindingContext\n });\n });\n });\n const hasEnabledCollapsedFields = hasVisibleCollapsedFields && !!def.collapsedRows?.find(collapsedRow => {\n return !!collapsedRow.find(field => {\n const bc = modelBc.navigate(field.id);\n const fieldInfo = this.props.storage.getInfo(bc);\n return !isFieldDisabledWithoutLock(fieldInfo, this.props.storage, bc);\n });\n });\n\n const hasEditableFields = !!def.collapsedRows?.find(collapsedRow => {\n return !!collapsedRow.find(field => {\n const fieldInfo = this.props.storage.getInfo(modelBc.navigate(field.id));\n return !getInfoValue(fieldInfo, \"isReadOnly\", {\n info: fieldInfo,\n storage: this.props.storage,\n bindingContext: fieldInfo.bindingContext\n });\n });\n });\n\n return {\n hasVisibleCollapsedFields,\n hasEnabledCollapsedFields,\n hasEditableFields\n };\n }\n\n getFieldsVisibility(): boolean {\n const modelBc = this.props.storage.data.bindingContext;\n const rootBc = this.props.def.collection ? modelBc.navigate(this.props.def.collection) : modelBc;\n\n const pageViewMode = getPageViewMode();\n return !!this.props.def.togglePropPath\n || (!!this.props.def.lineItems && (pageViewMode !== PageViewMode.FormReadOnly || this.props.storage.getValueByPath(this.props.def.lineItems.collection)?.length > 0))\n || (!this.props.def.lineItems && !this.props.def.rows) || !!this.props.def.rows?.find(row => {\n return !!row.find(field => {\n const bc = rootBc.navigate(field.id);\n const fieldInfo = this.props.storage.getInfo(bc);\n const visible = isVisible({\n bindingContext: bc,\n info: fieldInfo,\n storage: this.props.storage,\n context: this.props.storage.context\n });\n\n if (fieldInfo.type !== FieldType.EditableText) {\n return visible;\n }\n\n // hide group, if PageViewMode.FormReadOnly and only empty EditableText is inside\n return visible && (pageViewMode !== PageViewMode.FormReadOnly || isDefined(this.props.storage.getValue(bc)));\n });\n });\n }\n}\n","import styled from \"styled-components/macro\";\nimport { T_PLAIN_small } from \"../../../global.style\";\nimport { TOP_PADDING } from \"../../header/Header.styles\";\n\nexport const StyledVariantVersionWrapper = styled.div `\n padding-top: ${TOP_PADDING}px;\n margin-left: 18px;\n`;\n\nexport const HeaderInfo = styled.div`\n flex-basis: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const HeaderInfoText = styled.div<{ hasTooltip: boolean }>`\n margin-left: ${props => props.hasTooltip ? \"5px\" : \"0\"};\n ${T_PLAIN_small};\n`;\n","import React, { ReactElement } from \"react\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport SummaryItem from \"../../summary/SummaryItem\";\nimport { ISmartFieldChange } from \"../smartField/SmartField\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getInfoValue, IFieldInfoProperties, isVisible, TInfoValue } from \"../FieldInfo\";\nimport { TValue } from \"../../../global.types\";\nimport { TFormatterFn } from \"../smartTable/SmartTable.utils\";\nimport { DefaultTheme } from \"styled-components\";\nimport { Status, TextAlign } from \"../../../enums\";\nimport { isDateType, isNumericType } from \"@evala/odata-metadata/src\";\nimport { FormattingTarget, IFormatOptions } from \"@odata/OData.utils\";\nimport { getDisabledFormPageAlert } from \"../../../views/formView/Form.utils\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IAlertProps } from \"../../alert/Alert\";\nimport { IProps as IIconProps } from \"../../icon\";\n\ninterface IProps {\n item: ISummaryItem;\n // take everything from storage, so that automatic force update via ref can work properly\n storage: FormStorage;\n onChange?: (args: ISmartFieldChange) => void;\n ref?: any;\n}\n\nexport interface ISummaryItemEditProps extends Pick {\n bindingContext: BindingContext;\n onClose: () => void;\n}\n\nexport interface ISummaryItem extends Omit {\n id: string;\n // Summary items are usually localContext because of different styling and other fieldInfoProperties,\n // but we need to know, which fields are \"included\" (in some editable dialog, etc...) to e.g. propagate\n // errors from these fields\n containedFields?: string[];\n value?: TValue;\n color?: string;\n colorFormatter?: TFormatterFn;\n additionalData?: any;\n renderEdit?: (props: ISummaryItemEditProps) => ReactElement;\n link?: TInfoValue;\n updateFromLiveValue?: boolean;\n // use different formatter from FieldInfo, so that we can return anything in summary item\n formatter?: (val: TValue, args?: IFormatOptions) => any;\n icon?: React.ComponentType;\n}\n\ninterface IState {\n isInEditMode: boolean;\n}\n\nclass SmartSummaryItem extends React.Component {\n static contextType = AppContext;\n\n state: IState = {\n isInEditMode: false\n };\n\n constructor(props: IProps) {\n super(props);\n\n props.storage.addRef(this, this.bindingContext);\n }\n\n get bindingContext(): BindingContext {\n return this.props.storage.data.bindingContext?.navigate(this.props.item.id);\n }\n\n componentWillUnmount() {\n this.props.storage.removeRef(this);\n }\n\n handleEdit = (): void => {\n this.setState({\n isInEditMode: true\n });\n };\n\n handleCloseEditMode = (): void => {\n this.setState({\n isInEditMode: false\n });\n };\n\n isDisabled = (onlyStorageDisabled = false): boolean => {\n const isDisabled = !onlyStorageDisabled && getInfoValue(this.props.item, \"isDisabled\", {\n storage: this.props.storage,\n data: this.props.storage.data.entity,\n context: this.context\n });\n return isDisabled || this.props.storage?.isDisabled;\n };\n\n isReadOnly = (): boolean => {\n const entityIsReadOnly = getInfoValue(this.props.storage?.data?.definition, \"isReadOnly\", {\n storage: this.props.storage,\n data: this.props.storage.data.entity\n });\n const itemIsReadOnly = getInfoValue(this.props.item, \"isReadOnly\", {\n storage: this.props.storage,\n data: this.props.storage.data.entity\n });\n return itemIsReadOnly || entityIsReadOnly || this.props.storage.isReadOnly;\n };\n\n isVisible = (): boolean => {\n return isVisible({\n info: this.props.item,\n bindingContext: this.bindingContext,\n storage: this.props.storage,\n data: this.props.storage.data.entity\n });\n };\n\n textAlign = (): TextAlign => {\n const fieldInfo = this.props.storage?.getInfo(this.bindingContext);\n const property = this.bindingContext.getProperty();\n return fieldInfo?.textAlign ?? (isNumericType(property) || isDateType(property) ? TextAlign.Right : TextAlign.Left);\n };\n\n getSummaryProps = (item: ISummaryItem, bc: BindingContext) => {\n const { storage } = this.props;\n const { entity, origEntity, bindingContext } = storage.data;\n\n let value = storage.getValue(bc, {\n // don't live update (non editable) summary items, only show saved values\n dataStore: item.renderEdit || item.updateFromLiveValue ? entity : origEntity,\n skipTemporaryValue: true\n });\n let color;\n\n if (item.colorFormatter) {\n color = item.colorFormatter(value, { entity, storage }) as string;\n } else if (item.color) {\n color = item.color;\n }\n\n if (color) {\n color = storage.theme[color as keyof DefaultTheme] || color;\n }\n\n if (item.formatter) {\n value = item.formatter(value, { entity, storage, target: FormattingTarget.Summary }) as string;\n }\n\n // check error\n const containedFieldsBc = (item.containedFields ?? []).map(path => bindingContext.navigate(path));\n const errors = [bc, ...containedFieldsBc]\n .map(fieldBc => storage.getError(fieldBc))\n .filter(error => !!error); // filter out undefined error\n\n return {\n value,\n color,\n error: errors[0]\n };\n };\n\n getDisabledAlert = (): IAlertProps => {\n if (!this.isDisabled()) {\n return null;\n }\n\n if (this.isDisabled(true)) {\n return getDisabledFormPageAlert();\n }\n\n const disabledText = getInfoValue(this.props.item, \"disabledText\", {\n storage: this.props.storage,\n data: this.props.storage.data.entity,\n context: this.context\n });\n\n return disabledText ? {\n status: Status.Warning,\n title: disabledText,\n isSmall: true,\n useFade: true\n } : null;\n };\n\n render() {\n if (!this.isVisible()) {\n return null;\n }\n\n const { item, storage, onChange } = this.props;\n const bindingContext = this.bindingContext;\n const data = this.getSummaryProps(item, bindingContext);\n\n const link = getInfoValue(item, \"link\", { storage: this.props.storage });\n return (\n <>\n \n {this.state.isInEditMode && item.renderEdit?.({\n bindingContext, storage, onChange, item,\n onClose: this.handleCloseEditMode\n })}\n \n );\n }\n}\n\nexport default SmartSummaryItem;","import { getDetailRouteByEntityType } from \"@odata/EntityTypes\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { MetadataLockType, metadataRuleTypes } from \"@pages/documents/Document.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { FormMode, IconSize, Status } from \"../../../enums\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { getDisabledFormPageAlert, getSummaryItems } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport Clickable from \"../../clickable\";\nimport { getDrillDownVariant } from \"../../drillDown/DrillDown.utils\";\nimport Header, { IHeaderIcon } from \"../../header/Header\";\nimport Summary from \"../../summary/Summary\";\nimport { TooltipIconInfo } from \"../../tooltipIcon\";\nimport VariantSelector from \"../../variantSelector/VariantSelector\";\nimport { ISmartFieldChange } from \"../smartField/SmartField\";\nimport SmartSummaryItem, { ISummaryItem } from \"../smartSummaryItem/SmartSummaryItem\";\nimport { HeaderInfo, HeaderInfoText, StyledVariantVersionWrapper } from \"./SmartHeader.styles\";\nimport { IGetSmartHeaderCustomInfo } from \"./SmartHeader.utils\";\n\ninterface IProps extends WithTranslation {\n title?: string;\n subtitle?: string;\n subtitleStatus?: Status;\n storage?: StorageModel;\n className?: string;\n shouldHideVariant?: boolean;\n customHeaderContent?: React.ReactElement;\n hotspotId?: string;\n\n icons?: IHeaderIcon[],\n\n // can be used to define custom header info from extended FormView\n getCustomHeaderInfo?: (storage: StorageModel) => IGetSmartHeaderCustomInfo;\n\n onChange?: (args: ISmartFieldChange) => void;\n ref?: React.Ref;\n}\n\nclass SmartHeader extends React.Component {\n /** The purpose of the info text is to provide an explanation for why certain form fields are disabled.\n * It does so by checking for presence of particular error messages for disabled fields from the evala.metadata. */\n getInfo = memoizeOne(() => {\n if (!this.props.storage) {\n return {};\n }\n const foundCodes = new Set();\n const storage = this.props.storage as FormStorage;\n let infoText = \"\";\n const infoTooltipLines: React.ReactNode[] = [];\n\n for (const ruleType of metadataRuleTypes) {\n for (const rules of Object.values(storage?.data?.metadata?.metadata?.[ruleType] ?? {})) {\n for (const rule of rules) {\n if (!foundCodes.has(rule.ErrorCode)) {\n\n const isProcessed = [\n MetadataLockType.DocumentCannotBeUpdatedInClosedFiscalYear,\n MetadataLockType.InternalDocumentCanBeEditedOnlyByInternalFeatureProcessing\n ].includes(rule.ErrorCode as MetadataLockType) || this.props.i18n.exists(`Common:DisabledFieldsInfoTooltip.Start${rule.ErrorCode}`);\n if (!isProcessed) {\n console.warn(`SmartHeader.getInfo: Evala metadata error code (${rule.ErrorCode}) with \"Start\" prefix missing in translations. Add it into Common.toml DisabledFieldsInfo section`);\n continue;\n }\n foundCodes.add(rule.ErrorCode);\n\n if (foundCodes.size > 1) {\n infoTooltipLines.push(
    );\n }\n\n const uniqLinkedEntities = rule.LinkedEntities?.filter((linkedEntity, index, self) =>\n self.findIndex(t => t.Id === linkedEntity.Id) === index);\n\n if (rule.ErrorCode === MetadataLockType.DocumentCannotBeUpdatedInClosedFiscalYear && isCashBasisAccountingCompany(storage.context)) {\n infoTooltipLines.push(this.props.t(`Common:DisabledFieldsInfoTooltip.CbaDocumentCannotBeUpdatedInClosedYear`, { year: rule.LinkedEntities?.[0]?.DisplayName }));\n } else if (rule.ErrorCode === MetadataLockType.InternalDocumentCanBeEditedOnlyByInternalFeatureProcessing) {\n infoTooltipLines.push(this.props.t(`Common:DisabledFieldsInfoTooltip.InternalDocumentCanBeEditedOnlyByInternalFeatureProcessing`));\n } else {\n infoTooltipLines.push((\n \n {`${this.props.t(`Common:DisabledFieldsInfoTooltip.Start${rule.ErrorCode}`)}`}\n {uniqLinkedEntities.map((linkedEntity, index) => {\n let route = \"\";\n\n route = getDetailRouteByEntityType(linkedEntity.TypeName as EntityTypeName, linkedEntity.Id, true);\n\n return (\n \n \n {` ${linkedEntity.DisplayName}`}\n \n {index < uniqLinkedEntities.length - 1 ? \", \" : \"\"}\n \n );\n })}\n {`. ${this.props.t(`Common:DisabledFieldsInfoTooltip.End${rule.ErrorCode}`)}`}\n \n ));\n }\n }\n }\n }\n }\n\n for (const errorCode of foundCodes) {\n const tKey = `Common:DisabledFieldsInfo.${errorCode}`;\n\n if (this.props.i18n.exists(tKey)) {\n if (!infoText) {\n infoText += `${this.props.t(\"Common:DisabledFieldsInfo.InfoStart\")} `;\n } else if (infoText) {\n infoText += \" / \";\n }\n\n infoText += this.props.t(tKey);\n } else {\n console.warn(`SmartHeader.getInfo: Evala metadata error code (${errorCode}) missing in translations. Add it into Common.toml DisabledFieldsInfo section`);\n }\n }\n\n return { infoText, infoTooltip: infoTooltipLines };\n }, () => {\n const storage = this.props.storage as FormStorage;\n\n return [storage?.data?.metadata?.metadata?.EnabledPropertyRules, storage?.data?.metadata?.metadata?.DisabledPropertyRules];\n });\n\n renderInfoText = () => {\n if (this.props.storage && (this.props.storage.isReadOnly || (this.props.storage as FormStorage).formMode === FormMode.AuditTrail)) {\n return null;\n }\n\n const {\n infoText,\n infoTooltip\n } = this.props.getCustomHeaderInfo?.(this.props.storage) ?? this.getInfo();\n\n\n if (!infoText) {\n return null;\n }\n\n return (\n \n {infoTooltip &&\n \n {infoTooltip}\n \n }\n \n {infoText}\n \n \n );\n };\n\n render() {\n const variantSelector = (\n \n \n \n );\n const beforeIconsContent = this.props.shouldHideVariant ? this.props.customHeaderContent : variantSelector;\n const summaryItems: ISummaryItem[] = getSummaryItems(this.props.storage as FormStorage);\n const summaryContent = (summaryItems || []).length > 0 ? (\n \n {summaryItems.map(summaryItem => {\n return (\n \n );\n })}\n \n ) : null;\n const infoTextContent = this.renderInfoText();\n const afterIconsContent = (summaryContent || infoTextContent) ? (\n <>\n {summaryContent}\n {infoTextContent}\n \n ) : null;\n\n return (\n \n );\n }\n}\n\nexport default withTranslation([\"Common\"], { withRef: true })(SmartHeader);","import { getEntitySetByDocumentType, getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport { IDocumentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getIntentNavParams } from \"../../drillDown/DrillDown.utils\";\nimport { IGetValueArgs } from \"../FieldInfo\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\n// enhance items with intent links\nexport const transformPairingSelectItems = (items: ISelectItem[], args: IGetValueArgs) => {\n return items.map(item => {\n const docType = (item.additionalData as IDocumentEntity).DocumentTypeCode as DocumentTypeCode;\n const entitySetName = getEntitySetByDocumentType(docType);\n const entityType = args.storage.oData.getMetadata().entitySets[entitySetName].getType();\n const route = getRouteByDocumentType(docType);\n const params = getIntentNavParams({\n route: `${route}/${item.id}`,\n context: args.storage.context,\n storage: args.storage\n });\n\n return {\n ...item,\n additionalData: {\n ...item.additionalData,\n _metadata: {\n \"\": { type: `#${entityType.getFullName()}` }\n }\n },\n link: params\n };\n });\n};","import { HotspotViewIds } from \"@components/hotspots/HotspotViewIds\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\n\nimport BindingContext from \"../../../odata/BindingContext\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../../busyIndicator/withBusyIndicator\";\nimport { IRow } from \"../../table\";\nimport SelectionTableViewBase, { ISelectionTableViewProps } from \"../SelectionTableViewBase\";\n\nexport interface IPairingDocumentTableViewProps extends ISelectionTableViewProps, WithBusyIndicator {\n}\n\nclass PairingDocumentTableView extends SelectionTableViewBase {\n _hotspotContextId = HotspotViewIds.PairingDocTableView;\n\n getRowEntitySet = (row: IRow): EntitySetName => {\n return getEntitySetByDocumentType(row.customData.entity.DocumentType?.Code);\n };\n\n getCorrectBindingContext = (bindingContext: BindingContext, row: IRow): BindingContext => {\n return bindingContext.createNewBindingContext(this.getRowEntitySet(row)).addKey(bindingContext.getKey());\n };\n\n // change the bc different caused by \"getCorrectBindingContext\" back to the entity set of the table rows\n getSelectedRows = memoizeOne(() => {\n const oldBc = this.props.storage.data.rowBindingContext;\n const bc = oldBc?.createNewBindingContext(this.props.storage.data.bindingContext.getPath()).addKey(oldBc.getKey());\n\n return bc ? [bc] : [];\n }, () => [this.props.storage.data.rowBindingContext]);\n\n handleRowSelect = (bindingContext: BindingContext): void => {\n const correctedBindingContext = this.getCorrectBindingContext(bindingContext, this.getRow(bindingContext));\n this.props.onRowSelect?.(correctedBindingContext);\n };\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PairingDocumentTableView);\n","import { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport React from \"react\";\n\nimport { PageViewMode } from \"../../../enums\";\nimport { TDefinitionFn } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport DialogPage from \"../../../pages/DialogPage\";\nimport Dialog from \"../../dialog/Dialog\";\nimport PairingDocumentTableView, { IPairingDocumentTableViewProps } from \"./PairingDocumentTableView\";\n\nexport interface ISmartPairingSelectSharedProps {\n onPair?: (selected: BindingContext[], entities: IEntity[]) => void;\n dialogTableViewProps?: Pick;\n getDefinition: TDefinitionFn;\n}\n\nexport interface ISmartPairingSelectBaseProps extends ISmartPairingSelectSharedProps {\n isSingleSelect: boolean;\n selectedItems: BindingContext[];\n renderSelect: (onIconClick: (e: React.MouseEvent) => void) => React.ReactElement;\n\n fieldInfo: IFieldInfo;\n bindingContext: BindingContext;\n storage?: Model;\n}\n\ninterface IState {\n isDialogOpen: boolean;\n}\n\n/** Combination of Select and Dialog to pick one or multiple documents for pairing.\n * Hardcoded for documents, but could be changed to be used with anything. */\nexport default class SmartPairingSelectBase extends React.Component {\n state: IState = {\n isDialogOpen: false\n };\n\n handleIconClick = (e: React.MouseEvent): void => {\n // prevent select from opening\n e.preventDefault();\n\n this.setState({\n isDialogOpen: true\n });\n };\n\n handleCloseDialog = (): void => {\n this.setState({\n isDialogOpen: false\n });\n };\n\n handlePairing = (selected: BindingContext[], entities: IEntity[]): void => {\n const updatedPairedItems = entities.map((entity, index) => {\n const entityBc = selected[index];\n\n return {\n ...entity,\n _metadata: {\n \"\": { type: `#${entityBc.getEntityType().getFullName()}` }\n }\n };\n });\n\n this.props.onPair?.(selected, updatedPairedItems);\n };\n\n renderDialog = (): React.ReactElement => {\n const tableViewProps: IPairingDocumentTableViewProps = {\n selectedItems: this.props.selectedItems,\n onClose: this.handleCloseDialog,\n onSelection: this.handlePairing,\n isSingleSelect: this.props.isSingleSelect,\n ...this.props.dialogTableViewProps\n };\n\n return (\n \n \n \n );\n };\n\n render() {\n return (\n <>\n {this.state.isDialogOpen && this.renderDialog()}\n {this.props.renderSelect(this.handleIconClick)}\n \n );\n }\n}","import React from \"react\";\nimport { IMultiSelectProps, MultiSelect } from \"../../inputs/select/MultiSelect\";\nimport SmartSelectBase, { ISmartSelectBaseProps } from \"./SmartSelectBase\";\n\nexport interface ISmartMultiSelectProps extends ISmartSelectBaseProps, Omit {\n}\n\nclass SmartMultiSelect extends React.Component {\n\n render = () => {\n const passSelectProps = {\n withoutMainToggle: this.props.withoutMainToggle\n };\n\n return (\n \n );\n };\n}\n\nexport { SmartMultiSelect };","import React from \"react\";\nimport { BasicSelect, IProps as ISelectProps } from \"../../inputs/select/BasicSelect\";\nimport { CaretIcon } from \"../../icon\";\nimport { IconSize } from \"../../../enums\";\nimport SmartSelectBase, { ISmartSelectBaseProps } from \"./SmartSelectBase\";\n\nexport interface ISmartSelectProps extends ISmartSelectBaseProps, Omit {\n}\n\nconst icon = ;\n\nclass SmartSelect extends React.Component {\n\n render() {\n const passSelectProps = {\n closeOnSelection: true,\n openOnClick: true,\n inputIcon: this.props.inputIcon ?? icon\n };\n\n return (\n \n );\n }\n}\n\nexport { SmartSelect };","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { isNumericType } from \"@evala/odata-metadata/src\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { ExpandQueryBuilder, OData } from \"@odata/OData\";\nimport { formatValue, prepareQuery } from \"@odata/OData.utils\";\nimport { CacheCleaner, memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { isDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\n\nimport { AUTOCOMPLETE_SUG_ROWS } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { CacheStrategy, ODataFilterFunction } from \"../../../enums\";\nimport { RequireKeys } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport BindingContext, { createBindingContext, IEntity } from \"../../../odata/BindingContext\";\nimport customFetch from \"../../../utils/customFetch\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { buildTreeFromAllItems, getItemsForRenderCallbackArgs } from \"../../inputs/select/SelectAPI\";\nimport { getInfoValue, IFieldDef } from \"../FieldInfo\";\nimport { getFormattedValues, prepareColumns } from \"../smartTable/SmartTable.utils\";\nimport {\n HIERARCHICAL_CHILDREN_PROP_NAME,\n HIERARCHICAL_PARENT_PROP_NAME\n} from \"@components/smart/smartSelect/SmartSelectAPI.types\";\n\n\ninterface IGetDataArgs {\n value?: string;\n oData: OData;\n storage: Model;\n context: IAppContext;\n isHierarchical?: boolean;\n bindingContext: BindingContext;\n fieldBindingContext: BindingContext;\n columns: IFieldDef[];\n convertedColumns: IFieldInfo[];\n queryColumns?: IFieldDef[];\n orderBy?: string;\n asc?: boolean;\n queryParams: Record;\n additionalProperties?: string[];\n filter?: string;\n filterFunction?: ODataFilterFunction;\n displayName?: string;\n idName?: string;\n entitySet?: string;\n info?: IFieldInfo;\n appContext: IAppContext;\n formatter?: any;\n language?: string;\n}\n\ninterface IGetDataArgsMemoized extends RequireKeys {\n}\n\ninterface IGetColumnsArgs {\n columns: IFieldDef[];\n displayName: string;\n appContext: IAppContext;\n bindingContext: BindingContext;\n}\n\nexport const getColumns = async ({ columns, displayName, appContext, bindingContext }: IGetColumnsArgs) => {\n let mergedColumns = columns;\n const displayNameColumn = { id: displayName };\n\n if (displayName) {\n if (mergedColumns && !mergedColumns.find(col => col.id === displayName)) {\n mergedColumns.push(displayNameColumn);\n } else if (!mergedColumns) {\n mergedColumns = [displayNameColumn];\n }\n } else {\n logger.warn(`getColumns: ${bindingContext.toString()} possibly missing displayName.`);\n }\n\n return await prepareColumns({\n bindingContext: bindingContext,\n context: appContext,\n columns: mergedColumns\n });\n};\n\nconst getAdditionalArgs = (args: IGetDataArgs) => {\n const keyPropertyName = args.idName ?? args.fieldBindingContext?.getKeyProperty().getName() ?? args.bindingContext.getKeyPropertyName();\n const displayName = args.displayName ?? keyPropertyName;\n\n return { keyPropertyName, displayName };\n};\n\ninterface IEndpointResult {\n Key: string;\n Value: any;\n}\n\nconst fetchItemsFromEndpoint = async (args: IGetDataArgsMemoized): Promise => {\n const endpoint = getInfoValue(args.info.fieldSettings, \"endpoint\", {\n info: args.info,\n context: args.appContext\n });\n\n const res = await customFetch(endpoint);\n const result: IEndpointResult[] = await res.json();\n const items = result.map(async ({ Key: key, Value: value }) => {\n const formattedLabel = args.info.formatter ? await args.info.formatter(key) : key;\n\n return {\n id: key,\n label: formattedLabel as string,\n additionalData: value\n };\n });\n\n return Promise.all(items);\n};\n\nconst fetchData = async (args: IGetDataArgsMemoized): Promise => {\n const queryBc = args.bindingContext;\n const { keyPropertyName } = getAdditionalArgs(args);\n const asc = args.asc ?? true;\n\n let query = prepareQuery({\n oData: args.oData,\n bindingContext: queryBc,\n fieldDefs: args.queryColumns ?? args.columns,\n settings: args.info.fieldSettings?.querySettings\n });\n\n if (args.isHierarchical) {\n query.expand(HIERARCHICAL_CHILDREN_PROP_NAME, (q: ExpandQueryBuilder) => {\n q.select(keyPropertyName).orderBy(args.orderBy, asc);\n }).expand(HIERARCHICAL_PARENT_PROP_NAME, (q: ExpandQueryBuilder) => {\n q.select(keyPropertyName).orderBy(args.orderBy, asc);\n });\n }\n\n if (args.queryParams) {\n query.queryParameters(args.queryParams);\n }\n\n const filters = [];\n if (args.value) {\n const isDisplayNumeric = isNumericType(queryBc.navigate(args.displayName).getProperty());\n const functionQuery = isDisplayNumeric ? `cast(${args.displayName}, 'Edm.String')` : args.displayName;\n const func = args.filterFunction ?? ODataFilterFunction.Startswith;\n\n query = query.top(AUTOCOMPLETE_SUG_ROWS);\n filters.push(`${func}(${functionQuery},'${args.value}')`);\n }\n\n args.filter && filters.push(args.filter);\n\n if (filters.length > 0) {\n query = query.filter(filters.join(\" AND \"));\n }\n\n if (args.orderBy) {\n query.orderBy(args.orderBy, asc);\n }\n\n try {\n const result = (await query.fetchData()) ?? { value: [] };\n return result.value;\n } catch (error) {\n // todo global error handling\n logger.error(\"error in fetchSuggestions\", error);\n return [];\n }\n};\n\nexport const transformItems = (args: IGetDataArgs, items: IEntity[]): ISelectItem[] => {\n const { keyPropertyName, displayName } = getAdditionalArgs(args);\n\n const selectItems = items.map((item: IEntity) => {\n const formattedValues = getFormattedValues({\n columns: args.convertedColumns,\n values: item,\n valuesBindingContext: args.bindingContext\n });\n\n // always add entity key property into the values\n if (!(keyPropertyName in formattedValues)) {\n formattedValues[keyPropertyName] = item[keyPropertyName];\n }\n\n const keyPropertyValue = item[keyPropertyName];\n let propertyValue = formattedValues[displayName];\n if (args.info?.formatter && args.columns.length > 1) {\n propertyValue = formatValue(item, args.info, {\n entity: item,\n item: item,\n storage: args.storage\n });\n }\n const tabularData = (args.columns || []).map(column => formattedValues[column.id]);\n const additionalData = item;\n\n return {\n groupId: \"db\",\n id: keyPropertyValue,\n label: propertyValue,\n tabularData,\n additionalData\n };\n });\n return args.info?.fieldSettings?.transformFetchedItems ? args.info.fieldSettings.transformFetchedItems(selectItems, args) : selectItems;\n};\n\n/***\n * Force smart selects to reload their items\n * by removing 'items' from field info and clearing cache for given cache strategy.\n * Rerender SmartSelect after this (e.g. by calling model.refreshFields) to fetch new items\n */\nexport const invalidateItems = (bindingContexts: BindingContext[], storage: StorageModel, cacheStrategy = CacheStrategy.View): void => {\n for (const bc of bindingContexts) {\n const info = storage.getInfo(bc);\n if (info) {\n if (info.fieldSettings?.items) {\n info.fieldSettings.items = null;\n }\n\n storage.addActiveField(bc);\n }\n }\n\n CacheCleaner.clear(cacheStrategy);\n};\n\nexport function fetchItemsByPath(storage: FormStorage, path: string): Promise {\n const bc = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bc);\n return info && fetchItemsByInfo(storage, info);\n}\n\nexport async function fetchAndSetItemsByInfo(storage: FormStorage, info: IFieldInfo, isHierarchical = false): Promise {\n const items = await fetchItemsByInfo(storage, info, isHierarchical);\n info.fieldSettings.items = items;\n\n storage.addActiveField(info.bindingContext);\n\n return items;\n}\n\nexport async function fetchItemsByInfo(storage: FormStorage, info: IFieldInfo, isHierarchical = false): Promise {\n let items: ISelectItem[];\n if (info.fieldSettings.itemsFactory) {\n items = (await info.fieldSettings.itemsFactory({\n storage,\n context: storage?.context,\n bindingContext: info.bindingContext\n })) ?? [];\n } else {\n items = await fetchSelectItems({\n fieldInfo: info,\n oData: storage.oData,\n appContext: storage.context,\n storage: storage,\n isHierarchical\n });\n }\n return items;\n}\n\nexport async function getRenderedItemsByInfo(storage: FormStorage, info: IFieldInfo, fieldBc?: BindingContext, includeAdditionalItems = true): Promise {\n let items = info.fieldSettings?.items;\n if (!items) {\n items = await fetchItemsByInfo(storage, info);\n }\n if (info.fieldSettings?.itemsForRender) {\n items = info.fieldSettings?.itemsForRender(items ?? [], getItemsForRenderCallbackArgs(storage, info, fieldBc ?? info.bindingContext));\n }\n return [\n ...(includeAdditionalItems ? info?.fieldSettings?.additionalItems ?? [] : []),\n ...(items ?? info?.fieldSettings?.initialItems ?? [])\n ];\n}\n\ninterface IFetchSelectItems {\n fieldInfo: IFieldInfo;\n oData: OData;\n appContext: IAppContext;\n storage?: Model;\n isHierarchical?: boolean;\n}\n\nexport const fetchSelectItems = async (args: IFetchSelectItems): Promise => {\n const infoArgs = {\n info: args.fieldInfo,\n bindingContext: args.fieldInfo.bindingContext,\n data: args.storage?.data?.entity,\n context: args.appContext,\n storage: args.storage\n };\n\n const entitySet = getInfoValue(args.fieldInfo.fieldSettings, \"entitySet\", infoArgs);\n const filter = getInfoValue(args.fieldInfo.filter, \"select\", infoArgs);\n\n if (isDefined(args.fieldInfo.fieldSettings.entitySet) && !entitySet) {\n args.fieldInfo.fieldSettings.items = [];\n return [];\n }\n\n const bc = entitySet ? createBindingContext(entitySet, args.oData.getMetadata()) : args.fieldInfo.bindingContext;\n const fieldBc = args.fieldInfo.bindingContext.isLocal() ? null : bc.navigate(bc.getKeyPropertyName());\n const displayName = args.fieldInfo.fieldSettings?.entitySetDisplayName ?? args.fieldInfo.fieldSettings?.displayName;\n const mergedColumns = args.fieldInfo.columns ?? ([{ id: displayName || bc.getKeyPropertyName() }]);\n\n const queryColumns = args.fieldInfo?.fieldSettings?.additionalProperties ?\n [...mergedColumns, ...args.fieldInfo.fieldSettings.additionalProperties] : mergedColumns;\n\n if (args.fieldInfo?.fieldSettings?.onBeforeRequest) {\n await args.fieldInfo.fieldSettings.onBeforeRequest(infoArgs);\n }\n\n const columns = await getColumns({\n bindingContext: bc,\n columns: args.fieldInfo.columns,\n displayName: displayName,\n appContext: args.appContext\n });\n\n let items = await getItems({\n info: args.fieldInfo,\n displayName: displayName,\n storage: args.storage,\n context: args.storage.context,\n idName: args.fieldInfo?.fieldSettings?.idName,\n oData: args.oData,\n appContext: args.appContext,\n isHierarchical: args.isHierarchical,\n bindingContext: bc,\n formatter: args.fieldInfo?.formatter,\n filter: filter,\n fieldBindingContext: fieldBc,\n columns: mergedColumns,\n convertedColumns: columns,\n queryColumns: queryColumns,\n orderBy: args.fieldInfo?.fieldSettings?.orderBy?.propertyName?.toString() || displayName || (args.fieldInfo.columns?.[0].id),\n asc: args.fieldInfo?.fieldSettings?.orderBy?.asc,\n queryParams: getInfoValue(args.fieldInfo?.fieldSettings, \"queryParams\", infoArgs),\n language: args.appContext.getData().userSettings.LanguageCode\n }, args.fieldInfo.cacheStrategy);\n\n if (args.isHierarchical) {\n items = buildTreeFromAllItems(items, args.fieldInfo?.fieldSettings?.idName ?? bc.getKeyPropertyName());\n }\n\n if (!args.fieldInfo.fieldSettings) {\n args.fieldInfo.fieldSettings = {};\n }\n\n args.fieldInfo.fieldSettings.items = items;\n args.fieldInfo.columns = columns as IFieldDef[];\n\n return items;\n};\n\nexport const getItems = async (args: IGetDataArgs, cs: CacheStrategy = CacheStrategy.None): Promise => {\n if (cs !== CacheStrategy.None && !args.language) {\n logger.error(\"language property is mandatory when using cache\");\n }\n\n const fetchArgs = {\n ...args,\n language: args.language\n };\n\n if (args.info?.fieldSettings?.endpoint) {\n const items = await fetchFromEndpointMemoized(fetchArgs, cs);\n\n return args.info.fieldSettings.transformFetchedItems ? args.info.fieldSettings.transformFetchedItems(items, args) : items;\n } else {\n const rawItems = await fetchMemoized(fetchArgs, cs);\n\n return transformItems(args, rawItems);\n }\n};\n\nconst transformColumnsIntoString = (columns: IFieldDef[]): string => {\n if (!columns) {\n return \"\";\n }\n\n // don't return everything, there are things like bindingContext that would mess with the result\n return columns.map(col => {\n return JSON.stringify({\n id: col.id,\n additionalProperties: col.additionalProperties\n });\n }).join(\",\");\n};\n\n// caches the retrieved items, supposed to be used by SmartSelect which only downloads the values once\n// don't use from components that uses value to filter the items (e.g. autocomplete)\nexport const fetchMemoized = memoizedWithCacheStrategy(fetchData,\n (args: IGetDataArgsMemoized) => {\n // Base endpoint URL\n const endpointURL = args.oData.fromPath(args.bindingContext.toString()).getUrl();\n\n // add other properties to resolver, if the requests needs to be differentiated more\n // e.g. multiple SmartSelects on same property with different columns\n const props = `${args.language},${args.filter},${args.orderBy},${transformColumnsIntoString(args.columns)}`;\n\n return `${endpointURL},${props}`;\n });\n\nexport const fetchFromEndpointMemoized = memoizedWithCacheStrategy(fetchItemsFromEndpoint,\n (args: IGetDataArgsMemoized) => {\n return `${args.info.fieldSettings.endpoint},${args.info.formatter},${args.language}`;\n });\n\n","export const HIERARCHICAL_CHILDREN_PROP_NAME = \"Children\";\nexport const HIERARCHICAL_PARENT_PROP_NAME = \"Parent\";","import React from \"react\";\nimport { formatValue, IFormatOptions } from \"@odata/OData.utils\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { Model } from \"../../../model/Model\";\nimport { compareDefinedArrays, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { buildTreeFromAllItems, getItemsForRenderCallbackArgs } from \"../../inputs/select/SelectAPI\";\nimport { fetchItemsByInfo } from \"./SmartSelectAPI\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { ISmartEventData } from \"../FieldInfo\";\nimport { getEnumDisplayValue, getEnumName, isEnum, loadEnums } from \"@odata/GeneratedEnums.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { TValue } from \"../../../global.types\";\nimport { IMultiSelectProps } from \"../../inputs/select/MultiSelect\";\nimport { ISelectItem, ISelectPropsBase, TSelectItemId } from \"@components/inputs/select/Select.types\";\n\nexport interface ISmartSelectBaseProps {\n // todo fieldInfo to fieldDef\n fieldInfo: IFieldInfo;\n bindingContext: BindingContext;\n storage?: Model;\n isHierarchical?: boolean;\n onClick?: (e: React.MouseEvent, args: ISmartEventData) => void;\n onIconActivate?: (e: React.MouseEvent, args: ISmartEventData) => void;\n onItemsFetched?: (bc: BindingContext, items: ISelectItem[]) => void;\n getCustomTabularData?: (val: TValue, args: IFormatOptions) => string[];\n}\n\ninterface IProps extends ISmartSelectBaseProps, WithOData {\n selectProps?: ISelectPropsBase | IMultiSelectProps;\n select: React.ComponentType;\n value?: TSelectItemId | TSelectItemId[];\n}\n\n\nclass SmartSelectBase extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n _isMounted: boolean;\n\n // we need to put this outside of state as we need sync operation with the property\n isLoading: boolean;\n\n componentDidMount = async () => {\n this._isMounted = true;\n if (this.shouldLoadItems()) {\n this.load();\n } else {\n this.setInitialItems();\n }\n };\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>) {\n const hasValueChanged = Array.isArray(prevProps.value) && Array.isArray(this.props.value) ? !compareDefinedArrays(prevProps.value, this.props.value) : prevProps.value !== this.props.value;\n if (this.shouldLoadItems()) {\n this.load();\n } else if (hasValueChanged\n // the condition cannot be this.props.fieldInfo !== prevProps.fieldInfo because fieldInfo is updated on every render in SmartFieldUtils if fieldDef is set\n // => check is fieldInfo.fieldSettings.initialItems changed instead\n || this.props.fieldInfo?.fieldSettings?.initialItems !== prevProps.fieldInfo?.fieldSettings?.initialItems // if fieldsInfo.fieldSettings.initialItems was changed, it is probable, that initialItems are not set (e.g. after save of new entity)\n || (this.props.fieldInfo?.fieldSettings?.items !== prevProps.fieldInfo?.fieldSettings?.items && !this.props.fieldInfo?.fieldSettings?.items)\n ) {\n this.setInitialItems();\n }\n }\n\n shouldLoadItems = (): boolean => {\n const { fieldSettings } = this.props.fieldInfo;\n return !!fieldSettings.preloadItems || (!!fieldSettings.itemsFactory && fieldSettings.cacheFetchedItemsInFieldInfo !== false);\n };\n\n componentWillUnmount(): void {\n this._isMounted = false;\n }\n\n // fieldSettings.items can be callback, but once it's called, we work directly with the array\n get items(): ISelectItem[] {\n return this.props.fieldInfo.fieldSettings?.items;\n }\n\n set items(items: ISelectItem[]) {\n this.props.fieldInfo.fieldSettings.items = items;\n }\n\n load = async (reload?: boolean) => {\n // storage.loading -> do not trigger load before storage is loaded - it would load data according to wrong filters (based on previously loaded entity)\n if (this.isLoading || !this.props.storage || this.props.storage.loading) {\n return;\n }\n\n if (this.props.fieldInfo.fieldSettings.cacheFetchedItemsInFieldInfo === false && reload === true) {\n // remove items, so they can be fetched again without caching\n this.items = null;\n }\n\n if (this.props.fieldInfo && !this.items) {\n this.isLoading = true;\n this.forceUpdate();\n await this.fetchItems();\n }\n\n if (this.props.isHierarchical && this.items?.length > 0) {\n const item = this.items[0];\n // check whether items are already transformed\n if (isNotDefined(item.indent)) {\n this.items = buildTreeFromAllItems(this.items);\n }\n }\n\n if (this.isLoading) {\n this.isLoading = false;\n this.forceUpdate();\n }\n };\n\n isEnum = (): boolean => {\n return isEnum(this.props.fieldInfo);\n };\n\n getEnumName = (): string => {\n return getEnumName(this.props.fieldInfo, this.props.oData);\n };\n\n setInitialItems = async () => {\n const fieldInfo = this.props.fieldInfo;\n const shouldSetInitialItem = this.isEnum()\n // is this condition correct? shouldn't we actually always create initial item?\n || (isObjectEmpty(fieldInfo.fieldSettings?.items) && fieldInfo.fieldSettings?.shouldDisplayAdditionalColumns);\n\n if (!shouldSetInitialItem) {\n return;\n }\n\n let enumName: string;\n\n if (this.isEnum()) {\n // we need to load the enum name space even without initial item, to show correct translations in conditional dialog\n enumName = this.getEnumName();\n\n if (!enumName) {\n return;\n }\n\n const { namespacesPromise, notLoadedNamespaces } = loadEnums(enumName);\n\n if (notLoadedNamespaces.length > 0) {\n await namespacesPromise;\n // because we load the name space manually,\n // we have to trigger manual rerender as well\n this.forceUpdate();\n }\n }\n\n const value = this.props.value;\n\n if (!value) {\n return;\n }\n\n const allAdditionalProperties = new Set([...(this.props.fieldInfo.additionalProperties ?? []), ...(this.props.fieldInfo.columns ?? [])]?.filter(v => v).map(property => property.id));\n\n if (this.props.fieldInfo.fieldSettings.displayName) {\n allAdditionalProperties.add(this.props.fieldInfo.fieldSettings.displayName);\n }\n\n const values = Array.isArray(value) ? value : [value];\n let initialItems: ISelectItem[] = values.map(val => {\n const item: ISelectItem = {\n id: val,\n additionalData: {\n Code: val\n }\n };\n\n if (this.isEnum()) {\n item.additionalData.Name = getEnumDisplayValue(enumName, val as string);\n }\n\n for (const prop of allAdditionalProperties) {\n try {\n // we can't ensure always correct path\n const bc = this.props.bindingContext.navigate(prop);\n const val = this.props.storage.getValue(bc);\n if (val) {\n item.additionalData[prop] = val;\n }\n } catch {\n }\n }\n\n if (this.props.fieldInfo.fieldSettings.displayName && !this.props.fieldInfo.formatter) {\n item.label = item.additionalData[this.props.fieldInfo.fieldSettings.displayName];\n } else if (this.isEnum()) {\n item.label = item.additionalData.Name;\n } else {\n item.label = formatValue(val, fieldInfo, {\n entity: item.additionalData,\n item: item.additionalData,\n storage: this.props.storage\n }) ?? val?.toString() ?? \"\";\n }\n\n if (this.props.fieldInfo.columns) {\n item.tabularData = this.props.fieldInfo.columns.map(col => {\n const val = item.additionalData[col.id];\n\n return formatValue(val, {\n ...col,\n bindingContext: this.props.bindingContext.navigate(col.id)\n }, {\n entity: item.additionalData,\n item: item.additionalData,\n storage: this.props.storage\n }) ?? val?.toString() ?? \"\";\n });\n }\n\n return item;\n });\n\n if (initialItems?.length) {\n if (!this.props.fieldInfo.fieldSettings) {\n this.props.fieldInfo.fieldSettings = {};\n }\n\n if (this.props.fieldInfo.fieldSettings.transformFetchedItems) {\n // apply the transformFetchedItems even to initial items or something could be missing from the item\n initialItems = this.props.fieldInfo.fieldSettings.transformFetchedItems(initialItems,\n getItemsForRenderCallbackArgs(this.props.storage, this.props.fieldInfo, this.props.bindingContext, this.context));\n }\n\n this.props.fieldInfo.fieldSettings.initialItems = initialItems;\n this.props.storage.addActiveField(this.props.bindingContext);\n // make the call debounced, to improve performance\n this.props.storage.refreshFields(false, true);\n }\n };\n\n // todo when there are bigger amount of same SmartSelects used on one page, this function is kidna slow\n // it would be nice to only call it once for all selects with the same definition.\n // at the moment we only cache getItems, but not the rest of it even though some parts of it, like transformItems,\n // are quite performance heavy\n fetchItems = async () => {\n const { fieldInfo, storage, isHierarchical, bindingContext } = this.props;\n\n this.items = await fetchItemsByInfo(storage as FormStorage, fieldInfo, isHierarchical);\n\n if (fieldInfo.fieldSettings !== this.props.fieldInfo.fieldSettings) {\n console.warn(`SmartSelectBase::fetchItems(${bindingContext.getFullPath()}) - items loading was triggered with different fieldInfo.fieldSettings object than it was passed after data resolution. Copying items to new fieldSettings.`);\n if (!this.props.fieldInfo.fieldSettings) {\n this.props.fieldInfo.fieldSettings = {};\n }\n this.props.fieldInfo.fieldSettings.items = fieldInfo.fieldSettings.items;\n }\n\n this.props.onItemsFetched?.(bindingContext, this.items);\n\n if (this._isMounted) {\n if (storage) {\n // rerender read only item in the SmartFilterBar for the same bc as well\n storage.addActiveField(this.props.bindingContext);\n // make the call debounced, to improve performance\n this.props.storage.refreshFields(false, true);\n } else {\n this.forceUpdate();\n }\n }\n };\n\n handleClick = (e: React.MouseEvent) => {\n const { storage, bindingContext } = this.props;\n return this.props.onClick?.(e, { storage, bindingContext });\n };\n\n handleOpen = (): void => {\n this.load(true);\n };\n\n handleFocus = (): void => {\n // we don't want user that use keyboard to navigate wait for items to load on the first arrow down click (which seems like a bug because nothing happens)\n // => fetch immediately on focus\n this.load(true);\n };\n\n handleIconActivate = (e: React.MouseEvent) => {\n const { storage, bindingContext } = this.props;\n return this.props.onIconActivate?.(e, { storage, bindingContext });\n };\n\n render() {\n const Select = this.props.select;\n\n const items = this.props.fieldInfo?.fieldSettings?.itemsForRender?.(\n this.items ?? [],\n getItemsForRenderCallbackArgs(this.props.storage, this.props.fieldInfo, this.props.bindingContext, this.context)\n ) || this.items || [];\n\n let customTabularData: string[] = null;\n if (this.props.getCustomTabularData) {\n customTabularData = this.props.getCustomTabularData(this.props.value as TValue, {\n storage: this.props.storage,\n bindingContext: this.props.bindingContext\n });\n }\n\n // take out properties that are only relevant of SmartSelectBase\n const {\n fieldInfo,\n bindingContext,\n storage,\n isHierarchical,\n onClick,\n onIconActivate,\n oData,\n ...restSelectProps\n } = this.props;\n\n return (\n );\n }\n}\n\nexport default withOData(SmartSelectBase);","import { ExpandQueryBuilder } from \"@odata/OData\";\nimport { getEnrichedProperties, parseNavigationTree, prepareQuery, queryFromTree } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { isAbortException } from \"@utils/oneFetch\";\nimport { isEmpty } from \"lodash\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { GroupStatus, RowType, Sort, TableBatch } from \"../../../enums\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport LocalSettings from \"../../../utils/LocalSettings\";\nimport { WithAlert, withAlert } from \"../../alert/withAlert\";\nimport { IRow, TId } from \"../../table\";\nimport {\n defaultODataTableProps,\n defaultODataTableState,\n ISmartODataTableProps,\n ISmartODataTableState,\n LOADING_ROW_ID,\n SmartODataTableBase\n} from \"./SmartODataTableBase\";\nimport { IFetchDataArgs } from \"./SmartTable\";\nimport { getFormattedValueFromValues, getLoadingValues, getTableKey, updateRow } from \"./SmartTable.utils\";\nimport { ISmartLoadMoreItemsEvent } from \"./SmartTableBase\";\n\nconst PARENT_PROP = \"Parent\";\n\ninterface IProps extends ISmartODataTableProps, WithOData, WithAlert, WithTranslation {\n rootEntity?: string;\n childEntity?: string;\n}\n\ninterface IState extends ISmartODataTableState {\n}\n\nclass SmartHierarchyTable extends SmartODataTableBase {\n static defaultProps = defaultODataTableProps;\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n state = {\n ...defaultODataTableState,\n allGroupStatus: isObjectEmpty(LocalSettings.get(getTableKey(this.props.storage, this.props.tableId)).openedRowsIds) ? GroupStatus.Expanded : GroupStatus.Unknown\n };\n\n\n async fetchData(args?: IFetchDataArgs) {\n const navProperty = this.props.hierarchy;\n let rows: Record = {};\n let rowsOrder: string[] = [];\n let rowCount: number;\n let response, filteredResponse;\n const promises = [];\n\n // Do not trigger request with invalid filterQuery\n if (this.props.filter?.isInvalid) {\n return;\n }\n\n this.setState({\n loaded: false,\n allGroupStatus: isObjectEmpty(LocalSettings.get(getTableKey(this.props.storage, this.props.tableId)).openedRowsIds) ? GroupStatus.Expanded : GroupStatus.Unknown\n });\n\n const settings = this.props.filter?.defaultFilter && { \"\": { filter: this.props.filter?.defaultFilter } };\n let query = prepareQuery({\n oData: this.props.oData,\n bindingContext: this.props.bindingContext,\n fieldDefs: this.state.columns,\n settings\n }).count();\n\n const sortColumns = this.getSort();\n let sortId: string, sortIsAsc: boolean;\n\n if (sortColumns?.length > 0) {\n for (const sortColumn of sortColumns) {\n const sortColumnInfo = this.state.columns.find((col) => col.id === sortColumn.id);\n sortId = sortColumnInfo?.bindingContext.getNavigationBindingContext(sortColumnInfo.fieldSettings?.displayName).getEntityPath();\n\n sortIsAsc = sortColumn.sort === Sort.Asc;\n\n if (sortId) {\n query = query.orderBy(sortId, sortIsAsc);\n }\n }\n }\n\n try {\n if (!this.props.loadAll && !args?.loadAll) {\n // query() isn't enough anymore, we need navigate() to get request on ChartsOfAccounts(1)/Accounts\n // use entityset => binding context.getKey instead of filter if key is present query.get(\n response = await query.filter(this.props.filter?.query)\n .expand(navProperty, (q: ExpandQueryBuilder) => {\n q.count().top(0);\n })\n .fetchData(this.fetchDataOneFetch.fetch);\n\n for (const entity of response.value) {\n const row = this.createRowProperties(entity);\n const id = row.id.toString();\n\n rows[id] = row;\n rowsOrder.push(id);\n }\n\n rowCount = response._metadata.count;\n } else {\n const keyPropertyName = this.props.bindingContext.getKeyPropertyName();\n const fnSelectKeyProperty = (q: ExpandQueryBuilder) => {\n q.select(keyPropertyName);\n };\n const fnSelectKeyPropertyAndOrder = (sortId: string) => {\n return (q: ExpandQueryBuilder) => {\n q.count().select(keyPropertyName);\n // we need to correctly sort no only the root items, but hierarchy as well\n if (sortId) {\n q.orderBy(sortId, sortIsAsc);\n }\n };\n };\n\n if (this.props.rootEntity) {\n const fnExpandChild = (applyFilter?: boolean) => {\n const bc = this.props.bindingContext.navigate(this.props.childEntity);\n const enrichedProperties = getEnrichedProperties(this.state.childColumns.map(col => col.id), bc, this.state.childColumns);\n const parsedTree = parseNavigationTree(enrichedProperties, bc);\n\n\n return (q: ExpandQueryBuilder) => {\n q.expand(PARENT_PROP, fnSelectKeyProperty);\n\n for (const sortColumn of sortColumns) {\n const sortColumnInfo = this.state.childColumns.find((col) => col.id === sortColumn.id);\n const navSortId = sortColumnInfo?.bindingContext.getNavigationBindingContext(sortColumnInfo.fieldSettings?.displayName).getEntityPath();\n\n if (navSortId) {\n q.expand(navProperty, fnSelectKeyPropertyAndOrder(navSortId));\n q.orderBy(navSortId, sortIsAsc);\n }\n }\n\n if (applyFilter) {\n q.filter(this.props.filter?.collectionQueries?.[this.props.childEntity]?.query);\n }\n\n const automaticQuery = queryFromTree({\n bindingContext: bc,\n fieldDefs: this.state.childColumns,\n navigationTree: parsedTree,\n settings: {}\n });\n\n automaticQuery(q);\n };\n };\n\n promises.push(query.expand(this.props.childEntity, fnExpandChild()).fetchData(this.fetchDataOneFetch.fetch));\n\n if (this.props.filter?.query !== this.props.filter?.defaultFilter) {\n // WARNING, filtering will only work for properties with same name on parent and child\n promises.push(\n query\n .expand(this.props.childEntity, fnExpandChild(true))\n .filter(this.props.filter?.query)\n .fetchData()\n );\n }\n\n [response, filteredResponse] = await Promise.all(promises);\n } else {\n query = await query\n .expand(navProperty, fnSelectKeyPropertyAndOrder(sortId))\n .expand(PARENT_PROP, fnSelectKeyProperty);\n\n // this could potentially be cached when only filter value changes, but could cause problems - e.g. data could be changed in the meantime..\n promises.push(query.fetchData(this.fetchDataOneFetch.fetch));\n\n if (this.props.filter?.query !== this.props.filter?.defaultFilter) {\n promises.push(query.filter(this.props.filter?.query).fetchData());\n }\n\n [response, filteredResponse] = await Promise.all(promises);\n }\n\n const tree = this.buildTreeFromAllItems(response?.value ?? [], filteredResponse?.value);\n\n rowCount = tree.rowCount;\n rows = tree.rows;\n rowsOrder = tree.rowsOrder;\n }\n\n } catch (error) {\n // OneFetch -> raises AbortError exception -> ignore\n if (isAbortException(error)) {\n return;\n }\n // todo global error handling\n logger.error(`error in fetchData: ${query.toUrl(\"\")}`, error);\n this.setState({\n rows: {},\n rowsOrder: [],\n rowCount: 0,\n loaded: true\n });\n return;\n }\n\n const isClosed = (row: IRow): boolean => {\n return (row.rows?.length && !row.open) || row.rows?.some(isClosed);\n };\n\n const rowsArray = this.getRowsArray(rows, rowsOrder);\n const allGroupStatus = rowsArray.some((row: IRow) => !!row.rowCount) ? rowsArray.some(isClosed) ? GroupStatus.Collapsed : GroupStatus.Expanded : GroupStatus.Unknown;\n\n this.setState({\n allGroupStatus,\n rows,\n rowsOrder,\n rowCount: rowCount,\n loaded: true\n }, () => {\n this.props.onAfterTableLoad?.();\n this.props.rowAction?.onTableReloaded?.();\n });\n }\n\n async reloadRow(bindingContext: BindingContext) {\n const isRootEntity = !this.props.childEntity || bindingContext.getPath(true) !== this.props.childEntity;\n const columns = isRootEntity ? this.getTableState().columns : this.getTableState().childColumns;\n\n return await this.reloadRowInternal(bindingContext, columns, (newRowData: IEntity, oldRow) => {\n // SmartHierarchyTable uses rootEntity for child entities so that it can be used in value formatters\n // we have to add this custom row property as well\n if (!isRootEntity) {\n newRowData.rootEntity = oldRow.customData.parentEntity;\n }\n\n return {\n ...oldRow,\n values: this.getRowValues(newRowData, columns, isRootEntity ? this.props.bindingContext : this.props.bindingContext.navigate(this.props.childEntity))\n };\n });\n }\n\n buildTreeFromAllItems = (allItems: IEntity[], filteredItems?: IEntity[]) => {\n const keyPropertyName = this.props.bindingContext.getKeyPropertyName();\n const allItemsById: Record = {};\n const filteredItemsById: Record = {};\n const rootItems: IEntity[] = [];\n const processedRootItems = new Set();\n const rows: Record = {};\n\n const addRootItem = (item: IEntity) => {\n rootItems.push(item);\n processedRootItems.add(item[keyPropertyName]);\n };\n\n const processFilteredItem = (item: IEntity) => {\n filteredItemsById[item[keyPropertyName]] = item;\n\n if (filteredItemsById[item[PARENT_PROP][keyPropertyName]] || processedRootItems.has(item[keyPropertyName])) {\n return null;\n }\n\n let rootItem = item;\n\n while (!isObjectEmpty(rootItem[PARENT_PROP])) {\n rootItem = allItemsById[rootItem[PARENT_PROP][keyPropertyName]];\n filteredItemsById[rootItem[keyPropertyName]] = rootItem;\n }\n\n return rootItem;\n };\n\n if (this.props.rootEntity) {\n for (const item of allItems) {\n for (const child of item[this.props.childEntity]) {\n child.rootEntity = item;\n allItemsById[child[keyPropertyName]] = child;\n }\n if (!filteredItems) {\n addRootItem(item);\n }\n }\n\n if (filteredItems) {\n for (const parentItem of filteredItems) {\n rootItems.push(allItems.find(rootItem => rootItem[keyPropertyName] === parentItem[keyPropertyName]));\n\n for (const child of parentItem[this.props.childEntity]) {\n child.rootEntity = parentItem;\n\n processFilteredItem(child);\n }\n }\n }\n } else {\n for (const item of allItems) {\n allItemsById[item[keyPropertyName]] = item;\n\n if (!filteredItems) {\n if (isObjectEmpty(item[PARENT_PROP])) {\n addRootItem(item);\n }\n }\n }\n\n if (filteredItems) {\n for (const item of filteredItems) {\n const rootItem = processFilteredItem(item);\n\n if (rootItem) {\n addRootItem(rootItem);\n }\n }\n }\n }\n\n const firstLevelRows = this.buildTreeFromRootItems(rootItems, filteredItems ? filteredItemsById : allItemsById, rows, !!this.props.rootEntity);\n\n return {\n rows,\n rowsOrder: firstLevelRows.map(row => row.id.toString()),\n rowCount: rootItems.length\n };\n };\n\n buildTreeFromRootItems = (rootItems: IEntity[], itemsById: Record, rows: Record, isRootEntity = false, parent?: IRow, parentEntity?: IEntity) => {\n const keyPropertyName = this.props.bindingContext.getKeyPropertyName();\n const rowsTree = [];\n\n for (const rootItem of rootItems) {\n const row = this.createRowProperties(rootItem, parent, parentEntity, isRootEntity);\n const children = [];\n const hierarchy = isRootEntity ? this.props.childEntity : this.props.hierarchy;\n\n if (rootItem[hierarchy].length > 0) {\n for (const child of rootItem[hierarchy]) {\n // items can be filtered out, check if present\n if (itemsById[child[keyPropertyName]]) {\n if (!isRootEntity || isEmpty(child[PARENT_PROP])) {\n children.push(itemsById[child[keyPropertyName]]);\n }\n }\n }\n\n row.rowCount = children.length;\n row.rows = this.buildTreeFromRootItems(children, itemsById, rows, false, row, rootItem);\n }\n rows[row.id.toString()] = row;\n rowsTree.push(row);\n }\n\n return rowsTree;\n };\n\n createRowProperties = (row: IEntity, parent?: IRow, parentEntity?: IEntity, isRootEntity = false): IRow => {\n const navProperty = isRootEntity ? this.props.childEntity : this.props.hierarchy;\n const type = isRootEntity ? RowType.Group : RowType.Value;\n const bc = !isRootEntity && this.props.childEntity ? this.props.bindingContext.addKey(row.rootEntity?.Id)\n .navigate(`${this.props.childEntity}`) : this.props.bindingContext;\n const columns = isRootEntity || !this.props.childEntity ? this.state.columns : this.state.childColumns;\n const id = bc.addKey(row);\n\n return {\n id: id,\n dataId: id.getKey().toString(),\n type,\n rowCount: row[navProperty].count,\n drilldown: !this.props.hideDrilldown,\n open: LocalSettings.get(getTableKey(this.props.storage, this.props.tableId)).openedRowsIds?.[bc.addKey(row).toString()] ?? this.state.allGroupStatus === GroupStatus.Expanded,\n isLocked: !isObjectEmpty(row[this.props.lockProperty]),\n values: columns.reduce((values: IEntity, column) => {\n values[column.id] = () => {\n return getFormattedValueFromValues({\n column, values: row,\n valuesBindingContext: bc\n });\n };\n return values;\n }, {}),\n customData: { parent, parentEntity, entity: row }\n };\n };\n\n loadMoreGroupItems = async ({\n skip = 0,\n top = skip + TableBatch.InfiniteLoaderMinBatchSize,\n groupBindingContext\n }: { skip: number, top: number, groupBindingContext: BindingContext }) => {\n const navProperty = this.props.hierarchy;\n let response;\n const rows: Record = { ...this.state.rows };\n\n // loading state\n this.setState(state => {\n const newRows: Record = {};\n const updatedRows = updateRow(state.rows, groupBindingContext, (group: IRow) => {\n const newGroup = { ...group };\n newGroup.rows = newGroup.rows || [];\n\n for (let i = skip; i < skip + top; i++) {\n const newRow: IRow = {\n id: `${group.id}-${i}-${LOADING_ROW_ID}`,\n type: RowType.Value,\n values: getLoadingValues(this.state.columns)\n };\n\n newGroup.rows[i] = newRow;\n newRows[newRow.id.toString()] = newRow;\n }\n\n return newGroup;\n });\n\n return {\n rows: {\n ...updatedRows,\n ...newRows\n }\n };\n });\n\n // backend doesn't support too much nesting\n // http://localhost:4000/api/odata/ChartsOfAccounts(1)/Accounts?$filter=Id eq 1&$expand=Children($count=true;$expand=Children($count=true)) doesn't work\n // we have to use workaround for now, by filtering on parent\n // http://localhost:4000/api/odata/ChartsOfAccounts(1)/Accounts?$filter=Parent/Id eq 1&$expand=Children($count=true;$top=0)\n // TODO remove workaround once the problem is resolved on backend\n // response = await this.props.oData.fromPath(this.props.bindingContext.toString()).query().filter(`${groupBindingContext.getKeyPropertyName()} eq ${groupBindingContext.getKey()}`)\n // .expand(navProperty, (q: ExpandQueryBuilder) => q.expand(navProperty, (r: any) => r.top(0).count())).fetchData();\n response = await this.props.oData.fromPath(this.props.bindingContext.toString()).query().filter(`Parent/${groupBindingContext.getKeyPropertyName()} eq ${groupBindingContext.getKey()}`)\n .expand(navProperty, (q: ExpandQueryBuilder) => q.top(0).count()).fetchData();\n\n const values = response.value;\n\n this.setState(state => {\n const newRows: Record = {};\n\n const updatedRows = updateRow(state.rows, groupBindingContext, (group: IRow) => {\n const groupRows: IRow[] = [];\n\n for (const entity of values) {\n const row = this.createRowProperties(entity);\n const id = row.id.toString();\n\n groupRows.push(row);\n newRows[id] = row;\n }\n\n return {\n ...group,\n rows: groupRows\n };\n });\n\n return {\n rows: {\n ...updatedRows,\n ...newRows\n }\n };\n });\n };\n\n handleLoadMoreRows = ({ startIndex, stopIndex, group: groupBindingContext }: ISmartLoadMoreItemsEvent) => {\n const skip = startIndex;\n const top = stopIndex - startIndex + 1;\n\n this.loadMoreGroupItems({ skip, top, groupBindingContext: groupBindingContext });\n };\n\n handleRowActionClick(rowId: TId, row: IRow) {\n super.handleRowActionClick(rowId, row, true);\n }\n}\n\nexport default withTranslation([\"Error\"])(withOData(withAlert()(SmartHierarchyTable)));","import styled from \"styled-components/macro\";\nimport Checkbox from \"../../inputs/checkbox\";\nimport { T_TITLE_2 } from \"../../../global.style\";\nimport { StyledSelect } from \"../../inputs/select/Select.styles\";\n\nexport const BulkChangeFieldWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n\n ${StyledSelect} + ${StyledSelect} {\n margin-top: 12px;\n }\n`;\n\nexport const CheckboxStyled = styled(Checkbox)<{\n _hasLabel: boolean;\n}>`\n margin-top: ${props => props._hasLabel ? \"19px\" : \"0\"};\n height: 34px;\n margin-right: 12px;\n`;\n\nexport const Header = styled.div`\n ${T_TITLE_2};\n margin-bottom: 30px;\n`;\n","import BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { cloneDeep, trim } from \"lodash\";\nimport { TRecordType, TValue } from \"../../../global.types\";\nimport { IFieldDef } from \"../FieldInfo\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { FieldType } from \"../../../enums\";\nimport { IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { TFunction } from \"i18next\";\n\n\nexport enum BulkChangeAction {\n Add = \"Add\",\n Append = \"Append\",\n Prepend = \"Prepend\",\n Replace = \"Replace\",\n Remove = \"Remove\",\n RemoveAll = \"RemoveAll\"\n}\n\nexport interface IBulkChangeDialogStorageCustomData extends IFormStorageDefaultCustomData {\n isChecked: Record;\n}\n\n// todo could be changed from PerFieldType to differentiate between collections and single entities,\n// we'll see after we use more than two different fields in BulkChange\nexport const BulkChangeActionPerFieldType: Partial> = {\n [FieldType.LabelSelect]: [BulkChangeAction.Add, BulkChangeAction.Replace, BulkChangeAction.Remove, BulkChangeAction.RemoveAll],\n [FieldType.EditableText]: [BulkChangeAction.Append, BulkChangeAction.Prepend, BulkChangeAction.Replace, BulkChangeAction.RemoveAll]\n};\n\nexport const getBulkChangeActionTranslation = (id: BulkChangeAction, isCollection: boolean, t: TFunction): string => {\n return t(`Common:BulkChange.${id === BulkChangeAction.RemoveAll && !isCollection ? \"RemoveExisting\" : id}`);\n};\n\nexport const getDefaultBulkChangeAction = (isCollection: boolean): BulkChangeAction => {\n return isCollection ? BulkChangeAction.Add : BulkChangeAction.Replace;\n};\n\nexport function replaceComplexActionValues(storage: TableStorage, data: IEntity, originalEntity: IEntity, columns: string[], collectionActions: TRecordType): IEntity {\n const replaced = cloneDeep(data);\n columns.forEach(path => {\n const bindingContext = storage.data.bindingContext.navigate(path);\n const def = { id: path, ...storage.data.definition.massEditableDef[path] };\n replaced[path] = replaceComplexActionValue(def, data, originalEntity, collectionActions[path], bindingContext);\n });\n return replaced;\n}\n\nexport function replaceComplexActionValue(def: IFieldDef, data: IEntity, originalEntity: IEntity, action: BulkChangeAction, bindingContext: BindingContext): TValue[] | TValue {\n const path = def.id;\n const isCollection = bindingContext.isCollection();\n const origCollection = originalEntity[path] ?? [];\n const getKeyPath = () => def.fieldSettings?.keyPath;\n const getKeyPathBc = () => bindingContext.navigate(getKeyPath() ?? bindingContext.getKeyPropertyName());\n\n\n // compares collection items by key property\n const _areItemsSame = (item1: IEntity, item2: IEntity): boolean => {\n const id1 = getBoundValue({ bindingContext: getKeyPathBc(), data: item1, dataBindingContext: bindingContext });\n const id2 = getBoundValue({ bindingContext: getKeyPathBc(), data: item2, dataBindingContext: bindingContext });\n return id1 === id2;\n };\n\n const _isItemInCollection = (item: IEntity, collection: IEntity[]) => {\n return collection.find(collectionItem => _areItemsSame(collectionItem, item));\n };\n\n switch (action) {\n case BulkChangeAction.Prepend:\n return trim(`${data[path]} ${originalEntity[path] ?? \"\"}`);\n case BulkChangeAction.Append:\n return trim(`${originalEntity[path] ?? \"\"} ${data[path]}`);\n case BulkChangeAction.RemoveAll:\n return isCollection ? [] : null;\n case BulkChangeAction.Replace:\n return data[path];\n case BulkChangeAction.Remove:\n // new value is original value without removed items\n return origCollection\n .filter((originalItem: IEntity) => !_isItemInCollection(originalItem, data[path]));\n case BulkChangeAction.Add:\n default:\n // new value is original value with added items, if they are not already contained\n const addedWithoutOriginal = (data[path] ?? []).filter((addedItem: IEntity) => !_isItemInCollection(addedItem, origCollection));\n return [...origCollection, ...addedWithoutOriginal];\n }\n}","import React from \"react\";\nimport SmartField, { ISmartFieldChange, ISmartFieldProps } from \"../smartField/SmartField\";\nimport { BulkChangeFieldWrapper, CheckboxStyled } from \"./BulkChange.styles\";\nimport { ICheckboxChange } from \"../../inputs/checkbox\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { BasicInputSizes, FieldType, LabelStatus, TextAlign } from \"../../../enums\";\nimport {\n BulkChangeAction,\n BulkChangeActionPerFieldType,\n getBulkChangeActionTranslation,\n getDefaultBulkChangeAction,\n IBulkChangeDialogStorageCustomData\n} from \"./SmartBulkChange.utils\";\nimport { Select } from \"../../inputs/select\";\nimport Field from \"../../inputs/field\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport default class SmartBulkChangeField extends React.Component {\n\n getInfo = memoizeOne(() => {\n return this.props.storage.getInfo(this.props.bindingContext);\n });\n\n handleCheckboxChange = (e: ICheckboxChange): void => {\n const { bindingContext } = this.props;\n const storage = this.props.storage as FormStorage;\n\n if (e.value) {\n storage.setValue(bindingContext, null, undefined, true);\n } else {\n // Clears completely value from storage with all additionalFields\n storage.clearValue(bindingContext, false, true);\n }\n\n storage.setCustomData({\n isChecked: {\n ...storage.getCustomData().isChecked,\n [bindingContext.getNavigationPath()]: e.value\n }\n });\n storage.refresh(true);\n };\n\n handleFieldChange = (args: ISmartFieldChange): void => {\n this.props.storage.clearError(args.bindingContext);\n this.props.onChange(args);\n this.props.storage.refresh();\n };\n\n handleSelectChange = (args: ISelectionChangeArgs): void => {\n const { storage, bindingContext } = this.props;\n\n storage.clearError(bindingContext);\n storage.setAdditionalFieldData(bindingContext, \"parsedValue\", args.value);\n\n if (args.value === BulkChangeAction.RemoveAll || (args.value === BulkChangeAction.Remove && !bindingContext.isCollection())) {\n // cleanup all selected labels\n storage.setValue(bindingContext, null, undefined, true);\n }\n\n storage.refresh(true);\n };\n\n get isChecked(): boolean {\n const { bindingContext } = this.props;\n const storage = this.props.storage as FormStorage;\n\n return !!storage.getCustomData()?.isChecked?.[bindingContext.getNavigationPath()];\n }\n\n isDisabled = (): boolean => {\n if (!this.isChecked) {\n return true;\n }\n\n const action = this.props.storage.getAdditionalFieldData(this.props.bindingContext, \"parsedValue\") as BulkChangeAction;\n\n if (action === BulkChangeAction.RemoveAll) {\n return true;\n }\n\n if (action === BulkChangeAction.Remove && !this.props.bindingContext.isCollection()) {\n return true;\n }\n\n return false;\n };\n\n actionSelectItems = (): ISelectItem[] => {\n const actions = BulkChangeActionPerFieldType[this.getInfo().type];\n\n\n return actions.map((id) => ({\n id,\n label: getBulkChangeActionTranslation(id, this.props.bindingContext.isCollection(), this.props.storage.t)\n }));\n };\n\n renderExtraContent = (value: string): React.ReactElement => {\n return (\n \n \n \n {index <= 0 ? null :\n \n \n \n }\n\n \n );\n };\n\n renderItems = (): React.ReactElement[] => {\n return this.state.sort.map((sort, index) => this.renderItem(sort, index));\n };\n\n render() {\n return (\n }>\n \n {!this.props.isBusy && this.renderItems()}\n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\", \"Common\"])(TableSortingDialog);","import React from \"react\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { ICellValueObject, IMetaColumn, IRow, TColumn, TId } from \"./Table\";\nimport { getValue, isDefined, TabIndex } from \"@utils/general\";\nimport { CaretIconStyle } from \"./Table.styles\";\nimport { IconSize } from \"../../enums\";\nimport { IconButton } from \"../button\";\nimport i18next from \"i18next\";\n\nexport const isMetaColumn = (column: TColumn): column is IMetaColumn => {\n return !!(column as IMetaColumn).columns;\n};\n\nexport const getValueFromCellValueObject = (obj: unknown, propName: keyof ICellValueObject) => {\n return isRowValueCellValueObject(obj) ? obj?.[propName] ?? (typeof obj?.value === 'string' ? obj?.value : undefined) : obj;\n}\n\nexport const isRowValueCellValueObject = (value: unknown): value is ICellValueObject => {\n const realValue = getValue(value);\n\n return !!(isDefined(realValue) && typeof realValue === \"object\" && 'value' in realValue && 'tooltip' in realValue);\n};\n\nexport const getLeavesColumns = memoizeOne((columns: TColumn[]): any[] => {\n const leavesColumns = [];\n const stack = [...columns];\n\n while (stack.length > 0) {\n const currentColumn = stack.shift();\n\n if (!isMetaColumn(currentColumn)) {\n leavesColumns.push(currentColumn);\n } else {\n stack.unshift(...currentColumn.columns);\n }\n }\n\n return leavesColumns;\n});\n\nexport function isRowSelected(selectedRows: TId[], rowId: TId): boolean {\n return !!(selectedRows ?? []).find(id => id.toString() === rowId.toString());\n}\n\nexport const isTableWithoutHeader = (columns: TColumn[]): boolean => {\n return !columns.find(col => col.label);\n};\n\nexport function getAction(row: IRow, isForPrint: boolean): React.ReactElement {\n if (!row.drilldown || isForPrint) {\n return null;\n }\n\n // apparently, during action te drilldown button is supposed to have 0.5 opacity\n // but it's different from when row is disabled\n let Action: React.ReactElement;\n if (typeof row.drilldown === \"function\") {\n Action = row.drilldown(row);\n } else {\n Action = typeof row.drilldown !== \"boolean\" ? row.drilldown\n : ();\n }\n\n if (!Action) {\n // case can still return null\n return null;\n }\n\n return Action.type === \"a\" ? Action : (\n \n {Action}\n \n );\n}","import { PureComponent } from 'react';\n\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nfunction isRangeVisible(_ref) {\n var lastRenderedStartIndex = _ref.lastRenderedStartIndex,\n lastRenderedStopIndex = _ref.lastRenderedStopIndex,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n\nfunction scanForUnloadedRanges(_ref) {\n var isItemLoaded = _ref.isItemLoaded,\n itemCount = _ref.itemCount,\n minimumBatchSize = _ref.minimumBatchSize,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n var unloadedRanges = [];\n\n var rangeStartIndex = null;\n var rangeStopIndex = null;\n\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n var loaded = isItemLoaded(_index);\n\n if (!loaded) {\n rangeStopIndex = _index;\n if (rangeStartIndex === null) {\n rangeStartIndex = _index;\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push(rangeStartIndex, rangeStopIndex);\n\n rangeStartIndex = rangeStopIndex = null;\n }\n }\n\n // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.\n // Scan forward to try filling our :minimumBatchSize.\n if (rangeStopIndex !== null) {\n var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), itemCount - 1);\n\n for (var _index2 = rangeStopIndex + 1; _index2 <= potentialStopIndex; _index2++) {\n if (!isItemLoaded(_index2)) {\n rangeStopIndex = _index2;\n } else {\n break;\n }\n }\n\n unloadedRanges.push(rangeStartIndex, rangeStopIndex);\n }\n\n // Check to see if our first range ended prematurely.\n // In this case we should scan backwards to try filling our :minimumBatchSize.\n if (unloadedRanges.length) {\n while (unloadedRanges[1] - unloadedRanges[0] + 1 < minimumBatchSize && unloadedRanges[0] > 0) {\n var _index3 = unloadedRanges[0] - 1;\n\n if (!isItemLoaded(_index3)) {\n unloadedRanges[0] = _index3;\n } else {\n break;\n }\n }\n }\n\n return unloadedRanges;\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar InfiniteLoader = function (_PureComponent) {\n inherits(InfiniteLoader, _PureComponent);\n\n function InfiniteLoader() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, InfiniteLoader);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = InfiniteLoader.__proto__ || Object.getPrototypeOf(InfiniteLoader)).call.apply(_ref, [this].concat(args))), _this), _this._lastRenderedStartIndex = -1, _this._lastRenderedStopIndex = -1, _this._memoizedUnloadedRanges = [], _this._onItemsRendered = function (_ref2) {\n var visibleStartIndex = _ref2.visibleStartIndex,\n visibleStopIndex = _ref2.visibleStopIndex;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isInteger(visibleStartIndex) || !isInteger(visibleStopIndex)) {\n console.warn('Invalid onItemsRendered signature; please refer to InfiniteLoader documentation.');\n }\n\n if (typeof _this.props.loadMoreRows === 'function') {\n console.warn('InfiniteLoader \"loadMoreRows\" prop has been renamed to \"loadMoreItems\".');\n }\n }\n\n _this._lastRenderedStartIndex = visibleStartIndex;\n _this._lastRenderedStopIndex = visibleStopIndex;\n\n _this._ensureRowsLoaded(visibleStartIndex, visibleStopIndex);\n }, _this._setRef = function (listRef) {\n _this._listRef = listRef;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(InfiniteLoader, [{\n key: 'resetloadMoreItemsCache',\n value: function resetloadMoreItemsCache() {\n var autoReload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this._memoizedUnloadedRanges = [];\n\n if (autoReload) {\n this._ensureRowsLoaded(this._lastRenderedStartIndex, this._lastRenderedStopIndex);\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n if (this._listRef == null) {\n console.warn('Invalid list ref; please refer to InfiniteLoader documentation.');\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children({\n onItemsRendered: this._onItemsRendered,\n ref: this._setRef\n });\n }\n }, {\n key: '_ensureRowsLoaded',\n value: function _ensureRowsLoaded(startIndex, stopIndex) {\n var _props = this.props,\n isItemLoaded = _props.isItemLoaded,\n itemCount = _props.itemCount,\n _props$minimumBatchSi = _props.minimumBatchSize,\n minimumBatchSize = _props$minimumBatchSi === undefined ? 10 : _props$minimumBatchSi,\n _props$threshold = _props.threshold,\n threshold = _props$threshold === undefined ? 15 : _props$threshold;\n\n\n var unloadedRanges = scanForUnloadedRanges({\n isItemLoaded: isItemLoaded,\n itemCount: itemCount,\n minimumBatchSize: minimumBatchSize,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(itemCount - 1, stopIndex + threshold)\n });\n\n // Avoid calling load-rows unless range has changed.\n // This shouldn't be strictly necessary, but is maybe nice to do.\n if (this._memoizedUnloadedRanges.length !== unloadedRanges.length || this._memoizedUnloadedRanges.some(function (startOrStop, index) {\n return unloadedRanges[index] !== startOrStop;\n })) {\n this._memoizedUnloadedRanges = unloadedRanges;\n this._loadUnloadedRanges(unloadedRanges);\n }\n }\n }, {\n key: '_loadUnloadedRanges',\n value: function _loadUnloadedRanges(unloadedRanges) {\n var _this2 = this;\n\n // loadMoreRows was renamed to loadMoreItems in v1.0.3; will be removed in v2.0\n var loadMoreItems = this.props.loadMoreItems || this.props.loadMoreRows;\n\n var _loop = function _loop(i) {\n var startIndex = unloadedRanges[i];\n var stopIndex = unloadedRanges[i + 1];\n var promise = loadMoreItems(startIndex, stopIndex);\n if (promise != null) {\n promise.then(function () {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (isRangeVisible({\n lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n startIndex: startIndex,\n stopIndex: stopIndex\n })) {\n // Handle an unmount while promises are still in flight.\n if (_this2._listRef == null) {\n return;\n }\n\n // Resize cached row sizes for VariableSizeList,\n // otherwise just re-render the list.\n if (typeof _this2._listRef.resetAfterIndex === 'function') {\n _this2._listRef.resetAfterIndex(startIndex, true);\n } else {\n // HACK reset temporarily cached item styles to force PureComponent to re-render.\n // This is pretty gross, but I'm okay with it for now.\n // Don't judge me.\n if (typeof _this2._listRef._getItemStyleCache === 'function') {\n _this2._listRef._getItemStyleCache(-1);\n }\n _this2._listRef.forceUpdate();\n }\n }\n });\n }\n };\n\n for (var i = 0; i < unloadedRanges.length; i += 2) {\n _loop(i);\n }\n }\n }]);\n return InfiniteLoader;\n}(PureComponent);\n\nexport default InfiniteLoader;\n","import { composeRefHandlers, doesElementContainsElement } from \"@utils/general\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport React, { AriaAttributes, PureComponent } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BorderSize, IconSize, MouseButton, RowType, Sort, Status, TableAddingRowType, TextAlign } from \"../../enums\";\nimport { IModifierKeys, TRecordAny } from \"../../global.types\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { TableCaretIcon } from \"../icon\";\nimport Tooltip, { ITooltipProps } from \"../tooltip/Tooltip\";\nimport {\n ActionColumn,\n AfterContent,\n AfterContentWrapper,\n GroupIconWrapper,\n HeaderCellInner,\n HoverContentWrapper,\n IconWrapper,\n LabelGroup,\n Resizer,\n RowStretcher,\n SortDownIconStyled,\n SortIconStyled,\n StyledBodyCell,\n StyledBodyCellContent,\n StyledHeaderCell,\n StyledStatusHighlight,\n StyledValueRow,\n ValueWrapper\n} from \"./Rows.styles\";\nimport { IColumnResizeEvent, IRow, ISort, ISticky, TId } from \"./Table\";\nimport { HeaderTooltipIcon } from \"./Table.styles\";\n\nexport interface IRowMouseEvent {\n originalEvent: React.MouseEvent;\n target: Element;\n id: TId;\n groupId?: TId;\n part: number;\n customData: any;\n}\n\nexport interface IRowFocusEvent {\n originalEvent: React.FocusEvent;\n id: TId;\n groupId?: TId;\n customData: any;\n}\n\nexport interface IRowProps {\n id: TId;\n /** Id for testing purposes, can be different from id.toString() */\n dataId?: string;\n /** Used for shared hover state between multiple rows */\n groupId?: TId;\n onClick?: (id: TId, props: IRowProps, modifiers?: IModifierKeys) => void;\n onContextMenu?: (id: TId, props: IRowProps, event: React.MouseEvent) => void;\n onDragStart?: (id: TId, props: IRowProps, event: React.DragEvent) => void;\n onMouseEnter?: (args: IRowMouseEvent) => void;\n onMouseLeave?: (args: IRowMouseEvent) => void;\n onFocus?: (args: IRowFocusEvent) => void;\n selected?: boolean;\n isList?: boolean;\n isLocked?: boolean;\n type?: RowType;\n statusHighlight?: Status;\n statusHighlightTooltip?: ITooltipProps[\"content\"];\n isDivider?: boolean;\n sticky?: ISticky;\n minWidth?: number;\n offset?: number;\n level?: number;\n nextRowIsSelected?: boolean;\n action?: React.ReactElement;\n addingRow?: TableAddingRowType;\n tooltip?: string;\n isDisabled?: boolean;\n isHoverDisabled?: boolean;\n isHighlighted?: boolean;\n style?: React.CSSProperties;\n passRef?: React.Ref;\n passProps?: TRecordAny;\n hierarchy?: string;\n customBackgroundColor?: string;\n customRowBorderColor?: string;\n /** Can be used to store some custom data, passed in onClick event */\n customData?: any;\n\n // group properties\n hasRows?: boolean;\n /** Whether any row in current level is a group with toggle caret */\n hasGroups?: boolean;\n onGroupToggle?: (id: TId) => void;\n open?: boolean;\n isBold?: boolean;\n nextRow?: IRow;\n}\n\nexport class Row extends PureComponent {\n /* We want to prevent onClick when user just wants to select some text for copy paste */\n selectedTextWhenMouseDown = \"\";\n _rowRef = React.createRef();\n\n handleRowClick = (event: React.MouseEvent | React.KeyboardEvent): boolean => {\n if (event.defaultPrevented\n // ignore clicks on tag (DrilldownLink)\n || (event.target as HTMLElement).tagName === \"A\"\n ) {\n return false;\n }\n\n if (this.selectedTextWhenMouseDown === removeWhiteSpace(window.getSelection().toString())) {\n const { shiftKey, altKey, ctrlKey, metaKey } = event;\n this.props.onClick?.(this.props.id, this.props, { shiftKey, altKey, ctrlKey, metaKey });\n }\n\n this.selectedTextWhenMouseDown = \"\";\n\n if (!this.props.action && this.props.hasRows && this.props.onGroupToggle) {\n this.props.onGroupToggle(this.props.id);\n }\n\n return true;\n };\n\n handleMouseDown = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n // when shift key is pressed, we don't want to make selection in table (prevent default), but we\n // do make multi row selection, @see handleRowClick\n event.preventDefault();\n }\n\n const selection = window.getSelection();\n\n if (selection && doesElementContainsElement(this._rowRef.current, selection.anchorNode?.parentElement as Element)) {\n this.selectedTextWhenMouseDown = removeWhiteSpace(window.getSelection().toString());\n }\n };\n\n handleGroupIconClick = (e: React.MouseEvent): void => {\n this.props.onGroupToggle?.(this.props.id);\n e.stopPropagation(); // prevent rowClick event\n };\n\n handleMouseEnter = (event: React.MouseEvent): void => {\n this.props.onMouseEnter?.({\n originalEvent: event,\n target: (event.target as HTMLDivElement).parentElement.parentElement,\n id: this.props.id,\n groupId: this.props.groupId,\n part: -1,\n customData: this.props.customData\n });\n };\n\n handleMouseLeave = (event: React.MouseEvent): void => {\n this.props.onMouseLeave?.({\n originalEvent: event,\n target: (event.target as HTMLDivElement).parentElement.parentElement,\n id: this.props.id,\n groupId: this.props.groupId,\n part: -1,\n customData: this.props.customData\n });\n };\n\n handleFocus = (event: React.FocusEvent): void => {\n this.props.onFocus?.({\n originalEvent: event,\n id: this.props.id,\n groupId: this.props.groupId,\n customData: this.props.customData\n });\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n if (e.key === KeyName.Enter) {\n const handled = this.handleRowClick(e);\n\n // without the check, enter doesn't work on drilldown link\n if (handled) {\n e.preventDefault();\n }\n } else if (e.key === KeyName.Space) {\n this.props.hasRows && this.props.onGroupToggle?.(this.props.id);\n e.preventDefault();\n }\n };\n\n handleContextMenu = (event: React.MouseEvent): void => {\n this.props.onContextMenu?.(this.props.id, this.props, event);\n };\n\n handleDragStart = (event: React.DragEvent): void => {\n this.props.onDragStart?.(this.props.id, this.props, event);\n };\n\n // TODO: are 4 different test ids necessary\n dataTestId = (): string => {\n if (this.props.type === RowType.Aggregation) {\n return TestIds.TableAggregationRow;\n } else if (this.props.type === RowType.Group) {\n return TestIds.TableGroupRow;\n } else if (this.props.type === RowType.Merged) {\n return TestIds.TableMergedRow;\n }\n return TestIds.TableRow;\n };\n\n render() {\n return (\n \n {(ref) =>\n \n {this.props.statusHighlight &&\n \n {(ref) => (\n \n )}\n \n }\n {(this.props.hasGroups || this.props.hierarchy) &&\n this.props.hasRows &&\n \n \n \n }\n {this.props.children}\n \n {this.props.action &&\n \n {this.props.action}\n \n }\n }\n \n );\n }\n}\n\nexport interface ICellProps {\n id: TId;\n columnIndex: number;\n sticky?: ISticky;\n isLoading?: boolean;\n isColumnHighlighted?: boolean;\n isRowHighlighted?: boolean;\n border?: BorderSize;\n first?: boolean;\n last?: boolean;\n hasGroups?: boolean;\n tooltip?: string | React.ReactNode;\n onlyShowTooltipWhenChildrenOverflowing?: boolean;\n textAlign?: TextAlign;\n width: number;\n minWidth?: number;\n level?: number;\n customBackgroundColor?: string;\n // can be used as \"subcolumn\" positioned after the cell value\n afterContent?: React.ReactNode;\n hoverContent?: React.ReactNode;\n keepSpaceForStatus?: boolean;\n hasAction?: boolean;\n afterContentMinWidth?: number;\n allowOverflow?: boolean;\n stretchContent?: boolean;\n isHierarchy?: boolean;\n isForPrint?: boolean;\n onColumnResize?: (props: IColumnResizeEvent) => void;\n}\n\nexport interface IHeaderCellProps extends ICellProps {\n sort?: Sort;\n // if this column isn't sorted, next sort direction on click is selected\n // based on the current sort (on another column which actually has sort)\n currentSort?: Sort;\n info?: string;\n disableSort?: boolean;\n onClick?: (props: ISort) => void;\n}\n\nclass HeaderCell extends PureComponent {\n onLabelGroupClick = (): void => {\n let sort: Sort;\n\n if (this.props.sort || !this.props.currentSort) {\n sort = !this.props.sort || this.props.sort === Sort.Desc ? Sort.Asc : Sort.Desc;\n } else {\n sort = this.props.currentSort;\n }\n\n if (this.props.onClick && !this.props.disableSort) {\n this.props.onClick({\n id: this.props.id,\n sort\n });\n }\n };\n\n getAriaSort = (): AriaAttributes[\"aria-sort\"] => {\n if (!this.props.sort) {\n return null;\n }\n return this.props.sort === Sort.Asc ? \"ascending\" : \"descending\";\n };\n\n render() {\n // html2canvas doesn't support css rotation = >use two icons instead\n const currentSort = this.props.sort ?? this.props.currentSort;\n const Icon = !currentSort || currentSort === Sort.Asc ? SortIconStyled : SortDownIconStyled;\n\n return (\n \n {/*we don't wont to propagate all the props, for example onClick to header cell*/}\n \n \n \n {this.props.children}\n \n {/* !!! IconWrapper has to be right next to ValueHelper because of hover styles */}\n {\n \n \n \n }\n {this.props.info &&\n \n {this.props.info}\n \n }\n \n \n \n );\n }\n}\n\nconst HeaderCellExtended = withTranslation([\"Components\"])(HeaderCell);\nexport { HeaderCellExtended as HeaderCell };\n\nexport class BodyCell extends PureComponent {\n static defaultProps: Partial = {\n level: 0,\n onlyShowTooltipWhenChildrenOverflowing: true\n };\n\n cellRef = React.createRef();\n initOffset: number;\n\n handleMouseDown = (event: React.MouseEvent): void => {\n if (event.button !== MouseButton.MainButton) {\n return;\n }\n\n event.preventDefault(); // disable text selection\n event.stopPropagation();\n this.initOffset = this.cellRef.current.getBoundingClientRect().right - event.clientX;\n\n window.document.addEventListener(\"mousemove\", this.handleMouseMove);\n // use capture to prevent row click after resizing\n window.document.addEventListener(\"click\", this.handleMouseUp, true);\n };\n\n // prevent click event from propagation to row, to prevent row selection when resizing\n handleMouseClick = (event: React.MouseEvent | MouseEvent): void => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n handleColumnResize = (event: MouseEvent, end?: boolean): void => {\n let newWidth;\n\n if (this.props.onColumnResize) {\n const offset = this.cellRef.current.getBoundingClientRect().right - event.clientX;\n newWidth = (event.clientX - this.cellRef.current.getBoundingClientRect().left) + this.initOffset;\n\n this.props.onColumnResize({\n id: this.props.id,\n columnIndex: this.props.columnIndex,\n oldWidth: this.props.width,\n width: newWidth,\n delta: newWidth - this.props.width,\n stepDelta: this.initOffset - offset,\n level: this.props.level,\n end\n });\n }\n };\n\n handleMouseMove = (event: MouseEvent): void => {\n this.handleColumnResize(event);\n };\n\n handleMouseUp = (event: MouseEvent): void => {\n event.stopPropagation();\n event.preventDefault();\n this.handleColumnResize(event, true);\n\n window.document.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.document.removeEventListener(\"click\", this.handleMouseUp, true);\n };\n\n renderContent = (): React.ReactElement => {\n // overflowing text is supposed to have tooltip\n return (\n \n {(ref) => {\n return (\n \n {this.props.isLoading ? null : this.props.children}\n \n );\n }}\n \n );\n };\n\n renderAfterContent = (): React.ReactElement => {\n return (\n \n \n {this.props.afterContent}\n \n \n );\n };\n\n renderHoverContent = (): React.ReactElement => {\n return (\n \n {this.props.hoverContent}\n \n );\n };\n\n render() {\n const hasHoverContent = !!this.props.hoverContent;\n return (\n \n {this.renderContent()}\n {this.props.afterContent && this.renderAfterContent()}\n {hasHoverContent && this.renderHoverContent()}\n {this.props.onColumnResize &&\n \n }\n \n );\n }\n}","import {\n clamp,\n composeRefHandlers,\n doesElementContainsElement,\n getValue,\n isNotDefined,\n isObjectEmpty\n} from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React, { PureComponent } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { ThemeProvider, withTheme } from \"styled-components/macro\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport {\n ActionState,\n BorderSize,\n IconSize,\n RowAction,\n RowType,\n Sort,\n Status,\n TableAddingRowType,\n TableSizes,\n TextAlign,\n ToggleState\n} from \"../../enums\";\nimport { IModifierKeys, IToString, TRecordType } from \"../../global.types\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme, themes } from \"../../theme\";\nimport animationFrameThrottle from \"../../utils/animationFrameThrottle\";\nimport memoize from \"../../utils/memoize\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { WithBusyIndicator, withBusyIndicator } from \"../busyIndicator/withBusyIndicator\";\nimport { IconButton } from \"../button\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../focusManager/FocusManager\";\nimport { HOTSPOT_ID_ATTR } from \"../hotspots/Hotspots.utils\";\nimport { BinIcon, CloseIcon, IProps as IIconProps, LockFilledIcon, LockIcon, RefreshIcon } from \"../icon\";\nimport { ScrollBar } from \"../scrollBar\";\nimport { getRowFromArray, updateRowInArray } from \"../smart/smartTable/SmartTable.utils\";\nimport Tooltip, { ITooltipProps } from \"../tooltip\";\nimport { NoData } from \"./NoData\";\nimport { BodyCell, HeaderCell, IRowFocusEvent, IRowMouseEvent, IRowProps, Row } from \"./Rows\";\nimport { Label, LabelTooltipWrapper, RowShadow, RowShadowWrapper, RowStretcher, SimpleBodyCell } from \"./Rows.styles\";\nimport {\n ActionCheckBoxStyled,\n ActionIconWrapper,\n ActionRadioBoxStyled,\n AutoSizerWrapper,\n BeforeRowContentWrapper,\n FakeHeight,\n HeaderActionWrapper,\n HeaderActionWrapperPositioner,\n HeaderTooltipIcon,\n IconBar,\n IconBarScroll,\n InnerWrapper,\n MetaColumn,\n MetaColumnContent,\n MetaColumnLabel,\n NewRowContent,\n RowIcon,\n RowShadowScroll,\n StyledBody,\n StyledHeader,\n StyledTable,\n TableWrapper,\n WholeTableShadowWrapper\n} from \"./Table.styles\";\nimport { NEW_ROW_ID, OVERHANG_ROW_COUNT } from \"./Table.types\";\nimport {\n getAction,\n getLeavesColumns,\n isMetaColumn,\n isRowSelected,\n isRowValueCellValueObject,\n isTableWithoutHeader\n} from \"./TableUtils\";\nimport { WithContextMenu, withContextMenu, WithContextMenuProps } from \"./withContextMenu\";\n\nconst ROW_HEIGHT = TableSizes.RowHeight;\n\nexport interface ISort {\n id: TId;\n sort: Sort;\n}\n\nexport type TId = IToString /*| number*/;\n\nexport interface ICellValueObject {\n value: React.ReactNode;\n tooltip: string | React.ReactNode;\n // true by default\n onlyShowTooltipWhenChildrenOverflowing?: boolean;\n afterContent?: React.ReactNode;\n hoverContent?: React.ReactNode;\n}\n\nexport type TCellValue = string | number | ICellValueObject;\n\nexport interface IColumnResizeEvent {\n id: TId;\n columnIndex: number;\n oldWidth: number;\n width: number;\n // offset from original width\n delta: number;\n // offset from previous resize event\n stepDelta: number;\n // hierarchy level\n level: number;\n end: boolean;\n}\n\nexport interface ISticky {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport interface IRowValues {\n [key: string]: TCellValue | (() => TCellValue);\n}\n\nconst newRowTypes = [TableAddingRowType.New, TableAddingRowType.Copy, TableAddingRowType.Custom];\n\nexport interface IRow {\n /** Unique row id used in events and react key prop. */\n id: TId;\n /** Id for testing purposes, can be different from id.toString() */\n dataId?: string;\n /** Used for shared hover state between multiple rows */\n groupId?: TId;\n /** Object with key-value pairs corresponding to the table columns. Value can also be object {value, title}*/\n values: IRowValues;\n /** Object with key-value pairs corresponding to the table columns. Use overflow: visible instead of hidden.\n * Expected use is for some complex custom content. Don't forget to take care of the overflow and text ellipsis when used. */\n allowOverflow?: Record;\n selected?: boolean;\n sticky?: ISticky;\n /** If used, renders colored line in the left part of the row */\n statusHighlight?: Status;\n statusHighlightTooltip?: ITooltipProps[\"content\"];\n label?: string;\n open?: boolean;\n /** Number of all the rows, for virtualization. Used together with rows prop.\n * Required for all groups.*/\n rowCount?: number;\n type?: RowType;\n originalIndex?: number;\n /** Whether to show caret on the right side of the row (clickable)*/\n drilldown?: boolean | React.ReactElement | ((row: IRow) => React.ReactElement);\n level?: number;\n hierarchy?: string;\n rows?: IRow[];\n tooltip?: string;\n /** Loading state */\n isLoading?: boolean;\n /** Whether to show a small lock in front of the row. */\n isLocked?: boolean;\n isDisabled?: boolean;\n /** Whether to use special \"highlighted\" background */\n isHighlighted?: boolean;\n isBold?: boolean;\n /** Renders a divider line under the row */\n isDivider?: boolean;\n /** Can be used to store some custom data, passed in onClick event */\n customData?: any;\n content?: any;\n canUnlock?: boolean;\n}\n\ninterface IUnfoldRow extends IRow {\n group?: TId;\n groupIndex?: number;\n}\n\nexport interface IColumn {\n /** Unique column id used in events and react key prop. */\n id: string;\n label: string;\n info?: string;\n // width of the column\n width?: number;\n // min width of just the content of the column.\n // used automatically for stretchContent columns by TableWithAutoSizedColumns\n // can be smaller than width in case the column label longer than content.\n minWidth?: number;\n textAlign?: TextAlign;\n /** Disables sort for this column */\n disableSort?: boolean;\n /** Whole column rendered on white background */\n isHighlighted?: boolean;\n border?: BorderSize;\n afterContentMinWidth?: number;\n isSticky?: boolean;\n /** Divider lines won't be rendered for cells of this column.\n * So far, only used on SimpleTable, but could be applied to Table as well. */\n ignoreDividers?: boolean;\n /** Makes all text in the column bold.\n * So far, only used on SimpleTable, but could be applied to Table as well. */\n isBold?: boolean;\n hasGreyHeader?: boolean;\n /**\n * Flag to render the cell content of each row to the same width of the max width content for given column.\n * Typically used to align icons based on the widest text of that column. */\n stretchContent?: boolean;\n}\n\nexport interface IMetaColumn {\n label: string;\n columns: TColumn[];\n info?: string;\n isHighlighted?: boolean;\n border?: BorderSize;\n textAlign?: TextAlign;\n}\n\nexport type TColumn = IColumn | IMetaColumn;\n\nexport interface ILoadMoreItemsEvent {\n startIndex: number;\n stopIndex: number;\n group?: TId;\n}\n\nexport interface IScrollEvent {\n scrollTop: number;\n scrollLeft: number;\n}\n\nexport interface IActionRendererArgs {\n actionState: ActionState;\n onClick: (...args: any) => void;\n isDisabled: boolean;\n isMainToggle: boolean;\n rowId?: TId;\n isLocked?: boolean;\n canUnlock?: boolean;\n}\n\nexport interface IRowAction {\n actionType: RowAction;\n /** All following props are optional, when not provided, default behavior is used (managed by\n * SmartODataTableBase or SmartReportTable. E.g. customRender is provided or checkboxes are rendered.\n * Tables also can manage selecting particular rows, etc...\n **/\n toggleState?: ToggleState;\n onToggleChange?: (toggleState: ToggleState) => void;\n onClick?: (rowId: TId, row?: IRowProps) => void;\n getActionState?: (rowId: TId, row: IRowProps) => ActionState;\n render?: (args: IActionRendererArgs) => React.ReactNode;\n isSingleSelect?: boolean;\n showIconsOnHover?: ((rowId: TId, row: IRowProps) => boolean) | boolean;\n /** Custom tooltip shown on action hover */\n tooltip?: (rowId: TId) => string;\n}\n\nexport interface ITableProps extends WithContextMenuProps {\n tableId?: string;\n /**\n * Rows of the table. Can be of different row types.\n */\n rows: IRow[];\n columns: TColumn[];\n /** Number of all the rows in first level, for virtualization. Used together with rows prop.\n * if rowCount not given, length of the rows array is used instead (table doesn't expect that more rows than the given rows exists)*/\n rowCount?: number;\n selectedRows?: IToString[];\n minimumBatchSize?: number;\n minimumRenderedRows?: number;\n style?: React.CSSProperties;\n onLoadMoreItems?: (props: ILoadMoreItemsEvent) => void;\n onSortChange?: (props: ISort[]) => void;\n onGroupToggle?: (id: TId) => void;\n /** Disables sort for all columns */\n disableSort?: boolean;\n onScroll?: (props: IScrollEvent) => void;\n /** Disables resize cursor change and functionality. Used in Dashboard tables. */\n disableColumnResize?: boolean;\n onColumnResize?: (props: IColumnResizeEvent) => void;\n onRowSelect?: (id: TId, props: IRowProps, modifiers?: IModifierKeys) => void;\n onRowContextMenuSelection?: (id: TId, props: IRowProps, modifiers?: IModifierKeys) => void;\n onDragStart?: (id: TId, props: IRowProps, event: React.DragEvent) => void;\n sort?: ISort[];\n passRef?: React.Ref;\n tableWrapperRef?: React.Ref;\n noDataText?: string;\n hasSimplifiedNoData?: boolean;\n addingRow?: TableAddingRowType;\n /* Can be used with any addingRow type, new row will be add as child of this row. If null, new row will be insert as first row. */\n addingRowParent?: TId;\n onAddingRowCancel?: () => void;\n /** Event for the original designs of adding new hierarchical rows */\n onRowAdd?: (args: IRowAddEvent) => void;\n disableVirtualization?: boolean;\n // if explicitly set to false, there won't be additional 6px padding for the status token on the left\n useStatusHighlight?: boolean;\n isForPrint?: boolean;\n rowAction?: IRowAction;\n /** row state icon in front of the row (in front if action if both are active at same time) */\n rowIcon?: (id: TId, row: IRowProps, rowAction: IRowAction) => React.ComponentType;\n contentBefore?: (id: TId, row: IRowProps) => React.ReactElement;\n hierarchy?: string;\n isList?: boolean;\n isHoverDisabled?: boolean;\n customColors?: ICustomTableColors;\n customNewRowLabel?: React.ReactNode;\n customBusyContent?: React.ReactNode;\n withoutShadows?: boolean;\n}\n\nexport interface ICustomTableColors {\n rowBackgroundColor?: string;\n rowBorderColor?: string;\n}\n\nexport interface IRowAddEvent {\n siblingRow: IRow;\n type: TableAddingRowType;\n parent: IRow;\n}\n\ntype TExtendedTableProps =\n ITableProps\n & WithTranslation\n & WithBusyIndicator\n & WithContextMenu\n & WithDomManipulator\n & PropsWithTheme;\n\ninterface IState {\n // if any table row has drilldown action,\n // we need to add padding so that the icon doesn't block last column value\n // => store it into state\n hasDrilldownAction?: boolean;\n}\n\nclass Table extends PureComponent {\n static defaultProps: Partial = {\n minimumBatchSize: 0,\n minimumRenderedRows: 0,\n columns: [],\n rows: [],\n sort: []\n };\n\n state: Partial = {\n hasDrilldownAction: false\n };\n\n _headerRef = React.createRef();\n _bodyRef = React.createRef();\n _scrollRef = React.createRef();\n _tableRef = React.createRef();\n\n _iconBarRef = React.createRef();\n _iconBarScrollRef = React.createRef();\n _rowShadowRef = React.createRef();\n _rowShadowScrollRef = React.createRef();\n\n _prevRows: IRow[];\n _prevColumns: TColumn[];\n\n private _firstScroll = true;\n\n // for each level of nesting, holds value whether there is at least one row with group caret on that level\n _hasGroups: TRecordType = {};\n\n _maxWidthFirstColumn = TableSizes.MaxColumnWidth;\n _minWidthFirstColumn = TableSizes.MinColumnWidth;\n\n _unfoldedRows: IUnfoldRow[];\n _toggledGroupId: TId;\n\n componentDidMount(): void {\n this.init();\n this.alignHeader();\n\n if (!this.props.busy) {\n this.onLoaded();\n }\n }\n\n componentDidUpdate(prevProps: TExtendedTableProps) {\n // if (prevProps.scrollTop !== this.props.scrollTop && this._scrollRef.current.scrollTop !== this.props.scrollTop) {\n // this._scrollRef.current.scrollTop = this.props.scrollTop;\n // }\n this.init();\n this.handleToggledGroup();\n this.alignHeader();\n\n if (prevProps.busy && !this.props.busy) {\n this.onLoaded();\n }\n if ((!prevProps.addingRow && this.props.addingRow) || (this.props.addingRow && prevProps.addingRowParent !== this.props.addingRowParent)) {\n this.scrollToNewRow();\n } else if ((!prevProps.minimumRenderedRows && this.props.minimumRenderedRows) || (prevProps.busy && !this.props.busy)) {\n // this indicates that the data has probably changed => we want to scroll top when new data are loaded\n this.scrollTop();\n }\n\n // if some row has action (drilldown), we need to add same padding to the last column as well,\n // otherwise, if the last column is aligned to the right, it would have different position then the row values\n // we use first row to determine if drilldown action is used,\n // same logic is used in TableWithAutoSizedColumns when computing columns widths\n // change if needed\n const hasDrilldownAction = this.props.rows?.length > 0 && this.props.rows[0] && !!getAction(this.props.rows[0], this.props.isForPrint);\n\n if (this.state.hasDrilldownAction !== hasDrilldownAction) {\n this.setState({\n hasDrilldownAction\n });\n }\n }\n\n alignHeader() {\n this.props.domManipulatorOrchestrator.registerCallback<{ width: number }>(\n () => ({\n width: this._iconBarRef.current?.clientWidth\n }),\n ({ width }) => {\n if (this._headerRef.current) {\n this._headerRef.current.style.marginLeft = `${width ?? 0}px`;\n }\n },\n [this._iconBarRef, this._headerRef]\n );\n }\n\n onLoaded = () => {\n setTimeout(() => {\n this._tableRef.current?.dispatchEvent(\n new CustomEvent(\"tableLoaded\", { bubbles: true })\n );\n });\n };\n\n init = () => {\n if (this._firstScroll) {\n this.scrollToRow(this.props.selectedRows?.[0]);\n }\n };\n\n /** Returns list of column leaves */\n getColumns = () => {\n return getLeavesColumns(this.props.columns);\n };\n\n handleToggledGroup = () => {\n // if group was toggled, we need to set the group hover for the newly rendered child rows\n if (this._toggledGroupId) {\n this.setHover(null, this._toggledGroupId, true);\n this._toggledGroupId = null;\n }\n };\n\n isRowLoaded = (index: number): boolean => {\n if (!this._unfoldedRows) {\n return false;\n }\n\n return this._unfoldedRows && !!this._unfoldedRows[index];\n };\n\n getTranslateOffset = (scrollTop: number): number => {\n const offset = Math.floor(scrollTop / ROW_HEIGHT) * ROW_HEIGHT - ROW_HEIGHT * OVERHANG_ROW_COUNT;\n return offset < 0 ? 0 : offset;\n };\n\n getScrollTop = () => {\n // scrollTop doesn't have to be required property\n return this._scrollRef.current ? this._scrollRef.current.scrollTop : 0;\n };\n\n scrollTop = (): void => {\n if (this._scrollRef.current) {\n this._scrollRef.current.scrollTop = 0;\n }\n };\n\n scrollToNewRow = (): void => {\n this.scrollToRow(NEW_ROW_ID);\n };\n\n handleScrollThrottled = ({ scrollTop, scrollLeft }: { scrollTop: number, scrollLeft: number }) => {\n // synchronize horizontal scrollbar with header\n this._headerRef.current.scrollLeft = scrollLeft;\n\n if (!this.shouldDisableVirtualization()) {\n const translate = this.getTranslateOffset(scrollTop);\n\n // compensate for the shadows padding\n // translation for virtualization\n this._bodyRef.current.style.transform = `translateY(${translate}px)`;\n\n const paddingTop = scrollTop > 0 ? 0 : TableSizes.ShadowPadding;\n\n this._rowShadowScrollRef.current.scrollTop = scrollTop;\n this._rowShadowScrollRef.current.style.paddingTop = `${paddingTop}px`;\n this._rowShadowScrollRef.current.style.top = `${-paddingTop}px`;\n\n this._rowShadowRef.current.style.transform = `translateY(${translate}px)`;\n this._rowShadowRef.current.style.top = `${paddingTop}px`;\n this._rowShadowRef.current.style.height = `calc(100% - ${TableSizes.ShadowPadding}px - ${paddingTop}px)`;\n\n if (this._iconBarRef.current) {\n this._iconBarRef.current.style.transform = `translateY(${translate}px)`;\n // synchronize vertical with the right icon bar section\n this._iconBarScrollRef.current.scrollTop = scrollTop;\n }\n\n if (this.props.onScroll) {\n this.props.onScroll({ scrollTop, scrollLeft });\n }\n\n // move focus outline with the scrollbar, so that it is visually pleasing\n // and doesn't end in the middle of the table when scrolled all the way to the right\n const focusedElement = document.activeElement as HTMLElement;\n if (focusedElement && focusedElement.getAttribute(\"role\") && doesElementContainsElement(this._bodyRef.current, focusedElement)) {\n this.shiftRowFocusElement(focusedElement, scrollLeft);\n }\n\n // other option is to set new visible rows into state here, seems slower\n this.forceUpdate();\n }\n };\n\n handleScroll = (event: React.UIEvent) => {\n const target = event.target as HTMLDivElement;\n\n this.handleScrollThrottled({ scrollTop: target.scrollTop, scrollLeft: target.scrollLeft });\n };\n\n scrollToRow = (id: IToString) => {\n if (!this._unfoldedRows || this._unfoldedRows.length === 0 || isNotDefined(id) || !this._scrollRef.current) {\n return;\n }\n\n this._firstScroll = false;\n\n const rowIndex = this._unfoldedRows.findIndex((row) => row?.id.toString() === id.toString());\n\n if (rowIndex < 0) {\n return;\n }\n\n const rowPosition = Math.max(0, ROW_HEIGHT * rowIndex - ROW_HEIGHT);\n\n setTimeout(() => {\n if (this._scrollRef.current) {\n this._scrollRef.current.scrollTop = rowPosition;\n }\n });\n };\n\n handleColumnResize = animationFrameThrottle((params: IColumnResizeEvent) => {\n if (!this._tableRef.current) {\n return;\n }\n\n let width = params.width;\n let diff = params.stepDelta;\n\n if (params.columnIndex === 0) {\n const firstColumnWidth = this.getColumns()?.[0]?.width;\n\n width = firstColumnWidth + params.delta;\n\n if (!isObjectEmpty(this._hasGroups)) {\n const clampedWidth = clamp(width, this._minWidthFirstColumn, this._maxWidthFirstColumn);\n\n diff = params.stepDelta - (width - clampedWidth);\n width = clampedWidth;\n }\n }\n\n // performance optimization\n // update column widths with javascript and only call parents onColumnResize after the resize event ends\n const columnDivs = this._tableRef.current.querySelectorAll(`[data-column-index='${params.columnIndex}']`);\n columnDivs.forEach(columnDiv => {\n let flexDiv = columnDiv.parentElement;\n\n if (!flexDiv.style.flex) {\n flexDiv = flexDiv.parentElement;\n }\n\n const [grow, shrink, basis] = flexDiv.style.flex.split(\" \");\n let newWidth = parseInt(basis) + diff;\n\n newWidth = clamp(newWidth, TableSizes.MinColumnWidth, TableSizes.MaxColumnWidth);\n\n flexDiv.style.flex = `${grow} ${shrink} ${newWidth}px`;\n flexDiv.style.width = `${newWidth}px`;\n });\n\n if (!this.props.disableColumnResize && this.props.onColumnResize && params.end) {\n this.props.onColumnResize({\n ...params,\n width\n });\n }\n });\n\n getColumnStickyValues = (isSticky: boolean, columns: IColumn[] = [], index: number) => {\n if (!isSticky) {\n return null;\n }\n\n let left = 0;\n let right = 0;\n\n for (let j = 0; j < columns.length; j++) {\n if (j !== index && columns[j].isSticky) {\n if (j < index) {\n left += columns[j].width;\n } else if (j > index) {\n right += columns[j].width;\n }\n }\n }\n\n return { left, right };\n };\n\n getRowsStickyValues = (isSticky: ISticky, rows: IRow[], index: number) => {\n if (!isSticky) {\n return null;\n }\n\n let top = 0;\n let bottom = 0;\n\n for (let j = 0; j < rows.length; j++) {\n if (j !== index && rows[j] && rows[j].sticky) {\n if (j < index) {\n top += ROW_HEIGHT;\n } else if (j > index) {\n bottom += ROW_HEIGHT;\n }\n }\n }\n\n return { top, bottom };\n };\n\n getRowColumnValue = memoize((row: IRow, column: IColumn): TCellValue => {\n return getValue(row.values[column.id]);\n }, (row: IRow, column: IColumn) => `${row.id?.toString()}-${column.id}`);\n\n getRowProperty = (row: IRow, column: IColumn, prop: \"tooltip\" | \"value\" | \"onlyShowTooltipWhenChildrenOverflowing\") => {\n let value;\n\n if (row) {\n value = this.getRowColumnValue(row, column);\n\n if (isRowValueCellValueObject(value)) {\n if (this.props.isForPrint) {\n // todo doesn't work for some cases without title\n // for printing, we render just title instead of icons\n prop = \"tooltip\";\n }\n value = value[prop];\n }\n }\n\n return value;\n };\n\n getRowValue = (row: IRow, column: IColumn) => {\n return this.getRowProperty(row, column, \"value\");\n };\n\n getRowTooltip = (row: IRow, column: IColumn): string => {\n return (this.getRowProperty(row, column, \"tooltip\") as string);\n };\n\n getRowTooltipVisibility = (row: IRow, column: IColumn): boolean => {\n return (this.getRowProperty(row, column, \"onlyShowTooltipWhenChildrenOverflowing\") as boolean);\n };\n\n setHover = (rowId: TId, groupId: TId, forceHover: boolean) => {\n if (rowId && this._iconBarRef.current) {\n const row = this._iconBarRef.current.querySelector(`[data-rowid=\"${rowId.toString()}\"]`);\n row.classList[forceHover ? \"add\" : \"remove\"](\"hover\");\n }\n\n if (!!this.props.rowAction) {\n return;\n }\n\n if (groupId) {\n const rows = [...this._tableRef.current.querySelectorAll(`[data-groupid=\"${groupId.toString()}\"]`)];\n\n for (const row of rows) {\n for (const child of [...row.children]) {\n if (child.getAttribute('data-testid') !== TestIds.State) {\n (child as HTMLElement).style.backgroundColor = forceHover ? this.props.theme.C_BG_row_field_hover : this.props.theme.C_BG_row_field;\n }\n }\n }\n }\n };\n\n handleRowMouseEnter = (e: IRowMouseEvent) => {\n this.setHover(e.id, e.groupId, true);\n };\n\n handleRowMouseLeave = (e: IRowMouseEvent) => {\n this.setHover(e.id, e.groupId, false);\n };\n\n /** Move focus outline with the scrollbar, so that it is visually pleasing\n and doesn't end in the middle of the table when scrolled all the way to the right */\n shiftRowFocusElement = (focusedElement: HTMLElement, scrollLeft: number) => {\n // compensate for the hierarchy rows offset\n const offsetX = focusedElement.parentElement.clientWidth - focusedElement.clientWidth;\n const focusScrollLeft = Math.min(scrollLeft < offsetX ? 1 : scrollLeft - offsetX);\n\n focusedElement.style.setProperty(\"--left\", `${focusScrollLeft}px`);\n focusedElement.style.setProperty(\"--width\", `calc(100% + ${Math.min(scrollLeft, offsetX)}px)`);\n };\n\n handleRowFocus = (e: IRowFocusEvent) => {\n const focusedElement = e.originalEvent.target as HTMLElement;\n const scrollLeft = this._scrollRef.current.scrollLeft;\n\n this.shiftRowFocusElement(focusedElement, scrollLeft);\n };\n\n isRowSelected = (rowId: TId) => {\n return !this.props.isForPrint && isRowSelected(this.props.selectedRows, rowId);\n };\n\n getRowType = (row: IRow) => {\n return row.type ?? RowType.Value;\n };\n\n handleRowClick = (rowId: TId, props: IRowProps, modifiers?: IModifierKeys) => {\n this.props.onRowSelect?.(rowId, props, modifiers);\n };\n\n handleRowContextMenu = (rowId: TId, props: IRowProps, event: React.MouseEvent) => {\n if (this.props.onContextMenu) {\n // context menu is for whole table, we need to distinguish, which row was clicked, so we can set correct\n // context menu items for particular row (note, with multiple selection, more rows can be selected,\n // when the context menu is triggered)\n this.props.onRowContextMenuSelection?.(rowId, props, event);\n // shows context menu\n this.props.onContextMenu(event);\n }\n };\n\n handleGroupToggle = (id: TId) => {\n this._toggledGroupId = id;\n this.props.onGroupToggle(id);\n };\n\n renderRow = (row: IRow, i: number, nextRow: IRow, itemProps: IFocusableItemProps) => {\n if (!row) {\n // null stands for unloaded row so that handleLoadMoreRows can be triggered\n return null;\n }\n\n if (this.getRowType(row) === RowType.New) {\n return (\n 0 ? this.getTableMinWidth() : null}\n action={\n \n }\n level={row.level}\n offset={this.getTranslateOffset(this.getScrollTop())}>\n \n {row.content}\n \n \n );\n }\n\n const isLocked = this.isRowLocked(row);\n const action = getAction(row, this.props.isForPrint);\n const isDisabled = row.isDisabled || (this.props.rowAction && this.props.rowAction?.actionType !== RowAction.Custom && isLocked);\n const tooltip = row.tooltip ?? (isDisabled && isLocked ? this.props.t(\"Components:Table.LockedRecord\") : null);\n\n return (\n \n {this.getColumns().map((column, j, columns) => {\n let cellValueObject: ICellValueObject = null;\n\n const colValue = this.getRowColumnValue(row, column);\n\n if (isRowValueCellValueObject(colValue)) {\n cellValueObject = colValue as ICellValueObject;\n }\n\n return (\n \n {this.getRowValue(row, column)}\n \n );\n })}\n \n );\n };\n\n unfoldRows = (rows: IRow[], rowCount: number, level = 0, group: TId = null): IUnfoldRow[] => {\n const unfoldRows = [];\n let row: IUnfoldRow;\n\n for (let i = 0; i < rowCount; i++) {\n row = rows && rows[i];\n if (row) {\n row.level = level;\n row.group = group;\n row.groupIndex = i;\n\n if (row.type === RowType.Group || row.rows?.length) {\n row.group = row.id;\n row.groupIndex = -1;\n this._hasGroups[level] = this._hasGroups[level] || level > 0 || (!!row.rows && row.rows.length > 0);\n }\n\n unfoldRows.push(row);\n\n if (row.open) {\n unfoldRows.push(...this.unfoldRows(row.rows, this.getRowRowCount(row), level + 1, row.id));\n }\n } else {\n unfoldRows.push(null);\n }\n }\n\n return unfoldRows;\n };\n\n /** Cache unfolded rows so that we can have easy access to any row */\n prepareUnfoldedRowsMemoized = memoizeOne((rows: IRow[], rowCount: number, itemProps: IFocusableItemProps): void => {\n this._hasGroups = {};\n // caches unfolded and rendered rows\n this._unfoldedRows = this.unfoldRows(rows, rowCount);\n }, () => [this.props.columns, this.props.selectedRows, this.props.onRowSelect, this.props.addingRow, this.props.rowAction]);\n\n getRowRowCount = (row: Pick) => {\n return row.rowCount ?? row.rows?.length ?? 0;\n };\n\n shouldAddNewRowAsFirstRow = (): boolean => {\n return newRowTypes.includes(this.props.addingRow) && !this.props.addingRowParent;\n };\n\n /**\n * Returns rows if the table has rows only.\n * If table includes groups, it unfolds the nested rows into simple array.\n *\n */\n prepareRows = (itemProps: IFocusableItemProps) => {\n let rows = this.props.rows;\n let rowCount = this.getRowRowCount({ rowCount: this.props.rowCount, rows: this.props.rows });\n\n if (!this.props.isForPrint) {\n if (this.shouldAddNewRowAsFirstRow()) {\n let newRowContent: React.ReactNode;\n if (this.props.addingRow === TableAddingRowType.Custom && this.props.customNewRowLabel) {\n newRowContent = this.props.customNewRowLabel;\n } else {\n newRowContent = this.props.t(`Components:Table.${this.props.addingRow === TableAddingRowType.Copy ? \"CopiedRow\" : \"NewRow\"}`);\n }\n rows = [{\n id: NEW_ROW_ID,\n type: RowType.New,\n level: 0,\n content:\n {newRowContent},\n values: {}\n }, ...rows];\n\n rowCount += 1;\n } else if (this.props.addingRow && this.props.addingRowParent) {\n rows = cloneDeep(rows);\n let parentRow = getRowFromArray(rows, this.props.addingRowParent);\n\n if (parentRow) {\n const parentRows = parentRow?.rows ?? [];\n\n parentRow.rows = [{\n id: NEW_ROW_ID,\n type: RowType.New,\n content: {this.props.t(\"Components:Table.NewRow\")},\n values: {}\n }, ...parentRows];\n parentRow.rowCount = parentRow.rowCount ? parentRow.rowCount + 1 : 1;\n\n while (parentRow) {\n rows = updateRowInArray(rows, parentRow.id, (row) => {\n row.open = true;\n parentRow = row.customData?.parent;\n\n return row;\n });\n }\n\n\n }\n }\n }\n\n return this.prepareUnfoldedRowsMemoized(\n rows, rowCount, itemProps\n );\n };\n\n // renders ONLY visible rows\n getVisibleRows = (firstVisible: number, lastVisible: number, itemProps: IFocusableItemProps): React.ReactElement[] => {\n const visibleRows = [];\n\n lastVisible = Math.min(lastVisible, this.getTotalRowCount());\n\n // ignore sticky functionality for now, we don't use it anyway\n // const stickyRowsBefore = rows.reduce((rowsBefore, currentRow, i) => {\n // const isSticky = currentRow && currentRow.props.sticky && i <= firstVisible + rowsBefore.length;\n //\n // return isSticky ? [...rowsBefore, { ...currentRow, originalIndex: i }] : rowsBefore;\n // }, []);\n //\n //\n // const stickyRowsAfter = rows.reduce((rowsAfter, currentRow, i) => {\n // const isSticky = currentRow && currentRow.props.sticky && i >= lastVisible + rowsAfter.length;\n //\n // return isSticky ? [...rowsAfter, { ...currentRow, originalIndex: i }] : rowsAfter;\n // }, []);\n //\n // firstVisible += stickyRowsBefore.length;\n // lastVisible -= stickyRowsAfter.length;\n //\n // stickyRowsBefore.forEach(row => {\n // visibleRows.push(row);\n // });\n\n for (let i = firstVisible; i <= lastVisible; i++) {\n const renderedRow = this.renderRow(this._unfoldedRows[i], i, this._unfoldedRows[i + 1], itemProps);\n\n // const row = { ...renderedRow, originalIndex: i };\n\n // it's possible that the row has not yet been created by SmartTable (as \"loading\" state)\n if (renderedRow) {\n visibleRows.push(renderedRow);\n }\n }\n\n // stickyRowsAfter.forEach(row => {\n // visibleRows.push(row);\n // });\n\n return visibleRows;\n };\n\n getMaxOpenLevel = (rows: IUnfoldRow[] = [], level = 0) => {\n let maxLevel = level;\n\n rows.forEach(row => {\n if (!row || !row.open || !row.rows || row.rows.length === 0) {\n return;\n }\n\n maxLevel = Math.max(maxLevel, this.getMaxOpenLevel(row.rows, level + 1));\n });\n\n return maxLevel;\n };\n\n handleLoadMoreRows = (startIndex: number, stopIndex: number): null => {\n // TODO for props.addingRowParent the behavior is more complex,\n // but maybe it doesn't matter, since we usually have all rows loaded when using table with hierarchy\n\n // if Table manually add RowType.New into this._unfoldedRows\n // we need to load new rows from startIndex - 1, because new row isn't part of this.props.rows\n if (this.shouldAddNewRowAsFirstRow()) {\n startIndex -= 1;\n stopIndex -= 1;\n }\n\n if (this._unfoldedRows[startIndex - 1] && this._unfoldedRows[startIndex - 1].group) {\n this.props.onLoadMoreItems({\n group: this._unfoldedRows[startIndex - 1].group,\n startIndex: this._unfoldedRows[startIndex - 1].groupIndex + 1,\n stopIndex: this._unfoldedRows[startIndex - 1].groupIndex + 1 + (stopIndex - startIndex)\n });\n } else {\n this.props.onLoadMoreItems({ startIndex, stopIndex });\n }\n\n return null;\n };\n\n getTableMinWidth = () => {\n let minWidth = 0;\n\n this.getColumns().forEach((column, i) => {\n if (i === 0) {\n minWidth += this.getFirstColumnWidth();\n } else {\n minWidth += column.width;\n }\n });\n\n return minWidth;\n };\n\n getTotalHeight = (): number => {\n return this.getTotalRowCount() * ROW_HEIGHT;\n };\n\n getTotalRowCount = (): number => {\n return (this._unfoldedRows && this._unfoldedRows.length) || 0;\n };\n\n getFirstColumnWidth = (level = 0, { isHeader = false, width = this.getColumns()?.[0]?.width } = {}) => {\n let firstColumnWidth = width;\n\n if (!firstColumnWidth) {\n return 0;\n }\n\n const maxOpenLevel = this.getMaxOpenLevel(this.props.rows);\n\n // in hierarchy tables, only first level have groupMargin, others have more narrow indent\n for (let i = level; i < maxOpenLevel; i++) {\n firstColumnWidth += TableSizes.GroupMargin;\n }\n\n if (this._hasGroups[level] && !isHeader && !this.props.hierarchy) {\n // compensate for the group toggle icon\n firstColumnWidth -= IconSize.asNumber(\"XS\");\n }\n\n if (!isObjectEmpty(this._hasGroups)) {\n if (level === 0) {\n const diff = TableSizes.MaxColumnWidth - firstColumnWidth;\n this._maxWidthFirstColumn = diff > 0 ? width + diff : width - diff;\n } else if (level === maxOpenLevel) {\n const diff = firstColumnWidth - TableSizes.MinColumnWidth;\n this._minWidthFirstColumn = diff > 0 ? width - diff : width + diff;\n }\n }\n\n return firstColumnWidth;\n };\n\n getVisibleRowsRange = (height: number) => {\n let firstVisible = Math.floor(this.getScrollTop() / ROW_HEIGHT) - OVERHANG_ROW_COUNT;\n let lastVisible = firstVisible + Math.ceil(height / ROW_HEIGHT) + 2 * OVERHANG_ROW_COUNT;\n\n if (firstVisible < 0) {\n firstVisible = 0;\n }\n\n if (this.props.minimumRenderedRows && lastVisible - firstVisible < this.props.minimumRenderedRows) {\n lastVisible = firstVisible + this.props.minimumRenderedRows;\n }\n\n return { firstVisible, lastVisible };\n };\n\n getHeaderCellWidth = (i: number): number => {\n const columns = this.getColumns();\n\n if (i === 0 && !this.props.contentBefore) {\n return this.getFirstColumnWidth(0, { isHeader: true });\n } else {\n return columns[i].width;\n }\n };\n\n renderNoData = () => {\n return (\n \n );\n };\n\n renderActionButton = (args: IActionRendererArgs) => {\n const rowAction = this.props.rowAction;\n const isNoneActionState = args.actionState === ActionState.None;\n\n args.isDisabled = args.isDisabled || args.actionState === ActionState.Disabled;\n\n const _renderCheckbox = () => {\n if (this.props.rowAction?.isSingleSelect) {\n return ;\n } else {\n return ;\n }\n };\n\n let InnerIcon;\n let title;\n\n // todo would be nice if None actually meant no icon\n // and ActionState.Disabled could be add for disabled icons.\n // this would need refactoring in places where we currently use isRowWithoutAction to show disabled icons (e.g. CoA table)\n if (isNoneActionState) {\n return null;\n }\n\n switch (rowAction.actionType) {\n case RowAction.Lock:\n if (args.actionState === ActionState.Active) {\n InnerIcon = LockFilledIcon;\n title = !args.canUnlock && args.isLocked ? this.props.t(\"Components:Table.LockPermissionLack\") : this.props.t(\"Components:Table.UnlockRecord\");\n } else {\n InnerIcon = LockIcon;\n title = this.props.t(\"Components:Table.LockRecord\");\n }\n break;\n case RowAction.Remove:\n if (args.actionState === ActionState.Active) {\n InnerIcon = RefreshIcon;\n title = this.props.t(\"Components:Table.RestoreRow\");\n } else {\n InnerIcon = BinIcon;\n title = this.props.t(\"Components:Table.RemoveRow\");\n }\n break;\n case RowAction.MassEdit:\n case RowAction.Check:\n return _renderCheckbox();\n case RowAction.Custom:\n const { render } = rowAction;\n return render ? render(args) : _renderCheckbox();\n }\n\n const isDisabled = (isNoneActionState || args.isDisabled) || (rowAction.actionType === RowAction.Lock && !args.canUnlock && args.isLocked);\n return (\n <>\n \n \n \n \n );\n };\n\n handleToggleAllClick = () => {\n this.props.rowAction?.onToggleChange?.(this.props.rowAction?.toggleState === ToggleState.AllChecked ? ToggleState.AllUnchecked : ToggleState.AllChecked);\n };\n\n renderActionHeaderButton = () => {\n return (\n \n \n {\n this.renderActionButton({\n actionState: this.props.rowAction?.toggleState === ToggleState.AllChecked ? ActionState.Active : ActionState.Inactive,\n onClick: this.handleToggleAllClick,\n isDisabled: this.props.rowAction?.toggleState === ToggleState.Disabled,\n isMainToggle: true\n })\n }\n \n \n );\n };\n\n renderActionRowButton = (row: Row, actionState: ActionState, isDisabled: boolean, isLocked: boolean, canUnlock: boolean) => {\n return this.renderActionButton({\n actionState,\n onClick: () => this.props.rowAction.onClick(row.props.id, row.props as IRowProps),\n isDisabled, isMainToggle: false,\n rowId: row.props.id,\n isLocked,\n canUnlock\n });\n };\n\n isRowLocked = (row: IRow) => {\n return (!this.props.rowAction || this.props.rowAction.actionType !== RowAction.Lock) && (row).isLocked;\n };\n\n renderShadows = (visibleRows: React.ReactElement[]) => {\n return visibleRows.map(row => {\n const isValueRow = row.props?.type === RowType.Value;\n const state = this.props.rowAction?.getActionState(row.props.id, row.props);\n\n return (\n \n );\n });\n\n };\n\n renderInnerPart = (height: number, itemProps: IFocusableItemProps) => {\n const { firstVisible, lastVisible } = this.getVisibleRowsRange(height);\n const visibleRows = this.getVisibleRows(firstVisible, lastVisible, itemProps);\n const fakeHeight = this.getTotalHeight();\n const secondHeight = Math.min(height, this.getTotalHeight());\n const isActive = !!this.props.rowAction;\n return (\n \n \n \n {visibleRows.map((row) => {\n const rowLocked = this.isRowLocked(row.props as IRow);\n const canUnlock = row.props.customData?.canUnlock;\n // locking should be disabled for dirty (disabled) row - DEV-2067\n const isDisabled = (rowLocked && this.props.rowAction?.actionType !== RowAction.Custom)\n || (this.props.rowAction?.actionType === RowAction.Lock && row.props.isDisabled);\n const state = this.props.rowAction?.getActionState(row.props.id, row.props as IRowProps);\n const showOnHover = getValue(this.props.rowAction?.showIconsOnHover, row.props.id, row) && state !== ActionState.Active;\n const isNewRow = row.props.id === NEW_ROW_ID;\n const CustomRowIcon = !isNewRow ? this.props.rowIcon?.(row.props.id, row.props as IRowProps, this.props.rowAction) ?? (rowLocked && LockFilledIcon) : null;\n return (\n \n {CustomRowIcon && }\n \n {this.props.rowAction && this.renderActionRowButton(row as unknown as Row, state, isDisabled, row.props.isLocked, canUnlock)}\n \n {this.props.contentBefore?.(row.props.id, row.props as IRowProps)}\n \n );\n })}\n \n \n \n \n \n \n {this.renderShadows(visibleRows)}\n \n \n \n {({\n onItemsRendered,\n ref\n }: { onItemsRendered(props: IItemsRenderedEvent): void, ref: React.Ref }) => {\n\n return (\n \n 0 ? this.getTableMinWidth() : null}/>\n \n {visibleRows}\n \n \n );\n }}\n \n \n \n );\n };\n\n renderTable = (itemProps: IFocusableItemProps) => {\n return (\n <>\n \n {this.renderHeader(this.props.columns)}\n \n \n {this.props.rowAction && !this.props.rowAction.isSingleSelect && this.renderActionHeaderButton()}\n {!this.shouldDisableVirtualization() && this.renderVirtualizedTable(itemProps)}\n {this.shouldDisableVirtualization() && this.renderWholeTable(itemProps)}\n \n );\n };\n\n handleHeaderClick = (sort: ISort) => {\n this.props.onSortChange([sort]);\n };\n\n renderHeader = (columns: TColumn[]) => {\n if (!this.props.rows || this.props.rows.length === 0) {\n return null;\n }\n\n // don't render header if there is no label\n if (isTableWithoutHeader(columns)) {\n return null;\n }\n\n return (\n columns.map(((column, i) => {\n const tooltip = Array.isArray(column.label) ? column.label.join(\"\\n\") : column.label;\n const labels = column.label?.split(\"\\n\") ?? [];\n const labelsRender = labels.map((label, index) => {\n let labelRender = (\n \n {(ref) => {\n return (\n \n );\n }}\n \n );\n\n if (index === labels.length - 1 && column.info) {\n labelRender = (\n \n {labelRender}\n {isMetaColumn(column) &&\n \n {column.info}\n \n }\n {/*prevent layout from breaking in case label is empty string*/}\n {labels[index] === \"\" && <> }\n \n );\n }\n\n return labelRender;\n });\n\n if (isMetaColumn(column)) {\n return (\n \n \n {labelsRender}\n \n \n {this.renderHeader(column.columns)}\n \n \n );\n } else {\n const allColumns = this.getColumns();\n const columnIndex = allColumns.findIndex(col => col.id === column.id);\n let sort = null;\n\n for (let i = 0; i < this.props.sort.length; i++) {\n if (this.props.sort[i].id === column.id) {\n sort = this.props.sort[i];\n }\n }\n\n const isLast = columnIndex === allColumns.length - 1;\n\n return (\n \n {labelsRender}\n \n );\n }\n }))\n );\n };\n\n shouldDisableVirtualization = () => {\n return this.props.disableVirtualization || this.props.isForPrint;\n };\n\n renderVirtualizedTable = (itemProps: IFocusableItemProps) => {\n return (\n
    \n \n \n {\n ({ height }: { height: number }) => {\n return this.renderInnerPart(height, itemProps);\n }}\n \n \n
    \n );\n };\n\n // doesn't support scrollToRow (don't use own vertical scrollbar)\n // TODO add same support for shadows and RightIconBar as in virtualized table, if needed\n renderWholeTable = (itemProps: IFocusableItemProps) => {\n const visibleRows = this.getVisibleRows(0, this.getTotalRowCount(), itemProps);\n\n return (\n // this is rendered inside flex together with StyledHeader, and ScrollBar has height: 100% =>\n // => there has to be one more wrapper to prevent scrollbar from being to tall\n
    \n \n {!this.props.withoutShadows &&\n \n {this.renderShadows(visibleRows)}\n \n }\n \n {visibleRows}\n \n \n
    \n );\n };\n\n render = () => {\n // reset getRowColumnValue cache before rendering if props.rows or props.columns has changed.\n // Check like this should usually be in componentDidUpdate,\n // but that is too late. We need to clear the cache before the rendering, otherwise we would have to render twice (performance hit).\n if (this._prevRows !== this.props.rows || this._prevColumns !== this.props.columns) {\n this.getRowColumnValue.cache.clear();\n }\n\n this._prevRows = this.props.rows;\n this._prevColumns = this.props.columns;\n\n let table = (\n \n {({ itemProps, wrapperProps }) => {\n this.prepareRows(itemProps);\n\n return (\n \n {this._unfoldedRows?.length > 0 ? this.renderTable(itemProps) : this.props.busy ? null : this.renderNoData()}\n \n );\n }}\n \n );\n\n if (this.props.isForPrint) {\n // enforce default theme for printing\n table = (\n \n {table}\n \n );\n }\n\n return table;\n };\n}\n\ninterface IItemsRenderedEvent {\n visibleStartIndex: number;\n visibleStopIndex: number;\n}\n\ninterface IBodyProps {\n minWidth?: number;\n isVirtualized?: boolean;\n passRef?: React.RefObject;\n onItemsRendered?: (props: IItemsRenderedEvent) => void;\n visibleRows?: { firstVisible: number, lastVisible: number };\n}\n\nclass Body extends PureComponent {\n componentDidUpdate() {\n if (this.props.visibleRows && this.props.onItemsRendered) {\n this.props.onItemsRendered({\n visibleStartIndex: this.props.visibleRows.firstVisible,\n visibleStopIndex: this.props.visibleRows.lastVisible\n });\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default withBusyIndicator({ isOverComponent: true })(withTranslation([\"Components\", \"Common\"])(withContextMenu(withDomManipulator(withTheme(Table)))));\n","import { clamp, getValue, handleRefHandlers, isObjectEmpty, quantile } from \"@utils/general\";\nimport { getTextWidth } from \"@utils/string\";\nimport React from \"react\";\n\nimport { IconSize, TableBatch, TableSizes } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport TestIds from \"../../testIds\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { textAlignToPadding } from \"./Rows.styles\";\nimport Table, {\n ICellValueObject,\n IColumn,\n IColumnResizeEvent,\n IMetaColumn,\n IRow,\n ITableProps,\n TColumn,\n TId\n} from \"./Table\";\nimport {\n getAction,\n getLeavesColumns,\n isMetaColumn,\n isRowValueCellValueObject,\n isTableWithoutHeader\n} from \"./TableUtils\";\n\ninterface IColumnsExtension {\n [id: string]: {\n width: number;\n afterContentMinWidth?: number;\n minWidth?: number;\n };\n}\n\nexport interface ITableWithAutoSizedColumnsProps extends Omit {\n onColumnResize?: (columnId: TId, newWidth: number, columnsWidths: Record) => void;\n loaded?: boolean;\n busy?: boolean;\n customBusyContent?: React.ReactNode;\n hideBusyIndicator?: boolean;\n initialColumnWidths?: Record;\n /** Should only be used when table is inside fixed width wrapper.\n * After all column widths are computed, remaining empty space is assigned to the first column.\n * Used in Dashboard tables to make it more visually pleasing.*/\n assignRemainingSpaceToFirstColumn?: boolean;\n}\n\ninterface IAutoSizedColumnsTableState {\n hasChanged: boolean;\n columnsExtensions: IColumnsExtension;\n lastColumnId: string;\n}\n\nexport default class TableWithAutoSizedColumns extends React.PureComponent {\n static defaultProps: Partial = {\n initialColumnWidths: {},\n loaded: true\n };\n\n state: IAutoSizedColumnsTableState = {\n hasChanged: true,\n columnsExtensions: {},\n lastColumnId: null\n };\n\n tableRef = React.createRef();\n\n componentDidMount() {\n if (this.props.loaded) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps: ITableWithAutoSizedColumnsProps, prevState: IAutoSizedColumnsTableState) {\n const lastColumnId = (this.props.columns[this.props.columns.length - 1] as IColumn)?.id;\n const isLastColumnDifferent = lastColumnId !== this.state.lastColumnId;\n\n if ((!prevProps.loaded && this.props.loaded && (isObjectEmpty(this.state.columnsExtensions) || this.props.columns.find(col => !isMetaColumn(col) && !this.state.columnsExtensions[col.id])))\n || (prevProps.rows.length === 0 && this.props.rows.length > 0)\n || (prevProps.rows.length === 0 && !prevProps.addingRow && !!this.props.addingRow)\n // for printing, we need to enlarge columns with icons, to fit their titles instead\n // and the other way around as well\n || (prevProps.isForPrint !== this.props.isForPrint && this.props.loaded)\n || isLastColumnDifferent\n ) {\n this.reInit();\n }\n\n if (isLastColumnDifferent) {\n this.setState({\n lastColumnId\n });\n\n }\n }\n\n init = (): void => {\n if (this.props.rows.length > 0 && this.getColumnItems(0)?.length <= (isTableWithoutHeader(this.props.columns) ? 0 : 1)) {\n // when Table is virtualized, it is possible that the rows are not yet rendered in the first cycle\n // => skip to the next one so that the rows are rendered\n setTimeout(this.init);\n return;\n }\n this.computeColumnsExtensions();\n };\n\n reset = async (): Promise => {\n return new Promise((resolve) => {\n // don't reset whole columnsExtensions, to prevent columns from jumping,\n // but we still need to know that the extensions are being re-computed\n this.setState({\n hasChanged: true\n }, resolve);\n });\n };\n\n reInit = async (): Promise => {\n await this.reset();\n this.init();\n };\n\n getTextWidth = (text: string, font: string): number => {\n return getTextWidth(text, font) + 2; // add some padding\n };\n\n getColumnWidths = (rows: IRow[], column: string, font: string): number[] => {\n let widths: number[] = [];\n\n if (rows.length === 0 || !font) {\n return widths;\n }\n\n for (const row of rows) {\n if (!row) {\n continue;\n }\n\n if (row.values[column]) {\n const rowValue = getValue(row.values[column]);\n\n let rowTextValue: string;\n\n if (typeof rowValue === \"string\") {\n rowTextValue = rowValue;\n } else if (typeof (rowValue as ICellValueObject)?.tooltip === \"string\") {\n rowTextValue = (rowValue as ICellValueObject).tooltip as string;\n } else if (typeof (rowValue as ICellValueObject)?.value === \"string\") {\n rowTextValue = (rowValue as ICellValueObject).value as string;\n } else {\n // no string value, nothing to compute from,\n // but there can still be nested rows\n }\n\n if (rowTextValue) {\n widths.push(this.getTextWidth(rowTextValue.toString(), font));\n }\n }\n\n if (row.rows) {\n widths = [...widths, ...this.getColumnWidths(row.rows, column, font)];\n }\n }\n\n return widths;\n };\n\n // returns first row that contains value for given column\n getRowWithColumnValue = (rows: IRow[], columnId: string): IRow => {\n for (const row of rows) {\n if (row.values[columnId]) {\n return row;\n }\n\n if (row.rows) {\n const innerRow: IRow = this.getRowWithColumnValue(row.rows, columnId);\n\n if (innerRow) {\n return innerRow;\n }\n }\n }\n\n return null;\n };\n\n getLeavesColumns = (): IColumn[] => {\n return getLeavesColumns(this.props.columns as TColumn[]);\n };\n\n hasColumnContentFit = (valueIsCellObject: boolean): boolean => {\n return this.props.isForPrint && valueIsCellObject;\n };\n\n getColumnItems = (index: number): NodeListOf => {\n return this.tableRef.current?.querySelectorAll(`[data-column-index='${index}']`);\n };\n\n computeColumnsExtensions = (): void => {\n const columnWidths = this.props.initialColumnWidths;\n const columnsExtensions: IColumnsExtension = {};\n\n // assume all rows has action or none of them. If we conditionally show it, we need to refactor this to\n // prop most likely to say if we want to add the padding for it to all rows or only to the ones with action\n // same logic is used in Table to render HeaderCell\n const hasAction = this.props.rows?.length && !!getAction(this.props.rows[0], this.props.isForPrint);\n\n this.getLeavesColumns().forEach((column, i, leavesColumns) => {\n let width: number;\n let minWidth: number;\n let afterContentMinWidth: number;\n const rowWithValue = this.getRowWithColumnValue(this.props.rows, column.id);\n const valueIsCellObject = isRowValueCellValueObject(rowWithValue?.values?.[column.id]);\n const isFirst = i === 0;\n const isLast = i === leavesColumns.length - 1;\n const {\n paddingLeft,\n paddingRight\n } = textAlignToPadding(column.textAlign, isFirst, !!this.props.hierarchy, isLast, hasAction, this.props.useStatusHighlight);\n\n if (!this.hasColumnContentFit(valueIsCellObject) && column.width) {\n width = column.width;\n } else if (!this.hasColumnContentFit(valueIsCellObject) && columnWidths && columnWidths[column.id]\n // last column should ignore stored width and just try to use as much space as it can by default\n // https://solitea-cz.atlassian.net/browse/DEV-27970\n && !isLast) {\n width = columnWidths[column.id];\n } else {\n // this doesn't really make much sense, because of virtualization. we don't render many items at once\n const items = this.getColumnItems(i);\n\n if (items?.[0]) {\n let widths: number[];\n\n const getItemWidth = (item: HTMLElement) => {\n let itemWidth = item.scrollWidth;\n\n if (item.childElementCount > 0) {\n // sum of children width can be bigger than parent width, because of overflow: hidden somewhere inside\n const childrenWidth = Array.from(item.children).reduce((childrenWidthSum, child) => {\n return childrenWidthSum + getItemWidth(child as HTMLElement);\n }, 0);\n\n if (childrenWidth > itemWidth) {\n itemWidth = childrenWidth;\n }\n }\n\n // add width of after content element\n if (item.nextElementSibling?.getAttribute(\"data-testid\") === TestIds.TableCellAfterContent) {\n const afterContent = item.nextElementSibling.firstChild as HTMLElement;\n itemWidth += afterContent.scrollWidth;\n afterContentMinWidth = Math.max(afterContentMinWidth ?? 0, afterContent.scrollWidth);\n }\n\n return itemWidth;\n };\n\n if ((valueIsCellObject /*and at least one other value than header is rendered*/ && items?.[1]?.scrollWidth > 0) || this.props.disableVirtualization) {\n // for values formatted into e.g. icon, we cannot compute width from the width of the text\n widths = Array.from(items).map(item => getItemWidth(item));\n } else {\n // compute widths of ALL values by using canvas measureText instead\n widths = this.getColumnWidths(this.props.rows, column.id, items?.[1] && getComputedStyle(items[1]).font);\n }\n\n // if max width of column content isn't too big, take everything, otherwise use quantile\n width = Math.max(...widths) + 3;\n\n if (column.stretchContent) {\n // store width of just the content, before padding and header are taken into account\n // ignore the first width (header)\n minWidth = Math.max(...widths.slice(1));\n }\n\n if (width > 300 && !this.hasColumnContentFit(valueIsCellObject)) {\n width = quantile(widths, 0.8) * 1.05;\n }\n\n width += paddingLeft + paddingRight + 2 /*padding and border */;\n const header = items[0];\n const label = column.info ? header.children[0]?.children[0] : header.children[0];\n const headerCell = header.parentElement.parentElement;\n const headerCellStyles = getComputedStyle(headerCell);\n // scrollwidth +1 to fix problem with rounding\n const headerWidth = (label?.scrollWidth ?? 0) + 1 + ((!this.props.disableSort && !column.disableSort) ? IconSize.asNumber(\"XS\") + 1 : 0) /*sort icon */\n + (column.info ? IconSize.asNumber(\"S\") + 4 : 0) // info icon + 4px icon margin\n + paddingLeft + paddingRight\n + parseFloat(headerCellStyles.borderLeftWidth) + parseFloat(headerCellStyles.borderRightWidth);\n width = Math.min(Math.max(width, headerWidth, TableSizes.MinColumnWidth), TableSizes.MaxColumnWidth);\n } else {\n width = TableSizes.MinColumnWidth;\n }\n }\n\n columnsExtensions[column.id] = {\n width,\n minWidth,\n afterContentMinWidth\n };\n });\n\n const headerRef = this.tableRef.current?.children?.[0];\n\n for (let i = 0; i < this.props.columns.length; i++) {\n const col = this.props.columns[i];\n\n if (!isMetaColumn(col as TColumn)) {\n continue;\n }\n\n const leavesCols = getLeavesColumns((col as IMetaColumn).columns as TColumn[]);\n const leavesColsCombinedWidth = leavesCols.reduce((combinedWidth, currentCol) => {\n return combinedWidth + columnsExtensions[currentCol.id].width;\n }, 0);\n\n // we need subpixel precision for the meta columns to line up with columns properly\n // using getBoundingClientRect instead of scrollWidth\n const metaColWidth = headerRef?.children[i]?.children?.[0]?.getBoundingClientRect().width ?? 0;\n\n if (metaColWidth > leavesColsCombinedWidth) {\n // enlarge each leave column so that their combined width is same as of the parent meta column\n const addWidth = (metaColWidth - leavesColsCombinedWidth) / leavesCols.length;\n\n for (const leaveCol of leavesCols) {\n columnsExtensions[leaveCol.id].width += addWidth;\n }\n }\n }\n\n if (this.props.assignRemainingSpaceToFirstColumn && this.props.columns?.length > 0) {\n let remainingWidth = this.tableRef.current.clientWidth;\n\n for (const col of Object.values(columnsExtensions)) {\n remainingWidth -= col.width;\n }\n\n // assign remaining width to first column\n columnsExtensions[(this.props.columns[0] as IColumn).id].width += remainingWidth;\n }\n\n this.setState({\n columnsExtensions,\n hasChanged: false\n });\n };\n\n handleColumnResize = ({ id, width, end }: IColumnResizeEvent) => {\n this.setState((state) => {\n const newWidth = clamp(width, TableSizes.MinColumnWidth, TableSizes.MaxColumnWidth);\n const newColumnsExtensions = {\n ...state.columnsExtensions,\n [id.toString()]: {\n ...state.columnsExtensions[id.toString()],\n width: newWidth\n }\n };\n\n if (end) {\n const widths = Object.entries(newColumnsExtensions).reduce((columnWidths: TRecordAny, [columnId, columnExtension]) => {\n columnWidths[columnId] = columnExtension.width;\n\n return columnWidths;\n }, {});\n\n this.props.onColumnResize?.(id, newWidth, widths);\n }\n\n return {\n columnsExtensions: newColumnsExtensions\n };\n });\n };\n\n prepareColumns = (columns: TColumn[]): TColumn[] => {\n return columns.map((column: TColumn) => {\n if (isMetaColumn(column)) {\n return {\n ...column,\n columns: this.prepareColumns(column.columns)\n };\n } else {\n return {\n ...column,\n width: this.state.columnsExtensions[column.id]?.width ?? TableSizes.DefaultColumnWidth,\n // For columns which content should stretch to the size of the widest value, we need to render it differently\n // first time, when calculating width, and later to stretch them to maximum size\n stretchContent: this.state.columnsExtensions[column.id]?.width ? column.stretchContent : false,\n afterContentMinWidth: this.state.columnsExtensions[column.id]?.afterContentMinWidth,\n minWidth: this.state.columnsExtensions[column.id]?.minWidth\n };\n }\n }\n );\n };\n\n getColumns = memoizeOne((): TColumn[] => {\n return this.prepareColumns(this.props.columns);\n }, () => [this.props.columns, this.state.columnsExtensions]);\n\n handleTableRef = (ref: Element): void => {\n handleRefHandlers(ref, this.tableRef, this.props.passRef);\n };\n\n render() {\n return (\n
    \n );\n }\n}","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { usePopper } from \"react-popper\";\nimport { Menu } from \"../inputs/select/SelectMenu\";\nimport { KeyName } from \"../../keyName\";\nimport { doesElementContainsElement } from \"@utils/general\";\nimport ReactDOM from \"react-dom\";\nimport { TId } from \"./Table\";\nimport { ISelectGroup, ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport interface WithContextMenu {\n id?: TId;\n onContextMenu: (event: React.MouseEvent) => void;\n isContextMenuOpen: boolean;\n}\n\nexport interface WithContextMenuProps {\n id?: TId;\n usePortal?: boolean;\n contextMenuItems?: ISelectItem[];\n contextMenuGroups?: ISelectGroup[];\n onContextMenuSelection?: (item: ISelectItem, id?: string) => void;\n}\n\nexport const withContextMenu =

    (WrappedComponent: React.ComponentType

    ) => {\n return React.forwardRef> & WithContextMenuProps>((props, ref) => {\n const { contextMenuItems, onContextMenuSelection, ...passProps } = props;\n\n const [pos, setPosition] = useState({ top: 0, left: 0 });\n const [isOpen, setOpen] = useState(false);\n const virtualReference = useMemo(() => ({\n getBoundingClientRect() {\n return {\n ...pos,\n bottom: 0, right: 0,\n width: 0, height: 0,\n // add some props to comply with ts interface\n x: pos.left, y: pos.top,\n toJSON: () => {}\n };\n }\n }), [pos]);\n const [popperElement, setPopperElement] = useState(null);\n const { styles, update, state } = usePopper(virtualReference, popperElement, {\n modifiers: [],\n placement: \"bottom-start\"\n });\n // remember currentTarget, so we don't close currently opened context menu\n const currentTarget = useRef();\n\n const handleContextMenu = useCallback((event) => {\n event.preventDefault();\n currentTarget.current = event.target;\n setPosition({ top: event.pageY, left: event.pageX });\n setOpen(true);\n }, [setPosition, setOpen]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KeyName.Escape) {\n setOpen(false);\n }\n }, [setOpen]);\n\n const handleSelectionChange = useCallback((item: ISelectItem) => {\n setOpen(false);\n onContextMenuSelection(item, props.id?.toString());\n }, [setOpen, onContextMenuSelection, props.id]);\n\n const handleMouseClick = useCallback((event: MouseEvent) => {\n const isContained = doesElementContainsElement(popperElement, event.target as HTMLElement) || event.target === currentTarget.current;\n if (isContained) {\n return;\n }\n setOpen(false);\n }, [popperElement, setOpen]);\n\n useEffect(() => {\n document.addEventListener(\"click\", handleMouseClick);\n document.addEventListener(\"contextmenu\", handleMouseClick);\n return () => {\n document.removeEventListener(\"click\", handleMouseClick);\n document.removeEventListener(\"contextmenu\", handleMouseClick);\n };\n }, [handleMouseClick]);\n\n let ContextMenu = (\n don't use it, we don't need scrollbar for context menu anyway\n isSimpleBarDisabled\n />\n );\n\n const modalRoot = props.usePortal !== false && document.getElementById(\"context-menu-root\");\n if (modalRoot) {\n ContextMenu = ReactDOM.createPortal(ContextMenu, modalRoot);\n }\n\n return (\n <>\n \n {isOpen && ContextMenu}\n \n );\n });\n};","import styled, { css } from \"styled-components/macro\";\nimport { getFocusBorderElement, getSemanticElColor, T_TITLE_4, T_TITLE_5 } from \"../../global.style\";\nimport { Status } from \"../../enums\";\nimport React from \"react\";\n\nexport const UnderlineBasic = css`\n content: \"\";\n bottom: -6px;\n margin-left: auto;\n margin-right: auto;\n position: absolute;\n`;\n\nconst BasicUnderline = css`\n &::after {\n content: \"\";\n bottom: -6px;\n background-color: ${props => props.theme.C_BG_filterbar};\n width: 100%;\n opacity: 0.15;\n height: 2px;\n position: absolute;\n left: 0;\n }\n`;\n\nconst TABS_GAP = \"17px\";\n\nexport const UnderlineItem = css<{\n selected: boolean;\n isDisabled?: boolean;\n isActive?: boolean;\n disableFocus?: boolean;\n}>`\n &::after {\n height: 4px;\n border-radius: 2px;\n background-color: ${props => props.theme.C_ACT_main};\n z-index: 1;\n\n width: ${props => props.selected || props.isActive ? \"100%\" : \"0\"};\n left: ${props => props.selected || props.isActive ? \"0\" : \"50%\"};\n opacity: ${props => props.selected ? 1 : 0.5};\n\n transition: 0.4s ease-out all .1s;\n ${UnderlineBasic};\n\n bottom: -8px;\n }\n\n ${props => !props.isDisabled && !props.disableFocus &&\n `&:hover::after {\n opacity: 0.5;\n width: 100%;\n left: 0;\n }`}\n`;\n\nexport const StatusIndicator = styled.span<{\n status: Status,\n isInverse?: boolean\n}>`\n display: inline-block;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background-color: ${props => getSemanticElColor(props.theme, props.status, props.isInverse)};\n`;\n\nexport const TabWrapper = styled.div<{\n isLastOnRow: boolean\n}>`\n display: flex;\n flex-direction: row;\n width: fit-content;\n position: relative;\n flex-wrap: nowrap;\n align-items: center;\n\n margin-bottom: 36px;\n\n &:not(:first-child) {\n padding-left: ${TABS_GAP};\n }\n\n ${BasicUnderline};\n\n &:first-child::after {\n border-radius: 1px 0 0 1px;\n }\n\n &:last-child::after {\n border-radius: 0 1px 1px 0;\n }\n\n &::after {\n width: ${props => props.isLastOnRow ? `calc(100% - ${TABS_GAP})` : \"100%\"};\n }\n\n &:nth-last-child(1) {\n margin-right: 0;\n }\n`;\n\nexport const IconWrapper = styled.div`\n width: 38px;\n height: 38px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const StyledTab = styled.div<{\n _opacity: number,\n hasIcon: boolean,\n isDraggable: boolean,\n selected: boolean,\n isDisabled?: boolean,\n isActive?: boolean;\n tooltip?: string;\n disableFocus?: boolean;\n}>`\n ${props => !props.disableFocus && getFocusBorderElement({ offset: 2 })};\n\n display: flex;\n border: 1px solid transparent;\n position: relative;\n cursor: ${props => props.isDisabled && props.tooltip ? \"help\" : !props.isDisabled && !props.disableFocus ? \"pointer\" : \"default\"};\n user-select: none;\n opacity: ${props => props._opacity || props.isDisabled ? 0.5 : 1};\n white-space: nowrap;\n height: 19px;\n\n ${UnderlineItem}\n`;\n\nexport const StyledDroppingArea = styled.div`\n width: ${TABS_GAP};\n height: 100%;\n`;\n\nexport const TabsMenu = styled.div<{\n ref: React.Ref\n}>`\n display: flex;\n position: relative;\n width: fit-content;\n flex-wrap: wrap;\n`;\n\nexport const TabsWrapper = styled.div<{\n height: string\n}>`\n position: relative;\n width: 100%;\n height: ${props => props.height || null};\n\n display: flex;\n flex-direction: column;\n\n ${getFocusBorderElement({ offset: 2, bottom: \"18px\", keyboardOnly: true })}\n`;\n\nexport const TabContent = styled.div`\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n`;\n\nexport const Divider = styled.div`\n height: 17px;\n width: 2px;\n margin: 0 15px 0 -${TABS_GAP};\n background-color: ${props => props.theme.C_BG_filterbar};\n opacity: 0.15;\n border-radius: 2px;\n`;\n\nexport const Prefix = styled.span`\n text-transform: capitalize;\n`;\n\nexport const Title = styled.span`\n text-transform: uppercase;\n ${T_TITLE_4};\n\n ${StatusIndicator} {\n margin-right: 10px;\n }\n`;\nexport const Count = styled.span<{\n _opacity: number,\n isDisabled?: boolean\n}>`\n ${T_TITLE_5};\n opacity: ${props => props._opacity || props.isDisabled ? 0.5 : 1};\n margin-left: 5px;\n`;","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { arrayMove, composeRefHandlers, findLastRowItemInFlex, TabIndex } from \"@utils/general\";\nimport React, { useCallback } from \"react\";\n\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { IconSize, Status } from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { buttonAlertPopperOptions } from \"../../views/table/ConfirmationButtons\";\nimport { IAlertProps } from \"../alert/Alert\";\nimport { ClickableWithAlertBase } from \"../clickableWithAlert/ClickableWithAlert\";\nimport CustomResizeObserver from \"../customResizeObserver/CustomResizeObserver\";\nimport FocusManager, { FOCUSABLE_ATTR } from \"../focusManager/FocusManager\";\nimport { HOTSPOT_ID_ATTR } from \"../hotspots/Hotspots.utils\";\nimport { CaretIcon, getIcon, IProps as IIconProps } from \"../icon\";\nimport IconSelect from \"../inputs/select/IconSelect\";\nimport Tooltip from \"../tooltip\";\nimport {\n Count,\n Divider,\n IconWrapper,\n Prefix,\n StatusIndicator,\n StyledDroppingArea,\n StyledTab,\n TabContent,\n TabsMenu,\n TabsWrapper,\n TabWrapper,\n Title\n} from \"./Tabs.styles\";\n\nconst TAB_NAME = \"tab\";\n\n// TODO proper behavior and keyboard navigation\n// https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\n\nconst DroppingArea = ({ index, isDraggable }: { index: number, isDraggable: boolean }) => {\n // const [{ canDrop, isOver }, drop] = useDrop({\n // accept: TAB_NAME,\n // drop: () => ({ index }),\n // collect: monitor => ({\n // isOver: monitor.isOver(),\n // canDrop: monitor.canDrop()\n // })\n // });\n // const isActive = canDrop && isOver;\n const backgroundColor = \"transparent\";\n // if (isActive) {\n // backgroundColor = \"darkgreen\";\n // } else if (canDrop) {\n // backgroundColor = \"transparent\";\n // }\n return (\n \n \n );\n};\n\ninterface ITabProps {\n item: ITabData;\n index: number;\n onDrop: (from: number, to: number) => void;\n onClick: (event: React.MouseEvent, id: string) => void;\n onKeyDown: (event: React.KeyboardEvent, id: string) => void;\n selected: boolean;\n isDraggable: boolean;\n value: number;\n passProps: TRecordAny;\n passRef?: React.Ref;\n select?: React.ReactElement;\n disableFocus?: boolean;\n}\n\nexport interface ITabValue {\n id: string;\n value: number;\n}\n\nexport interface ITabData {\n id: string;\n // cases where tab is not enum but bool or number\n value?: TValue;\n hotspotId?: string;\n content?: (props: ITabsProps) => React.ReactElement;\n title?: string;\n isDisabled?: boolean;\n // hover look without actually having mouse over the tab\n isActive?: boolean;\n disabledAlert?: IAlertProps;\n tooltip?: string;\n iconName?: string;\n status?: Status;\n prefix?: string;\n}\n\nexport interface ITabsProps {\n /** Values displayed after the title*/\n values?: ITabValue[];\n\n /** Tabs definition*/\n data: ITabData[];\n additionalData?: ITabData[];\n additionalTabPrefix?: string;\n showSearchBoxInMenu?: boolean;\n selectWidth?: string;\n\n height?: string;\n isDisabled?: boolean;\n isDraggable?: boolean;\n isEditable?: boolean;\n onChange?: (selectedTab: string) => void;\n selectedTabId?: string;\n\n style?: React.CSSProperties;\n className?: string;\n}\n\ninterface ITabsState {\n selectedTabId: string;\n selectedAdditionalTabId: string;\n data: ITabData[];\n lastItemFlags: boolean[];\n}\n\nconst Tab = ({\n item,\n index,\n onDrop,\n onClick,\n onKeyDown,\n selected,\n isDraggable,\n value,\n passProps,\n passRef,\n select,\n disableFocus\n }: ITabProps): React.ReactElement => {\n // const [{ isDragging }, drag] = useDrag({\n // item: { name: item.id, type: TAB_NAME },\n // end: (item, monitor) => {\n // const dropResult = monitor.getDropResult();\n // if (item && dropResult) {\n // onDrop(index, dropResult.index);\n // }\n // },\n // collect: monitor => ({\n // isDragging: monitor.isDragging()\n // })\n // });\n\n const opacity = 1;\n let Icon: React.ComponentType;\n if (item.iconName) {\n Icon = getIcon(item.iconName);\n }\n\n if (item.isDisabled && passProps) {\n delete passProps[FOCUSABLE_ATTR];\n }\n\n return (\n <>\n {\n onClick(event, item.id);\n }, [item.id])}\n onKeyDown={useCallback((event: React.KeyboardEvent) => onKeyDown(event, item.id), [item.id, item.isDisabled])}\n role=\"tab\" aria-selected={selected}\n data-testid={TestIds.Tab}>\n \n {(ref) => {\n return

    \n {Icon &&\n \n \n \n }\n {!Icon &&\n \n {item.prefix && <Prefix>{item.prefix} {DASH_CHARACTER} </Prefix>}\n {item.status && <StatusIndicator status={item.status}/>}\n {(item.title || \"\")}\n \n }\n {select && <> {select}}\n
    ;\n }}\n \n \n {value !== undefined &&\n \n /{value}/\n \n }\n \n );\n};\n\nconst TabWithAlert = (props: ITabProps): React.ReactElement => {\n if (props.disableFocus) {\n return ;\n }\n\n return (\n \n )\n }/>;\n};\n\n// TODO remove arbitrary 'data' property and use Tab as children instead\nclass Tabs extends React.Component {\n _refMenu = React.createRef();\n _selectRef = React.createRef();\n\n static defaultProps: Partial = {\n additionalData: []\n };\n\n constructor(props: ITabsProps) {\n super(props);\n this.state = {\n // tab \"ALL\" tends to have id: null so we check for undefined because null indicates this ALL tab, not that no tab is selected\n // used in page load with ALL tab preset (f.e. BankTransactions with defaultTab set in URL query)\n selectedTabId: props.selectedTabId === undefined ? props?.data?.[0]?.id : props.selectedTabId,\n data: props.data,\n lastItemFlags: [],\n selectedAdditionalTabId: props.selectedTabId\n };\n }\n\n componentDidUpdate(prevProps: ITabsProps, prevState: ITabsState): void {\n if (prevProps.data !== this.props.data) {\n this.setState((state) => {\n const newData = this.props.data.map((tab) => {\n const tabState = state.data.find((t) => t.id === tab.id);\n\n if (tabState) {\n return { ...tabState, ...tab };\n } else {\n return tab;\n }\n });\n\n const additionalItems = this.getAdditionalItems(this.props.additionalData) ?? [];\n let selectedTabId = this.props.selectedTabId ?? state.selectedTabId;\n\n if (newData.length > 0 && !newData.find((tab) => tab.id === selectedTabId)\n && !additionalItems.find((item) => item.id === selectedTabId)) {\n selectedTabId = newData[0].id;\n }\n\n return {\n data: newData,\n selectedTabId\n };\n }, this.handleResize);\n }\n\n if (prevProps.selectedTabId !== this.props.selectedTabId) {\n this.setState({\n selectedTabId: this.props.selectedTabId\n });\n }\n\n if (prevProps.additionalData !== this.props.additionalData && !!this.props.additionalData?.find(d => d.id === this.props.selectedTabId)) {\n this.setState({\n selectedAdditionalTabId: this.props.selectedTabId\n });\n }\n\n if (prevProps.values?.length !== this.props.values?.length) {\n this.handleResize();\n }\n }\n\n handleDrop = (from: number, to: number): void => {\n this.setState((state) => ({\n data: arrayMove(state.data, from, to)\n }));\n };\n\n handleClick = (event: React.MouseEvent, id: string): void => {\n this.setState({\n selectedTabId: id\n });\n\n this.props.onChange?.(id);\n };\n\n handleResize = (): void => {\n setTimeout(() => {\n if (this._refMenu.current) {\n this.setState({\n lastItemFlags: findLastRowItemInFlex(this._refMenu.current)\n });\n }\n }, 0);\n };\n\n getTabValue = (id: string): number | undefined => {\n if (this.props.values) {\n const number = this.props.values.find((item: ITabValue) => id === item.id);\n if (number) {\n return number.value;\n }\n }\n return undefined;\n };\n\n handleKeyDown = (event: React.KeyboardEvent, id: string): void => {\n const secondEnterClickCondition = !this._selectRef?.current?.state.isOpen && event.key === KeyName.Enter && this.state.selectedTabId === id;\n // this is here for special keyboard navigation on extra tab with select, which should act like tab and select combined\n if ((event.key === KeyName.Space || secondEnterClickCondition) && this.props.additionalData?.find((item) => item.id === id)) {\n this._selectRef?.current?.handleIconClick(event as unknown as React.MouseEvent);\n } else if (this._selectRef?.current?.state.isOpen) {\n this._selectRef.current.handleKeyDown(event);\n if (event.key === KeyName.Tab) {\n this._selectRef?.current?.handleIconClick(event as unknown as React.MouseEvent);\n }\n } else if (event.key === KeyName.Enter) {\n event.stopPropagation();\n this.setState({\n selectedTabId: id\n });\n this.props.onChange?.(id);\n }\n };\n\n getAdditionalItems = (additionalData: ITabData[]): ISelectItem[] => {\n if (!additionalData) {\n return [];\n }\n return additionalData.map((data: ITabData) => {\n return {\n id: data.id,\n label: data.title\n };\n });\n };\n\n handleSelectAdditionalItem = (e: ISelectionChangeArgs): void => {\n const value = e.value as string;\n\n this.setState({ selectedTabId: value, selectedAdditionalTabId: value });\n this.props.onChange?.(value);\n };\n\n handleIsOpenChange = () => {\n // select open state is not controlled via props,\n // but we still need to set isActive of the tab based on select state\n this.forceUpdate();\n };\n\n render() {\n const additionalItems = this.getAdditionalItems(this.props.additionalData);\n const selectedAdditionalItem = additionalItems.find((item) => item.id === this.state.selectedAdditionalTabId) ?? additionalItems?.[0];\n const selectedAdditionalTabItem = this.props.additionalData.find(item => item.id === this.state.selectedAdditionalTabId) ?? this.props.additionalData?.[0];\n const extraItem: ITabData = {\n id: selectedAdditionalItem?.id as string,\n hotspotId: selectedAdditionalTabItem?.hotspotId,\n title: selectedAdditionalItem?.label,\n prefix: this.props.additionalTabPrefix,\n isActive: !!this._selectRef?.current?.state.isOpen,\n isDisabled: this.props.isDisabled\n };\n const disableFocus = this.state.data.length === 1 && !additionalItems.length;\n\n return (\n <>\n {this.state.data && this.state.data.length > 0 &&\n \n {({ itemProps, wrapperProps }) => (\n \n \n\n \n {this.state.data.map((item, index) => {\n // only change item object if necessary, to prevent pointless re-renders\n // even better - rewrite Tabs and use better approach to pass data\n if (!item.isDisabled && this.props.isDisabled) {\n item = {\n ...item,\n isDisabled: this.props.isDisabled\n };\n }\n\n return (\n \n \n \n \n );\n })}\n {this.props.additionalTabPrefix && !!additionalItems.length &&\n \n \n 1 && e.stopPropagation()}\n onIsOpenChange={this.handleIsOpenChange}\n icon={}\n items={additionalItems}/>)}\n selected={extraItem.id === this.state.selectedTabId}/>\n }\n \n {this.props.children}\n {this.state.data.map((item) => {\n const isSelected = item.id === this.state.selectedTabId;\n return isSelected && item.content ?\n \n {item.content(this.props)}\n \n : null;\n })}\n \n )}\n \n }\n \n );\n }\n}\n\nexport default Tabs;\nexport { Tab };","import { ellipsis } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nimport { TextAlign } from \"../../enums\";\nimport { getDisabledStyle, multiline_ellipsis, T_TITLE_3, T_TITLE_4_NORMAL } from \"../../global.style\";\n\ninterface IStyledText {\n isBig: boolean;\n maxRows: number;\n wrap: boolean;\n _width: string;\n _textAlign: TextAlign;\n isLight: boolean;\n isDisabled: boolean;\n isWithoutDefaultFormatting: boolean;\n}\n\nexport const StyledText = styled.div`\n position: relative;\n width: ${props => props._width};\n color: ${props => !props.isLight ? props.theme.C_TEXT_primary : props.theme.C_TEXT_dialogue};\n text-align: ${props => props._textAlign ?? TextAlign.Left};\n\n ${props => props.maxRows ? multiline_ellipsis(600, props.maxRows) : ellipsis()};\n ${props => props.isBig ? T_TITLE_3 : T_TITLE_4_NORMAL};\n\n ${props => getDisabledStyle(props.isDisabled)};\n\n white-space: ${props => props.wrap ? \"pre-wrap\" : \"pre\"};\n align-self: ${props => props.isWithoutDefaultFormatting ? \"auto\" : \"flex-start\"};\n padding-top: ${props => props.isWithoutDefaultFormatting ? \"0\" : \"8px\"};\n`;\n\nexport const InnerTextWrapper = styled.div`\n display: inline;\n`;","import { handleRefHandlers, isDefined } from \"@utils/general\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { TextAlign } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport Tooltip from \"../tooltip/Tooltip\";\nimport { InnerTextWrapper, StyledText } from \"./Text.styles\";\n\ninterface IProps {\n isBig?: boolean;\n width?: string;\n maxRows?: number;\n isLight?: boolean;\n wrap?: boolean;\n /** Removes default padding and self align */\n isWithoutDefaultFormatting?: boolean;\n textAlign?: TextAlign;\n passRef?: React.Ref;\n className?: string;\n style?: React.CSSProperties;\n isDisabled?: boolean;\n isSynchronized?: boolean;\n}\n\nexport default class Text extends React.PureComponent {\n getHandleRef = memoizeOne((ref?: React.Ref) => {\n return (element: HTMLDivElement) => {\n handleRefHandlers(element, ref, this.props.passRef);\n };\n });\n\n render() {\n return (\n \n {(ref) =>\n \n \n {isDefined(this.props.children) && this.props.children !== \"\" ? this.props.children : DASH_CHARACTER}\n \n \n }\n \n );\n }\n}","import styled from \"styled-components/macro\";\nimport { ellipsis } from \"polished\";\nimport { T_TITLE_4_NORMAL } from \"../../global.style\";\n\n\nexport const TextEllipsisStyled = styled.div`\n display: inline-flex;\n max-width: 100%;\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const ShortenPart = styled.span`\n ${ellipsis()};\n flex: 0 1 auto;\n display: block;\n`;\n\nexport const FixedPart = styled.span`\n flex: 0 0 auto;\n display: block;\n`;","import React from \"react\";\nimport { FixedPart, ShortenPart, TextEllipsisStyled } from \"./TextEllipsis.styles\";\nimport Tooltip from \"../tooltip\";\n\ninterface IProps {\n fixedPattern?: RegExp;\n fixedChars?: number;\n text: string;\n}\n\nconst TextEllipsis: React.FC = ({ fixedChars, fixedPattern, text }) => {\n let shortenPart: string, fixedPart: string;\n\n if (fixedChars > 0) {\n fixedPart = text.slice(-1 * fixedChars);\n shortenPart = text.slice(0, text.length - fixedChars);\n } else if (fixedPattern) {\n shortenPart = text.replace(fixedPattern, (match: string) => {\n fixedPart = match;\n return \"\";\n });\n } else {\n shortenPart = text;\n }\n\n return (\n\n \n {(ref, overflowRef) => (\n \n {shortenPart}\n {fixedPart && {fixedPart}}\n \n )}\n \n );\n};\n\nexport default TextEllipsis;","import React from \"react\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\n\nexport enum TicketMessageType {\n Received = \"Received\",\n Sent = \"Sent\"\n}\n\nexport interface ITicketMessage {\n icon?: React.ReactNode;\n created?: Date;\n createdBy?: string;\n createdById?: number;\n subject?: string;\n text: string;\n type: TicketMessageType;\n attachments?: IFileMetadataEntity[];\n}\n","import { BackgroundJobStatusCode, BackgroundJobTypeCode, WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n createDemoTenant,\n DemoTenantStatusCode,\n getDemoTenantInfo,\n IDemoTenantInfo,\n switchToDemoTenant\n} from \"@pages/userSetting/UserSetting.utils\";\nimport { TWebsocketMessage } from \"@utils/websocketManager/Websocket.types\";\nimport { isBackgroundJobWebsocketMessage } from \"@utils/websocketManager/Websocket.utils\";\nimport WebsocketManager from \"@utils/websocketManager/WebsocketManager\";\nimport React, { ReactNode, useCallback, useEffect } from 'react';\n\nimport {\n getBackgroundJobFromWebsocketMessage\n} from \"../../../contexts/backgroundJobsContext/BackgroundJobsContext.utils\";\n\ninterface IChildrenProps {\n handleClick: () => Promise;\n isLoading?: boolean;\n isNotCreated?: boolean;\n hasDemoTenant?: boolean;\n}\n\ninterface DemoTenantWrapperProps {\n children: (props: IChildrenProps) => ReactNode;\n onDemoTenantCreated?: () => void;\n}\n\nconst DemoTenantWrapper: React.FC = ({ children, onDemoTenantCreated }) => {\n const [isLoading, setIsLoading] = React.useState(true);\n const [hasError, setHasError] = React.useState(false);\n // initial state - unknown status\n const [info, setInfo] = React.useState(undefined);\n\n const _getTenantInfo = useCallback(async () => {\n const info = await getDemoTenantInfo();\n\n if (info === false) {\n setHasError(true);\n } else {\n setInfo(info);\n setIsLoading(info?.DemoTenantStatus === DemoTenantStatusCode.Creating);\n }\n }, []);\n\n const handleMessage = useCallback((message: TWebsocketMessage) => {\n if (!isBackgroundJobWebsocketMessage(message)) {\n return;\n }\n\n const backgroundJob = getBackgroundJobFromWebsocketMessage(message);\n const terminalStates = [BackgroundJobStatusCode.Finished, BackgroundJobStatusCode.Error, BackgroundJobStatusCode.Expired];\n if (backgroundJob.TypeCode === BackgroundJobTypeCode.CreatingDemoCompany && terminalStates.includes(backgroundJob.StatusCode as BackgroundJobStatusCode)) {\n _getTenantInfo();\n }\n }, [_getTenantInfo]);\n\n useEffect(() => {\n _getTenantInfo();\n }, [_getTenantInfo]);\n\n useEffect(() => {\n return WebsocketManager.subscribe({\n callback: handleMessage,\n types: [WebSocketMessageTypeCode.BackgroundJob]\n });\n }, [handleMessage]);\n\n const hasDemoTenant = info && info.DemoTenantStatus === DemoTenantStatusCode.Created;\n // note, it's not the same as !hasDemoTenant, because we don't want to show the button when we don't know the status\n const isNotCreated = info && info.DemoTenantStatus === DemoTenantStatusCode.NotCreated;\n\n const handleClick = useCallback(async () => {\n if (isLoading) {\n return;\n }\n setIsLoading(true);\n setHasError(false);\n if (isNotCreated) {\n const data = await createDemoTenant();\n if (data === false) {\n setHasError(true);\n setIsLoading(false);\n } else {\n onDemoTenantCreated?.();\n setInfo(data);\n setIsLoading(data.DemoTenantStatus === DemoTenantStatusCode.Creating);\n }\n } else {\n const succ = await switchToDemoTenant(info.DemoTenantId);\n setHasError(!succ);\n setIsLoading(false);\n }\n }, [isLoading, isNotCreated, onDemoTenantCreated, info?.DemoTenantId]);\n\n return (<>\n {children({\n handleClick,\n isLoading: isLoading || hasError,\n isNotCreated,\n hasDemoTenant\n })}\n );\n};\n\nexport default DemoTenantWrapper;","import { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { REST_API_URL } from \"../../../constants\";\nimport { getActiveFiscalYear } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport { formatDateToDateString } from \"../../inputs/date/utils\";\nimport { IReportData, NumberAggregationFunction } from \"@pages/reports/Report.utils\";\nimport { CbaEntryTypeCode } from \"@odata/GeneratedEnums\";\nimport { IFiscalYearEntity } from \"@odata/GeneratedEntityTypes\";\nimport { TValue } from \"../../../global.types\";\n\nexport interface IIncomeExpenseOverviewData {\n income: {\n tax: number,\n nontax: number\n },\n expense: {\n tax: number,\n nontax: number\n }\n}\n\nexport async function getIncomeExpenseOverviewData(context: IAppContext, fiscalYear?: IFiscalYearEntity): Promise {\n const url = `${REST_API_URL}/CbaEntryLedger`;\n\n let fy = fiscalYear;\n if (!fy) {\n // await FY promise before getting them...\n await context.getFYPromise();\n fy = getActiveFiscalYear(context);\n }\n\n let incomeValues: Record = {};\n let expenseValues: Record = {};\n\n try {\n const response = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n \"DateRange\": {\n DateStart: formatDateToDateString(fy?.DateStart),\n DateEnd: formatDateToDateString(fy?.DateEnd)\n },\n \"Type\": \"All\",\n \"IncludeUnrelatedToBusiness\": false,\n \"ReportHierarchy\": {\n \"Aggregate\": true,\n \"Groups\": [{\n ColumnAlias: \"CbaEntryType_Name\"\n }],\n \"Columns\": [],\n \"Aggregations\": [{\n ColumnAlias: \"CbaEntry_AmountTaxed\",\n AggregationFunction: NumberAggregationFunction.Sum\n }, {\n \"ColumnAlias\": \"CbaEntry_AmountNonTaxed\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n })\n });\n\n const data = await response.json() as IReportData;\n\n incomeValues = data.Rows?.find(r => r.Value[\"CbaEntry_TypeCode\"] === CbaEntryTypeCode.Income)?.Value;\n expenseValues = data.Rows?.find(r => r.Value[\"CbaEntry_TypeCode\"] === CbaEntryTypeCode.Expense)?.Value;\n } catch {\n\n }\n\n return {\n income: {\n tax: incomeValues?.[\"CbaEntry_AmountTaxed_SUM\"] as number ?? 0,\n nontax: incomeValues?.[\"CbaEntry_AmountNonTaxed_SUM\"] as number ?? 0\n },\n expense: {\n tax: expenseValues?.[\"CbaEntry_AmountTaxed_SUM\"] as number ?? 0,\n nontax: expenseValues?.[\"CbaEntry_AmountNonTaxed_SUM\"] as number ?? 0\n }\n };\n}","import styled, { css } from \"styled-components/macro\";\n\nimport { Status } from \"../../../enums\";\nimport { getSemanticTextColor, T_PLAIN_big, T_PLAIN_big_hig, T_PLAIN_small, T_TITLE_1 } from \"../../../global.style\";\nimport { LinkStyled, StyledDashboardTileBackground } from \"../../dashboard/Dashboard.styles\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { ColoredIcon } from \"../../icon\";\nimport { Theme } from \"../../../theme\";\n\nexport const StyledInfoTile = styled(DashboardTileBackground)`\n justify-content: flex-start;\n gap: 14px;\n`;\n\nexport const getLinkStylesWithHover = (theme: Theme, offset?: { top: number; bottom: number; left: number; right: number; }) => css`\n & > ${LinkStyled} {\n position: relative;\n }\n\n & > ${LinkStyled}::before {\n position: absolute;\n top: ${offset?.top ?? -8}px;\n bottom: ${offset?.bottom ?? -8}px;\n left: ${offset?.left ?? -10}px;\n right: ${offset?.right ?? -10}px;\n pointer-events: none;\n border-radius: 22px;\n border: solid 2px ${theme.C_ACT_hover_without_opacity};\n opacity: 0.5;\n }\n\n & > ${LinkStyled}:hover, & > ${LinkStyled}:active {\n &::before {\n content: \"\";\n display: block;\n }\n }\n`;\n\nexport const StyledInfoTileCell = styled.div<{ $span: number; }>`\n position: relative;\n grid-column: span ${props => props.$span};\n\n ${props => getLinkStylesWithHover(props.theme)};\n`;\n\nexport const InfoTileBody = styled.div<{ $columns: number; }>`\n display: grid;\n column-gap: 74px;\n grid-template-columns: repeat(${props => props.$columns}, 1fr);\n\n ${StyledInfoTileCell} + ${StyledInfoTileCell} {\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 3px;\n left: -38px;\n bottom: 3px;\n border-left: 2px solid ${props => props.theme.C_TEXT_primary};\n opacity: .2;\n }\n }\n`;\n\ninterface ISeverity {\n $severity: Status;\n}\n\nexport const ValueWrapper = styled.div`\n display: flex;\n align-items: end;\n justify-content: flex-start;\n`;\n\nexport const Value = styled.div`\n min-height: 36px;\n color: ${props => getSemanticTextColor(props.theme, props.$severity)};\n ${T_TITLE_1};\n`;\n\nexport const Unit = styled.span`\n color: ${props => props.theme.C_TEXT_primary};\n ${T_PLAIN_big};\n opacity: 0.5;\n`;\n\nexport const Fraction = styled.span`\n ${T_PLAIN_big_hig};\n`;\n\nexport const Label = styled.span`\n display: block;\n ${T_PLAIN_small};\n opacity: 0.5;\n\n &::first-letter {\n text-transform: lowercase;\n }\n`;\n\nexport const ColoredIconStyled = styled(ColoredIcon)`\n color: ${props => getSemanticTextColor(props.theme, props.$severity)};\n align-self: center;\n margin-left: auto;\n`;\n\nexport const GroupedInfoTileBackground = styled(DashboardTileBackground)`\n position: relative;\n`;\n\nexport const GroupInfoTileHeader = styled.div`\n position: relative;\n z-index: 1;\n margin-bottom: 14px;\n`;\n\nexport const GroupedInfoTileContentWrapper = styled.div<{\n cols: number;\n rows: number;\n}>`\n display: grid;\n grid-template-columns: repeat(${props => props.cols}, 1fr);\n grid-template-rows: repeat(${props => props.rows}, 1fr);\n grid-column-gap: 0;\n grid-row-gap: 0;\n\n ${props => getLinkStylesWithHover(props.theme, { top: 33, bottom: -1, right: 14, left: 2 })};\n\n ${StyledDashboardTileBackground} {\n justify-content: flex-start;\n padding: 10px 24px 9px 12px;\n }\n`;","import { LinkStyled } from \"@components/dashboard/Dashboard.styles\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { isDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport React, { memo, useContext, useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IconSize } from \"../../../enums\";\nimport NumberType from \"../../../types/Number\";\nimport {\n getTileData,\n IDashboardTileComponentProps,\n IInfoTileDataCell,\n IInfoTileInfo,\n TDashboardInfoTileFormatter\n} from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport { enhanceLinkWithDrilldownParams } from \"../../drillDown/DrillDown.utils\";\nimport { getIcon } from \"../../icon\";\nimport { getInfoValue } from \"../../smart/FieldInfo\";\nimport {\n ColoredIconStyled,\n Fraction,\n InfoTileBody,\n Label,\n StyledInfoTile,\n StyledInfoTileCell,\n Unit,\n Value,\n ValueWrapper\n} from \"./InfoTile.styles\";\n\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n isGrouped?: boolean;\n}\n\nexport const infoTileCurrencyFormatter: TDashboardInfoTileFormatter = (value) => {\n const formatted = NumberType.format(value, { maximumFractionDigits: 2, minimumFractionDigits: 2 });\n const parser = NumberType.getParser();\n const [number, fraction] = formatted.split(parser._decimalChar);\n return (<>\n {number}{parser._decimalChar}{fraction}\n );\n};\n\ninterface ITileCellProps extends IInfoTileDataCell {\n formatter: TDashboardInfoTileFormatter;\n inEditMode: boolean;\n}\n\nexport const InfoTileCell: React.FC = (props) => {\n const context = useContext(AppContext);\n const { value, label, iconName, unit, severity, formatter } = props;\n\n let content: React.ReactNode;\n if (iconName) {\n const Icon = getIcon(iconName);\n content = (\n \n );\n }\n\n const formattedValue = formatter ? formatter(value) : value;\n\n content = (<>\n \n {formattedValue} {unit && {unit}}\n {content}\n \n \n );\n\n if (props.link) {\n const to = getInfoValue(props, \"link\", { context });\n\n if (to) {\n content = (\n {content}\n );\n }\n }\n\n return (\n \n {content}\n \n );\n};\n\nconst InfoTile: React.FC = ({ inEditMode, info, oData, isGrouped }) => {\n const context = useContext(AppContext);\n const [data, setData] = useState(null);\n const [isLoading, setLoading] = useState(true);\n const [hasError, setError] = useState(false);\n\n useEffect(() => {\n let mounted = true;\n try {\n getTileData(info.infoData, { context, oData })\n .then((data) => mounted && setData(data))\n .finally(() => mounted && setLoading(false));\n } catch (e) {\n if (mounted) {\n setError(true);\n setData(null);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [context, info.infoData, oData]);\n\n let isAnyItemsSizeDefined = false;\n const max = data?.reduce((max, item) => {\n isAnyItemsSizeDefined = isAnyItemsSizeDefined || isDefined(item.size);\n return max + (item.size ?? 1);\n }, 0);\n if (isAnyItemsSizeDefined && data.length > 1 && max !== info.size?.w) {\n logger.warn(`Possible dashboard tile misconfiguration (${info.title}) - width of single dashboard tiles should match the width of whole widget`);\n }\n\n const content = (<>\n {info.title}\n \n {data?.map((item, idx) => (\n ))}\n \n );\n\n const showLoader = isLoading || hasError/*todo: may be different look for error state*/;\n const to = getInfoValue(info, \"link\", { context });\n\n return (\n \n {content}\n \n );\n};\n\nexport default memo(withOData(InfoTile));","import styled from \"styled-components/macro\";\nimport { multiline_ellipsis, T_PLAIN_small_hig } from \"../../../global.style\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport Badge from \"../../badge\";\n\nexport const IconWidth = \"85px\";\nexport const IconHeight = \"66px\";\n\nexport const StyledLinkTile = styled(DashboardTileBackground)`\n\n`;\n\nexport const BadgeStyled = styled(Badge)`\n transform: translateY(-50%);\n top: 0;\n right: 8px;\n`;\n\nexport const StyledLinkTileTitleWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n`;\n\nexport const StyledLinkTileTitle = styled.div`\n ${T_PLAIN_small_hig};\n text-align: center;\n ${multiline_ellipsis(\"100%\", 2)};\n`;\n\nexport const IconWrapper = styled.div`\n\n`;\n","import styled from \"styled-components/macro\";\nimport { darken, ellipsis } from \"polished\";\nimport { DefaultTheme } from \"styled-components\";\n\ninterface ITokenProps {\n selected: boolean;\n _color: string;\n isLabel: boolean;\n}\n\nconst getColor = (props: ITokenProps & { theme: DefaultTheme }): string => {\n return props.theme[props._color as keyof DefaultTheme] || props._color;\n};\n\nconst getBorderColor = (props: ITokenProps & { theme: DefaultTheme }): string => {\n if (props.isLabel) {\n return props.selected ? darken(0.1, getColor(props)) : getColor(props);\n }\n return props.selected ? props.theme.C_ACT_main : props.theme.C_FIELD_line;\n};\n\nexport const StyledToken = styled.div<{\n selected: boolean;\n _color: string;\n isLabel: boolean;\n isSelectable: boolean;\n isRound: boolean;\n}>`\n padding: 2px 5px;\n height: 22px;\n border-radius: ${props => props.isRound ? \"11px\" : props.theme.borderRadius};\n border: solid 1px ${props => getBorderColor(props)};\n background-color: ${props => props.selected ? props.theme.C_FIELD_line : \"transparent\"};\n color: ${props => props.theme.C_TEXT_primary};\n\n ${props => props._color && `\n background-color: ${props.selected ? darken(0.1, getColor(props)) : getColor(props)}\n `};\n width: fit-content;\n flex: 0 0 auto;\n user-select: none;\n ${ellipsis()};\n\n font-weight: ${props => props.isLabel ? \"bold\" : \"normal\"};\n text-transform: ${props => props.isLabel ? \"uppercase\" : null};\n font-size: ${props => props.isLabel ? \"12px\" : \"14px\"};\n\n &:hover {\n border-color: ${props => props.isSelectable ? props.theme.C_ACT_main : \"\"};\n }\n`;\n\n","import React from \"react\";\nimport { StyledToken } from \"./Token.styles\";\nimport { TCellValue } from \"../table\";\nimport TestIds from \"../../testIds\";\nimport Tooltip from \"../tooltip\";\nimport { DescriptionSeparator, InputDescriptionText } from \"../inputs/select/Select.styles\";\nimport { TabIndex } from \"@utils/general\";\nimport { THistoryLocation } from \"../drillDown/DrillDown.utils\";\nimport Clickable from \"../clickable\";\n\nexport interface ITokenProps {\n title: string;\n color?: string;\n description?: string;\n id?: string;\n /** If given, selected value is rendered as clickable link */\n link?: THistoryLocation;\n isSelected?: boolean;\n isRound?: boolean;\n customTooltip?: string;\n // true by default\n onlyShowWhenChildrenOverflowing?: boolean;\n onClick?: (id: string, e: React.MouseEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const tableTokenFormatter = (title: string, color: string): TCellValue => {\n if (!title) {\n return undefined as TCellValue;\n }\n\n const instance = color ? (\n ) : title;\n\n return { tooltip: title, value: instance };\n};\n\nexport default class Token extends React.PureComponent {\n static defaultProps: Partial = {\n onlyShowWhenChildrenOverflowing: true\n };\n\n handleClick = (e: React.MouseEvent): void => {\n this.props.onClick?.(this.props.id, e);\n };\n\n handleKeyDown = (e: React.KeyboardEvent): void => {\n this.props.onKeyDown?.(e);\n };\n\n getTooltipText = (): string => {\n if (this.props.customTooltip) {\n return this.props.customTooltip;\n }\n\n let tooltip = this.props.title;\n\n if (this.props.description) {\n tooltip += `${DescriptionSeparator}${this.props.description}`;\n }\n\n return tooltip;\n };\n\n renderTitle = (): React.ReactNode => {\n if (!this.props.link) {\n return this.props.title;\n }\n\n return (\n \n {this.props.title}\n \n );\n };\n\n render() {\n return (\n \n {(ref) => {\n return (\n \n {this.renderTitle()}\n {!this.props.description ? null :\n \n {DescriptionSeparator}{this.props.description}\n \n }\n \n );\n }}\n \n );\n }\n}\n","import styled, { css } from \"styled-components/macro\";\n\nimport { StyledToken } from \"./Token.styles\";\nimport { TOKEN_MARGIN_RIGHT } from \"./Tokenizer.utils\";\n\ninterface ITokenizerStyleProps {\n _maxWidth?: string;\n isWrappable?: boolean;\n}\n\nexport const StyledTokenizerOuterWrapper = styled.div`\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n\n margin-top: -1px;\n margin-right: ${`${TOKEN_MARGIN_RIGHT}px;`}\n\n position: relative;\n\n max-width: ${props => `calc(100% - ${TOKEN_MARGIN_RIGHT}px)`};\n`;\n\nexport const StyledTokenizer = styled.div`\n display: flex;\n //width: fit-content;\n position: relative;\n min-height: 22px; // empty tokenizer to be rendered correctly with just after tokens text filled (it's absolutely positioned, so we need to keep horizontal space for it)\n\n flex-wrap: ${props => props.isWrappable ? \"wrap\" : \"nowrap\"};\n\n ${StyledToken}:not(:last-child) {\n margin-right: ${`${TOKEN_MARGIN_RIGHT}px;`}\n }\n\n ${StyledToken} {\n // prevent initial flickering by hiding all tokens completely by default\n visibility: ${props => props.isWrappable ? \"visible\" : \"hidden\"};\n }\n\n ${props => props.isWrappable && css`\n flex-wrap: wrap;\n // compensate for the token margin\n margin-bottom: -4px;\n\n ${StyledToken} {\n display: block;\n margin-bottom: 4px;\n width: fit-content;\n }\n `}\n`;\n\nexport const AfterTokensText = styled.span`\n position: absolute;\n`;","import { handleRefHandlers, isDefined } from \"@utils/general\";\nimport { getTextWidthByElement } from \"@utils/string\";\nimport { debounce } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { TextAlign } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport MoreItems from \"../moreItems/MoreItems\";\nimport Token, { ITokenProps, StyledTokenizer } from \"./\";\nimport { AfterTokensText, StyledTokenizerOuterWrapper } from \"./Tokenizer.styles\";\nimport { MAX_SHORT_TOKEN_WIDTH, MIN_LONG_TOKEN_WIDTH, TOKEN_MARGIN_RIGHT } from \"./Tokenizer.utils\";\n\ninterface IProps extends WithTranslation, WithDomManipulator {\n tokens: ITokenProps[];\n maxVisibleTokens?: number;\n maxWidth?: string; // default is \"fit-content\"\n customMoreTokensText?: (hiddenItemsCount: number) => string;\n isWrappable?: boolean;\n showAll?: boolean;\n /** By default, Tokenizer with all tokens visible is rendered in overflow tooltip.\n * This provides option to use custom content. */\n customTooltipContent?: React.ReactNode;\n /** Use to render custom token */\n tokenRenderer?: (tokenDef: ITokenProps, index: number) => React.ReactNode;\n onClick?: (tokenId: string) => void;\n passRef?: React.Ref;\n ref?: React.RefObject;\n className?: string;\n showMoreTokensTooltip?: boolean;\n trailingText?: string; // to show text after tokens, calculates space for it\n extraSpace?: number; // additional space to be kept for additional (absolutely positioned) content\n}\n\ninterface IDomUpdateArgs {\n tokens: HTMLDivElement[];\n maxTokenWidth: number;\n lastVisibleTokenRightPos: number;\n hiddenTokensCount: number;\n extraSpace: number;\n}\n\ninterface IState {\n hiddenTokensCount: number;\n}\n\n/**\n * Tokenizer component\n * - isWrappable: if true, tokens will wrap to new line if there is not enough space.\n * Available space will be calculated based on parent element or maxWidth property.\n * - maxWidth: maximum width of the tokenizer, if not set, it will be calculated based on parent element\n * - maxVisibleTokens: maximum number of tokens to be visible, rest will be hidden in MoreItems\n * - showAll: if true, all tokens will be visible, regardless of maxVisibleTokens or maxWidth\n */\n\n/** Container for tokens. Handles their rendering, selection and responsiveness */\nclass Tokenizer extends React.PureComponent {\n _wrapperRef = React.createRef();\n _tokenizerRef = React.createRef();\n _refMoreItems = React.createRef();\n _refAfterTokenText = React.createRef();\n\n resizeObserver: ResizeObserver;\n\n constructor(props: IProps) {\n super(props);\n\n this.state = {\n hiddenTokensCount: 0\n };\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n }\n\n componentDidMount(): void {\n this.correctItems();\n this.resizeObserver.observe(this._wrapperRef.current);\n this.resizeObserver.observe(this._wrapperRef.current?.parentElement);\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n const _joined = (tokens: ITokenProps[]) => tokens.map(t => t.title ?? \"\").join(\"\");\n\n if (_joined(this.props.tokens) !== _joined(prevProps.tokens) || this.props.trailingText !== prevProps.trailingText ||\n this.props.showAll !== prevProps.showAll || this.props.extraSpace !== prevProps.extraSpace ||\n this.props.maxVisibleTokens !== prevProps.maxVisibleTokens || this.props.maxWidth !== prevProps.maxWidth) {\n this.correctItems();\n }\n }\n\n componentWillUnmount() {\n this.handleResize.cancel();\n }\n\n handleResize = debounce((entries: readonly ResizeObserverEntry[]) => {\n /**\n * MultiSelect might be hidden on page load (e.g. in filters) but could have some value,\n * which should be shortened with MoreItemsMark - we need to recalculate when multiselect\n * become visible. It also could be useful if we will have flexible multiselect.\n **/\n this.correctItems();\n }, 100);\n\n // known problem for the current version (to adhere to the rules of DOMOrchestrator)\n // if width of the longer item has been once cut to MAX_ITEM_WIDTH,\n // it won't get resized to bigger one, even if there would be enough space\n correctItems = () => {\n // cases when select is hidden f.e. collapsible content\n if (!this._wrapperRef.current?.offsetWidth || !this._tokenizerRef.current || this.props.isWrappable) {\n if (this._refMoreItems.current) {\n this.props.domManipulatorOrchestrator.registerCallback(\n () => {\n return this._refMoreItems.current.style.display === \"block\";\n },\n (isMoreTextVisible) => {\n if (isMoreTextVisible) {\n this._refMoreItems.current.style.display = \"none\";\n }\n },\n [this._refMoreItems]\n );\n }\n }\n\n this.props.domManipulatorOrchestrator.registerCallback(\n () => {\n const tokens = this._tokenizerRef.current.children as unknown as HTMLDivElement[];\n\n if (this.props.isWrappable) {\n return {\n tokens,\n hiddenTokensCount: 0,\n lastVisibleTokenRightPos: undefined,\n maxTokenWidth: undefined,\n extraSpace: 0\n };\n }\n\n let hiddenTokensCount = 0;\n // extra space to be kept for additional (absolutely positioned) content, which should be deducted from parent element available space\n const extraSpace = this.props.trailingText ? getTextWidthByElement(this.props.trailingText, this._refAfterTokenText.current) : 0;\n const SPACE_FOR_MORE_ITEMS = 15; // MoreItems sign (+N) will be rendered in the extra space, or we let 15px for it if there is no extra space\n const keepAdditionalSpace = extraSpace + Math.max(this.props.extraSpace ?? 0, SPACE_FOR_MORE_ITEMS);\n // wrapper - for size calculations\n const wrapper = this._wrapperRef.current;\n\n let availableWidth: number;\n\n if (!this.props.showAll && this.props.maxWidth) {\n // predefined width\n availableWidth = parseInt(this.props.maxWidth);\n } else {\n // available width is calculated based on parent element\n const parentEl = wrapper.parentElement;\n const style = window.getComputedStyle(parentEl);\n availableWidth = parentEl.offsetWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) - (keepAdditionalSpace ? keepAdditionalSpace + TOKEN_MARGIN_RIGHT : 0);\n }\n availableWidth = Math.round(Math.max(availableWidth, 0));\n\n if (availableWidth === 0) {\n return {\n tokens,\n hiddenTokensCount: tokens.length,\n lastVisibleTokenRightPos: undefined,\n maxTokenWidth: undefined,\n extraSpace\n };\n }\n\n let lastVisibleTokenRightPos = 0;\n let allFit = true;\n let widthSum = 0;\n const _doesTokenFit = (rightPos: number, index: number) => {\n return rightPos <= (availableWidth + 1) && (!this.props.maxVisibleTokens || index < this.props.maxVisibleTokens);\n };\n\n // go through all items full length (scrollWidth) to find out whether they all fit\n for (let i = 0; i < tokens.length; i++) {\n const item = tokens[i];\n\n // use scrollWidth => add +2 for borders manually\n const size = (item.scrollWidth + 2) + this.getTokenMargin(i);\n\n widthSum += size;\n\n if (!_doesTokenFit(widthSum, i)) {\n allFit = false;\n break;\n }\n }\n\n let max = tokens.length === 1 || allFit ? availableWidth : Math.min(availableWidth, MAX_SHORT_TOKEN_WIDTH);\n if (tokens.length && !allFit && availableWidth < MIN_LONG_TOKEN_WIDTH) {\n console.warn(`Tokenizer: available width (${availableWidth}) is less than MIN_LONG_TOKEN_WIDTH, tokens will be cut off`);\n // for readonly tokenizer, which is responsive, we keep 80 as max width\n const minTokenWidth = this.props.maxVisibleTokens ? MAX_SHORT_TOKEN_WIDTH : MIN_LONG_TOKEN_WIDTH;\n max = Math.max(availableWidth, minTokenWidth); // minimum width for token, which is shortened\n }\n\n widthSum = 0;\n\n // go through all items after \"max\" width was set based on allFit condition\n // to find out which items don't fit\n for (let i = 0; i < tokens.length; i++) {\n const item = tokens[i];\n const size = Math.min(item.offsetWidth, max) + this.getTokenMargin(i);\n // first token is always visible\n const isFirst = i === 0;\n\n widthSum += size;\n\n if (!isFirst && !_doesTokenFit(widthSum, i)) {\n hiddenTokensCount += 1;\n } else {\n lastVisibleTokenRightPos += size;\n }\n }\n\n return {\n tokens,\n extraSpace,\n hiddenTokensCount,\n lastVisibleTokenRightPos: this.props.showAll ? availableWidth : lastVisibleTokenRightPos,\n maxTokenWidth: max\n };\n },\n (data: IDomUpdateArgs) => {\n const { showAll, isWrappable } = this.props;\n\n for (let i = 0; i < data.tokens.length; i++) {\n const item = data.tokens[i];\n // every tokens gets max-width\n item.style.maxWidth = isDefined(data.maxTokenWidth) ? `${data.maxTokenWidth}px` : \"fit-content\";\n\n // use visibility to hide overflowing tokens,\n // we need them to occupy space for the calculations\n item.style.visibility = showAll || isWrappable || i < (data.tokens.length - data.hiddenTokensCount) ? \"visible\" : \"hidden\";\n }\n\n this._tokenizerRef.current.style.overflow = showAll ? \"hidden\" : \"visible\";\n this._tokenizerRef.current.style.maxWidth = isDefined(data.lastVisibleTokenRightPos) ? `${data.lastVisibleTokenRightPos}px` : \"fit-content\";\n\n const selectedTokenIndex = this.selectedTokenIndex;\n // scroll to the active item or to the right as much as possible\n if (isWrappable) {\n // no scrolling for wrapped tokens\n } else if (selectedTokenIndex !== -1) {\n this.scrollToIndex(selectedTokenIndex, TextAlign.Left);\n } else if (showAll) {\n // when focused and no item is selected, we scroll to rightmost item, so\n // user can see newly added (appended) tokens\n this.scrollToIndex(data.tokens.length - 1, TextAlign.Right);\n } else {\n // if there is no focus, left most token should be visible first\n this.scrollToIndex(0, TextAlign.Left);\n }\n\n if (this._refMoreItems.current) {\n this._refMoreItems.current.style.position = \"absolute\";\n this._refMoreItems.current.style.left = `${data.lastVisibleTokenRightPos}px`;\n this._refMoreItems.current.style.display = !showAll && data.hiddenTokensCount > 0 ? \"block\" : \"none\";\n }\n\n if (this._refAfterTokenText.current) {\n this._refAfterTokenText.current.style.left = data.tokens?.length ? `${data.lastVisibleTokenRightPos + (this._refMoreItems.current?.offsetWidth ?? 0) + TOKEN_MARGIN_RIGHT}px` : \"0\";\n this._refAfterTokenText.current.style.display = !showAll ? \"block\" : \"none\";\n }\n\n if (this._wrapperRef.current) {\n const moreItemsSize = data.hiddenTokensCount > 0 ? getTextWidthByElement(this.props.customMoreTokensText?.(data.hiddenTokensCount) ?? `+${data.hiddenTokensCount}`, this._refMoreItems.current) : 0;\n this._wrapperRef.current.style.paddingRight = showAll || isWrappable ? \"0\" : `${data.extraSpace + moreItemsSize}px`;\n }\n\n if (this.state.hiddenTokensCount !== data.hiddenTokensCount) {\n this.setState({ hiddenTokensCount: data.hiddenTokensCount });\n }\n },\n [this._tokenizerRef, this._wrapperRef, this._refAfterTokenText]\n );\n };\n\n getTokenMargin = (index: number): number => {\n return index < this.props.tokens.length - 1 ? TOKEN_MARGIN_RIGHT : 0;\n };\n\n /**\n * Scrolls to token with index idx\n * @param idx\n * @param alignment - new alignment or 'nearest' to calculate nearest edge\n * @param forceAlignment\n */\n scrollToIndex(idx: number, alignment: TextAlign | \"nearest\" = TextAlign.Left, forceAlignment = false): void {\n const item = this._wrapperRef.current.childNodes[0].childNodes[idx] as HTMLElement;\n if (item) {\n const itemLeft = item.offsetLeft;\n const itemRight = itemLeft + item.offsetWidth;\n const viewportLeft = this._tokenizerRef.current.scrollLeft;\n const viewportRight = viewportLeft + this._tokenizerRef.current.offsetWidth;\n\n const isFullyVisible = itemLeft > viewportLeft && itemRight < viewportRight;\n\n if (alignment === \"nearest\") {\n alignment = Math.abs(itemLeft - viewportLeft) > Math.abs(itemRight - viewportRight)\n ? TextAlign.Right\n : TextAlign.Left;\n }\n if (!isFullyVisible || forceAlignment) {\n this._tokenizerRef.current.scrollLeft = (alignment === TextAlign.Right)\n ? itemRight - this._tokenizerRef.current.offsetWidth + 1\n : itemLeft;\n }\n }\n }\n\n get selectedTokenIndex(): number {\n return this.props.tokens.findIndex(token => token.isSelected);\n }\n\n renderMoreItemsText = () => {\n if (this.props.isWrappable) {\n return null;\n }\n\n // ignore selected token style inside tooltip\n let tokens = this.props.tokens.map(token => ({\n ...token,\n isSelected: false\n }));\n\n if (this.state.hiddenTokensCount) {\n tokens = tokens.slice(-1 * this.state.hiddenTokensCount);\n }\n\n return }\n />;\n };\n\n handleTokenizerRef = (ref: HTMLDivElement) => {\n handleRefHandlers(ref, this._tokenizerRef, this.props.passRef);\n };\n\n renderTokens = (): React.ReactNode => {\n return this.props.tokens.map((tokenDef: ITokenProps, index: number) => {\n if (this.props.tokenRenderer) {\n return this.props.tokenRenderer(tokenDef, index);\n }\n\n return (\n \n );\n });\n };\n\n render() {\n return (\n \n \n {this.renderTokens()}\n \n {this.renderMoreItemsText()}\n {this.props.trailingText}\n \n );\n }\n}\n\nexport { Tokenizer as TokenizerClean };\n\n// extra constant instead of export default, so that Tokenizer can use internally another Tokenizer\nconst WrappedTokenizer = withDomManipulator(withTranslation([\"Components\"], { withRef: true })(Tokenizer));\n\nexport default WrappedTokenizer;","// max width if some item don't fit\nexport const MAX_SHORT_TOKEN_WIDTH = 80;\nexport const MIN_LONG_TOKEN_WIDTH = 50;\nexport const TOKEN_MARGIN_RIGHT = 5;","import styled, { css } from \"styled-components/macro\";\nimport Token from \"./Token\";\nimport Tokenizer from \"./Tokenizer\";\n\nexport const StyledUserInitial = styled(Token)<{ $isBig?: boolean; }>`\n text-transform: uppercase;\n border: none;\n padding: 2px 6px;\n font-size: 10px;\n font-weight: 600;\n\n ${props => props.$isBig && css`\n height: 38px;\n font-size: 18px;\n border-radius: 18px;\n `};\n\n overflow: visible;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n ${props => props.title.length === 2 && css<{ $isBig?: boolean; }>`\n width: ${props => props.$isBig ? 38 : 22}px;\n `};\n`;\n\nexport const StyledUserInitialTokenizer = styled(Tokenizer)`\n ${StyledUserInitial}:not(:last-child) {\n margin-right: 3px;\n }\n`;","import React from \"react\";\nimport { StyledUserInitial } from \"./UserInitial.styles\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { withTheme } from \"styled-components\";\n\ninterface IProps {\n title: string;\n tooltip: string;\n isBig?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nclass UserInitial extends React.PureComponent {\n render() {\n return (\n \n );\n }\n}\n\nexport default withTheme(UserInitial);","import styled, { css } from \"styled-components/macro\";\nimport { T_TITLE_4, T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { StyledSegmentedButton } from \"../button/SegmentedButton.styles\";\nimport { ButtonGroup, StyledButton, StyledButtonGroup, StyledIconButton } from \"../button\";\n\nconst TOOLBAR_HEIGHT = 38;\n\nexport const StyledToolbar = styled.div`\n position: relative;\n display: flex;\n min-height: ${`${TOOLBAR_HEIGHT}px`};\n ${T_TITLE_4_NORMAL};\n align-items: center;\n flex-wrap: wrap-reverse;\n width: 100%;\n overflow-x: auto;\n`;\n\nexport const Content = styled(ButtonGroup)`\n display: flex;\n position: relative;\n width: 100%;\n height: 100%;\n justify-content: flex-end;\n \n & > * {\n flex-shrink: 0;\n }\n\n & > *:not(:first-child) {\n margin-left: 12px;\n }\n\n & > ${StyledSegmentedButton}:not(:first-child),\n & > ${StyledButton}:not(${StyledIconButton}):not(:first-child) {\n margin-left: 15px;\n }\n`;\n\nexport const ContentWrapper = styled.div<{\n isSticky?: boolean;\n}>`\n display: flex;\n flex: 1 1 auto;\n position: relative;\n height: ${`${TOOLBAR_HEIGHT}px`};\n\n & > ${StyledButtonGroup} {\n overflow-y: hidden;\n min-width: ${props => props.isSticky ? \"max-content\" : null};\n }\n`;\n\nexport const StaticItems = styled.div`\n display: flex;\n height: ${`${TOOLBAR_HEIGHT}px`};\n align-items: center;\n\n & > *:last-child {\n margin-right: 25px;\n }\n`;\n\nexport const IconWrapper = styled.div`\n margin-left: 10px;\n display: none;\n`;\n\nexport const StyledWriteLine = styled.div<{ maxWidth?: string; isResponsive?: boolean; }>`\n display: flex;\n position: relative;\n top: 2px;\n ${props => props.maxWidth && `max-width: ${props.maxWidth};`}\n\n ${props => props.isResponsive && css`\n // support responsiveness\n flex: 1 1 auto;\n `};\n`;\n\nexport const WriteLineLabel = styled.span`\n ${T_TITLE_4}\n`;","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IToolbarItem, MENU_ICON_SIZE, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport React from \"react\";\n\nimport { WithDomManipulator, withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { ToolbarItemType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport TestIds from \"../../testIds\";\nimport { ISegmentedButton } from \"../button/SegmentedButton\";\nimport CustomResizeObserver from \"../customResizeObserver/CustomResizeObserver\";\nimport { MoreIcon } from \"../icon\";\nimport IconSelect from \"../inputs/select/IconSelect\";\nimport { Content, ContentWrapper, IconWrapper, StaticItems, StyledToolbar } from \"./Toolbar.styles\";\nimport { createToolbarItem, isToolbarItemDefinition } from \"./Toolbar.utils\";\n\ninterface IProps {\n /** Non collapsible items located to the left */\n staticItems?: TToolbarItem[];\n /** Collapsible items located to the right. Will be moved to selection menu if space is not big enough */\n children: TToolbarItem[];\n /** children exceeding 'maxVisibleItems' will be automatically added to collapsible section, even if there would be enough space for them */\n maxVisibleItems?: number;\n onItemChange?: (id: string, value?: TValue) => void;\n className?: string;\n style?: React.CSSProperties;\n /** Used to temporarily prevent update() calls in performance sensitive scenarios (e.g. scrolling).\n * Otherwise there can be some visible lags. */\n disableResponsiveness?: boolean;\n}\n\ntype IPropsExtended = IProps & WithDomManipulator;\n\ninterface IState {\n items?: ISelectItem[];\n}\n\nconst DEFAULT_ITEM_MARGIN = 12;\n// toolbar items that cannot be collapsed\nconst STATIC_TYPES = [\n ToolbarItemType.WriteLine, ToolbarItemType.NumericWriteLine,\n ToolbarItemType.ConfirmationButtons, ToolbarItemType.Custom\n];\n\nclass Toolbar extends React.Component {\n _refStyledToolbar = React.createRef();\n _refContent = React.createRef();\n _refMenuIcon = React.createRef();\n _refStaticContent = React.createRef();\n\n state: IState = {\n items: undefined\n };\n\n componentDidMount(): void {\n this.update();\n }\n\n componentDidUpdate(prevProps: IPropsExtended, prevState: IState) {\n const _ids = (children: TToolbarItem[]): string => children.map(c => (c as IToolbarItem)?.id).filter(Boolean).join(\",\");\n if (_ids(this.props.children) !== _ids(prevProps.children)\n || this.props.staticItems?.filter(i => i !== null)?.length !== prevProps.staticItems?.filter(i => i !== null)?.length\n || this.props.maxVisibleItems !== prevProps.maxVisibleItems) {\n this.update();\n } else if (this.props.children !== prevProps.children) {\n // we don't need to do all the responsive computation from \"update\" function\n // but props of the children like \"isDisabled\" could be changed => update items stored in state\n if (this.state.items) {\n this.updateItemsProps();\n }\n }\n }\n\n get children() {\n // can be removed when only IToolbarItem are used,\n // but now, some components pass \"false\" in the child array\n return this.props.children.filter(c => c);\n }\n\n createElement = (item: IToolbarItem): React.ReactNode => {\n return createToolbarItem(item, this.props.onItemChange);\n };\n\n enableStickyItems = () => {\n return this.children.some(item => this.isStickyItem(item));\n };\n\n update = () => {\n if (this.props.disableResponsiveness) {\n return;\n }\n\n if (!this._refContent.current) {\n return;\n }\n\n if (this.enableStickyItems()) {\n this.updateSticky();\n } else {\n this.updateNotSticky();\n }\n\n };\n\n addItemToList = (items: ISelectItem[], item: IToolbarItem) => {\n if (!item) {\n return;\n }\n // each part of segmented button is moved to selection separately\n if (item.itemType === ToolbarItemType.SegmentedButton) {\n const segItems = item.itemProps.def as ISegmentedButton[];\n\n for (let i = segItems.length - 1; i >= 0; i--) {\n const segItem = segItems[i];\n\n items.unshift({\n id: segItem.id,\n label: segItem.title ?? segItem.label,\n iconName: segItem.iconName,\n isDisabled: item.isDisabled,\n isSelected: item.itemProps.selectedButtonId === segItem.id,\n groupId: item.id,\n additionalData: {\n itemId: item.id\n }\n });\n }\n // each part of icon select is moved to selection separately\n } else if (item.itemType === ToolbarItemType.IconSelect) {\n const selItems = item.itemProps.items as ISelectItem[];\n\n for (let i = selItems.length - 1; i >= 0; i--) {\n const selItem = selItems[i];\n\n items.unshift({\n id: selItem.id,\n label: selItem.title ?? selItem.label,\n iconName: selItem.iconName,\n isDisabled: item.isDisabled,\n isSelected: item.itemProps.selectProps?.value === selItem.id,\n additionalData: {\n itemId: selItem.id\n }\n });\n }\n } else {\n items.unshift({\n id: item.id,\n label: item.label,\n iconName: item.iconName,\n isDisabled: item.isDisabled,\n isSelected: item.isActive\n });\n }\n };\n\n updateNotSticky = () => {\n this.props.domManipulatorOrchestrator.registerCallback(\n () => {\n const items: ISelectItem[] = [];\n const childNodes = this._refContent.current.childNodes;\n const childCount = childNodes.length;\n const baseBottom = (childNodes[0] as HTMLDivElement)?.offsetTop + (childNodes[0] as HTMLDivElement)?.clientHeight;\n for (let i = childCount - 1; i >= 0; i--) {\n const node = childNodes[i] as HTMLDivElement;\n if (node.style.display === \"none\" || node.offsetTop >= baseBottom || (this.props.maxVisibleItems && i >= this.maxVisibleItems)) {\n this.addItemToList(items, this.children[i] as IToolbarItem);\n }\n }\n return items;\n }, (items: ISelectItem[]) => {\n if (items.length > 0) {\n this._refMenuIcon.current.style.display = \"block\";\n this.setState({\n items\n });\n } else {\n this._refMenuIcon.current.style.display = \"none\";\n }\n\n if (this._refContent.current) {\n // restore justifyContent, could've been changed in updateSticky call\n // which would cause the Toolbar to be centered instead of aligned to the right\n this._refContent.current.style.justifyContent = \"flex-end\";\n }\n\n },\n [this._refContent, this._refMenuIcon]\n );\n };\n\n get maxVisibleItems(): number {\n const childCount = this.children.length;\n let maxVisibleItems = this.props.maxVisibleItems;\n\n if (maxVisibleItems && childCount > maxVisibleItems) {\n // three dot \"more\" menu, replaces the last visible item\n maxVisibleItems -= 1;\n }\n\n return maxVisibleItems;\n }\n\n isStickyItem = (item: TToolbarItem) => {\n return !isToolbarItemDefinition(item) || item.isActive || STATIC_TYPES.includes(item.itemType);\n };\n\n getRenderedElementsCount = (item: IToolbarItem): number => {\n switch (true) {\n case !isToolbarItemDefinition(item):\n return 1;\n case item.itemType === ToolbarItemType.ConfirmationButtons:\n return 2;\n case item.itemType === ToolbarItemType.Custom:\n return item.elementsCount ?? 1;\n default:\n return 1;\n }\n };\n\n // used for cases when we want some of the items (like WriteLine) to \"stick\"\n // meaning they will never get hidden under the three dot menu\n updateSticky = () => {\n let shouldDisplayMenu = false;\n const items: ISelectItem[] = [];\n\n const childNodes = this._refContent.current.childNodes;\n const stickyItemsWidth = (this._refStaticContent?.current as HTMLElement)?.offsetWidth ?? 0;\n let widthAvailable = (this._refStyledToolbar.current as HTMLElement).offsetWidth - stickyItemsWidth;\n\n this._refContent.current.style.justifyContent = \"flex-start\";\n for (const node of childNodes) {\n const el = node as HTMLElement;\n el.style.display = \"flex\";\n }\n\n let nodePos = childNodes.length - 1;\n\n for (let i = this.children.length - 1; i >= 0; i--) {\n const item = this.children[i];\n const node = childNodes[nodePos] as HTMLDivElement;\n const left = node.offsetLeft;\n const renderedElementsCount = this.getRenderedElementsCount(item as any);\n\n nodePos -= renderedElementsCount;\n\n // skip always present types and hide next item instead\n if (this.isStickyItem(item)) {\n widthAvailable -= node.offsetWidth + DEFAULT_ITEM_MARGIN;\n\n continue;\n }\n\n if (left + node.offsetWidth > widthAvailable || (this.props.maxVisibleItems && i >= this.maxVisibleItems)) {\n this.addItemToList(items, item as IToolbarItem);\n\n if (!shouldDisplayMenu) {\n // susbtract width of the _refMenuIcon and its margin\n const marginLeft = window.getComputedStyle(this._refMenuIcon.current).marginLeft;\n widthAvailable -= MENU_ICON_SIZE + (marginLeft ? parseInt(marginLeft) : 0);\n shouldDisplayMenu = true;\n }\n node.style.display = \"none\";\n }\n }\n\n this._refContent.current.style.justifyContent = \"flex-end\";\n\n this.setState({\n items\n });\n\n this._refMenuIcon.current.style.display = shouldDisplayMenu ? \"block\" : \"none\";\n };\n\n updateItemsProps = () => {\n const items: ISelectItem[] = [];\n const applicableChildren = [...this.children];\n\n for (let i = this.state.items.length - 1; i >= 0; i--) {\n const item = this.state.items[i];\n const origChildIndex = applicableChildren.findIndex(child => (child as IToolbarItem).id && ((child as IToolbarItem).id === item.additionalData?.itemId || (child as IToolbarItem).id === item.id));\n const origChild = applicableChildren[origChildIndex];\n\n if (origChild) {\n applicableChildren.splice(origChildIndex, 1);\n\n this.addItemToList(items, origChild as IToolbarItem);\n }\n }\n\n this.setState({\n items\n });\n };\n\n handleMenuChange = (e: ISelectionChangeArgs) => {\n const id = e.additionalData?.itemId ?? e.value;\n const value = e.additionalData?.itemId && e.value;\n\n this.props.onItemChange?.(id, value);\n };\n\n handleResize = () => {\n this.update();\n };\n\n getItem = (item: TToolbarItem): React.ReactNode => {\n if (!isToolbarItemDefinition(item)) {\n return item;\n }\n\n return this.createElement(item);\n };\n\n renderStaticItems = () => {\n if (!this.props.staticItems?.filter(i => i !== null).length) {\n return null;\n }\n\n return (\n \n {this.props.staticItems.map((item: TToolbarItem) => {\n return this.getItem(item);\n })}\n \n );\n };\n\n renderToolbar = (content: React.ReactElement) => {\n return (\n \n \n {this.props.staticItems && this.props.staticItems.length > 0 &&\n this.renderStaticItems()\n }\n \n {content}\n \n }\n value={undefined}\n onChange={this.handleMenuChange}\n />\n \n \n \n );\n };\n\n renderNotSticky() {\n const maxVisibleItems = this.maxVisibleItems;\n const getDisplay = (index: number) => (index >= maxVisibleItems) ? \"none\" : null;\n\n const content = (\n \n {(this.children || []).map((item: TToolbarItem, index: number) => {\n if (isToolbarItemDefinition(item)) {\n item = {\n ...item,\n itemProps: {\n ...item.itemProps,\n style: {\n ...item.itemProps?.style,\n display: getDisplay(index)\n }\n }\n };\n }\n\n return this.getItem(item);\n })}\n \n );\n\n return this.renderToolbar(content);\n }\n\n renderSticky() {\n const content = (\n \n {(this.children || []).map((item: TToolbarItem) => this.getItem(item))}\n \n );\n\n return this.renderToolbar(content);\n }\n\n render() {\n if (this.enableStickyItems()) {\n return this.renderSticky();\n } else {\n return this.renderNotSticky();\n }\n }\n\n}\n\nconst ToolbarWithDomManipulator = withDomManipulator(Toolbar);\n\nexport { ToolbarWithDomManipulator as Toolbar };","import { ToolbarItemType } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport React from \"react\";\n\nexport const MENU_ICON_SIZE = 38;\n\nexport interface IToolbarItem {\n id: string;\n\n isBusy?: boolean;\n order?: number;\n label?: string;\n iconName?: string;\n itemType: ToolbarItemType;\n isDisabled?: boolean;\n isLight?: boolean;\n isActive?: boolean;\n itemProps?: TRecordAny;\n\n // for ToolbarItemType.Custom\n render?: () => React.ReactElement;\n // how many elements will the custom item render into dom next to each other\n // it is needed for the updateSticky method, so that it can pair rendered element with correct definition\n // by default 1\n elementsCount?: number;\n}\n\n// todo remove every use of React.ReactElement and always use ToolbarItemType.Custom instead\n// to prevent possible errors\n// because one component can render multiple elements into the toolbar\n// => updateSticky won't be able to pair rendered elements onto their children/definition counterpart\n// ==> we either have to always render one element for one custom item, or custom def with elementsCount has to be used\n/** Custom items can be pass as rendered element.\n * Pass each button as standalone element so that Toolbar can properly render and use collapsing for each of them.*/\nexport type TToolbarItem = IToolbarItem | React.ReactElement;","import { isDefined } from \"@utils/general\";\nimport React from \"react\";\nimport { ToolbarItemType } from \"../../enums\";\nimport { getIcon } from \"../icon\";\nimport IconSelect from \"../inputs/select/IconSelect\";\nimport { StyledWriteLine, WriteLineLabel } from \"./Toolbar.styles\";\nimport { SubmittedNumericWriteLine, SubmittedWriteLine } from \"../inputs/field/SubmittedInput\";\nimport { SegmentedButton } from \"../button/SegmentedButton\";\nimport { Button, IProps as IButtonProps } from \"../button\";\nimport { TValue } from \"../../global.types\";\nimport TestIds from \"../../testIds\";\nimport ConfirmationButtons, { IProps as IConfirmationButtonProps } from \"../../views/table/ConfirmationButtons\";\nimport { ToolbarButton } from \"@components/toolbar/ToolbarButton\";\nimport { THistoryLocation } from \"@components/drillDown/DrillDown.utils\";\nimport { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\n\nexport interface IToolbarButtonProps {\n item: IToolbarItem;\n onClick?: (item: IToolbarItem) => void;\n /** Use instead of onClick */\n link?: THistoryLocation;\n}\n\nexport const isToolbarItemDefinition = (item: TToolbarItem): item is IToolbarItem => {\n return isDefined((item as IToolbarItem)?.id);\n};\n\nexport function createToolbarItem(item: IToolbarItem, onChange?: (id: string, value?: TValue) => void): React.ReactElement {\n const key = item.id;\n const props = item.itemProps || {};\n let element: React.ReactElement;\n\n switch (item.itemType) {\n case ToolbarItemType.Icon:\n case ToolbarItemType.SmallIcon:\n element = onChange?.(item.id)}\n link={(props as Partial).link}/>;\n break;\n case ToolbarItemType.IconSelect:\n const Icon = getIcon(item.iconName);\n element = } title={item.label}\n headerText={item.itemProps.headerText}\n items={item.itemProps.items}\n hotspotId={item.id}\n onChange={(e) => onChange?.(e.value as string)}\n isDisabled={item.isDisabled}\n isActive={item.isActive}\n {...item.itemProps?.selectProps}\n />;\n break;\n case ToolbarItemType.WriteLine:\n element = (\n \n onChange?.(item.id, e.value)\n }/>\n {props.secondaryLabel &&\n {props.secondaryLabel}\n }\n \n );\n break;\n case ToolbarItemType.NumericWriteLine:\n element = (\n \n onChange?.(item.id, e.value?.toString())\n }/>\n {props.secondaryLabel &&\n {props.secondaryLabel}\n }\n \n );\n break;\n case ToolbarItemType.SegmentedButton:\n element = onChange?.(item.id, id)}/>;\n break;\n case ToolbarItemType.Button:\n element = ;\n break;\n case ToolbarItemType.ConfirmationButtons:\n const confButtonsProps = item.itemProps as IConfirmationButtonProps;\n\n element = ;\n break;\n case ToolbarItemType.Custom:\n return item.render();\n default:\n break;\n }\n\n return element;\n}\n\nexport const getConfirmationButtonsToolbarDefinition = (props: IConfirmationButtonProps, id = \"confirmationButtons\"): IToolbarItem => {\n return {\n id,\n itemType: ToolbarItemType.ConfirmationButtons,\n itemProps: props\n };\n};","import React from \"react\";\nimport { getIcon } from \"@components/icon\";\nimport { ToolbarItemType } from \"../../enums\";\nimport { IconButton } from \"@components/button\";\n\nimport { IToolbarButtonProps } from \"@components/toolbar/Toolbar.utils\";\n\nexport class ToolbarButton extends React.PureComponent {\n handleClick = (): void => {\n this.props.onClick(this.props.item);\n };\n\n render() {\n const props = this.props.item.itemProps || {};\n const Icon = getIcon(this.props.item.iconName);\n const isDecorative = this.props.item.itemType === ToolbarItemType.SmallIcon;\n\n return (\n \n \n \n );\n }\n}","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { ToolbarButton } from \"@components/toolbar/ToolbarButton\";\nimport React from \"react\";\n\nimport { Direction, IconSize, ToolbarItemType } from \"../../enums\";\nimport { ButtonGroup } from \"../button\";\nimport { MoreIcon } from \"../icon\";\nimport IconSelect from \"../inputs/select/IconSelect\";\n\ninterface IProps {\n /** All items in the toolbar */\n items: IToolbarItem[];\n\n /** Count of visible item, rest will be hidden under the more button */\n visibleItemsCount?: number;\n\n onItemChange: (id: string, value?: string) => void;\n}\n\nexport class VerticalToolbar extends React.PureComponent {\n _refStyledToolbar = React.createRef();\n\n createElement = (item: IToolbarItem) => {\n switch (item.itemType) {\n case ToolbarItemType.Icon:\n return ;\n\n case ToolbarItemType.WriteLine:\n case ToolbarItemType.SegmentedButton:\n case ToolbarItemType.Button:\n throw new Error(`Invalid vertical toolbar itemType: ${item.itemType}`);\n\n default:\n break;\n }\n\n return undefined;\n };\n\n handleClick = (item: IToolbarItem) => {\n this.props.onItemChange(item.id);\n };\n\n handleMenuChange = (arg: ISelectionChangeArgs) => {\n // TODO wrong event expected, IconSelect doens't fire event with ISelectItem, but ISelectionChangeArgs\n // this.props.onItemChange(arg.id);\n };\n\n getItem = (item: IToolbarItem): any => {\n return this.createElement(item);\n };\n\n renderStaticItems = (items: IToolbarItem[]) =>\n items.map((item: IToolbarItem) =>\n this.getItem(item));\n\n render() {\n const { visibleItemsCount, items = [] } = this.props;\n const size = visibleItemsCount < items.length ? visibleItemsCount - 1 : items.length;\n\n const visibleItems = items.slice(0, size),\n hiddenItems = items.slice(size).map((item): ISelectItem => {\n return {\n id: item.id,\n label: item.label,\n iconName: item.iconName\n };\n });\n\n return (\n \n {visibleItems.length > 0 &&\n this.renderStaticItems(visibleItems)\n }\n {hiddenItems?.length > 0 &&\n }\n value={undefined}\n onChange={this.handleMenuChange}\n />}\n \n );\n }\n}\n","import styled, { css } from \"styled-components/macro\";\n\nimport { fadeInAnimation, LayoutStackOrder } from \"../../global.style\";\n\nexport const TooltipHorizontalPadding = 10;\nexport const TooltipPaddingFromPage = 19;\n\nexport const StyledTooltip = styled.div<{\n noBackground?: boolean\n}>`\n ${fadeInAnimation};\n font-size: 10px;\n width: fit-content;\n min-width: min-content;\n max-width: 400px;\n z-index: ${LayoutStackOrder.Tooltips};\n white-space: pre-wrap;\n ${props => !props.noBackground && css`\n background-color: ${props.theme.C_BG_tooltip};\n color: ${props.theme.C_TEXT_primary};\n box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.24);\n border-radius: 3px;\n padding: 3px ${TooltipHorizontalPadding}px;\n `};\n`;","import React from \"react\";\nimport { StyledTooltip } from \"./Tooltip.style\";\nimport {\n composeRefHandlers,\n doesElementContainsElement,\n getValue,\n handleRefHandlers,\n isOverflowing\n} from \"@utils/general\";\nimport TestIds from \"../../testIds\";\nimport PopperWrapper from \"../popperWrapper\";\n\ninterface IProps {\n /** Content of the opened tooltip.\n * Can receive content as callback - performance optimization. We don't need to render tooltips that are not opened. */\n content: React.ReactNode | (() => React.ReactNode);\n /** Tooltip is only shown when mouse hovers over the given reference element */\n children?: (ref: React.Ref, overflowRef?: React.Ref) => React.ReactElement;\n /** Only show tooltip if children content is overflowing.\n * Tooltip takes care of the check for the wrapped components. */\n onlyShowWhenChildrenOverflowing?: boolean;\n ignoreHeightOverflow?: boolean;\n passRef?: React.RefObject;\n isHidden?: boolean;\n noBackground?: boolean;\n delay?: number;\n}\n\nexport type { IProps as ITooltipProps };\n\ninterface IState {\n showTooltip: boolean;\n mouseX: number;\n mouseY: number;\n}\n\nconst X_DISTANCE_FROM_MOUSE = 20;\nconst Y_DISTANCE_FROM_MOUSE = 10;\n\nexport default class Tooltip extends React.PureComponent {\n state: IState = {\n showTooltip: false,\n mouseX: 0,\n mouseY: 0\n };\n\n showTooltipTimer: ReturnType;\n\n static defaultProps: Partial = {\n delay: 650\n };\n\n _referenceRef = React.createRef();\n _overflowRef = React.createRef();\n _tooltipRef = React.createRef();\n _handlersRegistered = false;\n\n componentDidMount(): void {\n this.registerHandlers();\n }\n\n componentWillUnmount(): void {\n if (this._handlersRegistered && this._referenceRef.current) {\n this.unregisterHandlers();\n document.removeEventListener(\"mousemove\", this.handleElementMouseMove);\n }\n this.cancelShowTooltip();\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (!prevState.showTooltip && this.state.showTooltip) {\n this._tooltipRef.current.addEventListener(\"mouseleave\", this.handleElementMouseLeave);\n }\n\n if (!prevProps.isHidden && this.props.isHidden && this.state.showTooltip) {\n this.hideTooltip();\n }\n\n this.registerHandlers();\n }\n\n registerHandlers = (): void => {\n if (!this._handlersRegistered && this._referenceRef.current) {\n this._referenceRef.current.addEventListener(\"mouseenter\", this.handleElementMouseEnter);\n this._referenceRef.current.addEventListener(\"mouseleave\", this.handleElementMouseLeave);\n this._handlersRegistered = true;\n }\n };\n\n unregisterHandlers = (): void => {\n if (this._handlersRegistered) {\n this._handlersRegistered = false;\n this._referenceRef.current?.removeEventListener(\"mouseenter\", this.handleElementMouseEnter);\n this._referenceRef.current?.removeEventListener(\"mouseleave\", this.handleElementMouseLeave);\n }\n };\n\n isMouseOver = (event: MouseEvent): boolean => {\n const target = event.relatedTarget as Element;\n return doesElementContainsElement(this._referenceRef.current, target)\n || doesElementContainsElement(this._tooltipRef.current, target);\n };\n\n shouldShowTooltip = (): boolean => {\n if (this.props.isHidden) {\n return false;\n }\n\n if (!this.props.onlyShowWhenChildrenOverflowing) {\n return true;\n }\n\n const ref = this._overflowRef.current ?? this._referenceRef.current;\n return isOverflowing(ref) || (!this.props.ignoreHeightOverflow && ref.scrollHeight > ref.clientHeight);\n };\n\n handleElementMouseEnter = (event: MouseEvent): void => {\n this.setState({\n mouseX: event.x,\n mouseY: event.y\n });\n\n this.showTooltip();\n document.addEventListener(\"mousemove\", this.handleElementMouseMove);\n };\n\n cancelShowTooltip = (): void => {\n if (this.showTooltipTimer) {\n clearTimeout(this.showTooltipTimer);\n this.showTooltipTimer = null;\n }\n };\n\n showTooltipSync = (): void => {\n if (this.props.content && this.shouldShowTooltip()) {\n this.showTooltipTimer = null;\n this.setState({\n showTooltip: true\n });\n }\n };\n\n showTooltip = (): void => {\n this.cancelShowTooltip();\n\n if (this.props.delay) {\n this.showTooltipTimer = setTimeout(this.showTooltipSync, this.props.delay);\n } else {\n this.showTooltipSync();\n }\n };\n\n hideTooltip = (): void => {\n this._tooltipRef.current.removeEventListener(\"mouseleave\", this.handleElementMouseLeave);\n this.setState({\n showTooltip: false\n });\n };\n\n handleElementMouseLeave = (event: MouseEvent): void => {\n if (!this.isMouseOver(event)) {\n if (this.state.showTooltip) {\n this.hideTooltip();\n }\n\n document.removeEventListener(\"mousemove\", this.handleElementMouseMove);\n this.cancelShowTooltip();\n }\n };\n\n handleElementMouseMove = (event: MouseEvent): void => {\n this.setState({\n mouseX: event.x,\n mouseY: event.y,\n showTooltip: false\n });\n\n this.showTooltip();\n };\n\n handleContentRef = (ref: HTMLDivElement): void => {\n this.unregisterHandlers();\n handleRefHandlers(ref, this._referenceRef);\n this.registerHandlers();\n };\n\n handleAnimationEnd = (e: React.AnimationEvent): void => {\n // stop propagation here so that this event doesn't affect tooltip wrappers that handles their own animation end\n // e.g. when tooltip used inside alert with fade, which would results in premature closing of the alert when tooltip is shown\n e.stopPropagation();\n };\n\n getVirtualElementReference = () => {\n // position the popper to mouse instead of reference element\n // https://popper.js.org/docs/v2/virtual-elements/\n return {\n getBoundingClientRect: () => {\n const x = this.state.mouseX;\n const y = this.state.mouseY;\n\n return {\n width: 0,\n height: 0,\n top: y,\n left: x,\n right: 0,\n bottom: 0,\n x: 0,\n y: 0,\n toJSON: () => {\n }\n };\n }\n };\n };\n\n render = (): React.ReactElement => {\n const value = getValue(this.props.content);\n\n // use portal to body to get out of nested overflow hidden elements\n return (\n <>\n {this.props.children?.(this.handleContentRef, this._overflowRef)}\n {\n \n <>\n {(!this.props.children || this.state.showTooltip) &&\n \n {typeof value === \"string\"\n ? ({value})\n : value\n }\n \n }\n \n \n }\n \n );\n };\n}","import { DefaultTheme } from \"styled-components\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport { fadeOutAnimation, LayoutStackOrder, LocalStackOrder, T_PLAIN_small } from \"../../global.style\";\n\nexport const TooltipArrow = styled.div<{color: string}>`\n width: 14px;\n height: 14px;\n border-radius: inherit;\n z-index: -1;\n\n &::before {\n content: \"\";\n background-color: ${props => props.color ? (props.theme[props.color as keyof DefaultTheme] ?? props.color) : props.theme.C_BG_info_arrow};\n width: 100%;\n height: 100%;\n border-radius: inherit;\n transform: rotate(45deg);\n position: absolute;\n }\n`;\n\nconst ARROW_OFFSET = \"-6px\";\nexport const TOOLTIP_PADDING = 12;\n\nexport const TooltipArrowStyles = css`\n &[data-popper-placement^=\"right\"] {\n ${TooltipArrow} {\n left: ${ARROW_OFFSET};\n // clip the left half of the square\n clip-path: polygon(-50% -50%, -50% 150%, 50% 150%, 50% -50%);\n }\n }\n\n &[data-popper-placement^=\"left\"] {\n ${TooltipArrow} {\n right: ${ARROW_OFFSET};\n // clip the right half of the square\n clip-path: polygon(50% -50%, 150% -50%, 150% 150%, 50% 150%);\n }\n }\n\n &[data-popper-placement^=\"top\"] {\n ${TooltipArrow} {\n bottom: ${ARROW_OFFSET};\n // clip the top half of the square\n clip-path: polygon(-50% 150%, 150% 150%, 150% 50%, -50% 50%);\n }\n }\n\n &[data-popper-placement^=\"bottom\"] {\n ${TooltipArrow} {\n top: ${ARROW_OFFSET};\n // clip the bottom half of the square\n clip-path: polygon(-50% -50%, 150% -50%, 150% 50%, -50% 50%);\n }\n }\n`;\n\nexport const StyledTooltip = styled.div<{ useFade: boolean; isGlobal?: boolean }>`\n padding: ${TOOLTIP_PADDING}px;\n color: ${props => props.theme.C_BTN_4L_emph_text};\n box-shadow: 0 0 13px 0 rgba(0, 0, 0, 0.15);\n border-radius: 3px;\n z-index: ${props => props.isGlobal ? LayoutStackOrder.Tooltips : LocalStackOrder.Tooltips};\n\n ${T_PLAIN_small};\n\n ${TooltipArrowStyles};\n \n ${props => props.useFade && css`\n ${fadeOutAnimation()}\n `};\n`;\n\nexport const Background = styled.div<{color: string}>`\n position: absolute;\n z-index: -1;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border-radius: 3px;\n\n ${props => !props.color && css`\n background-image: ${props => `linear-gradient(to bottom, ${props.theme.C_BG_info})`};\n\n [data-popper-placement^=\"bottom\"] & {\n background-image: ${props => `linear-gradient(to top, ${props.theme.C_BG_info})`};\n }\n `}\n\n ${props => props.color && css<{ color: string }>`\n background-color: ${props => props.theme[props.color as keyof DefaultTheme] ?? props.color};\n `}\n`;\n\nexport const StyledTooltipContent = styled.div`\n max-width: 260px;\n word-break: break-word;\n`;","import React, { PropsWithChildren, useCallback, useRef, useState } from \"react\";\nimport { getIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport useHideOnBlur from \"../../hooks/HideOnBlurHook\";\nimport { BUTTON_POPPER_TOOLTIP_OFFSET_Y, IconButton } from \"../button\";\nimport PopperTooltip from \"../popperTooltip/PopperTooltip\";\n\nexport interface ITooltipIconProps extends PropsWithChildren<{}> {\n /** Render in the current DOM instead of React.Portal to support different cases */\n inPlace?: boolean;\n offsetY?: number;\n size?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\ninterface IProps extends ITooltipIconProps {\n iconName: string;\n onClick?: () => void;\n onKeyDown?: (args: React.KeyboardEvent) => void;\n cursor?: string;\n title?: string;\n autoHide?: boolean;\n}\n\nconst TooltipIcon: React.FC> = React.memo(({ size = IconSize.S, ...props }) => {\n const tooltipRef = useRef(null);\n const referenceElement = useRef(null);\n const [useFade, setUseFade] = useState(false);\n const { isVisible, setIsVisible } = useHideOnBlur({\n refs: [tooltipRef, referenceElement],\n initialIsVisible: false,\n onHide: () => {\n if (useFade) {\n setUseFade(false);\n }\n }\n });\n\n const hideTooltipFn = () => {\n setIsVisible(false);\n if (useFade) {\n setUseFade(false);\n }\n };\n\n const handleClick = useCallback((e) => {\n const nextIsVisible = !isVisible;\n\n if (nextIsVisible && props.autoHide) {\n setUseFade(true);\n }\n\n props.onClick?.();\n e.stopPropagation();\n e.preventDefault();\n\n if (nextIsVisible) {\n setIsVisible(true);\n } else {\n hideTooltipFn();\n }\n }, [isVisible]);\n\n const handleMouseDown = useCallback((e) => {\n // used to disable text selection on mouse click\n // but this prevents the button from getting focus, and we need that for HideOnBlur to work.\n // find another way to prevent text selection if really needed\n // e.preventDefault();\n }, []);\n\n\n const Icon = getIcon(props.iconName);\n const cursor = props.cursor;\n\n return (\n \n {(ref) => {\n return (\n \n \n \n );\n }}\n \n );\n});\n\nexport default TooltipIcon;","import React from \"react\";\nimport TooltipIcon, { ITooltipIconProps } from \"../TooltipIcon\";\n\nclass TooltipIconInfo extends React.PureComponent {\n render() {\n return (\n \n );\n }\n}\n\nexport default TooltipIconInfo;","import React from \"react\";\nimport TooltipIcon, { ITooltipIconProps } from \"../TooltipIcon\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { IconSize } from \"../../../enums\";\nimport { KeyName } from \"../../../keyName\";\n\ninterface IProps extends ITooltipIconProps, WithTranslation {\n link: string;\n title?: string;\n successTitle?: string;\n}\n\nclass TooltipIconCopyLink extends React.PureComponent {\n handleClick = () => {\n // store into system clipboard\n navigator.clipboard.writeText(this.props.link);\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n const isCopyShortcut = [\"c\", \"C\"].includes(event.key) && event.ctrlKey;\n if (isCopyShortcut || event.key === KeyName.Enter) {\n this.handleClick();\n }\n };\n\n render() {\n return (\n \n {this.props.successTitle ?? this.props.t(\"Components:CopyLink.LinkCopied\")}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(TooltipIconCopyLink);","import {\n DefaultVariantEntity,\n EntitySetName,\n EntityTypeName,\n IDefaultVariantEntity,\n IVariantEntity,\n VariantEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AccountingCode, VariantAccessTypeCode, VatStatusCode } from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport {\n getCompanyAccountingCode,\n isIdentifiedPersonCompany,\n isOnOrganizationLevel,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { isNotDefined } from \"@utils/general\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../enums\";\nimport { TObject } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { IGetValueArgs } from \"../smart/FieldInfo\";\nimport { IFormGroupDef } from \"../smart/smartFormGroup/SmartFormGroup\";\n\nexport enum VariantType {\n Form = \"Form\",\n Table = \"Table\"\n}\n\nexport enum GroupType {\n Normal = \"Normal\",\n LineItem = \"LineItem\"\n}\n\nexport enum RowType {\n Normal = \"Normal\",\n Collapsed = \"Collapsed\"\n}\n\nexport interface IRow {\n id: string;\n}\n\nexport interface IVariantColumn {\n id: string;\n sortOrder?: number;\n sortType?: Sort;\n group?: string;\n aggregationFunction?: string;\n}\n\nexport interface ITableVariant {\n columns: IVariantColumn[];\n filters: TObject;\n // company dependent filters\n // first key is company id,\n // then, inside of it, is the same object as in \"filters\"\n companyFilters?: Record;\n visibleFilters?: string[];\n}\n\nexport type IVariant = IFormVariant | ITableVariant;\nexport type IFormVariant = IFormGroupDef[];\n\n/** Interfaces for the JSON string stored in Variant.VariantData */\ninterface IVariantDataStringRow {\n RowGroup: number;\n UiId: string;\n RowType: RowType;\n}\n\ninterface IVariantDataStringColumn {\n UiId: string;\n SortOrder?: number;\n SortType?: \"DSC\" | \"ASC\";\n Group?: string;\n AggregationFunction?: string;\n\n}\n\ninterface IVariantDataStringFormGroup {\n Title: string;\n UiId: string;\n GroupType?: GroupType;\n Collection?: string;\n Rows?: IVariantDataStringRow[];\n UiOrder?: string;\n\n}\n\nexport interface IVariantDataStringObject {\n Columns?: IVariantDataStringColumn[];\n Filters?: TObject;\n CompanyFilters?: Record;\n VisibleFilters?: string[];\n FormGroups?: IVariantDataStringFormGroup[];\n}\n\n\n// special system \"row\" that is not converted into field on FE\n// instead used as a flag\nexport const SHOW_ITEMS_SUMMARY_VARIANT_ROW_ID = \"$showItemsSummary\";\n\nexport interface IVariantParams {\n name: string;\n accessType: VariantAccessTypeCode;\n accountingCode: AccountingCode;\n vatStatusCode: VatStatusCode;\n viewId: string;\n entityType: EntityTypeName;\n variantType: VariantType;\n formGroups?: IFormGroupDef[];\n table?: ITableVariant;\n\n id?: string;\n}\n\nconst rowsToBody = (rows: IRow[][], rowType: RowType) => {\n if (isNotDefined(rows)) {\n return [];\n }\n const result: any[] = [];\n\n for (let groupIndex = 0; groupIndex < rows.length; groupIndex++) {\n const group = rows[groupIndex];\n for (let elementIndex = 0; elementIndex < group.length; elementIndex++) {\n const element = group[elementIndex];\n result.push({\n \"RowGroup\": groupIndex,\n \"UiId\": element.id,\n \"RowType\": rowType\n });\n }\n }\n\n return result;\n};\n\nexport class Variant {\n public name: string;\n public accessType: VariantAccessTypeCode;\n public viewId: string;\n public entityType: EntityTypeName;\n public accountingCode: AccountingCode;\n public vatStatusCode: VatStatusCode;\n public variantType: VariantType;\n public formGroups?: IFormGroupDef[];\n public table?: ITableVariant;\n\n public id?: string;\n\n constructor(params: IVariantParams) {\n this.name = params.accessType === VariantAccessTypeCode.UserVariant ? params.name?.toLowerCase() : params.name?.toUpperCase();\n this.accessType = params.accessType;\n this.viewId = params.viewId;\n this.variantType = params.variantType;\n this.formGroups = params.formGroups;\n this.table = params.table;\n this.entityType = params.entityType;\n this.accountingCode = params.accountingCode;\n this.vatStatusCode = params.vatStatusCode;\n\n this.id = params.id;\n }\n\n private getODataBody(): IVariantEntity {\n const commonProps = {\n [VariantEntity.AccessTypeCode]: this.accessType,\n [VariantEntity.Name]: this.name,\n [VariantEntity.VariantTypeCode]: this.variantType,\n [VariantEntity.ViewId]: this.viewId,\n [VariantEntity.EntityTypeCode]: this.entityType,\n [VariantEntity.AccountingCode]: this.accountingCode,\n [VariantEntity.VatStatusCode]: this.vatStatusCode\n };\n if (this.variantType === VariantType.Form) {\n return {\n ...commonProps,\n \"VariantData\": JSON.stringify({\n \"FormGroups\": this.formGroups.map((group) => {\n const result: IVariantDataStringFormGroup = {\n \"Title\": group.title as string, // todo: getInfoValue\n \"UiId\": group.id\n };\n\n if (group.lineItems) {\n result.GroupType = GroupType.LineItem;\n result.Collection = group.lineItems.collection;\n result.UiOrder = group.lineItems.order;\n result.Rows = group.lineItems.columns.map((e) => ({\n \"RowGroup\": 0,\n \"UiId\": e.id,\n \"RowType\": RowType.Normal\n }));\n\n if (group.lineItems.shouldShowItemsSummary) {\n result.Rows.push({\n \"RowGroup\": 0,\n \"UiId\": SHOW_ITEMS_SUMMARY_VARIANT_ROW_ID,\n \"RowType\": RowType.Normal\n });\n }\n\n } else {\n result.GroupType = GroupType.Normal;\n // for special groups (used in FiscalYears) that have collection\n result.Collection = group.collection;\n result.Rows = [...rowsToBody(group.rows, RowType.Normal)];\n }\n\n return result;\n })\n } as IVariantDataStringObject)\n };\n }\n return {\n ...commonProps,\n \"VariantData\": JSON.stringify({\n \"Columns\": this.table.columns.map((column) => ({\n \"UiId\": column.id,\n \"SortOrder\": column.sortOrder,\n // backend use different enum\n \"SortType\": !column.sortType ? null : column.sortType === Sort.Desc ? \"DSC\" : \"ASC\",\n \"Group\": column.group,\n \"AggregationFunction\": column.aggregationFunction\n // todo WasSaveFromDraft?\n } as IVariantDataStringObject)),\n Filters: this.table.filters,\n CompanyFilters: this.table.companyFilters,\n VisibleFilters: this.table.visibleFilters\n })\n };\n }\n\n public setVariant = (variant: IVariant): void => {\n this.variantType === VariantType.Table ? this.table = variant as ITableVariant : this.formGroups = variant as IFormVariant;\n };\n\n private async saveNew(odata: OData) {\n const result = await odata.getEntitySetWrapper(EntitySetName.Variants).create(this.getODataBody()) as ODataQueryResult;\n this.id = result.value.Id?.toString();\n }\n\n private async saveExisting(odata: OData) {\n const body = this.getODataBody();\n\n await odata.getEntitySetWrapper(EntitySetName.Variants).update(this.id, body);\n }\n\n async save(odata: OData): Promise {\n if (isNotDefined(this.id)) {\n await this.saveNew(odata);\n } else {\n await this.saveExisting(odata);\n }\n }\n\n async saveAsDefault(odata: OData, opts: ICompanyVariantContext, accessType: VariantAccessTypeCode = VariantAccessTypeCode.UserVariant): Promise {\n if (isNotDefined(this.id)) {\n await this.saveNew(odata);\n }\n const accounting = this.accountingCode ?? opts.accounting;\n const vatStatus = this.vatStatusCode ?? opts.vatStatus;\n\n const filter = getVariantFilter({\n viewId: this.viewId,\n variantType: this.variantType,\n accounting, vatStatus\n }, false);\n\n const result = await odata.getEntitySetWrapper(EntitySetName.DefaultVariants).query()\n .filter(`${filter} and AccessTypeCode eq '${accessType}'`)\n .select(\"Id\")\n .fetchData();\n const defaultVariantId = result.value[0]?.Id;\n\n if (isNotDefined(defaultVariantId)) {\n await odata.getEntitySetWrapper(EntitySetName.DefaultVariants).create(\n {\n \"AccessTypeCode\": accessType,\n \"VariantTypeCode\": this.variantType,\n \"ViewId\": this.viewId,\n [DefaultVariantEntity.AccountingCode]: accounting,\n [DefaultVariantEntity.VatStatusCode]: vatStatus,\n \"Variant\": {\n \"@odata.id\": `Variants(${this.id})`\n }\n }\n );\n } else {\n await odata.getEntitySetWrapper(EntitySetName.DefaultVariants).update(defaultVariantId, {\n \"Variant\": {\n \"@odata.id\": `Variants(${this.id})`\n }\n });\n }\n }\n\n async delete(odata: OData): Promise {\n if (isNotDefined(this.id)) {\n return;\n }\n\n const result = await odata.getEntitySetWrapper(EntitySetName.DefaultVariants).query()\n .filter(`Variant/Id eq ${this.id}`)\n .select(\"Id\")\n .fetchData();\n const defaultVariants = result.value;\n\n const batch = odata.batch();\n batch.beginAtomicityGroup(\"delete\");\n\n for (const dv of defaultVariants) {\n batch.getEntitySetWrapper(EntitySetName.DefaultVariants).delete(dv.Id);\n }\n batch.getEntitySetWrapper(EntitySetName.Variants).delete(this.id);\n\n await batch.execute();\n this.id = undefined;\n }\n}\n\nexport interface IVariants {\n defaultVariant?: Variant;\n currentVariant?: Variant;\n allVariants?: Record;\n // when working with contexts, there can be multiple default variants for different contexts\n // we need to obtain all of them to be able to manage them in variant dialog\n defaultVariants?: IDefaultVariantEntity[];\n}\n\nconst defaultVariantOrder = Object.fromEntries([[VariantAccessTypeCode.UserVariant, 0], [VariantAccessTypeCode.GlobalVariant, 1], [VariantAccessTypeCode.SystemVariant, 2]]);\n\nconst defaultVariantSorter = (a: IDefaultVariantEntity, b: IDefaultVariantEntity): number => {\n return defaultVariantOrder[a.AccessTypeCode] - defaultVariantOrder[b.AccessTypeCode];\n};\n\nconst parseFormRows = (rowData: any[], rowType: RowType): IRow[][] => {\n const elements = rowData.filter((d: any) => d.RowType === rowType);\n const result: IRow[][] = [];\n\n for (const element of elements) {\n while (result.length <= element.RowGroup) {\n result.push([]);\n }\n result[element.RowGroup].push({\n id: element.UiId\n });\n }\n\n return result;\n};\n\nconst parseFormGroup = (groupData: any): IFormGroupDef => {\n if (groupData.GroupType === GroupType.Normal) {\n return {\n title: groupData.Title,\n id: groupData.UiId,\n rows: parseFormRows(groupData.Rows, RowType.Normal),\n collection: groupData.Collection\n };\n } else if (groupData.GroupType === GroupType.LineItem) {\n const showSummaryItem = groupData.Rows?.find((row: {\n UiId: string;\n }) => row.UiId === SHOW_ITEMS_SUMMARY_VARIANT_ROW_ID);\n\n return {\n title: groupData.Title,\n id: groupData.UiId,\n lineItems: {\n collection: groupData.Collection,\n order: groupData.UiOrder,\n columns: groupData.Rows?.filter((r: {\n UiId: string;\n }) => r.UiId !== SHOW_ITEMS_SUMMARY_VARIANT_ROW_ID).map((r: any) => ({\n id: r.UiId\n })),\n shouldShowItemsSummary: !!showSummaryItem\n }\n };\n } else {\n throw new Error(\"Unknow group type\");\n }\n};\n\nexport const parseVariant = (variantData: IVariantEntity): Variant => {\n const params: IVariantParams = {\n name: variantData.Name,\n accessType: variantData.AccessTypeCode as VariantAccessTypeCode,\n viewId: variantData.ViewId,\n variantType: variantData.VariantTypeCode as VariantType,\n entityType: variantData.EntityTypeCode as EntityTypeName,\n vatStatusCode: variantData.VatStatusCode as VatStatusCode,\n accountingCode: variantData.AccountingCode as AccountingCode,\n id: variantData.Id.toString()\n };\n\n const variantJson = JSON.parse(variantData.VariantData) as IVariantDataStringObject;\n\n if (params.variantType === VariantType.Form) {\n params.formGroups = variantJson?.FormGroups?.map(parseFormGroup);\n } else if (params.variantType === VariantType.Table) {\n params.table = {\n columns: variantJson?.Columns?.map((c: IVariantDataStringColumn): IVariantColumn => ({\n id: c.UiId,\n sortOrder: c.SortOrder,\n // backend use different enum\n sortType: !c.SortType ? null : c.SortType === \"DSC\" ? Sort.Desc : Sort.Asc,\n aggregationFunction: c.AggregationFunction,\n group: c.Group\n })),\n filters: variantJson?.Filters,\n companyFilters: variantJson?.CompanyFilters,\n visibleFilters: variantJson?.VisibleFilters\n };\n }\n\n return new Variant(params);\n};\n\nconst checkNavigation = (bindingContext: BindingContext, path: string, messageBuilder: () => string) => {\n try {\n bindingContext.navigate(path);\n } catch (_) {\n throw new Error(messageBuilder());\n }\n};\n\nconst validateFormGroup = (formGroups: IFormGroupDef[], bindingContext: BindingContext) => {\n for (const formGroup of formGroups) {\n if (formGroup.rows) {\n for (const row of formGroup.rows) {\n for (const fieldDef of row) {\n let path = fieldDef.id;\n\n if (formGroup.collection) {\n path = `${formGroup.collection}/${path}`;\n }\n\n checkNavigation(bindingContext, path, () => `Field with id: ${fieldDef.id} is missing in metadata`);\n }\n }\n }\n if (formGroup.lineItems?.columns) {\n for (const fieldDef of formGroup.lineItems.columns) {\n checkNavigation(bindingContext.navigate(formGroup.lineItems.collection), fieldDef.id, () => `Line item field with id: ${fieldDef.id} is missing in metadata`);\n }\n }\n if (formGroup.lineItems?.order) {\n checkNavigation(bindingContext.navigate(formGroup.lineItems.collection), formGroup.lineItems.order, () => `Order field of line items: ${formGroup.lineItems.order} is missing in metadata`);\n }\n }\n};\n\nconst validateTable = (table: ITableVariant, bindingContext: BindingContext) => {\n for (const column of table.columns) {\n checkNavigation(bindingContext, column.id, () => `Column with id: ${column.id} is missing in metadata.`);\n }\n};\n\nconst validateVariants = (variants: IVariants, bindingContext: BindingContext) => {\n for (const [key, variant] of Object.entries(variants.allVariants)) {\n try {\n if (variant.table?.columns) {\n validateTable(variant.table, bindingContext);\n }\n if (variant.formGroups?.length > 0) {\n validateFormGroup(variant.formGroups, bindingContext);\n }\n } catch (ex) {\n throw new Error(`Variant id ${key} is corrupted.\\n${ex.message}`);\n }\n }\n};\n\n// !IMPORTANT!\n// if no \"EVALA\" variant exists, the first system variant is used as default,\n// variants are sort over absolute value of Id\n// => place the variant that should be default as higher number (-10 > -12) Id in VariantBase.csv\nexport const getDefaultSystemVariant = (variants: Variant[]): Variant => {\n const isSystemVariant = (v: Variant) => v.accessType === VariantAccessTypeCode.SystemVariant;\n const evalaVariant = variants.find(v => isSystemVariant(v) && (v.name === \"EVALA\"));\n\n return evalaVariant ?? variants.find(isSystemVariant);\n};\n\nexport interface ICompanyVariantContext {\n accounting?: AccountingCode;\n vatStatus?: VatStatusCode;\n}\n\nexport function getCompanyVariantContext(context: IAppContext): ICompanyVariantContext {\n if (isOnOrganizationLevel({ context })) {\n return {};\n }\n const accounting = getCompanyAccountingCode(context);\n // identified person can behave like vat registered company => use that context\n const vatStatus = isVatRegisteredCompany(context) || isIdentifiedPersonCompany(context) ? VatStatusCode.VATRegistered : VatStatusCode.NotVATRegistered;\n return {\n accounting, vatStatus\n };\n}\n\nexport function isInVatPayerVariantContext(args: IGetValueArgs): boolean {\n const { vatStatus } = getCompanyVariantContext(args.context);\n return vatStatus === VatStatusCode.VATRegistered;\n}\n\nexport interface IVariantContext extends Partial {\n viewId: string;\n variantType: VariantType;\n}\n\nfunction getVariantFilter(opts: IVariantContext, allowNull = true): string {\n const { variantType, viewId, accounting, vatStatus } = opts;\n const variantFilters = [\n `${VariantEntity.VariantTypeCode} eq '${variantType}'`,\n `${VariantEntity.ViewId} eq '${viewId}'`\n ];\n if (accounting) {\n variantFilters.push(`(${VariantEntity.AccountingCode} eq '${accounting}'${allowNull ? ` or ${VariantEntity.Accounting} eq null` : \"\"})`);\n }\n if (vatStatus) {\n variantFilters.push(`(${VariantEntity.VatStatusCode} eq '${vatStatus}'${allowNull ? ` or ${VariantEntity.VatStatus} eq null` : \"\"})`);\n }\n return `${variantFilters.join(\" and \")}`;\n}\n\nexport const loadVariants = async (odata: OData, opts: IVariantContext, bindingContext: BindingContext): Promise => {\n const variants: IVariants = {};\n const variantFilter = getVariantFilter(opts);\n const defaultVariantFilter = getVariantFilter(opts, false);\n\n const batch = odata.batch();\n\n batch.getEntitySetWrapper(EntitySetName.Variants).query()\n .filter(variantFilter)\n .select(VariantEntity.Id, VariantEntity.Name, VariantEntity.VariantTypeCode, VariantEntity.AccessTypeCode,\n VariantEntity.ViewId, VariantEntity.VariantData, VariantEntity.AccountingCode, VariantEntity.VatStatusCode)\n .orderBy(VariantEntity.Id, false);\n\n batch.getEntitySetWrapper(EntitySetName.DefaultVariants).query()\n .filter(defaultVariantFilter)\n .select(\"Id\", \"AccessTypeCode\", DefaultVariantEntity.AccountingCode, DefaultVariantEntity.VatStatusCode)\n .expand(\"Variant\", e => e.select(\"Id\"))\n .orderBy(VariantEntity.Id, false);\n\n const results = await batch.execute();\n\n variants.allVariants = Object.fromEntries(((results[0].body as ODataQueryResult).value ?? []).map(parseVariant).map((v: Variant) => [v.id, v]));\n\n const defaultVariants = (results[1].body as ODataQueryResult).value;\n\n defaultVariants.sort(defaultVariantSorter);\n\n if (defaultVariants.length === 0) {\n const variantValues = Object.values(variants.allVariants);\n variants.defaultVariant = getDefaultSystemVariant(variantValues);\n } else {\n variants.defaultVariant = variants.allVariants[defaultVariants[0].Variant.Id];\n }\n\n if (isNotDefined(opts.vatStatus) && isNotDefined(opts.accounting)) {\n // we don't have vatStatus and accounting context in the props -> there are mixed variants from different\n // contexts (used in edit dialog), return all the default variants\n variants.defaultVariants = defaultVariants;\n }\n\n validateVariants(variants, bindingContext);\n\n return variants;\n};\n\nexport const updateNames = async (odata: OData, variants: Variant[]): Promise => {\n const batch = odata.batch();\n batch.beginAtomicityGroup(\"names\");\n for (const variant of variants) {\n batch.getEntitySetWrapper(EntitySetName.Variants).update(variant.id, {\n \"Name\": variant.name\n });\n }\n await batch.execute();\n};\n","import styled from \"styled-components/macro\";\nimport { BinIcon, EditIcon, RefreshIcon } from \"../icon\";\nimport { RadioButton } from \"../inputs/radioButtonGroup/RadioButtonGroup\";\nimport Input from \"../inputs/input/Input\";\nimport { ellipsis } from \"polished\";\nimport { getDisabledStyle } from \"../../global.style\";\nimport IconSelect from \"../inputs/select/IconSelect\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport { TabWrapper } from \"../tabs/Tabs.styles\";\n\nexport const StyledVariantSelector = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Label = styled.div<{\n _isCustom?: boolean;\n _isDisabled?: boolean;\n}>`\n font-style: ${props => props._isCustom ? \"italic\" : \"normal\"};\n font-size: 18px;\n font-weight: 300;\n letter-spacing: 0.18px;\n height: 38px;\n line-height: 38px;\n vertical-align: middle;\n \n ${props => getDisabledStyle(props._isDisabled)}\n`;\nexport const IconSelectStyled = styled(IconSelect)`\n margin-left: 2px;\n`;\n\nexport const VariantInput = styled(Input)`\n min-height: 28px;\n width: 100%;\n`;\n\nexport const HeaderTitle = styled.div`\n font-weight: bold;\n`;\n\nexport const Icons = styled.div`\n display: flex;\n`;\nexport const StyledEditIcon = styled(EditIcon)`\n margin-right: 6px\n`;\n\nexport const StyledBinIcon = styled(BinIcon)`\n margin-top: -2px;\n`;\n\nexport const StyledRefreshIcon = styled(RefreshIcon)`\n margin-top: -2px;\n`;\n\nexport const Grid = styled.div`\n display: grid;\n font-size: 14px;\n grid-template-columns: min-content max-content min-content;\n grid-column-gap: 24px;\n\n & > div {\n height: 28px;\n display: flex;\n align-items: center;\n }\n`;\n\nexport const MiddleColumn = styled.div`\n vertical-align: middle;\n height: 28px;\n line-height: 28px;\n ${ellipsis()};\n display: block !important;\n`;\n\nexport const TableRadioButton = styled(RadioButton)`\n width: 100%;\n justify-content: center;\n`;\n\nexport const TextParent = styled.span <{\n isDisabled?: boolean;\n}>`\n ${props => getDisabledStyle(props.isDisabled)};\n`;\n\nexport const ActiveText = styled.span`\n font-style: italic;\n color: ${props => props.theme.C_ACT_thick_line};\n`;\n\nexport const EditVariantContent = styled.div`\n padding: 28px ${VIEW_PADDING_VALUE}px 24px ${VIEW_PADDING_VALUE}px;\n min-width: 450px;\n width: fit-content;\n\n ${TabWrapper} {\n margin-bottom: 28px;\n }\n`;","import { IEntity } from \"@odata/BindingContext\";\nimport { EntityTypeName, IDefaultVariantEntity } from \"@odata/GeneratedEntityTypes\";\nimport { AccountingCode, VariantAccessTypeCode, VatStatusCode } from \"@odata/GeneratedEnums\";\nimport { ODataError } from \"@odata/ODataParser\";\nimport { isOnOrganizationLevel } from \"@utils/CompanyUtils\";\nimport { isDefined } from \"@utils/general\";\nimport memoizeOne from \"@utils/memoizeOne\";\nimport i18next, { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BasicInputSizes, IconSize, Status } from \"../../enums\";\nimport { TRecordString, TRecordType } from \"../../global.types\";\nimport { KeyName } from \"../../keyName\";\nimport { ModelType } from \"../../model/Model\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport TestIds from \"../../testIds\";\nimport Alert from \"../alert\";\nimport { Button, IconButton } from \"../button\";\nimport Dialog from \"../dialog/Dialog\";\nimport { CheckboxGroup } from \"../inputs/checkboxGroup\";\nimport { ICheckboxGroupChange } from \"../inputs/checkboxGroup/CheckboxGroup\";\nimport Field from \"../inputs/field/Field\";\nimport FieldsWrapper from \"../inputs/field/FieldsWrapper\";\nimport Input, { IInputOnChangeEvent } from \"../inputs/input/Input\";\nimport Tabs, { ITabData } from \"../tabs\";\nimport {\n getCompanyVariantContext,\n getDefaultSystemVariant,\n ICompanyVariantContext,\n updateNames,\n Variant,\n VariantType\n} from \"./VariantOdata\";\nimport { VariantDialogState } from \"./VariantSelector\";\nimport {\n ActiveText,\n EditVariantContent,\n Grid,\n HeaderTitle,\n Icons,\n MiddleColumn,\n StyledBinIcon,\n StyledEditIcon,\n StyledRefreshIcon,\n TableRadioButton,\n TextParent,\n VariantInput\n} from \"./VariantSelector.styles\";\n\n\nexport type VariantDialogType = VariantDialogState.Edit | VariantDialogState.Clone;\n\ninterface IVariantItem {\n id: string;\n title: string;\n isSystem?: boolean;\n isEditing?: boolean;\n isDeleting?: boolean;\n accounting?: AccountingCode;\n vatStatus?: VatStatusCode;\n}\n\ninterface IVariantRowProps {\n item: IVariantItem;\n t: TFunction;\n activeVariantId: string;\n defaultVariantId: string;\n\n onCheck?: (id: string) => void;\n onEditClick: (id: string) => void;\n onDeleteClick: (id: string) => void;\n onRefreshClick: (id: string) => void;\n onInputChange?: (id: string, val: string) => void;\n onConfirm?: (id: string) => void;\n}\n\nclass EditInput extends React.PureComponent {\n private _refInput = React.createRef();\n\n componentDidMount(): void {\n this._refInput.current.select();\n }\n\n handleInputChange = (e: IInputOnChangeEvent) => {\n this.props.onInputChange(this.props.item.id, e.value as string);\n };\n\n handleConfirm = () => {\n this.props.onConfirm(this.props.item.id);\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter) {\n this.props.onConfirm(this.props.item.id);\n }\n };\n\n render() {\n return (\n \n );\n }\n}\n\nconst VariantRow = (props: IVariantRowProps) => {\n const handleEditClick = () => {\n props.onEditClick(props.item.id);\n };\n\n const handleDeleteClick = () => {\n props.onDeleteClick(props.item.id);\n };\n\n const handleRefreshClick = () => {\n props.onRefreshClick(props.item.id);\n };\n\n const getItemTitle = (isActive: boolean) => {\n return (\n \n {props.item.title}\n {isActive &&\n  ({props.t(\"Components:VariantSelector.Active\")})\n }\n \n );\n };\n\n const isActive = props.item.id === props.activeVariantId;\n return (\n <>\n \n \n {props.item.isEditing &&\n \n }\n {!props.item.isEditing && getItemTitle(isActive)}\n \n {!props.item.isSystem &&\n \n \n \n \n {!props.item.isDeleting &&\n \n \n \n }\n {props.item.isDeleting &&\n \n \n \n }\n \n }\n {props.item.isSystem &&
    }\n \n );\n};\n\nexport interface IVariantSaveArgs {\n items?: IVariantItem[];\n variantName?: string;\n isDefault?: boolean;\n overrideExisting?: boolean;\n}\n\ninterface IProps extends WithTranslation {\n type: VariantDialogType;\n onClose: () => void;\n storage: StorageModel;\n defaultVariants: IDefaultVariantEntity[];\n activeVariantId: string;\n variants: Record;\n}\n\ninterface IState {\n variantName?: string;\n newVariantSetAsDefault?: boolean;\n overrideExisting?: boolean;\n\n items?: IVariantItem[];\n error?: IValidationError;\n\n // variant tabs\n accounting: AccountingCode;\n vatStatus: VatStatusCode;\n // defaults per tab\n defaultVariants: TRecordString;\n}\n\nfunction isVariantEditable(variant: IEntity) {\n return variant && variant?.accessType !== VariantAccessTypeCode.SystemVariant;\n}\n\nconst CONTEXT_SEPARATOR = \"_\";\n\nfunction getTabId(accounting: AccountingCode, vatStatus: VatStatusCode) {\n if (!isDefined(accounting) && !isDefined(vatStatus)) {\n return CompanyLevelFakeTabId;\n }\n return `${accounting}${CONTEXT_SEPARATOR}${vatStatus}`;\n}\n\nfunction getVariantContextFromTabId(tabId: string): { accounting: AccountingCode, vatStatus: VatStatusCode } {\n const [accounting, vatStatus] = tabId.split(CONTEXT_SEPARATOR);\n return { accounting: accounting as AccountingCode, vatStatus: vatStatus as VatStatusCode };\n}\n\nfunction getCombinedContexts(): TRecordType {\n const accountingCodes = [AccountingCode.AccountingForBusiness, AccountingCode.CashBasisAccounting];\n const vatStatusCodes = [VatStatusCode.VATRegistered, VatStatusCode.NotVATRegistered];\n const ids: TRecordType = {};\n accountingCodes.forEach(accounting => {\n vatStatusCodes.forEach(vatStatus => {\n const id = getTabId(accounting, vatStatus);\n ids[id] = { accounting, vatStatus };\n });\n });\n return ids;\n}\n\nconst CompanyLevelFakeTabId = \"\";\n\nclass VariantDialog extends React.Component {\n _defaultName: string;\n\n _origDefaultVariants: TRecordString;\n\n constructor(props: IProps) {\n super(props);\n\n const currentVariant = props.variants[props.activeVariantId];\n const isEditable = isVariantEditable(currentVariant);\n\n const { accounting, vatStatus } = getCompanyVariantContext(props.storage.context);\n\n const allVariants = Object.values(props.variants);\n const items = allVariants.map(item => ({\n id: item.id,\n title: item.name,\n isSystem: item.accessType === VariantAccessTypeCode.SystemVariant,\n accounting: item.accountingCode,\n vatStatus: item.vatStatusCode\n }));\n\n const defaultVariants: TRecordString = {};\n if (!this.isNewVariantDialog) {\n if (accounting && vatStatus) {\n const combinations = getCombinedContexts();\n Object.keys(combinations).forEach(id => {\n defaultVariants[id] = props.defaultVariants.find(variant => {\n return variant.AccountingCode === combinations[id].accounting && variant.VatStatusCode === combinations[id].vatStatus;\n })?.Variant?.Id?.toString();\n if (!defaultVariants[id]) {\n defaultVariants[id] = getDefaultSystemVariant(allVariants)?.id;\n }\n });\n } else {\n // company level, no tabs\n defaultVariants[CompanyLevelFakeTabId] = props.defaultVariants[0]?.Variant?.Id?.toString();\n if (!defaultVariants[CompanyLevelFakeTabId]) {\n defaultVariants[CompanyLevelFakeTabId] = getDefaultSystemVariant(allVariants)?.id;\n }\n }\n\n this._origDefaultVariants = { ...defaultVariants };\n }\n\n this.state = {\n variantName: isEditable ? currentVariant?.name : \"\",\n overrideExisting: isEditable,\n newVariantSetAsDefault: false,\n items,\n accounting, vatStatus,\n defaultVariants\n };\n }\n\n get variantContext(): ICompanyVariantContext {\n const { context } = this.props.storage;\n return getCompanyVariantContext(context);\n }\n\n get isNewVariantDialog(): boolean {\n return this.props.type === VariantDialogState.Clone;\n }\n\n getTabs = memoizeOne<[], ITabData[]>(() => {\n if (isOnOrganizationLevel({ context: this.props.storage.context })) {\n return [];\n }\n const combinations = getCombinedContexts();\n return Object.keys(combinations).map(id => ({\n id,\n title: `${this.props.t(`Components:VariantSelector.${combinations[id].accounting}`)} ${this.props.t(`Components:VariantSelector.${combinations[id].vatStatus}`)}`\n }));\n }, () => [this.props.tReady]);\n\n handleVariantNameChange = (e: IInputOnChangeEvent) => {\n this.setState({\n variantName: e.value as string,\n error: null\n });\n };\n\n handleOverrideExisting = (checked: boolean) => {\n const variant = this.props.variants[this.props.activeVariantId];\n if (checked) {\n this._defaultName = this.state.variantName;\n }\n\n this.setState({\n variantName: checked ? variant?.name : this._defaultName,\n overrideExisting: checked\n });\n };\n\n handleSetAsDefaultChange = (checked: boolean) => {\n this.setState({\n newVariantSetAsDefault: checked\n });\n };\n\n handleDefaultCheck = (id: string) => {\n const { accounting, vatStatus } = this.state;\n const selectedTabId = getTabId(accounting, vatStatus);\n this.setState({\n defaultVariants: {\n ...this.state.defaultVariants,\n [selectedTabId]: id\n }\n });\n };\n\n handleCheckboxGroupChange = (args: ICheckboxGroupChange) => {\n if (args.id === \"overrideExisting\") {\n this.handleOverrideExisting(args.isChecked);\n } else if (args.id === \"newVariantSetAsDefault\") {\n this.handleSetAsDefaultChange(args.isChecked);\n }\n };\n\n handleDialogCloneSave = async (args: IVariantSaveArgs): Promise => {\n let variant: Variant;\n const { storage } = this.props;\n const { additionalFieldData, bindingContext } = this.props.storage.data;\n const context = this.variantContext;\n\n if (args.overrideExisting) {\n variant = this.props.storage.data.variants.currentVariant;\n } else {\n variant = new Variant({\n viewId: storage.id,\n accessType: VariantAccessTypeCode.UserVariant,\n accountingCode: context.accounting,\n vatStatusCode: context.vatStatus,\n name: args.variantName,\n variantType: storage.type === ModelType.Form ? VariantType.Form : VariantType.Table,\n // entity type doesn't exist for local binding context (reports)\n entityType: bindingContext.getRootParent().getEntityType()?.getName() as EntityTypeName\n });\n }\n\n variant.setVariant(storage.getVariant());\n args.isDefault ? await variant.saveAsDefault(this.props.storage.oData, this.variantContext) : await variant.save(this.props.storage.oData);\n\n this.props.storage.clearLocalStorageVariant();\n this.props.storage.store({\n variants: {\n allVariants: {\n ...this.props.storage.data.variants.allVariants,\n [variant.id]: variant\n },\n defaultVariant: args.isDefault ? variant : this.props.storage.data.variants.defaultVariant,\n currentVariant: variant\n }\n });\n\n this.forceUpdate();\n };\n\n getSystemVariant = () => {\n return Object.values(this.props.storage.data.variants.allVariants).find(variant => variant.accessType === VariantAccessTypeCode.SystemVariant);\n };\n\n handleDialogEditSave = async (args: IVariantSaveArgs) => {\n const { storage } = this.props;\n const variantsToUpdate: Variant[] = [];\n const defaultVariants = { ...this.state.defaultVariants };\n\n for (const changedVar of args.items) {\n const variant = this.props.variants[changedVar.id];\n const changedVarTabId = getTabId(changedVar.accounting, changedVar.vatStatus);\n\n if (variant) {\n const isChangedDefault = defaultVariants[changedVarTabId] === changedVar.id;\n if (changedVar.isDeleting) {\n // if we are deleting defaultVariant we need to set default variant any system variant\n const systemVariant = this.getSystemVariant();\n\n if (isChangedDefault) {\n defaultVariants[changedVarTabId] = systemVariant.id;\n }\n\n if (changedVar.id === this.props.activeVariantId) {\n await storage.changeVariant(systemVariant);\n }\n\n await variant.delete(storage.oData);\n delete storage.data.variants.allVariants[changedVar.id];\n continue;\n }\n\n if (variant.name !== changedVar.title) {\n variant.name = changedVar.title;\n variantsToUpdate.push(variant);\n }\n }\n }\n // default variant of current context to be pushed to storage\n let defaultVariant: Variant;\n const companyContext = this.variantContext;\n const currentTabId = getTabId(companyContext.accounting, companyContext.vatStatus);\n\n // process default variants per tab (system variant may be set as default for more tabs, so we need to go per tab)\n const promises = Object.keys(defaultVariants).map(tabId => {\n if (this._origDefaultVariants[tabId] !== defaultVariants[tabId]) {\n const variant = this.props.variants[defaultVariants[tabId]];\n const context = getVariantContextFromTabId(tabId);\n if (currentTabId === tabId) {\n defaultVariant = variant;\n }\n return variant.saveAsDefault(storage.oData, context);\n }\n return null;\n });\n await Promise.all(promises);\n\n // deleted default variant\n storage.store({\n variants: {\n ...storage.data.variants,\n defaultVariant: defaultVariant ?? storage.data.variants.defaultVariant\n }\n });\n\n if (variantsToUpdate.length > 0) {\n await updateNames(storage.oData, variantsToUpdate);\n\n // update also current model data\n variantsToUpdate.forEach(changedVar => {\n // variant could be from different context, so it's not present in allVariants\n const variant = storage.data.variants.allVariants[changedVar.id];\n if (variant) {\n variant.name = changedVar.name;\n }\n });\n }\n };\n\n createNewVariantContent = () => {\n const variant = this.props.variants[this.props.activeVariantId];\n const checkboxGroupValues: string[] = [];\n\n if (this.state.overrideExisting) {\n checkboxGroupValues.push(\"overrideExisting\");\n }\n\n if (this.state.newVariantSetAsDefault) {\n checkboxGroupValues.push(\"newVariantSetAsDefault\");\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n };\n\n handleDialogSave = async () => {\n try {\n const args: IVariantSaveArgs = {\n variantName: this.state.variantName,\n items: this.state.items,\n isDefault: this.state.newVariantSetAsDefault,\n overrideExisting: this.state.overrideExisting\n };\n\n if (this.props.type === VariantDialogState.Clone) {\n await this.handleDialogCloneSave(args);\n }\n\n if (this.props.type === VariantDialogState.Edit) {\n await this.handleDialogEditSave(args);\n }\n this.props.onClose();\n } catch (e) {\n const error = e as ODataError;\n const translKey = `Error:${error?._validationMessages?.[0]?.code}`;\n const message = (error._validationMessages?.[0]?.code && i18next.exists(translKey) ? this.props.storage.t(translKey) : e._message) ?? e.message;\n\n this.setState({ error: { message: message } });\n }\n };\n\n setProperty = (id: string, propName: keyof IVariantItem, shouldClear?: boolean, preserve?: boolean) => {\n this.setState(state => ({\n items: state.items.map(item => ({\n ...item,\n [propName]: !shouldClear && item.id === id ? true : preserve ? item[propName] : false\n }))\n }));\n };\n\n handleEditConfirm = (id: string) => {\n this.setProperty(id, \"isEditing\", true);\n };\n\n handleEditClick = (id: string) => {\n this.setProperty(id, \"isEditing\", false);\n };\n\n handleDeleteClick = (id: string) => {\n this.setProperty(id, \"isDeleting\", false, true);\n };\n\n handleRefreshClick = (id: string) => {\n this.setState(state => ({\n items: state.items.map(item => ({\n ...item,\n isDeleting: item.id === id ? false : item.isDeleting\n }))\n }));\n };\n\n handleInputChange = (id: string, val: string) => {\n this.setState(state => ({\n items: state.items.map(item => ({\n ...item,\n title: item.id === id ? val : item.title\n }))\n }));\n };\n\n handleTabChange = (tabId: string) => {\n const { accounting, vatStatus } = getVariantContextFromTabId(tabId);\n this.setState({ accounting, vatStatus });\n };\n\n createEditVariantContent = () => {\n const { accounting, vatStatus } = this.state;\n const isCompanyContext = isOnOrganizationLevel({ context: this.props.storage.context });\n const selectedTabId = getTabId(accounting, vatStatus);\n const companyContext = this.variantContext;\n const currentCompanyTabId = getTabId(companyContext.accounting, companyContext.vatStatus);\n const isActiveTabOpened = selectedTabId === currentCompanyTabId;\n let renderedItems = this.state.items;\n if (!isCompanyContext) {\n renderedItems = renderedItems\n .filter(item => (item.accounting === accounting && item.vatStatus === vatStatus) || item.isSystem);\n }\n renderedItems = renderedItems\n .sort((a, b) => (a.isSystem ? 0 : 1) - (b.isSystem ? 0 : 1));\n return (\n \n {this.state.error && }\n {!isCompanyContext && (\n \n )}\n \n {this.props.t(\"Components:VariantSelector.Default\")}\n {this.props.t(\"Components:VariantSelector.Name\")}\n
    \n {renderedItems.map(item => {\n return ;\n })}\n \n \n );\n };\n\n render() {\n return (\n \n \n \n \n )}>\n\n {this.isNewVariantDialog ? this.createNewVariantContent() : this.createEditVariantContent()}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\", \"Common\"])(VariantDialog);","import React from \"react\";\nimport { IconSelectStyled, Label, StyledVariantSelector } from \"./VariantSelector.styles\";\nimport { CaretIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport VariantDialog, { VariantDialogType } from \"./VariantDialog\";\nimport { IVariantContext, IVariants, loadVariants, Variant, VariantType } from \"./VariantOdata\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport { ConfirmationDialog } from \"../dialog/ConfirmationDialog\";\nimport TestIds from \"../../testIds\";\nimport { HOTSPOT_ID_ATTR } from \"../hotspots/Hotspots.utils\";\nimport { compareString } from \"@utils/string\";\nimport { VariantAccessTypeCode } from \"@odata/GeneratedEnums\";\nimport { getDrillDownVariant } from \"../drillDown/DrillDown.utils\";\nimport { ModelType } from \"../../model/Model\";\nimport { ISelectionChangeArgs, ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\n\nconst SortedAccessTypes = [\n VariantAccessTypeCode.SystemVariant,\n VariantAccessTypeCode.GlobalVariant,\n VariantAccessTypeCode.UserVariant\n];\n\ninterface IProps {\n className?: string;\n storage: StorageModel;\n isDisabled?: boolean;\n hotspotId?: string;\n}\n\nexport enum VariantDialogState {\n Edit = \"edit\",\n Clone = \"clone\",\n Warning = \"warning\",\n Closed = \"closed\"\n}\n\ninterface IState {\n config?: IVariants;\n variantDialogState: VariantDialogState;\n}\n\nclass VariantSelector extends React.Component {\n _variantToChange: Variant;\n\n state: IState = {\n variantDialogState: VariantDialogState.Closed\n };\n\n createSelectItemsFromStoredVariants = (variants: Record): ISelectItem[] => {\n return Object.values(variants || {})\n .sort((v1, v2) => {\n if (v1.accessType !== v2.accessType) {\n return SortedAccessTypes.indexOf(v1.accessType) - SortedAccessTypes.indexOf(v2.accessType);\n }\n return compareString(v1.name, v2.name);\n }).map(variant => ({\n id: variant.id,\n label: variant.name,\n description: this.props.storage.data.variants?.defaultVariant?.id === variant.id ? `(${this.props.t(\"Components:VariantSelector.Default\").toLowerCase()})` : null\n }));\n };\n\n isVariantDialogState(dialogState: unknown): dialogState is VariantDialogState {\n return [VariantDialogState.Clone, VariantDialogState.Edit].includes(dialogState as VariantDialogState);\n }\n\n handleVariantChange = async (e: ISelectionChangeArgs) => {\n if (this.isVariantDialogState(e.value)) {\n let config: IVariants = null;\n if (e.value === VariantDialogState.Edit) {\n // preload all variants for all combinations (accounting, vat status)\n const { oData, data: { bindingContext }, id, type } = this.props.storage;\n const opts: IVariantContext = {\n viewId: id, variantType: type === ModelType.Form ? VariantType.Form : VariantType.Table\n };\n config = await loadVariants(oData, opts, bindingContext);\n }\n this.setState({\n config,\n variantDialogState: e.value\n });\n } else {\n if (e.triggerAdditionalTasks) {\n const isLocalVariant = this.props.storage.getLocalStorageVariant();\n if (isLocalVariant) {\n // In case the current variant is stored only in localstorage using customization, we ask user\n // if he would like to override it by selecting stored variant in DB\n this._variantToChange = this.props.storage.data.variants.allVariants[e.value as string];\n this.setState({\n variantDialogState: VariantDialogState.Warning\n });\n } else {\n const variant = this.props.storage.data.variants.allVariants[e.value as string];\n await this.props.storage.changeVariant(variant);\n this.forceUpdate();\n }\n }\n }\n };\n\n closeDialog = () => {\n this.setState({\n variantDialogState: VariantDialogState.Closed\n });\n };\n\n handleConfirmationDialogConfirm = async () => {\n await this.props.storage.changeVariant(this._variantToChange);\n this.handleConfirmationDialogClose();\n };\n\n handleConfirmationDialogClose = () => {\n this._variantToChange = null;\n this.setState({\n variantDialogState: VariantDialogState.Closed\n });\n };\n\n render() {\n if (!this.props.storage) {\n return null;\n }\n\n const drilldownVariant = getDrillDownVariant();\n const isCustom = !drilldownVariant && !!this.props.storage?.getLocalStorageVariant();\n const text = isCustom ? `(${this.props.t(\"Components:VariantSelector.Custom\")})` :\n this.props.storage?.data.variants.allVariants[this.props.storage.data.variants.currentVariant?.id]?.name;\n return (\n <>\n {this.state.variantDialogState === VariantDialogState.Warning &&\n \n {this.props.t(\"Components:VariantSelector.ChangedUnsavedVariant\")}\n

    \n {this.props.t(\"Common:General.ContinueAnyway\")}\n
    \n }\n \n \n }\n onChange={this.handleVariantChange}\n isDisabled={this.props.isDisabled}\n useAutoSelection={false}/>\n \n {this.isVariantDialogState(this.state.variantDialogState) &&\n \n }\n \n );\n }\n}\n\nexport default withTranslation([\"Components\", \"Common\"])(VariantSelector);","import styled from \"styled-components/macro\";\nimport { T_TITLE_4_NORMAL } from \"../../global.style\";\n\nexport const WorkDatePickerBody = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const WorkDatePickerDateLabel = styled.span`\n ${T_TITLE_4_NORMAL};\n margin-left: 5px;\n`;","import React from \"react\";\nimport { WorkDateFilledIcon, WorkDateIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { Button, IconButton } from \"../button\";\nimport Dialog from \"../dialog\";\nimport Field from \"../inputs/field\";\nimport { DatePicker } from \"../inputs/date\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport { WorkDatePickerBody, WorkDatePickerDateLabel } from \"./WorkDatePicker.styles\";\nimport { getWorkDateFromLocalStorage, isValidDate } from \"../inputs/date/utils\";\nimport DateType from \"../../types/Date\";\nimport { IInputOnChangeEvent } from \"../inputs/input\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\ninterface IProps extends WithTranslation {\n className?: string;\n hideEmpty?: boolean;\n}\n\ninterface IState {\n isOpened: boolean;\n date: Date;\n errorText: string;\n}\n\nclass WorkDatePicker extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n isOpened: false,\n date: getWorkDateFromLocalStorage(),\n errorText: \"\"\n };\n }\n\n handleDlgClose = () => {\n this.setState({ isOpened: false });\n };\n\n handleDlgConfirm = () => {\n if (this.validateDate()) {\n LocalSettings.set(\"WorkDate\", {\n customData: {\n workDate: this.state.date\n }\n });\n\n this.handleDlgClose();\n }\n };\n\n validateDate = () => {\n if (!this.state.date) {\n this.setState({\n errorText: this.props.t(\"Common:Validation.Required\")\n });\n\n return false;\n }\n\n if (!isValidDate(this.state.date)) {\n this.setState({\n errorText: this.props.t(\"Common:Validation.NotADate\")\n });\n\n return false;\n }\n\n if (this.state.errorText) {\n this.setState({\n errorText: \"\"\n });\n }\n\n return true;\n };\n\n handleDateBlur = () => {\n // in WithFormatter, date is parsed onChange using strictMode: true,\n // that doesn't allow for values like 010122 to be parsed correctly..\n // those values are parsed onBlur using strictMode: false,\n // problem is WorkDatePicker.handleDateChange is called in same tick as handleDateBlur\n // and we use state to store the current date value\n // => use setTimeout, so that the state already contains the correct parsed value\n // TODO maybe this should be already done in WorkDatePicker, so that we don't have to handle it again for each case?\n // probrat na review\n setTimeout(() => {\n this.validateDate();\n });\n };\n\n\n handleDlgOpen = () => {\n this.setState({\n date: getWorkDateFromLocalStorage(),\n errorText: \"\",\n isOpened: true\n });\n };\n\n handleDateChange = (e: IInputOnChangeEvent) => {\n this.setState({\n date: e.value as Date\n });\n };\n\n handleClearDate = () => {\n LocalSettings.remove(\"WorkDate\", \"customData\");\n this.handleDlgClose();\n };\n\n createError = () => {\n return this.state.errorText ? {\n message: this.state.errorText\n } : null;\n };\n\n render() {\n const date = getWorkDateFromLocalStorage();\n if (!date && this.props.hideEmpty) {\n return null;\n }\n\n return (\n \n \n {date ? : }\n \n {date &&\n \n {DateType.format(date)}\n \n }\n\n {this.state.isOpened &&\n \n \n {date &&\n \n }\n \n \n }\n title={this.props.t(\"Document:General.WorkDate\")}>\n \n \n \n \n }\n \n );\n }\n}\n\nexport default (withTranslation([\"Common\", \"Document\"])(WorkDatePicker));","export const INPUT_DEBOUNCE_TIME = 250;\nexport const SAVE_DRAFT_DELAY = 15000;\nexport const AUTOCOMPLETE_SUG_ROWS = 50;\nexport const LOGIN_PAGE_SUBDOMAIN = \"app\";\nexport const EVALA_WEBPAGE = \"https://www.evala.cz\";\nexport const API_URL = \"/api\";\nexport const ODATA_API_URL = `${API_URL}/odata`;\nexport const BATCH_API_URL = `${ODATA_API_URL}/$batch`;\nexport const TRANSLATIONS_API_URL = `${API_URL}/translations`;\nexport const REST_API_URL = `${API_URL}/rest`;\nexport const PUBLIC_API_URL = `${API_URL}/public`;\nexport const ARES_SEARCH_API = `${REST_API_URL}/Ares/search`;\nexport const ARES_GET_API = `${REST_API_URL}/Ares/get`;\nexport const FILES_API_URL = `${REST_API_URL}/Files`;\nexport const GET_FILE_NAME_URL = `${REST_API_URL}/FileName`;\nexport const AUDIT_API_URL = `${REST_API_URL}/Audit`;\nexport const EXPORT_URL = `${REST_API_URL}/Export`;\nexport const EXPORT_ALL_URL = `${EXPORT_URL}/AllCompanies`;\nexport const BANK_STATEMENTS = `${REST_API_URL}/BankStatements`;\nexport const ASSET_API_URL = `${REST_API_URL}/Asset`;\nexport const ACCOUNTING_API_URL = `${REST_API_URL}/Accounting`;\nexport const ACCOUNT_USAGE_ACROSS_CHARTS_API_URL = `${ACCOUNTING_API_URL}/GetAccountUsageAcrossCharts`;\nexport const ACCOUNT_USAGE_API_URL = `${ACCOUNTING_API_URL}/GetAccountUsage`;\nexport const GLOBAL_SEARCH_URL = `${REST_API_URL}/Search`;\nexport const RETRIEVE_ISDOC_URL = `${REST_API_URL}/Isdoc`;\nexport const DATABOX_REST_URL = `${REST_API_URL}/DataBox`;\n// on this endpoint you get finance administration office based on postal code\nexport const FU_BY_POSTAL_CODE_URL = `${DATABOX_REST_URL}/FA/`;\nexport const ASSET_TO_EXPENSE_API_URL = `${REST_API_URL}/AssetToExpense`;\nexport const ATTACH_INBOX_FILE_URL = `${REST_API_URL}/InboxFile/ConvertToDocuments`;\nexport const SYSTEM_CONFIG_URL = `${PUBLIC_API_URL}/SystemConfiguration`;\nexport const VALIDATE_DELETE_URL = `${REST_API_URL}/entityvalidator/validatedelete`;\nexport const VALIDATE_DELETE_DEPENDENT_URL = `${REST_API_URL}/entityvalidator/validatedependententitiesdelete`;\nexport const DASHBOARD_DATA_API = `${REST_API_URL}/DashboardData`;\nexport const AGING_AP_API_PATH = \"AgingAP\";\nexport const AGING_AR_API_PATH = \"AgingAR\";\nexport const AGING_AP_API_URL = `${REST_API_URL}/${AGING_AP_API_PATH}`;\nexport const AGING_AR_API_URL = `${REST_API_URL}/${AGING_AR_API_PATH}`;\nexport const CREATE_CLEARING_SPLIT_ITEMS = `${REST_API_URL}/PaymentDocument/CreateClearingItems`;\nexport const UPDATE_CLEARING_SPLIT_ITEMS = `${REST_API_URL}/PaymentDocument/CreateExchangeRateDifferenceItems`;\nexport const ACCOUNTING_JOURNAL_API_URL = `${REST_API_URL}/AccountingJournal`;\nexport const CBA_INCOME_EXPENSE_OVERVIEW_API_URL = `${REST_API_URL}/CbaIncomeExpenseOverview`;\nexport const VAT_STATEMENT_CALCULATE_API_URL = `${REST_API_URL}/VatStatement/CalculateSettlementCoefficient`;\nexport const FETCH_ABORT_ERROR = \"AbortError\";\nexport const NEW_ITEM_DETAIL = \"new\";\nexport const COLOR_TRANSITION_TIME = 50;\nexport const API_AUTH_URL = `${API_URL}/auth`;\nexport const LOGIN_URL = `${API_AUTH_URL}/login`;\nexport const REGISTER_URL = `${API_AUTH_URL}/registration`;\nexport const REGISTER_RESEND_EMAIL_URL = `${API_AUTH_URL}/registration/resendEmail`;\nexport const SESSION_URL = `${API_AUTH_URL}/session`;\nexport const AUTH_DEVICE_URL = `${API_AUTH_URL}/device`;\nexport const INVITATION_URL = `${API_AUTH_URL}/invitation`;\nexport const SESSION_TENANTS_URL = `${SESSION_URL}/tenants`;\nexport const DEMO_URL = `${REST_API_URL}/demoTenant`;\nexport const SESSION_DEMO_STATUS_URL = `${DEMO_URL}/getDemoTenantStatus`;\nexport const SESSION_DEMO_URL = `${DEMO_URL}/demo`;\nexport const AUTH_DEVICE_URL_ADD_URL = `${AUTH_DEVICE_URL}/add`;\nexport const AUTH_DEVICE_URL_RESEND_URL = `${AUTH_DEVICE_URL}/resendEmail`;\nexport const AUTH_LOGOUT_URL = `${API_AUTH_URL}/logout`;\nexport const AUTH_USER_SETTINGS_URL = `${API_AUTH_URL}/userSettings`;\nexport const AUTH_VERIFICATION_VERIFY_URL = `${API_AUTH_URL}/verification`;\nexport const GET_POST_LOGIN_ACTIONS_URL = `${AUTH_VERIFICATION_VERIFY_URL}/postloginactions`;\nexport const AUTH_VERIFICATION_ACTIVATE_URL = `${API_AUTH_URL}/verification/activate`;\nexport const AUTH_REQUEST_RESET_PASS_URL = `${AUTH_USER_SETTINGS_URL}/requestResetPassword`;\nexport const AUTH_TENANTS = `${API_AUTH_URL}/tenants`;\nexport const COMPANY_REMOVAL_REQUESTED = `${REST_API_URL}/companyremoval/aredeleterequested`;\nexport const COMPANY_REMOVAL_CANCEL = `${REST_API_URL}/companyremoval/cancel`;\nexport const COMPANY_ROLE_ALLOWED_PERMISSION_URL = `${REST_API_URL}/companyrole/allowedpermissions`;\nexport const ENCRYPTION_URL = `${REST_API_URL}/Encryption`;\nexport const CUSTOMER_DASHBOARD_API_URL = `${REST_API_URL}/CustomerDashboard`;\nexport const ASSET_DEPRECIATION_MONTH_API_URL = `${CUSTOMER_DASHBOARD_API_URL}/AssetsDepreciation`;\nexport const UPLOAD_INBOX_FILE_URL = `${FILES_API_URL}/uploadinboxfile`;\n\nexport const DASH_CHARACTER = \"–\";\nexport const ELLIPSIS_CHAR = \"\\u2026\";\nexport const EMAIL_REGEX = /^\\S+@\\S+\\.\\S+$/;\nexport const NON_BREAKING_SPACE = \"\\u00a0\";\nexport const EMPTY_VALUE = DASH_CHARACTER.repeat(3);\nexport const INFINITY = \"∞\";\nexport const ENV_EVALA_PRODUCTION = \"REACT_APP_EVALA_PRODUCTION\";\nexport const ENV_EVALA_VERSION = \"REACT_APP_EVALA_VERSION\";\nexport const ENV_DISABLE_WEBSOCKET = \"REACT_APP_DISABLE_WEBSOCKET\";\nexport const BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX = 221;\nexport const CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX = 211;\n\nexport const WORK_LENGTH = 4.5;\nexport const BREAK_LENGTH = 0.5;\nexport const BANK_ACCOUNT_PROFORMA_RECEIVED = 314;\nexport const BANK_ACCOUNT_PROFORMA_ISSUED = 324;\n\n/**\n * Accounting constants\n */\nexport const VAT_ASSESSMENT_TURNOVER_LIMIT = 2000000;\nexport const MAX_FLAT_TAX_BASIS = 2000000;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { IMenuSelected } from \"@components/navigation\";\nimport { IPopperOptions } from \"@components/popperWrapper\";\nimport { ICompany } from \"@odata/EntityTypes\";\nimport {\n ICashBoxEntity,\n ICompanyBankAccountEntity,\n ICompanyEntity,\n ICurrencyUsedByCompanyEntity,\n IFiscalYearEntity,\n ISubscriptionEntity,\n ITenantEntity,\n IUserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, CurrencyCode, FeatureCode, GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { IModuleInfo } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport { P13n } from \"@utils/p13n\";\nimport Emittery from \"emittery\";\nimport React from \"react\";\nimport { WithTranslation } from \"react-i18next\";\nimport { RouteComponentProps } from \"react-router\";\n\nimport { TRecordAny, ValueOf } from \"../../global.types\";\nimport { TTheme } from \"../../theme\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ExtendedShellContent } from \"../../views/main/Shell.types\";\nimport { WithAuthContext } from \"../authContext/withAuthContext\";\nimport { IPersonalizationSettings, PersonalizationSettings } from \"./AppContext.utils\";\nimport { IAuthContext } from \"../authContext/AuthContext\";\n\nexport const AppContext = React.createContext(undefined);\n\nexport enum AppMode {\n // default mode, default shell bar menu - some company is selected\n Company = \"Company\",\n // shell bard and menu are switched to our agenda settings\n OrganizationSettings = \"OrganizationSettings\"\n}\n\nexport interface IBreadcrumbItem {\n key: string;\n link: string;\n title: string;\n}\n\nexport interface ILockAlert {\n alert: IAlertProps | (() => IAlertProps);\n popperOptions?: IPopperOptions;\n}\n\nexport interface IBreadcrumb {\n items: IBreadcrumbItem[];\n lockable: boolean | (() => boolean);\n isLockDisabled?: boolean | (() => boolean);\n onLockClick?: (event: React.MouseEvent) => void;\n lockAlert?: ILockAlert;\n}\n\nexport interface ICompanyTilesResponseEntity {\n Company: ICompanyEntity;\n CanAccessCustomerPortal: boolean;\n}\n\nexport interface IContextProps extends RouteComponentProps, WithTranslation, WithAuthContext {\n oData: OData;\n companyPermissions: Record>;\n generalPermissions: Set;\n}\n\nexport interface IAuditTrailData {\n isShown?: boolean;\n storage?: FormStorage;\n}\n\nexport enum ContextEvents {\n CompanyChanged = \"companyChanged\",\n // called when company form is saved\n CompanyUpdated = \"companyUpdated\",\n OpenExtendedShell = \"openExtendedShell\",\n ExtendedShellHidden = \"extendedShellHidden\",\n ModalToggled = \"modalToggled\",\n RecalculateDrafts = \"recalculateDrafts\",\n SelectedRowChanged = \"selectedRowChanged\",\n SelectedMenuChanged = \"selectedMenuChanged\",\n ViewBreadcrumbsChanged = \"viewBreadcrumbsChanged\",\n //force recalculate position for every registered popper\n UpdatePoppers = \"updatePoppers\",\n //force refresh tickets unreadCount -> will be moved to socket\n TicketsUnreadCount = \"TicketsUnreadCount\"\n}\n\nexport interface IAppContext {\n error: string;\n getCompany: () => ICompany;\n getCompanyId: () => number;\n getDefaultCurrency: () => CurrencyCode;\n setAppMode: (mode: AppMode) => void;\n getAppMode: () => AppMode;\n setCurrentCompanyId: (companyId: number, isCustomerPortal?: boolean) => Promise;\n updateCompany: (companyId: number, updateValues: TRecordAny) => void;\n updateCompanySpecificData: () => Promise[];\n eventEmitter: Emittery;\n rerenderApp: () => void;\n\n getData: () => IAppContextData;\n setData: (newData: Partial) => void;\n setAppBusy: (isBusy: boolean) => void;\n isAppBusy: boolean;\n // number of opened modals (mostly Dialogs)\n modalOpened: number;\n isModalOpened: () => boolean;\n isFullscreenMode: boolean;\n setFullscreenMode: (isFullscreen: boolean) => void;\n openExtendedShell: (type: ExtendedShellContent) => void;\n updateCompanies: () => Promise;\n getFYPromise: () => Promise;\n getUpdateCompaniesPromise: () => Promise;\n updateTenantAndSubscription: () => Promise[]>;\n updateModulesInfo: () => Promise;\n getCompanyBankAccounts: (activeOnly?: boolean) => ICompanyBankAccountEntity[];\n getCashBoxes: (activeOnly?: boolean) => ICashBoxEntity[];\n getCompanyPermissions: () => Set;\n getGeneralPermissions: () => Set;\n updateFiscalYears: () => void;\n updateCompanyBankAccounts: () => void;\n updateCashBoxes: () => void;\n updateCurrenciesUsedByCompany: () => void;\n // Flag if all data are loaded on init. While loaded is false the context is not ready yet.\n loaded: boolean;\n // set to true on company change while loading company specific data that are needed for the rest of the app to render properly.\n isLoadingCompany: boolean;\n p13n: P13n;\n feP13nSettings: PersonalizationSettings;\n resetError: () => void;\n changeUserSetting: (key: keyof IUserEntity, val: string) => Promise;\n changePersonalizationSetting: (key: keyof IPersonalizationSettings, val: ValueOf) => void;\n getCurrentTheme: () => TTheme;\n getSelectedMenu: () => IMenuSelected;\n setSelectedMenu: (menu: IMenuSelected) => void;\n\n openAuditTrailDialog?: (storage: FormStorage) => void;\n closeAuditTrailDialog?: () => void;\n auditTrailData?: IAuditTrailData;\n\n setViewBreadcrumbs: (breadcrumbs: IBreadcrumb) => void;\n getViewBreadcrumbs: () => IBreadcrumb;\n\n setCustomData: (data: TRecordAny) => void;\n getAddingNewCompany: () => boolean;\n /** User can't access most of the app,\n * either because agenda has been terminated\n * or hasn't been paid for for too long */\n hasLimitedAccess: () => boolean;\n isFeatureSwitchEnabled: (feature: FeatureCode) => boolean;\n refreshAppData: () => Promise;\n getAuthContext: () => IAuthContext;\n}\n\nexport interface IBreadcrumbWithRelatedPathname extends IBreadcrumb {\n relatedPathname?: string;\n}\n\nexport interface IAppContextData {\n tenant?: ITenantEntity;\n subscription?: ISubscriptionEntity;\n modulesInfo?: IModuleInfo[];\n company?: ICompany;\n companies?: ICompany[];\n fiscalYears?: IFiscalYearEntity[];\n companyBankAccounts?: ICompanyBankAccountEntity[];\n cashBoxes?: ICashBoxEntity[];\n // list doesn't include CZK, only other currencies and their exchange rate\n currenciesUsedByCompany?: ICurrencyUsedByCompanyEntity[];\n isFullscreenMode?: boolean;\n viewBreadcrumbs?: IBreadcrumbWithRelatedPathname;\n selectedMenu?: IMenuSelected;\n\n enabledFeatures?: FeatureCode[];\n\n userSettings?: IUserEntity;\n personalizationSettings?: IPersonalizationSettings;\n\n custom?: TRecordAny;\n}","import { isExternalLink } from \"@components/clickable/Clickable.utils\";\nimport { THistoryLocation } from \"@components/drillDown/DrillDown.utils\";\nimport { CustomerPortal } from \"@pages/home/CustomerPortal.utils\";\nimport { CacheCleaner } from \"@utils/CacheCleaner\";\nimport { isDefined } from \"@utils/general\";\n\nimport { CacheStrategy, QueryParam } from \"../../enums\";\nimport customFetch from \"../../utils/customFetch\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport p13n from \"../../utils/p13n\";\nimport { IAppContext } from \"./AppContext.types\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\n\nexport const personalizationKey = \"FePersonalization\";\n// how much time should we wait before polling BE again on screens that waits for some kind of (email) confirmation\nexport const BePollingInterval = 5000;\n\nexport interface IPersonalizationSettings {\n currentCompany: number;\n previousCompany?: number;\n selectedInboxFolders?: string[];\n fileUploaderLayout?: string;\n companyWizardStep?: Record;\n}\n\nexport class PersonalizationSettings {\n update(name: K, data: T[K] = null): Promise {\n if (CustomerPortal.isActive) {\n // do not persist setting when in customer portal\n return Promise.resolve(false);\n }\n return p13n.update(personalizationKey, name, data);\n }\n\n get(name?: string, forceUpdate?: boolean): Promise {\n return p13n.get(personalizationKey, name, forceUpdate);\n }\n}\n\nexport const personalizationSettings = new PersonalizationSettings();\n\nexport async function changeCompany(companyId: number, isCustomerPortal = true): Promise {\n\n customFetch.setCompanyId(companyId);\n CacheCleaner.clear(CacheStrategy.Company);\n LocalSettings.clear();\n\n if (isCustomerPortal) {\n // store only in session for current tab, so user may use the customer portal in a tab,\n // while using Evala in another company\n CustomerPortal.isActive = true;\n }\n}\n\n/** Enhances given link with current CompanyId */\nexport const addCompanyIdToUrl = (link: T, contextOrCompanyId: IAppContext | number, returnAsRelativePath?: boolean): T => {\n const companyId = typeof contextOrCompanyId === \"number\" ? contextOrCompanyId : contextOrCompanyId?.getCompanyId();\n\n if (!link || !isDefined(companyId)) {\n return link;\n }\n\n if (typeof link === \"string\") {\n if (isExternalLink(link, window.location, true)) {\n return link;\n }\n\n const url = new URL(link, window.location.origin);\n\n if (!url.searchParams.get(QueryParam.CompanyId)) {\n url.searchParams.append(QueryParam.CompanyId, companyId.toString());\n }\n\n return `${url.pathname}${url.search}` as T;\n } else {\n const searchParams = new URLSearchParams(link.search);\n\n if (!searchParams.get(QueryParam.CompanyId)) {\n searchParams.append(QueryParam.CompanyId, companyId.toString());\n }\n\n link.search = searchParams.toString();\n\n return link;\n }\n};\n\nexport function getUrlCompanyId(): number {\n const params = getQueryParameters();\n return params[QueryParam.CompanyId] ? parseInt(params[QueryParam.CompanyId]) : null;\n}","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { CustomerPortal } from \"@pages/home/CustomerPortal.utils\";\nimport { LocalSettingsManager } from \"@utils/LocalSettings\";\nimport { logger } from \"@utils/log\";\nimport { clearAllMemoizedData } from \"@utils/memoize\";\nimport i18next from \"i18next\";\nimport Cookies from \"js-cookie\";\n\nimport { API_AUTH_URL, AUTH_DEVICE_URL, AUTH_LOGOUT_URL, LOGIN_PAGE_SUBDOMAIN } from \"../../constants\";\nimport { getSystemConfig } from \"../../global.utils\";\nimport { clearSessionData, ISessionData } from \"../../login/state/sessionSlice\";\nimport store from \"../../login/state/store\";\nimport { ROUTE_HOME, ROUTE_LOGIN } from \"../../routes\";\nimport { getRedirectUriQueryParam } from \"../../routes/Routes.utils\";\nimport { addCompanyIdToUrl } from \"../appContext/AppContext.utils\";\n\nexport const CHANGE_PASSWORD_URL = `${API_AUTH_URL}/userSettings/changePassword`;\nexport const GOOGLE_IS_CONNECTED_URL = `${API_AUTH_URL}/google/isconnected`;\nexport const DISCONNECT_GOOGLE_ID_URL = `${API_AUTH_URL}/google/disconnect`;\nexport const FACEBOOK_IS_CONNECTED_URL = `${API_AUTH_URL}/facebook/isconnected`;\nexport const DISCONNECT_FACEBOOK_ID_URL = `${API_AUTH_URL}/facebook/disconnect`;\n\nexport const EVALA_AUTHORIZED_HEADER = \"evala-unauthorized\";\nexport const EVALA_FORBIDDEN_HEADER = \"evala-forbidden\";\nexport const EVALA_VERSION_HEADER = \"evala-version\";\nexport const CENTRAL_SESSION_COOKIE = \"CentralSessionId\";\nexport const TENANT_SESSION_COOKIE = \"TenantSessionId\";\nexport const EVALA_VERSION_WRONG = \"wrong version\";\n\nexport enum EvalaAuthorized {\n NoSession = \"NoSession\",\n SessionHasLimitedAccess = \"SessionHasLimitedAccess\"\n}\n\nexport enum SessionType {\n // returned by BE when user is completely logged in\n Application = \"Application\",\n // returned by BE when user is logged in, but tenant hasn't been selected yet\n // after /api/auth/login call, but before /api/auth/session/tenants call\n Login = \"Login\",\n Customer = \"Customer\"\n}\n\nexport const ApplicationSessionTypes: SessionType[] = [\n SessionType.Customer,\n SessionType.Application\n];\n\nexport enum DeviceType {\n PC,\n Tablet,\n Mobile\n}\n\nexport interface IAuthDevice {\n Id: string;\n Name: string;\n Type: DeviceType;\n OneTime: boolean;\n IsVerified: boolean;\n DeviceDescription?: IAuthDeviceDescription;\n}\n\nexport interface IAuthDeviceDescription {\n IPAddress: string;\n OpSystem: string;\n Viewer: string;\n}\n\nexport interface IPasswordValidation {\n id: string;\n isValid: boolean;\n errMsg: string;\n}\n\nexport enum PasswordValidation {\n Minimum = \"Minimum\",\n Maximum = \"Maximum\"\n}\n\nexport const MIN_PASSWORD_LENGTH = 12;\n// DON'T FORGET ADD \"COMMON\" TRANSLATION FILE FROM CALLER COMPONENT !!!!!!\nexport const validatePassword = (password: string): Record => {\n return {\n [PasswordValidation.Minimum]: {\n id: PasswordValidation.Minimum,\n isValid: password?.length >= MIN_PASSWORD_LENGTH,\n errMsg: i18next.t(\"Common:Errors.ShortPass\")\n },\n [PasswordValidation.Maximum]: {\n id: PasswordValidation.Minimum,\n isValid: password?.length < 128,\n errMsg: i18next.t(\"Common:Errors.LongPass\")\n }\n };\n};\n\nexport const doesSessionCookiesExist = (): boolean => {\n return !!Cookies.get(CENTRAL_SESSION_COOKIE) && !!Cookies.get(TENANT_SESSION_COOKIE);\n};\n\nexport const clearSessionCookies = (): void => {\n Cookies.remove(CENTRAL_SESSION_COOKIE);\n Cookies.remove(TENANT_SESSION_COOKIE);\n};\n\nexport const logout = async (fetchFn?: (input: RequestInfo | URL, init?: RequestInit) => Promise): Promise => {\n try {\n await (fetchFn ?? fetch)(AUTH_LOGOUT_URL);\n\n clearSessionCookies();\n } finally {\n await clearDataOnLogout();\n }\n};\n\nexport async function clearDataOnLogout(): Promise {\n // todo - verify this make sense.\n // user can be logged out in multiple tabs to multiple tenants.\n // maybe the whole local storage (local_settings) concept has to be upgraded to be per tenant?\n // otherwise, variants will fail maybe?\n LocalSettingsManager.clear();\n CustomerPortal.isActive = false;\n clearAllMemoizedData();\n await store.dispatch(clearSessionData());\n}\n\nexport const fetchAuthDevices = async (): Promise => {\n const res = await fetch(AUTH_DEVICE_URL);\n const devices = await res.json();\n\n return devices;\n};\n\n// returns id for paired google account, if connected\nexport const fetchGoogleIsConnected = async (): Promise => {\n const res = await fetch(GOOGLE_IS_CONNECTED_URL);\n\n return (await res.json());\n};\n\n// unpair the google account\nexport const disconnectGoogleLogin = async (): Promise => {\n await fetch(DISCONNECT_GOOGLE_ID_URL);\n};\n\n// returns id for paired facebook account, if connected\nexport const fetchFacebookIsConnected = async (): Promise => {\n const res = await fetch(FACEBOOK_IS_CONNECTED_URL);\n\n return (await res.json());\n};\n\n// unpair the facebook account\nexport const disconnectFacebookLogin = async (): Promise => {\n await fetch(DISCONNECT_FACEBOOK_ID_URL);\n};\n\nexport const getLoginUrlWithRedirect = (): string => {\n return `${ROUTE_LOGIN}?${getRedirectUriQueryParam()}`;\n};\n\n/**\n * Returns full login url with also correct domain according to configuration\n */\nexport async function getLoginUrl(loginUrl = ROUTE_LOGIN): Promise<{ url: string; isDomainRedirect: boolean }> {\n let url = loginUrl;\n let isDomainRedirect = false;\n try {\n const config = await getSystemConfig();\n if (config?.DisableSubdomains === false) {\n const { protocol } = window.location;\n url = `${protocol}//${LOGIN_PAGE_SUBDOMAIN}.${config.Domain}${loginUrl}`;\n isDomainRedirect = true;\n }\n } catch (e) {\n logger.error(\"Cannot fetch system config\", e);\n }\n return { url, isDomainRedirect };\n}\n\nexport function getInitialAppRedirectUrl(session: ISessionData, nextUrl: string): string {\n let link = nextUrl ?? ROUTE_HOME;\n\n // todo:\n // check if nextUrl is available for session type (e.g. customer session vs. org settings URL)\n // otherwise, redirect to home page\n\n if (session.CompanyId) {\n link = addCompanyIdToUrl(link, session.CompanyId);\n }\n\n return link;\n}\n","import { BusyIndicatorSize } from \"@components/busyIndicator/BusyIndicator.utils\";\nimport { WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport { CustomerPortal } from \"@pages/home/CustomerPortal.utils\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport fetchWithMiddleware, {\n IFetchMiddleWareAfterArgs,\n IFetchMiddleWareBeforeArgs,\n TFetchMiddlewareAfter,\n TFetchMiddlewareBefore\n} from \"@utils/fetchWithMiddleware/FetchWithMiddleware\";\nimport { checkResponseHeader, checkResponseStatus } from \"@utils/fetchWithMiddleware/FetchWithMiddleware.utils\";\nimport { LocalSettingsManager } from \"@utils/LocalSettings\";\nimport { logger } from \"@utils/log\";\nimport { handleRedirectResponse } from \"@utils/RedirectUtils\";\nimport React from \"react\";\nimport { Redirect, RouteComponentProps, withRouter } from \"react-router-dom\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { API_URL, LOGIN_URL, SESSION_URL } from \"../../constants\";\nimport { HTTPStatusCode } from \"../../enums\";\nimport { EvalaDevelVersion, getEvalaVersion } from \"../../global.utils\";\nimport { ROUTE_LOGIN_TENANT } from \"../../routes\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport WebsocketManager from \"../../utils/websocketManager/WebsocketManager\";\nimport {\n ApplicationSessionTypes,\n CHANGE_PASSWORD_URL,\n clearDataOnLogout,\n clearSessionCookies,\n EVALA_AUTHORIZED_HEADER,\n EVALA_VERSION_HEADER,\n EVALA_VERSION_WRONG,\n EvalaAuthorized,\n getLoginUrl,\n getLoginUrlWithRedirect,\n logout,\n SessionType\n} from \"./Auth.utils\";\n\nexport const AuthContext = React.createContext(undefined);\n\nexport interface IAuthContext {\n isAuthenticated: boolean;\n sessionType: string;\n loginEmail: string;\n userId: number;\n userGuid: string;\n tenantId: number;\n logout: () => Promise;\n changePassword: (oldPassword: string, newPassword: string) => Promise;\n isSessionLost: boolean;\n // set to true if BE serves new version and FE files are not up to date\n isWrongEvalaVersion: boolean;\n error: string;\n}\n\ninterface IState extends Pick {\n isLoaded: boolean;\n redirect: string;\n}\n\n// TODO move login/logout functionality here from login pages\n\nconst initialState: IState = {\n isAuthenticated: false,\n sessionType: null,\n loginEmail: null,\n userId: null,\n userGuid: null,\n tenantId: null,\n isLoaded: false,\n redirect: null,\n isSessionLost: false,\n isWrongEvalaVersion: false,\n error: null\n};\n\nclass AuthContextProvider extends React.PureComponent {\n state: IState = initialState;\n _unsubscribeWebsocket: () => void;\n\n componentDidMount() {\n fetchWithMiddleware.useBefore(this.beforeFetchMiddleware);\n fetchWithMiddleware.useAfter(this.afterFetchMiddleware);\n\n window.addEventListener(\"focus\", this.handleWindowFocus);\n\n this.fetchCurrentSession();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.state.isLoaded && !prevState.isLoaded) {\n // subscribe to websocket events only after session is loaded\n this._unsubscribeWebsocket = WebsocketManager.subscribe({\n callback: this.handleSessionTerminated,\n types: [WebSocketMessageTypeCode.SessionTerminated]\n });\n }\n }\n\n componentWillUnmount() {\n fetchWithMiddleware.removeBefore(this.beforeFetchMiddleware);\n fetchWithMiddleware.removeAfter(this.afterFetchMiddleware);\n\n this._unsubscribeWebsocket?.();\n window.removeEventListener(\"focus\", this.handleWindowFocus);\n }\n\n handleWindowFocus = (event: FocusEvent): void => {\n // the session lost dialog is now shown on SessionTerminated websocket event\n // potential improvement -\n // we could try to fetch new session here in handleWindowFocus,\n // to try if the user has logged in to the same session\n // and remove the dialog if he did\n };\n\n handleSessionTerminated = (): void => {\n clearSessionCookies();\n clearDataOnLogout();\n this.setState({\n isSessionLost: true\n });\n };\n\n beforeFetchMiddleware: TFetchMiddlewareBefore = async ({ request }: IFetchMiddleWareBeforeArgs): Promise => {\n const url = new URL(request.url);\n\n const evalaVersion = getEvalaVersion();\n const link = url.pathname;\n\n // Inject Evala-Version header into every request\n // so that the server can check if the client is up to date.\n // If not, reload page.\n // only check Evala version for api calls,\n // caching for static files should be handled by webpack at build time (hash in file names)\n if (evalaVersion && evalaVersion !== EvalaDevelVersion && link.startsWith(API_URL)) {\n const headers = new Headers(request.headers);\n\n headers.set(EVALA_VERSION_HEADER, evalaVersion);\n request = new Request(request, {\n headers\n });\n }\n\n return request;\n };\n\n afterFetchMiddleware: TFetchMiddlewareAfter = async ({ response }: IFetchMiddleWareAfterArgs): Promise => {\n const foundStatusGone = await checkResponseStatus(response, (status) => {\n return status === HTTPStatusCode.Gone;\n });\n\n if (foundStatusGone) {\n const body = await response.text();\n\n if (body === EVALA_VERSION_WRONG) {\n this.setState({\n isWrongEvalaVersion: true\n });\n }\n }\n\n const foundNoSessions = await checkResponseHeader(response, (headers: Headers) => {\n return headers?.get(EVALA_AUTHORIZED_HEADER) === EvalaAuthorized.NoSession;\n });\n\n if (foundNoSessions) {\n clearDataOnLogout();\n this.handleRedirectToLogin();\n }\n };\n\n handleRedirectToLogin = async (): Promise => {\n const info = await getLoginUrl(getLoginUrlWithRedirect());\n if (info.isDomainRedirect) {\n window.location.href = info.url;\n } else {\n this.setState({\n redirect: info.url\n });\n }\n };\n\n fetchCurrentSession = async () => {\n let response = await fetchWithMiddleware.originalFetch(SESSION_URL);\n\n if (process.env.NODE_ENV !== \"production\" && !response.ok && response.status !== HTTPStatusCode.Forbidden) {\n // Try to log in first\n const loginResponse = await fetchWithMiddleware.originalFetch(`${LOGIN_URL}?noRedirect=true`);\n\n if (!loginResponse.ok) {\n //We cannot fast login. We are on production. // TODO This should be replaced by compilation option.\n this.setState({\n isLoaded: true\n });\n\n // or backend just failed\n if (loginResponse.status >= 500) {\n this.setState({\n error: `${loginResponse.status},${loginResponse.statusText}`\n });\n }\n\n return;\n } else {\n LocalSettingsManager.clear();\n CustomerPortal.isActive = false;\n }\n\n response = await fetchWithMiddleware.originalFetch(SESSION_URL);\n if (!response.ok) {\n logger.error(\"`Session doesn't exist, auto login failed with error code: ${response.status}`\");\n // this.setErrorState(this.props.t(\"Common:Errors.CommunicationWithServerFailed\"), `Session doesn't exist, auto login failed with error code: ${response.status}`);\n return;\n }\n }\n\n if (response.ok) {\n const responseJson = await response.json();\n\n if (responseJson.Type === SessionType.Customer) {\n CustomerPortal.isActive = true;\n }\n\n if (ApplicationSessionTypes.includes(responseJson.Type)) {\n this.setState({\n isLoaded: true,\n isAuthenticated: true,\n sessionType: responseJson.Type,\n loginEmail: responseJson.LoginEmail,\n userId: responseJson.UserId,\n userGuid: responseJson.UserGuid,\n tenantId: responseJson.TenantId\n });\n } else {\n this.setState({\n redirect: ROUTE_LOGIN_TENANT\n });\n }\n } else if (response.status === HTTPStatusCode.Forbidden) {\n //Redirect response\n await handleRedirectResponse(response);\n } else if (response.status >= 500) {\n this.setState({\n error: `${response.status},${response.statusText}`\n });\n } else {\n this.handleRedirectToLogin();\n }\n };\n\n logout = async (): Promise => {\n // because we are awaiting the logout method, it takes time\n // => SessionTerminated event can be received via WebSocket before redirecting to login page causing SessionInvalidatedDialog to render briefly\n // ==> terminate websocket first\n WebsocketManager.close();\n\n await logout(fetchWithMiddleware.originalFetch);\n\n const info = await getLoginUrl();\n if (info.isDomainRedirect) {\n window.location.href = info.url;\n } else {\n this.props.history.push(info.url);\n }\n };\n\n changePassword = async (oldPassword: string, newPassword: string): Promise => {\n const res = await fetch(CHANGE_PASSWORD_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n CurrentPassword: oldPassword,\n NewPassword: newPassword\n })\n });\n\n return res;\n };\n\n getContext = memoizeOne((): IAuthContext => {\n return {\n isAuthenticated: this.state.isAuthenticated,\n sessionType: this.state.sessionType,\n loginEmail: this.state.loginEmail,\n userId: this.state.userId,\n userGuid: this.state.userGuid,\n tenantId: this.state.tenantId,\n logout: this.logout,\n changePassword: this.changePassword,\n isSessionLost: this.state.isSessionLost,\n isWrongEvalaVersion: this.state.isWrongEvalaVersion,\n error: this.state.error\n };\n }, () => [this.state]);\n\n render() {\n if (this.state.redirect) {\n return ;\n }\n\n if (!this.state.isLoaded) {\n return ;\n }\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default withRouter(AuthContextProvider);","import { withContextFactory } from \"../contexts.utils\";\nimport { AuthContext, IAuthContext } from \"./AuthContext\";\n\nexport interface WithAuthContext {\n authContext: IAuthContext\n}\n\nexport const withAuthContext = withContextFactory(AuthContext, \"authContext\");","import { EntitySetName, IBackgroundJobEntity, ICompanyEntity, OdataActionName } from \"@odata/GeneratedEntityTypes\";\nimport { BackgroundJobStatusCode, BackgroundJobTypeCode } from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { IBackgroundJobWebsocketMessage } from \"@utils/websocketManager/Websocket.types\";\n\nimport { IAppContext } from \"../appContext/AppContext.types\";\n\nexport interface IBackgroundJobsContext {\n backgroundJobs: IBackgroundJobEntity[];\n}\n\nexport enum BackgroundJobActionType {\n ConfirmDuplicates = \"ConfirmDuplicates\"\n}\n\nexport const IgnoredBackgroundJobStatuses = [BackgroundJobStatusCode.Cancelling, BackgroundJobStatusCode.Canceled];\nexport const CancelableBackgroundJobStatuses = [BackgroundJobStatusCode.Running, BackgroundJobStatusCode.NotStarted];\n\nexport const getBackgroundJobFromWebsocketMessage = (message: IBackgroundJobWebsocketMessage, companies?: ICompanyEntity[]): IBackgroundJobEntity => {\n const backgroundJob = { ...message.Parameters } as IBackgroundJobEntity;\n\n // BE returns strings instead of numbers for ids => convert them\n if (backgroundJob.Id) {\n backgroundJob.Id = Number(backgroundJob.Id);\n }\n const companyId = Number(message.Parameters.CompanyId) ?? null;\n\n if (companies) {\n // BE sends CompanyId not whole Company object\n // => pair it\n backgroundJob.Company = companies.find(company => company.Id === companyId);\n }\n\n if (message.Parameters.IsSystemJob) {\n backgroundJob.Type = {\n IsSystemJob: message.Parameters.IsSystemJob.toLowerCase() === \"true\",\n Code: message.Parameters.TypeCode\n };\n }\n\n return backgroundJob;\n};\n\ninterface IIsRelevantBackgroundJobArgs {\n backgroundJob: IBackgroundJobEntity;\n context: IAppContext;\n relevantJobTypes: BackgroundJobTypeCode[];\n relevantJobStatuses?: BackgroundJobStatusCode[];\n}\n\nexport const isRelevantBackgroundJob = (args: IIsRelevantBackgroundJobArgs): boolean => {\n const relevantJobStatuses = args.relevantJobStatuses ?? [BackgroundJobStatusCode.Finished, BackgroundJobStatusCode.FinishedWithWarning];\n\n return args.backgroundJob.Company.Id === args.context.getCompanyId()\n && relevantJobStatuses.includes(args.backgroundJob.StatusCode as BackgroundJobStatusCode)\n && args.relevantJobTypes.includes(args.backgroundJob.TypeCode as BackgroundJobTypeCode);\n};\n\nexport const cancelBackgroundJob = async (oData: OData, jobId: number): Promise => {\n // todo get info from BE whether the cancel went through, or the job was already fulfilled\n await oData.getEntitySetWrapper(EntitySetName.BackgroundJobs)\n .action(OdataActionName.BackgroundJobCancel, jobId);\n\n return true;\n};\n\nexport const rollbackBackgroundJob = async (oData: OData, jobId: number): Promise => {\n await oData.getEntitySetWrapper(EntitySetName.BackgroundJobs)\n .action(OdataActionName.BackgroundJobRollback, jobId);\n\n return true;\n};\n\nexport const markSeenBackgroundJobs = async (oData: OData, jobIds: number[]): Promise => {\n if (jobIds.length === 0) {\n return true;\n }\n\n if (jobIds.length === 1) {\n await oData.getEntitySetWrapper(EntitySetName.BackgroundJobs)\n .action(OdataActionName.BackgroundJobMarkSeen, jobIds[0]);\n } else {\n const batch = oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n for (const jobId of jobIds) {\n batch.getEntitySetWrapper(EntitySetName.BackgroundJobs)\n .action(OdataActionName.BackgroundJobMarkSeen, jobId);\n }\n\n await batch.execute();\n }\n\n return true;\n};","import React, { useContext } from \"react\";\n\n/** Use to easily create HOC wrapper injecting context provider */\nexport function withContextFactory(contextObj: React.Context, injectPropName: string) {\n return

    (Component: React.ComponentType

    ): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => {\n const context = useContext(contextObj);\n\n return (\n \n );\n }) as unknown as React.ComponentType>;\n };\n}","import React from \"react\";\n\ninterface ICallbacks {\n read: () => any;\n update: (data: any) => void;\n data?: any;\n // read/update callbacks are called asynchronously and the component lifecycle can change, before their execution\n // => only call them if the references used in the callbacks actually exists, to prevent null errors\n dependentRefs: React.RefObject[];\n}\n\nexport class DomManipulatorScope {\n _orchestrator: DomManipulatorOrchestrator;\n _parentScope?: DomManipulatorScope;\n _callbacks: ICallbacks[];\n _isDisposed: boolean;\n _isExecuting: boolean;\n\n constructor(orchestrator: DomManipulatorOrchestrator, parentScope?: DomManipulatorScope) {\n this._orchestrator = orchestrator;\n this._parentScope = parentScope;\n this._isDisposed = false;\n this._isExecuting = false;\n this._callbacks = [];\n }\n\n public registerCallback(domRead: () => any, domUpdate: (data: any) => void, dependentRefs: React.RefObject[]): (() => void) {\n if (this._isExecuting) {\n // ignore wrong calls that are done during executeAndDispose\n // TODO should we try again for calls that ends here?\n // something like:\n // setTimeout(() => {\n // this._orchestrator.registerCallback(domRead, domUpdate, dependentRefs);\n // })\n return null;\n }\n\n if (this.isDisposed()) {\n throw new Error(\"Disposed scopes cannot accept new callbackes.\");\n }\n const parent = this.getUndisposedParent();\n\n if (parent) {\n return parent.registerCallback(domRead, domUpdate, dependentRefs);\n } else {\n const callbacks = {\n read: domRead,\n update: domUpdate,\n dependentRefs\n };\n\n this._callbacks.push(callbacks);\n\n // return unregister function to be used in componentWillUnmount\n return () => {\n const index = this._callbacks.findIndex(c => c === callbacks);\n\n if (index >= 0) {\n this._callbacks.splice(index, 1);\n }\n };\n }\n }\n\n public executeAndDispose(): void {\n if (this.isDisposed()) {\n throw new Error(\"Disposed scopes cannot be re-executed.\");\n }\n // prevent read/update functions from registering another callbacks during executeAndDispose\n this._isExecuting = true;\n\n // only use callbacks that have their dependent references rendered\n const callbacks = this._callbacks.filter(callback => callback.dependentRefs.every(ref => ref.current));\n\n for (let callback of callbacks) {\n callback.data = callback.read();\n }\n for (let callback of callbacks) {\n callback.update(callback.data);\n }\n this._isDisposed = true;\n if (this._orchestrator._currentScope === this) {\n this._orchestrator._currentScope = this.getUndisposedParent();\n }\n\n this._isExecuting = false;\n }\n\n private isDisposed() {\n return this._isDisposed;\n }\n\n private getUndisposedParent(): DomManipulatorScope {\n if (!this._parentScope) {\n return null;\n }\n if (this._parentScope.isDisposed()) {\n return this._parentScope.getUndisposedParent();\n } else {\n return this._parentScope;\n }\n }\n}\n\n/**\n * An orchestrator used for DOM manipulations.\n * All code which uses things from the list below should use this API.\n * https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n */\nexport class DomManipulatorOrchestrator {\n _currentScope: DomManipulatorScope;\n\n constructor() {\n this._currentScope = null;\n }\n\n /**\n * Registers callbacks used for DOM manipulations.\n *\n * @param domRead This callback is called in the first phase. It should get all properties from\n * DOM it needs for the update phase. This callback should not update DOM!\n *\n * @param domUpdate This callback should do the update. Either update the DOM or setState.\n * @param dependentRefs Array of references that used in the domRead/domUpdate callbacks.\n * The callbacks are called asynchronously and the component lifecycle can change, before their execution\n * => only call them if the references used in the callbacks actually exists, to prevent null errors.\n */\n public registerCallback(domRead: () => TData, domUpdate: (data: TData) => void, dependentRefs: React.RefObject[]): (() => void) {\n return this.getScope().registerCallback(domRead, domUpdate, dependentRefs);\n }\n\n /**\n * Creates a new scope for managed execution.\n */\n public createScope(): DomManipulatorScope {\n this._currentScope = new DomManipulatorScope(this, this._currentScope);\n return this._currentScope;\n }\n\n private getScope(): DomManipulatorScope {\n if (!this._currentScope) {\n const newScope = new DomManipulatorScope(this);\n this._currentScope = newScope;\n setTimeout(() => {\n newScope.executeAndDispose();\n }, 0);\n }\n return this._currentScope;\n }\n}","import React, { Component } from \"react\";\nimport { DomManipulatorOrchestrator } from \"./DomManipulatorOrchestrator\";\nimport memoizeOne from \"../../utils/memoizeOne\";\n\nconst DomManipulatorContext = React.createContext(undefined);\n\nclass DomManipulatorProvider extends Component {\n\n getContext = memoizeOne((): DomManipulatorOrchestrator => {\n return new DomManipulatorOrchestrator();\n });\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport { DomManipulatorContext, DomManipulatorProvider };","import React, { useEffect } from \"react\";\n\nimport { DomManipulatorOrchestrator, DomManipulatorScope } from \"./DomManipulatorOrchestrator\";\nimport { DomManipulatorContext } from \"./DomManipulatorProvider\";\n\n/** We want to unregister DomManipulator callbacks automatically before the wrapped component is unmounted\n * to prevent domUpdate calls on no longer existing DOM. By creating custom object that has the same API\n * as DomManipulator, we can call the unregister callback here, instead of having each component handle it by itself.*/\nexport interface IDomManipulatorLikeObject {\n createScope: () => DomManipulatorScope;\n registerCallback: (\n domRead: () => TData,\n domUpdate: (data: TData) => void,\n dependentRefs: React.RefObject[]\n ) => () => void;\n}\n\nexport interface WithDomManipulator {\n domManipulatorOrchestrator?: IDomManipulatorLikeObject;\n}\n\nexport const withDomManipulator =

    (\n Component: React.ComponentType

    \n): React.ComponentType> => {\n const HOC = React.forwardRef>((props, ref) => {\n let domManipulatorLikeObject: IDomManipulatorLikeObject | undefined;\n // keep multiple callbacks if needed, but just the last one could be enough\n let unregisterCallback: () => void;\n\n useEffect(() => {\n // Anything in here is fired on component mount.\n return () => {\n // Anything in here is fired on component unmount.\n unregisterCallback?.();\n };\n }, []);\n\n return (\n \n {(orchestrator: DomManipulatorOrchestrator) => {\n if (!domManipulatorLikeObject) {\n domManipulatorLikeObject = {\n createScope: orchestrator.createScope,\n registerCallback: (...args) => {\n unregisterCallback = orchestrator.registerCallback(...args);\n return unregisterCallback;\n }\n };\n }\n\n return (\n \n );\n }}\n \n );\n });\n\n // Assign a display name for better debugging\n HOC.displayName = `withDomManipulator(${Component.displayName || Component.name || \"Component\"})`;\n\n return HOC as unknown as React.ComponentType>;\n};\n","import React from \"react\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { WithAuthContext, withAuthContext } from \"../authContext/withAuthContext\";\nimport { AppContext, ContextEvents, IAppContext } from \"../appContext/AppContext.types\";\nimport {\n CompanyRoleEntity,\n EntitySetName,\n GeneralRoleEntity,\n IUserEntity,\n UserCompanyRoleEntity,\n UserEntity,\n UserGeneralRoleEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { CompanyPermissionCode, GeneralPermissionCode, WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport WebsocketManager from \"../../utils/websocketManager/WebsocketManager\";\nimport { BusyIndicatorSize } from \"@components/busyIndicator/BusyIndicator.utils\";\nimport { logger } from \"@utils/log\";\n\nexport const PermissionContext = React.createContext(undefined);\n\nexport type TCompanyPermissions = Set;\nexport type TGeneralPermissions = Set;\n\nexport interface IPermissionContext {\n companyPermissions: TCompanyPermissions;\n ownOnlyPermissions: TCompanyPermissions;\n generalPermissions: TGeneralPermissions;\n refreshUserPermissions: () => Promise;\n}\n\ntype TCompaniesPermissions = Record;\ntype TOwnOnlyPermissions = Record;\n\ninterface IState extends Pick {\n companiesPermissions: TCompaniesPermissions;\n ownOnlyPermissions: TOwnOnlyPermissions;\n isLoaded: boolean;\n}\n\ninterface IProps extends WithOData, WithAuthContext {\n onPermissionsLoaded: (companyPermissions: Record>, generalPermissions: Set) => void;\n}\n\nclass PermissionContextProvider extends React.PureComponent {\n static contextType = AppContext;\n\n state: IState = {\n companiesPermissions: {},\n ownOnlyPermissions: {},\n generalPermissions: new Set(),\n isLoaded: false\n };\n\n _unsubscribeWebsocket: () => void;\n getCurrentCompanyPermissions = memoizeOne((): Set => {\n return this.state.companiesPermissions[this.context.getCompanyId()] ?? new Set();\n }, () => [this.context.getCompanyId(), this.state.companiesPermissions]);\n\n getCurrentOwnOnlyPermissions = memoizeOne((): Set => {\n return this.state.ownOnlyPermissions[this.context.getCompanyId()] ?? new Set();\n }, () => [this.context.getCompanyId(), this.state.ownOnlyPermissions]);\n\n constructor(props: IProps, context: IAppContext) {\n super(props, context);\n context.eventEmitter.on(ContextEvents.CompanyChanged, this.companyChange);\n\n this.refreshUserPermissions = this.refreshUserPermissions.bind(this);\n }\n\n componentDidMount() {\n if (this.props.authContext && this.props.oData) {\n this.refreshUserPermissions();\n }\n\n this._unsubscribeWebsocket = WebsocketManager.subscribe({\n callback: this.handleSessionInvalidated,\n types: [WebSocketMessageTypeCode.SessionInvalidated]\n });\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n if ((this.props.authContext && this.props.oData) && (!prevProps.oData || !prevProps.authContext)) {\n this.refreshUserPermissions();\n }\n }\n\n componentWillUnmount(): void {\n this.context.eventEmitter.off(ContextEvents.CompanyChanged, this.companyChange);\n this._unsubscribeWebsocket?.();\n }\n\n companyChange = (id: number) => {\n this.refreshUserPermissions(true);\n };\n\n /** Retrieves and stores all General and Company permissions for current user */\n refreshUserPermissions = async (withoutFetch?: boolean) => {\n if (withoutFetch && this.state.isLoaded) {\n // we don't always need to fetch data again,\n // e.g. when changing company, it unnecessarily delays menu items re-render\n this.props.onPermissionsLoaded(this.state.companiesPermissions, this.state.generalPermissions);\n\n return;\n }\n\n const companiesPermissions: TCompaniesPermissions = {};\n const ownOnlyPermissions: TOwnOnlyPermissions = {};\n const generalPermissions: Set = new Set();\n const query = this.props.oData.getEntitySetWrapper(EntitySetName.Users)\n .query(this.props.authContext.userId)\n .expand(UserEntity.GeneralRoles,\n q => q.expand(UserGeneralRoleEntity.GeneralRole,\n q => q.expand(GeneralRoleEntity.GeneralRolePermissions)))\n .expand(UserEntity.CompanyRoles,\n q => q.expand(UserCompanyRoleEntity.CompanyRole,\n q => q.expand(CompanyRoleEntity.CompanyRolePermissions))\n .expand(UserCompanyRoleEntity.Company, q => q.select(UserCompanyRoleEntity.Id))\n );\n\n // most odata requests will fail for canceled tenant\n // but, we need to try to fetch the new data in case user just restored the tenant, but the new tenant data have not yet been fetched\n try {\n const userData = await query.fetchData();\n const user = userData.value;\n\n for (const role of (user.CompanyRoles || [])) {\n const companyPermissions: Set = new Set();\n const companyOwnOnlyPermissions: Set = new Set();\n const perms = role.CompanyRole.CompanyRolePermissions.filter(p => p.IsEnabled);\n\n for (const p of perms) {\n companyPermissions.add(p.CompanyPermissionCode as CompanyPermissionCode);\n if (p.OwnOnly) {\n companyOwnOnlyPermissions.add(p.CompanyPermissionCode as CompanyPermissionCode);\n }\n }\n\n companiesPermissions[role.Company.Id] = companyPermissions;\n ownOnlyPermissions[role.Company.Id] = companyOwnOnlyPermissions;\n }\n\n for (const role of (user.GeneralRoles || [])) {\n const perms = role.GeneralRole.GeneralRolePermissions.filter(p => p.IsEnabled);\n for (const p of perms) {\n generalPermissions.add(p.PermissionCode as GeneralPermissionCode);\n }\n }\n } catch (e) {\n logger.error(e.toString());\n }\n const currentCompanyId = this.context.getCompanyId();\n // check if permissions are correctly loaded, otherwise stay in loading state -> AppContext should handle\n // changing company or redirecting to login / tenant login\n const isLoaded = !currentCompanyId ||\n (currentCompanyId && companiesPermissions[currentCompanyId]?.size > 0);\n\n this.setState({ companiesPermissions, generalPermissions, ownOnlyPermissions, isLoaded });\n this.props.onPermissionsLoaded(companiesPermissions, generalPermissions);\n };\n\n getContext = memoizeOne((): IPermissionContext => {\n return {\n companyPermissions: this.getCurrentCompanyPermissions(),\n ownOnlyPermissions: this.getCurrentOwnOnlyPermissions(),\n generalPermissions: this.state.generalPermissions,\n refreshUserPermissions: this.refreshUserPermissions\n };\n }, () => [this.state, this.context.getCompanyId()]);\n\n /* Fired when backend session changes (not login cookies session, but BE api/auth/session whatever that means)\n * => re-fetch permissions */\n handleSessionInvalidated = () => {\n this.refreshUserPermissions();\n };\n\n render() {\n // we have to render children to be able to redirect to login\n if (this.props.authContext?.isAuthenticated && !this.state.isLoaded && !(this.context as IAppContext).error) { //\n return ;\n }\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default withAuthContext(withOData(PermissionContextProvider));","import React from \"react\";\nimport { IPermissionContext, PermissionContext } from \"./PermissionContext\";\nimport { withContextFactory } from \"../contexts.utils\";\n\nexport interface WithPermissionContext {\n permissionContext: IPermissionContext;\n}\n\nexport const withPermissionContext = withContextFactory(PermissionContext, \"permissionContext\");\n","import React, { useRef } from \"react\";\n\nexport type TPortalRootElementContext = React.RefObject;\nconst PortalRootElementContext = React.createContext(undefined);\n\ninterface IProps {\n useGlobalRoot?: boolean;\n}\n\nconst PortalRootElementProvider: React.FC = ({ children, useGlobalRoot }) => {\n // ref to parent element to be autocomplete menus, context menus, etc... appended to\n const ref = useRef();\n\n return (\n \n {children}\n {!useGlobalRoot &&

    }\n \n );\n};\n\nexport { PortalRootElementContext, PortalRootElementProvider };","import { DevelLocalSettings } from \"@utils/LocalSettings\";\n\nimport { REST_API_URL } from \"../constants\";\nimport { HTTPStatusCode } from \"../enums\";\nimport forPaymentSvg from \"../icons/dashboard/forPayment.svg\";\nimport pdfSvg from \"../icons/documents/pdf.svg\";\nimport fileSimpleSvg from \"../icons/fileSimple.svg\";\nimport oldImportClockSvg from \"../icons/oldImportClock.svg\";\nimport switchSvg from \"../icons/switch.svg\";\nimport { IMenuDefGroup } from \"../menu-def\";\nimport { ROUTE_BACKGROUNDJOBS_HISTORY, ROUTE_DEVTOOLS } from \"../routes\";\nimport accountAnalysis from \"../svg/menu/accountAnalysis.svg\";\nimport coaTemplates from \"../svg/menu/coaTemplates.svg\";\nimport correctiveInvoicesIssued from \"../svg/menu/correctiveInvoicesIssued.svg\";\nimport internalDocument from \"../svg/menu/internalDocuments.svg\";\nimport openBalance from \"../svg/menu/openBalance.svg\";\nimport otherLiability from \"../svg/menu/otherLiability.svg\";\nimport underConstructionSvg from \"../svg/menu/underConstruction.svg\";\n\nconst backendTestModeTimeUrl = `${REST_API_URL}/TestAdmin/GetSystemNow`;\n\nexport const DevtoolsMenuDefinition: IMenuDefGroup = {\n title: \"DevTools\",\n key: \"devtools\",\n items: [\n {\n key: \"ODataBrowser\",\n title: \"OData Browser\",\n iconPath: accountAnalysis,\n url: `${ROUTE_DEVTOOLS}/ODataBrowser`\n },\n {\n key: \"TenantCloner\",\n title: \"Demo Account Cloner\",\n iconPath: correctiveInvoicesIssued,\n url: `${ROUTE_DEVTOOLS}/TenantCloner`\n },\n {\n key: \"InterfaceGenerator\",\n title: \"Entity interfaces generator\",\n iconPath: coaTemplates,\n url: `${ROUTE_DEVTOOLS}/InterfaceGenerator`\n },\n {\n key: \"ViewIdMapGenerator\",\n title: \"ViewId Map Generator\",\n iconPath: openBalance,\n url: `${ROUTE_DEVTOOLS}/ViewIdMapGenerator`\n },\n {\n key: \"HashesGenerator\",\n title: \"Definition test hashes generator\",\n url: `${ROUTE_DEVTOOLS}/HashesGenerator`,\n iconPath: internalDocument\n },\n {\n key: \"BackgroundJobsHistory\",\n title: \"BackgroundJobs history\",\n url: ROUTE_BACKGROUNDJOBS_HISTORY,\n iconPath: underConstructionSvg\n },\n {\n key: \"Email\",\n title: \"Emails\",\n url: `${ROUTE_DEVTOOLS}/Email`,\n iconPath: otherLiability\n },\n {\n key: \"FeatureSwitch\",\n title: \"Feature switching\",\n url: `${ROUTE_DEVTOOLS}/FeatureSwitch`,\n iconPath: switchSvg\n },\n {\n key: \"ScheduledTasks\",\n title: \"Scheduled tasks\",\n url: `${ROUTE_DEVTOOLS}/ScheduledTasks`,\n iconPath: underConstructionSvg\n },\n {\n key: \"FiscalYearClose\",\n title: \"Close fiscal year\",\n url: `${ROUTE_DEVTOOLS}/FiscalYearClose`,\n iconPath: underConstructionSvg\n },\n {\n key: \"TimeTravel\",\n title: \"Time travel\",\n url: `${ROUTE_DEVTOOLS}/TimeTravel`,\n iconPath: oldImportClockSvg\n },\n {\n key: \"FileIntegrationMock\",\n title: \"FileIntegrationMock\",\n url: `${ROUTE_DEVTOOLS}/FileIntegrationMock`,\n iconPath: fileSimpleSvg\n },\n {\n key: \"GoPayMock\",\n title: \"GoPayMock\",\n url: `${ROUTE_DEVTOOLS}/GoPayMock`,\n iconPath: forPaymentSvg\n },\n {\n key: \"PdfViewer\",\n title: \"PdfViewer\",\n url: `${ROUTE_DEVTOOLS}/PdfViewer`,\n iconPath: pdfSvg\n }\n ]\n};\n\nexport const isBackendInTestMode = async (): Promise => {\n const res = await fetch(backendTestModeTimeUrl);\n\n if (res.status === HTTPStatusCode.NotFound) {\n return false;\n }\n\n return true;\n};\n\nexport const getBackendTestModeTime = async (): Promise => {\n const res = await fetch(backendTestModeTimeUrl);\n\n if (res.status === HTTPStatusCode.NotFound) {\n return null;\n }\n\n const time = (await res.text()).replaceAll(\"\\\"\", \"\");\n\n return time;\n};\n\nexport const setFeTimeTravelDate = (date: Date | string): void => {\n if (!date) {\n DevelLocalSettings.remove(\"timeTravel\", \"timeTravelDate\");\n return;\n }\n\n DevelLocalSettings.set(\"timeTravel\", {\n timeTravelDate: typeof date === \"string\" ? date : date.toISOString()\n });\n};\n\nexport const isInDevtools = (): boolean => {\n return window?.location?.pathname?.toLowerCase?.()?.startsWith(ROUTE_DEVTOOLS.toLowerCase());\n};","export enum FieldType {\n Autocomplete = \"autocomplete\",\n BusinessPartnerSelect = \"businessPartnerSelect\",\n Checkbox = \"checkbox\",\n CheckboxGroup = \"checkboxGroup\",\n ColorPicker = \"colorPicker\",\n ComboBox = \"comboBox\",\n Date = \"date\",\n DateRange = \"dateRange\",\n DateTime = \"dateTime\",\n EditableText = \"editabletext\",\n FileInput = \"fileInput\",\n HierarchyComboBox = \"hierarchycombobox\",\n HierarchyMultiComboBox = \"hierarchymulticombobox\",\n Input = \"input\",\n LabelSelect = \"labelSelect\",\n MonthYear = \"monthYear\",\n MultiSelect = \"multiselect\",\n NumberInput = \"numberinput\",\n Password = \"password\",\n RadioButtonGroup = \"radioButtonGroup\",\n ResponsiveInput = \"responsiveInput\",\n // We do not want to use basic select. Use ComboBox (@see DEV-6116)\n // Select = \"select\",\n Slider = \"slider\",\n SegmentedButton = \"segmentedButton\",\n Switch = \"switch\",\n Text = \"text\",\n TextArea = \"textarea\",\n Time = \"time\",\n TimeRange = \"timeRange\",\n WriteLine = \"writeline\",\n Custom = \"Custom\",\n TokenInput = \"TokenInput\",\n ValueHelper = \"ValueHelper\"\n}\n\nexport enum ToolbarItemType {\n Icon = \"icon\",\n SmallIcon = \"smallIcon\",\n IconSelect = \"iconSelect\",\n SegmentedButton = \"segmentedbutton\",\n WriteLine = \"writeline\",\n NumericWriteLine = \"numericWriteLine\",\n Button = \"button\",\n TransparentButton = \"transparentButton\",\n ConfirmationButtons = \"confirmationButtons\",\n Custom = \"custom\"\n}\n\nexport enum TableViewMode {\n Saved = \"Saved\",\n Draft = \"Draft\"\n}\n\nexport enum GroupedField {\n NoWrapStart = \"nowrapstart\",\n NoWrapEnd = \"nowrapend\",\n MultiStart = \"multistart\",\n MultiEnd = \"multiend\",\n WrappedMultiStart = \"wrappedmultistart\",\n WrappedMultiEnd = \"wrappedmultiend\"\n}\n\nexport enum ValueType {\n String = \"String\",\n Date = \"Date\",\n Number = \"Number\",\n Boolean = \"Boolean\",\n}\n\nexport enum ValidatorType {\n String = \"String\",\n Date = \"Date\",\n Number = \"Number\",\n PositiveNumber = \"PositiveNumber\",\n Integer = \"Integer\",\n Boolean = \"Boolean\",\n\n Email = \"Email\",\n Phone = \"Phone\",\n\n Custom = \"Custom\"\n}\n\nexport const P13nType = Object.freeze({\n CustomFilters: \"CustomFilters\",\n Widths: \"widths\",\n PrintDialogSettings: \"PrintDialogSettings\",\n SelectedFolders: \"SelectedFolders\",\n SelectedBankAccounts: \"SelectedBankAccounts\",\n HiddenBankAccounts: \"HiddenBankAccounts\",\n SelectedCashBoxes: \"SelectedCashBoxes\",\n HiddenCashBoxes: \"HiddenCashBoxes\",\n\n ParsedCsvFile: \"ParsedCsvFile\",\n SavedDashboards: \"SavedDashboards\",\n CompanyWizardStep: \"CompanyWizardStep\"\n});\n\nexport enum TableSizes {\n DefaultColumnWidth = 150,\n MinColumnWidth = 95,\n MaxColumnWidth = 600,\n RowHeight = 38,\n RowSpacing = 4,\n GroupMargin = 26,\n ShadowPadding = 15\n}\n\nexport enum TableBatch {\n InfiniteLoaderMinBatchSize = 100,\n DefaultBatchSize = 100\n}\n\nexport enum TableAddingRowType {\n New = \"New\",\n Copy = \"Copy\",\n Custom = \"Custom\"\n}\n\nexport enum EditableTextSizes {\n S = \"180px\",\n M = \"300px\",\n L = \"600px\"\n}\n\nexport enum BasicInputSizes {\n XS = \"80px\",\n S = \"120px\",\n M = \"180px\",\n L = \"240px\",\n XL = \"300px\",\n XXL = \"360px\"\n}\n\nexport enum FastEntryInputSizes {\n XS = \"80px\",\n S = \"125px\",\n M = \"180px\",\n L = \"370px\"\n}\n\nexport enum FieldVisibility {\n All = \"All\",\n EditOnly = \"EditOnly\",\n CreateOnly = \"CreateOnly\",\n // Field Visibility for TableView\n ExportOnly = \"ExportOnly\"\n}\n\nexport const IconSize = Object.freeze({\n XS: \"17px\",\n S: \"21px\",\n M: \"26px\",\n L: \"34px\",\n XL: \"42px\",\n asNumber(size: \"XS\" | \"S\" | \"M\" | \"L\" | \"XL\"): number {\n return parseInt(this[size].slice(0, -2));\n }\n});\n\nexport enum AvatarSize {\n S = \"23px\",\n SM = \"30px\",\n almostM = \"38px\",\n M = \"44px\",\n L = \"66px\",\n XL = \"88px\"\n}\n\nexport enum RowType {\n Value = \"value\",\n Aggregation = \"aggregation\",\n /** row.content will be rendered across whole row, instead of row.values */\n Merged = \"merged\",\n Group = \"group\",\n New = \"New\"\n}\n\nexport enum ReportTableRowType {\n Group = \"Group\",\n GroupValue = \"GroupValue\",\n MergedGroup = \"MergedGroup\",\n Value = \"Value\",\n Total = \"Total\",\n GrandTotal = \"GrandTotal\"\n}\n\nexport enum Sort {\n Asc = \"Asc\",\n Desc = \"Desc\"\n}\n\nexport enum Status {\n Success = \"Success\",\n Warning = \"Warning\",\n Error = \"Error\"\n}\n\nexport enum RadioButtonGroupLayout {\n Row = \"row\",\n Column = \"column\"\n}\n\nexport enum ValidationErrorType {\n // error returned from backend\n Backend = \"Backend\",\n // persistent error tied to the field, not removed when validateAll is called\n // has to be cleared manually\n Field = \"Field\",\n // form errors could be produced by custom validators, but they are displayed at the top of the form\n Form = \"Form\",\n // error from yup returned from wrong data type (e.g. string instead of number)\n TypeError = \"typeError\"\n}\n\nexport enum ValidationErrorDetailType {\n NoRecord = \"norecord\"\n}\n\nexport enum TextAlign {\n Left = \"left\",\n Right = \"right\",\n Center = \"center\"\n}\n// PaneStatus enum value must be one char, as we use it as char[] in url as QueryParam.PaneStatus and then split with .split(\"\")\nexport enum PaneStatus {\n Normal = \"N\",\n Expanded = \"E\",\n Collapsed = \"C\"\n}\n\nexport enum GroupStatus {\n Unknown = \"Unknown\",\n Expanded = \"Expanded\",\n Collapsed = \"Collapsed\"\n}\n\nexport enum PageViewMode {\n FormReadOnly = \"readonly\",\n Default = \"default\"\n}\n\nexport const DnDType = Object.freeze({\n ListItem: \"ListItem\"\n});\n\nexport const TestTable = Object.freeze({\n Height: 100,\n VisibleRows: 6\n});\n\nexport enum DatePickerView {\n Days = \"Days\",\n Months = \"Months\",\n Years = \"Years\"\n}\n\nexport enum CustomClasses {\n SummarySpace = \"SummarySpace\",\n FilterBarGroupIcon = \"FilterBarGroupIcon\"\n}\n\nexport enum MouseButton {\n MainButton,\n MiddleButton,\n SecondaryButton,\n BackButton,\n ForwardButton\n}\n\nexport enum GroupListDropType {\n Item = \"Item\",\n Group = \"Group\"\n}\n\nexport enum ConfigListItemBoundType {\n Group = \"Group\",\n Column = \"Column\"\n}\n\nexport enum ODataFilterFunction {\n Startswith = \"startswith\",\n Contains = \"contains\"\n}\n\nexport enum MimeType {\n PDF = \"application/pdf\",\n DOC = \"application/msword\",\n DOCX = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n CSV = \"text/csv\",\n XLS = \"application/vnd.ms-excel\",\n XLSX = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n BMP = \"image/bmp\",\n GIF = \"image/gif\",\n ICO = \"image/vnd.microsoft.icon\",\n JPG = \"image/jpeg\",\n PNG = \"image/png\",\n SVG = \"image/svg+xml\",\n TIFF = \"image/tiff\",\n WEBP = \"image/webp\",\n XML = \"application/xml\",\n TEXT_XML = \"text/xml\",\n TEXT = \"text/plain\"\n}\n\nexport enum LabelStatus {\n Visible = \"visible\",\n Hidden = \"hidden\",\n Removed = \"removed\"\n}\n\nexport enum FormMode {\n Default = \"Default\",\n AuditTrail = \"AuditTrail\",\n}\n\nexport enum RowAction {\n Remove = \"Remove\",\n Lock = \"Lock\",\n Check = \"Check\",\n MassEdit = \"MassEdit\",\n Custom = \"Custom\"\n}\n\nexport enum FileAction {\n Info = \"Info\",\n Rename = \"Rename\",\n Download = \"Download\",\n Print = \"Print\",\n Delete = \"Delete\"\n}\n\nexport enum ActionState {\n // action toggled\n Active = \"Active\",\n // action not toggled\n Inactive = \"Inactive\",\n // action disabled\n Disabled = \"Disabled\",\n // action completely removed\n None = \"None\"\n\n}\n\nexport enum Direction {\n Horizontal = \"Horizontal\",\n Vertical = \"Vertical\"\n}\n\nexport enum AvatarStyle {\n Light = \"Light\",\n Dark = \"Dark\",\n None = \"None\"\n}\n\nexport enum CurrencyUnit {\n Units = \"Units\",\n Thousands = \"Thousands\",\n Millions = \"Millions\"\n}\n\nexport enum SizeUnit {\n Millimeters = \"mm\",\n Centimeters = \"cm\",\n Meters = \"m\",\n Inches = \"in\",\n Pixels = \"px\"\n}\n\nexport enum ToggleState {\n AllChecked = \"AllChecked\",\n AllUnchecked = \"AllUnchecked\",\n Other = \"Other\",\n Disabled = \"Disabled\"\n}\n\nexport enum BorderSize {\n None = \"None\",\n Thin = \"Thin\",\n Thick = \"Thick\"\n}\n\nexport enum LogicOperator {\n And = \"AND\",\n Or = \"OR\",\n // this operator is used in table when we want to create condition but it will be applied ONLY\n // if there is any other condition\n // we can use this for forcing some values (ID in ...) but not to make this condition to exclude other lines\n NonSoloOr = \"NonSoloOR\"\n}\n\n/**\n * Different strategies for caching:\n * None ... data are not cached at all\n * Route ... when location.pathname changes, cache is cleared\n * View ... when first segment of pathname changes, cache is cleared,\n * e.g. /menu to /invoicesReceived/20 is different, but /invoicesReceived/20 to /invoicesReceived/21 is not\n * Company ... when currently selected company is changed\n * EndOfTime ... caches are never cleared (until page is reloaded)\n */\nexport enum CacheStrategy {\n None = \"None\",\n Route = \"Route\",\n View = \"View\",\n Company = \"Company\",\n EndOfTime = \"EndOfTime\",\n}\n\n\nexport enum QueryParam {\n Filter = \"filter\",\n Variant = \"variant\",\n RedirectUri = \"redirectUri\",\n Tab = \"tab\",\n ViewMode = \"viewMode\",\n Invitation = \"invitation\",\n DocumentType = \"docType\",\n CardResult = \"cardResult\",\n Drafts = \"drafts\",\n DraftId = \"draftId\",\n Action = \"action\",\n Type = \"type\",\n SecondaryBookmarkActive = \"secondaryBookmarkActive\",\n DefaultTab = \"defaultTab\",\n ReportDisplayType = \"reportDisplayType\",\n CompanyId = \"CompanyId\",\n PreventDraftSave = \"preventDraftSave\",\n PurchaseEvala = \"purchaseEvala\",\n integrationCallbackState = \"integrationCallbackState\",\n bankApiCallbackState = \"bankApiCallbackState\",\n KBApiCallbackState = \"KBApiCallbackState\",\n BankAccountId = \"bankAccountId\",\n NewLabelSaved = \"newLabelSaved\",\n PurchaseAfterTrial = \"purchaseAfterTrial\",\n Language = \"lang\",\n PaneStatus = \"paneStatus\",\n EntityWasDeleted = \"entityWasDeleted\"\n}\n\nexport enum BankAccountType {\n Account = \"account\",\n ABA = \"aba\",\n IBANOnly = \"ibanOnly\",\n Service = \"service\"\n}\n\nexport enum NavigationSource {\n Root = \"root\",\n Parent = \"parent\",\n Itself = \"itself\"\n}\n\nexport enum BackendErrorCode {\n ValidationError = \"ValidationError\",\n NoConnection = \"NoConnection\",\n GatewayTimeout = \"GatewayTimeout\",\n PermissionError = \"PermissionError\",\n PermissionMissing = \"PermissionMissing\", // todo: check why BE has 2 different permission errors\n NoSession = \"NoSession\"\n}\n\nexport enum ContactType {\n Billing = \"Billing\",\n Technical = \"Technical\"\n}\n\nexport enum HTTPStatusCode {\n OK = 200,\n Created = 201,\n NoContent = 204,\n MovedPermanently = 301,\n Found = 302,\n BadRequest = 400,\n Unauthorized = 401,\n Forbidden = 403,\n NotFound = 404,\n Conflict = 409,\n Gone = 410,\n UnprocessableEntity = 422,\n GatewayTimeout = 504\n}","import styled, {\n createGlobalStyle,\n css,\n DefaultTheme,\n FlattenSimpleInterpolation,\n keyframes\n} from \"styled-components/macro\";\nimport { Status, TextAlign } from \"./enums\";\nimport { ellipsis, mix, transparentize } from \"polished\";\nimport { Theme } from \"./theme\";\n\nexport const FONTS = [\"Lato\", \"Helvetica\", \"sans-serif\"];\n\nexport const FONT_FAMILY = css`\n font-family: ${FONTS.join(\" , \")};\n`;\n\nexport enum LocalStackOrder {\n BackgroundLayer = -9, // resize observer, etc...\n BelowContent = -3, // Shadows and backgrounds\n Base = 0, // Base content, just to reset StackContext\n FocusBorder = 2,\n AboveContent = 3, // e.g. select menu, conditionally rendered content\n Tooltips = 6, // Alerts, Tooltips, depends on mouse position\n Overlay = 9, // Loaders, MouseEvent blockers\n AboveOverlay = 10 // e.g. close button over loading overlay\n}\n\nexport enum LayoutStackOrder {\n MenuDashboard = 20,\n Menu = 21,\n ExtendedShellBackdrop = 470,\n DashboardConfiguration = 475,\n ExtendedShell = 480,\n Modal = 490,\n ShellBar = 500,\n Hotspots = 510,\n Tooltips = 550\n}\n\nexport const GlobalStyle = createGlobalStyle<{ theme: DefaultTheme }>`\n\n :root {\n --main-brand-gradient-start: ${props => props.theme.C_MAIN_brand_gradient_start};\n --main-brand-gradient-end: ${props => props.theme.C_MAIN_brand_gradient_end};\n --icon-menu-gradient-start: ${props => props.theme.C_ICON_MENU_grad_start};\n --icon-menu-gradient-end: ${props => props.theme.C_ICON_MENU_grad_end};\n }\n\n html, body, #root {\n height: 100%;\n }\n\n html {\n box-sizing: border-box;\n }\n\n .menu-slide {\n height: 100%;\n }\n\n .menu-slide-enter {\n left: 100%;\n }\n\n .menu-slide-enter.dashboard-menu > div {\n opacity: 0;\n }\n\n .menu-slide-enter-active.dashboard-menu {\n left: 0;\n transition: left 500ms;\n }\n\n .menu-slide-enter-done.dashboard-menu > div {\n transition: opacity 300ms ease-out;\n opacity: 1;\n }\n\n div[transitionname='menu-slide'] {\n height: 100%;\n }\n\n .menu-slide-exit.dashboard-menu {\n left: 0;\n }\n\n .menu-slide-exit.dashboard-menu .dashboard-background {\n opacity: 0;\n transition: opacity 200ms ease-out;\n }\n\n .menu-slide-exit-active.dashboard-menu {\n left: 100%;\n transition: left 500ms;\n }\n\n *, *:before, *:after {\n box-sizing: inherit;\n //outline: none; // i wouldn't do this globaly, but per component (can remove usefull outline)\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n }\n\n body {\n overflow: hidden;\n }\n\n input,\n textarea {\n font-family: Lato;\n font-size: 14px;\n letter-spacing: 0.14px;\n }\n\n body,\n pre {\n ${FONT_FAMILY};\n margin: 0;\n font-weight: normal;\n background-color: ${(props) => props.theme.C_BG_floorplan};\n color: ${props => props.theme.C_TEXT_primary};\n }\n\n input, textarea {\n color: ${props => props.theme.C_TEXT_primary};\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n h1, h2, h3, h4, h5, h6 {\n margin: 0;\n padding: 0;\n }\n\n ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background-color: #f1f1f1;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background-color: #555;;\n border-radius: 10px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n\n }\n\n #root {\n display: flex;\n overflow: hidden;\n background-color: ${props => props.theme.C_BG_menu};\n }\n\n .react-pdf__Page__textContent {\n transform: none !important;\n top: -1px !important;\n left: 0 !important;\n overflow: hidden\n }\n\n .react-pdf__Page__textContent span::selection {\n color: #fff;\n background-color: #3297FD;\n }\n\n .tab-dragable-over {\n cursor: pointer;\n background-color: red;\n }\n\n .react-resizable-handle {\n z-index: 80;\n display: none;\n }\n\n .showMenuDashboard {\n animation: left-to-right 0.5s;\n }\n\n .hideMenuDashboard {\n animation: right-to-left 0.5s;\n }\n\n @keyframes left-to-right {\n from {\n left: 100%\n }\n to {\n left: 0\n }\n }\n\n @keyframes right-to-left {\n from {\n left: 0\n }\n to {\n left: 100%\n }\n }\n\n // fixes cursor in scrollbar\n textarea {\n cursor: auto;\n }\n\n textarea::-webkit-scrollbar-track {\n background: transparent;\n }\n\n textarea::-webkit-scrollbar-thumb {\n background: ${props => transparentize(0.7, props.theme.C_BTN_hover_light)};\n border-radius: 7px;\n }\n\n input::selection, textarea::selection {\n background-color: ${props => props.theme.C_TEXT_selection};\n }\n\n .timeline .date.inline {\n background-color: #690048;\n }\n\n .timeline .marker {\n border-color: #690048;\n }\n\n .timeline::after {\n background-color: #690048 !important;\n }\n\n /**\n * Global styles for the icons in the navigation list -> will be added in global scope, so\n * it will affect all the icons anywhere in the app\n */\n body svg { // increase priority, so the style take effect\n // menu icons colors\n\n .MI_4L_gradient, .MI_4L_stroke, .MI_4L_main,\n .a, .b, .c, .d, .e, .f, .g, .h, .i, .j, .k {\n fill: none;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: 2.5px;\n }\n\n .MI_4L_main {\n stroke: ${props => props.theme.C_ICON_MENU_main};\n }\n\n .MI_4L_main_fill {\n fill: ${props => props.theme.C_ICON_MENU_main};\n }\n\n .MI_4L_stroke {\n stroke: ${props => props.theme.C_ICON_MENU_stroke};\n }\n\n .MI_4L_dot-fill {\n fill: ${props => props.theme.C_ICON_MENU_fill};\n }\n }\n`;\n\nexport const T_TITLE_1 = css`\n font-weight: bold;\n font-size: 30px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_TITLE_2 = css`\n font-weight: bold;\n font-size: 24px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_TITLE_2_2 = css`\n font-weight: normal;\n font-size: 24px;\n letter-spacing: 0.24px;\n`;\n\nexport const T_TITLE_3 = css`\n font-size: 18px;\n font-weight: 300;\n letter-spacing: 0.14px;\n`;\n\nexport const T_TITLE_3_normal = css`\n ${T_TITLE_3};\n font-weight: normal;\n`;\n\nexport const T_TITLE_3_small = css`\n ${T_TITLE_3};\n font-size: 16px;\n`;\n\nexport const T_TITLE_4 = css`\n font-size: 14px;\n font-weight: 900;\n letter-spacing: 0.14px;\n`;\n\nexport const T_TITLE_4_NORMAL = css`\n ${T_TITLE_4};\n font-weight: normal;\n`;\n\nexport const T_TITLE_5 = css`\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 900;\n letter-spacing: 0.14px;\n`;\n\nexport const T_TITLE_6 = css`\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.14px;\n`;\n\nexport const T_ALERT_SUBTITLE = css`\n font-size: 12px;\n letter-spacing: 0.16px;\n font-weight: 600;\n`;\n\nexport const T_BTN_main = css`\n font-family: inherit;\n font-weight: bold;\n font-size: 12px;\n letter-spacing: 0.6px;\n text-transform: uppercase;\n`;\n\nexport const T_HEADER_small = css`\n font-size: 18px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_HEADER_bold = css`\n font-size: 18px;\n font-weight: bold;\n letter-spacing: 0.14px;\n`;\n\n\nexport const T_PLAIN_small = css`\n font-size: 12px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_PLAIN_small_hig = css`\n ${T_PLAIN_small};\n font-weight: bold;\n`;\n\nexport const T_PLAIN_big = css`\n font-size: 14px;\n font-weight: normal;\n letter-spacing: 0.14px;\n`;\n\nexport const T_PLAIN_med_hig = css`\n font-weight: bold;\n font-size: 13px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_PLAIN_big_hig = css`\n font-weight: bold;\n font-size: 14px;\n letter-spacing: 0.14px;\n`;\n\nexport const T_PLAIN_EMP = css`\n font-weight: 300;\n font-size: 24px;\n letter-spacing: 0.24px;\n`;\n\nexport const T_BOLD_tiny = css`\n font-size: 10px;\n font-weight: bold;\n letter-spacing: 0.1px;\n`;\n\nexport const T_PLAIN_tiny = css`\n font-size: 10px;\n`;\n\nexport const SmallText = styled.span`\n ${T_PLAIN_tiny};\n`;\n\nexport const BoldText = styled.span`\n ${T_PLAIN_small_hig};\n`;\n\nexport const T_BREAD = css`\n font-weight: 300;\n font-size: 12px;\n letter-spacing: 0.14px;\n`;\n\nexport const Title = styled.span.attrs(() => {\n return {\n role: \"heading\"\n };\n})` // TODO i would move this to either standalone component or view.style file and kept Global.style.js just for shared css defininitions and util classes\n ${T_TITLE_1};\n`;\n\n\nexport const textAlignToJustify = (textAlign: TextAlign) => {\n let justify;\n\n switch (textAlign) {\n case TextAlign.Left:\n justify = \"flex-start\";\n break;\n case TextAlign.Right:\n justify = \"flex-end\";\n break;\n case TextAlign.Center:\n justify = \"center\";\n break;\n default:\n justify = \"flex-start\";\n break;\n }\n\n return justify;\n};\n\n/**\n * Function returns multiline ellipsis (webkit only) styles\n * Note: polished from version 4.X supports this using ellipsis, but storybook has dependency for older version of\n * polished library, so it's not possible tu use it in storybook now.\n * ToDo: once storybook supports polished 4.x, this may be replaced by native ellipsis call with rows\n * @param width\n * @param rows\n */\nexport function multiline_ellipsis(width: string | number, rows: number) {\n if (rows === 1) {\n return css`\n ${ellipsis(width)};\n `;\n }\n\n return css`\n ${ellipsis(width)}\n display: -webkit-box;\n -webkit-line-clamp: ${rows};\n -webkit-box-orient: vertical;\n // default nowrap from ellipsis() breaks the multi line ellipsis functionality\n white-space: pre-line;\n `;\n}\n\n// sometimes we need to get the inverse opacity of a given opacity value, e.g. to pass to transparentize polished fn\nexport function getInverseOpacity(opacity: string): number {\n return 1 - parseFloat(opacity);\n}\n\nexport const getSemanticElColor = (theme: DefaultTheme, status: Status, isInverse = false, isHover = false) => {\n switch (status) {\n case Status.Success:\n return isHover ? theme.C_SEM_el_good_hover\n : isInverse ? theme.C_SEM_el_good_inv : theme.C_SEM_el_good;\n case Status.Warning:\n return isInverse ? theme.C_SEM_el_warning_inv : theme.C_SEM_el_warning;\n case Status.Error:\n return isHover ? theme.C_SEM_el_bad_hover\n : isInverse ? theme.C_SEM_el_bad_inv : theme.C_SEM_el_bad;\n default:\n return theme.C_SEM_el_neutral;\n }\n};\n\nexport const getSemanticTextColor = (theme: DefaultTheme, status: Status, isHover = false) => {\n switch (status) {\n case Status.Success:\n return isHover ? theme.C_SEM_text_good_hover : theme.C_SEM_text_good;\n case Status.Warning:\n return theme.C_SEM_text_warning;\n case Status.Error:\n return isHover ? theme.C_SEM_text_bad_hover : theme.C_SEM_text_bad;\n default:\n return null;\n }\n};\n\nexport const getSemanticTextColorName = (status: Status): keyof DefaultTheme => {\n switch (status) {\n case Status.Success:\n return \"C_SEM_text_good\";\n case Status.Warning:\n return \"C_SEM_text_warning\";\n case Status.Error:\n return \"C_SEM_text_bad\";\n default:\n return null;\n }\n};\n\nexport const getSemanticBgColor = (theme: DefaultTheme, status: Status, forValidationMessage = false) => {\n const baseColor = getSemanticElColor(theme, status);\n const opacity = forValidationMessage ? theme.C_SEM_opacity_validation : theme.C_SEM_opacity_bg_color;\n return mix(opacity, baseColor, theme.C_BG_menu);\n};\n\ninterface IGetCustomizedDashedBorderOpts {\n borderColor: keyof Theme | string;\n borderOpacity?: number | string;\n backgroundColor?: keyof Theme | string;\n backgroundOpacity?: number | string;\n dashArray?: number[];\n strokeWidth?: number;\n rx?: number; // use rx as one value for both x and y\n ry?: number;\n w?: number;\n h?: number;\n padding?: number;\n}\n\nexport function getCustomizedDashedBorderBackground(theme: Theme, opts: IGetCustomizedDashedBorderOpts): FlattenSimpleInterpolation {\n const fillColor = opts?.backgroundColor ? (opts.backgroundColor in theme ? theme[opts.backgroundColor as keyof Theme] : opts.backgroundColor) : \"none\";\n const bgOpacity = opts?.backgroundOpacity ?? 1;\n const strokeColor = opts?.borderColor in theme ? theme[opts.borderColor as keyof Theme] : opts.borderColor;\n const borderOpacity = opts?.borderOpacity ?? 1;\n const strokeDash = (opts?.dashArray ?? [3, 7]).join(\",\");\n const strokeWidth = opts?.strokeWidth ?? 2;\n const padding = opts?.padding ?? 0;\n const w = opts?.w ?? \"100%\";\n const h = opts?.h ?? \"100%\";\n const elW = opts?.w ? (opts.w - 2 * padding) : \"100%\";\n const elH = opts?.h ? (opts.h - 2 * padding) : \"100%\";\n const rx = opts?.rx ?? 0;\n const ry = opts?.ry ?? opts?.rx ?? 0;\n let svg = `\n \n \n `;\n svg = encodeURIComponent(svg);\n return css`\n background-image: url(\"data:image/svg+xml;utf8,${svg}\");\n `;\n}\n\nexport interface IGetFocusBorder {\n /** Custom color of the focus border.*/\n color?: string;\n /** By default, focus is rendered in dark color, this will change the color to light. Only used if property `color` is not specified. */\n isLight?: boolean;\n /** Focus border will only applied when user use Tab key to get to thet element. Mouse click won't show focus status. */\n keyboardOnly?: boolean;\n /** Radius of the focus border, inherited from parent by default */\n borderRadius?: string;\n /** Offset of the border, similar to outline-offset */\n offset?: number;\n offsetX?: number;\n offsetY?: number;\n\n top?: string;\n left?: string;\n bottom?: string;\n right?: string;\n\n width?: string;\n height?: string;\n}\n\nexport const getFocusBorderDefinition = ({\n color, isLight, borderRadius,\n offset, offsetY, offsetX, top,\n left, bottom, right, width, height\n }: IGetFocusBorder = {}) => {\n\n const _addPx = (val: string, offsetVal: number) => {\n const _offset = offsetVal || offset;\n return val ?? (_offset ? `${-_offset}px` : 0);\n };\n\n return css`\n content: \"\";\n position: absolute;\n top: ${_addPx(top, offsetY)};\n left: ${_addPx(left, offsetX)};\n bottom: ${height ? null : _addPx(bottom, offsetY)};\n right: ${width ? null : _addPx(right, offsetX)};\n width: ${width};\n height: ${height};\n border-radius: ${borderRadius ? borderRadius : \"inherit\"};\n border: ${props => `1px dotted ${color || (isLight ? props.theme.C_BTN_hover_dark : props.theme.C_BTN_hover_light)}`};\n pointer-events: none;\n z-index: ${LocalStackOrder.FocusBorder};\n transform: translateZ(3px);\n `;\n};\n\nexport const getFocusBorderElement = (args: IGetFocusBorder = {}) => {\n return css`\n &:focus {\n outline: none;\n }\n\n &:focus:before {\n ${!args.keyboardOnly && getFocusBorderDefinition(args)}\n }\n\n &:focus-visible:before {\n ${args.keyboardOnly && getFocusBorderDefinition(args)}\n }\n `;\n};\n\n/** For cases where pseudo elements or 'border' doesn't work (e.g. in table, pseudo element breaks layout)\n * Doesn't allow for borderRadius which makes it less flexible than 'getFocusBorderDefinition' */\nexport const getFocusOutlineDefinition = (args: IGetFocusBorder) => {\n return css`\n outline: 1px dotted ${props => props.theme.C_BTN_hover_light};\n outline-offset: ${`${args.offset}px`};\n `;\n};\n\nexport const fadeInKeyframe = keyframes`\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n`;\n\nexport const fadeInAnimation = css`\n animation: ${fadeInKeyframe} 0.4s;\n`;\n\nexport const fadeOutAnimation = (delay = 3) => css`\n animation: ${fadeInKeyframe};\n opacity: 1;\n animation-delay: ${delay}s;\n animation-duration: 0.3s;\n animation-direction: reverse;\n animation-iteration-count: 1;\n animation-fill-mode: forwards;\n\n &:hover {\n animation-play-state: revert;\n }\n`;\n\nexport const getDisabledStyle = (isDisabled: boolean, opacity?: number) => {\n return css`\n opacity: ${props => isDisabled ? opacity ?? props.theme.disabled_opacity : 1};\n pointer-events: ${isDisabled ? \"none\" : \"all\"};\n `;\n};\n\nexport interface ILinkStyleProps {\n $isLight?: boolean;\n}\n\n/** Try not to use this, if not necessary.\n * Instead, use Clickable component, that has all the logic needed.*/\nexport const LinkStyles = css`\n position: relative;\n color: ${props => !props.$isLight ? props.theme.C_TEXT_link : props.theme.C_TEXT_link_light};\n\n &:hover {\n color: ${props => !props.$isLight ? props.theme.C_TEXT_link_hover : props.theme.C_TEXT_link_hover_light};\n }\n\n &:active {\n color: ${props => !props.$isLight ? props.theme.C_TEXT_link_selected : props.theme.C_TEXT_link_selected_light};\n }\n\n ${getFocusBorderElement({ offset: 0, keyboardOnly: true })};\n`;\n\nexport const CenteredTextPage = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 38px;\n text-align: center;\n height: 100%;\n\n h1 {\n font-size: 55px;\n font-weight: 300;\n margin-bottom: 50px;\n }\n\n h3 {\n font-size: 25px;\n font-weight: normal;\n max-width: 700px;\n margin: 0 auto 35px;\n }\n`;\n\nexport const NoDataStyled = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1 1 100%;\n width: 100%;\n height: 100%;\n`;\n\nexport const NoDataText = styled.div<{ $isSimplified?: boolean }>`\n max-width: 80%;\n flex: 0 0 auto;\n color: ${props => props.theme.C_ACT_thick_line};\n ${props => props.$isSimplified ? T_HEADER_bold : T_TITLE_2};\n text-align: center;\n`;\n\nexport const ToolbarStaticText = styled.div`\n align-self: center;\n white-space: nowrap;\n padding-top: 2px;\n`;\n\nexport const ColoredText = styled.span<{\n color: keyof DefaultTheme\n}>`\n color: ${props => props.theme[props.color]};\n`;\n\nexport const CActDetBGStyles = css`\n color: ${props => props.theme.C_TEXT_purple_bg};\n\n svg {\n .OI_4L_main,\n .DI_4L_main {\n stroke: ${props => props.theme.C_TEXT_purple_bg};\n }\n\n .B_4L_main {\n fill: ${props => props.theme.C_TEXT_purple_bg};\n }\n }\n`;","import { IDefinition } from \"@pages/PageUtils\";\nimport { IComplexFilter, IValueInterval } from \"./components/smart/smartValueHelper\";\nimport React, { MouseEvent } from \"react\";\nimport { _DeepPartialArray, _DeepPartialObject } from \"chart.js/dist/types/utils\";\nimport { IAppContext } from \"./contexts/appContext/AppContext.types\";\n\nexport type TValue =\n string\n | number\n | boolean\n | Date\n | string[]\n | number[]\n | boolean[]\n | IValueInterval\n | IComplexFilter[]\n | TRecordAny[];\nexport type Optional = Pick, K> & Omit;\n\nexport type ValueOf = T[keyof T];\n/** TS wrapper to make tuple from array. Useful for Promise arrays. */\nexport const toTuple = (args: [...T]): T => args;\n\nexport type TRecordAny = Record;\nexport type TRecordString = Record;\nexport type TRecordValue = Record;\nexport type TRecordType = Record;\nexport type EmptyObject = Record;\n// to be used instead of TS Object, as recommended by linter\n/**\n * Don't use `Object` as a type. The `Object` type actually means \"any non-nullish value\", so it is marginally better than `unknown`.\n * - If you want a type meaning \"any object\", you probably want `Record` instead.\n * - If you want a type meaning \"any value\", you probably want `unknown` instead.\n * */\n// todo, remove TRecordAny and replace it with TObject\nexport type TObject = Record;\n\nexport interface IToString {\n toString: () => string;\n}\n\nexport type TDefinitionFn = (context: IAppContext) => IDefinition;\n\n// meta -> macOS \"cmd\" key (but also \"winlogo\" on windows).\nexport type IModifierKeys = Partial>;\n\n/** reacts setState function signature */\nexport type TSetState = (\n state: ((prevState: Readonly, props: Readonly

    ) => (Pick | S | null)) | (Pick | S | null),\n callback?: () => void\n) => void;\n\nexport type RequireKeys = Omit & Required>;\n// if given interface of array of promises, returns interface for array of awaited values\n// made with the help of BingGPT\nexport type AwaitedArray = {\n [P in keyof T]: T[P] extends Promise ? Awaited : unknown;\n};\n\n// DeepPartial implementation taken from the utility-types NPM package, which is\n// Copyright (c) 2016 Piotr Witek (http://piotrwitek.github.io)\n// and used under the terms of the MIT license\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type DeepPartial = T extends Function\n ? T\n : T extends Array\n ? _DeepPartialArray\n : T extends object\n ? _DeepPartialObject\n : T | undefined;\n\nexport interface IEnumEntity {\n Code: string;\n Name: string;\n}\n\nexport type TClickAction = (args: React.MouseEvent) => void;","import { ENV_EVALA_PRODUCTION, ENV_EVALA_VERSION, SYSTEM_CONFIG_URL } from \"./constants\";\nimport memoize from \"./utils/memoize\";\n\ninterface ISystemConfiguration {\n DisableSubdomains?: boolean;\n Domain?: string;\n InboxEmailDomain?: string;\n}\n\nexport const getSystemConfig = memoize(async (): Promise => {\n const result = await fetch(SYSTEM_CONFIG_URL, { method: \"GET\" });\n if (!result.ok) {\n // todo: what in this case...\n return {};\n }\n return await result.json();\n});\n\n/** This will only return true in actual production, not on nightly.\n * It differs from process.env.NODE_ENV which returns \"development\" when running dev server and \"production\" on build (nightly) */\nexport const isEvalaProduction = (): boolean => {\n return !!process.env[ENV_EVALA_PRODUCTION];\n};\n\nexport const EvalaDevelVersion = \"devel\";\n\n/** Returns current Evala version in production, \"devel\" in development. */\nexport const getEvalaVersion = (): string => {\n return process.env[ENV_EVALA_VERSION] || EvalaDevelVersion;\n};","import React, { useCallback, useEffect, useState } from \"react\";\nimport { doesElementContainsElement, isDefined } from \"@utils/general\";\nimport { KeyName } from \"../keyName\";\n\ninterface IHideOnBlurHook {\n refs: (React.RefObject | HTMLElement)[];\n initialIsVisible?: boolean;\n onHide?: (event: FocusEvent | KeyboardEvent) => void;\n /** If this is undefined, hook will take care of the visible state.\n * If this is defined, visible state is taken from the props and only onHide callback is handled. */\n isVisible?: boolean;\n}\n\n/** Automatically recognize when focus leaves component and the component can be hidden.\n * !! WARNING !!\n * For this to work, we expect that the component this is used in\n * sets tabIndex=-1 on its main wrapper (or is focusable).\n * Otherwise, when user uses mouse to click in the component, focus would switch on body, and we would hide the component.\n * ALSO\n * if the component has more complex state and can be re-rendered and loose focus (like Calendar),\n * it has to set the focus back inside after the re-rendering is done. Otherwise, it will get closed.*/\nexport default function useHideOnBlur(args: IHideOnBlurHook) {\n const [isVisible, setIsVisible] = useState(args.initialIsVisible);\n const drivenFromProps = isDefined(args.isVisible);\n const visible = drivenFromProps ? args.isVisible : isVisible;\n\n const isContained = useCallback((elem: HTMLElement) => {\n return args.refs.some((ref) => {\n const isRefObject = typeof ref === \"object\" && ref.hasOwnProperty(\"current\");\n\n return doesElementContainsElement(isRefObject ? (ref as React.RefObject).current : ref as HTMLElement, elem);\n });\n }, [args.refs]);\n\n const hideOnBlur = useCallback((event: FocusEvent) => {\n // use short setTimeout, so that the component that uses this can set focus\n // back inside, after it is re-rendered\n setTimeout(() => {\n const elementToCheck = document.activeElement as HTMLElement;\n\n if (visible && !isContained(elementToCheck)) {\n if (!drivenFromProps) {\n setIsVisible(false);\n }\n\n args.onHide?.(event);\n }\n }, 10);\n }, [visible, isContained, drivenFromProps, args.onHide]);\n\n const closeOnEscape = useCallback((event: KeyboardEvent) => {\n if (visible && event.key === KeyName.Escape) {\n if (!drivenFromProps) {\n setIsVisible(false);\n }\n\n args.onHide?.(event);\n }\n }, [visible]);\n\n useEffect(() => {\n if (visible) {\n document.addEventListener(\"blur\", hideOnBlur, true);\n document.addEventListener(\"keydown\", closeOnEscape);\n }\n return () => {\n document.removeEventListener(\"blur\", hideOnBlur, true);\n document.removeEventListener(\"keydown\", closeOnEscape);\n };\n }, [visible, hideOnBlur]);\n\n return { isVisible, setIsVisible, isContained };\n}\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n\n if (!queryString) {\n return url;\n }\n\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n\n data = addQueryString('', data).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\n\nvar Backend =\n/*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport XHR from \"i18next-xhr-backend\";\nimport toml from \"toml\";\nimport { TRANSLATIONS_API_URL } from \"./constants\";\nimport { getEvalaVersion } from \"./global.utils\";\n\nconst evalaVersion = getEvalaVersion();\n\nconst options = {\n lng: \"cs-CZ\",\n fallbackLng: \"cs-CZ\",\n debug: false,\n defaultNS: \"Common\",\n ns: [\"Common\"],\n preload: [\"cs-CZ\"],\n load: \"currentOnly\",\n\n react: {\n // Prevents blocking of rendering react components when translations are not ready.\n useSuspense: false\n },\n interpolation: { escapeValue: false },\n\n backend: {\n loadPath: `${TRANSLATIONS_API_URL}/{{lng}}/{{ns}}.toml${evalaVersion ? `?v=${evalaVersion}` : \"\"}`,\n\n // path to post missing resources\n //addPath: 'locales/add/{{lng}}/{{ns}}',\n\n allowMultiLoading: false,\n\n // parse data after it has been fetched\n parse: toml.parse,\n\n // allow cross domain requests\n crossDomain: false,\n\n // allow credentials on cross domain requests\n withCredentials: false,\n\n // overrideMimeType sets request.overrideMimeType(\"application/json\")\n overrideMimeType: false\n }\n};\n\nexport const i18nInitPromise = i18n.use(XHR).use(initReactI18next).init(options as any);\n\nexport default i18n;\n","export enum KeyName {\n /** The user agent wasn't able to map the event's virtual keycode to a specific key value. This can happen due to hardware or software constraints, or because of constraints around the platform on which the user agent is running. */\n Unidentified = 'Unidentified',\n\n /** Spacebar*/\n Space = ' ',\n\n /** The Alt (Alternative) key. */\n Alt = 'Alt',\n\n /** The AltGr or AltGraph (Alternate Graphics) key. Enables the ISO Level 3 shift modifier (where Shift is the level 2 modifier). */\n AltGraph = 'AltGraph',\n\n /** The Caps Lock key. Toggles the capital character lock on and off for subsequent input. */\n CapsLock = 'CapsLock',\n\n /** The Control, Ctrl, or Ctl key. Allows typing control characters. */\n Control = 'Control',\n\n /** The Fn (Function modifier) key. Used to allow generating function key (F1-F15, for instance) characters on keyboards without a dedicated function key area. Often handled in hardware so that events aren't generated for this key. */\n Fn = 'Fn',\n\n /** The FnLock or F-Lock (Function Lock) key.Toggles the function key mode described by \"Fn\" on and off. Often handled in hardware so that events aren't generated for this key. */\n FnLock = 'FnLock',\n\n /** The Hyper key. */\n Hyper = 'Hyper',\n\n /** The Meta key. Allows issuing special command inputs. This is the Windows logo key, or the Command or ⌘ key on Mac keyboards. */\n Meta = 'Meta',\n\n /** The NumLock (Number Lock) key. Toggles the numeric keypad between number entry some other mode (often directional arrows). */\n NumLock = 'NumLock',\n\n /** The Scroll Lock key. Toggles beteen scrolling and cursor movement modes. */\n ScrollLock = 'ScrollLock',\n\n /** The Shift key. Modifies keystrokes to allow typing upper (or other) case letters, and to support typing punctuation and other special characters. */\n Shift = 'Shift',\n\n /** The Super key. */\n Super = 'Super',\n\n /** The Symbol modifier key (found on certain virtual keyboards). */\n Symbol = 'Symbol',\n\n /** The Symbol Lock key. */\n SymbolLock = 'SymbolLock',\n\n /** The Enter or ↵ key (sometimes labeled Return). */\n Enter = 'Enter',\n\n /** The Horizontal Tab key, Tab. */\n Tab = 'Tab',\n\n /** The down arrow key. */\n ArrowDown = 'ArrowDown',\n\n /** The left arrow key. */\n ArrowLeft = 'ArrowLeft',\n\n /** The right arrow key. */\n ArrowRight = 'ArrowRight',\n\n /** The up arrow key. */\n ArrowUp = 'ArrowUp',\n\n /** The End key. Moves to the end of content. */\n End = 'End',\n\n /** The Home key. Moves to the start of content. */\n Home = 'Home',\n\n /** The Page Down (or PgDn) key. Scrolls down or displays the next page of content. */\n PageDown = 'PageDown',\n\n /** The Page Up (or PgUp) key. Scrolls up or displays the previous page of content. */\n PageUp = 'PageUp',\n\n /** The Backspace key. This key is labeled Delete on Mac keyboards. */\n Backspace = 'Backspace',\n\n /** The Clear key. Removes the currently selected input. */\n Clear = 'Clear',\n\n /** The Copy key (on certain extended keyboards). */\n Copy = 'Copy',\n\n /** The Cursor Select key, CrSel. */\n CrSel = 'CrSel',\n\n /** The Cut key (on certain extended keyboards). */\n Cut = 'Cut',\n\n /** The Delete key, Del. */\n Delete = 'Delete',\n\n /** Erase to End of Field. Deletes all characters from the current cursor position to the end of the current field. */\n EraseEof = 'EraseEof',\n\n /** The ExSel (Extend Selection) key. */\n ExSel = 'ExSel',\n\n /** The Insert key, Ins. Toggles between inserting and overwriting text. */\n Insert = 'Insert',\n\n /** Paste from the clipboard. */\n Paste = 'Paste',\n\n /** Redo the last action. */\n Redo = 'Redo',\n\n /** Undo the last action. */\n Undo = 'Undo',\n\n /** The Accept, Commit, or OK key or button. Accepts the currently selected option or input method sequence conversion. */\n Accept = 'Accept',\n\n /** The Again key. Redoes or repeats a previous action. */\n Again = 'Again',\n\n /** The Attn (Attention) key. */\n Attn = 'Attn',\n\n /** The Cancel key. */\n Cancel = 'Cancel',\n\n /** Shows the context menu. Typically found between the Windows (or OS) key and the Control key on the right side of the keyboard. */\n ContextMenu = 'ContextMenu',\n\n /** The Esc (Escape) key. Typically used as an exit, cancel, or \"escape this operation\" button. Historically, the Escape character was used to signal the start of a special control sequence of characters called an \"escape sequence.\" */\n Escape = 'Escape',\n\n /** The Execute key. */\n Execute = 'Execute',\n\n /** The Find key. Opens an interface (typically a dialog box) for performing a find/search operation. */\n Find = 'Find',\n\n /** The Finish key. */\n Finish = 'Finish',\n\n /** The Help key. Opens or toggles the display of help information. */\n Help = 'Help',\n\n /**\n * The Pause key. Pauses the current application or state, if applicable.\n * This shouldn't be confused with the \"MediaPause\" key value, which is used for media controllers, rather than to control applications and processes.\n */\n Pause = 'Pause',\n\n /**\n * The Play key. Resumes a previously paused application, if applicable.\n * This shouldn't be confused with the \"MediaPlay\" key value, which is used for media controllers, rather than to control applications and processes.\n */\n Play = 'Play',\n\n /** The Props (Properties) key. */\n Props = 'Props',\n\n /** The Select key. */\n Select = 'Select',\n\n /** The ZoomIn key. */\n ZoomIn = 'ZoomIn',\n\n /** The ZoomOut key. */\n ZoomOut = 'ZoomOut',\n\n /** The Brightness Down key. Typically used to reduce the brightness of the display. */\n BrightnessDown = 'BrightnessDown',\n\n /** The Brightness Up key. Typically increases the brightness of the display. */\n BrightnessUp = 'BrightnessUp',\n\n /** The Eject key. Ejects removable media (or toggles an optical storage device tray open and closed). */\n Eject = 'Eject',\n\n /** The LogOff key. */\n LogOff = 'LogOff',\n\n /**\n * The Power button or key, to toggle power on and off.\n * Not all systems pass this key through to to the user agent.\n */\n Power = 'Power',\n\n /** The PowerOff or PowerDown key. Shuts off the system. */\n PowerOff = 'PowerOff',\n\n /** The PrintScreen or PrtScr key. Sometimes SnapShot. Captures the screen and prints it or saves it to disk. */\n PrintScreen = 'PrintScreen',\n\n /** The Hibernate key. This saves the state of the computer to disk and then shuts down; the computer can be returned to its previous state by restoring the saved state information. */\n Hibernate = 'Hibernate',\n\n /** The Standby key; also known as Suspend or Sleep. This turns off the display and puts the computer in a low power consumption mode, without completely powering off. */\n Standby = 'Standby',\n\n /** The WakeUp key; used to wake the computer from the hibernation or standby modes. */\n WakeUp = 'WakeUp',\n\n /** The All Candidates key, which starts multi-candidate mode, in which multiple candidates are displayed for the ongoing input. */\n AllCandidates = 'AllCandidates',\n\n /** The Alphanumeric key. */\n Alphanumeric = 'Alphanumeric',\n\n /** The Code Input key, which enables code input mode, which lets the user enter characters by typing their code points (their Unicode character numbers, typically). */\n CodeInput = 'CodeInput',\n\n /** The Compose key. */\n Compose = 'Compose',\n\n /** The Convert key, which instructs the IME to convert the current input method sequence into the resulting character. */\n Convert = 'Convert',\n\n /** A dead \"combining\" key; that is, a key which is used in tandem with other keys to generate accented and other modified characters. If pressed by itself, it doesn't generate a character. If you wish to identify which specific dead key was pressed (in cases where more than one exists), you can do so by examining the KeyboardEvent's associated compositionupdate event's data property. */\n Dead = 'Dead',\n\n /** The Final (Final Mode) key is used on some Asian keyboards to enter final mode when using IMEs. */\n FinalMode = 'FinalMode',\n\n /** Switches to the first character group on an ISO/IEC 9995 keyboard. Each key may have multiple groups of characters, each in its own column. Pressing this key instructs the device to interpret keypresses as coming from the first column on subsequent keystrokes. */\n GroupFirst = 'GroupFirst',\n\n /** Switches to the last character group on an ISO/IEC 9995 keyboard. */\n GroupLast = 'GroupLast',\n\n /** Switches to the next character group on an ISO/IEC 9995 keyboard. */\n GroupNext = 'GroupNext',\n\n /** Switches to the previous character group on an ISO/IEC 9995 keyboard. */\n GroupPrevious = 'GroupPrevious',\n\n /** The Mode Change key. Toggles or cycles among input modes of IMEs. */\n ModeChange = 'ModeChange',\n\n /** The Next Candidate function key. Selects the next possible match for the ongoing input. */\n NextCandidate = 'NextCandidate',\n\n /** The NonConvert (\"Don't convert\") key. This accepts the current input method sequence without running conversion when using an IME. */\n NonConvert = 'NonConvert',\n\n /** The Previous Candidate key. Selects the previous possible match for the ongoing input. */\n PreviousCandidate = 'PreviousCandidate',\n\n /** The Process key. Instructs the IME to process the conversion. */\n Process = 'Process',\n\n /** The Single Candidate key. Enables single candidate mode (as opposed to multi-candidate mode); in this mode, only one candidate is displayed at a time. */\n SingleCandidate = 'SingleCandidate',\n\n /** The Hangul (Korean character set) mode key, which toggles between Hangul and English entry modes. */\n HangulMode = 'HangulMode',\n\n /** Selects the Hanja mode, for converting Hangul characters to the more specific Hanja characters. */\n HanjaMode = 'HanjaMode',\n\n /** Selects the Junja mode, in which Korean is represented using single-byte Latin characters. */\n JunjaMode = 'JunjaMode',\n\n /** The Eisu key. This key's purpose is defined by the IME, but may be used to close the IME. */\n Eisu = 'Eisu',\n\n /** The Hankaku (half-width characters) key. */\n Hankaku = 'Hankaku',\n\n /** The Hiragana key; selects Kana characters mode. */\n Hiragana = 'Hiragana',\n\n /** Toggles between the Hiragana and Katakana writing systems. */\n HiraganaKatakana = 'HiraganaKatakana',\n\n /** The Kana Mode (Kana Lock) key. */\n KanaMode = 'KanaMode',\n\n /** The Kanji Mode key. Enables entering Japanese text using the ideographic characters of Chinese origin. */\n KanjiMode = 'KanjiMode',\n\n /** The Katakana key. */\n Katakana = 'Katakana',\n\n /** The Romaji key; selects the Roman character set. */\n Romaji = 'Romaji',\n\n /** The Zenkaku (full width) characters key. */\n Zenkaku = 'Zenkaku',\n\n /** The Zenkaku/Hankaku (full width/half width) toggle key. */\n ZenkakuHanaku = 'ZenkakuHanaku',\n\n /** The first general-purpose function key, F1. */\n F1 = 'F1',\n\n /** The F2 key. */\n F2 = 'F2',\n\n /** The F3 key. */\n F3 = 'F3',\n\n /** The F4 key. */\n F4 = 'F4',\n\n /** The F5 key. */\n F5 = 'F5',\n\n /** The F6 key. */\n F6 = 'F6',\n\n /** The F7 key. */\n F7 = 'F7',\n\n /** The F8 key. */\n F8 = 'F8',\n\n /** The F9 key. */\n F9 = 'F9',\n\n /** The F10 key. */\n F10 = 'F10',\n\n /** The F11 key. */\n F11 = 'F11',\n\n /** The F12 key. */\n F12 = 'F12',\n\n /** The F13 key. */\n F13 = 'F13',\n\n /** The F14 key. */\n F14 = 'F14',\n\n /** The F15 key. */\n F15 = 'F15',\n\n /** The F16 key. */\n F16 = 'F16',\n\n /** The F17 key. */\n F17 = 'F17',\n\n /** The F18 key. */\n F18 = 'F18',\n\n /** The F19 key. */\n F19 = 'F19',\n\n /** The F20 key. */\n F20 = 'F20',\n\n /** The first general-purpose virtual function key. */\n Soft1 = 'Soft1',\n\n /** The second general-purpose virtual function key. */\n Soft2 = 'Soft2',\n\n /** The third general-purpose virtual function key. */\n Soft3 = 'Soft3',\n\n /** The fourth general-purpose virtual function key. */\n Soft4 = 'Soft4',\n\n /** Presents a list of recently-used applications which lets the user change apps quickly. */\n AppSwitch = 'AppSwitch',\n\n /** The Call key; dials the number which has been entered. */\n Call = 'Call',\n\n /** The Camera key; activates the camera. */\n Camera = 'Camera',\n\n /** The Focus key; focuses the camera. */\n CameraFocus = 'CameraFocus',\n\n /** The End Call or Hang Up button. */\n EndCall = 'EndCall',\n\n /** The Back button. */\n GoBack = 'GoBack',\n\n /** The Home button, which takes the user to the phone's main screen (usually an application launcher). */\n GoHome = 'GoHome',\n\n /** The Headset Hook key. This is typically actually a button on the headset which is used to hang up calls and play or pause media. */\n HeadsetHook = 'HeadsetHook',\n\n /** The Redial button, which redials the last-called number. */\n LastNumberRedial = 'LastNumberRedial',\n\n /** The Notification key. */\n Notification = 'Notification',\n\n /** A button which cycles among the notification modes: silent, vibrate, ring, and so forth. */\n MannerMode = 'MannerMode',\n\n /** The Voice Dial key. Initiates voice dialing. */\n VoiceDial = 'VoiceDial',\n\n /** Switches to the previous channel. */\n ChannelDown = 'ChannelDown',\n\n /** Switches to the next channel. */\n ChannelUp = 'ChannelUp',\n\n /** Starts, continues, or increases the speed of fast forwarding the media. */\n MediaFastForward = 'MediaFastForward',\n\n /** Pauses the currently playing media. Some older applications use simply \"Pause\" but this is not correct. */\n MediaPause = 'MediaPause',\n\n /** Starts or continues playing media at normal speed, if not already doing so. Has no effect otherwise. */\n MediaPlay = 'MediaPlay',\n\n /** Toggles between playing and pausing the current media. */\n MediaPlayPause = 'MediaPlayPause',\n\n /** Starts or resumes recording media. */\n MediaRecord = 'MediaRecord',\n\n /** Starts, continues, or increases the speed of rewinding the media. */\n MediaRewind = 'MediaRewind',\n\n /** Stops the current media activity (such as playing, recording, pausing, forwarding, or rewinding). Has no effect if the media is currently stopped already. */\n MediaStop = 'MediaStop',\n\n /** Seeks to the next media or program track. */\n MediaTrackNext = 'MediaTrackNext',\n\n /** Seeks to the previous media or program track. */\n MediaTrackPrevious = 'MediaTrackPrevious',\n\n /** Adjusts audio balance toward the left. */\n AudioBalanceLeft = 'AudioBalanceLeft',\n\n /** Adjusts audio balance twoard the right. */\n AudioBalanceRight = 'AudioBalanceRight',\n\n /** Decreases the amount of bass. */\n AudioBassDown = 'AudioBassDown',\n\n /** Reduces bass boosting or cycles downward through bass boost modes or states. */\n AudioBassBoostDown = 'AudioBassBoostDown',\n\n /** Toggles bass boosting on and off. */\n AudioBassBoostToggle = 'AudioBassBoostToggle',\n\n /** Increases the amoung of bass boosting, or cycles upward through a set of bass boost modes or states. */\n AudioBassBoostUp = 'AudioBassBoostUp',\n\n /** Increases the amount of bass. */\n AudioBassUp = 'AudioBassUp',\n\n /** Adjusts the audio fader toward the front. */\n AudioFaderFront = 'AudioFaderFront',\n\n /** Adjustts the audio fader toward the rear. */\n AudioFaderRear = 'AudioFaderRear',\n\n /** Selects the next available surround sound mode. */\n AudioSurroundModeNext = 'AudioSurroundModeNext',\n\n /** Decreases the amount of treble. */\n AudioTrebleDown = 'AudioTrebleDown',\n\n /** Increases the amount of treble. */\n AudioTrebleUp = 'AudioTrebleUp',\n\n /** Decreases the audio volume. */\n AudioVolumeDown = 'AudioVolumeDown',\n\n /** Mutes the audio. */\n AudioVolumeMute = 'AudioVolumeMute',\n\n /** Increases the audio volume. */\n AudioVolumeUp = 'AudioVolumeUp',\n\n /** Toggles the microphone on and off. */\n MicrophoneToggle = 'MicrophoneToggle',\n\n /** Decreases the microphone's input volume. */\n MicrophoneVolumeDown = 'MicrophoneVolumeDown',\n\n /** Mutes the microphone input. */\n MicrophoneVolumeMute = 'MicrophoneVolumeMute',\n\n /** Increases the microphone's input volume. */\n MicrophoneVolumeUp = 'MicrophoneVolumeUp',\n\n /** Switches into TV viewing mode. */\n TV = 'TV',\n\n /** Toggles 3D TV mode on and off. */\n TV3DMode = 'TV3DMode',\n\n /** Toggles between antenna and cable inputs. */\n TVAntennaCable = 'TVAntennaCable',\n\n /** Toggles audio description mode on and off. */\n TVAudioDescription = 'TVAudioDescription',\n\n /** Decreases trhe audio description's mixing volume; reduces the volume of the audio descriptions relative to the program sound. */\n TVAudioDescriptionMixDown = 'TVAudioDescriptionMixDown',\n\n /** Increases the audio description's mixing volume; increases the volume of the audio descriptions relative to the program sound. */\n TVAudioDescriptionMixUp = 'TVAudioDescriptionMixUp',\n\n /** Displays or hides the media contents available for playback (this may be a channel guide showing the currently airing programs, or a list of media files to play). */\n TVContentsMenu = 'TVContentsMenu',\n\n /** Displays or hides the TV's data service menu. */\n TVDataService = 'TVDataService',\n\n /** Cycles the input mode on an external TV. */\n TVInput = 'TVInput',\n\n /** Switches to the input \"Component 1.\" */\n TVInputComponent1 = 'TVInputComponent1',\n\n /** Switches to the input \"Component 2.\" */\n TVInputComponent2 = 'TVInputComponent2',\n\n /** Switches to the input \"Composite 1.\" */\n TVInputComposite1 = 'TVInputComposite1',\n\n /** Switches to the input \"Composite 2.\" */\n TVInputComposite2 = 'TVInputComposite2',\n\n /** Switches to the input \"HDMI 1.\" */\n TVInputHDMI1 = 'TVInputHDMI1',\n\n /** Switches to the input \"HDMI 2.\" */\n TVInputHDMI2 = 'TVInputHDMI2',\n\n /** Switches to the input \"HDMI 3.\" */\n TVInputHDMI3 = 'TVInputHDMI3',\n\n /** Switches to the input \"HDMI 4.\" */\n TVInputHDMI4 = 'TVInputHDMI4',\n\n /** Switches to the input \"VGA 1.\" */\n TVInputVGA1 = 'TVInputVGA1',\n\n /** The Media Context menu key. */\n TVMediaContext = 'TVMediaContext',\n\n /** Toggle the TV's network connection on and off. */\n TVNetwork = 'TVNetwork',\n\n /** Put the TV into number entry mode. */\n TVNumberEntry = 'TVNumberEntry',\n\n /** The device's power button. */\n TVPower = 'TVPower',\n\n /** Radio button. */\n TVRadioService = 'TVRadioService',\n\n /** Satellite button. */\n TVSatellite = 'TVSatellite',\n\n /** Broadcast Satellite button. */\n TVSatelliteBS = 'TVSatelliteBS',\n\n /** Communication Satellite button. */\n TVSatelliteCS = 'TVSatelliteCS',\n\n /** Toggles among available satellites. */\n TVSatelliteToggle = 'TVSatelliteToggle',\n\n /** Selects analog terrestrial television service (analog cable or antenna reception). */\n TVTerrestrialAnalog = 'TVTerrestrialAnalog',\n\n /** Selects digital terrestrial television service (digital cable or antenna receiption). */\n TVTerrestrialDigital = 'TVTerrestrialDigital',\n\n /** Timer programming button. */\n TVTimer = 'TVTimer',\n\n /** Changes the input mode on an external audio/video receiver (AVR) unit. */\n AVRInput = 'AVRInput',\n\n /** Toggles the power on an external AVR unit. */\n AVRPower = 'AVRPower',\n\n /** General-purpose media function key, color-coded red; this has index 0 among the colored keys. */\n ColorF0Red = 'ColorF0Red',\n\n /** General-purpose media funciton key, color-coded green; this has index 1 among the colored keys. */\n ColorF1Green = 'ColorF1Green',\n\n /** General-purpose media funciton key, color-coded yellow; this has index 2 among the colored keys. */\n ColorF2Yellow = 'ColorF2Yellow',\n\n /** General-purpose media funciton key, color-coded blue; this has index 3 among the colored keys. */\n ColorF3Blue = 'ColorF3Blue',\n\n /** General-purpose media funciton key, color-coded grey; this has index 4 among the colored keys. */\n ColorF4Grey = 'ColorF4Grey',\n\n /** General-purpose media funciton key, color-coded brown; this has index 5 among the colored keys. */\n ColorF5Brown = 'ColorF5Brown',\n\n /** Toggles closed captioning on and off. */\n ClosedCaptionToggle = 'ClosedCaptionToggle',\n\n /** Adjusts the brightness of the device by toggling between two brightness levels or by cycling among multiple brightness levels. */\n Dimmer = 'Dimmer',\n\n /** Cycles among video sources. */\n DisplaySwap = 'DisplaySwap',\n\n /** Switches the input source to the Digital Video Recorder (DVR). */\n DVR = 'DVR',\n\n /** The Exit button, which exits the curreent application or menu. */\n Exit = 'Exit',\n\n /** Clears the program or content stored in the first favorites list slot. */\n FavoriteClear0 = 'FavoriteClear0',\n\n /** Clears the program or content stored in the second favorites list slot. */\n FavoriteClear1 = 'FavoriteClear1',\n\n /** Clears the program or content stored in the third favorites list slot. */\n FavoriteClear2 = 'FavoriteClear2',\n\n /** Clears the program or content stored in the fourth favorites list slot. */\n FavoriteClear3 = 'FavoriteClear3',\n\n /** Selects (recalls) the program or content stored in the first favorites list slot. */\n FavoriteRecall0 = 'FavoriteRecall0',\n\n /** Selects (recalls) the program or content stored in the second favorites list slot. */\n FavoriteRecall1 = 'FavoriteRecall1',\n\n /** Selects (recalls) the program or content stored in the third favorites list slot. */\n FavoriteRecall2 = 'FavoriteRecall2',\n\n /** Selects (recalls) the program or content stored in the fourth favorites list slot. */\n FavoriteRecall3 = 'FavoriteRecall3',\n\n /** Stores the current program or content into the first favorites list slot. */\n FavoriteStore0 = 'FavoriteStore0',\n\n /** Stores the current program or content into the second favorites list slot. */\n FavoriteStore1 = 'FavoriteStore1',\n\n /** Stores the current program or content into the third favorites list slot. */\n FavoriteStore2 = 'FavoriteStore2',\n\n /** Stores the current program or content into the fourth favorites list slot. */\n FavoriteStore3 = 'FavoriteStore3',\n\n /** Toggles the display of the program or content guide. */\n Guide = 'Guide',\n\n /** If the guide is currently displayed, this button tells the guide to display the next day's content. */\n GuideNextDay = 'GuideNextDay',\n\n /** If the guide is currently displayed, this button tells the guide to display the previous day's content. */\n GuidePreviousDay = 'GuidePreviousDay',\n\n /** Toggles the display of information about the currently selected content, program, or media. */\n Info = 'Info',\n\n /** Tellls the device to perform an instant replay (typically some form of jumping back a short amount of time then playing it again, possibly but not usually in slow motion). */\n InstantReplay = 'InstantReplay',\n\n /** Opens content liniked to the current program, if available and possible. */\n Link = 'Link',\n\n /** Lists the current program. */\n ListProgram = 'ListProgram',\n\n /** Toggles a display listing currently available live content or programs. */\n LiveContent = 'LiveContent',\n\n /** Locks or unlocks the currently selected content or pgoram. */\n Lock = 'Lock',\n\n /** Presents a list of media applications, such as photo viewers, audio and video players, and games. [1] */\n MediaApps = 'MediaApps',\n\n /** The Audio Track key. */\n MediaAudioTrack = 'MediaAudioTrack',\n\n /** Jumps back to the last-viewed content, program, or other media. */\n MediaLast = 'MediaLast',\n\n /** Skips backward to the previous content or program. */\n MediaSkipBackward = 'MediaSkipBackward',\n\n /** Skips forward to the next content or program. */\n MediaSkipForward = 'MediaSkipForward',\n\n /** Steps backward to the previous content or program. */\n MediaStepBackward = 'MediaStepBackward',\n\n /** Steps forward to the next content or program. */\n MediaStepForward = 'MediaStepForward',\n\n /** Top Menu button; opens the media's main menu, such as on a DVD or Blu-Ray disc. */\n MediaTopMenu = 'MediaTopMenu',\n\n /** Navigates into a submenu or option. */\n NavigateIn = 'NavigateIn',\n\n /** Navigates to the next item. */\n NavigateNext = 'NavigateNext',\n\n /** Navigates out of the current screen or menu. */\n NavigateOut = 'NavigateOut',\n\n /** Navigates to the previous item. */\n NavigatePrevious = 'NavigatePrevious',\n\n /** Cycles to the next channel in the favorites list. */\n NextFavoriteChannel = 'NextFavoriteChannel',\n\n /** Cycles to the next saved user profile, if this feature is supported and multiple profiles exist. */\n NextUserProfile = 'NextUserProfile',\n\n /** Opens the user interface for selecting on demand content or programs to watch. */\n OnDemand = 'OnDemand',\n\n /** Starts the process of pairing the remote with a device to be controlled. */\n Pairing = 'Pairing',\n\n /** A button to move the picture-in-picture view downward. */\n PinPDown = 'PinPDown',\n\n /** A button to control moving the picture-in-picture view. */\n PinPMove = 'PinPMove',\n\n /** Toggles display of th epicture-in-picture view on and off. */\n PinPToggle = 'PinPToggle',\n\n /** A button to move the picture-in-picture view upward. */\n PinPUp = 'PinPUp',\n\n /** Decreases the media playback rate. */\n PlaySpeedDown = 'PlaySpeedDown',\n\n /** Returns the media playback rate to normal. */\n PlaySpeedReset = 'PlaySpeedReset',\n\n /** Increases the media playback rate. */\n PlaySpeedUp = 'PlaySpeedUp',\n\n /** Toggles random media (also known as \"shuffle mode\") on and off. */\n RandomToggle = 'RandomToggle',\n\n /** A code sent when the remote control's battery is low. This doesn't actually correspond to a physical key at all. */\n RcLowBattery = 'RcLowBattery',\n\n /** Cycles among the available media recording speeds. */\n RecordSpeedNext = 'RecordSpeedNext',\n\n /** Toggles radio frequency (RF) input bypass mode on and off. RF bypass mode passes RF input directly to the RF output without any processing or filtering. */\n RfBypass = 'RfBypass',\n\n /** Toggles the channel scan mode on and off; this is a mode which flips through channels automatically until the user stops the scan. */\n ScanChannelsToggle = 'ScanChannelsToggle',\n\n /** Cycles through the available screen display modes. */\n ScreenModeNext = 'ScreenModeNext',\n\n /** Toggles display of the device's settings screen on and off. */\n Settings = 'Settings',\n\n /** Toggles split screen display mode on and off. */\n SplitScreenToggle = 'SplitScreenToggle',\n\n /** Cycles among input modes on an external set-top box (STB). */\n STBInput = 'STBInput',\n\n /** Toggles on and off an external STB. */\n STBPower = 'STBPower',\n\n /** Toggles the display of subtitles on and off if they're available. */\n Subtitle = 'Subtitle',\n\n /** Toggles display of teletext, if available. */\n Teletext = 'Teletext',\n\n /** Cycles through the available video modes. */\n VideoModeNext = 'VideoModeNext',\n\n /** Causes the device to identify itself in some fashion, such as by flashing a light, briefly changing the brightness of indicator lights, or emitting a tone. */\n Wink = 'Wink',\n\n /** Toggles between full-screen and scaled content display, or otherwise change the magnification level. */\n ZoomToggle = 'ZoomToggle',\n\n /** Presents a list of possible corrections for a word which was incorrectly identified. */\n SpeechCorrectionList = 'SpeechCorrectionList',\n\n /** Toggles between dictation mode and command/control mode. This lets the speech engine know whether to interpret spoken words as input text or as commands. */\n SpeechInputToggle = 'SpeechInputToggle',\n\n /** Closes the current document or message. Must not exit the application. */\n Close = 'Close',\n\n /** Creates a new document or message. */\n New = 'New',\n\n /** Opens an existing document or message. */\n Open = 'Open',\n\n /** Prints the current document or message. */\n Print = 'Print',\n\n /** Saves the current document or message. */\n Save = 'Save',\n\n /** Starts spell checking the current document. */\n SpellCheck = 'SpellCheck',\n\n /** Opens the user interface to forward a message. */\n MailForward = 'MailForward',\n\n /** Opens the user interface to reply to a message. */\n MailReply = 'MailReply',\n\n /** Sends the current message. */\n MailSend = 'MailSend',\n\n /** The Calculator key, often labeled with an icon such as . This is often used as a generic application launcher key (APPCOMMAND_LAUNCH_APP2). */\n LaunchCalculator = 'LaunchCalculator',\n\n /** The Calendar key, often labeled with an icon like . */\n LaunchCalendar = 'LaunchCalendar',\n\n /** The Contacts key. */\n LaunchContacts = 'LaunchContacts',\n\n /** The Mail key. This is often displayed as . */\n LaunchMail = 'LaunchMail',\n\n /** The Media Player key. */\n LaunchMediaPlayer = 'LaunchMediaPlayer',\n\n /** The Music Player key, often labeled with an icon such as . */\n LaunchMusicPlayer = 'LaunchMusicPlayer',\n\n /** The My Computer key on Windows keyboards. This is often used as a generic application launcher key (APPCOMMAND_LAUNCH_APP1). */\n LaunchMyComputer = 'LaunchMyComputer',\n\n /** The Phone key, to open the phone dialer application if one is present. */\n LaunchPhone = 'LaunchPhone',\n\n /** The Screen Saver key. */\n LaunchScreenSaver = 'LaunchScreenSaver',\n\n /** The Spreadsheet key. This key may be labeled with an icon such as or that of a specific spreadsheet application. */\n LaunchSpreadsheet = 'LaunchSpreadsheet',\n\n /** The Web Browser key. This key is frequently labeled with an icon such as or the icon of a specific browser, depending on the device manufacturer. */\n LaunchWebBrowser = 'LaunchWebBrowser',\n\n /** The WebCam key. Opens the webcam application. */\n LaunchWebCam = 'LaunchWebCam',\n\n /** The Word Processor key. This may be an icon of a specific word processor application, or a generic document icon. */\n LaunchWordProcessor = 'LaunchWordProcessor',\n\n /** The first generic application launcher button. */\n LaunchApplication1 = 'LaunchApplication1',\n\n /** The second generic application launcher button. */\n LaunchApplication2 = 'LaunchApplication2',\n\n /** The third generic application launcher button. */\n LaunchApplication3 = 'LaunchApplication3',\n\n /** The fourth generic application launcher button. */\n LaunchApplication4 = 'LaunchApplication4',\n\n /** The fifth generic application launcher button. */\n LaunchApplication5 = 'LaunchApplication5',\n\n /** The sixth generic application launcher button. */\n LaunchApplication6 = 'LaunchApplication6',\n\n /** The seventh generic application launcher button. */\n LaunchApplication7 = 'LaunchApplication7',\n\n /** The eighth generic application launcher button. */\n LaunchApplication8 = 'LaunchApplication8',\n\n /** The ninth generic application launcher button. */\n LaunchApplication9 = 'LaunchApplication9',\n\n /** The 10th generic application launcher button. */\n LaunchApplication10 = 'LaunchApplication10',\n\n /** The 11th generic application launcher button. */\n LaunchApplication11 = 'LaunchApplication11',\n\n /** The 12th generic application launcher button. */\n LaunchApplication12 = 'LaunchApplication12',\n\n /** The 13th generic application launcher button. */\n LaunchApplication13 = 'LaunchApplication13',\n\n /** The 14th generic application launcher button. */\n LaunchApplication14 = 'LaunchApplication14',\n\n /** The 15th generic application launcher button. */\n LaunchApplication15 = 'LaunchApplication15',\n\n /** The 16th generic application launcher button. */\n LaunchApplication16 = 'LaunchApplication16',\n\n /** Navigates to the previous content or page in the current Web view's history. */\n BrowserBack = 'BrowserBack',\n\n /** Opens the user's list of bookmarks/favorites. */\n BrowserFavorites = 'BrowserFavorites',\n\n /** Navigates to the next content or page in the current Web view's history. */\n BrowserForward = 'BrowserForward',\n\n /** Navigates to the user's preferred home page. */\n BrowserHome = 'BrowserHome',\n\n /** Refreshes the current page or contentl. */\n BrowserRefresh = 'BrowserRefresh',\n\n /** Activates the user's preferred search engine or the search interface within their browser. */\n BrowserSearch = 'BrowserSearch',\n\n /** Stops loading the currently displayed Web view or content. */\n BrowserStop = 'BrowserStop',\n\n /** The decimal point key (typically . or , depending on the region. In newer browsers, this value to simply be the character generated by the decimal key (one of those two characters). [1] */\n Decimal = 'Decimal',\n\n /** The 11 key found on certain media numeric keypads. */\n Key11 = 'Key11',\n\n /** The 12 key found on certain media numeric keypads. */\n Key12 = 'Key12',\n\n /** The numeric keypad's multiplication key, *. */\n Multiply = 'Multiply',\n\n /** The numeric keypad's addition key, +. */\n Add = 'Add',\n\n /** The numeric keypad's division key, /. */\n Divide = 'Divide',\n\n /** The numeric keypad's subtraction key, -. */\n Subtract = 'Subtract',\n\n /** The numeric keypad's places separator character (in the United States, this is a comma, but elsewhere it is frequently a period). */\n Separator = 'Separator',\n}\n","import { getDefaultPostParams } from \"@utils/customFetch\";\nimport { compareString } from \"@utils/string\";\nimport i18next from \"i18next\";\n\nimport { EMAIL_REGEX, EVALA_WEBPAGE, GET_POST_LOGIN_ACTIONS_URL, SESSION_TENANTS_URL } from \"../constants\";\nimport { PasswordValidation, validatePassword } from \"../contexts/authContext/Auth.utils\";\nimport { IVerificationObject } from \"./state/loginSlice\";\nimport { ROUTE_LOGIN_VERIFY } from \"../routes\";\n\nexport const EvalaTermsAndConditionsLink = `${EVALA_WEBPAGE}/info/tos`;\nexport const EvalaTermsAndConditionsEduLink = `${EVALA_WEBPAGE}/info/EduTos`;\nexport const EvalaPersonalDataProcessingLink = `${EVALA_WEBPAGE}/info/personalDataProcessingRules`;\nexport const LoginTranslationNamespaces = [\"Login\", \"Common\", \"Error\"];\n\nexport const LOGIN_PAGE_BOX_MIN_MARGIN = 20;\nexport const MinimumAnimationWindow = {\n width: 1000,\n height: 600\n};\n\nexport type Id = number | string;\n\nexport const validatePassToString = (pass: string): string => {\n const validations = validatePassword(pass);\n\n for (const id of Object.keys(validations)) {\n const validation = validations[id as PasswordValidation];\n\n if (!validation.isValid) {\n return validation.errMsg;\n }\n }\n\n return null;\n};\n\nexport const validateEmail = (email: string): string => {\n if (!email) {\n return i18next.t(\"Login:Registration.EmailRequired\");\n }\n\n if (!EMAIL_REGEX.test(email)) {\n return i18next.t(\"Login:Common.WrongEmailFormat\");\n }\n\n return null;\n};\n\nconst MAX_LENGTH = 100;\nexport const validateFirstName = (value: string): string => {\n if (!value) {\n return i18next.t(\"Login:Registration.NameRequired\");\n }\n if (value.length > MAX_LENGTH) {\n return i18next.t(\"Common:Validation.Max\", { max: MAX_LENGTH });\n }\n return null;\n};\nexport const validateLastName = (value: string): string => {\n if (!value) {\n return i18next.t(\"Login:Registration.LastNameRequired\");\n }\n if (value.length > MAX_LENGTH) {\n return i18next.t(\"Common:Validation.Max\", { max: MAX_LENGTH });\n }\n return null;\n};\n\nexport const getError = (msg: string) => {\n return msg ? { message: msg } : null;\n};\n\n// steps in registration queue animation\nexport enum QueueStates {\n Start = 0,\n FirstPerson = 135,\n}\n\nexport enum AnimationType {\n BikerWithSign,\n StaticBiker,\n Queue\n}\n\nexport enum RequestStatus {\n Idle = \"Idle\",\n Pending = \"Pending\",\n Error = \"Error\"\n}\n\nexport enum AnimationPlayStatus {\n Stopped = \"Stopped\",\n Playing = \"Playing\",\n}\n\nexport const MAX_BIKER_STEP = 90;\n// minimum and maximum window size to fit\nconst BikerCfg = {\n min: { width: 1200, step: 25 },\n max: { width: 3150, step: MAX_BIKER_STEP }\n};\n// if biker animation doesn't finish in time, user is anyway redirected\nexport const MAX_ANIM_TIME = 2000; // ms\n\nexport const getBikerAnimationMaxStep = (): number => {\n // first check height\n const { offsetHeight: height, offsetWidth: width } = document.getElementsByTagName(\"body\")[0] ?? {};\n const { max, min, round } = Math;\n\n const minWidth = max(MinimumAnimationWindow.width, BikerCfg.min.width);\n if (width < minWidth || height < MinimumAnimationWindow.height) {\n // animation not visible or under playable threshold -> do not play anything...\n return 0;\n }\n\n const calcWidth = min(BikerCfg.max.width, width) - BikerCfg.min.width;\n const widthDiff = BikerCfg.max.width - BikerCfg.min.width;\n const step = (calcWidth / widthDiff * (BikerCfg.max.step - BikerCfg.min.step)) + BikerCfg.min.step;\n\n return round(step);\n};\n\nexport interface ITenantSessionOption {\n TenantId: number;\n TenantName: string;\n IsTenantActive: boolean;\n}\n\nexport interface ICustomerSessionOption extends ITenantSessionOption {\n CompanyId: number;\n CompanyName: string;\n}\n\nexport interface ILoginOptions extends ICustomerSessionOption, ITenantSessionOption {\n isCustomer: boolean;\n isResolved: boolean;\n}\n\ninterface ILoginOptionsData {\n CustomerOptions: ICustomerSessionOption[];\n UserOptions: ITenantSessionOption[];\n}\n\nexport async function getLoginOptionsData(): Promise {\n const response = await fetch(SESSION_TENANTS_URL);\n if (response.ok) {\n const { CustomerOptions, UserOptions } = (await response.json()) as ILoginOptionsData;\n return [].concat(CustomerOptions?.sort((a, b) => compareString(a.CompanyName, b.CompanyName)).map(item => ({\n ...item,\n isCustomer: true\n })) ?? [])\n .concat(UserOptions?.sort((a, b) => compareString(a.TenantName, b.TenantName)).map(item => ({\n ...item,\n isCustomer: false\n })) ?? []);\n }\n return null;\n}\n\nexport interface ISessionTenantData {\n TenantId: number;\n CompanyId?: number;\n LoginToCustomerPortal?: boolean;\n}\n\nexport async function switchToTenant(params: ISessionTenantData): Promise {\n return fetch(SESSION_TENANTS_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify(params)\n });\n}\n\nexport async function getPostLoginActions(): Promise {\n const response = await fetch(GET_POST_LOGIN_ACTIONS_URL);\n return await response.json() as IVerificationObject[];\n}\n\nexport function getTenantRelatedLoginOption(tenantId: number, actions: IVerificationObject[]): IVerificationObject[] {\n return actions.filter(v => v.Parameters && (JSON.parse(v.Parameters)?.TenantId === tenantId));\n}\n\nexport function getVerificationUrl(verification: IVerificationObject): string {\n return `${ROUTE_LOGIN_VERIFY}/${verification.VerificationGuid}`;\n}","import { DeviceType, IAuthDevice } from \"../../contexts/authContext/Auth.utils\";\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { AppThunk, TRootLoginState } from './store';\nimport { AUTH_DEVICE_URL, AUTH_DEVICE_URL_ADD_URL, AUTH_DEVICE_URL_RESEND_URL } from \"../../constants\";\nimport { getDefaultHeaders, getDefaultPostParams } from \"@utils/customFetch\";\nimport { loadSession, setDeviceGUID, setDeviceIsVerified } from \"./sessionSlice\";\nimport * as deviceDetect from \"react-device-detect\";\nimport memoizeOne from \"@utils/memoizeOne\";\n\n\ninterface IDeviceState {\n list: IAuthDevice[];\n error: string | null;\n}\n\nconst initialState: IDeviceState = {\n list: [],\n error: null\n};\n\nconst deviceSlice = createSlice({\n name: 'device',\n initialState,\n reducers: {\n loadStart(state) {\n state.error = null;\n },\n appendDevice(state, action: PayloadAction) {\n const added = action.payload;\n state.list = [...state.list.filter(d => d.Id !== added.Id), added];\n },\n setDevices(state, action: PayloadAction) {\n state.list = action.payload;\n state.error = null;\n },\n loadFailure(state, action: PayloadAction) {\n state.error = action.payload;\n }\n },\n});\n\nexport const {\n loadStart,\n appendDevice,\n setDevices,\n loadFailure\n} = deviceSlice.actions;\n\nexport default deviceSlice.reducer;\n\nexport const loadDevices = (): AppThunk => async dispatch => {\n try {\n dispatch(loadStart());\n\n const result = await fetch(AUTH_DEVICE_URL);\n\n if (result.ok) {\n const devices = await result.json();\n dispatch(setDevices(devices));\n } else if (result.status === 401) {\n // todo: general handler\n dispatch(loadFailure(\"Unauthorized\"));\n } else {\n dispatch(loadFailure(\"Error occurred: \" + result));\n }\n } catch (error) {\n dispatch(loadFailure(error.message));\n }\n};\n\n// Thunk action for adding device to the trusted device list - permanently or only for current session\nexport const addDevice = (deviceName: string, oneTime: boolean): AppThunk => async dispatch => {\n try {\n dispatch(loadStart());\n\n const result = await fetch(AUTH_DEVICE_URL_ADD_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n Name: deviceName,\n OneTime: oneTime\n })\n });\n\n if (result.ok) {\n const device = await result.json();\n dispatch(appendDevice(device));\n dispatch(setDeviceGUID(device.Id));\n dispatch(setDeviceIsVerified(device.IsVerified));\n } else if (result.status === 401) {\n // todo: general handler\n dispatch(loadFailure(\"Unauthorized\"));\n } else {\n dispatch(loadFailure(\"Error occurred: \" + result));\n }\n } catch (error) {\n dispatch(loadFailure(error.message));\n }\n};\n\nexport const resendDeviceEmail = (currentDevice: IAuthDevice): AppThunk => async dispatch => {\n try {\n dispatch(loadStart());\n\n const { Id, Name, OneTime } = currentDevice;\n const response = await fetch(AUTH_DEVICE_URL_RESEND_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({ Id, Name, OneTime })\n });\n if (response.ok) {\n // todo: some confirmation ??\n } else if (response.status === 401) {\n // todo: general handler\n dispatch(loadFailure(\"unauthorized\"));\n } else if (response.status === 409) {\n dispatch(loadSession());\n // device obnoven -> refetch session ??\n // this.setState(state => ({\n // currentDevice: {\n // ...state.currentDevice,\n // IsVerified: true\n // }\n // }));\n } else {\n dispatch(loadFailure(\"Error occurred...\"));\n }\n } catch (error) {\n dispatch(loadFailure(error.message));\n }\n};\n\n/**\n * Remove device from added devices list\n * @param id\n */\nexport const deleteDevice = (id: string): AppThunk => async dispatch => {\n try {\n const result = await fetch(AUTH_DEVICE_URL, {\n method: \"DELETE\",\n headers: getDefaultHeaders(),\n body: JSON.stringify(\n {\n id: id\n }\n )\n });\n\n if (result.ok) {\n const devices = await result.json();\n dispatch(setDevices(devices));\n } else if (result.status === 401) {\n // todo: general handler\n dispatch(loadFailure(\"unauthorized\"));\n }\n } finally {\n }\n};\n\nexport const getCurrentDeviceName = () => {\n if (deviceDetect.isMobile) {\n return `${deviceDetect.mobileVendor} ${deviceDetect.mobileModel} ${deviceDetect.osVersion}`;\n }\n\n return `PC ${deviceDetect.osName} ${deviceDetect.osVersion}`;\n};\n\nexport const getCurrentDeviceType = (): DeviceType => {\n if (deviceDetect.isTablet) {\n return DeviceType.Tablet;\n }\n\n return deviceDetect.isMobile ? DeviceType.Mobile : DeviceType.PC;\n};\n\nexport const selectCurrentInfo = memoizeOne((state: TRootLoginState): IAuthDevice => {\n const { sessionData } = state.session;\n const id = sessionData?.DeviceGuid;\n const savedDevice = id && state.device.list?.find(d => d.Id === id);\n return savedDevice ?? {\n Id: sessionData?.DeviceGuid,\n Type: getCurrentDeviceType(),\n Name: getCurrentDeviceName(),\n OneTime: true,\n IsVerified: !!sessionData?.IsVerifiedDevice\n };\n}, (state: TRootLoginState) => [state.session.sessionData?.DeviceGuid]);\nexport const selectEmailSent = (state: TRootLoginState): boolean => !!state.session.sessionData?.DeviceGuid;\nexport const selectDevices = (state: TRootLoginState): IAuthDevice[] => state.device.list;\n\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { INVITATION_URL } from \"../../constants\";\nimport { AppThunk, TRootLoginState } from \"./store\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport { handleError, setLoginEmail } from \"./loginSlice\";\nimport { parseError } from \"@odata/ODataParser\";\n\nexport enum InvitationStatus {\n Loading = \"Loading\",\n Idle = \"Idle\",\n Expired = \"Expired\",\n Accepted = \"Accepted\",\n Error = \"Error\"\n}\n\nexport interface IInvitationInfo {\n FirstName: string;\n LastName: string;\n Email: string;\n TenantName: string;\n}\n\ninterface IInvitationState {\n code: string;\n data: IInvitationInfo | null;\n status: InvitationStatus;\n}\n\nconst initialState: IInvitationState = {\n code: null,\n data: null,\n status: null\n};\n\nconst invitationSlice = createSlice({\n name: \"invitation\",\n initialState,\n reducers: {\n loadStart(state) {\n state.status = InvitationStatus.Loading;\n },\n setCode(state, action: PayloadAction) {\n state.code = action.payload;\n },\n setInvitationData(state, action: PayloadAction) {\n state.data = action.payload;\n state.status = InvitationStatus.Idle;\n },\n setInvitationAccepted(state) {\n state.data = null;\n state.code = null;\n state.status = InvitationStatus.Accepted;\n },\n loadFailure(state, action: PayloadAction) {\n state.code = null;\n state.status = action.payload;\n }\n }\n});\n\nexport const {\n loadStart, setCode, setInvitationData, loadFailure, setInvitationAccepted\n} = invitationSlice.actions;\n\nexport default invitationSlice.reducer;\n\nconst getInvitationError = ({ status }: Response) => {\n return status === 409 ? InvitationStatus.Expired : InvitationStatus.Error;\n};\n\n// Thunk action to load invitation data from the API\nexport const loadInvitation = (code: string): AppThunk => async dispatch => {\n try {\n dispatch(loadStart());\n dispatch(setCode(code));\n\n const response = await fetch(`${INVITATION_URL}/${code}`);\n\n if (response.ok) {\n const data: IInvitationInfo = await response.json();\n dispatch(setInvitationData(data));\n dispatch(setLoginEmail(data.Email));\n } else {\n dispatch(loadFailure(getInvitationError(response)));\n }\n } catch (error) {\n dispatch(loadFailure(InvitationStatus.Error));\n }\n};\n\n// Thunk action to load invitation data from the API\nexport const registerInvitation = (code: string): AppThunk> => async (dispatch): Promise => {\n try {\n const response = await fetch(INVITATION_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n InvitationGuid: code\n })\n });\n\n if (response.ok) {\n return true;\n } else {\n const error = parseError(await response.json());\n\n if (error._validationMessages[0].message) {\n dispatch(handleError(error._validationMessages[0].message));\n } else {\n dispatch(loadFailure(getInvitationError(response)));\n }\n }\n } catch (error) {\n dispatch(loadFailure(error.message));\n }\n\n return false;\n};\n\n// Selector to get the invitation data from the state\nexport const selectInvitationData = (state: TRootLoginState): IInvitationInfo => state.invitation.data;\nexport const selectInvitationCode = ({ invitation }: TRootLoginState): string => invitation.status !== InvitationStatus.Accepted ? invitation.code : null;\nexport const selectInvitationStatus = (state: TRootLoginState): InvitationStatus => state.invitation.status;\nexport const selectIsInvitationLoaded = (state: TRootLoginState): boolean => state.invitation.status && state.invitation.status !== InvitationStatus.Loading;\n","import { parseError } from \"@odata/ODataParser\";\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { fireGAEvent, fireGTMEvent, fireSklikEvent, getSessionGTMParams } from \"@utils/analytics\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport i18next from \"i18next\";\n\nimport {\n AUTH_REQUEST_RESET_PASS_URL,\n AUTH_VERIFICATION_ACTIVATE_URL,\n AUTH_VERIFICATION_VERIFY_URL,\n REGISTER_RESEND_EMAIL_URL,\n REGISTER_URL\n} from \"../../constants\";\nimport { HTTPStatusCode } from \"../../enums\";\nimport { AnimationPlayStatus, AnimationType, ILoginOptions, RequestStatus } from \"../Login.utils\";\nimport { setInvitationAccepted } from \"./invitationSlice\";\nimport { loadSession, login } from \"./sessionSlice\";\nimport { AppThunk, TRootLoginState } from \"./store\";\n\ninterface IAnimationConfig {\n type: AnimationType;\n step: number;\n status?: AnimationPlayStatus;\n}\n\nexport enum VerificationType {\n Email = \"Email\",\n Device = \"Device\",\n Password = \"Password\",\n Company = \"Company\",\n DeleteUserSessions = \"DeleteUserSessions\",\n AcceptOwnerRole = \"AcceptOwnerRole\"\n}\n\nexport interface IVerificationObject {\n Type: VerificationType;\n Parameters: string;\n DateCreated: string;\n DateValidUntil: string;\n IsPostLoginActionRequired: boolean;\n UserGuid: string;\n VerificationGuid: string;\n}\n\nexport interface IVerificationInfo {\n FrontendParameters: FrontendParameters;\n Verification: IVerificationObject;\n}\n\nexport interface IPasswordChangeVerificationInfo extends IVerificationInfo {\n Type: VerificationType.Password;\n}\n\nexport interface IAcceptOwnerRoleVerificationInfo extends IVerificationInfo<{\n UserName: string;\n EditingUserName: string;\n TenantName: string;\n OriginalRoleName: string;\n IsEdu: boolean;\n}> {\n Type: VerificationType.AcceptOwnerRole;\n}\n\ninterface IValidationMessage {\n message: string;\n}\n\ntype TValidationMessages = Record;\n\ninterface ILoginState {\n email: string;\n nextURL: string;\n resetPasswordSent: string; // email, where the reset password has been sent\n verificationCode: string;\n // VerificationInfo retrieved from verificationCode\n verificationInfo: IVerificationInfo;\n animation: IAnimationConfig;\n status: RequestStatus;\n error: string;\n validationMessages: TValidationMessages;\n postLoginVerifications: IVerificationObject[];\n loginOption: ILoginOptions;\n}\n\nexport interface IRegistrationData {\n FirstName: string;\n LastName: string;\n Email: string;\n Password: string;\n IsAgreedToCollectData?: boolean;\n IsAgreedToCollectPersonalDataForMarketing?: boolean;\n IsAgreedToCollectPersonalDataForMarketingOwner?: boolean;\n Invitation?: string;\n}\n\nconst initialState: ILoginState = {\n email: \"\",\n nextURL: null,\n resetPasswordSent: null,\n verificationCode: \"\",\n verificationInfo: null,\n animation: null,\n status: RequestStatus.Idle,\n error: \"\",\n validationMessages: null,\n postLoginVerifications: null,\n loginOption: null\n};\n\nconst INVALID_VERIFICATION_CODE = \"INV\";\n\nconst loginSlice = createSlice({\n name: \"login\",\n initialState,\n reducers: {\n setLoginEmail(state, action: PayloadAction) {\n state.email = action.payload?.trim() ?? \"\";\n },\n setNextURL(state, action: PayloadAction) {\n state.nextURL = action.payload;\n },\n setVerificationCode(state, action: PayloadAction) {\n state.verificationCode = action.payload;\n },\n setVerificationInfo(state, action: PayloadAction) {\n state.verificationInfo = action.payload;\n },\n setPostLoginActions(state, action: PayloadAction) {\n state.postLoginVerifications = action.payload;\n },\n setResetPasswordSent(state, action: PayloadAction) {\n state.resetPasswordSent = action.payload;\n },\n setLoginOptions(state, action: PayloadAction) {\n state.loginOption = action.payload;\n },\n setAnimation(state, action: PayloadAction>) {\n state.animation = {\n type: AnimationType.StaticBiker,\n step: 0, // default\n ...(state.animation ?? {}),\n ...action.payload\n };\n },\n setAnimationType(state, action: PayloadAction) {\n state.animation = {\n type: action.payload,\n step: 0,\n status: AnimationPlayStatus.Stopped\n };\n },\n setAnimationStatus(state, action: PayloadAction) {\n if (state.animation) {\n state.animation.status = action.payload;\n }\n },\n handleStart(state) {\n state.status = RequestStatus.Pending;\n state.error = null;\n state.validationMessages = null;\n },\n handleSuccess(state) {\n state.status = RequestStatus.Idle;\n },\n handleError(state, action: PayloadAction) {\n state.status = RequestStatus.Error;\n if (typeof action.payload === \"string\") {\n state.error = action.payload;\n } else {\n state.validationMessages = action.payload;\n }\n },\n setValidationMessage(state, action: PayloadAction<{ key: string, message: string }>) {\n const all = { ...(state.validationMessages ?? {}) };\n const { key, message } = action.payload;\n if (message) {\n all[key] = [message];\n } else {\n delete all[key];\n }\n // this is used by user when editing the form -> switch to Idle state,\n // so we don't display the error message anymore\n state.status = RequestStatus.Idle;\n state.validationMessages = Object.keys(all).length ? all : null;\n },\n clearRequestState(state) {\n state.status = RequestStatus.Idle;\n state.error = null;\n state.validationMessages = null;\n }\n }\n});\n\nexport const {\n setLoginEmail,\n setNextURL,\n setVerificationCode,\n setVerificationInfo,\n setPostLoginActions,\n setResetPasswordSent,\n setAnimation,\n setAnimationType,\n setAnimationStatus,\n setLoginOptions,\n handleStart, handleSuccess, handleError, clearRequestState,\n setValidationMessage\n} = loginSlice.actions;\n\nexport default loginSlice.reducer;\n\nexport const handleErrorResponse = (response: Response): AppThunk => async dispatch => {\n const errors: string[] = [];\n const validationMessages: TValidationMessages = {};\n if (response.status === HTTPStatusCode.BadRequest) {\n const parsedError = parseError(await response.json());\n parsedError?._validationMessages?.forEach(m => {\n if (m.property) {\n if (!validationMessages[m.property]) {\n validationMessages[m.property] = [];\n }\n validationMessages[m.property].push(m.message);\n } else if (m.message) {\n errors.push(m.message);\n }\n });\n }\n const error = Object.keys(validationMessages)?.length ? validationMessages\n : errors.length ? errors.join(\"\\n\") : i18next.t(\"Common:Errors.ErrorHappened\");\n dispatch(handleError(error));\n};\n\nexport const resetPasswordRequest = (email: string): AppThunk => async dispatch => {\n try {\n dispatch(handleStart());\n const response = await fetch(AUTH_REQUEST_RESET_PASS_URL, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(email)\n });\n\n // most likely response status 404 should not be already used...\n if (response.ok || response.status === HTTPStatusCode.NotFound) {\n dispatch(setResetPasswordSent(email));\n dispatch(handleSuccess());\n } else {\n dispatch(handleErrorResponse(response));\n }\n } catch (e) {\n dispatch(handleError());\n }\n};\nexport const resetPassword = (code: string, email: string, password: string): AppThunk => async dispatch => {\n try {\n dispatch(handleStart());\n const response = await fetch(`${AUTH_VERIFICATION_ACTIVATE_URL}/${code}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(password)\n });\n\n if (response.ok) {\n // directly log in to system when success\n dispatch(login(email, password));\n dispatch(handleSuccess());\n } else if ([HTTPStatusCode.NotFound, HTTPStatusCode.Conflict].includes(response.status)) {\n dispatch(setVerificationCode(INVALID_VERIFICATION_CODE));\n // not really success, but user is redirected away, so the behavior is same\n dispatch(handleSuccess());\n } else {\n dispatch(handleErrorResponse(response));\n }\n } catch (e) {\n // General (unknown) error\n dispatch(handleError());\n }\n};\n\n/** Validates that given code correspones to Validation object and retrieves ValidationType and its parameters\n * */\nexport const getVerificationInfo = (code: string): AppThunk => async dispatch => {\n try {\n const response = await (code && fetch(`${AUTH_VERIFICATION_VERIFY_URL}/${code}`));\n\n if (!code || !response?.ok) {\n dispatch(setVerificationCode(INVALID_VERIFICATION_CODE));\n } else {\n const verificationInfo = (await response.json()) as IVerificationInfo;\n\n if (verificationInfo.Verification.Type === VerificationType.Password) {\n dispatch(setLoginEmail((verificationInfo as IPasswordChangeVerificationInfo).FrontendParameters));\n } else if (verificationInfo.Verification.Type === VerificationType.AcceptOwnerRole) {\n verificationInfo.FrontendParameters = JSON.parse(verificationInfo.FrontendParameters as string);\n }\n\n if (typeof verificationInfo.Verification.Parameters === \"string\") {\n verificationInfo.Verification.Parameters = JSON.parse(verificationInfo.Verification.Parameters as string);\n }\n\n dispatch(setVerificationCode(code));\n dispatch(setVerificationInfo(verificationInfo));\n }\n } catch (e) {\n dispatch(handleError());\n }\n};\n\n/** Confirms or rejects verification object */\nexport const activateVerification = (code: string, activate = true): AppThunk => async (dispatch, getState) => {\n try {\n dispatch(handleStart());\n\n const response = await fetch(`${AUTH_VERIFICATION_ACTIVATE_URL}/${code}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(!!activate)\n });\n\n if (response.ok) {\n // \"confirm\" the action by removing verification object to trigger redirect in Verify\n dispatch(setVerificationInfo(null));\n dispatch(handleSuccess());\n const { sessionData } = getState().session;\n fireGTMEvent(\"signup_verification_complete\", getSessionGTMParams({ sessionData }));\n } else {\n const parsedError = parseError(await response.json());\n const error = parsedError._validationMessages[0].message;\n\n dispatch(handleError(error));\n }\n } catch (e) {\n dispatch(handleError(null));\n }\n};\n\nexport const register = (data: IRegistrationData): AppThunk => async (dispatch, getState) => {\n try {\n dispatch(handleStart());\n const response = await fetch(REGISTER_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n ...data\n })\n });\n\n const hasInvitation = !!data.Invitation;\n\n if (response.ok) {\n const responseData = await response.json();\n const { UserGuid } = responseData;\n fireGAEvent(\"vyplnena_registrace\", UserGuid);\n fireGTMEvent(\"registration_success\");\n fireGTMEvent(\"signup_form_submit\", getSessionGTMParams({ UserGuid }));\n fireSklikEvent();\n dispatch(loadSession());\n\n if (hasInvitation) {\n dispatch(setInvitationAccepted());\n }\n dispatch(handleSuccess());\n } else if (response.status === HTTPStatusCode.Conflict) {\n const message = i18next.t(\"Login:Registration.EmailAlreadyRegisteredError\");\n // handle error in different way according to screen - registration screen has username field, invitation screen not (general error)\n const error = hasInvitation ? message : { username: [message] };\n dispatch(handleError(error));\n } else {\n dispatch(handleErrorResponse(response));\n }\n } catch (e) {\n dispatch(handleError());\n }\n};\n\nexport const resendRegisterEmail = (): AppThunk => async dispatch => {\n try {\n dispatch(handleStart());\n const response = await fetch(REGISTER_RESEND_EMAIL_URL, {\n method: \"POST\"\n });\n if (response.ok) {\n // no action, user stays on the page, still need to click on the link in the email\n dispatch(handleSuccess());\n } else if ([HTTPStatusCode.Unauthorized, HTTPStatusCode.NotFound, HTTPStatusCode.Conflict].includes(response.status)) {\n // token not valid anymore or session expired, try to reload it, redirects are then handled\n // according to new session info\n dispatch(loadSession());\n } else {\n // unknown error\n dispatch(handleError());\n }\n } catch (e) {\n dispatch(handleError());\n }\n};\n\n// Selector to get the session data from the state\nexport const selectLoginEmail = (state: TRootLoginState): string => state.login.email;\nexport const selectError = (state: TRootLoginState): string => state.login.error;\nexport const selectValidationMessages = (state: TRootLoginState): Record => {\n const ret: Record = {};\n if (state.login.validationMessages) {\n Object.keys(state.login.validationMessages).forEach(key => {\n ret[key] = { message: state.login.validationMessages[key].join(\"\\n\") };\n });\n return ret;\n }\n return null;\n};\nexport const selectRequestStatus = (state: TRootLoginState): RequestStatus => state.login.status;\nexport const selectNextURL = (state: TRootLoginState): string => state.login.nextURL;\nexport const selectVerificationCode = (state: TRootLoginState): string => state.login.verificationCode !== INVALID_VERIFICATION_CODE ? state.login.verificationCode : null;\nexport const selectIsInvalidVerificationCode = (state: TRootLoginState): boolean => state.login.verificationCode === INVALID_VERIFICATION_CODE;\nexport const selectVerificationInfo = (state: TRootLoginState): IVerificationInfo => state.login.verificationCode !== INVALID_VERIFICATION_CODE ? state.login.verificationInfo : null;\nexport const selectPostLoginVerifications = (state: TRootLoginState): IVerificationObject[] => state.login.postLoginVerifications;\nexport const selectAnimation = (state: TRootLoginState): IAnimationConfig => state.login.animation;\nexport const selectAnimationStatus = (state: TRootLoginState): AnimationPlayStatus => state.login.animation?.status ?? AnimationPlayStatus.Stopped;\nexport const selectLoginOption = (state: TRootLoginState): ILoginOptions => state.login.loginOption;\nexport const selectRegisterIsBusy = ({ login, session }: TRootLoginState): boolean =>\n login.status === RequestStatus.Pending || session.status === RequestStatus.Pending;\n\n","import { FeatureCode } from \"@odata/GeneratedEnums\";\nimport { DashboardManager } from \"@pages/home/DashboardManager\";\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport i18next from \"i18next\";\n\nimport { LOGIN_PAGE_SUBDOMAIN, LOGIN_URL, SESSION_URL } from \"../../constants\";\nimport { SessionType } from \"../../contexts/authContext/Auth.utils\";\nimport { getSystemConfig } from \"../../global.utils\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport {\n AnimationPlayStatus,\n AnimationType,\n getBikerAnimationMaxStep,\n getError,\n getPostLoginActions,\n RequestStatus\n} from \"../Login.utils\";\nimport { setAnimation, setPostLoginActions } from \"./loginSlice\";\nimport { AppThunk, TRootLoginState } from \"./store\";\nimport { fireGTMEvent } from \"@utils/analytics\";\n\nexport interface ISessionData {\n Type: SessionType;\n IsEmailVerified: boolean;\n IsVerifiedDevice: boolean;\n DeviceGuid: string;\n LoginEmail: string;\n UserId?: number; // different per tenant, every tenant has user with Id 1, who is Tenant creator\n UserGuid?: number; // CentralUserGuid ... one user identifier for all tenants\n TenantId?: number;\n CompanyId?: number;\n EnabledFeatures?: FeatureCode[];\n}\n\ninterface ISessionState {\n sessionData: ISessionData | null;\n status: RequestStatus;\n error: string | null;\n // indication if session has been loaded for the first time\n sessionLoaded: boolean;\n}\n\nconst initialState: ISessionState = {\n /* use undefined only before session is load */\n sessionData: undefined,\n status: null,\n error: null,\n sessionLoaded: false\n};\n\nconst sessionSlice = createSlice({\n name: \"session\",\n initialState,\n reducers: {\n loadSessionStart(state) {\n state.status = RequestStatus.Pending;\n state.error = null;\n },\n setSessionData(state, action: PayloadAction) {\n state.sessionData = action.payload;\n state.status = RequestStatus.Idle;\n state.error = null;\n state.sessionLoaded = true;\n },\n loadSessionFailure(state, action: PayloadAction) {\n state.status = RequestStatus.Error;\n state.error = action.payload;\n state.sessionLoaded = true;\n },\n clearError(state) {\n state.error = null;\n },\n setDeviceGUID(state, action: PayloadAction) {\n state.sessionData.DeviceGuid = action.payload;\n },\n setDeviceIsVerified(state, action: PayloadAction) {\n state.sessionData.IsVerifiedDevice = action.payload;\n },\n clearSessionData(state) {\n state.sessionData = null;\n state.status = RequestStatus.Idle;\n state.error = null;\n }\n }\n});\n\nexport const {\n loadSessionStart,\n setSessionData,\n clearError,\n loadSessionFailure,\n setDeviceGUID,\n setDeviceIsVerified,\n clearSessionData\n} = sessionSlice.actions;\n\nexport default sessionSlice.reducer;\n\nexport const checkSubdomainAndLoadSession = (): AppThunk => async dispatch => {\n const { host, protocol, pathname, search } = window.location;\n // if the subdomain starts with \"app.\" we are on the correct subdomain\n if (!host.startsWith(`${LOGIN_PAGE_SUBDOMAIN}.`)) {\n const config = await getSystemConfig();\n if (config?.DisableSubdomains === false && !!config?.Domain) {\n // we need to check if user is on correct subdomain (app.*),\n // so session cookies are correctly set if subdomains are enabled\n window.location.assign(`${protocol}//${LOGIN_PAGE_SUBDOMAIN}.${config.Domain}${pathname}${search}`);\n // do not continue with loading session, as we are redirecting\n return;\n }\n }\n\n dispatch(loadSession());\n};\n\n// Thunk action to load session data from the API\nexport const loadSession = (): AppThunk => async dispatch => {\n try {\n dispatch(loadSessionStart());\n\n const response = await fetch(SESSION_URL);\n if (response.ok) {\n const sessionData: ISessionData = await response.json();\n dispatch(setSessionData(sessionData));\n } else {\n dispatch(setSessionData(null));\n }\n\n } catch (error) {\n dispatch(loadSessionFailure(error.message));\n }\n};\n\nexport const loadPostLoginVerifications = (): AppThunk => async (dispatch) => {\n try {\n const postLoginVerifications = await getPostLoginActions();\n dispatch(setPostLoginActions(postLoginVerifications));\n } catch (e) {\n // fail silently, doesn't matter all that much if we skip post login actions\n }\n};\n\nexport const login = (email: string, password: string): AppThunk => async dispatch => {\n try {\n dispatch(loadSessionStart());\n\n const response = await fetch(LOGIN_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n Email: email,\n Password: password\n })\n });\n\n // todo use context if login and its related routes\n // will get moved to App.tsx, so that the ContextProvider is available\n // otherwise, keep using LocalSettings instead and remove this comment\n // this.context.setAppMode(AppMode.OrganizationSettings);\n LocalSettings.set(\"App\", { isFirstRenderAfterLogin: true });\n\n if (response.ok) {\n // start the animation BEFORE setting session data, so it prevent redirect...\n const step = getBikerAnimationMaxStep();\n dispatch(setAnimation({ type: AnimationType.BikerWithSign, step, status: AnimationPlayStatus.Playing }));\n\n // clear DashboardManager cache\n DashboardManager.clear();\n\n fireGTMEvent(\"login\", { event_category: \"login\", event_label: \"login\" });\n\n const body = await response.json();\n\n dispatch(setSessionData({ ...body }));\n } else {\n dispatch(loadSessionFailure(i18next.t(\"Login:Login.WrongCredentials\")));\n }\n } catch (e) {\n dispatch(loadSessionFailure(e.message));\n }\n};\n\n// Selector to get the session data from the state\nexport const selectSessionData = (state: TRootLoginState): ISessionData => state.session.sessionData;\nexport const selectSessionRequestStatus = (state: TRootLoginState): RequestStatus => state.session.status;\nexport const selectSessionError = (state: TRootLoginState): { message: string } => getError(state.session.error);\nexport const selectIsSessionLoaded = (state: TRootLoginState): boolean => state.session.sessionData !== undefined;\nexport const selectFirstSessionLoaded = (state: TRootLoginState): boolean => state.session.sessionLoaded;\n\n","import { Action, configureStore, ThunkAction } from '@reduxjs/toolkit';\nimport sessionReducer from \"./sessionSlice\";\nimport invitationReducer from \"./invitationSlice\";\nimport deviceReducer from \"./deviceSlice\";\nimport loginReducer from \"./loginSlice\";\n\nconst store = configureStore({\n reducer: {\n session: sessionReducer,\n device: deviceReducer,\n invitation: invitationReducer,\n login: loginReducer\n }\n});\n\nexport type TRootLoginState = ReturnType;\nexport type AppThunk = ThunkAction<\n ReturnType,\n TRootLoginState,\n unknown,\n Action\n>;\nexport type TLoginDispatch = typeof store.dispatch;\n\nexport default store;\n","import { ICustomBreadCrumb, THistoryBack } from \"@components/breadCrumb\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { getSelectDisplayValue, isSelectBasedComponent } from \"@components/inputs/select/SelectAPI\";\nimport { AuditTrailFieldType, IFieldDef, isRequired, isVisible } from \"@components/smart/FieldInfo\";\nimport {\n ISmartFieldBlur,\n ISmartFieldChange,\n ISmartFieldTempDataActionArgs\n} from \"@components/smart/smartField/SmartField\";\nimport {\n getBoundValue,\n getIndexedPathFromBindingContext,\n getUniqueContextsSuffixAsString,\n ICachedFieldState,\n ISetBoundValue,\n isNavigationForUpdate,\n IStorageSmartFieldValues,\n setBoundValue,\n updateDataOnChange\n} from \"@odata/Data.utils\";\nimport { getFieldInfo, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { OData } from \"@odata/OData\";\nimport { formatValue } from \"@odata/OData.utils\";\nimport { forEachKey, isDefined, isNotDefined, isObjectEmpty, uuidv4 } from \"@utils/general\";\nimport Emittery from \"emittery\";\nimport * as History from \"history\";\nimport { TFunction } from \"i18next\";\nimport { cloneDeep, debounce } from \"lodash\";\nimport React from \"react\";\nimport ReactRouter from \"react-router-dom\";\nimport { DefaultTheme } from \"styled-components/macro\";\nimport { ObjectSchema } from \"yup\";\n\nimport { IProps as IIconProps } from \"../components/icon\";\nimport { ContextEvents, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { Status, ValidationErrorType } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport BindingContext, { areBindingContextsDifferent, IEntity } from \"../odata/BindingContext\";\nimport { IFormDef } from \"../views/formView/Form\";\nimport { IContextInitArgs } from \"../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\nimport { Validator } from \"./Validator\";\nimport { IValidationError } from \"./Validator.types\";\n\nexport enum ModelType {\n BaseModel = \"basemodel\",\n Form = \"form\",\n Table = \"table\"\n}\n\nexport interface IModel {\n id: string;\n context?: IAppContext;\n bindingContext?: BindingContext;\n theme?: DefaultTheme;\n definition?: IFormDef | ISplitPageTableDef;\n oData?: OData;\n t?: TFunction;\n history?: History.History;\n match?: ReactRouter.match;\n refresh?: (refreshPage?: boolean) => void;\n\n // state received via history state\n initialHistoryState?: IHistoryState;\n}\n\nexport enum AuditTrailLineComparison {\n Default = \"Default\",\n AdditionalRow = \"AdditionalRow\",\n MissingRow = \"MissingRow\"\n}\n\nexport interface IAuditTrailLineData {\n order?: number;\n orderChanged?: boolean;\n type: AuditTrailLineComparison;\n}\n\nexport interface IAuditTrailData {\n lineData?: IAuditTrailLineData;\n type?: AuditTrailFieldType;\n // hashtable with paths of not matching items in multifileds(checkbox group,...)\n missmatchedPaths?: Record;\n}\n\nexport interface IValidationResult {\n status: Status;\n message: string;\n icon?: React.ComponentType;\n}\n\nexport interface IAdditionalData {\n error?: IValidationError;\n dirty?: boolean;\n parsedValue?: TValue;\n selectedItems?: ISelectItem[];\n auditTrailData?: IAuditTrailData;\n isBusy?: boolean;\n validationResult?: IValidationResult;\n currentFieldState?: ICachedFieldState;\n}\n\nexport type TMergedDefinition = Record;\n\nexport interface IMergedFieldDef {\n groupId?: string;\n path: string;\n useForValidation?: boolean;\n useForLoad?: boolean;\n /** Required fields that are not present in current variant are still add to mergedDefinition,\n * so that their default values are set or their values are fetched during loading.\n * This property is stored to easily find out if the fields is part of the variant without having to run complicated search through the whole variant definition. */\n isNotInVariant?: boolean;\n fieldDef?: IFieldDef;\n}\n\ninterface ITemporalData {\n value?: TValue;\n additionalFieldData?: IAdditionalData;\n // not the same as additionalFieldData\n // additionalData can be part of ISmartFieldChange event\n // we need to store them, so that we can send it to onChange handler when temporal data are confirmed\n additionalData?: TRecordAny;\n // Original event the temporal data was set - we need it during confirmation, when we call/simulate handleChange\n // which should be exactly same call as it would be called from the component, e.g. including selectedItems\n // in multiselect change event, etc...\n originalEvent?: ISmartFieldChange;\n}\n\nexport enum FieldAdditionalData {\n Error = \"error\",\n ParsedValue = \"parsedValue\",\n CurrentValue = \"currentValue\",\n AuditTrailData = \"auditTrailData\"\n}\n\nexport interface IGetCurrentValue {\n info?: IFieldInfo;\n processMultiValue?: boolean;\n}\n\ninterface IGetValueOptions {\n useDirectValue?: boolean;\n skipTemporaryValue?: boolean;\n dataStore?: TRecordAny;\n}\n\nexport interface IModelData {\n uuid?: string;\n // main data object\n entity?: Partial;\n fieldsInfo?: Record;\n // definition?: IDefinition;\n bindingContext?: BindingContext;\n // data related to fields (everything but the value it self which is in 'entity' object)\n // stored by bindingContext path\n additionalFieldData?: Record;\n // for arbitrary use from the view controllers\n // basically anything that doesn't belong somewhere else in 'data' belongs here\n customData?: C;\n\n temporalData?: Record;\n}\n\nexport interface IActiveField {\n reload?: boolean;\n revalidate?: boolean;\n}\n\nexport interface IAfterSaveEventArgs {\n isNew: boolean;\n bindingContext: BindingContext;\n}\n\nexport enum ModelEvent {\n AfterLoad = \"after-load\",\n AfterSave = \"after-save\",\n FilterChanged = \"filter-changed\",\n FiltersCleared = \"filters-cleared\",\n GroupStatusChanged = \"group-status-changed\",\n LineItemsAction = \"line-items-action\",\n RecalculateScrollbar = \"recalculate-scrollbar\",\n RecalculateFastEntryList = \"recalculate-fast-entry-list\",\n FilesUploaded = \"files-uploaded\",\n CustomFileAction = \"custom-file-action\",\n RequestCreateDraft = \"request-create-draft\",\n VariantChanged = \"variant-changed\"\n}\n\ntype TRefComponent = React.Component<{ bindingContext?: BindingContext } & any>\n\nexport interface IHistoryState {\n back?: THistoryBack;\n // could be used instead of filters in url\n // drillDownFilters?: TRecordValue;\n // for drilldown and intent navigation, we want to display full breadcrumbs history\n breadCrumbs?: ICustomBreadCrumb[];\n // e.g. \"created\" in ChartOfAccountsTemplates\n customData?: any;\n}\n\n// use ModelData generic to enforce correct types on \"store\" method\n// TODO better default value for C generic, object doesn't catch setCustomData calls on storage without generic set\nexport class Model {\n id: string;\n\n oData: OData;\n history: History.History;\n match: ReactRouter.match;\n context: IAppContext;\n theme: DefaultTheme;\n t: TFunction;\n\n refreshSync: (refreshPage?: boolean) => void;\n // debounced\n refresh: (refreshPage?: boolean) => void;\n refs: Record;\n customRefs: Record;\n activeFields: Record;\n data: IModelData = {};\n loading: boolean;\n afterLoaded: boolean;\n type: ModelType = ModelType.BaseModel;\n emitter = new Emittery();\n\n\n _validationSchema: ObjectSchema;\n _fullRefreshWhenUpdate = false;\n\n // state received via history state\n initialHistoryState: IHistoryState;\n\n constructor(args: IModel) {\n this.id = args.id;\n this.context = args.context;\n this.theme = args.theme;\n this.oData = args.oData;\n this.history = args.history;\n this.match = args.match;\n this.t = args.t;\n this.refreshSync = (refreshPage?: boolean) => {\n this.clearActiveFieldsOnRefresh();\n args.refresh?.(refreshPage);\n };\n this.refresh = debounce(this.refreshSync);\n\n this.refs = {};\n // refs fires only when trigger additional task is true\n this.customRefs = {};\n this.activeFields = {};\n this.data = {\n entity: {},\n bindingContext: args?.bindingContext,\n fieldsInfo: {},\n temporalData: {},\n additionalFieldData: {}\n };\n\n this.initialHistoryState = args.initialHistoryState;\n\n // company can be changed without unmounting rest of the page\n // => rerender all models that can rely on company data\n if (this.context) {\n this.context.eventEmitter?.on(ContextEvents.CompanyUpdated, this.handleCompanyUpdate);\n }\n\n this.getInfo = this.getInfo.bind(this);\n }\n\n async onAfterLoad(): Promise {\n await this.emitter.emit(ModelEvent.AfterLoad);\n }\n\n handleCompanyUpdate = () => {\n this.refresh();\n };\n\n getAdditionalLoadPromise(args: IContextInitArgs): (Promise | void)[] {\n return undefined;\n }\n\n // todo improve interfaces and generics,\n // remove this function if we manage to use correct generics in functions like updateDataOnChange\n // this is just hack to make TS work without them\n getThis = (): Model => {\n return this as unknown as Model;\n };\n\n getEntity>(): Entity {\n return this.data.entity as Entity;\n }\n\n /** Stores given given object into the models data object */\n store = (newData: (Pick | ModelData | null)): void => {\n this.data = {\n ...this.data,\n ...newData\n };\n };\n\n /** Stores given value into the 'name' property of the models data object */\n storeSingleValue = (name: keyof IModelData, value: any) => {\n this.storeSingleValueWithoutCheck(name, value);\n };\n\n storeSingleValueWithoutCheck = (name: string, value: any): void => {\n this.data = {\n ...this.data,\n [name]: value\n };\n };\n\n // TODO store vs set\n\n /** Sets given object into the customData object */\n setCustomData = (customData: Pick | C): void => {\n this.data.customData = {\n ...this.data?.customData,\n ...customData\n };\n };\n\n getCustomData>(): CustomData {\n return this.data.customData as CustomData ?? {} as unknown as CustomData;\n }\n\n // overridden in extended classes\n get isDisabled(): boolean {\n return false;\n }\n\n setDirty = (bc: BindingContext): void => {\n this.setAdditionalFieldData(bc, \"dirty\", true, false);\n };\n\n isDirty = (bc: BindingContext = this.data.bindingContext): boolean => {\n return Boolean(this.getAdditionalFieldData(bc, \"dirty\"));\n };\n\n isDirtyPath = (path: string = null): boolean => {\n let bc = this.data.bindingContext;\n if (path) {\n bc = bc.navigate(path);\n }\n return this.isDirty(bc);\n };\n\n setAdditionalFieldData = (bc: BindingContext, where: K, newValue: IAdditionalData[K], addToActiveField = true): void => {\n if (addToActiveField) {\n this.addActiveField(bc);\n }\n\n const path = bc.getFullPath();\n const field = this.data.additionalFieldData[path];\n\n if (!field) {\n this.data.additionalFieldData[path] = {\n [where]: newValue\n };\n } else {\n field[where] = newValue;\n }\n };\n\n /**\n * Completely remove all additional field data for given bc\n * if the bc has key (points to entity), removes additional data for all of its properties\n */\n clearAdditionalFieldData = (bc: BindingContext): void => {\n const fullPath = bc.getFullPath();\n\n if (!bc.getKey()) {\n this.clearAdditionalFieldDataByPath(fullPath);\n } else { // remove errors on all properties of given entity\n this.clearCollectionAdditionalFieldDataByPath(fullPath);\n }\n };\n\n clearAdditionalFieldDataByPath = (path: string): void => {\n delete this.data.additionalFieldData[path];\n };\n\n clearCollectionAdditionalFieldDataByPath = (path: string): void => {\n for (const fullPath of Object.keys(this.data.additionalFieldData)) {\n if (fullPath.startsWith(path)) {\n delete this.data.additionalFieldData[fullPath];\n }\n }\n };\n\n getAdditionalFieldData = (bc: BindingContext, name: K): IAdditionalData[K] => {\n const field = this.data.additionalFieldData[bc.getFullPath()];\n if (field) {\n return field[name];\n }\n\n return null;\n };\n\n getAdditionalFieldDataByPath = (path: string, name: keyof IAdditionalData): IAdditionalData[keyof IAdditionalData] => {\n return this.getAdditionalFieldData(this.data.bindingContext.navigate(path), name);\n };\n\n getError = (bc: BindingContext): IValidationError => {\n return this.data.additionalFieldData?.[bc.getFullPath()]?.error;\n };\n\n getErrorByPath = (path: string): IValidationError => {\n return this.getError(this.data.bindingContext.navigate(path));\n };\n\n setError = (bc: BindingContext, newValue: IValidationError): void => {\n this.setAdditionalFieldData(bc, \"error\", newValue);\n };\n\n setErrorByPath = (path: string, newValue: IValidationError): void => {\n this.setError(this.data.bindingContext.navigate(path), newValue);\n };\n\n hasError = (bc: BindingContext): boolean => {\n return !!this.data.additionalFieldData?.[bc.getFullPath()]?.error;\n };\n\n hasErrorByPath = (path: string): boolean => {\n return this.hasError(this.data.bindingContext.navigate(path));\n };\n\n isAnyError = (): boolean => {\n return Object.values(this.data.additionalFieldData).some(fieldData => fieldData.error);\n };\n\n clearError = (bc: BindingContext): void => {\n this.setAdditionalFieldData(bc, \"error\", null);\n };\n\n clearErrorByPath = (path: string): void => {\n return this.clearError(this.data.bindingContext.navigate(path));\n };\n\n clearAllErrors = (removeFieldErrors?: boolean): boolean => {\n let allCleared = true;\n\n for (const data of Object.values(this.data.additionalFieldData)) {\n // skip ValidationErrorType.Field\n // those errors has to be removed manually, one by one\n if (data.error?.errorType !== ValidationErrorType.Field || removeFieldErrors) {\n delete data.error;\n } else {\n allCleared = false;\n }\n }\n\n return allCleared;\n };\n\n setTemporalError = (bc: BindingContext, error: IValidationError): void => {\n const data = this.getTemporalData(bc) ?? {};\n\n data.additionalFieldData = {\n ...data.additionalFieldData,\n error\n };\n\n this.addActiveField(bc);\n };\n\n getTemporalError = (bc: BindingContext): IValidationError => {\n return this.getTemporalData(bc)?.additionalFieldData?.error;\n };\n\n clearTemporalError = (bc: BindingContext): void => {\n const data = this.getTemporalData(bc);\n\n data.additionalFieldData = {\n ...data.additionalFieldData,\n error: null\n };\n\n this.addActiveField(bc);\n };\n\n confirmFields = (bcs: BindingContext[] = [], fnChange: (args: ISmartFieldChange) => void = this.handleChange.bind(this)): Promise => {\n return Promise.all(bcs.map(bc => this.handleConfirm({\n bindingContext: bc\n }, fnChange)))\n .then(confirmations => !confirmations.includes(false));\n };\n\n handleConfirm = async (args: ISmartFieldTempDataActionArgs, fnChange: (args: ISmartFieldChange) => void = this.handleChange.bind(this)): Promise => {\n\n await this.validateField(args.bindingContext, { isConfirm: true });\n\n if (this.getTemporalError(args.bindingContext) || this.getError(args.bindingContext)) {\n // In case the temporal data are not valid, we don't confirm the data, keep it as temporal\n // so user can return to previous valid state - e.g. textarea with error renders always\n // in editable state, @see DEV-6022, DEV-6021\n return false;\n }\n\n const tempData = this.getTemporalData(args.bindingContext);\n\n if (tempData) {\n // call fnChange with original event, which comes to handleTemporalChange, however...\n // ...sometimes originalEvent might not be set, but we need to copy the data to model anyway, e.g.\n // when field with default value was not touched by the user. Just copy the simple value\n fnChange(tempData.originalEvent ? tempData.originalEvent : {\n bindingContext: args.bindingContext,\n value: tempData.value,\n additionalData: tempData.additionalData\n });\n\n this.clearError(args.bindingContext);\n }\n\n await this.handleCancel(args);\n return true;\n };\n\n cancelFields = (bcs: BindingContext[] = []): void => {\n for (const bc of bcs) {\n this.handleCancel({\n bindingContext: bc\n });\n }\n };\n\n handleCancel = async (args: ISmartFieldTempDataActionArgs): Promise => {\n if (this.data.temporalData) {\n delete this.data.temporalData[args.bindingContext.getFullPath()];\n this.clearError(args.bindingContext);\n }\n\n this.addActiveField(args.bindingContext);\n };\n\n handleChange(e: ISmartFieldChange): void {\n this.addActiveField(e.bindingContext);\n this.addActiveFieldsFromAffectedFields(e.bindingContext);\n\n if (areBindingContextsDifferent(e.bindingContext.getRootParent(), this.data.bindingContext.getRootParent())) {\n // throw away change events with wrong path - e.g. form has old binding context, after selecting another\n // document with opened form, as we don't use busy indicator\n return;\n }\n\n e.previousValue = this.getValue(e.bindingContext);\n\n const updatedData = updateDataOnChange({\n storage: this.getThis(),\n bindingContext: e.bindingContext,\n data: this.data.entity,\n newValue: e.value,\n currentValue: e.currentValue\n });\n\n this.store({\n entity: updatedData\n });\n }\n\n blur(args: ISmartFieldBlur): void {\n this.addActiveFieldsFromAffectedFields(args.bindingContext);\n }\n\n createValidationSchema = (columnNames: string[], useCollections = true): void => {\n this._validationSchema = Validator.createValidationSchema({\n columnNames,\n context: this.context,\n storage: this.getThis(),\n useCollections\n });\n };\n\n _validationProps = (fieldBc: BindingContext, data: IModelData = this.data): {\n path: string;\n entity: IEntity;\n isTemporal: boolean\n } => {\n let path = \"\";\n\n // if (fieldBc.isCollection()) {\n // don't validate fields that points to collection (e.g. labels on document)\n // those should be multi selects, the value is provided by us and it is just id\n // todo: possible remove this at all. If there is some issue with validation of some collections,\n // solve it in different way or by some flag in fieldInfo. If uncommented,\n // validation of \"allowedCompanies\" in ItemTemplatesFormView.tsx won't work\n // return null;\n // }\n\n // this may be confusing -\n // for select, we test values in keyProperty name binding context\n // but we store the error in binding context of navigation property (if there is any)\n // note: not for collections as collectionName.Id is not valid path...\n const validationBc = fieldBc.isCollection() ? fieldBc : fieldBc.getNavigationBindingContext();\n\n if (validationBc.isAnyPartCollection()) {\n path = getIndexedPathFromBindingContext(validationBc, data.entity, data.bindingContext);\n } else {\n path = getUniqueContextsSuffixAsString(validationBc, data.bindingContext, \".\");\n }\n\n const temporalData = this.getTemporalData(fieldBc);\n let { entity } = data;\n if (temporalData) {\n // in case temporal data are set, we validate them instead entity data\n entity = cloneDeep(entity);\n setBoundValue({\n data: entity,\n bindingContext: validationBc,\n dataBindingContext: data.bindingContext,\n newValue: temporalData.value,\n preventCloning: true\n });\n }\n\n return { path, entity, isTemporal: !!temporalData };\n };\n\n _processError = (err: Partial & {\n type: ValidationErrorType\n }, fieldBc: BindingContext, isTemporal: boolean): IValidationError => {\n const errorData: IValidationError = err && {\n params: err.params,\n errorType: err.type,\n message: err.message\n };\n\n if (isTemporal) {\n // if validation is triggered on empty temporal field, actually the original field is validated.\n // when temporal field is changed, temporal data are validated, but there might be still the original error\n // -> clear it.\n this.clearError(fieldBc);\n this.setTemporalError(fieldBc, errorData);\n } else {\n this.setError(fieldBc, errorData);\n }\n\n return errorData;\n };\n\n getFieldValidationErrorSync(fieldBc: BindingContext, context: TRecordAny = {}, data: IModelData = this.data): {\n err: any;\n isTemporal: boolean\n } {\n const { path, entity, isTemporal } = this._validationProps(fieldBc, data) || {};\n let err = null;\n\n if (!path) {\n return null;\n }\n\n try {\n if (Validator.schemaHasPath(this._validationSchema, path)) {\n this._validationSchema.validateSyncAt(path, entity, { context });\n }\n } catch (e) {\n err = e;\n }\n\n return err ? { err, isTemporal } : null;\n }\n\n validateFieldSync = (fieldBc: BindingContext, context: TRecordAny = {}, data: IModelData = this.data): IValidationError => {\n const { err, isTemporal } = this.getFieldValidationErrorSync(fieldBc, context, data) ?? {};\n\n return this._processError(err, fieldBc, isTemporal);\n };\n\n validateField = async (fieldBc: BindingContext, context: TRecordAny = {}, data: IModelData = this.data): Promise => {\n const { path, entity, isTemporal } = this._validationProps(fieldBc, data) || {};\n let err = null;\n\n if (!path) {\n return null;\n }\n\n try {\n if (Validator.schemaHasPath(this._validationSchema, path)) {\n await this._validationSchema.validateAt(path, entity, { context });\n }\n } catch (e) {\n err = e;\n }\n\n return this._processError(err, fieldBc, isTemporal);\n };\n\n validateFields = (fields: BindingContext[]): Promise => {\n return Promise.all(fields.map(field => this.validateField(field)));\n };\n\n /** Sets values inside the data.entity object, adds bindingContext into active fields */\n setValue = (bindingContext: BindingContext, value: any, refreshBindingContext?: BindingContext, skipTempData?: boolean): void => {\n const info = this.getInfo(bindingContext);\n\n if (info?.isConfirmable && !skipTempData) {\n this.addActiveField(bindingContext);\n this.setTemporalData(bindingContext, {\n value: value\n });\n } else {\n const shouldNavigateBindingContext = isNavigationForUpdate(bindingContext, value);\n this.store({\n entity: this.setBoundValue({\n bindingContext: shouldNavigateBindingContext ? bindingContext.navigate(bindingContext.getKeyPropertyName()) : bindingContext,\n data: this.data.entity,\n newValue: value,\n preventCloning: true\n }, refreshBindingContext || bindingContext)\n });\n if (bindingContext.isNavigation() && bindingContext.isEnum()) {\n this.correctEnumValue(bindingContext, value);\n }\n }\n };\n\n // if target is enum, set also related value, e.g. target is \"Currency\" -> set also \"CurrencyCode\" property\n correctEnumValue = (bindingContext: BindingContext, value: TValue, data?: IEntity): void => {\n if (bindingContext.isEnum() && bindingContext.isNavigation() && !bindingContext.isCollection()) {\n const keyPropName = bindingContext.getKeyPropertyName();\n const path = bindingContext.getPath();\n const enumCodeBc = bindingContext.getParent().navigate(`${path}${keyPropName}`);\n let newValue = (value as IEntity)?.[keyPropName] ?? value;\n if (isObjectEmpty(value)) {\n newValue = null;\n }\n if (data) {\n setBoundValue({\n bindingContext: enumCodeBc,\n data, newValue,\n dataBindingContext: this.data.bindingContext,\n preventCloning: true\n });\n } else {\n this.clearAndSetValue(enumCodeBc, newValue, true);\n }\n }\n };\n\n /** Same as 'setValue' methods, but takes bindingContext from the data object */\n setValueByPath = (path: string, value: any, skipTempData?: boolean): void => {\n this.setValue(this.data.bindingContext.navigate(path), value, undefined, skipTempData);\n };\n\n /** Sets value for the given context.\n * AUTOMATICALLY clears both error and currentValue */\n clearAndSetValue = (bindingContext: BindingContext, newValue: any, skipTempData?: boolean) => {\n this.clearError(bindingContext);\n this.setValue(bindingContext, newValue, null, skipTempData);\n };\n\n clearAndSetValueByPath = (path: string, newValue: any, skipTempData?: boolean): void => {\n this.clearAndSetValue(this.data.bindingContext.navigate(path), newValue, skipTempData);\n };\n\n clearValue = (bindingContext: BindingContext, keepAdditionalData = false, skipTempData?: boolean): void => {\n // set null instead of undefined,\n // - null means that the empty value will be saved to BE\n this.clearAndSetValue(bindingContext, null, skipTempData);\n if (!keepAdditionalData) {\n this.clearAdditionalFieldData(bindingContext);\n }\n };\n\n clearValueByPath = (path: string, keepAdditionalData = false, skipTempData?: boolean): void => {\n this.clearValue(this.data.bindingContext.navigate(path), keepAdditionalData, skipTempData);\n };\n\n getValue = (bindingContext: BindingContext, options?: IGetValueOptions) => {\n const tempData = this.getTemporalData(bindingContext);\n if (tempData && !options?.skipTemporaryValue) {\n return tempData.value;\n }\n\n // todo: for select there may be usefull to get directly id\n const bc = options?.useDirectValue !== false ? bindingContext : bindingContext.getNavigationBindingContext();\n\n return getBoundValue({\n bindingContext: bc,\n data: options?.dataStore ?? this.data.entity,\n dataBindingContext: this.data.bindingContext\n });\n };\n\n getValueByPath = (path: string, options?: IGetValueOptions) => {\n return this.getValue(this.data.bindingContext.navigate(path), options);\n };\n\n\n isValidPath = (path: string): boolean => {\n return this.data.bindingContext.isValidNavigation(path);\n };\n\n getDisplayValue = (info: IFieldInfo): string => {\n const entity = this.data.entity;\n let value;\n\n if (isSelectBasedComponent(info.type)) {\n value = getSelectDisplayValue({\n storage: this.getThis(),\n info,\n fieldBindingContext: info.bindingContext,\n processMultiValue: true\n });\n }\n // if value is not retrieved from getSelectDisplayValue, fallback to getValue method with formatting\n // (e.g. BP Name with SingleBusinessPartnerSelect component)\n return value ?? formatValue(this.getValue(info.bindingContext, { useDirectValue: false }), info, {\n entity,\n readonly: true,\n storage: this.getThis()\n });\n };\n\n getFieldValues(bc: BindingContext, info?: IFieldInfo): IStorageSmartFieldValues {\n const idBindingContext = bc.isNavigation() && !bc.isCollection() ?\n bc.navigate(bc.getKeyPropertyName()) : bc;\n\n info = info || this.getInfo(bc);\n\n const isConfirmable = info?.isConfirmable;\n // first try temporal Data\n const tempData = isConfirmable && this.getTemporalData(bc);\n let value;\n if (tempData) {\n value = tempData.value;\n } else {\n value = getBoundValue({\n bindingContext: idBindingContext,\n data: this.data.entity,\n dataBindingContext: this.data.bindingContext\n }) as TValue;\n }\n\n const additionalFieldData = tempData?.additionalFieldData ?? this.data.additionalFieldData[bc.getFullPath()];\n const args = {\n info,\n bindingContext: bc,\n storage: this.getThis(),\n context: this.context\n };\n\n return {\n additionalFieldData,\n value,\n isVisible: isVisible(args),\n isRequired: isRequired(args)\n };\n }\n\n\n getTemporalData = (bc: BindingContext): ITemporalData => {\n return this.data.temporalData?.[bc.getFullPath()];\n };\n\n setTemporalData = (bc: BindingContext, data: ITemporalData): void => {\n if (!this.data.temporalData) {\n this.data.temporalData = {};\n }\n this.data.temporalData[bc.getFullPath()] = data;\n };\n\n async loadInfo(column: IMergedFieldDef, bindingContext: BindingContext): Promise {\n // our goal is to make def immutable, so it mean immutable info too?\n // so far we store items& additionalitems, which we try to move elsewhere in the future\n // => deepclone of fieldSettings to minimum load\n if (column?.fieldDef?.fieldSettings) {\n column.fieldDef.fieldSettings = cloneDeep(column?.fieldDef?.fieldSettings);\n }\n\n return await getFieldInfo({\n bindingContext: bindingContext,\n context: this.context,\n fieldDef: {\n ...column.fieldDef\n }\n });\n }\n\n _addRef = (collection: Record, ref: TRefComponent, bc?: BindingContext): void => {\n if (ref) {\n const path = this.getRefPath(bc || ref.props.bindingContext);\n\n if (!collection[path]) {\n collection[path] = [ref];\n } else {\n const has = collection[path].find((item) => item === ref);\n if (!has) {\n collection[path].push(ref);\n }\n }\n }\n };\n\n /**\n * Removes ref from collection. If BindingContext is not defined, removes the ref from all paths.\n * @param collection\n * @param ref\n * @param bc\n */\n _removeRef = (collection: Record, ref: TRefComponent, bc?: BindingContext): void => {\n function _remove(refArr: TRefComponent[], ref: TRefComponent) {\n const idx = refArr?.indexOf(ref);\n if (isDefined(idx) && idx !== -1) {\n refArr.splice(idx, 1);\n }\n }\n\n if (ref) {\n if (bc) {\n const path = this.getRefPath(bc);\n _remove(collection[path], ref);\n } else {\n Object.keys(collection).forEach(key => {\n _remove(collection[key], ref);\n });\n }\n }\n };\n\n removeRef = (ref: TRefComponent, bc?: BindingContext): void => {\n this._removeRef(this.refs, ref, bc);\n };\n\n addRef = (ref: TRefComponent, bc?: BindingContext): void => {\n this._addRef(this.refs, ref, bc);\n };\n\n addCustomRef = (ref: TRefComponent, bc?: BindingContext): void => {\n if (!ref) {\n return;\n }\n\n const path = this.getRefPath(bc || ref.props.bindingContext);\n // for complex ref we support only one ref per BC, which should be sufficient and makes support of different instances easier\n // in case of trouble we need to support better mechanism of clearing complex ref when invalidating or changing form (of the same entity set)\n this.customRefs[path] = [ref];\n };\n\n clearActiveFieldsOnRefresh = (): void => {\n const activeFieldsToRevalidate: Record = {};\n forEachKey(this.activeFields, (key) => {\n if (this.activeFields[key].revalidate) {\n activeFieldsToRevalidate[key] = this.activeFields[key];\n }\n });\n\n this.activeFields = {\n ...activeFieldsToRevalidate\n };\n };\n\n addActiveFieldsFromAffectedFields = (bc: BindingContext): void => {\n if (bc) {\n const info = this.getInfo(bc);\n if (info?.affectedFields) {\n for (const field of info.affectedFields) {\n const fieldBc = field.navigateFromParent ? bc.getParent().navigate(field.id) : this.data.bindingContext.navigate(field.id);\n // TODO: this is primary to refresh all \"Items\" so navigation from parent doesn't make sense but may be useful in the future ?\n if (!field.navigateFromParent) {\n const collData = fieldBc.splitByCollectionPath();\n if (collData?.path) {\n // TODO: when getFull path is fixed for collection we can do more complex check\n // const path = collData.collectionBindingContext.removeKey().getFullPath(true);\n // const rootPath = this.data.bindingContext.removeKey().getFullPath(true);\n // const path = collData.collectionBindingContext.getFullPath(true);\n // const rootPath = this.data.bindingContext.getFullPath(true);\n // check that this is not the case of collection of \"entity set\" like ChartOfAccount -> Accounts\n // if (path.startsWith(rootPath) && path !== rootPath) {\n const path = collData.collectionBindingContext.getPath(true);\n const rootPath = this.data.bindingContext.getPath(true);\n // check that this is not the case of collection of \"entity set\" like ChartOfAccount -> Accounts\n if (path !== rootPath) {\n const collName = collData.collectionBindingContext.getPath();\n const entity = this.getValue(collData.collectionBindingContext);\n for (const element of this.data.bindingContext.iterateNavigation(collName, entity)) {\n const subFieldBc = element.bindingContext.navigate(collData.path);\n this.addActiveField(subFieldBc, {\n reload: field.reload,\n revalidate: field.revalidate\n });\n }\n continue;\n }\n }\n }\n\n this.addActiveField(fieldBc, {\n reload: field.reload,\n revalidate: field.revalidate\n });\n }\n }\n }\n };\n\n addActiveField = (bc: BindingContext, settings: IActiveField = {}): void => {\n const path = this.getRefPath(bc);\n this.activeFields[path] = settings;\n };\n\n setBoundValue = (args: ISetBoundValue, bc: BindingContext = args.bindingContext) => {\n this.addActiveField(bc);\n args.dataBindingContext = args.dataBindingContext || this.data.bindingContext;\n return setBoundValue(args);\n };\n\n getRefPath = (bc: BindingContext): string => {\n return bc.getNavigationPath(false, this.data.bindingContext);\n };\n\n forceRefreshOnUpdate = (): void => {\n this._fullRefreshWhenUpdate = true;\n };\n\n _shouldRefreshField = (path: string): boolean => {\n return true;\n };\n\n updateUuid = (): void => {\n this.storeSingleValue(\"uuid\", uuidv4());\n };\n\n refreshField(field: string, settings?: IActiveField, triggerAdditionalTasks?: boolean): void {\n this.refs[field]?.forEach((ref) => {\n // clearing items data when active field is changed\n if (settings?.reload && triggerAdditionalTasks) {\n const bc = this.data.bindingContext.navigate(field);\n const info = this.getInfo(bc);\n info && (info.fieldSettings.items = null);\n this.clearAndSetValue(bc, undefined);\n (ref as any).uuid = uuidv4();\n } else if (settings?.revalidate && triggerAdditionalTasks) {\n const bc = this.data.bindingContext.navigate(field);\n\n this.validateField(bc).then(() => {\n if (this._shouldRefreshField(field)) {\n ref.forceUpdate();\n }\n });\n }\n\n if (this._shouldRefreshField(field)) {\n ref.forceUpdate();\n }\n\n if (!isObjectEmpty(this.activeFields)) {\n delete this.activeFields[field];\n }\n });\n\n // either not select triggerAdditionalTasks is not defined or SELECT field change (not just typing)\n if (isNotDefined(triggerAdditionalTasks) || triggerAdditionalTasks) {\n this.customRefs[field]?.forEach((ref: any) => ref.forceUpdate());\n }\n }\n\n refreshFieldsSync(triggerAdditionalTasks?: boolean): void {\n if (this._fullRefreshWhenUpdate) {\n this.refresh();\n this._fullRefreshWhenUpdate = false;\n return;\n }\n\n const activeFields = { ...this.activeFields };\n\n for (const [field, settings] of Object.entries(activeFields)) {\n this.refreshField(field, settings, triggerAdditionalTasks);\n }\n }\n\n refreshFieldsDebounced = debounce((triggerAdditionalTasks?: boolean): void => {\n this.refreshFieldsSync(triggerAdditionalTasks);\n }, 0, { trailing: true, leading: true });\n\n refreshFields(triggerAdditionalTasks?: boolean, debounce?: boolean): void {\n if (!debounce) {\n this.refreshFieldsSync(triggerAdditionalTasks);\n } else {\n this.refreshFieldsDebounced(triggerAdditionalTasks);\n }\n }\n\n getInfo(bc: BindingContext): IFieldInfo {\n if (bc.isinSecondLevelCollectionWithKey()) {\n const path = bc.getFullPath(false);\n const info = this.data.fieldsInfo[path];\n if (!info) {\n const parentInfo = this.data.fieldsInfo[bc.getFullPath(true)];\n if (parentInfo) {\n const { bindingContext, ...toClone } = parentInfo;\n const newInfo: IFieldInfo = {\n ...cloneDeep(toClone),\n bindingContext: bc\n };\n\n this.data.fieldsInfo[path] = newInfo;\n\n return newInfo;\n }\n }\n\n return info;\n }\n // we use paths without keys by default, but factory filters has path with keys as there are more\n // filters generated from one definition -> use fallback for them (e.g. LabelHierarchies)\n return this.data.fieldsInfo[bc.getFullPath(true)] ?? this.data.fieldsInfo[bc.getFullPath(false)];\n }\n\n clearInfo = (bc: BindingContext): void => {\n const fullPath = bc.getFullPath();\n\n if (!bc.getKey()) {\n delete this.data.fieldsInfo[fullPath];\n } else { // remove errors on all properties of given entity\n this.clearCollectionInfoByPath(fullPath);\n }\n };\n\n clearCollectionInfoByPath = (path: string): void => {\n for (const fullPath of Object.keys(this.data.fieldsInfo)) {\n if (fullPath.startsWith(path)) {\n delete this.data.fieldsInfo[fullPath];\n }\n }\n };\n}","import { IVariant, IVariants, loadVariants, Variant, VariantType } from \"@components/variantSelector/VariantOdata\";\nimport { IModelData, Model } from \"./Model\";\nimport LocalSettings, { ILocalSettings } from \"../utils/LocalSettings\";\nimport BindingContext, { IEntity } from \"../odata/BindingContext\";\nimport { TRecordAny } from \"../global.types\";\nimport { getCompanyAccountingCode, isOnOrganizationLevel, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { VatStatusCode } from \"@odata/GeneratedEnums\";\n\n\nexport interface IStorageModelData extends IModelData {\n variants?: IVariants;\n}\n\nexport abstract class StorageModel = IStorageModelData, C extends TRecordAny = object> extends Model {\n _cachedVariant: IVariant;\n\n LOCAL_STORAGE_VARIANT_NAME = \"\";\n\n data: IStorageModelData;\n\n abstract setLocalStorageVariant(variant: IVariant): void;\n\n abstract getLocalStorageVariant(): IVariant;\n\n abstract getVariant(): IVariant;\n\n get isReadOnly(): boolean {\n return false;\n }\n\n get isDisabled(): boolean {\n return false;\n }\n\n async changeVariant(variant: Variant): Promise {\n this.clearLocalStorageVariant();\n this.data.variants.currentVariant = variant;\n }\n\n clearLocalStorageVariant(): void {\n this._cachedVariant = null;\n LocalSettings.remove(this.id, this.LOCAL_STORAGE_VARIANT_NAME as keyof ILocalSettings);\n }\n\n async loadVariants(variantType: VariantType, bindingContext: BindingContext): Promise {\n if (!this.data.variants) {\n const accounting = getCompanyAccountingCode(this.context);\n const vatStatus = isOnOrganizationLevel({ context: this.context }) ? null\n : isVatRegisteredCompany(this.context) ? VatStatusCode.VATRegistered : VatStatusCode.NotVATRegistered;\n // don't use direct assignment this.data.variants = await ....\n // as data can be recreated during waiting for loadVariants, direct assignment will not work\n const loadedVariants = await loadVariants(this.oData, {\n viewId: this.id,\n variantType,\n accounting, vatStatus\n }, bindingContext);\n this.data.variants = loadedVariants;\n this.data.variants.currentVariant = this.data.variants.defaultVariant;\n }\n\n return this.data.variants;\n }\n}","import { IAlertProps } from \"@components/alert/Alert\";\nimport { isComplexFilterArr } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getDrillDownFilters } from \"@components/drillDown/DrillDown.utils\";\nimport { isSelectBasedComponent } from \"@components/inputs/select/SelectAPI\";\nimport { getInfoValue, IFieldDef, isVisible } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { FilterBarGroup, IFilterDef, IFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IAffectedRow, TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { addIndexToDuplicateColumnId } from \"@components/smart/smartTable/SmartReportTable.utils\";\nimport {\n getValueHelpFilterGroupByProps,\n parseCompositeFilterId\n} from \"@components/smart/smartValueHelper/ValueHelper.utils\";\nimport { IRow, ISort } from \"@components/table\";\nimport { ITableVariant, IVariantColumn, Variant, VariantType } from \"@components/variantSelector/VariantOdata\";\nimport { getBoundValue, getUniqueContextsSuffix, setBoundValue } from \"@odata/Data.utils\";\nimport { getFieldTypeFromProperty, getValueTypeFromProperty, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { createFilterString, removeKeyFromPath } from \"@odata/OData.utils\";\nimport { setTableViewMode } from \"@utils/DraftUtils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { cloneDeep } from \"lodash\";\n\nimport SmartTableManager from \"../components/smart/smartTable/SmartTableManager\";\nimport { EMPTY_VALUE } from \"../constants\";\nimport { LogicOperator, TableAddingRowType, TableViewMode } from \"../enums\";\nimport { TRecordType, TRecordValue, TValue } from \"../global.types\";\nimport BindingContext, { createBindingContext, IEntity } from \"../odata/BindingContext\";\nimport LocalSettings from \"../utils/LocalSettings\";\nimport memoizeOne from \"../utils/memoizeOne\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport { TableButtonsAction } from \"../views/table/TableToolbar.utils\";\nimport { IChangedFilter, isDraftView, ISplitPageTableDef } from \"../views/table/TableView.utils\";\nimport { IMergedFieldDef, ModelEvent, ModelType } from \"./Model\";\nimport { IStorageModelData, StorageModel } from \"./StorageModel\";\n\ninterface ITableStorageInitArgs {\n definition: ISplitPageTableDef;\n rowBindingContext?: BindingContext;\n bindingContext?: BindingContext;\n preserveInfos?: boolean;\n predefinedFilters?: TRecordValue;\n useDrilldownFilters?: boolean;\n isInDialog?: boolean;\n}\n\n// name of interface and its keys prone to change\nexport interface IFilterQuery {\n // filter built from changed filters and draft filter if present\n query: string;\n // filter built from changed filters WITHOUT draft filter if present,\n // count values in secondary tabs are not related to draft and have to be filtered without it\n secondaryTabsValuesQuery?: string;\n // filter passed from definition\n // at the moment seems to be only used in SmartHierarchyTable for CoA\n defaultFilter?: string;\n isInvalid?: boolean;\n /** Filter queries for nested collection\n * e.g. main query is filtering on LabelHierarchies, collectionQueries contains filter for LabelHierarchies/Labels */\n collectionQueries?: TRecordType;\n}\n\nexport interface ITableStorageDefaultCustomData {\n customOnAfterLoadFn?: () => void;\n rootStorage?: FormStorage;\n isTableReady?: boolean;\n showPdfExport?: boolean;\n isSortingDialogOpen?: boolean;\n isCustomizationDialogOpen?: boolean;\n groupedRows?: IRow[];\n affectedRows?: IAffectedRow[];\n}\n\nexport interface ITableStorageData extends IStorageModelData {\n expandedGroupKey?: FilterBarGroup;\n visibleFilters?: Record;\n alert?: IAlertProps;\n definition?: ISplitPageTableDef;\n // current columns from \"columns\" definition merged with data from \"columnDefinition\"\n mergedColumns?: IFieldDef[];\n addingRow?: TableAddingRowType;\n filterQuery?: IFilterQuery;\n customSecondaryFilter?: string;\n predefinedFilters?: TRecordValue;\n rowBindingContext?: BindingContext;\n variant?: ITableVariant;\n tableAction?: TableButtonsAction | string;\n tableViewMode?: TableViewMode;\n}\n\nexport class TableStorage extends StorageModel, C> {\n data: ITableStorageData = {};\n loaded = false;\n type = ModelType.Table;\n\n LOCAL_STORAGE_VARIANT_NAME = \"tableVariant\";\n\n init = async (args: ITableStorageInitArgs): Promise => {\n this.loading = true;\n\n // those values need to be stored before loadFilters is called\n this.store({\n rowBindingContext: args.rowBindingContext,\n bindingContext: args.bindingContext,\n definition: args.definition,\n additionalFieldData: {},\n fieldsInfo: args.preserveInfos ? { ...this.data.fieldsInfo } : {},\n predefinedFilters: args.predefinedFilters ?? (args.useDrilldownFilters ? getDrillDownFilters() : null)\n });\n\n if (!args.isInDialog) {\n setTableViewMode(this.getThis() as TSmartODataTableStorage, true);\n }\n\n if (!args.definition.preventStoreVariant) {\n await this.loadVariants(VariantType.Table, args.bindingContext);\n }\n\n try {\n await this.loadStoredFilters();\n } catch (e) {\n /**\n * Binding context might not be defined, e.g. when company has no chartOfAccounts, then we should show\n * the page in empty state, however there is also no bindingContext in AuditTrailView where we want to\n * load filters, because they are all with just localContext...\n * -> if filterGroups are defined (filters were loaded correctly), fall silently\n **/\n if (!this.data.visibleFilters) {\n throw e;\n }\n }\n\n await this.updateCurrentTableColumns();\n this.onAfterLoad?.();\n this.createTableValidationSchema();\n\n this.loaded = true;\n this.loading = false;\n };\n\n /** Extend the returned interface with IFilterDef,\n * which is the actual interface used for table filters */\n getInfo(bc: BindingContext): (IFieldInfo & IFilterDef) {\n return super.getInfo(bc) as (IFieldInfo & IFilterDef);\n }\n\n getThis = (): TableStorage => {\n return this as unknown as TableStorage;\n };\n\n storeSingleValue = (name: keyof ITableStorageData, value: any): void => {\n this.storeSingleValueWithoutCheck(name, value);\n };\n\n async loadInfo(column: IMergedFieldDef, bindingContext: BindingContext): Promise {\n const info = await super.loadInfo(column, bindingContext);\n\n return {\n ...info,\n // by default, all filters are not required\n isRequired: column.fieldDef.isRequired ?? false\n };\n }\n\n get tableId(): string {\n return this.data.definition.id;\n }\n\n get tableAPI(): TableAPI {\n return SmartTableManager.getTable(this.tableId) as unknown as TableAPI;\n }\n\n get tableAction(): TableButtonsAction | string {\n return this.data.tableAction;\n }\n\n get isDisabled(): boolean {\n return false;\n }\n\n get predefinedFilters(): TRecordValue {\n return this.data.predefinedFilters;\n }\n\n /** For given group id, returns visibleFilters fieldInfos\n * Basically, this replaces IFilterGroupStatus which we used before to store each fieldInfo */\n getFilterGroupFieldInfos = (filterGroupId: FilterBarGroup): IFieldInfo[] => {\n return this.data.visibleFilters[filterGroupId].map((fullFilterName) => {\n return this.data.fieldsInfo[fullFilterName];\n });\n };\n\n loadStoredFilters = async (): Promise => {\n let customFieldsStored: string[];\n if (this.predefinedFilters) {\n const entitySetPath = this.data.bindingContext?.getFullPath(true);\n customFieldsStored = [...this.getDefaultFilters(), ...Object.keys(this.predefinedFilters).map((path: string) => entitySetPath ? `${entitySetPath}/${path}` : path)];\n customFieldsStored = customFieldsStored.filter((field, index, array) => array.indexOf(field) === index);\n } else {\n customFieldsStored = this.getVariant()?.visibleFilters ?? this.getDefaultFilters();\n\n // inject always present filters, that doesn't have to be stored in the variant (e.g. BankAccount filter in BankTransactions)\n // otherwise, it won't be rendered\n const nonCustomizableDefs = this.data.definition.filterBarDef.filter(def => !def.allowCustomFilters);\n\n for (const def of nonCustomizableDefs) {\n const prefix = this.data.bindingContext.getRootParent().getPath(true);\n\n for (const field of def.defaultFilters) {\n const fullPath = `${prefix}/${field}`;\n\n if (!customFieldsStored.includes(fullPath)) {\n customFieldsStored.push(fullPath);\n }\n }\n }\n }\n\n return this.loadFilters(customFieldsStored);\n };\n\n setTableAlert = (alert: IAlertProps, withoutRefresh = false): void => {\n if (alert === null) {\n this.clearTableAlert();\n } else {\n this.store({\n alert: {\n ...alert,\n onClose: () => {\n // clear alert after it is closed (e.g. fade out of success alert)\n this.clearTableAlert();\n this.refresh(true);\n }\n }\n });\n if (!withoutRefresh) {\n this.refresh(true);\n }\n }\n };\n\n clearTableAlert = (): void => {\n this.store({\n alert: null\n });\n };\n\n getDefaultFilters = (skipGroupId?: string): string[] => {\n const entitySetPath = this.data.bindingContext?.getFullPath(true);\n const filters: string[] = [];\n\n this.data.definition.filterBarDef.forEach(def => {\n if (def.id !== skipGroupId) {\n def.defaultFilters.forEach(path => {\n const resPath = entitySetPath ? `${entitySetPath}/${path}` : path;\n filters.push(resPath);\n });\n }\n });\n\n return filters;\n };\n\n loadFilters = async (allFilters: string[] = [], groupId?: string): Promise => {\n const { definition, bindingContext, entity } = this.data;\n const fieldsInfo: Record = this.data.fieldsInfo || {};\n const visibleFilters: Record = this.data.visibleFilters || {};\n let data = entity ?? {};\n // store all fields used in filters to update defaultValues with setCurrentValueFromEntity\n const allPaths: string[] = [];\n\n const _add = async (field: IFieldDef, filterBindingContext?: BindingContext) => {\n if (!isVisible({ info: field, storage: this.getThis() })) {\n return;\n }\n\n let fieldBindingContext = filterBindingContext ?? (bindingContext ? bindingContext.navigate(field.id) : createBindingContext(field.id, this.oData.metadata));\n const withoutKey = !field.factory;\n const path = fieldBindingContext.getFullPath(withoutKey);\n\n if (allPaths.indexOf(field.id) < 0) {\n allPaths.push(field.id);\n }\n\n const info = await this.loadInfo({\n path: field.id,\n fieldDef: {\n ...field\n }\n }, fieldBindingContext);\n\n // ALL navigation filter has to have specified displayName in their field info to work properly\n // uncomment when pushTo isn't field and it is verified that the check make sense\n if (fieldBindingContext.isNavigation() && !info.fieldSettings?.displayName) {\n logger.warn(`Error for '${fieldBindingContext.getPath()}' filter. Can't add navigation filter without specifying 'displayName' in its field info.`);\n return;\n }\n if (info.fieldSettings?.displayName) {\n // load info also for displayName property, so we can validate it in ConditionalFilterDialog\n // field/filter is prepared for the navigation property, e.g. BusinessPartner (mainly because of the field label)\n // but validations need to be run against particular property, which is filtered, e.g. BusinessPartner/Name\n const displayName = info.fieldSettings?.displayName,\n displayNameBindingContext = fieldBindingContext.navigate(displayName),\n displayNamePath = displayNameBindingContext.getFullPath(true);\n\n if (!fieldsInfo[displayNamePath]) {\n fieldsInfo[displayNamePath] = await this.loadInfo({\n path: `${field.id}/${displayName}`,\n fieldDef: {\n ...field\n }\n }, displayNameBindingContext);\n }\n }\n\n let keyProp: string = null;\n if (fieldBindingContext.isNavigation() && !fieldBindingContext.isCollection()) {\n keyProp = fieldBindingContext.getKeyPropertyName();\n fieldBindingContext = fieldBindingContext.navigate(keyProp);\n }\n\n const filterValue = getBoundValue({\n bindingContext: fieldBindingContext,\n data,\n dataBindingContext: bindingContext\n });\n\n if (!isDefined(filterValue)) {\n // Filter has no current value -> add defaultValue if defined\n // ignore stored values in draft view\n // don't use filters from LocalSettings when drillDownFilters passed via history state\n let defVal = (\n this.isDraftView() ? null\n : this.predefinedFilters ? this.predefinedFilters[info.bindingContext.getNavigationPath()]\n // pass info manually, it is not stored into fieldsInfo just yet\n : this.getFilterValueFromVariant(info.bindingContext, info as (IFieldInfo & IFilterDef))\n ) ?? getInfoValue(info, \"defaultValue\", {\n data: this.data.entity,\n storage: this.getThis(),\n info: info,\n context: this.context\n });\n\n // issue DEV-27488 filters stored array of values including key property name\n // -> keep just values to be stored as parsedValue\n if (defVal && typeof defVal === \"object\" && defVal[keyProp]) {\n defVal = defVal[keyProp];\n }\n\n if (isDefined(defVal)) {\n if (!isComplexFilterArr(defVal)) {\n // just like in getValueHelperChangeParams,\n // we don't want to store complex value in data.entity to prevent this complex object from getting into filter SmartFields\n data = setBoundValue({\n bindingContext: fieldBindingContext,\n data,\n newValue: defVal,\n dataBindingContext: bindingContext\n });\n }\n this.setFilterValue(info.bindingContext, defVal);\n }\n } else {\n // when we loading filters and filter value is already set, we need to keep parsedValue in sync because of value helper fields.\n // e.g. in ChartOfAccounts when switching between tabs, parent entity id is changed, therefore\n this.setFilterValue(info.bindingContext, filterValue);\n }\n\n if (!fieldsInfo[path]) {\n // don't override already defined fields from defaultFilters by their counterpart from entityProperties\n fieldsInfo[path] = info;\n }\n };\n\n const infoPromises = [];\n\n for (const group of definition.filterBarDef || []) {\n if (isDefined(groupId) && groupId !== group.id) {\n continue;\n }\n\n const filterDefinition = group.filterDefinition;\n\n for (const filterId of allFilters) {\n const bc = createBindingContext(filterId, this.oData.metadata);\n // isLocal is here to support AuditTrailView and SmartAuditTable\n const navigationPath = bc.isLocal() ? bc.getPath() : bc.getNavigationPath(true, this.data.bindingContext);\n const baseFilterDef = filterDefinition[navigationPath];\n\n if (baseFilterDef) {\n if (typeof baseFilterDef.factory === \"function\") {\n const [filter] = await baseFilterDef.factory(this.getThis(), filterId);\n if (filter) {\n infoPromises.push(_add(filter, filter.bindingContext));\n }\n } else {\n const filter = {\n id: navigationPath,\n ...baseFilterDef\n };\n infoPromises.push(_add(filter));\n }\n }\n }\n\n await Promise.all(infoPromises);\n\n // fieldInfo must exists, or we skip such configured filter\n visibleFilters[group.id] = allFilters.filter(id => {\n return !!fieldsInfo[id] && (filterDefinition[fieldsInfo[id].id]\n // for labels\n ?? filterDefinition[this.data.bindingContext.navigate(fieldsInfo[id].id).getNavigationPath(true)]);\n });\n }\n\n this.store({\n entity: data,\n fieldsInfo,\n visibleFilters\n });\n\n\n // first time page is loaded, there is no expand group key so we want to expand first tab (which won't be shown but rendered)\n // so items in hidden selects will be loaded\n // !! so far this trick works only for the first group !! so default select values in other groups won't show properly\n if (isNotDefined(this.data.expandedGroupKey)) {\n this.store({ expandedGroupKey: definition.filterBarDef[0].id });\n }\n };\n\n createTableValidationSchema = (): void => {\n const colData: IFieldInfo[] = Object.values(this.data.fieldsInfo);\n const columnNames = colData\n // don't validate selects => they should already contain only valid values (e.g. LabelsHierarchyDef 'Labels/IsActive' filter)\n .filter(column => !isSelectBasedComponent(column.type) && column.useForValidation !== false)\n .map(column => (\n !column.filterName && column.fieldSettings?.displayName ? `${column.id}/${column.fieldSettings?.displayName}` : column.id\n ));\n\n this.createValidationSchema(columnNames, false);\n };\n\n updateVisibleFilters = async (id: string, visibleFilters: string[]): Promise => {\n // if this is first time customization, add all default filters (but from cust. group)\n const variant = this.getVariant();\n\n const storedFilters: string[] = variant.visibleFilters;\n if (!storedFilters) {\n visibleFilters = [...visibleFilters, ...this.getDefaultFilters(id)];\n }\n\n this.setLocalStorageVariant({\n ...variant,\n visibleFilters\n });\n\n // TODO: we combine visible with default filters which does not cover case when there are two\n // customizable tabs\n await this.loadFilters(visibleFilters, id);\n\n // we need to refresh schema with the new filters\n this.createTableValidationSchema();\n };\n\n returnVariantIfItIsNotEmpty = (variant: ITableVariant): ITableVariant => {\n // system variant doesn't have groups specified as it is in DEF file\n return variant?.columns?.length > 0 ? variant : undefined;\n };\n\n getInitialSortOrder = memoizeOne(\n (): ISort[] => {\n const variant = this.getVariant();\n\n if (!variant) {\n return this.data.definition.initialSortBy;\n }\n\n const sortColumns: IVariantColumn[] = [];\n\n for (let index = 0; index < variant.columns.length; index++) {\n const col = variant.columns[index];\n\n let duplicateIndex: number = null;\n const fullColId = col.aggregationFunction ? `${col.id}_${col.aggregationFunction}` : col.id;\n\n for (let i = 0; i < index; i++) {\n const fullVarColId = variant.columns[i].aggregationFunction ? `${variant.columns[i].id}_${variant.columns[i].aggregationFunction}` : variant.columns[i].id;\n\n if (fullVarColId === fullColId) {\n duplicateIndex += 1;\n }\n }\n\n const id = addIndexToDuplicateColumnId(fullColId, duplicateIndex);\n\n if (isDefined(col.sortOrder) && !sortColumns.find(c => c.id === id)) {\n sortColumns.push({\n ...col,\n id\n });\n }\n }\n\n const sortColumnsOrdered = sortColumns.sort((col1, col2) => col1.sortOrder - col2.sortOrder);\n\n return sortColumnsOrdered.map(col => ({\n id: col.id,\n sort: col.sortType\n }));\n }\n , () => [this.getVariant()?.columns]);\n\n getVariantColumnSortProps = (columnId: string, sort: ISort, sortIndex: number): Pick => {\n const isSorted = sort && isDefined(sortIndex) && sortIndex >= 0;\n\n return {\n sortOrder: isSorted ? sortIndex : null,\n sortType: isSorted ? sort?.sort : null\n };\n };\n\n /** Returns variant if it is already stared either in local storage or in variants */\n getStoredVariant = (canReturnEmptyVariant = false): ITableVariant => {\n const variant = this.getLocalStorageVariant() || this.data.variants?.currentVariant?.table;\n\n return canReturnEmptyVariant ? variant : this.returnVariantIfItIsNotEmpty(variant);\n };\n\n /** If no variant is already stored, returns variant created based on default columns */\n getVariant = (): ITableVariant => {\n return this.getStoredVariant() ?? {\n columns: this.createVariantColumns(this.data.definition.columns, this.data.definition.initialSortBy),\n filters: {},\n visibleFilters: this.getDefaultFilters()\n };\n };\n\n createVariantColumns = memoizeOne((columns: string[] = [], sort?: ISort[]): IVariantColumn[] => {\n // todo: this is temporary solution to support DEV-13833 as we can't sort by invisible columns right now.\n // to fully support sorting by invisible columns, we need to implement DEV-3652 first. Once the issue is done,\n // remove this.\n const additionalSortColumns = sort?.filter(val => !columns.includes(val.id.toString()))\n .map(item => item.id.toString()) ?? [];\n // end:todo removal\n\n return [...columns, ...additionalSortColumns].map(columnId => {\n const sortIndex = sort?.findIndex(sort => sort.id === columnId);\n\n return {\n id: columnId,\n ...this.getVariantColumnSortProps(columnId, sort?.[sortIndex], sortIndex)\n };\n });\n });\n\n updateCurrentTableColumns = async (): Promise => {\n const variant = this.getVariant();\n if (!variant.columns) {\n this.data.mergedColumns = [];\n return;\n }\n\n const mergedColumns: IFieldDef[] = [];\n const extractedDefs: IFieldDef[] = [];\n\n const _addExtractedColumn = (col: IVariantColumn, defs: IFieldDef[]): boolean => {\n const def = defs.find((def: IFieldDef) => col.id === def.id);\n if (def) {\n mergedColumns.push(def);\n return true;\n }\n return false;\n };\n\n for (let i = 0; i < variant?.columns?.length; ++i) {\n const column = variant.columns[i];\n const id = removeKeyFromPath(column.id);\n const def = this.data.definition.columnDefinition?.[id];\n if (!def) {\n logger.error(`Definition for ${id} is missing in columnDefinition`);\n continue;\n }\n if (typeof def.factory === \"function\") {\n if (!_addExtractedColumn(column, extractedDefs)) {\n // column not in already loaded defs, try to load it first\n const loadedDefs = await def.factory(this.getThis(), column.id);\n _addExtractedColumn(column, loadedDefs);\n // keep the other definitions for possible other columns in variant\n extractedDefs.push(...loadedDefs);\n }\n } else {\n mergedColumns.push({\n ...def,\n ...column\n });\n }\n }\n this.data.mergedColumns = mergedColumns;\n };\n\n // Filter out empty filters and join with condition\n joinFilters = (queries: string[], condition = \"AND\"): string => {\n return queries.filter(i => i).join(` ${condition} `);\n };\n\n createFilterQueryRecursive = (changedFilters: IChangedFilter[], baseContext: BindingContext, condition: \"AND\" | \"OR\" = \"AND\", parentPrefix?: string, lastFilterBindingContext?: string): IFilterQuery => {\n const rootFilters: IChangedFilter[] = [];\n const collectionFilters: TRecordType = {};\n\n const fnBuildFilterQuery = (filter: IChangedFilter, rootBindingContext: BindingContext, prefix?: string): IFilterQuery => {\n if (filter.info.filter?.buildFilter) {\n const filterQuery: string | IFilterQuery = filter.info.filter.buildFilter(filter, {\n prefix,\n rootBindingContext\n }, this.getThis());\n\n return typeof filterQuery === \"string\" ? { query: filterQuery } : filterQuery;\n }\n\n // prevent infinite loop if we already expanded the filter once\n const isFilterAlreadyExpanded = filter.bindingContext.toString() === lastFilterBindingContext;\n // if it's navigation binding context, we use filterNames prop, displayName or keyProperty name for filtering,\n // we also want to support searching against multiple columns from one filter definition (see accountAssignmentDef, LabelsHierarchyDef)\n // but the new multiple filters could be whole new filters, including collections, etc...\n // so in that case, we build new changedFilters array and call createFilterQueryRecursive\n // to support same set of features as we support for \"main\" filters\n if ((filter.bindingContext.isNavigation() || filter.info.filterName) && !isFilterAlreadyExpanded) {\n // e.g. JournalEntry/AccountAssignment -> JournalEntry/AccountAssignment/Id\n // or BusinessPartner -> BusinessPartner/Name, etc...\n const defaultFilterName = filter.bindingContext.isEnum() ? `../${filter.bindingContext.getPath()}${BindingContext.ENUM_KEY_PROP}` : filter.info.fieldSettings?.displayName ?? filter.bindingContext.getKeyPropertyName();\n const filterName = filter.info.filterName ?? defaultFilterName;\n const filterNames = Array.isArray(filterName) ? filterName as string[] : [filterName];\n\n let { value } = filter;\n const hasNullValue = Array.isArray(value) ? (value as any[]).includes(EMPTY_VALUE) : value === EMPTY_VALUE;\n const nonNullValues = Array.isArray(value) ? (value as any[]).filter(i => i !== EMPTY_VALUE) : [];\n const additionalFilters: IChangedFilter[] = [];\n\n const expandedFilters = filterNames.map(filterName => {\n // We need to distinguish here if we navigate from the filterBinding context or rootBindingContext,\n // see LabelsHierarchyDef, where we filter BC is \"Name\" and we also want to filter by \"../Labels/Name\"\n let root = filter.bindingContext;\n if (filterName.startsWith(\"/\")) {\n root = baseContext;\n filterName = filterName.slice(1);\n }\n if (filterName.startsWith(\"../\")) {\n root = root.getParent();\n filterName = filterName.slice(3);\n }\n const bindingContext = filterName ? root.navigate(filterName) : filter.bindingContext;\n\n // Both expanded filters should have same basic IFieldInfo (otherwise we won't be able to filter by the same value)\n // but filterName prop should be deleted to stop the recursive navigation\n const info = { ...filter.info };\n delete info.filterName;\n\n if (hasNullValue && !bindingContext.getProperty().isNullable()) {\n // if there is null value and filter has displayName, which is not nullable, we add\n // filter for the relation itself\n const nullFilter: IChangedFilter = {\n value: EMPTY_VALUE,\n info,\n bindingContext: filter.info.filter?.nullFilterMeansEmptyCollectionFilter ? bindingContext : filter.bindingContext\n };\n if (Array.isArray(value) && nonNullValues.length) {\n // non null values will be added to expandedFilters in usual way\n value = nonNullValues;\n // we create additional null filter\n additionalFilters.push(nullFilter);\n } else {\n return nullFilter;\n }\n }\n\n return {\n value,\n info,\n bindingContext\n };\n });\n\n expandedFilters.push(...additionalFilters);\n\n // build the nested query and join with \"OR\" - any condition is met todo: ... change base\n const {\n query,\n collectionQueries\n } = this.createFilterQueryRecursive(expandedFilters, rootBindingContext, \"OR\", prefix, filter.bindingContext.toString());\n return {\n query: expandedFilters.length > 1 ? `(${query})` : query,\n collectionQueries\n };\n }\n\n // otherwise it's single filter -> builds the filter string and returns it\n return {\n query: createFilterString(filter, { prefix, rootBindingContext })\n };\n };\n\n // Adds filter to collection map\n const fnAddCollectionFilter = (filter: IChangedFilter, path: string) => {\n if (!collectionFilters[path]) {\n collectionFilters[path] = [];\n }\n collectionFilters[path].push(filter);\n };\n\n // checks if filter belongs to collection and return path for it in that case\n const collectionPath = (bc: BindingContext) => {\n const [firstUniqueSuffix] = getUniqueContextsSuffix(bc, baseContext);\n\n if (firstUniqueSuffix?.isCollection()) {\n return firstUniqueSuffix.getPath();\n }\n return null;\n };\n\n for (const filter of changedFilters) {\n const path = collectionPath(filter.bindingContext);\n if (path) {\n fnAddCollectionFilter(filter, path);\n } else {\n const groupByProps = getValueHelpFilterGroupByProps(filter.bindingContext, filter.info);\n\n // Automatically build filter for composite value help filter made from multiple groupByProps,\n // only if custom buildFilter handling does not exist.\n // Ignore complex values => handle in custom buildFilter if needed.\n if (!filter.info?.filter?.buildFilter && Array.isArray(filter.value) && !isComplexFilterArr(filter.value) && groupByProps?.length > 0) {\n const groupByChangedFilters: Record = {};\n const filterValues = filter.value as string[];\n\n for (const prop of groupByProps) {\n const bc = filter.bindingContext.getRootParent().navigate(prop);\n const property = bc.getProperty();\n const newFilter: IChangedFilter = {\n bindingContext: bc,\n value: [],\n info: {\n id: prop,\n bindingContext: bc,\n type: getFieldTypeFromProperty(property),\n valueType: getValueTypeFromProperty(property)\n }\n };\n\n groupByChangedFilters[prop] = newFilter;\n }\n\n // // create new object, to prevent changing the original array\n filter.value = [...(filter.value as string[])];\n\n for (let i = 0; i < filterValues.length; i++) {\n const filterValue = filterValues[i];\n const entity = typeof filterValue === \"string\" ? parseCompositeFilterId(filterValue) : filterValue;\n // parse the original filter value and put it back to the original filter\n const origFilterValue = getBoundValue({\n bindingContext: filter.bindingContext,\n dataBindingContext: this.data.bindingContext,\n data: entity\n });\n\n filter.value[i] = origFilterValue;\n\n // parse the rest of the composite filter value\n for (const prop of groupByProps) {\n const bc = filter.bindingContext.getRootParent().navigate(prop);\n const compositeFilterValue = getBoundValue({\n bindingContext: bc,\n dataBindingContext: this.data.bindingContext,\n data: entity\n });\n\n if (groupByChangedFilters[prop]?.value) {\n (groupByChangedFilters[prop].value as string[]).push(compositeFilterValue);\n }\n }\n }\n\n for (const changedFilter of Object.values(groupByChangedFilters)) {\n // only add if there is at least one filter, in case there is some stored filter with wrong data\n if ((changedFilter.value as string[]).length > 0) {\n rootFilters.push(changedFilter);\n\n }\n }\n }\n rootFilters.push(filter);\n }\n }\n\n const allFilters = [];\n const collectionQueries: TRecordType = {};\n\n for (const filter of rootFilters) {\n const filterQuery = fnBuildFilterQuery(filter, baseContext, parentPrefix);\n allFilters.push(filterQuery.query);\n\n // pass the nested collectionQueries to the root collectionQueries\n if (filterQuery.collectionQueries && !filter.info.shouldNotFilterCollection) {\n for (const [key, value] of Object.entries(filterQuery.collectionQueries)) {\n if (collectionQueries[key]) {\n collectionQueries[key].query = this.joinFilters([collectionQueries[key].query, value.query], condition);\n } else {\n collectionQueries[key] = {\n query: value.query\n };\n }\n }\n }\n }\n\n for (const [collection, filters] of Object.entries(collectionFilters)) {\n const collectionRootBc = baseContext.navigate(collection);\n // sometimes, we don't want to apply the collection filter, only use it on root\n const appliedFilters = filters.filter(filter => !filter.info.filter?.onlyApplyCollectionFilterOnRoot);\n\n const filterQuery = this.joinFilters(appliedFilters.map(filter => {\n let q = fnBuildFilterQuery(filter, collectionRootBc).query;\n\n if (q === EMPTY_VALUE) {\n q = `not(${collection}/any())`;\n }\n\n return q;\n\n }), condition);\n\n if (appliedFilters.length > 0) {\n if (collectionQueries[collection]) {\n collectionQueries[collection].query = this.joinFilters([filterQuery, collectionQueries[collection].query], condition);\n } else {\n collectionQueries[collection] = {\n query: filterQuery\n };\n }\n }\n\n // when filtering over collections, we need to append /any filter on the root level\n // e.g startswith(Name,'world')) or Labels/any(x: (startswith(x/Name,'world'))\n // otherwise, the root item could get filtered out\n const prefix = \"x\";\n const emptyValueFilters: string[] = [];\n const valueFilters: string[] = [];\n let query = \"\";\n\n for (const filter of filters) {\n const q = fnBuildFilterQuery(filter, collectionRootBc, prefix).query;\n\n if (q === EMPTY_VALUE) {\n emptyValueFilters.push(`not(${collection}/any())`);\n } else {\n valueFilters.push(q);\n }\n }\n\n if (valueFilters.length > 0) {\n query = `${collection}/any(${prefix}: ${this.joinFilters(valueFilters, condition)})`;\n }\n\n if (emptyValueFilters.length > 0) {\n query = this.joinFilters([query, ...emptyValueFilters], condition);\n }\n\n allFilters.push(query);\n }\n\n return { collectionQueries, query: this.joinFilters(allFilters, condition) };\n };\n\n createFilterQuery = (changedFilters: IChangedFilter[]): IFilterQuery => {\n let {\n collectionQueries,\n query\n } = this.createFilterQueryRecursive(changedFilters, this.data.bindingContext, \"AND\");\n\n // we need to pass current Company to the filter\n // is there any better generic way to do it?\n let defaultFilter = getInfoValue(this.data.definition, \"filter\", {\n context: this.context,\n storage: this.getThis(),\n bindingContext: this.data.bindingContext\n });\n\n if (defaultFilter) {\n if (typeof defaultFilter !== \"string\") {\n collectionQueries = {\n ...collectionQueries,\n ...defaultFilter.collectionQueries\n };\n defaultFilter = defaultFilter.query;\n }\n\n if (defaultFilter) {\n const operator = getInfoValue(this.data.definition, \"filterOperator\", {\n context: this.context,\n storage: this.getThis(),\n bindingContext: this.data.bindingContext\n }) ?? LogicOperator.And;\n\n if (operator !== LogicOperator.NonSoloOr || query) {\n const _op = operator === LogicOperator.NonSoloOr ? \"OR\" : operator;\n query = query ? `(${query}) ${_op} ${defaultFilter}` : defaultFilter;\n }\n }\n }\n\n const secondaryTabsQuery = query;\n\n if (this.isDraftView() && this.data.definition.draftDef?.draftFilter) {\n const draftFilter = this.data.definition.draftDef.draftFilter;\n\n if (query) {\n query += \" AND \";\n query += draftFilter;\n } else {\n query = draftFilter;\n }\n }\n\n return {\n query,\n secondaryTabsValuesQuery: secondaryTabsQuery,\n defaultFilter,\n collectionQueries,\n isInvalid: this.isAnyError()\n };\n };\n\n getChangedFilters = (): { groups: Record; changedFields: IChangedFilter[]; } => {\n const _append = (filterGroupKey: string, filters: IFieldInfo[]) => {\n for (const filter of filters) {\n const visible = isVisible({\n info: filter,\n storage: this.getThis(),\n bindingContext: filter.bindingContext\n });\n\n if (!visible) {\n continue;\n }\n\n const value = this.getAdditionalFieldData(filter.bindingContext, \"parsedValue\") ??\n this.getValue(filter.bindingContext, { useDirectValue: false });\n if (isDefined(value) && value !== \"\" && !(Array.isArray(value) && value.length === 0)) {\n if (!result[filterGroupKey]) {\n result[filterGroupKey] = [];\n }\n\n result[filterGroupKey].push({\n info: filter,\n bindingContext: filter.bindingContext,\n value\n });\n }\n }\n };\n\n const result: Record = {};\n\n for (const filterGroupId of this.data.definition.filterBarDef.map(filterGroupDef => filterGroupDef.id)) {\n const visibleFiltersFieldInfos = this.getFilterGroupFieldInfos(filterGroupId);\n\n _append(filterGroupId, visibleFiltersFieldInfos);\n }\n\n let changedFields: IChangedFilter[] = [];\n for (const group of Object.values(result)) {\n changedFields = changedFields.concat(group);\n }\n\n return {\n groups: result,\n changedFields\n };\n };\n\n storeMultiValue = (e: ISmartFieldChange): void => {\n this.addActiveField(e.bindingContext);\n this.addActiveFieldsFromAffectedFields(e.bindingContext);\n const bc = e.bindingContext.isNavigation() ? e.bindingContext.navigate(e.bindingContext.getKeyPropertyName()) : e.bindingContext;\n\n const updatedData = setBoundValue({\n bindingContext: bc,\n data: this.data.entity,\n newValue: e.value,\n dataBindingContext: this.data.bindingContext\n });\n\n this.store({\n entity: updatedData\n });\n };\n\n /** Returns true if the filter is valid and can be used to build new query */\n handleFilterChange = (args: ISmartFieldChange, storeVariantOnChange = true): boolean => {\n if (!Array.isArray(args.value)) {\n this.handleChange(args);\n } else {\n this.storeMultiValue(args);\n }\n\n // filters are validated onChange instead onBlur, to prevent unwanted requests with wrong filter values\n let error;\n\n if (!args.additionalData?.isValueHelper\n // don't validate selects, they should already contain only valid items\n && !isSelectBasedComponent(args.type)) {\n // Basic filters are validated here, valueHelp filters are more complex and value has to be validated\n // in ConditionalFilterDialog - the only point where user can fill custom value\n error = this.validateFieldSync(args.bindingContext);\n }\n\n if (!error) {\n // store parsedValue so that the changed filters can be built with it\n const parsedValue = args.parsedValue ?? args.value;\n this.setFilterValue(args.bindingContext, parsedValue);\n\n // when drillDownFilters used, we don't want to store any filters\n // also in draft view as well\n if (!this.isDraftView() && !this.predefinedFilters && storeVariantOnChange) {\n this.setFilterValueIntoVariant(args.bindingContext, parsedValue);\n }\n }\n\n // also in case there is error, filterQuery is changed, so we should trigger the event\n this.emitter.emit(ModelEvent.FilterChanged);\n\n return !error;\n };\n\n /**\n * parsedValue - correctly parsed value used to build filter and read only filter bar items\n * value - current value of the input (which may be invalid)\n * */\n setFilterValue(bc: BindingContext, parsedValue: TValue, value?: TValue): void {\n // todo \"parsedValue\" may be a historic relict,\n // i think it was used to differentiate between current value of the input (which may be invalid)\n // and parsed correct value, used to build filter and read only filter bar items.\n // nowadays, current value should be stored in WithFormatter, so parsedValue may be redundant,\n // and we could only used value stored in storage.data.entity\n this.setAdditionalFieldData(bc, \"parsedValue\", parsedValue);\n\n if (value) {\n this.setValue(bc, value);\n }\n }\n\n setFilterValueByPath(path: string, parsedValue: TValue, value?: TValue): void {\n this.setFilterValue(this.data.bindingContext.navigate(path), parsedValue, value);\n }\n\n /**\n * Clear all filters from filter group with 'filter' id\n * If at least one filter was cleaned, triggers ModelEvent.FilterChanged\n *\n * @param {string} filterGroupId id of filter group to clear\n * @param {boolean} keepLocalStorageValues if true, values stored in local storage will be kept intact,\n * used for drafts which ignores local storage filter values\n *\n * @returns {boolean} return true if at least on filter was cleaned, otherwise false\n */\n clearFilters = (filterGroupId = FilterBarGroup.Filters, keepLocalStorageValues?: boolean): boolean => {\n const { groups } = this.getChangedFilters();\n const filtersGroup = groups[filterGroupId];\n const variant = this.getVariant();\n const savedFilters = { ...variant.filters };\n const savedCompanyFilters = { ...variant.companyFilters };\n\n // only perform all the updates if there actually is some filter to clean\n if (!filtersGroup || filtersGroup.length === 0) {\n return false;\n }\n\n for (let i = 0; i < filtersGroup.length; i++) {\n const bindingContext = filtersGroup[i].bindingContext;\n const navigationPath = bindingContext.getNavigationPath();\n const info = this.getInfo(bindingContext);\n\n if (this.predefinedFilters?.[info.id]) {\n continue;\n }\n\n this.addActiveField(bindingContext);\n this.clearAdditionalFieldData(bindingContext);\n setBoundValue({\n bindingContext,\n data: this.data.entity,\n newValue: null,\n preventCloning: true,\n dataBindingContext: this.data.bindingContext\n });\n\n if (!keepLocalStorageValues) {\n // filter should be stored in just one of the variables,\n // but it's easier to just remove it from both\n delete savedFilters[navigationPath];\n delete savedCompanyFilters[navigationPath];\n }\n }\n\n this.setLocalStorageVariant({\n ...variant,\n filters: savedFilters,\n companyFilters: savedCompanyFilters\n });\n\n this.applyFilters([]);\n\n this.emitter.emit(ModelEvent.FilterChanged);\n this.emitter.emit(ModelEvent.FiltersCleared);\n this.refreshFields();\n\n return true;\n };\n\n isDraftView = (): boolean => {\n return isDraftView(this.getThis() as TSmartODataTableStorage);\n };\n\n /** Never access variant value directly, instead use this getter.\n * Distinguishes between regular filters and \"isCompanyDependent\" filters */\n getFilterValueFromVariant = (bindingContext: BindingContext, info = this.getInfo(bindingContext)): unknown => {\n const variant = this.getVariant();\n const isCompanyDependent = !!info.isCompanyDependent;\n const path = bindingContext.getNavigationPath();\n\n if (isCompanyDependent) {\n const companyId = this.context.getCompanyId();\n\n return variant.companyFilters?.[companyId]?.[path];\n } else {\n return variant.filters?.[path];\n }\n };\n\n /** Never access variant value directly, instead use this setter.\n * Distinguishes between regular filters and \"isCompanyDependent\" filters */\n setFilterValueIntoVariant = (bindingContext: BindingContext, parsedValue: unknown): void => {\n const variant = this.getVariant();\n const isCompanyDependent = !!this.getInfo(bindingContext)?.isCompanyDependent;\n const path = bindingContext.getNavigationPath();\n\n if (isCompanyDependent) {\n // store the filter change into the company variant change\n const companyId = this.context.getCompanyId();\n\n this.setLocalStorageVariant({\n ...variant,\n companyFilters: {\n ...variant.companyFilters,\n [companyId]: {\n ...(variant.companyFilters?.[companyId] ?? {}),\n [path]: parsedValue\n }\n }\n });\n } else {\n // store the filter change into the variant\n this.setLocalStorageVariant({\n ...variant,\n filters: {\n ...variant.filters,\n [path]: parsedValue\n }\n });\n }\n };\n\n getLocalStorageVariant = (): ITableVariant => {\n if (!this._cachedVariant && !this.data.definition.preventStoreVariant) {\n this._cachedVariant = LocalSettings.get(this.id)?.tableVariant;\n }\n\n return this._cachedVariant as ITableVariant;\n };\n\n setLocalStorageVariant = (variant: ITableVariant): void => {\n this._cachedVariant = variant;\n if (!this.data.definition.preventStoreVariant) {\n LocalSettings.set(this.id, {\n tableVariant: variant\n });\n }\n };\n\n async updateFiltersAfterDraftModeChange(): Promise {\n const isDraft = this.isDraftView();\n\n this.clearFilters(FilterBarGroup.Filters, true);\n\n if (!isDraft) {\n await this.loadStoredFilters();\n }\n\n this.applyFilters();\n this.refresh();\n }\n\n async changeVariant(variant: Variant, withoutRefresh?: boolean): Promise {\n this.clearFilters();\n this.data.definition.filterBarDef.forEach(filterGroupDef => {\n if (filterGroupDef.clearOnVariantChange) {\n this.clearFilters(filterGroupDef.id);\n }\n });\n\n await super.changeVariant(variant);\n await this.updateCurrentTableColumns();\n\n await this.loadStoredFilters();\n this.applyFilters();\n\n if (!withoutRefresh) {\n this.refresh();\n }\n }\n\n getFilterFieldGroup = (id: string): IFilterGroupDef => {\n return this.data.definition?.filterBarDef?.find(group => group.filterDefinition?.[id]);\n };\n\n applyFilters = (changedFields?: IChangedFilter[]): IFilterQuery => {\n changedFields = changedFields ?? this.getChangedFilters()?.changedFields;\n const filterQuery = this.createFilterQuery(changedFields);\n\n if (filterQuery?.query !== this.data.filterQuery?.query || filterQuery?.isInvalid !== this.data.filterQuery?.isInvalid) {\n this.store({\n filterQuery: {\n ...filterQuery\n }\n });\n }\n\n return filterQuery;\n };\n\n getMergedColumns = memoizeOne((isDraft: boolean): IFieldDef[] => {\n const propsBlackList = this.data.definition.draftDef?.draftPropsBlacklist;\n let columns = cloneDeep(this.data.mergedColumns);\n\n columns = columns?.filter(col => {\n return isVisible({\n info: col,\n storage: this.getThis(),\n bindingContext: this.data.bindingContext,\n context: this.context\n });\n });\n\n if (isDraft && propsBlackList?.length) {\n columns = columns?.reduce((retVal, col) => {\n if (propsBlackList.includes(col.id)) {\n return retVal;\n }\n col.additionalProperties = col.additionalProperties?.filter(prop => !propsBlackList.includes(prop.id));\n retVal.push(col);\n return retVal;\n }, []);\n }\n return columns;\n }, (isDraft) => [isDraft, this.data.mergedColumns]);\n}","import { allowCreateValues, IGetValueArgs, isRequired, isVisible, IValidator } from \"@components/smart/FieldInfo\";\nimport { createBindingContextFromIndexedCollection, setBoundValue } from \"@odata/Data.utils\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { isDefined, isNotDefined, maxNumberFromMaxStringLength } from \"@utils/general\";\nimport { i18n as TI18next } from \"i18next\";\nimport * as yup from \"yup\";\nimport { ValidationError } from \"yup\";\n\nimport { EMAIL_REGEX } from \"../constants\";\nimport { FieldType, ValidatorType } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport BindingContext from \"../odata/BindingContext\";\nimport { Model } from \"./Model\";\nimport {\n ICustomValidatorSettings,\n INumberValidatorSettings,\n IStringValidatorSettings,\n IValidationError,\n IValidationSchema,\n PHONE_REG,\n TBuildInValidationKey,\n TCustomBuildInValidationMessageDef,\n ValidationMessage\n} from \"./Validator.types\";\n\n// TODO is this is still useful/necessary?\n/** Remove massive object cloning from yup internal method to improve performance.\n * !!WARNING!! Since there is no cloning, always create new schema for different validators.\n * Don't reuse same schema object. */\n// const cloneBackup = yup.mixed.prototype.clone;\n\n// yup.mixed.prototype.clone = function() {\n// // cloning is needed for .when() conditions to work (used in PrintDialog)\n// // to completely get rid of cloning, we would have to refactor PrintDialog\n// if (\n// // @ts-ignore\n// this.conditions?.length > 0\n// || this.deps?.length > 0\n// || this.tests?.length > 0\n// ) {\n// return cloneBackup.call(this);\n// }\n//\n// return this;\n// };\n\nfunction isCustomValidatorRecord(obj: unknown, key: TBuildInValidationKey): obj is TCustomBuildInValidationMessageDef {\n return obj.hasOwnProperty(key);\n}\n\nfunction getValidatorMessage(validator: IValidator, key: TBuildInValidationKey, defaultMessage: string): string {\n const msg = validator?.settings?.message ?? {};\n return isCustomValidatorRecord(msg, key) ? msg[key] : defaultMessage;\n}\n\nexport function getCorrectValidationArgs(storage: Model, info: IFieldInfo, path?: string): IGetValueArgs {\n // validator object can remain the same, while key of binding context can change\n // meaning info.bindingContext doesn't have to be up to date => create new one, with correct key\n const _correctBc = storage.data.bindingContext.getRootParent().navigate(info.bindingContext.getNavigationPath());\n\n const args = {\n bindingContext: _correctBc,\n info: {\n ...info,\n bindingContext: _correctBc\n },\n storage,\n context: storage?.context\n };\n\n const isCollection = args.bindingContext.isAnyPartCollection();\n // can be called without path e.g. with isValidSync\n if (isCollection && !!path) {\n args.bindingContext = createBindingContextFromIndexedCollection(path, storage.data.entity, storage.data.bindingContext);\n args.info = storage.getInfo(args.bindingContext);\n if (!args.info && args.bindingContext.getPath() === args.bindingContext.getParent().getKeyPropertyName()) {\n // selects are validated according to their keyProperty, but getInfo has to be for parent\n args.bindingContext = args.bindingContext.getParent();\n args.info = storage.getInfo(args.bindingContext);\n }\n }\n\n return args;\n}\n\n// Number.MAX_SAFE_INTEGER is too much, in inputs we work with float\n// and max value was also causing problems in recalculation of line items https://solitea-cz.atlassian.net/browse/DEV-26234\nconst MAX_SAFE_NUMBER = Math.pow(10, 12);\nconst MIN_SAFE_NUMBER = -1 * Math.pow(10, 12);\n\nexport class Validator {\n static createText = (error: IValidationError): string => {\n return error.message;\n };\n\n static getErrorText = (error: IValidationError, i18n: TI18next): string => {\n // translate validation messages from yup\n // translations are stored in Common.toml [Validation]\n const errorText = error && Validator.createText(error);\n const key = errorText.includes(\":\") ? errorText : `Common:${errorText}`;\n\n let count: number = error?.params?.count ?? 0;\n if (!count && error?.params && typeof error.params === \"object\") {\n // find numeric value in error.params and use it as \"count\" to be able to translate messages with correct plurals\n Object.keys(error.params).forEach((param) => {\n if (typeof error.params[param] === \"number\") {\n count = error.params[param];\n }\n });\n }\n\n return error && (i18n.exists(key) || i18n.exists(`${key}_one`)) ? i18n.t(key, {\n ...error.params,\n count\n }) : errorText;\n };\n\n static schemaHasPath = (schema: yup.Schema, path: string): boolean => {\n try {\n yup.reach(schema, path);\n } catch (e) {\n return false;\n }\n return true;\n };\n\n static addRequiredValidation = >(schema: T, info: IFieldInfo, storage: Model): T => {\n const validator = info.validator;\n const _getCorrectValidationArgs = (path: string) => getCorrectValidationArgs(storage, info, path);\n\n // NOTE: If required validation DOES NOT WORK, check if it's called at all. We process null navigations and create\n // an empty object for them, so required validation is called on their children.\n return schema.test(\"required\", getValidatorMessage(validator, \"required\", ValidationMessage.Required), function(this: yup.TestContext, value: any) {\n // options contains some yup settings combined with parameters passed to schema.validate() call\n\n const args = _getCorrectValidationArgs(this.path);\n const shouldValidate = args.info?.useForValidation !== false;\n args.isValidateAll = this.options.abortEarly === false;\n if (args.info && isVisible(args) && isRequired(args) && shouldValidate) {\n const isValueSet = !(isNotDefined(value) || value === \"\" || (Array.isArray(value) && value.length === 0));\n\n if (!isValueSet) {\n const parentValue = args.storage.getValue(args.bindingContext.getParent());\n if (!parentValue) {\n // if parent value is not set, we should not validate its children, e.g. BusinessPartner might be optional,\n // so if not set, there is no validation on its children, but when set, we should validate if it\n // contains all required fields\n return true;\n }\n }\n\n // this handles allow create on select items pointing to navigation not string only\n if (!isValueSet && allowCreateValues(args.info) && args.info.fieldSettings?.displayName) {\n const bc = args.bindingContext.navigate(args.info.fieldSettings?.displayName);\n return isDefined(args.storage.getValue(bc));\n }\n\n return isValueSet;\n }\n\n return true;\n });\n };\n\n static createValidationObject = (info: IFieldInfo, storage: Model) => {\n\n const _getCorrectValidationArgs = (path: string) => getCorrectValidationArgs(storage, info, path);\n\n if (info?.type === FieldType.CheckboxGroup || info?.type === FieldType.RadioButtonGroup) {\n return null;\n }\n\n let schema: any;\n const validator = info.validator;\n const type: ValidatorType = validator?.type;\n const property = info.bindingContext?.getProperty();\n const maxPropLength = property?.getMaxLength();\n switch (type) {\n case ValidatorType.String: {\n const stringValidatorSettings = validator?.settings as IStringValidatorSettings;\n\n schema = yup.string();\n\n const maxLength = stringValidatorSettings?.max ?? maxPropLength;\n const minLength = stringValidatorSettings?.min;\n const length = stringValidatorSettings?.length;\n const numberString = stringValidatorSettings?.numberString;\n\n if (numberString) {\n schema = schema.matches(/^\\d+$/, {\n message: getValidatorMessage(validator, \"integer\", ValidationMessage.NotANumber),\n excludeEmptyString: true\n });\n }\n\n // length is mutually exclusive with min/max length\n if (length) {\n schema = schema.length(length, getValidatorMessage(validator, \"length\", ValidationMessage.Length));\n } else {\n if (maxLength) {\n schema = schema.max(maxLength, getValidatorMessage(validator, \"max\", ValidationMessage.Max));\n }\n if (minLength) {\n schema = schema.min(minLength, getValidatorMessage(validator, \"min\", ValidationMessage.Min));\n }\n }\n\n break;\n }\n case ValidatorType.Date:\n schema = yup.date().typeError(getValidatorMessage(validator, \"type\", ValidationMessage.NotADate));\n break;\n case ValidatorType.PositiveNumber:\n case ValidatorType.Integer:\n case ValidatorType.Number: {\n const numberValidatorSettings = validator?.settings as INumberValidatorSettings;\n\n schema = yup.number().typeError(getValidatorMessage(validator, \"type\", ValidationMessage.NotANumber));\n\n const min = numberValidatorSettings?.min ?? MIN_SAFE_NUMBER;\n let max = numberValidatorSettings?.max ?? MAX_SAFE_NUMBER;\n\n if (maxPropLength) {\n // we take lesser number from max (configuration or maximum safe number in JS) and maxLength from BE field\n max = Math.min(max, maxNumberFromMaxStringLength(maxPropLength));\n }\n\n if (type === ValidatorType.Integer) {\n schema = schema.integer(getValidatorMessage(validator, \"integer\", ValidationMessage.Integer));\n }\n\n if (numberValidatorSettings?.excludeMin) {\n schema = schema.moreThan(min, getValidatorMessage(validator, \"moreThan\", ValidationMessage.Above));\n } else {\n schema = schema.min(min, getValidatorMessage(validator, \"min\", ValidationMessage.SmallNumber));\n }\n\n if (numberValidatorSettings?.excludeMax) {\n schema = schema.lessThan(max, getValidatorMessage(validator, \"lessThan\", ValidationMessage.Below));\n } else {\n schema = schema.max(max, getValidatorMessage(validator, \"max\", ValidationMessage.BigNumber));\n }\n\n if (type === ValidatorType.PositiveNumber) {\n schema = schema.positive(getValidatorMessage(validator, \"max\", ValidationMessage.PositiveNumber));\n }\n break;\n }\n case ValidatorType.Boolean:\n schema = yup.boolean();\n break;\n case ValidatorType.Email:\n schema = yup.string()\n .email(getValidatorMessage(validator, \"email\", ValidationMessage.WrongEmail))\n // yup implemented loose email validation in the newer version, so we have to add our own regex\n .matches(EMAIL_REGEX, {\n message: getValidatorMessage(validator, \"email\", ValidationMessage.WrongEmail),\n excludeEmptyString: true\n });\n\n if (maxPropLength) {\n schema = schema.max(maxPropLength, getValidatorMessage(validator, \"max\", ValidationMessage.Max));\n }\n break;\n\n case ValidatorType.Phone:\n schema = yup.string().matches(PHONE_REG, {\n message: \"Validation.WrongNumber\",\n // empty phone number is valid (or caught by isRequired validation)\n excludeEmptyString: true\n });\n if (maxPropLength) {\n schema = schema.max(maxPropLength, getValidatorMessage(validator, \"max\", ValidationMessage.Max));\n }\n break;\n case ValidatorType.Custom:\n const customValidatorSettings = validator?.settings as ICustomValidatorSettings;\n\n if (customValidatorSettings?.customSchema) {\n return customValidatorSettings.customSchema({\n bindingContext: info.bindingContext,\n info,\n storage\n });\n }\n\n schema = yup.mixed();\n\n if (maxPropLength) {\n schema = schema.test(\"max\", function(this: yup.TestContext, value: TValue) {\n if (typeof value !== \"string\" || (value as string)?.length <= maxPropLength) {\n return true;\n }\n const error = new ValidationError(getValidatorMessage(validator, \"max\", ValidationMessage.Max), value, this.path);\n error.params = { max: maxPropLength };\n return error;\n });\n }\n break;\n default:\n schema = yup.mixed();\n }\n\n if (info?.type === FieldType.EditableText && info?.isConfirmable) {\n schema = schema.test(\"custom\", ValidationMessage.TemporalData, function(this: yup.TestContext, value: any) {\n const args = _getCorrectValidationArgs(this.path);\n const context = this.options?.context as TRecordAny;\n // When we validate temporal data - in handleConfirm - we skip this validation\n return context?.isConfirm || !storage.getTemporalData(args.bindingContext);\n });\n }\n\n if (type !== ValidatorType.Boolean) {\n schema = Validator.addRequiredValidation(schema, info, storage);\n }\n\n // keep this after required validation because of priority (empty required value should fail on required\n // validation first, then use more complex custom validations\n const { customValidator } = validator?.settings ?? {};\n if (customValidator) {\n if (Array.isArray(customValidator)) {\n customValidator.forEach((conf, idx) => {\n schema = schema.test(`custom_${idx}`, conf.message, function(this: yup.TestContext, value: TValue) {\n return conf.validator(value, _getCorrectValidationArgs(this.path), this);\n });\n });\n } else {\n schema = schema.test(\"custom\", validator.settings?.message, function(this: yup.TestContext, value: TValue) {\n return customValidator(value, _getCorrectValidationArgs(this.path), this);\n });\n }\n }\n\n // we test required by custom test function so basically all fields are marked as nullable to allow null for not required\n schema = schema.nullable();\n\n return schema;\n };\n\n static createValidationSchema = (args: IValidationSchema) => {\n let data = {};\n const { storage } = args,\n collections: Record = {};\n\n if (!storage.data?.bindingContext) {\n // audit trail use TableStorage without binding context\n return null;\n }\n\n for (const col of args.columnNames) {\n const fieldBindingContext = storage.data.bindingContext.navigate(col);\n\n // if (fieldBindingContext.getProperty().isReadOnly() ||\n // (fieldBindingContext.getParent().getProperty() && fieldBindingContext.getParent().getProperty().isReadOnly())) {\n // continue; // skip read only properties\n // }\n\n const info = storage.getInfo(fieldBindingContext);\n const valueBc = fieldBindingContext.getNavigationBindingContext();\n\n // For TableStorage->Filters we want to ignore collections, because filter values are not stored under\n // collection keys, e.g. filter for items quantity is stored as InvoiceReceived.Items.Quantity\n if (args.useCollections) {\n const parentBc = fieldBindingContext.getParent();\n const isCollectionField = info?.isCollectionField ?? parentBc?.isCollection();\n // only unique names of collection counts\n if (isCollectionField && !parentBc.getKey()) {\n collections[parentBc.getPath()] = true;\n } else if (fieldBindingContext.isCollection()) {\n collections[fieldBindingContext.getPath()] = true;\n }\n }\n\n const schemaObj = Validator.createValidationObject(info, args.storage);\n if (schemaObj) {\n data = setBoundValue({\n bindingContext: valueBc,\n data,\n newValue: schemaObj,\n dataBindingContext: args.storage.data.bindingContext\n });\n }\n }\n\n const _createShape = (obj: any, bc: BindingContext) => {\n for (const name of Object.keys(obj)) {\n const field = obj[name];\n if (!(field instanceof yup.Schema)) {\n const propBc = bc.navigate(name);\n let shape = _createShape(field, propBc);\n\n // sometimes we have deep definitions like BalanceSheetLayout/LiabilitiesReportSection\n // which creates correct validation object for LiabilitiesReportSection via 'createValidationObject'\n // but if we don't have column definition for BalanceSheetLayout, its treated as required object\n // which doesn't have to be true and we want to check it in metadata\n const isNullable = propBc.getProperty()?.isNullable();\n if (!propBc.getProperty() || isNullable) {\n shape = shape.nullable();\n }\n\n if (collections[name]) {\n obj[name] = yup.array().of(\n shape // can contain nested objects, has to be called with _createShape as well\n );\n if (isNullable) {\n obj[name] = obj[name].nullable();\n }\n } else {\n obj[name] = shape;\n }\n\n const info = storage.getInfo(propBc);\n if (info) {\n obj[name] = Validator.addRequiredValidation(obj[name], info, storage);\n }\n }\n }\n\n return yup.object().nullable().noUnknown(false).shape(obj).noUnknown(false);\n };\n\n return _createShape(data, args.storage.data.bindingContext).noUnknown(false);\n };\n}","import { IGetValueArgs, TValidatorFn, TValidatorMessageCallback } from \"@components/smart/FieldInfo\";\nimport * as yup from \"yup\";\nimport { Model } from \"./Model\";\nimport { ValidationErrorDetailType, ValidationErrorType } from \"../enums\";\nimport { TRecordAny } from \"../global.types\";\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\n\nexport const PHONE_REG = /^(\\+[1-9][0-9]{0,3})?[0-9]{4,}$/;\nexport const POSTAL_CODE_REG = /^\\d{2,3} ?\\d{2}$/;\n\nexport interface IValidationError {\n /** Type from schema, field or backend*/\n errorType?: ValidationErrorType;\n detailType?: ValidationErrorDetailType;\n message?: string;\n params?: TRecordAny;\n}\n\nexport interface IValidationSchema {\n columnNames: string [];\n context: IAppContext;\n storage: Model;\n useCollections: boolean;\n}\n\nexport type TBuildInValidationKey = \"type\" | \"min\" | \"max\" | \"integer\" | \"length\" | \"email\" | \"required\" | \"moreThan\" | \"lessThan\";\nexport type TCustomBuildInValidationMessageDef = Partial>;\n\ntype TCustomValidatorMessage = string | TValidatorMessageCallback;\n\ninterface ICustomValidator {\n validator: TValidatorFn;\n message?: TCustomValidatorMessage;\n}\n\n// todo if possible, add some typescript magic to conditionally pick correct interface based on selected ValidatorType\nexport type TValidatorSettings = (IStringValidatorSettings | INumberValidatorSettings | ICustomValidatorSettings) & {\n // custom validator callback which will cause 'message' to appear if 'false' is returned\n customValidator?: TValidatorFn | ICustomValidator[];\n // plain message is only used together with customValidator,\n // use TCustomBuildInValidationMessageDef for custom messages of built in validations\n message?: TCustomValidatorMessage | TCustomBuildInValidationMessageDef;\n};\n\nexport interface IStringValidatorSettings {\n // Set a required length for the string value\n // mutually exclusive with min and max\n length?: number;\n // Set a minimum length limit for the string value\n min?: number;\n // Set a maximum length limit for the string value\n max?: number;\n numberString?: boolean;\n}\n\nexport interface INumberValidatorSettings {\n // Set the minimum value allowed\n min?: number;\n excludeMin?: boolean;\n // Set the maximum value allowed\n max?: number;\n excludeMax?: boolean;\n}\n\nexport interface ICustomValidatorSettings {\n // completely custom yup schema, can be used instead of customValidator callback\n customSchema?: (args: IGetValueArgs) => yup.Schema;\n}\n\n// values has to exist in Common.toml Validation section\nexport enum ValidationMessage {\n Length = \"Validation.Length\",\n Max = \"Validation.Max\",\n Min = \"Validation.Min\",\n Above = \"Validation.Above\",\n Below = \"Validation.Below\",\n NotADate = \"Validation.NotADate\",\n NotARange = \"Validation.NotARange\",\n NotANumber = \"Validation.NotaNumber\",\n NotAYear = \"Validation.NotAYear\",\n Integer = \"Validation.Integer\",\n SmallNumber = \"Validation.SmallNumber\",\n BigNumber = \"Validation.BigNumber\",\n WrongEmail = \"Validation.WrongEmail\",\n Required = \"Validation.Required\",\n TemporalData = \"Validation.TemporalData\",\n InvalidValue = \"Validation.InvalidValue\",\n PositiveNumber = \"Validation.PositiveNumber\",\n PositiveNumberOrZero = \"Validation.PositiveNumberOrZero\",\n NonZeroNumber = \"Validation.NonZeroNumber\",\n}","import { IEntity, TEntityKey } from \"@odata/BindingContext\";\nimport {\n CompanyEntity,\n EntitySetName,\n INotificationEntity,\n INotificationSettingEntity,\n INotificationTypeEntity,\n INotificationTypeGroupEntity,\n IUserNotificationEntity,\n NotificationEntity,\n NotificationSettingEntity,\n UserNotificationEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { NotificationTypeCode } from \"@odata/GeneratedEnums\";\nimport { IBatchResult, OData } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport i18next from \"i18next\";\nimport { DefaultTheme } from \"styled-components/macro\";\n\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { addCompanyIdToUrl } from \"../contexts/appContext/AppContext.utils\";\nimport { TRecordAny } from \"../global.types\";\nimport {\n ROUTE_BANK_ACCOUNTS,\n ROUTE_BANK_TRANSACTIONS,\n ROUTE_INBOX,\n ROUTE_INBOX_CUSTOMER_APPROVAL,\n ROUTE_TICKETS\n} from \"../routes\";\nimport DateType, { getUtcDate } from \"../types/Date\";\nimport memoize from \"../utils/memoize\";\n\nexport const FAVICON_SIZE = 16;\n\nexport const redrawFavicon = async (notificationsCount = 0, theme: DefaultTheme): Promise => {\n const favicons = document.getElementsByClassName(\"favicon\") as HTMLCollectionOf;\n const canvas = await drawFaviconImage(notificationsCount, \"favicon/bright/favicon-32x32.png\", theme);\n\n for (const favicon of favicons) {\n favicon.href = canvas.toDataURL(\"image/png\");\n }\n};\n\nexport const drawFaviconImage = async (notificationsCount = 0, originalFavicon: string, theme: DefaultTheme): Promise => {\n return new Promise((resolve) => {\n const canvas = document.createElement(\"canvas\");\n const origFavicon = document.createElement(\"img\");\n\n canvas.width = FAVICON_SIZE;\n canvas.height = FAVICON_SIZE;\n\n const context = canvas.getContext(\"2d\");\n\n origFavicon.src = originalFavicon;\n\n origFavicon.onload = () => {\n // Draw Original Favicon as Background\n context.drawImage(origFavicon, 0, 0, FAVICON_SIZE, FAVICON_SIZE);\n\n if (notificationsCount) {\n // Draw Notification Circle\n context.beginPath();\n context.arc(canvas.width - FAVICON_SIZE / 3, FAVICON_SIZE / 3, FAVICON_SIZE / 3, 0, 2 * Math.PI);\n context.fillStyle = theme.C_SEM_el_bad;\n context.fill();\n\n // Draw Notification Number\n context.font = \"10px Lato\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillStyle = theme.C_BTN_4L_emph_text;\n context.fillText(notificationsCount.toString(), canvas.width - FAVICON_SIZE / 3, FAVICON_SIZE / 3);\n }\n\n resolve(canvas);\n };\n });\n};\n\nexport const getNotificationArguments = (notification: INotificationEntity): IEntity & {\n ErrorCode?: string;\n ErrorParameters?: Record;\n ErrorDetail?: TRecordAny | string;\n} => {\n const args = (notification.TextArgument && JSON.parse(notification.TextArgument)) ?? {};\n\n // date ErrorParameters should start with \"date\"\n if (args.ErrorParameters) {\n for (const key of Object.keys(args.ErrorParameters)) {\n if (key.startsWith(\"date\")) {\n args.ErrorParameters[key] = DateType.format(getUtcDate(args.ErrorParameters[key] as string));\n }\n }\n }\n\n const sharedArgs = {\n ...args,\n ErrorCode: args.ErrorCode,\n ErrorParameters: args.ErrorParameters,\n ErrorDetail: args.ErrorDetail\n } as (IEntity & {\n ErrorCode?: string;\n ErrorParameters?: Record;\n ErrorDetail?: TRecordAny | string;\n });\n\n switch (notification.NotificationTypeCode) {\n case NotificationTypeCode.InboxDocumentReceivment:\n return {\n ...sharedArgs,\n InboxMessages: args.InboxMessages as number\n };\n case NotificationTypeCode.DataBoxMessageReceivment:\n return {\n ...sharedArgs,\n Sender: args.Sender as string,\n MessageId: args.MessageId as number,\n Subject: args.Subject as string\n };\n case NotificationTypeCode.NewTicketCreated:\n case NotificationTypeCode.NewTicketFromCustomerPortalCreated:\n case NotificationTypeCode.NewTicketMessageFromAnAccountantReceivement:\n case NotificationTypeCode.NewTicketMessageFromACustomerReceivement:\n return {\n ...sharedArgs,\n TicketName: args.TicketName as string,\n TicketId: args.TicketId as number,\n Subject: args.Subject as string,\n Sender: args.Sender as string,\n };\n case NotificationTypeCode.InboxDocumentApprovalCanceled:\n case NotificationTypeCode.InboxDocumentApprovalResumed:\n return {\n ...sharedArgs,\n InboxItem: args.InboxItem ? args.InboxItem : i18next.t(\"Notifications:InboxDocumentApprovalCanceled.NoName\"),\n };\n case NotificationTypeCode.SystemUpdate:\n case NotificationTypeCode.SatisfactionSurvey:\n return {};\n case NotificationTypeCode.BankStatementImportError:\n }\n\n return args;\n};\n\nexport const getNotificationUrl = (notification: INotificationEntity): string => {\n const args = getNotificationArguments(notification);\n let url;\n\n switch (notification.NotificationType.Code) {\n case NotificationTypeCode.InboxDocumentReceivment:\n return addCompanyIdToUrl(ROUTE_INBOX, notification.Company?.Id);\n case NotificationTypeCode.InboxDocumentApprovalCanceled:\n case NotificationTypeCode.InboxDocumentApprovalResumed:\n case NotificationTypeCode.DocumentForApprovalReceivement:\n return addCompanyIdToUrl(ROUTE_INBOX_CUSTOMER_APPROVAL, notification.Company?.Id);\n case NotificationTypeCode.DataBoxMessageReceivment:\n url = \"https://www.mojedatovaschranka.cz/\";\n\n return url;\n case NotificationTypeCode.NewTicketCreated:\n case NotificationTypeCode.NewTicketFromCustomerPortalCreated:\n case NotificationTypeCode.NewTicketMessageFromAnAccountantReceivement:\n case NotificationTypeCode.NewTicketMessageFromACustomerReceivement:\n url = ROUTE_TICKETS;\n\n if (args?.TicketId) {\n url += `/${args.TicketId}`;\n }\n\n return addCompanyIdToUrl(url, notification.Company?.Id);\n case NotificationTypeCode.BankStatementImportError:\n case NotificationTypeCode.BankTransactionsMatchMultipleError:\n url = ROUTE_BANK_TRANSACTIONS;\n\n return addCompanyIdToUrl(url, notification.Company?.Id);\n case NotificationTypeCode.SatisfactionSurvey:\n return \"\";\n case NotificationTypeCode.SystemUpdate:\n return \"\";\n }\n\n return \"\";\n};\n\nfunction fetchNotifications(oData: OData, key?: TEntityKey): Promise> {\n return oData.getEntitySetWrapper(EntitySetName.Notifications).query(key)\n .expand(UserNotificationEntity.Notification,\n (q) => q.expand(NotificationEntity.NotificationType)\n .expand(NotificationEntity.Company, qq => qq.expand(CompanyEntity.Logo)))\n .fetchData();\n}\n\nexport const fetchNotificationsMemoized = memoize((oData: OData, key?: TEntityKey) =>\n fetchNotifications(oData, key), (oData, key) => key);\n\nexport interface INotificationsState {\n notificationSettings: INotificationSettingEntity;\n notificationTypeGroups: INotificationTypeGroupEntity[];\n notificationTypes: INotificationTypeEntity[];\n}\n\nexport const fetchNotificationsSettings = async (context: IAppContext, oData: OData): Promise => {\n const batch = oData.batch();\n\n batch.beginAtomicityGroup(\"group1\");\n\n const settingsId = context.getData().userSettings.NotificationSetting.Id.toString();\n batch.getEntitySetWrapper(EntitySetName.NotificationSettings).query(settingsId).expand(NotificationSettingEntity.TypeSettings);\n batch.getEntitySetWrapper(EntitySetName.NotificationTypeGroups).query();\n batch.getEntitySetWrapper(EntitySetName.NotificationTypes).query();\n\n const results = await batch.execute() as IBatchResult[];\n\n const notificationSettings = results[0].body.value as INotificationSettingEntity;\n const notificationTypeGroups = results[1].body.value as INotificationTypeGroupEntity[];\n const notificationTypes = results[2].body.value as INotificationTypeEntity[];\n\n const notificationsState: INotificationsState = {\n notificationSettings,\n notificationTypeGroups,\n notificationTypes\n };\n\n return notificationsState;\n};","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { isNumericType, Metadata } from \"@evala/odata-metadata/src\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\n\nimport { TRecordAny } from \"../global.types\";\nimport memoizeOne from \"../utils/memoizeOne\";\nimport { IEntityBase } from \"./GeneratedEntityTypes\";\n\nexport type TEntityKey = string | number;\n\ninterface IParsedProps {\n path?: string;\n parent?: BindingContext;\n key?: TEntityKey;\n isProperty?: boolean;\n isCollection?: boolean;\n isLocal?: boolean;\n isNew?: boolean;\n}\n\ninterface IBindingContextProps extends IParsedProps {\n metadata?: Metadata;\n isNew?: boolean;\n}\n\ninterface IParsedEntityPath {\n path: string;\n key: TEntityKey;\n keyProp?: string;\n}\n\nexport type TEntityPropValue = IEntity[] | IEntity | TEntityKey | string | number | boolean | Date;\n\nexport interface IEntity {\n [key: string]: any;\n}\n\n// todo find a way to make this work\nexport type TLocalContextString = `##${string}##`;\nexport const ENUM_KEY_PROP_NAME = \"Code\";\nexport const ENUM_DISPLAY_NAME = \"Name\";\nexport const SEPARATOR = \"/\";\n\nexport default class BindingContext {\n static NEW_ENTITY_ID_PROP: keyof Pick = \"#id\";\n static LOCAL_CONTEXT_SIGN = \"##\";\n static METADATA_KEY = \"_metadata\";\n static ENUM_KEY_PROP = ENUM_KEY_PROP_NAME;\n\n _metadata: Metadata;\n _path: string;\n _parent: BindingContext;\n _key: TEntityKey;\n\n _isProperty: boolean;\n _isCollection: boolean;\n _isNew: boolean;\n _isLocal: boolean;\n\n static isLocalContextPath(path: string): boolean {\n return splitPath(path).some(part => part.indexOf(BindingContext.LOCAL_CONTEXT_SIGN) === 0);\n }\n\n /**\n * Returns true if key is sort of meta property, which cannot be used with bc.navigate(key).\n * @param key\n */\n static isMetaProperty(key: string): boolean {\n return BindingContext.isLocalContextPath(key)\n || key === BindingContext.NEW_ENTITY_ID_PROP\n || key === BindingContext.METADATA_KEY;\n }\n\n constructor(properties: IBindingContextProps) {\n const {\n path, metadata, parent, key,\n isProperty, isCollection,\n isNew, isLocal\n } = properties;\n\n this._metadata = metadata;\n this._parent = parent;\n this._path = path;\n\n this._isProperty = isProperty;\n this._isCollection = isCollection;\n this._isNew = isNew;\n this._isLocal = isLocal;\n\n if (!isLocal && (key !== undefined && key !== null)) {\n const numberKey = Number(key);\n this._key = isNumericType(this.getKeyProperty()) && !isNaN(numberKey) ? numberKey : key;\n } else if (isDefined(key) && isLocal) {\n this._key = key;\n this._path = BindingContext.cleanLocalContext(path);\n }\n }\n\n static localContext = (property: string): string => {\n return splitPath(property).map(part => `${BindingContext.LOCAL_CONTEXT_SIGN}${part}${BindingContext.LOCAL_CONTEXT_SIGN}`).join(SEPARATOR);\n };\n\n static cleanLocalContext = (localContextPath: string): string => {\n return localContextPath.replace(new RegExp(`${BindingContext.LOCAL_CONTEXT_SIGN}`, \"g\"), \"\");\n };\n\n static each(data: TEntityPropValue, bc: BindingContext, callback: (value: TEntityPropValue, bindingContext: BindingContext) => boolean, ignoreInvalidProps?: boolean): void {\n if (bc.isCollection()) {\n const shouldProcessCollection = callback(data, bc) && Array.isArray(data);\n if (shouldProcessCollection) {\n const collection = data as IEntity[];\n collection.forEach((item: IEntity, idx: number) => {\n const itemBc = bc.addKey(item);\n BindingContext.each(collection[idx], itemBc, callback, ignoreInvalidProps);\n });\n }\n } else {\n const shouldProcessChildren = callback(data, bc);\n if ((bc.isNavigation() || bc.isRoot()) && isDefined(data) && shouldProcessChildren) {\n for (const key of Object.keys(data)) {\n if (!BindingContext.isMetaProperty(key)) {\n try {\n BindingContext.each((data as IEntity)[key], bc.navigate(key), callback, ignoreInvalidProps);\n } catch (e) {\n if (!ignoreInvalidProps) {\n throw e;\n }\n }\n }\n }\n }\n }\n }\n\n static find(data: IEntity, rootBindingContext: BindingContext, callback: (value: TEntityPropValue, bindingContext: BindingContext) => boolean): BindingContext {\n let foundEntityBc: BindingContext = null;\n\n BindingContext.each(data, rootBindingContext, (value, bindingContext) => {\n if (callback(value, bindingContext)) {\n foundEntityBc = bindingContext;\n }\n\n return !foundEntityBc;\n });\n\n return foundEntityBc;\n }\n\n /** Clean object of all (non local context) properties, that are not part of the given entity type*/\n static clean(data: T & any, rootBc: BindingContext): T {\n const cleanData = { ...data };\n const entityType = rootBc.getEntityType();\n const properties = entityType.getProperties();\n\n for (const key of Object.keys(cleanData)) {\n if (isNotDefined(properties[key]) && !BindingContext.isLocalContextPath(key)) {\n delete cleanData[key];\n continue;\n }\n\n const bc = rootBc.navigate(key);\n\n if (bc.isCollection()) {\n for (let i = 0; i < data[key].length; i++) {\n data[key][i] = BindingContext.clean(data[key][i], bc.addKey(data[key][i]));\n }\n } else if (bc.isNavigation()) {\n cleanData[key] = BindingContext.clean(cleanData[key], bc);\n }\n }\n\n return cleanData;\n }\n\n parsePath(path: string, parent: BindingContext): IParsedProps {\n const properties: IParsedProps = {\n path: null,\n isProperty: false,\n isCollection: false,\n parent: parent,\n isLocal: parent.isLocal() || BindingContext.isLocalContextPath(path),\n isNew: false,\n key: null\n };\n\n if (!parent.isLocal() && !properties.isLocal && parent.isProperty() && parent.getParent()) {\n throw new Error(`wrong path - cannot navigate from property: ${parent.toString()} / ${path}`);\n } else {\n const parentEntityType = parent.getEntityType();\n const { path: cleanPath, key, keyProp } = BindingContext.parseKey(path);\n const property = parentEntityType && parentEntityType.getProperty(cleanPath);\n\n properties.path = cleanPath;\n properties.isNew = keyProp === BindingContext.NEW_ENTITY_ID_PROP;\n\n if (properties.isLocal) {\n properties.path = BindingContext.cleanLocalContext(cleanPath);\n properties.parent = parent;\n } else if (!property) {\n throw new Error(`BindingContext: parsePath - wrong path '${parent.toString()}'/'${cleanPath}'`);\n }\n\n if (property && property.isNavigation()) {\n if (property.getType().isCollection()) {\n properties.isCollection = !key;\n properties.key = key;\n }\n } else {\n properties.isProperty = true;\n }\n\n if (properties.isLocal) {\n properties.key = key;\n }\n }\n\n return properties;\n }\n\n getProperty() {\n let entityType;\n\n if (this.isNavigation()) {\n entityType = this.getParent().getEntityType();\n } else {\n entityType = this.getEntityType();\n }\n\n return entityType && entityType.getProperty(this._path);\n }\n\n getKeyProperty() {\n return this.getEntityType().getKeys()[0];\n }\n\n getKeyPropertyName() {\n if (this.isNew()) {\n return BindingContext.NEW_ENTITY_ID_PROP;\n } else if (this.isLocal()) {\n return BindingContext.localContext(\"Id\");\n } else {\n return this.getKeyProperty().getName();\n }\n }\n\n getEntitySet() {\n return this._metadata.getEntitySet(this.getFullPath());\n }\n\n getLastValidEntitySet() {\n return this._metadata.getLastValidEntitySet(this.getFullPath());\n }\n\n getEntityType() {\n if (!this.isLocal()) {\n return this._metadata.getTypeForPath(this.getFullPath());\n }\n\n return null;\n }\n\n getParent() {\n return this._parent;\n }\n\n getRootParent() {\n let bindingContext: BindingContext = this;\n\n while (bindingContext.getParent()) {\n bindingContext = bindingContext.getParent();\n }\n\n return bindingContext;\n }\n\n static parseKey = (path: string, intKey = false): IParsedEntityPath => {\n const regExp = /(?[^(]+)(\\('?(?[^)]+)'?\\))?/;\n const matches = regExp.exec(path);\n\n let key: TEntityKey = matches.groups?.key;\n let keyProp;\n\n if (isDefined(key) && key.indexOf(\"=\") >= 0) {\n [keyProp, key] = key.split(\"=\");\n }\n\n key = key?.replace(/'/g, \"\");\n\n if (intKey) {\n key = parseInt(key);\n }\n\n return {\n path: matches.groups.path,\n key: key,\n keyProp\n };\n };\n\n // maybe move to get/set bound data utils somehow\n static createNewEntity(id: TEntityKey, obj: Partial = {}): Partial {\n return {\n ...obj,\n [BindingContext.NEW_ENTITY_ID_PROP]: id\n };\n }\n\n isRoot(): boolean {\n return !this.getParent();\n }\n\n isSame(bindingContext: BindingContext, withoutKey = false): boolean {\n return !areBindingContextsDifferent(this, bindingContext, withoutKey);\n }\n\n isInCollection(): boolean {\n return !isNotDefined(this.getKey()) && !this.isRoot();\n }\n\n isCollection(): boolean {\n return !!this._isCollection && !this.isRoot();\n }\n\n isValid = (): boolean => {\n let isOK = true;\n let bindingContext: BindingContext = this.getParent();\n\n while (isOK && bindingContext) {\n isOK = !bindingContext.isCollection() || isDefined(bindingContext.getKey());\n bindingContext = bindingContext.getParent();\n }\n\n return isOK;\n };\n\n // finds parent collection and returns its bindingContext plus remainingPath\n // false if no collection is found\n splitByCollectionPath(): { collectionBindingContext: BindingContext, path: string } {\n let isCollection = false;\n const paths: string[] = [];\n let bindingContext: BindingContext = this;\n\n while (!isCollection && !bindingContext.isRoot()) {\n isCollection = !!bindingContext.removeKey().isCollection();\n if (!isCollection) {\n paths.unshift(bindingContext.getPath());\n bindingContext = bindingContext.getParent();\n }\n }\n\n return isCollection ? {\n collectionBindingContext: bindingContext,\n path: paths.join(SEPARATOR)\n } : undefined;\n }\n\n /** Checks if any part of the binding context, other than the root context, is collection\n * Custom rootContext can be passed for cases like ChartOfAccounts/Accounts when the root itself is nested collection */\n isAnyPartCollection(rootContext?: BindingContext): boolean {\n let isAnyPartCollection = false;\n let bindingContext: BindingContext = this;\n\n while (!isAnyPartCollection && !bindingContext.isRoot() && !bindingContext.isSame(rootContext)) {\n isAnyPartCollection = isDefined(bindingContext.getKey()) || !!bindingContext.isCollection();\n bindingContext = bindingContext.getParent();\n }\n\n return isAnyPartCollection;\n }\n\n getParentCollection(rootContext?: BindingContext): BindingContext {\n let bindingContext: BindingContext = this;\n let isRoot: boolean;\n\n do {\n bindingContext = bindingContext.getParent();\n isRoot = !bindingContext || bindingContext.isSame(rootContext);\n } while (!bindingContext?.removeKey().isCollection() && !isRoot);\n\n return isRoot ? undefined : bindingContext;\n }\n\n /**\n * Checks if the binding context is first level collection with key\n * e.g. InvoicesReceived(1)/Items(1)/Description (true)\n * InvoicesReceived(1)/Items/Description (false)\n * true also for InvoicesReceived(1)/Items(1)/LabelSelection/Labels\n * even though Labels does not have key, but it is first level collection with key\n * ==> it should use fields info of the item(1)\n * */\n isinSecondLevelCollectionWithKey(): boolean {\n const secondLevelBc = this.getNthLevel(2);\n\n return secondLevelBc && isDefined(secondLevelBc.getKey()) && secondLevelBc.removeKey().isCollection();\n }\n\n getNthLevel(n: number): BindingContext {\n let currentLevel = this.getFullPath().split(SEPARATOR).length;\n\n if (n <= 0 || n > currentLevel) {\n return null;\n }\n\n let bindingContext: BindingContext = this;\n\n while (currentLevel > n) {\n bindingContext = bindingContext.getParent();\n currentLevel -= 1;\n }\n\n return bindingContext;\n }\n\n\n isProperty() {\n return !!this._isProperty;\n }\n\n isNavigation() {\n return !this.isProperty() && !!this.getParent();\n }\n\n /** Backend use Id as key property for regular entities and Code for enumerations */\n isEnum() {\n return this.getKeyPropertyName() === BindingContext.ENUM_KEY_PROP;\n }\n\n isNew() {\n return !!this._isNew;\n }\n\n isLocal() {\n return !!this._isLocal;\n }\n\n /**\n * Creates new BindingContext with path merged from current path and given path.\n *\n * @param path {string} Can be complex path with '/'. In that case creates deep BindingContext structure.\n * @returns {BindingContext}\n */\n navigate(path: string) {\n const parts = splitPath(path);\n let bindingContext: BindingContext = this;\n\n for (let i = 0; i < parts.length; i++) {\n const properties = {\n metadata: this._metadata,\n ...this.parsePath(parts[i], bindingContext)\n };\n bindingContext = new BindingContext(properties);\n }\n\n return bindingContext;\n }\n\n /** Returns false if the navigation fails */\n isValidNavigation(path: string): boolean {\n try {\n this.navigate(path);\n } catch {\n return false;\n }\n\n return true;\n }\n\n * iterateNavigation(navigationPropertyName: string, entities: IEntity[]) {\n const navigationBindingContext = this.navigate(navigationPropertyName);\n for (const entity of entities || []) {\n yield {\n entity: entity,\n bindingContext: navigationBindingContext.addKey(entity)\n };\n }\n }\n\n /** If current bindingContext isn't property, navigates just like navigate method.\n * If current bindingContext is property, takes parent and navigates from it instead - returns sibling bindingContext.*/\n navigateWithSiblingFallback(path: string) {\n if (this.isNavigation() || !this.getParent()) {\n return this.navigate(path);\n } else {\n return this.getParent().navigate(path);\n }\n }\n\n getNavigationBindingContext = (displayName?: string) => {\n return this.isNavigation() ? this.navigate(displayName ?? this.getKeyPropertyName()) : this;\n };\n\n getKey() {\n return this._key;\n }\n\n /**\n * Creates new binding context, with same parent and adds key\n * InvoicesReceived(1)/Items and InvoicesReceived(1)/Items(1) will be two different context instances with same parent InvoicesReceived(1)\n *\n * @param key {string|object} key string or entity value object\n * @param isNew {boolean} whether returned binding context represents new entity\n * @returns {BindingContext}\n */\n addKey(key: TEntityKey | IEntity, isNew = false) {\n // key can be '0'\n if (isNotDefined(this.getKey())) {\n if (typeof key === \"object\") {\n if (BindingContext.NEW_ENTITY_ID_PROP in key) {\n key = ((key as IEntity)[BindingContext.NEW_ENTITY_ID_PROP] as string);\n isNew = true;\n } else {\n const propertyName = isNew ? BindingContext.NEW_ENTITY_ID_PROP : this.getKeyPropertyName();\n key = ((key as IEntity)[propertyName] as string);\n }\n }\n\n return new BindingContext({\n path: this.getPath(),\n metadata: this._metadata,\n parent: this.getParent(),\n key,\n isCollection: false,\n isLocal: this.isLocal(),\n isNew\n });\n\n } else {\n throw new Error(\"key already exists\");\n }\n }\n\n /**\n * Removes key and return new binding context.\n * */\n removeKey() {\n return new BindingContext({\n path: this.getPath(true),\n metadata: this._metadata,\n parent: this.getParent(),\n key: null,\n isCollection: !!(this.getProperty()?.getType().isCollection())\n });\n }\n\n toString(withoutKey = false): string {\n return this.getFullPath(withoutKey);\n }\n\n getPath(withoutKey = false) {\n let path = this._path;\n let key = this.getKey();\n\n if (!withoutKey && !isNotDefined(key)) {\n if (typeof key === \"string\") {\n key = `'${key}'`;\n }\n\n if (this.isNew()) {\n path = `${this._path}(${BindingContext.NEW_ENTITY_ID_PROP}=${key})`;\n } else {\n path = `${this._path}(${key})`;\n }\n }\n\n return this.isLocal() ? `${BindingContext.LOCAL_CONTEXT_SIGN}${path}${BindingContext.LOCAL_CONTEXT_SIGN}` : path;\n }\n\n /**\n * Returns path up to the first parent that is not root (better support for local context, then with isNavigation check)\n * @param {boolean} withoutKey to ignore key of the binding context\n * @param {BindingContext} rootContext defines the root binding context, up to which the search can go (instead of the rootParent of this BindingContext)\n * e.g. for \"ChartsOfAccounts(1)/Accounts/Name\" with \"ChartsOfAccounts(1)/Accounts\" set as root context, \"Name\" will be returned instead of \"Accounts/Name\"\n */\n getNavigationPath(withoutKey?: boolean, rootContext?: BindingContext) {\n if (this.isRoot()) {\n return \"\";\n }\n\n return this.getPathBy((bindingContext) => {\n if (rootContext && rootContext.getFullPath(true) === bindingContext.getParent()?.getFullPath(true)) {\n return false;\n }\n return bindingContext.getParent() && !bindingContext.getParent().isRoot();\n }, withoutKey);\n }\n\n /**\n * Returns path up to the first parent that is not navigation or is entitySet (isNavigation === false || isCollection === true)\n */\n getEntityPath(withoutKey?: boolean) {\n return this.getPathBy((bindingContext) => {\n return bindingContext.getParent() && (bindingContext.getParent().isNavigation()) && !bindingContext.getParent().isCollection();\n }, withoutKey);\n }\n\n getPathBy(testFn: (bindingContext: BindingContext) => boolean, withoutKey?: boolean) {\n let path = this.getPath(withoutKey);\n let bindingContext: BindingContext = this;\n\n while (testFn(bindingContext)) {\n bindingContext = bindingContext.getParent();\n path = `${bindingContext.getPath(withoutKey)}/${path}`;\n }\n\n return path;\n }\n\n getFullPath(withoutKey = false) {\n let currentContext: BindingContext = this;\n let path;\n\n do {\n if (path) {\n path = `${currentContext.getPath(withoutKey)}/${path}`;\n } else {\n path = this.getPath(withoutKey);\n }\n\n currentContext = currentContext.getParent();\n } while (currentContext);\n\n return path;\n }\n\n getFullPathAsArrayOfContexts() {\n const contexts = [];\n let currentContext: BindingContext = this;\n\n do {\n contexts.unshift(currentContext);\n currentContext = currentContext.getParent();\n } while (currentContext);\n\n return contexts;\n }\n\n createNewBindingContext(path: string) {\n return createBindingContext(path, this._metadata);\n }\n}\n\nexport const createBindingContext = (path: string, metadata: Metadata) => {\n const [rootEntitySet, ...navigation] = splitPath(path);\n\n let entitySetName = rootEntitySet.split(\"(\")[0];\n const { key, keyProp } = BindingContext.parseKey(rootEntitySet);\n const isLocal = BindingContext.isLocalContextPath(path);\n\n if (isLocal) {\n entitySetName = BindingContext.cleanLocalContext(entitySetName);\n }\n\n const bindingContext = new BindingContext({\n path: entitySetName,\n key,\n isLocal,\n isNew: keyProp === BindingContext.NEW_ENTITY_ID_PROP,\n metadata: metadata,\n isCollection: true\n });\n\n if (navigation.length > 0) {\n return bindingContext.navigate(navigation.join(SEPARATOR));\n } else {\n return bindingContext;\n }\n};\n\nexport const getBindingContext = memoizeOne((entitySet: string, metadata: Metadata): BindingContext => {\n return createBindingContext(entitySet, metadata);\n});\n\nexport const areBindingContextsDifferent = (bc1: BindingContext, bc2: BindingContext, withoutKey = false): boolean => {\n if (bc1 && bc2) {\n return bc1.toString(withoutKey) !== bc2.toString(withoutKey);\n }\n\n return !!((!bc1 && bc2) || (bc1 && !bc2));\n};\n\nexport const createPath = (...args: string[]): string => {\n return args.filter(path => !!path).join(SEPARATOR);\n};\n\nexport const splitPath = (path: string): string[] => {\n return path.split(SEPARATOR);\n};\n","// todo better error interface, mby rename to BackendError - custom endpoints returns this error as well\nimport { BackendErrorCode } from \"../enums\";\n\nexport class ODataInnerError {\n _type: string;\n _message: string;\n _stackTrace: string | string[];\n\n constructor(type: string, message: string, stackTrace: string | string[]) {\n this._type = type;\n this._message = message;\n this._stackTrace = stackTrace;\n }\n}\n\nexport type ODataPropertyValue = string | number | boolean | Date;\n\nexport interface IEntityReference {\n entityType: string;\n id?: number;\n temporaryGuid?: string;\n}\n\nexport interface IValidationMessage {\n code: string;\n entity: IEntityReference;\n message: string;\n messageParameters?: Record;\n property?: string;\n}\n\nexport function isODataError(error: unknown): error is ODataError {\n return error instanceof ODataError;\n}\n\nexport class ODataError {\n _code: BackendErrorCode;\n _message: string;\n _innerError: ODataInnerError;\n _validationMessages: IValidationMessage[];\n\n constructor(code: BackendErrorCode, message: string, innerError?: ODataInnerError, validationMessages?: IValidationMessage[]) {\n this._code = code;\n this._message = message;\n this._innerError = innerError;\n this._validationMessages = validationMessages;\n }\n\n toString(): string {\n return `ODataError: ${this._code} - ${this._message}`;\n }\n}","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n}\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport default isPlainObject;\n","import { Property } from \"@evala/odata-metadata/src\";\nimport { ODataPropertyValue } from \"@odata/Data.types\";\nimport { memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { areSimpleValuesEqual, forEachKey, isDefined, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport isPlainObject from \"is-plain-object\";\nimport { cloneDeep, isEqual } from \"lodash\";\n\nimport { ODATA_API_URL } from \"../constants\";\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { CacheStrategy } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport { IAdditionalData, Model } from \"../model/Model\";\nimport { getUtcDate } from \"../types/Date\";\nimport customFetch from \"../utils/customFetch\";\nimport BindingContext, { IEntity } from \"./BindingContext\";\nimport { IChartOfAccountsEntity, IEntityBase } from \"./GeneratedEntityTypes\";\nimport { BatchRequest, ICommandArgs } from \"./OData\";\n\nexport const getUniqueContextsSuffix = (bindingContext1: BindingContext, bindingContext2: BindingContext = null): BindingContext[] => {\n const bindingContexts1 = bindingContext1.getFullPathAsArrayOfContexts();\n const bindingContexts2 = bindingContext2 && bindingContext2.getFullPathAsArrayOfContexts();\n\n // remove the mutual path prefix\n while (\n bindingContexts2?.[0]\n && (bindingContexts1[0].getPath() === bindingContexts2[0].getPath()\n || bindingContexts1[0].getPath() === bindingContexts2[0].getPath(true))) {\n bindingContexts1.shift();\n bindingContexts2.shift();\n }\n\n return bindingContexts1;\n};\n\nexport const getUniqueContextsSuffixAsString = (bindingContext1: BindingContext, bindingContext2: BindingContext, separator = \"/\"): string => {\n const suffix = getUniqueContextsSuffix(bindingContext1, bindingContext2);\n return suffix.map(bc => bc.getPath(true)).join(separator);\n};\n\nexport const getSharedContextPrefix = (bindingContext1: BindingContext, bindingContext2: BindingContext): BindingContext => {\n let parentBc = bindingContext2.getParent();\n\n while (parentBc && bindingContext1.getNavigationPath(true) !== parentBc.getNavigationPath(true)) {\n parentBc = parentBc.getParent();\n }\n\n return parentBc || bindingContext2;\n};\n\ninterface IGetBoundValue {\n bindingContext: BindingContext;\n data: any | any[];\n dataBindingContext?: BindingContext;\n}\n\nexport interface ISetBoundValue extends IGetBoundValue {\n newValue: any;\n preventCloning?: boolean;\n}\n\nexport interface ISaveEntity {\n entity: IEntity;\n bindingContext: BindingContext;\n originalEntity?: IEntity;\n batch: BatchRequest;\n queryParams?: TRecordAny;\n changesOnly?: boolean;\n isNew?: boolean;\n // list of entities (of navigation or collection properties) with independent entity set that will be handled by prepareBatch\n // to create PATCH (for navigation) or CREATE/PATCH/REMOVE (for collection) requests automatically\n updateEnabledFor?: string[];\n customBatchId?: string;\n etag?: string;\n}\n\n/**\n * Retrieves bound data from the data structure that can specify its root binding context\n *\n * @param arguments\n * @param {BindingContext} arguments.bindingContext Points to where the value is bound\n * @param {object} arguments.data\n * @param {BindingContext} [arguments.dataBindingContext] Points to the starting point of the data object\n * @returns {any}\n */\nexport const getBoundValue = ({ bindingContext, data, dataBindingContext }: IGetBoundValue) => {\n let value = data;\n\n if (!data || isObjectEmpty(data)) {\n return undefined;\n }\n\n const bindingContexts = getUniqueContextsSuffix(bindingContext, dataBindingContext);\n\n for (const bindingContext of bindingContexts) {\n const path = bindingContext.getPath(true);\n\n // key can be '0'\n if (isDefined(bindingContext.getKey())) {\n const keyName = bindingContext.getKeyPropertyName();\n // data object can either contain array of entities or object with the name of the navigation that then contains the array of entities\n // e.g. for Items(1) the data object can be\n // either [{Item1}, {Item2}]\n // or {Items: [{Item1}, {Item2}]\n if (!Array.isArray(value)) {\n value = value && value[path];\n }\n\n value = value && (value as any[]).find(item => item?.[keyName] === bindingContext.getKey());\n } else {\n value = value && value[path];\n }\n }\n\n return value;\n};\n\nexport interface ICachedFieldState {\n isRequired?: boolean;\n isVisible?: boolean;\n}\n\nexport interface IStorageSmartFieldValuesWithoutError {\n value: TValue;\n origValue?: TValue;\n additionalFieldData?: IAdditionalData;\n}\n\nexport interface IStorageSmartFieldValues extends IStorageSmartFieldValuesWithoutError, ICachedFieldState {\n}\n\n/**\n * Sets value into the data structure to path specified by the bindingContext.\n * Returns updated data structure.\n *\n * @param arguments\n * @param {BindingContext} arguments.bindingContext Points to where the value is bound\n * @param {object|array} arguments.data\n * @param {any} arguments.newValue\n * @param {BindingContext} [arguments.dataBindingContext] Points to the starting point of the data object\n * @param {boolean} [arguments.preventCloning] Whether the data structure should be treated as immutable or not\n * @returns {object|array}\n */\n\nexport const setBoundValue = ({\n bindingContext,\n data,\n newValue,\n dataBindingContext,\n preventCloning\n }: ISetBoundValue) => {\n const _getValueWithKey = (bindingContext: BindingContext, value: any, path: string) => {\n const keyName = bindingContext.getKeyPropertyName();\n\n // same approach as in getBoundValue, see explanation there\n if (!Array.isArray(value)) {\n // if the collection object doesn't exist, create it, together with the new entity\n if (!value[path]) {\n value[path] = [{\n [keyName]: bindingContext.getKey()\n }];\n }\n value = value[path];\n }\n\n let indexOfItem = (value as any[]).findIndex(item => item[keyName] === bindingContext.getKey());\n\n // if entity doesn't exist, create it\n if (indexOfItem < 0) {\n value.push({\n [keyName]: bindingContext.getKey()\n });\n indexOfItem = value.length - 1;\n }\n\n return [value, indexOfItem];\n };\n\n const _setValue = (obj: T, key: keyof T, value: any) => {\n if ((Array.isArray(obj) && isNotDefined(value))) {\n obj.splice(key as number, 1);\n } else if (value === undefined) {\n delete obj[key];\n } else {\n obj[key] = value;\n }\n };\n\n let updatedData;\n\n if (preventCloning) {\n updatedData = data;\n } else {\n updatedData = Array.isArray(data) ? [...data] : { ...data };\n }\n\n let value = updatedData;\n\n const bindingContexts = getUniqueContextsSuffix(bindingContext, dataBindingContext);\n\n for (let i = 0; i < bindingContexts.length; i++) {\n const bindingContext = bindingContexts[i];\n const path = bindingContext.getPath(true);\n\n if (i === bindingContexts.length - 1) {\n // key can be '0'\n if (isDefined(bindingContext.getKey())) {\n const [val, indexOfItem] = _getValueWithKey(bindingContext, value, path);\n\n value = val;\n _setValue(value, indexOfItem, newValue);\n } else {\n _setValue(value, path, newValue);\n }\n } else {\n if (isDefined(bindingContext.getKey())) {\n const [val, indexOfItem] = _getValueWithKey(bindingContext, value, path);\n value = val;\n\n if (!preventCloning) {\n // copy the object to prevent accessing old object reference\n value[indexOfItem] = { ...value[indexOfItem] };\n }\n\n value = value[indexOfItem];\n\n } else {\n if (isPlainObject(value[path])) {\n if (!preventCloning) {\n // copy the object to prevent accessing old object reference\n value[path] = { ...value[path] };\n }\n }\n\n if (!value[path]) {\n value[path] = {};\n }\n\n value = value[path];\n }\n }\n }\n\n return updatedData;\n};\n\nexport const setNestedValue = (value: TValue | TRecordAny, path: string, data: TRecordAny) => {\n let schema = data;\n const parsedPath = path.split(\"/\");\n const len = parsedPath.length;\n\n for (let i = 0; i < len - 1; i++) {\n let elem: number | string = parsedPath[i];\n if (!schema[elem]) {\n const nextIdx = Number.parseInt(parsedPath[i + 1]);\n const idx = Number.parseInt(elem);\n if (!isNaN(idx)) {\n elem = idx;\n }\n schema[elem] = isNaN(nextIdx) ? {} : [];\n }\n\n schema = schema[elem];\n }\n\n schema[parsedPath[len - 1]] = value;\n return data;\n};\n\nexport const getNestedValue = (path: string, data: TRecordAny) => {\n let schema = data;\n const parsedPath = path.split(\"/\");\n const len = parsedPath.length;\n for (let i = 0; (i < len - 1) && schema; i++) {\n const elem = parsedPath[i];\n schema = schema[elem];\n }\n\n return schema ? schema[parsedPath[len - 1]] : undefined;\n};\n\n/**\n * Method returns same value as EntityType.getFullName(), but from property metadata. When using with navigation\n * property, entity is the property value itself and propName should be default empty string\n * @param entity\n * @param propName\n */\nexport function getFullEntityTypeFromProp(entity: IEntityBase, propName = \"\"): string {\n return entity?._metadata?.[propName]?.type?.slice(1);\n}\n\nexport function getEntityTypeFromProp(entity: IEntityBase, propName = \"\"): string {\n const fullEntityType = getFullEntityTypeFromProp(entity, propName);\n const parts = fullEntityType.split(\".\");\n return parts[parts.length - 1];\n}\n\ninterface IGetSubordinateEntitySetPath {\n bindingContext: BindingContext;\n navigationProperty: string;\n entity: IEntity;\n dataBindingContext?: BindingContext;\n}\n\n// try to find first entity type that contains property with the same entity type as navigationProperty and has Subordinate annotation\n// this means that the navigationProperty doesn't have its own entity set, but it has to be put together from the parent entity\n// e.g. propBindingContext === \"InvoicesReceived(2)/Labels/Label\" => entity set is \"LabelHierarchies(1)/Labels\"\n// for this to work we always have to load the reference as additionalProperty (in this case LabelHierarchies Id has to be present in \"entity\" object)\nexport const getSubordinateEntitySetPath = (args: IGetSubordinateEntitySetPath) => {\n const metadata = args.bindingContext._metadata;\n // getSubordinateEntitySetPath sometimes need wholeEntityTree, but we don't know (and cannot determine) correct dataBindingContext,\n // which should be used to obtain property value from args.entity.\n // Usually this function is called with data object with dataBindingContext same as bindingContext\n const dataBindingContext = args.dataBindingContext ?? args.bindingContext.getRootParent();\n\n const value = getBoundValue({\n bindingContext: args.bindingContext.navigate(args.navigationProperty),\n dataBindingContext,\n data: args.entity\n });\n const navigationEntityTypeName = getFullEntityTypeFromProp(value) ?? args.bindingContext.navigate(args.navigationProperty).getEntityType().getFullName();\n let subordinateEntitySetPath;\n\n // special case\n // Account has navigation property Parent which references the same Account entity type\n // differently from e.g. InvoiceReceived/BillingAddress which is dependent on the parent\n // the Account is not, it is still dependent on the ChartOfAccounts and so correct request is\n // {\n // \"Parent\": {\n // \"@odata.id\": \"ChartsOfAccounts(4)/Accounts(927)\"\n // }\n // }\n // this CANNOT be inferred from the data and has, thus this condition is needed\n if (navigationEntityTypeName === args.bindingContext.getEntityType().getFullName()) {\n subordinateEntitySetPath = args.bindingContext.removeKey().toString();\n } else {\n if (isNotDefined(value) || isObjectEmpty(value)) {\n // if value is not set, we don't need to know SubordinateEntitySetPath. In some case, there is none, e.g. if\n // date is out of any FY, there is no chart of account and therefore account is not set either\n return null;\n }\n for (const entitySet of Object.values(metadata.entitySets)) {\n if (subordinateEntitySetPath) {\n break;\n }\n\n const entityTypeName = entitySet.getType().getFullName();\n const entityType = metadata.entities[entityTypeName];\n\n for (const property of Object.values(entityType.getProperties())) {\n const propertyEntityTypeName = property.getType().getFullName();\n\n if (!property.isSubordinate() || entityTypeName === navigationEntityTypeName) {\n // we are only interested in subordinate properties, those can be used to compose nested entity set path like ChartsOfAccounts(4)/Accounts(927)\n // and we have to avoid loops caused by properties that refer to the same entity type, like Account/Children, where Children are again Accounts\n continue;\n }\n\n if (propertyEntityTypeName === navigationEntityTypeName) {\n let foundRefProp: Property;\n let entity: IEntity = null;\n let currentBc = args.bindingContext;\n let skip = false;\n\n while (!foundRefProp && currentBc) {\n entity = getBoundValue({\n bindingContext: currentBc,\n dataBindingContext,\n data: args.entity\n });\n const [refProp, ...rest] = Object.values(currentBc.getEntityType().getProperties()).filter(p => {\n const storedEntityTypeName = getFullEntityTypeFromProp(entity[p.getName()]);\n const type = storedEntityTypeName ?? p.getType().getFullName();\n const areTypesEqual = type === entityTypeName;\n\n // special case now relevant for Documents\n // there is one shared RegularDocumentItem shared for multiple different document types\n // => we need to iterate over all of them, to find the one that actually is equal with storedEntityTypeName\n // without throwing an error\n if (!areTypesEqual && storedEntityTypeName && entityType.getBaseType().getFullName() === p.getType().getFullName()) {\n // skip when the BaseType (Document) is same, but the actual type (e.g. InvoiceReceived vs InvoiceIssued) is different\n skip = true;\n }\n\n return areTypesEqual;\n });\n\n if (rest?.length > 0) {\n throw new Error(`${currentBc.toString()} contains multiple references to ${entityTypeName}, which is wrong. Ask backend dev to fix this.`);\n }\n\n foundRefProp = refProp;\n currentBc = currentBc.getParent();\n }\n\n if (skip) {\n continue;\n }\n\n if (!foundRefProp || isNotDefined(entity?.[foundRefProp.getName()])) {\n throw new Error(`${args.bindingContext.navigate(args.navigationProperty).toString()} data object is missing reference to ${entityTypeName}. Did you forget to add it as 'additionalProperty'?`);\n }\n\n subordinateEntitySetPath = `${entitySet.getName()}(${entity[foundRefProp.getName()].Id})/${property.getName()}`;\n break;\n }\n }\n }\n }\n\n return subordinateEntitySetPath;\n};\n\ninterface IWholeEntityTree {\n // whole entity from the root binding context\n // needed for getSubordinateEntitySetPath so that we can lookup references\n // that are not present on the entity but instead on some of its parents\n wholeEntityTree?: IEntity;\n dataBindingContext?: BindingContext;\n}\n\n/**\n * Prepares body object and creates additional batch calls based on differences between original state of entity and its current state\n *\n * How different properties are handled\n * 1. simple properties - no changes\n * e.g. InvoicesReceived(1)/NumberTheirs\n * 2. navigation properties\n * a) with referential constraint - sent as simple property instead of navigation (e.g. as CurrencyCode: \"CZK\" instead of Currency: {code: \"CZK\"}\n * e.g. InvoicesReceived(1)/Currency\n * b) subordinate navigation - sent as @odata.delta\n * e.g. InvoicesReceived(1)/DocumentBillingBankAccount\n * c) with custom entity set - referenced with @odata.id, POST request are sent automatically for new ones, PATCH/DELETE aren't => we would have to keep originalEntity in sync\n * e.g. InvoicesReceived(1)/BusinessPartner\n * 3. collections\n * a) subordinate collections - sent as @odata.delta or @odata.removed\n * e.g. InvoicesReceived(1)/Items\n * b) with custom entity set - referenced with @odata.id, POST/PATCH/DELETE are all handled automagically\n * e.g. BankStatements(1)/Transactions\n *\n */\n\ninterface IPreparePropertyArgs {\n /** Name of the property */\n prop: string;\n propBindingContext: BindingContext;\n /** Name of the key property of current entity type */\n propKeyName: string;\n /** Name of the navigation set, if exists (for independent navigation property or collection) */\n navigationEntitySet: string;\n navigationEntitySetBindingContext: BindingContext;\n}\n\nexport interface IPrepareBatchResult {\n values: TRecordAny;\n /** Array of callbacks that will add into the batch requests that are dependent on the parent one */\n afterRequests: addRequestCallback[];\n}\n\n\nexport const prepareBatch = (args: ISaveEntity & IWholeEntityTree, shouldKeepKey?: boolean): IPrepareBatchResult => {\n const values: TRecordAny = {};\n const afterRequests: addRequestCallback[] = [];\n\n args.originalEntity = args.originalEntity ?? {};\n args.wholeEntityTree = args.wholeEntityTree ?? args.entity;\n\n if (!args.entity) {\n return {\n values: args.entity,\n afterRequests\n };\n }\n\n if (!shouldKeepKey) {\n // remove new #id or regular id\n args.entity = removeKeyProperty(args.entity, args.bindingContext);\n }\n\n // check what changed and create oData calls base on those changes\n for (const prop of Object.keys(args.entity)) {\n if (BindingContext.isMetaProperty(prop)) {\n continue;\n }\n\n const propBindingContext = args.bindingContext.navigate(prop);\n const propKeyName: string = propBindingContext.getKeyPropertyName();\n\n if (\n (propBindingContext.getProperty().isReadOnly() && propBindingContext.getPath() !== propKeyName) // keep key property if its not already removed\n || (propBindingContext.getProperty().isImmutable() && !args.bindingContext.isNew())\n ) {\n continue;\n }\n\n // try to retrieve entity set - either independent one (InvoicesReceived), or nested for subordinate entity (ChartOfAccounts(1)/Accounts)\n let navigationEntitySet = null;\n let navigationEntitySetBindingContext = null;\n\n if (propBindingContext.isNavigation()) {\n try {\n // type of the navigation property can be specified in _metadata.type\n const metadataEntityTypeFullName = getFullEntityTypeFromProp(args.entity[prop]);\n\n if (metadataEntityTypeFullName) {\n navigationEntitySet = propBindingContext._metadata.getEntitySetForEntityType(propBindingContext._metadata.entities[metadataEntityTypeFullName])?.getName();\n if (!navigationEntitySet) {\n /**\n * Tries also to get subordinateEntitySet for properties with type in _metadata,\n * e.g. DocumentItem relation on MinorAssetItem\n */\n navigationEntitySet = getSubordinateEntitySetPath({\n bindingContext: args.bindingContext,\n dataBindingContext: args.dataBindingContext,\n navigationProperty: prop,\n entity: args.wholeEntityTree\n });\n }\n } else {\n navigationEntitySet = propBindingContext.getEntitySet().getName();\n }\n } catch (e) {\n const preparePropEntityTypeName = propBindingContext.getEntityType().getFullName();\n if (!propBindingContext.getProperty().isSubordinate() || preparePropEntityTypeName === args.bindingContext.getEntityType().getFullName()) {\n navigationEntitySet = getSubordinateEntitySetPath({\n bindingContext: args.bindingContext,\n dataBindingContext: args.dataBindingContext,\n navigationProperty: prop,\n entity: args.wholeEntityTree\n });\n }\n }\n }\n\n if (navigationEntitySet) {\n navigationEntitySetBindingContext = args.bindingContext.createNewBindingContext(navigationEntitySet);\n }\n\n const prepareArgs: IPreparePropertyArgs = {\n prop, propBindingContext, propKeyName, navigationEntitySet, navigationEntitySetBindingContext\n };\n let result: IPreparePropertyResult;\n\n if (propBindingContext.isCollection()) {\n result = prepareCollection(args, prepareArgs);\n } else if (propBindingContext.isNavigation()) {\n result = prepareNavigationProperty(args, prepareArgs);\n } else {\n result = prepareSimpleProperty(args, prepareArgs);\n }\n\n if (result?.prop) {\n values[result.prop] = result.value;\n }\n\n if (result?.afterRequests) {\n afterRequests.push(...result.afterRequests);\n }\n }\n\n return {\n values, afterRequests\n };\n};\n\ntype addRequestCallback = (parentRef: ODataPropertyValue) => void;\n\ninterface IPreparePropertyResult {\n prop: string;\n value: TRecordAny;\n afterRequests?: addRequestCallback[];\n}\n\nexport const findPropertyOfType = (bindingContext: BindingContext, entityTypeName: string): Property => {\n return Object.values(bindingContext.getEntityType().getProperties()).find((property: Property) => property.type.name === entityTypeName);\n};\n\nexport const isPropertyRequiredOnParent = (property: Property): boolean => {\n return !property || property.isNullable();\n};\n\nconst prepareSimpleProperty = (args: ISaveEntity, {\n prop,\n propKeyName\n}: IPreparePropertyArgs): IPreparePropertyResult => {\n if (args.changesOnly && isEqual(args.entity[prop], args.originalEntity[prop]) && propKeyName !== prop) {\n return null;\n }\n\n let value = args.entity[prop];\n\n if (value === \"\") {\n // backend fails on empty strings if some other check is implemented (e.g. email)\n // sending null instead of \"\"\n value = null;\n }\n\n return {\n prop, value\n };\n};\n\nconst prepareNavigationProperty = (saveArgs: ISaveEntity, {\n prop,\n propBindingContext,\n propKeyName,\n navigationEntitySet,\n navigationEntitySetBindingContext\n}: IPreparePropertyArgs): IPreparePropertyResult => {\n const referentialConstraint = propBindingContext.getProperty().getReferentialConstraint();\n\n let returnPropName = null;\n let returnValue = null;\n const afterRequests: addRequestCallback[] = [];\n\n if (referentialConstraint || navigationEntitySet) {\n const isUpdateEnabled = !!saveArgs.updateEnabledFor?.includes(propBindingContext.getNavigationPath(true));\n // for saveArgs.changesOnly === false, we only want to know if the navigation points to another object\n const newEntity = saveArgs.entity[prop] as IEntity;\n // check also new entity ID prop to support cases where there is no navigation saved and we create\n // new object without ID (propKeyName is undefined in that case for both - entity and originalEntity)\n const newEntityId = newEntity?.[BindingContext.NEW_ENTITY_ID_PROP] ?? newEntity?.[propKeyName];\n const hasReferenceChanged = !isEqual(newEntityId, (saveArgs.originalEntity[prop] as IEntity)?.[propKeyName]);\n // hasReferenceChanged can be false, but the entity does not actually exist on backend (doesn't have id)\n // e.g. BusinessPartner on document, when the BusinessPartner entity was deleted and the document still exists\n // => originalEntity contains the same data, but we have to send new POST request to create new BusinessPartner\n const isIndependentNavigationWithoutReference = !referentialConstraint && navigationEntitySet && !((saveArgs.entity[prop] as IEntity)?.[propKeyName]);\n // for saveArgs.changesOnly === true, we want to know whether any change has happened to create patch request\n let hasAnythingChanged = false;\n\n if (saveArgs.changesOnly && isUpdateEnabled) {\n hasAnythingChanged = !isEqual((saveArgs.entity[prop] as IEntity), (saveArgs.originalEntity[prop] as IEntity));\n }\n\n // check if the parent reference is nullable to establish the direction of the relation dependency\n // to correctly order the requests in batch\n // e.g. when creating new InvoiceReceived - InvoiceReceived requires BusinessPartner to be created => batch order is [BusinessPartner, InvoiceReceived]\n // but when creating new Account - BalanceSheetLayout requires Account => batch order is [Account, BalanceSheetLayout]\n\n const parentEntityType = saveArgs.bindingContext.getEntityType();\n const parentEntityTypeName = parentEntityType.getName();\n const navigationToParent = findPropertyOfType(navigationEntitySetBindingContext, parentEntityTypeName);\n\n if (!saveArgs.changesOnly || hasReferenceChanged || hasAnythingChanged || isIndependentNavigationWithoutReference) {\n if (referentialConstraint) {\n // for navigation properties with referentialConstraint like Currency\n // use CurrencyCode in the request instead of more complex navigation object\n returnPropName = referentialConstraint.property;\n returnValue = (saveArgs.entity[prop]?.[referentialConstraint.referencedProperty]) ?? null;\n } else if (navigationEntitySet) {\n if (isObjectEmpty(saveArgs.entity[prop]) || Object.values(saveArgs.entity[prop]).every(val => val === null)) {\n // empty object\n returnPropName = prop;\n returnValue = null;\n } else {\n const referencedValue = (saveArgs.entity[prop] as IEntity)?.[propKeyName];\n let reference;\n\n // id present - just use as navigation to navigationEntitySet\n if (referencedValue) {\n // references to other batch id starts with \"$\" - we use those directly\n if (referencedValue.toString().startsWith(\"$\")) {\n reference = referencedValue;\n } else {\n // if the entity type is in \"updateEnabledFor\" create patch requests based on differences with originalEntity\n if (saveArgs.updateEnabledFor?.includes(propBindingContext.getNavigationPath(true))) {\n const fnUpdateEntity = () => {\n return updateEntity({\n entity: saveArgs.entity[prop],\n originalEntity: saveArgs.originalEntity[prop] ?? {},\n bindingContext: navigationEntitySetBindingContext.addKey(referencedValue),\n batch: saveArgs.batch,\n changesOnly: true,\n etag: saveArgs.entity[prop]?._metadata?.[\"\"]?.etag\n });\n };\n\n if (isPropertyRequiredOnParent(navigationToParent)) {\n fnUpdateEntity();\n } else {\n afterRequests.push(\n (parentReference: ODataPropertyValue) => {\n fnUpdateEntity();\n }\n );\n }\n }\n\n if (!saveArgs.changesOnly || hasReferenceChanged) {\n // otherwise, we have to build correct entity path\n reference = `${navigationEntitySet}(${referencedValue})`;\n }\n }\n } else {\n // until isNavigationForUpdate behavior is changed, it can return {Id: null} instead of just null\n // we don't want to create new object when it doesn't have any properties\n if (!saveArgs.entity[prop].hasOwnProperty(propKeyName) || Object.keys(saveArgs.entity[prop]).length > 1) {\n // no id - create new object in the navigationEntitySet adding another request in the batch\n // and use the new id as reference in the current request\n // e.g. create new BusinessPartner while saving InvoiceReceived\n\n const fnCreateEntity = (entity: IEntity) => {\n let newNavEntitySet = navigationEntitySetBindingContext;\n if (!navigationEntitySetBindingContext.isNew()) {\n newNavEntitySet = navigationEntitySetBindingContext.addKey(1, true);\n }\n\n return createEntity({\n entity: entity,\n bindingContext: newNavEntitySet,\n batch: saveArgs.batch\n });\n };\n\n // prop is required on parent\n if (isPropertyRequiredOnParent(navigationToParent)) {\n const newId = fnCreateEntity(saveArgs.entity[prop]);\n\n reference = `$${newId}`;\n } else { // parent is required on prop\n afterRequests.push(\n (parentReference: ODataPropertyValue) => {\n const entity = cloneDeep(saveArgs.entity[prop]);\n\n // insert reference to parent\n entity[navigationToParent.getName()] = {\n [parentEntityType.getKeys()[0].getName()]: parentReference\n };\n\n fnCreateEntity(entity);\n }\n );\n }\n }\n }\n\n if (reference) {\n returnPropName = prop;\n returnValue = {\n \"@odata.id\": reference\n };\n }\n }\n }\n }\n } else { // subordinate navigation property\n const navPropName = saveArgs.isNew ? prop : `${prop}@odata.delta`;\n const entity = saveArgs.entity[prop];\n const origEntity = saveArgs.originalEntity[prop] ?? {};\n\n if (saveArgs.changesOnly && !isObjectEmpty(entity) && isObjectEmpty(compareEntities(entity, origEntity, propBindingContext))) {\n return null;\n }\n\n const result = prepareBatch({\n ...saveArgs,\n entity: entity,\n originalEntity: origEntity,\n bindingContext: propBindingContext\n });\n\n returnPropName = navPropName;\n\n if (!isObjectEmpty(result.values)) {\n returnValue = result.values;\n } else {\n returnValue = null;\n }\n\n if (result?.afterRequests) {\n afterRequests.push(...result.afterRequests);\n }\n }\n\n return {\n prop: returnPropName,\n value: returnValue,\n afterRequests: afterRequests\n };\n};\n\nexport const prepareCollection = (args: ISaveEntity, {\n prop,\n propBindingContext,\n propKeyName,\n navigationEntitySet,\n navigationEntitySetBindingContext\n}: IPreparePropertyArgs): IPreparePropertyResult => {\n let items: IEntity[] = [];\n const afterRequests: addRequestCallback[] = [];\n const keyPropertyName = propBindingContext.getKeyPropertyName();\n let key;\n let itemsDeltaNeeded = false;\n\n // removed items\n if (args.originalEntity[prop]) {\n for (const origItem of args.originalEntity[prop]) {\n if (!(args.entity[prop] as IEntity[])?.find(item => item[propKeyName] === origItem[propKeyName])) {\n key = origItem[keyPropertyName];\n\n if (navigationEntitySet && args.updateEnabledFor?.includes(propBindingContext.getNavigationPath(true))) {\n // item from collection with own entity set + updateEnabledFor\n const wrapper = args.batch.fromPath(navigationEntitySet);\n\n wrapper.delete(key);\n } else if (propBindingContext.getProperty().isIndependent()) {\n // delete just $ref, not the entity itself\n // sadly, @data.delta doesn't seem to support that, so we need to send each change separately in batch\n const wrapper = args.batch.fromPath(propBindingContext.getRootParent().getPath(true));\n\n wrapper.delete(propBindingContext.getRootParent().getKey(), { customUrlSuffix: `/${propBindingContext.addKey(origItem).getPath()}/$ref` });\n } else {\n itemsDeltaNeeded = true;\n // @odata.removed has to be first key of the object it seems (before the id property)\n items.push({\n \"@odata.removed\": {\n reason: \"removed\"\n },\n [keyPropertyName]: key\n });\n }\n }\n }\n }\n\n // new and updated items\n if (args.entity[prop]) {\n for (let i = 0; i < args.entity[prop].length; i++) {\n const item = args.entity[prop][i];\n const origItemIndex = args.originalEntity?.[prop]?.findIndex((origItem: IEntity) => origItem[propKeyName] === item[propKeyName]);\n const origItem = isDefined(origItemIndex) && origItemIndex >= 0 ? args.originalEntity[prop][origItemIndex] : null;\n let preparedItem = item;\n\n if (origItem) {\n const itemChanges = args.changesOnly ? compareEntities(item, origItem, propBindingContext) : item;\n\n if (!isObjectEmpty(itemChanges)) {\n preparedItem = itemChanges;\n } else {\n preparedItem = null;\n }\n }\n\n if (preparedItem) {\n if (!navigationEntitySet\n // includable properties can be included in the first POST request, together with the parent\n || (args.isNew && propBindingContext.getProperty().isIncludable())\n // dependent properties has to always be updated via parent, even if they have their own entity set\n || propBindingContext.getProperty().isDependent()\n ) {\n const result = prepareBatch({\n ...args,\n entity: preparedItem,\n originalEntity: origItem ?? {},\n bindingContext: propBindingContext.addKey(preparedItem)\n }, !!origItem);\n\n itemsDeltaNeeded = true;\n items.push(result.values);\n afterRequests.push(...result.afterRequests);\n } else { // item from collection with own entity set\n const referencedValue = item[propKeyName];\n const itemBc = navigationEntitySetBindingContext?.addKey(preparedItem);\n\n if (!referencedValue) {\n // collections with own entity set always have the reference with foreign key, not the other way around\n // => don't push anything to 'items' and use afterRequests for the batch requests\n afterRequests.push(\n (parentReference: ODataPropertyValue) => {\n const parentEntityType = args.bindingContext.getEntityType();\n const navigationToParent = findPropertyOfType(navigationEntitySetBindingContext, parentEntityType.getName());\n\n preparedItem[navigationToParent.getName()] = {\n [parentEntityType.getKeys()[0].getName()]: parentReference\n };\n\n createEntity({\n entity: preparedItem,\n bindingContext: itemBc,\n batch: args.batch\n });\n\n }\n );\n } else {\n updateEntity({\n entity: preparedItem,\n originalEntity: origItem,\n bindingContext: itemBc,\n batch: args.batch,\n changesOnly: true,\n etag: item?._metadata?.[\"\"]?.etag\n });\n\n items.push({\n \"@odata.id\": `${navigationEntitySet}(${referencedValue})`\n });\n\n // since items use own entity set, we only need to send delta update on the parent entity\n // if the order of the items has changed, because subsequent updates are sent in separate requests\n if (i !== origItemIndex) {\n itemsDeltaNeeded = true;\n }\n }\n }\n\n }\n }\n }\n\n let propName = prop;\n\n if (!args.isNew) {\n propName += \"@odata.delta\";\n }\n\n if (!itemsDeltaNeeded) {\n items = [];\n }\n\n if (args.changesOnly && items.length === 0) {\n return {\n prop: null,\n value: null,\n afterRequests\n };\n }\n\n return {\n prop: propName,\n value: items,\n afterRequests\n };\n};\n\nconst shouldIgnoreProp = (prop: string) => {\n return prop === \"TemporaryGuid\" || BindingContext.isLocalContextPath(prop);\n};\n\nexport const areSaveValuesEqual = (val1: any, val2: any): boolean => {\n let areEqual = true;\n\n if (isNotDefined(val1)) {\n return isNotDefined(val2) || isObjectEmpty(val2);\n }\n\n if (isNotDefined(val2)) {\n return false;\n }\n\n if (typeof val1 === \"object\" && !(val1 instanceof Date)) {\n if (Array.isArray(val1)) {\n if (!val2 || val1.length !== val2.length) {\n areEqual = false;\n } else {\n for (let i = 0; i < val1.length; i++) {\n areEqual = areEqual && areSaveValuesEqual(val1[i], val2[i]);\n }\n }\n } else if (isObjectEmpty(val1)) {\n return isObjectEmpty(val2);\n } else {\n for (const navProp of Object.keys(val1)) {\n if (shouldIgnoreProp(navProp)) {\n continue;\n }\n\n areEqual = areEqual && areSaveValuesEqual(val1[navProp], val2[navProp]);\n }\n }\n } else {\n areEqual = areSimpleValuesEqual(val1, val2);\n }\n\n return areEqual;\n};\n\nconst compareEntities = (updatedEntity: IEntity = {}, origEntity: IEntity = {}, bindingContext: BindingContext) => {\n if (!!updatedEntity !== !!origEntity) {\n return updatedEntity;\n }\n\n\n const differentValues: IEntity = {};\n\n for (const navProp of Object.keys(updatedEntity ?? {})) {\n if (shouldIgnoreProp(navProp)) {\n continue;\n }\n\n if (!areSaveValuesEqual(updatedEntity[navProp], origEntity[navProp])) {\n differentValues[navProp] = updatedEntity[navProp];\n }\n }\n\n if (!isObjectEmpty(differentValues)) {\n const keyProp = bindingContext.getKeyPropertyName();\n differentValues[keyProp] = updatedEntity[keyProp];\n }\n\n return differentValues;\n};\n\nconst removeKeyProperty = (entity: IEntity, bindingContext: BindingContext) => {\n let bindingContextWithKey = bindingContext;\n\n // key can be '0'\n if (isNotDefined(bindingContext.getKey())) {\n bindingContextWithKey = bindingContext.addKey(entity);\n }\n\n const keyName = bindingContextWithKey.getKeyPropertyName();\n const { [keyName]: newEntityProp, ...cleanEntity } = entity;\n\n return cleanEntity;\n};\n\nexport const mainBatchRequestId = \"main\";\n\nexport const saveEntity = (args: ISaveEntity): BatchRequest => {\n if (args.bindingContext.isNew()) {\n createEntity({\n entity: args.entity,\n bindingContext: args.bindingContext,\n queryParams: args.queryParams,\n batch: args.batch,\n updateEnabledFor: args.updateEnabledFor,\n customBatchId: args.customBatchId ?? mainBatchRequestId\n });\n } else {\n updateEntity({\n changesOnly: args.changesOnly,\n entity: args.entity,\n originalEntity: args.originalEntity,\n bindingContext: args.bindingContext,\n queryParams: args.queryParams,\n batch: args.batch,\n updateEnabledFor: args.updateEnabledFor,\n etag: args.etag,\n customBatchId: args.customBatchId ?? mainBatchRequestId\n });\n }\n\n return args.batch;\n};\n\nexport const createEntity = ({\n entity,\n bindingContext,\n batch,\n queryParams,\n wholeEntityTree,\n dataBindingContext,\n updateEnabledFor,\n customBatchId\n }: ISaveEntity & IWholeEntityTree) => {\n const queryableEntity = batch.fromPath(bindingContext.removeKey().toString());\n const result = prepareBatch({\n entity,\n bindingContext,\n isNew: true,\n wholeEntityTree,\n dataBindingContext,\n updateEnabledFor,\n batch\n });\n\n queryableEntity.queryParameters(queryParams);\n\n if (customBatchId) {\n queryableEntity.batchId(customBatchId);\n }\n\n const batchId = queryableEntity.create(result.values);\n\n if (result.afterRequests) {\n for (const addReqCallback of result.afterRequests) {\n addReqCallback(`$${batchId}`);\n }\n }\n\n return batchId;\n};\n\nexport const updateEntity = ({\n entity,\n originalEntity,\n bindingContext,\n batch,\n queryParams,\n changesOnly,\n updateEnabledFor,\n etag,\n customBatchId\n }: ISaveEntity & { customBatchId?: string }) => {\n const queryableEntity = batch.fromPath(bindingContext.toString());\n const result = prepareBatch({\n entity,\n originalEntity,\n bindingContext,\n changesOnly,\n updateEnabledFor,\n batch\n });\n let batchId = null;\n\n if (!isObjectEmpty(result?.values) || !isObjectEmpty(queryParams)) {\n const args: ICommandArgs = {};\n\n if (etag) {\n args.headers = {\n \"If-Match\": etag\n };\n }\n\n queryableEntity.queryParameters(queryParams);\n\n if (customBatchId) {\n queryableEntity.batchId(customBatchId);\n }\n\n batchId = queryableEntity.update(null, result.values, args);\n }\n\n if (result?.afterRequests) {\n for (const addReqCallback of result.afterRequests) {\n addReqCallback(bindingContext.getKey());\n }\n }\n\n return batchId;\n};\n\n/**\n * This method converts binding context path with collection (Items(81)/Description) to it's version based on indexed data =>\n * Items[2]/Description. Such path is required for yup validation\n * @param bindingContext\n * @param data Data for determining indexes\n * @param dataBindingContext\n * @param separator\n */\nexport const getIndexedPathFromBindingContext = (bindingContext: BindingContext, data: any, dataBindingContext: BindingContext, separator = \".\") => {\n const bindingContexts = getUniqueContextsSuffix(bindingContext, dataBindingContext);\n\n let path = \"\";\n let nested = data;\n\n for (let i = 0; i < bindingContexts.length; i++) {\n const bc = bindingContexts[i];\n path = i > 0 ? path + separator : path;\n if (bc.isInCollection()) {\n let index;\n\n nested = nested[bc.getPath(true)];\n\n if (nested) {\n const keyName = bc.getKeyPropertyName();\n index = (nested as any[]).findIndex(item => item[keyName] === bc.getKey());\n nested = nested[index];\n } else {\n index = 0;\n }\n\n path += `${bc.getPath(true)}[${index}]`;\n } else {\n path += bc.getPath();\n }\n }\n return path;\n};\n\n/**\n * Create binding context for collection path as Items[2]/Description => Items(88)/Description\n * @param path\n * @param data\n * @param dataBindingContext\n */\nexport const createBindingContextFromIndexedCollection = (path: string, data: any, dataBindingContext: BindingContext) => {\n const parts = path.split(\".\");\n let nested = data;\n let bc = dataBindingContext;\n\n for (const part of parts) {\n if (part.includes(\"[\")) {\n // separate items[8] => item & 8\n const match = part.match(/\\[(.*?)\\]/);\n const index = match[1];\n const core = part.substring(0, match.index);\n\n const collBc = bc.navigate(core);\n const keyName = collBc.getKeyPropertyName();\n\n if (!nested) {\n // todo: not sure what should do\n throw new Error(\"Collection not existing\");\n }\n nested = nested[core][index];\n\n // new item vs existing item, id can be '0'\n const id = !isNotDefined(nested[BindingContext.NEW_ENTITY_ID_PROP]) ? nested[BindingContext.NEW_ENTITY_ID_PROP] : nested[keyName];\n\n bc = bc.navigate(core).addKey(id, !isNotDefined(nested[BindingContext.NEW_ENTITY_ID_PROP]));\n } else {\n bc = bc.navigate(part);\n nested = nested?.[part];\n }\n }\n\n return bc;\n};\n\nexport const createBindingContextFromValidatorPath = (path: string, dataBindingContext: BindingContext, data: IEntity): BindingContext => {\n const isPathWithCollection = path.includes(\"[\");\n\n return isPathWithCollection ?\n createBindingContextFromIndexedCollection(path, data, dataBindingContext) :\n dataBindingContext.navigate(path.replace(/\\./g, \"/\"));\n};\n\nexport const getShortPath = (parent: BindingContext, item: BindingContext) => {\n return item.getFullPath().substring(parent.getFullPath().length + 1);\n};\n\nexport interface IUpdateDataOnChange extends ISetBoundValue {\n saveToNavigation?: boolean;\n storage: Model;\n currentValue?: TValue;\n ignoreNavigation?: boolean;\n}\n\nexport const isNavigationForUpdate = (bc: BindingContext, value: any) => {\n // DON'T CHANGE THIS CONDITION !!!!\n // EVERY CASE THIS CONDITION DOES NOT COVER HAS TO BE SOLVED BY SPECIAL WAY\n // THIS CONDITION CAN BE CHANGED ONLY BY FULL TEAM AGREEMENT\n return bc.isNavigation() && isDefined(value) && typeof value !== \"object\";\n // you are navigation & have defined value & not object -----> INSERT TO ID\n // multivalues are like this:\n // BankAccount: [{id: 5}, {id: 10}]\n\n // but are solved by storeMultivalue\n};\n\nexport function setDirtyFlag(storage: Model, bindingContext: BindingContext, dataBindingContext?: BindingContext): void {\n const isDirty = storage.isDirty(bindingContext);\n if (isDirty) {\n // once dirty, we don't need to set it again\n return;\n }\n\n do {\n storage.setDirty(bindingContext);\n if (bindingContext.getKey()) {\n storage.setDirty(bindingContext.removeKey());\n } else if (!bindingContext.isSame(storage.data.bindingContext, true) && bindingContext.isAnyPartCollection()) {\n const pathWithoutKeys = bindingContext.getPathBy(\n (bc) => bc.getParent() && !bc.getParent().isSame(storage.data.bindingContext, true),\n true\n );\n storage.setDirty(storage.data.bindingContext.navigate(pathWithoutKeys));\n }\n bindingContext = bindingContext.getParent();\n } while (bindingContext);\n storage.setDirty(dataBindingContext ?? storage.data.bindingContext);\n}\n\nexport const updateDataOnChange = (args: IUpdateDataOnChange, isCreate = false) => {\n const isNavigation = isNavigationForUpdate(args.bindingContext, args.newValue);\n const fieldBc = isNavigation ? args.bindingContext.getNavigationBindingContext() : args.bindingContext;\n\n const updatedData = setBoundValue({\n bindingContext: fieldBc,\n data: args.data,\n newValue: args.newValue,\n dataBindingContext: args.dataBindingContext ?? args.storage.data.bindingContext,\n preventCloning: args.preventCloning\n });\n\n if (!isCreate) {\n setDirtyFlag(args.storage, fieldBc, args.dataBindingContext);\n }\n\n return updatedData;\n};\n\n/** Returns highest found new entity id for given items (entities) that use BindingContext.NEW_ENTITY_ID_PROP as id prop */\nexport const getNewItemsMaxId = (items: IEntity[]) => {\n let newItemsMax = 0;\n\n for (const item of items || []) {\n if (item.hasOwnProperty(BindingContext.NEW_ENTITY_ID_PROP)) {\n const idValue = item[BindingContext.NEW_ENTITY_ID_PROP];\n if (!isNaN(idValue)) {\n newItemsMax = Math.max(newItemsMax, idValue);\n }\n }\n }\n\n return newItemsMax;\n};\n\nconst getChartsOfAccounts = async (context: IAppContext) => {\n const response = await customFetch(`${ODATA_API_URL}/ChartsOfAccounts?$expand=FiscalYear`);\n\n if (!response.ok) {\n throw new Error(`Failed to load charts of accounts info from ${ODATA_API_URL}/ChartsOfAccounts, error code: ${response.status}`);\n }\n\n return (await response.json())?.value as IChartOfAccountsEntity[];\n};\n\nexport const getChartsOfAccountsMemoized = memoizedWithCacheStrategy(getChartsOfAccounts, (context) => `coa_${context.getCompany().Id}`);\n\nexport async function loadChartsOfAccountsMemoized(context: IAppContext): Promise {\n return getChartsOfAccountsMemoized(context, CacheStrategy.Company);\n}\n\n// export const dataToBindingContextValues = ({ data, bindingContext }: IGetBoundValue) => {\n// let results: TRecordAny = {};\n// for (let [key, value] of Object.entries(data)) {\n// if (key === BindingContext.NEW_ENTITY_ID_PROP || isNotDefined(value)) {\n// continue;\n// }\n//\n// if (key === CURRENTVALUE_FIELD_NAME) {\n// // todo: consider we need it\n// // results[`${bindingContext.getFullPath(true)}/${CURRENTVALUE_FIELD_NAME}`] = value;\n// continue;\n// }\n//\n// let itemBc = bindingContext.navigate(key);\n// if (key === \"Currency\") {\n// //todo: handle select pointing to naviagte property not to key property\n// results[itemBc.getFullPath(true)] = (value as Record)[\"Code\"];\n// } else if (Array.isArray(value)) {\n// for (let item of value) {\n// const innerItemBc = itemBc.addKey(item);\n// results = { ...results, ...dataToBindingContextValues({ data: item, bindingContext: innerItemBc }) };\n// }\n// } else if (typeof value === \"object\" && !(value instanceof Date)) {\n// // select\n// results = { ...results, ...dataToBindingContextValues({ data: value, bindingContext: itemBc }) };\n// } else {\n// //todo: remove true\n// results[itemBc.getFullPath(true)] = value;\n// }\n// }\n// return results;\n// };\n\n/**\n * Recursively parses data and transforms date strings to date objects. Changes data in-place.\n * @param data\n * @param depth\n */\nexport function parseDateFields(data: T, depth = 0): void {\n const _parseObject = (obj: TRecordAny) => {\n forEachKey(obj, (key) => {\n const type = typeof obj[key];\n if (key.startsWith(\"Date\") && type === \"string\") {\n obj[key] = getUtcDate(obj[key]);\n } else if (type === \"object\" && depth > 0) {\n parseDateFields(obj[key], depth - 1);\n }\n });\n };\n\n if (Array.isArray(data)) {\n data.forEach(item => _parseObject(item));\n } else {\n _parseObject(data);\n }\n}","import { DefaultTheme } from \"styled-components/macro\";\n\nimport { TValue } from \"../global.types\";\nimport {\n ROUTE_ABSENCE_CATEGORIES,\n ROUTE_ACCOUNT_ASSIGNMENT,\n ROUTE_ATTENDANCE,\n ROUTE_BANK_ACCOUNTS,\n ROUTE_BANK_STATEMENTS,\n ROUTE_BANK_TRANSACTIONS,\n ROUTE_BUSINESS_PARTNER,\n ROUTE_CASH_BOXES,\n ROUTE_CASH_RECEIPTS,\n ROUTE_CASH_RECEIPTS_ISSUED,\n ROUTE_CASH_RECEIPTS_RECEIVED,\n ROUTE_CATEGORIES,\n ROUTE_CHARTS_OF_ACCOUNTS,\n ROUTE_CHARTS_OF_ACCOUNTS_TEMPLATES,\n ROUTE_COMPANIES,\n ROUTE_COMPANY_ROLES,\n ROUTE_CORRECTIVE_INVOICE_ISSUED,\n ROUTE_CORRECTIVE_INVOICE_RECEIVED,\n ROUTE_CUSTOMER_PORTAL_PAYMENT,\n ROUTE_DELETE_LOG,\n ROUTE_DOCUMENT_ITEM_TEMPLATES,\n ROUTE_ELECTRONIC_SUBMISSION,\n ROUTE_EMPLOYEES,\n ROUTE_EMPLOYMENT,\n ROUTE_EMPLOYMENT_TEMPLATE,\n ROUTE_EXTRA_SALARIES,\n ROUTE_FISCAL_YEAR,\n ROUTE_FIXED_ASSET,\n ROUTE_GROUP_DEDUCTIONS,\n ROUTE_HEALTH_INSURANCE_COMPANIES,\n ROUTE_INBOX,\n ROUTE_INDIVIDUAL_DEDUCTIONS,\n ROUTE_INTEGRATIONS,\n ROUTE_INTERNAL_DOCUMENT,\n ROUTE_INVOICE_ISSUED,\n ROUTE_INVOICE_RECEIVED,\n ROUTE_LABEL_HIERARCHIES,\n ROUTE_LIFE_INSURANCE_COMPANIES,\n ROUTE_MESSAGES,\n ROUTE_MINOR_ASSET,\n ROUTE_NUMBER_RANGES,\n ROUTE_OTHER_LIABILITY,\n ROUTE_OTHER_RECEIVABLE,\n ROUTE_PENSION_INSURANCE_COMPANIES,\n ROUTE_PROFORMA_INVOICE_ISSUED,\n ROUTE_PROFORMA_INVOICE_RECEIVED,\n ROUTE_RECURRING_TASKS,\n ROUTE_SALARY_ADVANCES,\n ROUTE_SALARY_COMPONENTS,\n ROUTE_SYSTEM_ROLES,\n ROUTE_TICKETS,\n ROUTE_UNORGANIZED_ASSET,\n ROUTE_USERS,\n ROUTE_VAT,\n ROUTE_WORKING_PATTERNS\n} from \"../routes\";\nimport BindingContext from \"./BindingContext\";\nimport { EntitySetName, EntityTypeName, ICompanyEntity } from \"./GeneratedEntityTypes\";\nimport { DocumentTypeCode, ElectronicSubmissionTypeCode } from \"./GeneratedEnums\";\n\nexport interface ICompany extends ICompanyEntity {\n ColorCode?: keyof DefaultTheme;\n CanAccessCustomerPortal?: boolean;\n}\n\nexport const getEntitySetByDocumentType = (documentType: DocumentTypeCode): EntitySetName => {\n switch (documentType) {\n case DocumentTypeCode.InvoiceReceived:\n return EntitySetName.InvoicesReceived;\n case DocumentTypeCode.InvoiceIssued:\n return EntitySetName.InvoicesIssued;\n case DocumentTypeCode.ProformaInvoiceReceived:\n return EntitySetName.ProformaInvoicesReceived;\n case DocumentTypeCode.ProformaInvoiceIssued:\n return EntitySetName.ProformaInvoicesIssued;\n case DocumentTypeCode.InternalDocument:\n return EntitySetName.InternalDocuments;\n case DocumentTypeCode.OtherLiability:\n return EntitySetName.OtherLiabilities;\n case DocumentTypeCode.OtherReceivable:\n return EntitySetName.OtherReceivables;\n case DocumentTypeCode.CorrectiveInvoiceIssued:\n return EntitySetName.CorrectiveInvoicesIssued;\n case DocumentTypeCode.CorrectiveInvoiceReceived:\n return EntitySetName.CorrectiveInvoicesReceived;\n case DocumentTypeCode.BankTransaction:\n return EntitySetName.BankTransactions;\n case DocumentTypeCode.CashReceiptReceived:\n return EntitySetName.CashReceiptsReceived;\n case DocumentTypeCode.CashReceiptIssued:\n return EntitySetName.CashReceiptsIssued;\n default:\n // not every DocumentType has entitySet\n return null;\n }\n};\n\nexport const getRouteByDocumentType = (documentType: DocumentTypeCode): string => {\n switch (documentType) {\n case DocumentTypeCode.InvoiceReceived:\n return ROUTE_INVOICE_RECEIVED;\n case DocumentTypeCode.InvoiceIssued:\n return ROUTE_INVOICE_ISSUED;\n case DocumentTypeCode.ProformaInvoiceReceived:\n return ROUTE_PROFORMA_INVOICE_RECEIVED;\n case DocumentTypeCode.ProformaInvoiceIssued:\n return ROUTE_PROFORMA_INVOICE_ISSUED;\n case DocumentTypeCode.InternalDocument:\n return ROUTE_INTERNAL_DOCUMENT;\n case DocumentTypeCode.OtherLiability:\n return ROUTE_OTHER_LIABILITY;\n case DocumentTypeCode.OtherReceivable:\n return ROUTE_OTHER_RECEIVABLE;\n case DocumentTypeCode.CorrectiveInvoiceReceived:\n return ROUTE_CORRECTIVE_INVOICE_RECEIVED;\n case DocumentTypeCode.CorrectiveInvoiceIssued:\n return ROUTE_CORRECTIVE_INVOICE_ISSUED;\n case DocumentTypeCode.BankTransaction:\n return ROUTE_BANK_TRANSACTIONS;\n case DocumentTypeCode.CashReceiptReceived:\n return ROUTE_CASH_RECEIPTS_RECEIVED;\n case DocumentTypeCode.CashReceiptIssued:\n return ROUTE_CASH_RECEIPTS_ISSUED;\n }\n};\n\nexport const getDocumentTypeCodeFromEntityType = (entityType: EntityTypeName): DocumentTypeCode => {\n switch (entityType) {\n case EntityTypeName.InternalDocument:\n return DocumentTypeCode.InternalDocument;\n case EntityTypeName.OtherReceivable:\n return DocumentTypeCode.OtherReceivable;\n case EntityTypeName.OtherLiability:\n return DocumentTypeCode.OtherLiability;\n case EntityTypeName.ProformaInvoiceIssued:\n return DocumentTypeCode.ProformaInvoiceIssued;\n case EntityTypeName.ProformaInvoiceReceived:\n return DocumentTypeCode.ProformaInvoiceReceived;\n case EntityTypeName.InvoiceIssued:\n return DocumentTypeCode.InvoiceIssued;\n case EntityTypeName.InvoiceReceived:\n return DocumentTypeCode.InvoiceReceived;\n case EntityTypeName.CorrectiveInvoiceIssued:\n return DocumentTypeCode.CorrectiveInvoiceIssued;\n case EntityTypeName.CorrectiveInvoiceReceived:\n return DocumentTypeCode.CorrectiveInvoiceReceived;\n case EntityTypeName.BankTransaction:\n return DocumentTypeCode.BankTransaction;\n case EntityTypeName.CashReceiptReceived:\n return DocumentTypeCode.CashReceiptReceived;\n case EntityTypeName.CashReceiptIssued:\n return DocumentTypeCode.CashReceiptIssued;\n\n default:\n return null;\n }\n};\n\nexport const getEntityTypeFromDocumentType = (docType: DocumentTypeCode): EntityTypeName => {\n switch (docType) {\n case DocumentTypeCode.InternalDocument:\n return EntityTypeName.InternalDocument;\n case DocumentTypeCode.OtherReceivable:\n return EntityTypeName.OtherReceivable;\n case DocumentTypeCode.OtherLiability:\n return EntityTypeName.OtherLiability;\n case DocumentTypeCode.ProformaInvoiceIssued:\n return EntityTypeName.ProformaInvoiceIssued;\n case DocumentTypeCode.ProformaInvoiceReceived:\n return EntityTypeName.ProformaInvoiceReceived;\n case DocumentTypeCode.InvoiceIssued:\n return EntityTypeName.InvoiceIssued;\n case DocumentTypeCode.InvoiceReceived:\n return EntityTypeName.InvoiceReceived;\n case DocumentTypeCode.CorrectiveInvoiceIssued:\n return EntityTypeName.CorrectiveInvoiceIssued;\n case DocumentTypeCode.CorrectiveInvoiceReceived:\n return EntityTypeName.CorrectiveInvoiceReceived;\n case DocumentTypeCode.BankTransaction:\n return EntityTypeName.BankTransaction;\n case DocumentTypeCode.CashReceiptReceived:\n return EntityTypeName.CashReceiptReceived;\n case DocumentTypeCode.CashReceiptIssued:\n return EntityTypeName.CashReceiptIssued;\n\n default:\n return null;\n }\n};\n\nexport const getRouteByEntityType = (entityType: EntityTypeName): string => {\n const docType = getDocumentTypeCodeFromEntityType(entityType);\n\n if (docType) {\n return getRouteByDocumentType(docType);\n } else {\n switch (entityType) {\n case EntityTypeName.Asset:\n return ROUTE_FIXED_ASSET;\n case EntityTypeName.MinorAsset:\n return ROUTE_MINOR_ASSET;\n case EntityTypeName.BankStatement:\n return ROUTE_BANK_STATEMENTS;\n case EntityTypeName.BankTransaction:\n return ROUTE_BANK_TRANSACTIONS;\n case EntityTypeName.BusinessPartner:\n return ROUTE_BUSINESS_PARTNER;\n case EntityTypeName.FiscalYear:\n return ROUTE_FISCAL_YEAR;\n case EntityTypeName.User:\n return ROUTE_USERS;\n case EntityTypeName.Account:\n return ROUTE_CHARTS_OF_ACCOUNTS;\n case EntityTypeName.AccountAssignment:\n return ROUTE_ACCOUNT_ASSIGNMENT;\n case EntityTypeName.AccountTemplate:\n return ROUTE_CHARTS_OF_ACCOUNTS_TEMPLATES;\n case EntityTypeName.CashBox:\n return ROUTE_CASH_BOXES;\n case EntityTypeName.CashReceipt:\n return ROUTE_CASH_RECEIPTS;\n case EntityTypeName.CbaCategory:\n return ROUTE_CATEGORIES;\n case EntityTypeName.CommunicationEntry:\n return ROUTE_MESSAGES;\n case EntityTypeName.Company:\n return ROUTE_COMPANIES;\n case EntityTypeName.CompanyBankAccount:\n return ROUTE_BANK_ACCOUNTS;\n case EntityTypeName.CompanyRole:\n return ROUTE_COMPANY_ROLES;\n case EntityTypeName.CurrencyUsedByCompany:\n return \"\";\n case EntityTypeName.CustomerPortalPayment:\n return ROUTE_CUSTOMER_PORTAL_PAYMENT;\n case EntityTypeName.DocumentDeleteLog:\n return ROUTE_DELETE_LOG;\n case EntityTypeName.GeneralRole:\n return ROUTE_SYSTEM_ROLES;\n case EntityTypeName.InboxFile:\n return ROUTE_INBOX;\n case EntityTypeName.Label:\n return ROUTE_LABEL_HIERARCHIES;\n case EntityTypeName.LabelHierarchy:\n return ROUTE_LABEL_HIERARCHIES;\n case EntityTypeName.NumberRangeDefinition:\n return ROUTE_NUMBER_RANGES;\n case EntityTypeName.PrAbsenceCategory:\n return ROUTE_ABSENCE_CATEGORIES;\n case EntityTypeName.PrAttendance:\n return ROUTE_ATTENDANCE;\n case EntityTypeName.PrEmployee:\n return ROUTE_EMPLOYEES;\n case EntityTypeName.PrEmployment:\n return ROUTE_EMPLOYMENT;\n case EntityTypeName.PrEmploymentTemplate:\n return ROUTE_EMPLOYMENT_TEMPLATE;\n case EntityTypeName.PrExtraSalary:\n return ROUTE_EXTRA_SALARIES;\n case EntityTypeName.PrHealthInsuranceCompany:\n return ROUTE_HEALTH_INSURANCE_COMPANIES;\n case EntityTypeName.PrLifeInsuranceCompany:\n return ROUTE_LIFE_INSURANCE_COMPANIES;\n case EntityTypeName.PrPayrollSetting:\n return \"\";\n case EntityTypeName.PrPensionInsuranceCompany:\n return ROUTE_PENSION_INSURANCE_COMPANIES;\n case EntityTypeName.PrSalaryAdvance:\n return ROUTE_SALARY_ADVANCES;\n case EntityTypeName.PrSalaryComponent:\n return ROUTE_SALARY_COMPONENTS;\n case EntityTypeName.PrWorkingPattern:\n return ROUTE_WORKING_PATTERNS;\n case EntityTypeName.RecurringTask:\n return ROUTE_RECURRING_TASKS;\n case EntityTypeName.Ticket:\n return ROUTE_TICKETS;\n case EntityTypeName.UnorganizedAsset:\n return ROUTE_UNORGANIZED_ASSET;\n case EntityTypeName.VatClassification:\n return ROUTE_VAT;\n case EntityTypeName.PrGroupDeduction:\n return ROUTE_GROUP_DEDUCTIONS;\n case EntityTypeName.PrIndividualDeduction:\n return ROUTE_INDIVIDUAL_DEDUCTIONS;\n case EntityTypeName.ItemTemplate:\n return ROUTE_DOCUMENT_ITEM_TEMPLATES;\n case EntityTypeName.PrTaxpayerDeclaration:\n return \"\";\n case EntityTypeName.InvoiceServiceIntegration:\n return ROUTE_INTEGRATIONS;\n default:\n return null;\n }\n }\n};\n\nexport const getDetailRouteByEntityType = (entityType: EntityTypeName, id: TValue, readOnly?: boolean): string => {\n switch (entityType) {\n // todo: CorrectiveInvoiceIssued, CorrectiveInvoiceReceived\n default:\n const route = getRouteByEntityType(entityType as EntityTypeName);\n return route && `${route}/${id}${readOnly ? \"?viewMode=readonly\" : \"\"}`;\n }\n};\n\nexport function getEntityTypeFromBindingContext(bindingContext: BindingContext): EntityTypeName {\n return bindingContext.getEntityType().getName() as EntityTypeName;\n}\n\nexport function getSubmissionDetailRoute(year: number, type?: ElectronicSubmissionTypeCode, month?: number): string {\n if (type) {\n return `${ROUTE_ELECTRONIC_SUBMISSION}/${year}/${type}/${month}`;\n } else {\n return `${ROUTE_ELECTRONIC_SUBMISSION}/${year}`;\n }\n}\n\n","import { IFieldDef, IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport { PropertyTranslationCache } from \"./PropertyTranslationCache\";\nimport BindingContext from \"./BindingContext\";\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { isBooleanType, isDateType, isNumericType, Property } from \"@evala/odata-metadata/src\";\nimport { FieldType, ValidatorType, ValueType } from \"../enums\";\nimport memoize from \"../utils/memoize\";\n\n/** This file tries to solve some weird circular dependency errors */\n\nexport interface IGetFieldInfo {\n bindingContext: BindingContext;\n context: IAppContext;\n fieldDef?: IFieldDef;\n}\n\nexport interface IFieldInfo extends IFieldDef {\n // todo completely remove IFieldInfo?\n // bindingContext has to be required for IFieldInfo to be at least somehow different than IFieldDef\n bindingContext: BindingContext;\n}\n\nexport const getConfigItemDescription = (bindingContext: BindingContext): Promise => {\n const parentBc = bindingContext.getParent();\n\n return !parentBc.isRoot() && !parentBc?.isEnum() ? getPropertyTranslation(parentBc) : null;\n};\n\nexport const getPropertyTranslation = (bindingContext: BindingContext): Promise =>\n PropertyTranslationCache.getTranslation(bindingContext.getProperty(), bindingContext.getParent()?.getEntityType());\n\nexport function getFieldTypeFromProperty(property: Property): FieldType {\n if (isNumericType(property)) {\n return FieldType.NumberInput;\n } else if (isDateType(property)) {\n return FieldType.Date;\n } else if (isBooleanType(property)) {\n return FieldType.Switch;\n } else {\n return FieldType.Input;\n }\n}\n\nexport function getValueTypeFromProperty(property: Property): ValueType {\n if (isNumericType(property)) {\n return ValueType.Number;\n } else if (isDateType(property)) {\n return ValueType.Date;\n } else if (isBooleanType(property)) {\n return ValueType.Boolean;\n } else {\n return ValueType.String;\n }\n}\n\nexport function getValidatorTypeFromProperty(property: Property): ValidatorType {\n if (isNumericType(property)) {\n return ValidatorType.Number;\n } else if (isDateType(property)) {\n return ValidatorType.Date;\n } else if (isBooleanType(property)) {\n return ValidatorType.Boolean;\n } else {\n return ValidatorType.String;\n }\n}\n\nexport const getFieldInfoMemoized = memoize(async ({ bindingContext, context, fieldDef }: IGetFieldInfo): Promise => {\n let label, property, description;\n\n const defaultFieldProps: IFieldInfoProperties = {};\n\n if (!bindingContext.isLocal()) {\n property = bindingContext.getProperty();\n if (property) {\n label = await PropertyTranslationCache.getTranslation(property, bindingContext.getParent()?.getEntityType());\n if (fieldDef?.descriptionPath) {\n // find correct group for description - sibling or parent bc with same path\n let groupBc: BindingContext = bindingContext;\n let found = false;\n do {\n groupBc = groupBc.getParent();\n if (groupBc.getPath() === fieldDef.descriptionPath) {\n found = true;\n } else if (groupBc.isValidNavigation(fieldDef.descriptionPath)) {\n found = true;\n groupBc = groupBc.navigate(fieldDef.descriptionPath);\n }\n } while (!found && !!groupBc);\n description = found ? await getPropertyTranslation(groupBc) : null;\n } else {\n description = await getConfigItemDescription(bindingContext);\n }\n\n // we can identify some properties from the metadata definition\n\n // todo rename type => fieldType?\n defaultFieldProps.type = getFieldTypeFromProperty(property);\n defaultFieldProps.valueType = getValueTypeFromProperty(property);\n defaultFieldProps.validator = {\n type: getValidatorTypeFromProperty(property)\n };\n }\n }\n\n return {\n id: bindingContext.getPath(),\n bindingContext,\n label, description,\n ...defaultFieldProps\n };\n },\n ({ bindingContext, context, fieldDef }: IGetFieldInfo) => {\n return `${i18next.language}/${bindingContext.toString()}/${fieldDef?.descriptionPath ?? \"\"}`;\n }\n);\n\n// this file is trying to prevent some circular dependencies\nexport const getFieldInfo = async (args: IGetFieldInfo): Promise => {\n // we can use definition with same bindingContext in different places, with different fieldDef\n // always inject fieldDef to cached object retrieved from getFieldMetadataMemoized, so that the fieldDef isn't cached as well\n let fieldInfo = await getFieldInfoMemoized(args);\n\n if (args.fieldDef) {\n fieldInfo = {\n ...fieldInfo,\n // merges props that can be different for every places where the same binding context is used\n // e.g. same fields in multiple forms with different custom label\n ...args.fieldDef,\n fieldSettings: {\n ...fieldInfo.fieldSettings,\n ...args.fieldDef?.fieldSettings\n }\n };\n } else if (isNotDefined(fieldInfo.fieldSettings)) {\n fieldInfo.fieldSettings = {};\n }\n\n return fieldInfo;\n};","export interface IEvalaMetadataRule {\n ErrorCode: string;\n Message: string;\n LinkedEntities: {\n DisplayName: string;\n Id: number;\n TypeName: string;\n }[];\n // entity related\n // cannot be deleted - applicable for collection item, e.g. Items(4)\n CannotBeDeleted?: boolean;\n\n // collections related\n // cannot add item in collection - applicable for whole collection, e.g. Items\n CannotAdd?: boolean;\n // cannot remove item from collection - applicable for whole collection, e.g. Items, Attachments\n CannotDelete?: boolean;\n}\n\nexport interface ODataEntityMetadata {\n count?: number;\n context?: string;\n type?: string;\n etag?: string;\n metadata?: {\n DisabledPropertyRules?: Record\n EnabledPropertyRules?: Record\n };\n}\n\nexport interface IEntityBase {\n _metadata?: Record;\n \"#id\"?: number | string;\n}\n\nexport interface IBillingAddressEntity extends IEntityBase {\n Id?: number;\n City?: string;\n CountryCode?: string;\n Name?: string;\n PostalCode?: string;\n Street?: string;\n TenantId?: number;\n TemporaryGuid?: string;\n Country?: ICountryEntity;\n Tenant?: ITenantEntity;\n}\n\nexport enum BillingAddressEntity {\n Id = \"Id\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Name = \"Name\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TenantId = \"TenantId\",\n TemporaryGuid = \"TemporaryGuid\",\n Country = \"Country\",\n Tenant = \"Tenant\",\n}\n\nexport interface IBillingContactEntity extends IEntityBase {\n Id?: number;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n Order?: number;\n TenantId?: number;\n TemporaryGuid?: string;\n Tenant?: ITenantEntity;\n}\n\nexport enum BillingContactEntity {\n Id = \"Id\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n Order = \"Order\",\n TenantId = \"TenantId\",\n TemporaryGuid = \"TemporaryGuid\",\n Tenant = \"Tenant\",\n}\n\nexport interface IBillingDiscountEntity extends IEntityBase {\n Id?: number;\n RossumFreeMax?: number;\n RossumFreeUsed?: number;\n TenantId?: number;\n LastModifiedByUserGuid?: string;\n TemporaryGuid?: string;\n Subscription?: ISubscriptionEntity;\n Tenant?: ITenantEntity;\n}\n\nexport enum BillingDiscountEntity {\n Id = \"Id\",\n RossumFreeMax = \"RossumFreeMax\",\n RossumFreeUsed = \"RossumFreeUsed\",\n TenantId = \"TenantId\",\n LastModifiedByUserGuid = \"LastModifiedByUserGuid\",\n TemporaryGuid = \"TemporaryGuid\",\n Subscription = \"Subscription\",\n Tenant = \"Tenant\",\n}\n\nexport interface IDatabaseEntity extends IEntityBase {\n Id?: string;\n AcceptsNewTenants?: boolean;\n Version?: string;\n}\n\nexport enum DatabaseEntity {\n Id = \"Id\",\n AcceptsNewTenants = \"AcceptsNewTenants\",\n Version = \"Version\",\n}\n\nexport interface IEnabledFeatureEntity extends IEntityBase {\n Id?: number;\n FeatureCode?: string;\n TenantId?: number;\n TemporaryGuid?: string;\n Feature?: IFeatureEntity;\n Tenant?: ITenantEntity;\n}\n\nexport enum EnabledFeatureEntity {\n Id = \"Id\",\n FeatureCode = \"FeatureCode\",\n TenantId = \"TenantId\",\n TemporaryGuid = \"TemporaryGuid\",\n Feature = \"Feature\",\n Tenant = \"Tenant\",\n}\n\nexport interface IInvitationEntity extends IEntityBase {\n Id?: number;\n CustomerCompanies?: string;\n DateCreated?: Date;\n DateEmailSent?: Date;\n Email?: string;\n FirstName?: string;\n TemporaryGuid?: string;\n IsCustomerInvitation?: boolean;\n LastName?: string;\n TenantUserId?: number;\n Tenant?: ITenantEntity;\n}\n\nexport enum InvitationEntity {\n Id = \"Id\",\n CustomerCompanies = \"CustomerCompanies\",\n DateCreated = \"DateCreated\",\n DateEmailSent = \"DateEmailSent\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n TemporaryGuid = \"TemporaryGuid\",\n IsCustomerInvitation = \"IsCustomerInvitation\",\n LastName = \"LastName\",\n TenantUserId = \"TenantUserId\",\n Tenant = \"Tenant\",\n}\n\nexport interface IInvoiceEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n CurrencyCode?: string;\n DateCreated?: Date;\n DateEnd?: Date;\n DateLastPaymentAttempt?: Date;\n DateOfPayment?: Date;\n DateStart?: Date;\n PaymentMethodCode?: string;\n S5Number?: string;\n SymbolVariable?: number;\n TenantId?: number;\n PaymentId?: number;\n FileMetadataId?: number;\n LastModifiedByUserGuid?: string;\n TemporaryGuid?: string;\n Currency?: ICurrencyEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Subscription?: ISubscriptionEntity;\n Tenant?: ITenantEntity;\n Items?: IInvoiceItemEntity[];\n}\n\nexport enum InvoiceEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n CurrencyCode = \"CurrencyCode\",\n DateCreated = \"DateCreated\",\n DateEnd = \"DateEnd\",\n DateLastPaymentAttempt = \"DateLastPaymentAttempt\",\n DateOfPayment = \"DateOfPayment\",\n DateStart = \"DateStart\",\n PaymentMethodCode = \"PaymentMethodCode\",\n S5Number = \"S5Number\",\n SymbolVariable = \"SymbolVariable\",\n TenantId = \"TenantId\",\n PaymentId = \"PaymentId\",\n FileMetadataId = \"FileMetadataId\",\n LastModifiedByUserGuid = \"LastModifiedByUserGuid\",\n TemporaryGuid = \"TemporaryGuid\",\n Currency = \"Currency\",\n PaymentMethod = \"PaymentMethod\",\n Subscription = \"Subscription\",\n Tenant = \"Tenant\",\n Items = \"Items\",\n}\n\nexport interface IInvoiceItemEntity extends IEntityBase {\n Id?: number;\n InvoiceId?: number;\n Name?: string;\n PriceNet?: number;\n S5articleGuid?: string;\n TenantId?: number;\n LastModifiedByUserGuid?: string;\n TemporaryGuid?: string;\n}\n\nexport enum InvoiceItemEntity {\n Id = \"Id\",\n InvoiceId = \"InvoiceId\",\n Name = \"Name\",\n PriceNet = \"PriceNet\",\n S5articleGuid = \"S5articleGuid\",\n TenantId = \"TenantId\",\n LastModifiedByUserGuid = \"LastModifiedByUserGuid\",\n TemporaryGuid = \"TemporaryGuid\",\n}\n\nexport interface ISubscriptionEntity extends IEntityBase {\n Id?: number;\n CurrencyCode?: string;\n DateCancellation?: Date;\n DateExpiration?: Date;\n DateFree?: Date;\n DateGracefulPeriodEnd?: Date;\n DatePurchase?: Date;\n DateRenewal?: Date;\n DateTrialStart?: Date;\n HasLimitedAccess?: boolean;\n IsGracefulPeriod?: boolean;\n Number?: string;\n PaymentMethodCode?: string;\n PurchaseContact?: string;\n PurchaseStatusCode?: string;\n RecurrentPaymentStateCode?: string;\n RequestedPaymentMethodCode?: string;\n SubscriptionStatusCode?: string;\n SubscriptionTypeCode?: string;\n TenantId?: number;\n CardPaymentLimit?: number;\n GoPayId?: number;\n TrialLength?: number;\n LastModifiedByUserGuid?: string;\n TemporaryGuid?: string;\n Currency?: ICurrencyEntity;\n Discount?: IBillingDiscountEntity;\n PaymentMethod?: IPaymentMethodEntity;\n PurchaseStatus?: IPurchaseStatusEntity;\n RecurrentPaymentState?: IRecurrentPaymentStateEntity;\n RequestedPaymentMethod?: IPaymentMethodEntity;\n SubscriptionStatus?: ISubscriptionStatusEntity;\n SubscriptionType?: ISubscriptionTypeEntity;\n Tenant?: ITenantEntity;\n Invoices?: IInvoiceEntity[];\n}\n\nexport enum SubscriptionEntity {\n Id = \"Id\",\n CurrencyCode = \"CurrencyCode\",\n DateCancellation = \"DateCancellation\",\n DateExpiration = \"DateExpiration\",\n DateFree = \"DateFree\",\n DateGracefulPeriodEnd = \"DateGracefulPeriodEnd\",\n DatePurchase = \"DatePurchase\",\n DateRenewal = \"DateRenewal\",\n DateTrialStart = \"DateTrialStart\",\n HasLimitedAccess = \"HasLimitedAccess\",\n IsGracefulPeriod = \"IsGracefulPeriod\",\n Number = \"Number\",\n PaymentMethodCode = \"PaymentMethodCode\",\n PurchaseContact = \"PurchaseContact\",\n PurchaseStatusCode = \"PurchaseStatusCode\",\n RecurrentPaymentStateCode = \"RecurrentPaymentStateCode\",\n RequestedPaymentMethodCode = \"RequestedPaymentMethodCode\",\n SubscriptionStatusCode = \"SubscriptionStatusCode\",\n SubscriptionTypeCode = \"SubscriptionTypeCode\",\n TenantId = \"TenantId\",\n CardPaymentLimit = \"CardPaymentLimit\",\n GoPayId = \"GoPayId\",\n TrialLength = \"TrialLength\",\n LastModifiedByUserGuid = \"LastModifiedByUserGuid\",\n TemporaryGuid = \"TemporaryGuid\",\n Currency = \"Currency\",\n Discount = \"Discount\",\n PaymentMethod = \"PaymentMethod\",\n PurchaseStatus = \"PurchaseStatus\",\n RecurrentPaymentState = \"RecurrentPaymentState\",\n RequestedPaymentMethod = \"RequestedPaymentMethod\",\n SubscriptionStatus = \"SubscriptionStatus\",\n SubscriptionType = \"SubscriptionType\",\n Tenant = \"Tenant\",\n Invoices = \"Invoices\",\n}\n\nexport interface ITenantEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateDataDeletion?: Date;\n DomainName?: string;\n ImpactScore?: number;\n IsActive?: boolean;\n IsCanceled?: boolean;\n IsDemo?: boolean;\n IsOnStaging?: boolean;\n Label?: string;\n LeadScore?: number;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n ProductCode?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n CustomerSupportGuid?: string;\n S5CustomerGuid?: string;\n CrmAccountGuid?: string;\n CrmOpportunityGuid?: string;\n LastModifiedByUserGuid?: string;\n TemporaryGuid?: string;\n BillingAddress?: IBillingAddressEntity;\n BillingContacts?: IBillingContactEntity[];\n Product?: IProductEntity;\n Subscription?: ISubscriptionEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum TenantEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateDataDeletion = \"DateDataDeletion\",\n DomainName = \"DomainName\",\n ImpactScore = \"ImpactScore\",\n IsActive = \"IsActive\",\n IsCanceled = \"IsCanceled\",\n IsDemo = \"IsDemo\",\n IsOnStaging = \"IsOnStaging\",\n Label = \"Label\",\n LeadScore = \"LeadScore\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n ProductCode = \"ProductCode\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n CustomerSupportGuid = \"CustomerSupportGuid\",\n S5CustomerGuid = \"S5CustomerGuid\",\n CrmAccountGuid = \"CrmAccountGuid\",\n CrmOpportunityGuid = \"CrmOpportunityGuid\",\n LastModifiedByUserGuid = \"LastModifiedByUserGuid\",\n TemporaryGuid = \"TemporaryGuid\",\n BillingAddress = \"BillingAddress\",\n BillingContacts = \"BillingContacts\",\n Product = \"Product\",\n Subscription = \"Subscription\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AssetAcquisitionTypeCode?: string;\n CategoryCode?: string;\n CurrencyCode?: string;\n IsActive?: boolean;\n IsAssignable?: boolean;\n IsClosed?: boolean;\n IsInvertible?: boolean;\n Name?: string;\n Note?: string;\n Number?: string;\n TaxApplicabilityCode?: string;\n TypeCode?: string;\n AssetAcquisitionType?: IAssetTypeEntity;\n BalanceSheetLayout?: IBalanceSheetLayoutEntity;\n Category?: IAccountCategoryEntity;\n Currency?: ICurrencyEntity;\n IncomeStatementLayout?: IIncomeStatementLayoutEntity;\n Parent?: IAccountEntity;\n TaxApplicability?: ITaxApplicabilityEntity;\n Type?: IAccountTypeEntity;\n Children?: IAccountEntity[];\n}\n\nexport enum AccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AssetAcquisitionTypeCode = \"AssetAcquisitionTypeCode\",\n CategoryCode = \"CategoryCode\",\n CurrencyCode = \"CurrencyCode\",\n IsActive = \"IsActive\",\n IsAssignable = \"IsAssignable\",\n IsClosed = \"IsClosed\",\n IsInvertible = \"IsInvertible\",\n Name = \"Name\",\n Note = \"Note\",\n Number = \"Number\",\n TaxApplicabilityCode = \"TaxApplicabilityCode\",\n TypeCode = \"TypeCode\",\n AssetAcquisitionType = \"AssetAcquisitionType\",\n BalanceSheetLayout = \"BalanceSheetLayout\",\n Category = \"Category\",\n Currency = \"Currency\",\n IncomeStatementLayout = \"IncomeStatementLayout\",\n Parent = \"Parent\",\n TaxApplicability = \"TaxApplicability\",\n Type = \"Type\",\n Children = \"Children\",\n}\n\nexport interface IAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CreditAccountName?: string;\n CreditAccountNumber?: string;\n DebitAccountName?: string;\n DebitAccountNumber?: string;\n IsActive?: boolean;\n Name?: string;\n Note?: string;\n ShortName?: string;\n DocumentTypes?: IAccountAssignmentDocumentTypeEntity[];\n}\n\nexport enum AccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CreditAccountName = \"CreditAccountName\",\n CreditAccountNumber = \"CreditAccountNumber\",\n DebitAccountName = \"DebitAccountName\",\n DebitAccountNumber = \"DebitAccountNumber\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n DocumentTypes = \"DocumentTypes\",\n}\n\nexport interface IAccountAssignmentDocumentTypeEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n DocumentType?: IDocumentTypeEntity;\n}\n\nexport enum AccountAssignmentDocumentTypeEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentType = \"DocumentType\",\n}\n\nexport interface IAccountAssignmentDocumentTypeTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n DocumentType?: IDocumentTypeEntity;\n}\n\nexport enum AccountAssignmentDocumentTypeTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentType = \"DocumentType\",\n}\n\nexport interface IAccountAssignmentSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n}\n\nexport enum AccountAssignmentSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n}\n\nexport interface IAccountAssignmentSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n}\n\nexport enum AccountAssignmentSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n}\n\nexport interface IAccountAssignmentTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CreditAccountName?: string;\n CreditAccountNumber?: string;\n DebitAccountName?: string;\n DebitAccountNumber?: string;\n IsActive?: boolean;\n Name?: string;\n Note?: string;\n ShortName?: string;\n DocumentTypes?: IAccountAssignmentDocumentTypeTemplateEntity[];\n}\n\nexport enum AccountAssignmentTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CreditAccountName = \"CreditAccountName\",\n CreditAccountNumber = \"CreditAccountNumber\",\n DebitAccountName = \"DebitAccountName\",\n DebitAccountNumber = \"DebitAccountNumber\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n DocumentTypes = \"DocumentTypes\",\n}\n\nexport interface IAccountCategoryEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AccountCategoryEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAccountRoleEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AccountRoleEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAccountTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AssetAcquisitionTypeCode?: string;\n CategoryCode?: string;\n CurrencyCode?: string;\n IsActive?: boolean;\n IsInvertible?: boolean;\n Name?: string;\n Note?: string;\n Number?: string;\n TaxApplicabilityCode?: string;\n TypeCode?: string;\n AssetAcquisitionType?: IAssetTypeEntity;\n BalanceSheetLayout?: IBalanceSheetLayoutTemplateEntity;\n Category?: IAccountCategoryEntity;\n Currency?: ICurrencyEntity;\n IncomeStatementLayout?: IIncomeStatementLayoutTemplateEntity;\n Parent?: IAccountTemplateEntity;\n TaxApplicability?: ITaxApplicabilityEntity;\n Type?: IAccountTypeEntity;\n Children?: IAccountTemplateEntity[];\n}\n\nexport enum AccountTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AssetAcquisitionTypeCode = \"AssetAcquisitionTypeCode\",\n CategoryCode = \"CategoryCode\",\n CurrencyCode = \"CurrencyCode\",\n IsActive = \"IsActive\",\n IsInvertible = \"IsInvertible\",\n Name = \"Name\",\n Note = \"Note\",\n Number = \"Number\",\n TaxApplicabilityCode = \"TaxApplicabilityCode\",\n TypeCode = \"TypeCode\",\n AssetAcquisitionType = \"AssetAcquisitionType\",\n BalanceSheetLayout = \"BalanceSheetLayout\",\n Category = \"Category\",\n Currency = \"Currency\",\n IncomeStatementLayout = \"IncomeStatementLayout\",\n Parent = \"Parent\",\n TaxApplicability = \"TaxApplicability\",\n Type = \"Type\",\n Children = \"Children\",\n}\n\nexport interface IAccountTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AccountTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAccountingEntity extends IEntityBase {\n Code?: string;\n BookkeepingCode?: string;\n CountryCode?: string;\n DefaultLanguageCode?: string;\n Description?: string;\n Name?: string;\n Bookkeeping?: IBookkeepingEntity;\n Country?: ICountryEntity;\n DefaultLanguage?: ILanguageEntity;\n}\n\nexport enum AccountingEntity {\n Code = \"Code\",\n BookkeepingCode = \"BookkeepingCode\",\n CountryCode = \"CountryCode\",\n DefaultLanguageCode = \"DefaultLanguageCode\",\n Description = \"Description\",\n Name = \"Name\",\n Bookkeeping = \"Bookkeeping\",\n Country = \"Country\",\n DefaultLanguage = \"DefaultLanguage\",\n}\n\nexport interface IAccountingDepreciationPolicyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CurrencyCode?: string;\n DateFirstDepreciation?: Date;\n DateLastDepreciation?: Date;\n DateRequestedLastDepreciation?: Date;\n Currency?: ICurrencyEntity;\n DepreciationTypeCode?: string;\n UsefulLife?: number;\n DepreciationType?: IDepreciationTypeEntity;\n Items?: IAccountingDepreciationPolicyItemEntity[];\n}\n\nexport enum AccountingDepreciationPolicyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CurrencyCode = \"CurrencyCode\",\n DateFirstDepreciation = \"DateFirstDepreciation\",\n DateLastDepreciation = \"DateLastDepreciation\",\n DateRequestedLastDepreciation = \"DateRequestedLastDepreciation\",\n Currency = \"Currency\",\n DepreciationTypeCode = \"DepreciationTypeCode\",\n UsefulLife = \"UsefulLife\",\n DepreciationType = \"DepreciationType\",\n Items = \"Items\",\n}\n\nexport interface IAccountingDepreciationPolicyItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CalculatedExpense?: number;\n CurrencyCode?: string;\n DateDepreciation?: Date;\n EndValue?: number;\n Order?: number;\n Currency?: ICurrencyEntity;\n Document?: IInternalDocumentEntity;\n}\n\nexport enum AccountingDepreciationPolicyItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CalculatedExpense = \"CalculatedExpense\",\n CurrencyCode = \"CurrencyCode\",\n DateDepreciation = \"DateDepreciation\",\n EndValue = \"EndValue\",\n Order = \"Order\",\n Currency = \"Currency\",\n Document = \"Document\",\n}\n\nexport interface IAccruedProcessingTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AccruedProcessingTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IActionLogEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ActionDetails?: string;\n ActionId?: string;\n ActionTypeCode?: string;\n ActionType?: IActionTypeEntity;\n}\n\nexport enum ActionLogEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ActionDetails = \"ActionDetails\",\n ActionId = \"ActionId\",\n ActionTypeCode = \"ActionTypeCode\",\n ActionType = \"ActionType\",\n}\n\nexport interface IActionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ActionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum AddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IApprovalStatusTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ApprovalStatusTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAssetEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountingBalance?: number;\n CalculatedPrice?: number;\n CanBeDepreciated?: boolean;\n CurrencyCode?: string;\n DateDisposed?: Date;\n DateFirstPutInUse?: Date;\n DateForUsefulLife?: Date;\n DateInUseFrom?: Date;\n DateRemainingPrices?: Date;\n IsImportedAsset?: boolean;\n IsImproved?: boolean;\n IsInUse?: boolean;\n IsLowPriceAsset?: boolean;\n Name?: string;\n Note?: string;\n NumberOurs?: string;\n StatusCode?: string;\n TaxBalance?: number;\n TypeCode?: string;\n ImportedAssetPrice?: number;\n RemainingAccountingPrice?: number;\n RemainingTaxPrice?: number;\n UsedTaxLimit?: number;\n RemainingTaxYears?: number;\n AccountingDepreciationPolicy?: IAccountingDepreciationPolicyEntity;\n AccumulatedDepreciationsAccount?: IAccountEntity;\n ChartOfAccounts?: IChartOfAccountsEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DepreciationAccount?: IAccountEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n InUseAccount?: IAccountEntity;\n NumberRange?: INumberRangeEntity;\n Status?: IAssetStatusEntity;\n TaxDepreciationPolicy?: ITaxDepreciationPolicyEntity;\n Type?: IAssetTypeEntity;\n Attachments?: IAssetAttachmentEntity[];\n Items?: IAssetItemEntity[];\n Labels?: IAssetLabelEntity[];\n}\n\nexport enum AssetEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountingBalance = \"AccountingBalance\",\n CalculatedPrice = \"CalculatedPrice\",\n CanBeDepreciated = \"CanBeDepreciated\",\n CurrencyCode = \"CurrencyCode\",\n DateDisposed = \"DateDisposed\",\n DateFirstPutInUse = \"DateFirstPutInUse\",\n DateForUsefulLife = \"DateForUsefulLife\",\n DateInUseFrom = \"DateInUseFrom\",\n DateRemainingPrices = \"DateRemainingPrices\",\n IsImportedAsset = \"IsImportedAsset\",\n IsImproved = \"IsImproved\",\n IsInUse = \"IsInUse\",\n IsLowPriceAsset = \"IsLowPriceAsset\",\n Name = \"Name\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n StatusCode = \"StatusCode\",\n TaxBalance = \"TaxBalance\",\n TypeCode = \"TypeCode\",\n ImportedAssetPrice = \"ImportedAssetPrice\",\n RemainingAccountingPrice = \"RemainingAccountingPrice\",\n RemainingTaxPrice = \"RemainingTaxPrice\",\n UsedTaxLimit = \"UsedTaxLimit\",\n RemainingTaxYears = \"RemainingTaxYears\",\n AccountingDepreciationPolicy = \"AccountingDepreciationPolicy\",\n AccumulatedDepreciationsAccount = \"AccumulatedDepreciationsAccount\",\n ChartOfAccounts = \"ChartOfAccounts\",\n Company = \"Company\",\n Currency = \"Currency\",\n DepreciationAccount = \"DepreciationAccount\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n InUseAccount = \"InUseAccount\",\n NumberRange = \"NumberRange\",\n Status = \"Status\",\n TaxDepreciationPolicy = \"TaxDepreciationPolicy\",\n Type = \"Type\",\n Attachments = \"Attachments\",\n Items = \"Items\",\n Labels = \"Labels\",\n}\n\nexport interface IAssetAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum AssetAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IAssetDisposalTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AssetDisposalTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAssetItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CreditAccount?: string;\n CurrencyCode?: string;\n DateElectronicSubmissionVatStatement?: Date;\n DateOfTransaction?: Date;\n DateRequestedLastAccountingDepreciation?: Date;\n DateRequestedLastTaxDepreciation?: Date;\n DebitAccount?: string;\n IsForUsefulLifeRefresh?: boolean;\n ItemTypeCode?: string;\n Order?: number;\n UsefulLife?: number;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n ItemType?: IAssetItemTypeEntity;\n Children?: IAssetItemEntity[];\n}\n\nexport enum AssetItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CreditAccount = \"CreditAccount\",\n CurrencyCode = \"CurrencyCode\",\n DateElectronicSubmissionVatStatement = \"DateElectronicSubmissionVatStatement\",\n DateOfTransaction = \"DateOfTransaction\",\n DateRequestedLastAccountingDepreciation = \"DateRequestedLastAccountingDepreciation\",\n DateRequestedLastTaxDepreciation = \"DateRequestedLastTaxDepreciation\",\n DebitAccount = \"DebitAccount\",\n IsForUsefulLifeRefresh = \"IsForUsefulLifeRefresh\",\n ItemTypeCode = \"ItemTypeCode\",\n Order = \"Order\",\n UsefulLife = \"UsefulLife\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n ItemType = \"ItemType\",\n Children = \"Children\",\n}\n\nexport interface IAssetItemTypeEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n}\n\nexport enum AssetItemTypeEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n}\n\nexport interface IAssetLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum AssetLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IAssetStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AssetStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAssetTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum AssetTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IAssetValueEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n MinValue?: number;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum AssetValueEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n MinValue = \"MinValue\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IBackgroundJobEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsSeen?: boolean;\n Parameters?: string;\n Result?: string;\n StatusCode?: string;\n TypeCode?: string;\n DateStarted?: Date;\n Company?: ICompanyEntity;\n Status?: IBackgroundJobStatusEntity;\n Type?: IBackgroundJobTypeEntity;\n}\n\nexport enum BackgroundJobEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsSeen = \"IsSeen\",\n Parameters = \"Parameters\",\n Result = \"Result\",\n StatusCode = \"StatusCode\",\n TypeCode = \"TypeCode\",\n DateStarted = \"DateStarted\",\n Company = \"Company\",\n Status = \"Status\",\n Type = \"Type\",\n}\n\nexport interface IBackgroundJobStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BackgroundJobStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBackgroundJobTypeEntity extends IEntityBase {\n Code?: string;\n ClassName?: string;\n IsServiceJob?: boolean;\n IsSystemJob?: boolean;\n Name?: string;\n}\n\nexport enum BackgroundJobTypeEntity {\n Code = \"Code\",\n ClassName = \"ClassName\",\n IsServiceJob = \"IsServiceJob\",\n IsSystemJob = \"IsSystemJob\",\n Name = \"Name\",\n}\n\nexport interface IBalanceSheetLayoutEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AssetsReportSectionCode?: string;\n IsAssetsCorrection?: boolean;\n LiabilitiesReportSectionCode?: string;\n Account?: IAccountEntity;\n AssetsReportSection?: IFinancialReportLayoutSectionEntity;\n ChartOfAccounts?: IChartOfAccountsEntity;\n LiabilitiesReportSection?: IFinancialReportLayoutSectionEntity;\n}\n\nexport enum BalanceSheetLayoutEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AssetsReportSectionCode = \"AssetsReportSectionCode\",\n IsAssetsCorrection = \"IsAssetsCorrection\",\n LiabilitiesReportSectionCode = \"LiabilitiesReportSectionCode\",\n Account = \"Account\",\n AssetsReportSection = \"AssetsReportSection\",\n ChartOfAccounts = \"ChartOfAccounts\",\n LiabilitiesReportSection = \"LiabilitiesReportSection\",\n}\n\nexport interface IBalanceSheetLayoutTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AssetsReportSectionCode?: string;\n IsAssetsCorrection?: boolean;\n LiabilitiesReportSectionCode?: string;\n Account?: IAccountTemplateEntity;\n AssetsReportSection?: IFinancialReportLayoutSectionEntity;\n ChartOfAccounts?: IChartOfAccountsTemplateEntity;\n LiabilitiesReportSection?: IFinancialReportLayoutSectionEntity;\n}\n\nexport enum BalanceSheetLayoutTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AssetsReportSectionCode = \"AssetsReportSectionCode\",\n IsAssetsCorrection = \"IsAssetsCorrection\",\n LiabilitiesReportSectionCode = \"LiabilitiesReportSectionCode\",\n Account = \"Account\",\n AssetsReportSection = \"AssetsReportSection\",\n ChartOfAccounts = \"ChartOfAccounts\",\n LiabilitiesReportSection = \"LiabilitiesReportSection\",\n}\n\nexport interface IBankEntity extends IEntityBase {\n Code?: string;\n BankStatementApiSupported?: boolean;\n CountryCode?: string;\n LogoId?: number;\n Name?: string;\n PaymentOrdersImportApiSupported?: boolean;\n SWIFT?: string;\n ShortName?: string;\n Country?: ICountryEntity;\n}\n\nexport enum BankEntity {\n Code = \"Code\",\n BankStatementApiSupported = \"BankStatementApiSupported\",\n CountryCode = \"CountryCode\",\n LogoId = \"LogoId\",\n Name = \"Name\",\n PaymentOrdersImportApiSupported = \"PaymentOrdersImportApiSupported\",\n SWIFT = \"SWIFT\",\n ShortName = \"ShortName\",\n Country = \"Country\",\n}\n\nexport interface IBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum BankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IBankAccountBalanceEntity extends IEntityBase {\n Id?: number;\n TransactionBalance?: number;\n TransactionCurrencyCode?: string;\n DateBalanceChanged?: Date;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum BankAccountBalanceEntity {\n Id = \"Id\",\n TransactionBalance = \"TransactionBalance\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n DateBalanceChanged = \"DateBalanceChanged\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface IBankAccountNumberFormatTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankAccountNumberFormatTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankApiConnectionSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BankAccountId?: string;\n ClientName?: string;\n ContractNumber?: string;\n DateExpirationApiKey?: Date;\n ErrorMessage?: string;\n ApiKeySetter?: string;\n ApiKeyId?: number;\n RegistrationInfoId?: number;\n}\n\nexport enum BankApiConnectionSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BankAccountId = \"BankAccountId\",\n ClientName = \"ClientName\",\n ContractNumber = \"ContractNumber\",\n DateExpirationApiKey = \"DateExpirationApiKey\",\n ErrorMessage = \"ErrorMessage\",\n ApiKeySetter = \"ApiKeySetter\",\n ApiKeyId = \"ApiKeyId\",\n RegistrationInfoId = \"RegistrationInfoId\",\n}\n\nexport interface IBankApiStatementImportFrequencyEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankApiStatementImportFrequencyEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankApiStatementImportRangeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankApiStatementImportRangeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankApiStatementImportSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BankApiStatementImportFrequencyCode?: string;\n BankApiStatementImportRangeCode?: string;\n DateFrom?: Date;\n BankApiStatementImportFrequency?: IBankApiStatementImportFrequencyEntity;\n BankApiStatementImportRange?: IBankApiStatementImportRangeEntity;\n}\n\nexport enum BankApiStatementImportSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BankApiStatementImportFrequencyCode = \"BankApiStatementImportFrequencyCode\",\n BankApiStatementImportRangeCode = \"BankApiStatementImportRangeCode\",\n DateFrom = \"DateFrom\",\n BankApiStatementImportFrequency = \"BankApiStatementImportFrequency\",\n BankApiStatementImportRange = \"BankApiStatementImportRange\",\n}\n\nexport interface IBankExchangeRateFreshnessEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankExchangeRateFreshnessEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankPaymentOrderStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankPaymentOrderStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankStatementEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CreditTransactionsCount?: number;\n CreditTurnover?: number;\n DateFrom?: Date;\n DebitTransactionsCount?: number;\n DebitTurnover?: number;\n IsVisible?: boolean;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n OtherTransactionsCount?: number;\n TransactionsCount?: number;\n TransactionsTurnover?: number;\n BankAccount?: ICompanyBankAccountEntity;\n NumberRange?: INumberRangeEntity;\n Attachments?: IBankStatementAttachmentEntity[];\n Locks?: IBankStatementLockEntity[];\n Transactions?: IBankTransactionEntity[];\n}\n\nexport enum BankStatementEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CreditTransactionsCount = \"CreditTransactionsCount\",\n CreditTurnover = \"CreditTurnover\",\n DateFrom = \"DateFrom\",\n DebitTransactionsCount = \"DebitTransactionsCount\",\n DebitTurnover = \"DebitTurnover\",\n IsVisible = \"IsVisible\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n OtherTransactionsCount = \"OtherTransactionsCount\",\n TransactionsCount = \"TransactionsCount\",\n TransactionsTurnover = \"TransactionsTurnover\",\n BankAccount = \"BankAccount\",\n NumberRange = \"NumberRange\",\n Attachments = \"Attachments\",\n Locks = \"Locks\",\n Transactions = \"Transactions\",\n}\n\nexport interface IBankStatementAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum BankStatementAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IBankStatementAttachmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum BankStatementAttachmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IBankStatementCsvSettingsTextEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AmountFormat?: string;\n DataStartPosition?: number;\n DateFormat?: string;\n FileEncoding?: string;\n HeaderPosition?: number;\n}\n\nexport enum BankStatementCsvSettingsTextEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AmountFormat = \"AmountFormat\",\n DataStartPosition = \"DataStartPosition\",\n DateFormat = \"DateFormat\",\n FileEncoding = \"FileEncoding\",\n HeaderPosition = \"HeaderPosition\",\n}\n\nexport interface IBankStatementDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateFrom?: Date;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n CreditTurnover?: number;\n DebitTurnover?: number;\n TransactionsTurnover?: number;\n CreditTransactionsCount?: number;\n DebitTransactionsCount?: number;\n OtherTransactionsCount?: number;\n TransactionsCount?: number;\n BankAccount?: ICompanyBankAccountEntity;\n NumberRange?: INumberRangeEntity;\n Attachments?: IBankStatementAttachmentDraftEntity[];\n Transactions?: IPaymentDocumentDraftEntity[];\n}\n\nexport enum BankStatementDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateFrom = \"DateFrom\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n CreditTurnover = \"CreditTurnover\",\n DebitTurnover = \"DebitTurnover\",\n TransactionsTurnover = \"TransactionsTurnover\",\n CreditTransactionsCount = \"CreditTransactionsCount\",\n DebitTransactionsCount = \"DebitTransactionsCount\",\n OtherTransactionsCount = \"OtherTransactionsCount\",\n TransactionsCount = \"TransactionsCount\",\n BankAccount = \"BankAccount\",\n NumberRange = \"NumberRange\",\n Attachments = \"Attachments\",\n Transactions = \"Transactions\",\n}\n\nexport interface IBankStatementLockEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum BankStatementLockEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IBankTransactionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n ExchangeRatePerUnit?: number;\n IsUnrelatedToBusiness?: boolean;\n Note?: string;\n NumberOurs?: string;\n PaymentStatusCode?: string;\n PostedStatusCode?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocumentDraft?: IPaymentDocumentDraftEntity;\n PaymentStatus?: IPaymentStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Items?: IPaymentDocumentItemEntity[];\n Locks?: IPaymentDocumentLockEntity[];\n BankAccountDescription?: string;\n BankInternalId?: string;\n BankTransactionTypeCode?: string;\n DateBankTransaction?: Date;\n DoesWaitForDuplicateCheck?: boolean;\n IsDuplicate?: boolean;\n Order?: number;\n PaymentInformation?: string;\n PaymentType?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n BankAccount?: IBankTransactionBankAccountEntity;\n BankStatement?: IBankStatementEntity;\n BankTransactionType?: IBankTransactionTypeEntity;\n BusinessPartner?: IBankTransactionBusinessPartnerEntity;\n}\n\nexport enum BankTransactionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaymentStatusCode = \"PaymentStatusCode\",\n PostedStatusCode = \"PostedStatusCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentStatus = \"PaymentStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Locks = \"Locks\",\n BankAccountDescription = \"BankAccountDescription\",\n BankInternalId = \"BankInternalId\",\n BankTransactionTypeCode = \"BankTransactionTypeCode\",\n DateBankTransaction = \"DateBankTransaction\",\n DoesWaitForDuplicateCheck = \"DoesWaitForDuplicateCheck\",\n IsDuplicate = \"IsDuplicate\",\n Order = \"Order\",\n PaymentInformation = \"PaymentInformation\",\n PaymentType = \"PaymentType\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n BankAccount = \"BankAccount\",\n BankStatement = \"BankStatement\",\n BankTransactionType = \"BankTransactionType\",\n BusinessPartner = \"BusinessPartner\",\n}\n\nexport interface IBankTransactionBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum BankTransactionBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IBankTransactionBankAccountDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum BankTransactionBankAccountDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IBankTransactionBusinessPartnerEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum BankTransactionBusinessPartnerEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IBankTransactionBusinessPartnerDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum BankTransactionBusinessPartnerDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IBankTransactionCsvColumnMappingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ColumnId?: number;\n PropertyName?: string;\n}\n\nexport enum BankTransactionCsvColumnMappingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ColumnId = \"ColumnId\",\n PropertyName = \"PropertyName\",\n}\n\nexport interface IBankTransactionDocumentNumberLocationEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankTransactionDocumentNumberLocationEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBankTransactionDuplicateEntity extends IEntityBase {\n NotId?: number;\n CompanyBankAccount?: ICompanyBankAccountEntity;\n SourceBankStatement?: IBankStatementEntity;\n SourceBankTransaction?: IBankTransactionEntity;\n TargetBankStatement?: IBankStatementEntity;\n TargetBankTransaction?: IBankTransactionEntity;\n}\n\nexport enum BankTransactionDuplicateEntity {\n NotId = \"NotId\",\n CompanyBankAccount = \"CompanyBankAccount\",\n SourceBankStatement = \"SourceBankStatement\",\n SourceBankTransaction = \"SourceBankTransaction\",\n TargetBankStatement = \"TargetBankStatement\",\n TargetBankTransaction = \"TargetBankTransaction\",\n}\n\nexport interface IBankTransactionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BankTransactionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBillingEventEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BillingEventType?: null;\n BillingEventSubType?: null;\n Amount?: number;\n CompanyId?: number;\n AccountingCode?: string;\n UserId?: number;\n ModuleCode?: string;\n}\n\nexport enum BillingEventEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BillingEventType = \"BillingEventType\",\n BillingEventSubType = \"BillingEventSubType\",\n Amount = \"Amount\",\n CompanyId = \"CompanyId\",\n AccountingCode = \"AccountingCode\",\n UserId = \"UserId\",\n ModuleCode = \"ModuleCode\",\n}\n\nexport interface IBillingItemTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BillingItemTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBillingModuleTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n S5articleGuid?: string;\n}\n\nexport enum BillingModuleTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n S5articleGuid = \"S5articleGuid\",\n}\n\nexport interface IBillingPricingEntity extends IEntityBase {\n Code?: string;\n BillingModuleTypeCode?: string;\n CountryCode?: string;\n CurrencyCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Price?: number;\n BillingModuleType?: IBillingModuleTypeEntity;\n Country?: ICountryEntity;\n Currency?: ICurrencyEntity;\n}\n\nexport enum BillingPricingEntity {\n Code = \"Code\",\n BillingModuleTypeCode = \"BillingModuleTypeCode\",\n CountryCode = \"CountryCode\",\n CurrencyCode = \"CurrencyCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Price = \"Price\",\n BillingModuleType = \"BillingModuleType\",\n Country = \"Country\",\n Currency = \"Currency\",\n}\n\nexport interface IBookkeepingEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BookkeepingEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBusinessPartnerEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataBoxId?: string;\n IsLegalPerson?: boolean;\n IsSynchronizedWithAres?: boolean;\n IsUnreliableVatPayer?: boolean;\n LegalNumber?: string;\n Name?: string;\n Note?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BillingAddress?: IBusinessPartnerBillingAddressEntity;\n Company?: ICompanyEntity;\n CorrespondenceAddress?: IBusinessPartnerCorrespondenceAddressEntity;\n IssuedDocumentDefault?: IBusinessPartnerIssuedDocumentDefaultEntity;\n Parent?: IBusinessPartnerEntity;\n ReceivedDocumentDefault?: IBusinessPartnerReceivedDocumentDefaultEntity;\n VatStatus?: IVatStatusEntity;\n Attachments?: IBusinessPartnerAttachmentEntity[];\n BankAccounts?: IBusinessPartnerBankAccountEntity[];\n Contacts?: IBusinessPartnerContactEntity[];\n Children?: IBusinessPartnerEntity[];\n}\n\nexport enum BusinessPartnerEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataBoxId = \"DataBoxId\",\n IsLegalPerson = \"IsLegalPerson\",\n IsSynchronizedWithAres = \"IsSynchronizedWithAres\",\n IsUnreliableVatPayer = \"IsUnreliableVatPayer\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n Note = \"Note\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BillingAddress = \"BillingAddress\",\n Company = \"Company\",\n CorrespondenceAddress = \"CorrespondenceAddress\",\n IssuedDocumentDefault = \"IssuedDocumentDefault\",\n Parent = \"Parent\",\n ReceivedDocumentDefault = \"ReceivedDocumentDefault\",\n VatStatus = \"VatStatus\",\n Attachments = \"Attachments\",\n BankAccounts = \"BankAccounts\",\n Contacts = \"Contacts\",\n Children = \"Children\",\n}\n\nexport interface IBusinessPartnerAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum BusinessPartnerAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IBusinessPartnerBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n Description?: string;\n IsDefaultForReceivedDocuments?: boolean;\n Order?: number;\n}\n\nexport enum BusinessPartnerBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n Description = \"Description\",\n IsDefaultForReceivedDocuments = \"IsDefaultForReceivedDocuments\",\n Order = \"Order\",\n}\n\nexport interface IBusinessPartnerBillingAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum BusinessPartnerBillingAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IBusinessPartnerContactEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n PhoneNumber?: string;\n Description?: string;\n Order?: number;\n Role?: string;\n}\n\nexport enum BusinessPartnerContactEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n PhoneNumber = \"PhoneNumber\",\n Description = \"Description\",\n Order = \"Order\",\n Role = \"Role\",\n}\n\nexport interface IBusinessPartnerCorrespondenceAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum BusinessPartnerCorrespondenceAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IBusinessPartnerDocumentDefaultEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DefaultPaymentMethodCode?: string;\n Note?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n DaysDue?: number;\n AccountAssignment?: IAccountAssignmentEntity;\n DefaultPaymentMethod?: IPaymentMethodEntity;\n VatClassification?: IVatClassificationEntity;\n}\n\nexport enum BusinessPartnerDocumentDefaultEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DefaultPaymentMethodCode = \"DefaultPaymentMethodCode\",\n Note = \"Note\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n DaysDue = \"DaysDue\",\n AccountAssignment = \"AccountAssignment\",\n DefaultPaymentMethod = \"DefaultPaymentMethod\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IBusinessPartnerDocumentDefaultTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum BusinessPartnerDocumentDefaultTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IBusinessPartnerIssuedDocumentDefaultEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DefaultPaymentMethodCode?: string;\n Note?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n DaysDue?: number;\n AccountAssignment?: IAccountAssignmentEntity;\n DefaultPaymentMethod?: IPaymentMethodEntity;\n VatClassification?: IVatClassificationEntity;\n CompanyBankAccount?: ICompanyBankAccountEntity;\n}\n\nexport enum BusinessPartnerIssuedDocumentDefaultEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DefaultPaymentMethodCode = \"DefaultPaymentMethodCode\",\n Note = \"Note\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n DaysDue = \"DaysDue\",\n AccountAssignment = \"AccountAssignment\",\n DefaultPaymentMethod = \"DefaultPaymentMethod\",\n VatClassification = \"VatClassification\",\n CompanyBankAccount = \"CompanyBankAccount\",\n}\n\nexport interface IBusinessPartnerReceivedDocumentDefaultEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DefaultPaymentMethodCode?: string;\n Note?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n DaysDue?: number;\n AccountAssignment?: IAccountAssignmentEntity;\n DefaultPaymentMethod?: IPaymentMethodEntity;\n VatClassification?: IVatClassificationEntity;\n}\n\nexport enum BusinessPartnerReceivedDocumentDefaultEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DefaultPaymentMethodCode = \"DefaultPaymentMethodCode\",\n Note = \"Note\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n DaysDue = \"DaysDue\",\n AccountAssignment = \"AccountAssignment\",\n DefaultPaymentMethod = \"DefaultPaymentMethod\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface ICBATransactionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CBATransactionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICashBoxEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BalanceSheetAccountName?: string;\n BalanceSheetAccountNumberSuffix?: string;\n CashierName?: string;\n CurrencyCode?: string;\n HasMaterialLiability?: boolean;\n InitialBalance?: number;\n InitialTransactionBalance?: number;\n IsActive?: boolean;\n IsDefault?: boolean;\n Name?: string;\n Note?: string;\n TransactionCurrencyCode?: string;\n Balance?: ICashBoxBalanceEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n ReceiptIssuedNumberRangeDefinition?: INumberRangeDefinitionEntity;\n ReceiptReceivedNumberRangeDefinition?: INumberRangeDefinitionEntity;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum CashBoxEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BalanceSheetAccountName = \"BalanceSheetAccountName\",\n BalanceSheetAccountNumberSuffix = \"BalanceSheetAccountNumberSuffix\",\n CashierName = \"CashierName\",\n CurrencyCode = \"CurrencyCode\",\n HasMaterialLiability = \"HasMaterialLiability\",\n InitialBalance = \"InitialBalance\",\n InitialTransactionBalance = \"InitialTransactionBalance\",\n IsActive = \"IsActive\",\n IsDefault = \"IsDefault\",\n Name = \"Name\",\n Note = \"Note\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Balance = \"Balance\",\n Company = \"Company\",\n Currency = \"Currency\",\n ReceiptIssuedNumberRangeDefinition = \"ReceiptIssuedNumberRangeDefinition\",\n ReceiptReceivedNumberRangeDefinition = \"ReceiptReceivedNumberRangeDefinition\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface ICashBoxBalanceEntity extends IEntityBase {\n Id?: number;\n TransactionBalance?: number;\n TransactionCurrencyCode?: string;\n DateBalanceChanged?: Date;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum CashBoxBalanceEntity {\n Id = \"Id\",\n TransactionBalance = \"TransactionBalance\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n DateBalanceChanged = \"DateBalanceChanged\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface ICashReceiptEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n ExchangeRatePerUnit?: number;\n IsUnrelatedToBusiness?: boolean;\n Note?: string;\n NumberOurs?: string;\n PaymentStatusCode?: string;\n PostedStatusCode?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocumentDraft?: IPaymentDocumentDraftEntity;\n PaymentStatus?: IPaymentStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Items?: IPaymentDocumentItemEntity[];\n Locks?: IPaymentDocumentLockEntity[];\n DateIssued?: Date;\n Purpose?: string;\n CashBox?: ICashBoxEntity;\n}\n\nexport enum CashReceiptEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaymentStatusCode = \"PaymentStatusCode\",\n PostedStatusCode = \"PostedStatusCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentStatus = \"PaymentStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Locks = \"Locks\",\n DateIssued = \"DateIssued\",\n Purpose = \"Purpose\",\n CashBox = \"CashBox\",\n}\n\nexport interface ICashReceiptIssuedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n ExchangeRatePerUnit?: number;\n IsUnrelatedToBusiness?: boolean;\n Note?: string;\n NumberOurs?: string;\n PaymentStatusCode?: string;\n PostedStatusCode?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocumentDraft?: IPaymentDocumentDraftEntity;\n PaymentStatus?: IPaymentStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Items?: IPaymentDocumentItemEntity[];\n Locks?: IPaymentDocumentLockEntity[];\n DateIssued?: Date;\n Purpose?: string;\n CashBox?: ICashBoxEntity;\n PaidBy?: string;\n PaidTo?: string;\n}\n\nexport enum CashReceiptIssuedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaymentStatusCode = \"PaymentStatusCode\",\n PostedStatusCode = \"PostedStatusCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentStatus = \"PaymentStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Locks = \"Locks\",\n DateIssued = \"DateIssued\",\n Purpose = \"Purpose\",\n CashBox = \"CashBox\",\n PaidBy = \"PaidBy\",\n PaidTo = \"PaidTo\",\n}\n\nexport interface ICashReceiptReceivedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n ExchangeRatePerUnit?: number;\n IsUnrelatedToBusiness?: boolean;\n Note?: string;\n NumberOurs?: string;\n PaymentStatusCode?: string;\n PostedStatusCode?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocumentDraft?: IPaymentDocumentDraftEntity;\n PaymentStatus?: IPaymentStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Items?: IPaymentDocumentItemEntity[];\n Locks?: IPaymentDocumentLockEntity[];\n DateIssued?: Date;\n Purpose?: string;\n CashBox?: ICashBoxEntity;\n ReceivedBy?: string;\n ReceivedFrom?: string;\n}\n\nexport enum CashReceiptReceivedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaymentStatusCode = \"PaymentStatusCode\",\n PostedStatusCode = \"PostedStatusCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentStatus = \"PaymentStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Locks = \"Locks\",\n DateIssued = \"DateIssued\",\n Purpose = \"Purpose\",\n CashBox = \"CashBox\",\n ReceivedBy = \"ReceivedBy\",\n ReceivedFrom = \"ReceivedFrom\",\n}\n\nexport interface ICbaAssetDisposalTypeEntity extends IEntityBase {\n Code?: string;\n IsTaxByDefault?: boolean;\n Name?: string;\n}\n\nexport enum CbaAssetDisposalTypeEntity {\n Code = \"Code\",\n IsTaxByDefault = \"IsTaxByDefault\",\n Name = \"Name\",\n}\n\nexport interface ICbaCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsActive?: boolean;\n IsAssetAcquisition?: boolean;\n Name?: string;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Company?: ICompanyEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum CbaCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsActive = \"IsActive\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n Name = \"Name\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Company = \"Company\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface ICbaCategoryTaxImpactEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CbaCategoryTaxImpactEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICbaEntryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AmountCleared?: number;\n AmountNonTaxed?: number;\n AmountTaxed?: number;\n AmountVat?: number;\n CbaCategoryTaxImpactCode?: string;\n CurrencyCode?: string;\n DailyRateAmountCleared?: number;\n DailyRateAmountNonTaxed?: number;\n DailyRateAmountTaxed?: number;\n DailyRateAmountVat?: number;\n Date?: Date;\n Description?: string;\n IsAssetAcquisition?: boolean;\n IsReverseProforma?: boolean;\n IsUnrelatedToBusiness?: boolean;\n SpecialVatCalculationCode?: string;\n TaxPercentage?: number;\n TransactionAmountCleared?: number;\n TransactionAmountNonTaxed?: number;\n TransactionAmountTaxed?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n TypeCode?: string;\n VatCode?: string;\n VatPercentage?: number;\n AssetDocumentItem?: IDocumentItemEntity;\n Category?: ICbaCategoryEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentLink?: IDocumentLinkEntity;\n InternalDocument?: IInternalDocumentEntity;\n PairedDocument?: IDocumentEntity;\n PaymentDocument?: IPaymentDocumentEntity;\n PaymentDocumentItem?: IPaymentDocumentItemEntity;\n ProformaDocument?: IDocumentEntity;\n SpecialVatCalculation?: ICbaEntrySpecialVatCalculationEntity;\n TransactionCurrency?: ICurrencyEntity;\n Type?: ICbaEntryTypeEntity;\n Vat?: IVatEntity;\n Labels?: ICbaEntryLabelEntity[];\n}\n\nexport enum CbaEntryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AmountCleared = \"AmountCleared\",\n AmountNonTaxed = \"AmountNonTaxed\",\n AmountTaxed = \"AmountTaxed\",\n AmountVat = \"AmountVat\",\n CbaCategoryTaxImpactCode = \"CbaCategoryTaxImpactCode\",\n CurrencyCode = \"CurrencyCode\",\n DailyRateAmountCleared = \"DailyRateAmountCleared\",\n DailyRateAmountNonTaxed = \"DailyRateAmountNonTaxed\",\n DailyRateAmountTaxed = \"DailyRateAmountTaxed\",\n DailyRateAmountVat = \"DailyRateAmountVat\",\n Date = \"Date\",\n Description = \"Description\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n IsReverseProforma = \"IsReverseProforma\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n SpecialVatCalculationCode = \"SpecialVatCalculationCode\",\n TaxPercentage = \"TaxPercentage\",\n TransactionAmountCleared = \"TransactionAmountCleared\",\n TransactionAmountNonTaxed = \"TransactionAmountNonTaxed\",\n TransactionAmountTaxed = \"TransactionAmountTaxed\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TypeCode = \"TypeCode\",\n VatCode = \"VatCode\",\n VatPercentage = \"VatPercentage\",\n AssetDocumentItem = \"AssetDocumentItem\",\n Category = \"Category\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentLink = \"DocumentLink\",\n InternalDocument = \"InternalDocument\",\n PairedDocument = \"PairedDocument\",\n PaymentDocument = \"PaymentDocument\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n ProformaDocument = \"ProformaDocument\",\n SpecialVatCalculation = \"SpecialVatCalculation\",\n TransactionCurrency = \"TransactionCurrency\",\n Type = \"Type\",\n Vat = \"Vat\",\n Labels = \"Labels\",\n}\n\nexport interface ICbaEntryLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum CbaEntryLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface ICbaEntryLedgerDocumentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CbaEntryLedgerDocumentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICbaEntrySpecialVatCalculationEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CbaEntrySpecialVatCalculationEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICbaEntryTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CbaEntryTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IChartOfAccountsEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n Name?: string;\n Note?: string;\n Company?: ICompanyEntity;\n FiscalYear?: IFiscalYearEntity;\n Accounts?: IAccountEntity[];\n}\n\nexport enum ChartOfAccountsEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n Name = \"Name\",\n Note = \"Note\",\n Company = \"Company\",\n FiscalYear = \"FiscalYear\",\n Accounts = \"Accounts\",\n}\n\nexport interface IChartOfAccountsTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountingCode?: string;\n Description?: string;\n Name?: string;\n Accounting?: IAccountingEntity;\n Company?: ICompanyEntity;\n Accounts?: IAccountTemplateEntity[];\n RequiredAccountTemplates?: IRequiredAccountTemplateEntity[];\n}\n\nexport enum ChartOfAccountsTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountingCode = \"AccountingCode\",\n Description = \"Description\",\n Name = \"Name\",\n Accounting = \"Accounting\",\n Company = \"Company\",\n Accounts = \"Accounts\",\n RequiredAccountTemplates = \"RequiredAccountTemplates\",\n}\n\nexport interface IChartedAccountAssignmentEntity extends IEntityBase {\n NotId?: number;\n DocumentTypeCode?: string;\n IsActive?: boolean;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n DocumentType?: IDocumentTypeEntity;\n}\n\nexport enum ChartedAccountAssignmentEntity {\n NotId = \"NotId\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n DocumentType = \"DocumentType\",\n}\n\nexport interface IClearedStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ClearedStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IClearingDocumentLinkEntity extends IEntityBase {\n Id?: number;\n CurrencyCode?: string;\n DateClearing?: Date;\n PairedDocumentIsTaxDocument?: boolean;\n TransactionAmount?: number;\n TransactionCurrencyCode?: string;\n TypeCode?: string;\n Amount?: number;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n PairedDocument?: IDocumentEntity;\n PairedPaymentDocument?: IPaymentDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum ClearingDocumentLinkEntity {\n Id = \"Id\",\n CurrencyCode = \"CurrencyCode\",\n DateClearing = \"DateClearing\",\n PairedDocumentIsTaxDocument = \"PairedDocumentIsTaxDocument\",\n TransactionAmount = \"TransactionAmount\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n Currency = \"Currency\",\n Document = \"Document\",\n PairedDocument = \"PairedDocument\",\n PairedPaymentDocument = \"PairedPaymentDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n Type = \"Type\",\n}\n\nexport interface IColourThemeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ColourThemeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICommunicationEntryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ApiResponseMessage?: string;\n ChannelCode?: string;\n MessageId?: string;\n PaymentOrderAmount?: string;\n PaymentOrderCurrency?: string;\n Recipient?: string;\n RecipientAddress?: string;\n RecipientBankAccountCurrency?: string;\n RecipientBankAccountName?: string;\n RecipientBankAccountNumber?: string;\n RecipientBankName?: string;\n RecipientDataboxId?: string;\n RecipientEmail?: string;\n RecipientLegalNumber?: string;\n Sender?: string;\n SenderAddress?: string;\n SenderDataboxId?: string;\n SenderEmail?: string;\n SenderLegalNumber?: string;\n StateCode?: string;\n Subject?: string;\n Text?: string;\n TimeSent?: string;\n TypeCode?: string;\n DateSent?: Date;\n DateStateChange?: Date;\n Channel?: ICommunicationEntryChannelEntity;\n Company?: ICompanyEntity;\n State?: ICommunicationEntryStateEntity;\n Type?: ICommunicationEntryTypeEntity;\n User?: IUserEntity;\n Attachments?: ICommunicationEntryAttachmentEntity[];\n}\n\nexport enum CommunicationEntryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ApiResponseMessage = \"ApiResponseMessage\",\n ChannelCode = \"ChannelCode\",\n MessageId = \"MessageId\",\n PaymentOrderAmount = \"PaymentOrderAmount\",\n PaymentOrderCurrency = \"PaymentOrderCurrency\",\n Recipient = \"Recipient\",\n RecipientAddress = \"RecipientAddress\",\n RecipientBankAccountCurrency = \"RecipientBankAccountCurrency\",\n RecipientBankAccountName = \"RecipientBankAccountName\",\n RecipientBankAccountNumber = \"RecipientBankAccountNumber\",\n RecipientBankName = \"RecipientBankName\",\n RecipientDataboxId = \"RecipientDataboxId\",\n RecipientEmail = \"RecipientEmail\",\n RecipientLegalNumber = \"RecipientLegalNumber\",\n Sender = \"Sender\",\n SenderAddress = \"SenderAddress\",\n SenderDataboxId = \"SenderDataboxId\",\n SenderEmail = \"SenderEmail\",\n SenderLegalNumber = \"SenderLegalNumber\",\n StateCode = \"StateCode\",\n Subject = \"Subject\",\n Text = \"Text\",\n TimeSent = \"TimeSent\",\n TypeCode = \"TypeCode\",\n DateSent = \"DateSent\",\n DateStateChange = \"DateStateChange\",\n Channel = \"Channel\",\n Company = \"Company\",\n State = \"State\",\n Type = \"Type\",\n User = \"User\",\n Attachments = \"Attachments\",\n}\n\nexport interface ICommunicationEntryAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum CommunicationEntryAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface ICommunicationEntryChannelEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CommunicationEntryChannelEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICommunicationEntryStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CommunicationEntryStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICommunicationEntryTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CommunicationEntryTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICommunicationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CommunicationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountingCode?: string;\n BirthNumber?: string;\n CompanyRegister?: string;\n CurrencyCode?: string;\n CzNaceCode?: string;\n DateInitialized?: Date;\n FinancialAdministrationCode?: string;\n InboxEmail?: string;\n LegalName?: string;\n LegalNumber?: string;\n Name?: string;\n StateCode?: string;\n TaxNumber?: string;\n TypeOfBusinessCode?: string;\n UseVatReducedDeduction?: boolean;\n WebPage?: string;\n Accounting?: IAccountingEntity;\n CommunicationAddress?: ICompanyCommunicationAddressEntity;\n CommunicationContact?: ICompanyCommunicationContactEntity;\n CompanySetting?: ICompanySettingEntity;\n Currency?: ICurrencyEntity;\n CzNace?: ICzNaceEntity;\n FinancialAdministration?: IGovernmentInstitutionEntity;\n LegalAddress?: ICompanyLegalAddressEntity;\n Logo?: IFileMetadataEntity;\n PrPayrollSetting?: IPrPayrollSettingEntity;\n Stamp?: IFileMetadataEntity;\n State?: ICompanyStateEntity;\n TaxStatementSignatoryPerson?: ITaxStatementSignatoryPersonEntity;\n TypeOfBusiness?: ITypeOfBusinessEntity;\n VatReducedCoefficients?: ICompanyVatReducedCoefficientEntity[];\n VatStatuses?: ICompanyVatStatusEntity[];\n}\n\nexport enum CompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountingCode = \"AccountingCode\",\n BirthNumber = \"BirthNumber\",\n CompanyRegister = \"CompanyRegister\",\n CurrencyCode = \"CurrencyCode\",\n CzNaceCode = \"CzNaceCode\",\n DateInitialized = \"DateInitialized\",\n FinancialAdministrationCode = \"FinancialAdministrationCode\",\n InboxEmail = \"InboxEmail\",\n LegalName = \"LegalName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n StateCode = \"StateCode\",\n TaxNumber = \"TaxNumber\",\n TypeOfBusinessCode = \"TypeOfBusinessCode\",\n UseVatReducedDeduction = \"UseVatReducedDeduction\",\n WebPage = \"WebPage\",\n Accounting = \"Accounting\",\n CommunicationAddress = \"CommunicationAddress\",\n CommunicationContact = \"CommunicationContact\",\n CompanySetting = \"CompanySetting\",\n Currency = \"Currency\",\n CzNace = \"CzNace\",\n FinancialAdministration = \"FinancialAdministration\",\n LegalAddress = \"LegalAddress\",\n Logo = \"Logo\",\n PrPayrollSetting = \"PrPayrollSetting\",\n Stamp = \"Stamp\",\n State = \"State\",\n TaxStatementSignatoryPerson = \"TaxStatementSignatoryPerson\",\n TypeOfBusiness = \"TypeOfBusiness\",\n VatReducedCoefficients = \"VatReducedCoefficients\",\n VatStatuses = \"VatStatuses\",\n}\n\nexport interface ICompanyBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n BalanceSheetAccountName?: string;\n BalanceSheetAccountNumberSuffix?: string;\n CompanyBankAccountTypeCode?: string;\n CurrencyCode?: string;\n HasAutoPosting?: boolean;\n InitialBalance?: number;\n InitialTransactionBalance?: number;\n IsActive?: boolean;\n IsDefault?: boolean;\n Name?: string;\n TransactionCurrencyCode?: string;\n Balance?: IBankAccountBalanceEntity;\n BankApiConnectionSetting?: IBankApiConnectionSettingEntity;\n BankApiStatementImportSetting?: IBankApiStatementImportSettingEntity;\n BankStatementCsvSettingsText?: IBankStatementCsvSettingsTextEntity;\n BankStatementNumberRangeDefinition?: INumberRangeDefinitionEntity;\n Company?: ICompanyEntity;\n CompanyBankAccountType?: ICompanyBankAccountTypeEntity;\n Currency?: ICurrencyEntity;\n Logo?: IFileMetadataEntity;\n TransactionCurrency?: ICurrencyEntity;\n BankTransactionCsvColumnMappings?: IBankTransactionCsvColumnMappingEntity[];\n}\n\nexport enum CompanyBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n BalanceSheetAccountName = \"BalanceSheetAccountName\",\n BalanceSheetAccountNumberSuffix = \"BalanceSheetAccountNumberSuffix\",\n CompanyBankAccountTypeCode = \"CompanyBankAccountTypeCode\",\n CurrencyCode = \"CurrencyCode\",\n HasAutoPosting = \"HasAutoPosting\",\n InitialBalance = \"InitialBalance\",\n InitialTransactionBalance = \"InitialTransactionBalance\",\n IsActive = \"IsActive\",\n IsDefault = \"IsDefault\",\n Name = \"Name\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Balance = \"Balance\",\n BankApiConnectionSetting = \"BankApiConnectionSetting\",\n BankApiStatementImportSetting = \"BankApiStatementImportSetting\",\n BankStatementCsvSettingsText = \"BankStatementCsvSettingsText\",\n BankStatementNumberRangeDefinition = \"BankStatementNumberRangeDefinition\",\n Company = \"Company\",\n CompanyBankAccountType = \"CompanyBankAccountType\",\n Currency = \"Currency\",\n Logo = \"Logo\",\n TransactionCurrency = \"TransactionCurrency\",\n BankTransactionCsvColumnMappings = \"BankTransactionCsvColumnMappings\",\n}\n\nexport interface ICompanyBankAccountTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CompanyBankAccountTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICompanyCommunicationAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum CompanyCommunicationAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface ICompanyCommunicationContactEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n PhoneNumber?: string;\n}\n\nexport enum CompanyCommunicationContactEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n PhoneNumber = \"PhoneNumber\",\n}\n\nexport interface ICompanyFixedExchangeRateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ExchangeRateDirect?: number;\n ExchangeRateIndirect?: number;\n ExchangeRatePerUnit?: number;\n IsClosingFiscalYear?: boolean;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n}\n\nexport enum CompanyFixedExchangeRateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ExchangeRateDirect = \"ExchangeRateDirect\",\n ExchangeRateIndirect = \"ExchangeRateIndirect\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsClosingFiscalYear = \"IsClosingFiscalYear\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n}\n\nexport interface ICompanyLegalAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum CompanyLegalAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface ICompanyPermissionEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n FeatureCode?: string;\n Name?: string;\n Feature?: IFeatureEntity;\n}\n\nexport enum CompanyPermissionEntity {\n Code = \"Code\",\n Description = \"Description\",\n FeatureCode = \"FeatureCode\",\n Name = \"Name\",\n Feature = \"Feature\",\n}\n\nexport interface ICompanyRoleEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CompanyRoleName?: string;\n IsSystemRole?: boolean;\n TypeCode?: string;\n UserCount?: number;\n Type?: ICompanyRoleTypeEntity;\n CompanyRolePermissions?: ICompanyRolePermissionEntity[];\n}\n\nexport enum CompanyRoleEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CompanyRoleName = \"CompanyRoleName\",\n IsSystemRole = \"IsSystemRole\",\n TypeCode = \"TypeCode\",\n UserCount = \"UserCount\",\n Type = \"Type\",\n CompanyRolePermissions = \"CompanyRolePermissions\",\n}\n\nexport interface ICompanyRolePermissionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CompanyPermissionCode?: string;\n IsEnabled?: boolean;\n OwnOnly?: boolean;\n CompanyPermission?: ICompanyPermissionEntity;\n}\n\nexport enum CompanyRolePermissionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CompanyPermissionCode = \"CompanyPermissionCode\",\n IsEnabled = \"IsEnabled\",\n OwnOnly = \"OwnOnly\",\n CompanyPermission = \"CompanyPermission\",\n}\n\nexport interface ICompanyRoleTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CompanyRoleTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICompanySettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateInitialAccountBalances?: Date;\n InitialChartOfAccountsTemplateId?: number;\n InitialYear?: number;\n InitialBalancesDocument?: IInternalDocumentEntity;\n InitialFiscalYear?: IFiscalYearEntity;\n InitialAccountBalances?: IInitialAccountBalanceEntity[];\n TrustedSenders?: ITrustedSenderEntity[];\n InboxApprovers?: IUserEntity[];\n RequiredAccounts?: IRequiredAccountEntity[];\n}\n\nexport enum CompanySettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateInitialAccountBalances = \"DateInitialAccountBalances\",\n InitialChartOfAccountsTemplateId = \"InitialChartOfAccountsTemplateId\",\n InitialYear = \"InitialYear\",\n InitialBalancesDocument = \"InitialBalancesDocument\",\n InitialFiscalYear = \"InitialFiscalYear\",\n InitialAccountBalances = \"InitialAccountBalances\",\n TrustedSenders = \"TrustedSenders\",\n InboxApprovers = \"InboxApprovers\",\n RequiredAccounts = \"RequiredAccounts\",\n}\n\nexport interface ICompanyStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CompanyStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICompanyVatReducedCoefficientEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n VatReducedCoefficient?: number;\n Year?: number;\n}\n\nexport enum CompanyVatReducedCoefficientEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n VatReducedCoefficient = \"VatReducedCoefficient\",\n Year = \"Year\",\n}\n\nexport interface ICompanyVatStatusEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CompanyId?: number;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n VatStatementFrequencyCode?: string;\n VatStatusCode?: string;\n VatStatementFrequency?: IVatStatementFrequencyEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum CompanyVatStatusEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CompanyId = \"CompanyId\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n VatStatementFrequencyCode = \"VatStatementFrequencyCode\",\n VatStatusCode = \"VatStatusCode\",\n VatStatementFrequency = \"VatStatementFrequency\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface ICompoundJournalEntryEntity extends IEntityBase {\n NotId?: number;\n CreditAmount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DebitAmount?: number;\n Description?: string;\n DocumentTypeCode?: string;\n IsBalancing?: boolean;\n IsClosing?: boolean;\n IsOpening?: boolean;\n TransactionCreditAmount?: number;\n TransactionCurrencyCode?: string;\n TransactionDebitAmount?: number;\n Account?: IAccountEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n DocumentType?: IDocumentTypeEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n PaymentDocument?: IPaymentDocumentEntity;\n PaymentDocumentItem?: IPaymentDocumentItemEntity;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum CompoundJournalEntryEntity {\n NotId = \"NotId\",\n CreditAmount = \"CreditAmount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DebitAmount = \"DebitAmount\",\n Description = \"Description\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsBalancing = \"IsBalancing\",\n IsClosing = \"IsClosing\",\n IsOpening = \"IsOpening\",\n TransactionCreditAmount = \"TransactionCreditAmount\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TransactionDebitAmount = \"TransactionDebitAmount\",\n Account = \"Account\",\n Company = \"Company\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n DocumentType = \"DocumentType\",\n FiscalPeriod = \"FiscalPeriod\",\n PaymentDocument = \"PaymentDocument\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface IContactEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n PhoneNumber?: string;\n}\n\nexport enum ContactEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n PhoneNumber = \"PhoneNumber\",\n}\n\nexport interface ICorrectiveInvoiceIssuedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n BankPaymentOrderStateCode?: string;\n DateBankApiPaymentOrder?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateTaxableSupply?: Date;\n Explanation?: string;\n ExternalCorrectedDocumentNumber?: string;\n ExternalCorrectedDocumentTypeCode?: string;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n CashBox?: ICashBoxEntity;\n ExternalCorrectedDocumentType?: IExternalCorrectedDocumentTypeEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n CorrectedDocuments?: IDocumentEntity[];\n}\n\nexport enum CorrectiveInvoiceIssuedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateTaxableSupply = \"DateTaxableSupply\",\n Explanation = \"Explanation\",\n ExternalCorrectedDocumentNumber = \"ExternalCorrectedDocumentNumber\",\n ExternalCorrectedDocumentTypeCode = \"ExternalCorrectedDocumentTypeCode\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n CashBox = \"CashBox\",\n ExternalCorrectedDocumentType = \"ExternalCorrectedDocumentType\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n CorrectedDocuments = \"CorrectedDocuments\",\n}\n\nexport interface ICorrectiveInvoiceReceivedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n BankPaymentOrderStateCode?: string;\n DateBankApiPaymentOrder?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateReceived?: Date;\n DateTaxableSupply?: Date;\n Explanation?: string;\n ExternalCorrectedDocumentNumber?: string;\n ExternalCorrectedDocumentTypeCode?: string;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n CashBox?: ICashBoxEntity;\n ExternalCorrectedDocumentType?: IExternalCorrectedDocumentTypeEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n CorrectedDocuments?: IDocumentEntity[];\n}\n\nexport enum CorrectiveInvoiceReceivedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateReceived = \"DateReceived\",\n DateTaxableSupply = \"DateTaxableSupply\",\n Explanation = \"Explanation\",\n ExternalCorrectedDocumentNumber = \"ExternalCorrectedDocumentNumber\",\n ExternalCorrectedDocumentTypeCode = \"ExternalCorrectedDocumentTypeCode\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n CashBox = \"CashBox\",\n ExternalCorrectedDocumentType = \"ExternalCorrectedDocumentType\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n CorrectedDocuments = \"CorrectedDocuments\",\n}\n\nexport interface ICountryEntity extends IEntityBase {\n Code?: string;\n Code3?: string;\n DefaultCurrencyCode?: string;\n IsEEA?: boolean;\n IsEuMember?: boolean;\n IsSepa?: boolean;\n Name?: string;\n NumericCode?: string;\n DefaultCurrency?: ICurrencyEntity;\n Currencies?: ICurrencyEntity[];\n}\n\nexport enum CountryEntity {\n Code = \"Code\",\n Code3 = \"Code3\",\n DefaultCurrencyCode = \"DefaultCurrencyCode\",\n IsEEA = \"IsEEA\",\n IsEuMember = \"IsEuMember\",\n IsSepa = \"IsSepa\",\n Name = \"Name\",\n NumericCode = \"NumericCode\",\n DefaultCurrency = \"DefaultCurrency\",\n Currencies = \"Currencies\",\n}\n\nexport interface ICountryClassificationEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum CountryClassificationEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ICountryOrUnionEntity extends IEntityBase {\n Code?: string;\n Code3?: string;\n DefaultCurrencyCode?: string;\n IsEuMember?: boolean;\n Name?: string;\n NumericCode?: string;\n DefaultCurrency?: ICurrencyEntity;\n Currencies?: ICurrencyEntity[];\n}\n\nexport enum CountryOrUnionEntity {\n Code = \"Code\",\n Code3 = \"Code3\",\n DefaultCurrencyCode = \"DefaultCurrencyCode\",\n IsEuMember = \"IsEuMember\",\n Name = \"Name\",\n NumericCode = \"NumericCode\",\n DefaultCurrency = \"DefaultCurrency\",\n Currencies = \"Currencies\",\n}\n\nexport interface ICurrencyEntity extends IEntityBase {\n Code?: string;\n DefaultCountryCode?: string;\n Name?: string;\n NumericCode?: string;\n MinorUnit?: number;\n DefaultCountry?: ICountryOrUnionEntity;\n}\n\nexport enum CurrencyEntity {\n Code = \"Code\",\n DefaultCountryCode = \"DefaultCountryCode\",\n Name = \"Name\",\n NumericCode = \"NumericCode\",\n MinorUnit = \"MinorUnit\",\n DefaultCountry = \"DefaultCountry\",\n}\n\nexport interface ICurrencyUsedByCompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BankExchangeRateFreshnessCode?: string;\n CountryCode?: string;\n ExchangeRateTypeCode?: string;\n FromCurrencyCode?: string;\n SetFixedExchangeRate?: boolean;\n ToCurrencyCode?: string;\n Amount?: number;\n ExchangeRateDirect?: number;\n BankExchangeRateFreshness?: IBankExchangeRateFreshnessEntity;\n Company?: ICompanyEntity;\n Country?: ICountryOrUnionEntity;\n ExchangeRateType?: IExchangeRateTypeEntity;\n FromCurrency?: ICurrencyEntity;\n ToCurrency?: ICurrencyEntity;\n FixedExchangeRates?: ICompanyFixedExchangeRateEntity[];\n}\n\nexport enum CurrencyUsedByCompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BankExchangeRateFreshnessCode = \"BankExchangeRateFreshnessCode\",\n CountryCode = \"CountryCode\",\n ExchangeRateTypeCode = \"ExchangeRateTypeCode\",\n FromCurrencyCode = \"FromCurrencyCode\",\n SetFixedExchangeRate = \"SetFixedExchangeRate\",\n ToCurrencyCode = \"ToCurrencyCode\",\n Amount = \"Amount\",\n ExchangeRateDirect = \"ExchangeRateDirect\",\n BankExchangeRateFreshness = \"BankExchangeRateFreshness\",\n Company = \"Company\",\n Country = \"Country\",\n ExchangeRateType = \"ExchangeRateType\",\n FromCurrency = \"FromCurrency\",\n ToCurrency = \"ToCurrency\",\n FixedExchangeRates = \"FixedExchangeRates\",\n}\n\nexport interface ICurrencyWithExchangeRateInfoEntity extends IEntityBase {\n Id?: number;\n Code?: string;\n DefaultCountryCode?: string;\n IsCurrencyExchangeRateProvidedByCentralBank?: boolean;\n IsCurrencyExchangeRateProvidedByCentralBankDaily?: boolean;\n Name?: string;\n NumericCode?: string;\n MinorUnit?: number;\n}\n\nexport enum CurrencyWithExchangeRateInfoEntity {\n Id = \"Id\",\n Code = \"Code\",\n DefaultCountryCode = \"DefaultCountryCode\",\n IsCurrencyExchangeRateProvidedByCentralBank = \"IsCurrencyExchangeRateProvidedByCentralBank\",\n IsCurrencyExchangeRateProvidedByCentralBankDaily = \"IsCurrencyExchangeRateProvidedByCentralBankDaily\",\n Name = \"Name\",\n NumericCode = \"NumericCode\",\n MinorUnit = \"MinorUnit\",\n}\n\nexport interface ICustomerPortalPaymentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n BusinessPartnerName?: string;\n CountryCode?: string;\n DateDue?: Date;\n DocumentTypeCode?: string;\n IBAN?: string;\n IsPaid?: boolean;\n LegalNumber?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n QrCode?: string;\n RemittanceInformation?: string;\n SWIFT?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionCurrencyCode?: string;\n Country?: ICountryEntity;\n Document?: IDocumentEntity;\n DocumentType?: IDocumentTypeEntity;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum CustomerPortalPaymentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n BusinessPartnerName = \"BusinessPartnerName\",\n CountryCode = \"CountryCode\",\n DateDue = \"DateDue\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IBAN = \"IBAN\",\n IsPaid = \"IsPaid\",\n LegalNumber = \"LegalNumber\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n QrCode = \"QrCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SWIFT = \"SWIFT\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Country = \"Country\",\n Document = \"Document\",\n DocumentType = \"DocumentType\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface ICzNaceEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n}\n\nexport enum CzNaceEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n}\n\nexport interface IDashboardTaskEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n SequenceOrder?: number;\n DateCompleted?: Date;\n}\n\nexport enum DashboardTaskEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n SequenceOrder = \"SequenceOrder\",\n DateCompleted = \"DateCompleted\",\n}\n\nexport interface IDataBoxEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AllowReadingNewMessages?: boolean;\n CanCheckMessages?: boolean;\n CanReadMessages?: boolean;\n CanSendMessages?: boolean;\n CompanyAddress?: string;\n CompanyName?: string;\n DataBoxId?: string;\n DataBoxUserName?: string;\n IsActive?: boolean;\n LegalNumber?: string;\n PasswordId?: number;\n UserName?: string;\n PasswordSetter?: string;\n Company?: ICompanyEntity;\n}\n\nexport enum DataBoxEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AllowReadingNewMessages = \"AllowReadingNewMessages\",\n CanCheckMessages = \"CanCheckMessages\",\n CanReadMessages = \"CanReadMessages\",\n CanSendMessages = \"CanSendMessages\",\n CompanyAddress = \"CompanyAddress\",\n CompanyName = \"CompanyName\",\n DataBoxId = \"DataBoxId\",\n DataBoxUserName = \"DataBoxUserName\",\n IsActive = \"IsActive\",\n LegalNumber = \"LegalNumber\",\n PasswordId = \"PasswordId\",\n UserName = \"UserName\",\n PasswordSetter = \"PasswordSetter\",\n Company = \"Company\",\n}\n\nexport interface IDataLimitEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataLimitTypeCode?: string;\n Limit?: number;\n DataLimitType?: IDataLimitTypeEntity;\n}\n\nexport enum DataLimitEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataLimitTypeCode = \"DataLimitTypeCode\",\n Limit = \"Limit\",\n DataLimitType = \"DataLimitType\",\n}\n\nexport interface IDataLimitTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DataLimitTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDateFormatEntity extends IEntityBase {\n Code?: string;\n Format?: string;\n Name?: string;\n}\n\nexport enum DateFormatEntity {\n Code = \"Code\",\n Format = \"Format\",\n Name = \"Name\",\n}\n\nexport interface IDayOfWeekEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DayOfWeekEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDefaultVariantEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccessTypeCode?: string;\n AccountingCode?: string;\n VariantTypeCode?: string;\n VatStatusCode?: string;\n ViewId?: string;\n AccessType?: IVariantAccessTypeEntity;\n Accounting?: IAccountingEntity;\n Owner?: IUserEntity;\n Variant?: IVariantEntity;\n VariantType?: IVariantTypeEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum DefaultVariantEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccessTypeCode = \"AccessTypeCode\",\n AccountingCode = \"AccountingCode\",\n VariantTypeCode = \"VariantTypeCode\",\n VatStatusCode = \"VatStatusCode\",\n ViewId = \"ViewId\",\n AccessType = \"AccessType\",\n Accounting = \"Accounting\",\n Owner = \"Owner\",\n Variant = \"Variant\",\n VariantType = \"VariantType\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IDeferredDocumentEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DocumentLinkTypeCode?: string;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentLinkType?: IDocumentLinkTypeEntity;\n OriginalDocument?: IDocumentEntity;\n TargetDocument?: IInternalDocumentEntity;\n}\n\nexport enum DeferredDocumentEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DocumentLinkTypeCode = \"DocumentLinkTypeCode\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentLinkType = \"DocumentLinkType\",\n OriginalDocument = \"OriginalDocument\",\n TargetDocument = \"TargetDocument\",\n}\n\nexport interface IDeferredPlanEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n Description?: string;\n PeriodDayCode?: string;\n PostingTypeCode?: string;\n Account?: IAccountEntity;\n ChartOfAccounts?: IChartOfAccountsEntity;\n Company?: ICompanyEntity;\n OriginalDocument?: IDocumentEntity;\n PeriodDay?: IPeriodDayEntity;\n PostingType?: IDeferredPlanPostingTypeEntity;\n DeferredDocuments?: IDeferredPlanDocumentEntity[];\n OriginalDocumentItems?: IDeferredPlanOriginalDocumentItemEntity[];\n}\n\nexport enum DeferredPlanEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Description = \"Description\",\n PeriodDayCode = \"PeriodDayCode\",\n PostingTypeCode = \"PostingTypeCode\",\n Account = \"Account\",\n ChartOfAccounts = \"ChartOfAccounts\",\n Company = \"Company\",\n OriginalDocument = \"OriginalDocument\",\n PeriodDay = \"PeriodDay\",\n PostingType = \"PostingType\",\n DeferredDocuments = \"DeferredDocuments\",\n OriginalDocumentItems = \"OriginalDocumentItems\",\n}\n\nexport interface IDeferredPlanDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n DateAccountingTransaction?: Date;\n TargetDocument?: IInternalDocumentEntity;\n Items?: IDeferredPlanDocumentItemEntity[];\n}\n\nexport enum DeferredPlanDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n TargetDocument = \"TargetDocument\",\n Items = \"Items\",\n}\n\nexport interface IDeferredPlanDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n OriginalDocumentItem?: IDocumentItemEntity;\n TargetDocumentItem?: IDocumentItemEntity;\n}\n\nexport enum DeferredPlanDocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n OriginalDocumentItem = \"OriginalDocumentItem\",\n TargetDocumentItem = \"TargetDocumentItem\",\n}\n\nexport interface IDeferredPlanOriginalDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n OriginalDocumentItem?: IDocumentItemEntity;\n}\n\nexport enum DeferredPlanOriginalDocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n OriginalDocumentItem = \"OriginalDocumentItem\",\n}\n\nexport interface IDeferredPlanPostingTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DeferredPlanPostingTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDepreciationPolicyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CurrencyCode?: string;\n DateFirstDepreciation?: Date;\n DateLastDepreciation?: Date;\n DateRequestedLastDepreciation?: Date;\n Currency?: ICurrencyEntity;\n}\n\nexport enum DepreciationPolicyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CurrencyCode = \"CurrencyCode\",\n DateFirstDepreciation = \"DateFirstDepreciation\",\n DateLastDepreciation = \"DateLastDepreciation\",\n DateRequestedLastDepreciation = \"DateRequestedLastDepreciation\",\n Currency = \"Currency\",\n}\n\nexport interface IDepreciationPolicyItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CalculatedExpense?: number;\n CurrencyCode?: string;\n DateDepreciation?: Date;\n EndValue?: number;\n Order?: number;\n Currency?: ICurrencyEntity;\n}\n\nexport enum DepreciationPolicyItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CalculatedExpense = \"CalculatedExpense\",\n CurrencyCode = \"CurrencyCode\",\n DateDepreciation = \"DateDepreciation\",\n EndValue = \"EndValue\",\n Order = \"Order\",\n Currency = \"Currency\",\n}\n\nexport interface IDepreciationPolicyTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DepreciationPolicyTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDepreciationSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n DepreciationSettingTypeCode?: string;\n PartialExpense?: number;\n DepreciationSettingType?: IDepreciationSettingTypeEntity;\n}\n\nexport enum DepreciationSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n DepreciationSettingTypeCode = \"DepreciationSettingTypeCode\",\n PartialExpense = \"PartialExpense\",\n DepreciationSettingType = \"DepreciationSettingType\",\n}\n\nexport interface IDepreciationSettingTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DepreciationSettingTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDepreciationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DepreciationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n}\n\nexport enum DocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n}\n\nexport interface IDocumentAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum DocumentAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IDocumentAccountAssignmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum DocumentAccountAssignmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IDocumentAccountAssignmentSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IDocumentAccountAssignmentEntity;\n}\n\nexport enum DocumentAccountAssignmentSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IDocumentAccountAssignmentSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IDocumentAccountAssignmentDraftEntity;\n}\n\nexport enum DocumentAccountAssignmentSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IDocumentAssetEntryEntity extends IEntityBase {\n NotId?: number;\n Asset?: IAssetEntity;\n AssetItem?: IAssetItemEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n}\n\nexport enum DocumentAssetEntryEntity {\n NotId = \"NotId\",\n Asset = \"Asset\",\n AssetItem = \"AssetItem\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n}\n\nexport interface IDocumentAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum DocumentAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IDocumentAttachmentDeletedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum DocumentAttachmentDeletedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IDocumentAttachmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum DocumentAttachmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IDocumentBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum DocumentBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IDocumentBankAccountDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum DocumentBankAccountDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IDocumentBusinessPartnerEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum DocumentBusinessPartnerEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IDocumentBusinessPartnerDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum DocumentBusinessPartnerDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IDocumentCbaCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum DocumentCbaCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IDocumentCbaCategoryDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum DocumentCbaCategoryDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IDocumentDeleteLogEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateDocumentVatStatement?: Date;\n DocumentId?: number;\n DocumentTypeCode?: string;\n InteractionTypeCode?: string;\n NumberOurs?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n DocumentType?: IDocumentTypeEntity;\n InteractionType?: IInteractionTypeEntity;\n Attachments?: IDocumentAttachmentDeletedEntity[];\n}\n\nexport enum DocumentDeleteLogEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DocumentId = \"DocumentId\",\n DocumentTypeCode = \"DocumentTypeCode\",\n InteractionTypeCode = \"InteractionTypeCode\",\n NumberOurs = \"NumberOurs\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n DocumentType = \"DocumentType\",\n InteractionType = \"InteractionType\",\n Attachments = \"Attachments\",\n}\n\nexport interface IDocumentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BankPaymentOrderStateCode?: string;\n CalculateVat?: boolean;\n CbaEntryTypeCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateBankApiPaymentOrder?: Date;\n DateCbaDocument?: Date;\n DateCbaEntry?: Date;\n DateDocumentVatStatement?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DatePaymentReceived?: Date;\n DateProcessed?: Date;\n DateReceived?: Date;\n DateTaxableSupply?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n Explanation?: string;\n ExternalCorrectedDocumentNumber?: string;\n ExternalCorrectedDocumentTypeCode?: string;\n IsTaxDocument?: boolean;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PaymentMethodCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolMatching?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TextBeforeItems?: string;\n TransactionCurrencyCode?: string;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionAmountDue?: number;\n ExchangeRatePerUnit?: number;\n ExchangeRatePerUnitDateVatDeduction?: number;\n CountByDocumentTypeCodeAndNumberOurs?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionDraftEntity;\n BankAccount?: IDocumentBankAccountDraftEntity;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n BusinessPartner?: IDocumentBusinessPartnerDraftEntity;\n CashBox?: ICashBoxEntity;\n CbaCategory?: IDocumentCbaCategoryDraftEntity;\n CbaEntryType?: ICbaEntryTypeEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n ExternalCorrectedDocumentType?: IExternalCorrectedDocumentTypeEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n GeneratedByRecurringTask?: IRecurringTaskEntity;\n NumberRange?: INumberRangeEntity;\n PaymentMethod?: IPaymentMethodEntity;\n TemplateForRecurringTask?: IRecurringTaskEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionDraftEntity;\n Attachments?: IDocumentAttachmentDraftEntity[];\n DocumentLinks?: IDocumentLinkDraftEntity[];\n Items?: IDocumentItemDraftEntity[];\n Labels?: IDocumentLabelDraftEntity[];\n Locks?: IDocumentLockDraftEntity[];\n CorrectedDocuments?: IDocumentEntity[];\n}\n\nexport enum DocumentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n CalculateVat = \"CalculateVat\",\n CbaEntryTypeCode = \"CbaEntryTypeCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateCbaDocument = \"DateCbaDocument\",\n DateCbaEntry = \"DateCbaEntry\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DatePaymentReceived = \"DatePaymentReceived\",\n DateProcessed = \"DateProcessed\",\n DateReceived = \"DateReceived\",\n DateTaxableSupply = \"DateTaxableSupply\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n Explanation = \"Explanation\",\n ExternalCorrectedDocumentNumber = \"ExternalCorrectedDocumentNumber\",\n ExternalCorrectedDocumentTypeCode = \"ExternalCorrectedDocumentTypeCode\",\n IsTaxDocument = \"IsTaxDocument\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PaymentMethodCode = \"PaymentMethodCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolMatching = \"SymbolMatching\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionAmountDue = \"TransactionAmountDue\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n CountByDocumentTypeCodeAndNumberOurs = \"CountByDocumentTypeCodeAndNumberOurs\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n BusinessPartner = \"BusinessPartner\",\n CashBox = \"CashBox\",\n CbaCategory = \"CbaCategory\",\n CbaEntryType = \"CbaEntryType\",\n Company = \"Company\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n ExternalCorrectedDocumentType = \"ExternalCorrectedDocumentType\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n GeneratedByRecurringTask = \"GeneratedByRecurringTask\",\n NumberRange = \"NumberRange\",\n PaymentMethod = \"PaymentMethod\",\n TemplateForRecurringTask = \"TemplateForRecurringTask\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n CorrectedDocuments = \"CorrectedDocuments\",\n}\n\nexport interface IDocumentImportTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DocumentImportTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n VatCode?: string;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IDocumentItemCbaCategoryEntity;\n DocumentItemDraft?: IDocumentItemDraftEntity;\n LabelSelection?: ILabelSelectionEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionEntity;\n}\n\nexport enum DocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n VatCode = \"VatCode\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItemDraft = \"DocumentItemDraft\",\n LabelSelection = \"LabelSelection\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n}\n\nexport interface IDocumentItemAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum DocumentItemAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IDocumentItemAccountAssignmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum DocumentItemAccountAssignmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IDocumentItemAccountAssignmentSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IDocumentItemAccountAssignmentEntity;\n}\n\nexport enum DocumentItemAccountAssignmentSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IDocumentItemAccountAssignmentSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IDocumentItemAccountAssignmentDraftEntity;\n}\n\nexport enum DocumentItemAccountAssignmentSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IDocumentItemCbaCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum DocumentItemCbaCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IDocumentItemCbaCategoryDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum DocumentItemCbaCategoryDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IDocumentItemDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionCurrencyCode?: string;\n UnitOfMeasureCode?: string;\n VatCode?: string;\n Quantity?: number;\n UnitPrice?: number;\n UnitPriceNet?: number;\n UnitPriceVat?: number;\n TransactionUnitPrice?: number;\n TransactionUnitPriceNet?: number;\n TransactionUnitPriceVat?: number;\n DiscountPercent?: number;\n Discount?: number;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionDraftEntity;\n CbaCategory?: IDocumentItemCbaCategoryDraftEntity;\n DocumentItem?: IDocumentItemEntity;\n LabelSelection?: ILabelSelectionDraftEntity;\n LinkedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n UnitOfMeasure?: IUnitOfMeasureEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionDraftEntity;\n}\n\nexport enum DocumentItemDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n UnitOfMeasureCode = \"UnitOfMeasureCode\",\n VatCode = \"VatCode\",\n Quantity = \"Quantity\",\n UnitPrice = \"UnitPrice\",\n UnitPriceNet = \"UnitPriceNet\",\n UnitPriceVat = \"UnitPriceVat\",\n TransactionUnitPrice = \"TransactionUnitPrice\",\n TransactionUnitPriceNet = \"TransactionUnitPriceNet\",\n TransactionUnitPriceVat = \"TransactionUnitPriceVat\",\n DiscountPercent = \"DiscountPercent\",\n Discount = \"Discount\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItem = \"DocumentItem\",\n LabelSelection = \"LabelSelection\",\n LinkedDocument = \"LinkedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n UnitOfMeasure = \"UnitOfMeasure\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n}\n\nexport interface IDocumentItemLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum DocumentItemLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IDocumentItemLabelDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum DocumentItemLabelDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IDocumentItemTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DocumentItemTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentItemVatClassificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum DocumentItemVatClassificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IDocumentItemVatClassificationDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum DocumentItemVatClassificationDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IDocumentItemVatClassificationSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n VatClassification?: IDocumentItemVatClassificationEntity;\n}\n\nexport enum DocumentItemVatClassificationSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IDocumentItemVatClassificationSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n VatClassification?: IDocumentItemVatClassificationDraftEntity;\n}\n\nexport enum DocumentItemVatClassificationSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IDocumentItemViewEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n UnitOfMeasureCode?: string;\n VatCode?: string;\n Quantity?: number;\n UnitPrice?: number;\n UnitPriceNet?: number;\n UnitPriceVat?: number;\n TransactionUnitPrice?: number;\n TransactionUnitPriceNet?: number;\n TransactionUnitPriceVat?: number;\n DiscountPercent?: number;\n Discount?: number;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IDocumentItemCbaCategoryEntity;\n DocumentItemDraft?: IDocumentItemDraftEntity;\n LabelSelection?: ILabelSelectionEntity;\n LinkedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n UnitOfMeasure?: IUnitOfMeasureEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionEntity;\n}\n\nexport enum DocumentItemViewEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n UnitOfMeasureCode = \"UnitOfMeasureCode\",\n VatCode = \"VatCode\",\n Quantity = \"Quantity\",\n UnitPrice = \"UnitPrice\",\n UnitPriceNet = \"UnitPriceNet\",\n UnitPriceVat = \"UnitPriceVat\",\n TransactionUnitPrice = \"TransactionUnitPrice\",\n TransactionUnitPriceNet = \"TransactionUnitPriceNet\",\n TransactionUnitPriceVat = \"TransactionUnitPriceVat\",\n DiscountPercent = \"DiscountPercent\",\n Discount = \"Discount\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItemDraft = \"DocumentItemDraft\",\n LabelSelection = \"LabelSelection\",\n LinkedDocument = \"LinkedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n UnitOfMeasure = \"UnitOfMeasure\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n}\n\nexport interface IDocumentLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum DocumentLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IDocumentLabelDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum DocumentLabelDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IDocumentLinkEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n TargetDocument?: IDocumentEntity;\n TargetDocumentItem?: IDocumentItemEntity;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum DocumentLinkEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n TargetDocument = \"TargetDocument\",\n TargetDocumentItem = \"TargetDocumentItem\",\n Type = \"Type\",\n}\n\nexport interface IDocumentLinkClearingTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DocumentLinkClearingTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentLinkDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n TargetDocument?: IDocumentEntity;\n TargetDocumentItem?: IDocumentItemEntity;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum DocumentLinkDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n TargetDocument = \"TargetDocument\",\n TargetDocumentItem = \"TargetDocumentItem\",\n Type = \"Type\",\n}\n\nexport interface IDocumentLinkTypeEntity extends IEntityBase {\n Code?: string;\n DocumentLinkClearingTypeCode?: string;\n Name?: string;\n DocumentLinkClearingType?: IDocumentLinkClearingTypeEntity;\n}\n\nexport enum DocumentLinkTypeEntity {\n Code = \"Code\",\n DocumentLinkClearingTypeCode = \"DocumentLinkClearingTypeCode\",\n Name = \"Name\",\n DocumentLinkClearingType = \"DocumentLinkClearingType\",\n}\n\nexport interface IDocumentLockEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum DocumentLockEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IDocumentLockDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum DocumentLockDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IDocumentMinorAssetItemEntity extends IEntityBase {\n NotId?: number;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n MinorAsset?: IMinorAssetEntity;\n MinorAssetItem?: IMinorAssetItemEntity;\n}\n\nexport enum DocumentMinorAssetItemEntity {\n NotId = \"NotId\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n MinorAsset = \"MinorAsset\",\n MinorAssetItem = \"MinorAssetItem\",\n}\n\nexport interface IDocumentSourceTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DocumentSourceTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum DocumentStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IDocumentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n PayableReceivableTypeCode?: string;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n}\n\nexport enum DocumentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n PayableReceivableType = \"PayableReceivableType\",\n}\n\nexport interface IDocumentVatClassificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum DocumentVatClassificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IDocumentVatClassificationDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum DocumentVatClassificationDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IDocumentVatClassificationSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n VatClassification?: IDocumentVatClassificationEntity;\n}\n\nexport enum DocumentVatClassificationSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IDocumentVatClassificationSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n VatClassification?: IDocumentVatClassificationDraftEntity;\n}\n\nexport enum DocumentVatClassificationSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IElectronicSubmissionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AreVatDocumentsCreated?: boolean;\n CorrectionReason?: string;\n DateCorrectionDiscovered?: Date;\n DatePeriodEnd?: Date;\n DatePeriodStart?: Date;\n ElectronicSubmissionSubmissionTypeCode?: string;\n ElectronicSubmissionTypeCode?: string;\n ReferenceNumberOfNotice?: string;\n DateSubmission?: Date;\n VatLiability?: number;\n Company?: ICompanyEntity;\n ElectronicSubmissionSubmissionType?: IElectronicSubmissionSubmissionTypeEntity;\n ElectronicSubmissionType?: IElectronicSubmissionTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n VatClearingDocument?: IInternalDocumentEntity;\n VatStatementDocument?: IDocumentEntity;\n Documents?: IDocumentEntity[];\n}\n\nexport enum ElectronicSubmissionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AreVatDocumentsCreated = \"AreVatDocumentsCreated\",\n CorrectionReason = \"CorrectionReason\",\n DateCorrectionDiscovered = \"DateCorrectionDiscovered\",\n DatePeriodEnd = \"DatePeriodEnd\",\n DatePeriodStart = \"DatePeriodStart\",\n ElectronicSubmissionSubmissionTypeCode = \"ElectronicSubmissionSubmissionTypeCode\",\n ElectronicSubmissionTypeCode = \"ElectronicSubmissionTypeCode\",\n ReferenceNumberOfNotice = \"ReferenceNumberOfNotice\",\n DateSubmission = \"DateSubmission\",\n VatLiability = \"VatLiability\",\n Company = \"Company\",\n ElectronicSubmissionSubmissionType = \"ElectronicSubmissionSubmissionType\",\n ElectronicSubmissionType = \"ElectronicSubmissionType\",\n FileMetadata = \"FileMetadata\",\n VatClearingDocument = \"VatClearingDocument\",\n VatStatementDocument = \"VatStatementDocument\",\n Documents = \"Documents\",\n}\n\nexport interface IElectronicSubmissionPeriodWithDeletedDocumentEntity extends IEntityBase {\n Id?: number;\n DatePeriodEnd?: Date;\n DatePeriodStart?: Date;\n ElectronicSubmissionTypeCode?: string;\n Company?: ICompanyEntity;\n}\n\nexport enum ElectronicSubmissionPeriodWithDeletedDocumentEntity {\n Id = \"Id\",\n DatePeriodEnd = \"DatePeriodEnd\",\n DatePeriodStart = \"DatePeriodStart\",\n ElectronicSubmissionTypeCode = \"ElectronicSubmissionTypeCode\",\n Company = \"Company\",\n}\n\nexport interface IElectronicSubmissionSubmissionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ElectronicSubmissionSubmissionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IElectronicSubmissionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ElectronicSubmissionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IEntityEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n}\n\nexport enum EntityEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n}\n\nexport interface IEntityAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum EntityAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IEntityAccountAssignmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum EntityAccountAssignmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IEntityAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum EntityAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IEntityBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum EntityBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IEntityBankAccountDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum EntityBankAccountDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IEntityBusinessPartnerEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum EntityBusinessPartnerEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IEntityBusinessPartnerDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum EntityBusinessPartnerDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IEntityCbaCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum EntityCbaCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IEntityCbaCategoryDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum EntityCbaCategoryDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IEntityLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum EntityLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IEntityLockEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum EntityLockEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IEntityPermissionLevelEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum EntityPermissionLevelEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IEntityTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum EntityTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IEntityVatClassificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum EntityVatClassificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IEntityVatClassificationDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CountryClassification?: ICountryClassificationEntity;\n NonTaxAccount?: IAccountEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum EntityVatClassificationDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CountryClassification = \"CountryClassification\",\n NonTaxAccount = \"NonTaxAccount\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IExchangeRateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CountryCode?: string;\n DateIssued?: Date;\n ExchangeRateDirect?: number;\n ExchangeRateIndirect?: number;\n ExchangeRatePerUnit?: number;\n FromCurrencyCode?: string;\n IsIssuedDaily?: boolean;\n ToCurrencyCode?: string;\n Country?: ICountryOrUnionEntity;\n FromCurrency?: ICurrencyEntity;\n ToCurrency?: ICurrencyEntity;\n}\n\nexport enum ExchangeRateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CountryCode = \"CountryCode\",\n DateIssued = \"DateIssued\",\n ExchangeRateDirect = \"ExchangeRateDirect\",\n ExchangeRateIndirect = \"ExchangeRateIndirect\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n FromCurrencyCode = \"FromCurrencyCode\",\n IsIssuedDaily = \"IsIssuedDaily\",\n ToCurrencyCode = \"ToCurrencyCode\",\n Country = \"Country\",\n FromCurrency = \"FromCurrency\",\n ToCurrency = \"ToCurrency\",\n}\n\nexport interface IExchangeRateTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ExchangeRateTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IExpenseTaxRateEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n PercentageRate?: number;\n Country?: ICountryEntity;\n}\n\nexport enum ExpenseTaxRateEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n PercentageRate = \"PercentageRate\",\n Country = \"Country\",\n}\n\nexport interface IExportLogEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IncludeAttachments?: boolean;\n RangeCode?: string;\n ResultTypeCode?: string;\n TypeCode?: string;\n Company?: ICompanyEntity;\n Range?: IExportRangeEntity;\n ResultType?: IExportResultTypeEntity;\n Type?: IExportTypeEntity;\n}\n\nexport enum ExportLogEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IncludeAttachments = \"IncludeAttachments\",\n RangeCode = \"RangeCode\",\n ResultTypeCode = \"ResultTypeCode\",\n TypeCode = \"TypeCode\",\n Company = \"Company\",\n Range = \"Range\",\n ResultType = \"ResultType\",\n Type = \"Type\",\n}\n\nexport interface IExportRangeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ExportRangeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IExportResultTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ExportResultTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IExportTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ExportTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IExternalCorrectedDocumentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ExternalCorrectedDocumentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IFeatureEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum FeatureEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IFileMetadataEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsIsdocReadable?: boolean;\n IsRossumReadable?: boolean;\n Name?: string;\n Size?: number;\n}\n\nexport enum FileMetadataEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsIsdocReadable = \"IsIsdocReadable\",\n IsRossumReadable = \"IsRossumReadable\",\n Name = \"Name\",\n Size = \"Size\",\n}\n\nexport interface IFinancialReportLayoutEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n ReportTypeCode?: string;\n Country?: ICountryEntity;\n ReportType?: IReportTypeEntity;\n Sections?: IFinancialReportLayoutSectionEntity[];\n}\n\nexport enum FinancialReportLayoutEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n ReportTypeCode = \"ReportTypeCode\",\n Country = \"Country\",\n ReportType = \"ReportType\",\n Sections = \"Sections\",\n}\n\nexport interface IFinancialReportLayoutSectionEntity extends IEntityBase {\n Code?: string;\n FinancialReportLayoutCode?: string;\n IsInBasicView?: boolean;\n Name?: string;\n Number?: string;\n OrderNumber?: number;\n ParentCode?: string;\n ReportSectionTypeCode?: string;\n FinancialReportLayout?: IFinancialReportLayoutEntity;\n Parent?: IFinancialReportLayoutSectionEntity;\n ReportSectionType?: IReportSectionTypeEntity;\n Children?: IFinancialReportLayoutSectionEntity[];\n}\n\nexport enum FinancialReportLayoutSectionEntity {\n Code = \"Code\",\n FinancialReportLayoutCode = \"FinancialReportLayoutCode\",\n IsInBasicView = \"IsInBasicView\",\n Name = \"Name\",\n Number = \"Number\",\n OrderNumber = \"OrderNumber\",\n ParentCode = \"ParentCode\",\n ReportSectionTypeCode = \"ReportSectionTypeCode\",\n FinancialReportLayout = \"FinancialReportLayout\",\n Parent = \"Parent\",\n ReportSectionType = \"ReportSectionType\",\n Children = \"Children\",\n}\n\nexport interface IFiscalPeriodEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n IsLockedForAP?: boolean;\n IsLockedForAR?: boolean;\n Name?: string;\n Number?: string;\n Usage?: IFiscalPeriodUsageEntity;\n}\n\nexport enum FiscalPeriodEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n IsLockedForAP = \"IsLockedForAP\",\n IsLockedForAR = \"IsLockedForAR\",\n Name = \"Name\",\n Number = \"Number\",\n Usage = \"Usage\",\n}\n\nexport interface IFiscalPeriodUsageEntity extends IEntityBase {\n Id?: number;\n DateMax?: Date;\n DateMin?: Date;\n}\n\nexport enum FiscalPeriodUsageEntity {\n Id = \"Id\",\n DateMax = \"DateMax\",\n DateMin = \"DateMin\",\n}\n\nexport interface IFiscalYearEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n Number?: string;\n StatusCode?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n Company?: ICompanyEntity;\n FiscalYearClose?: IFiscalYearCloseEntity;\n Status?: IFiscalYearStatusEntity;\n Usage?: IFiscalYearUsageEntity;\n Periods?: IFiscalPeriodEntity[];\n NumberRanges?: INumberRangeEntity[];\n}\n\nexport enum FiscalYearEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Number = \"Number\",\n StatusCode = \"StatusCode\",\n ChartOfAccounts = \"ChartOfAccounts\",\n Company = \"Company\",\n FiscalYearClose = \"FiscalYearClose\",\n Status = \"Status\",\n Usage = \"Usage\",\n Periods = \"Periods\",\n NumberRanges = \"NumberRanges\",\n}\n\nexport interface IFiscalYearCloseEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateIncomeTax?: Date;\n ExpenseTaxRateCode?: string;\n HasTaxAdvisor?: boolean;\n InventoryTypeCode?: string;\n LegalEntityCategoryCode?: string;\n IncomeTaxAmount?: number;\n IncomeTaxPaidAdvanceAmount?: number;\n DateClosed?: Date;\n BalanceSheetClose?: IInternalDocumentEntity;\n ClosedByUser?: IUserEntity;\n Company?: ICompanyEntity;\n ExpenseTaxRate?: IExpenseTaxRateEntity;\n FiscalYear?: IFiscalYearEntity;\n IncomeExpenseTransfer?: IInternalDocumentEntity;\n IncomeTaxDocument?: IInternalDocumentEntity;\n IncomeTaxPaymentOrReturnDocument?: IDocumentEntity;\n InventoryCheckDocument?: IInternalDocumentEntity;\n InventoryClearingDocument?: IInternalDocumentEntity;\n InventoryType?: IInventoryTypeEntity;\n LegalEntityCategory?: ILegalEntityCategoryEntity;\n NextYearBalanceSheetOpen?: IInternalDocumentEntity;\n NextYearProfitOrLossTransfer?: IInternalDocumentEntity;\n ProfitOrLoss?: IInternalDocumentEntity;\n AdvanceTaxPayments?: IFiscalYearCloseAdvanceTaxEntity[];\n Attachments?: IFiscalYearCloseAttachmentEntity[];\n ExchangeRates?: IFiscalYearCloseExchangeRateEntity[];\n InventoryAccounts?: IFiscalYearCloseInventoryEntity[];\n Sections?: IFiscalYearCloseSectionEntity[];\n ExchangeRateDocuments?: IInternalDocumentEntity[];\n}\n\nexport enum FiscalYearCloseEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateIncomeTax = \"DateIncomeTax\",\n ExpenseTaxRateCode = \"ExpenseTaxRateCode\",\n HasTaxAdvisor = \"HasTaxAdvisor\",\n InventoryTypeCode = \"InventoryTypeCode\",\n LegalEntityCategoryCode = \"LegalEntityCategoryCode\",\n IncomeTaxAmount = \"IncomeTaxAmount\",\n IncomeTaxPaidAdvanceAmount = \"IncomeTaxPaidAdvanceAmount\",\n DateClosed = \"DateClosed\",\n BalanceSheetClose = \"BalanceSheetClose\",\n ClosedByUser = \"ClosedByUser\",\n Company = \"Company\",\n ExpenseTaxRate = \"ExpenseTaxRate\",\n FiscalYear = \"FiscalYear\",\n IncomeExpenseTransfer = \"IncomeExpenseTransfer\",\n IncomeTaxDocument = \"IncomeTaxDocument\",\n IncomeTaxPaymentOrReturnDocument = \"IncomeTaxPaymentOrReturnDocument\",\n InventoryCheckDocument = \"InventoryCheckDocument\",\n InventoryClearingDocument = \"InventoryClearingDocument\",\n InventoryType = \"InventoryType\",\n LegalEntityCategory = \"LegalEntityCategory\",\n NextYearBalanceSheetOpen = \"NextYearBalanceSheetOpen\",\n NextYearProfitOrLossTransfer = \"NextYearProfitOrLossTransfer\",\n ProfitOrLoss = \"ProfitOrLoss\",\n AdvanceTaxPayments = \"AdvanceTaxPayments\",\n Attachments = \"Attachments\",\n ExchangeRates = \"ExchangeRates\",\n InventoryAccounts = \"InventoryAccounts\",\n Sections = \"Sections\",\n ExchangeRateDocuments = \"ExchangeRateDocuments\",\n}\n\nexport interface IFiscalYearCloseAdvanceTaxEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n DateAccountingTransaction?: Date;\n DateDue?: Date;\n IsCreated?: boolean;\n CreatedDocument?: IOtherLiabilityEntity;\n}\n\nexport enum FiscalYearCloseAdvanceTaxEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateDue = \"DateDue\",\n IsCreated = \"IsCreated\",\n CreatedDocument = \"CreatedDocument\",\n}\n\nexport interface IFiscalYearCloseAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum FiscalYearCloseAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IFiscalYearCloseExchangeRateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CurrencyCode?: string;\n ExchangeRatePerUnit?: number;\n Currency?: ICurrencyEntity;\n}\n\nexport enum FiscalYearCloseExchangeRateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CurrencyCode = \"CurrencyCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Currency = \"Currency\",\n}\n\nexport interface IFiscalYearCloseInventoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n ConsumptionAccount?: IAccountEntity;\n InventoryAccount?: IAccountEntity;\n}\n\nexport enum FiscalYearCloseInventoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ChartOfAccounts = \"ChartOfAccounts\",\n ConsumptionAccount = \"ConsumptionAccount\",\n InventoryAccount = \"InventoryAccount\",\n}\n\nexport interface IFiscalYearCloseSectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n HasErrors?: boolean;\n IsChecked?: boolean;\n TypeCode?: string;\n Type?: IFiscalYearCloseSectionTypeEntity;\n}\n\nexport enum FiscalYearCloseSectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n HasErrors = \"HasErrors\",\n IsChecked = \"IsChecked\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IFiscalYearCloseSectionTypeEntity extends IEntityBase {\n Code?: string;\n IsAccrual?: boolean;\n IsCashBasis?: boolean;\n Name?: string;\n}\n\nexport enum FiscalYearCloseSectionTypeEntity {\n Code = \"Code\",\n IsAccrual = \"IsAccrual\",\n IsCashBasis = \"IsCashBasis\",\n Name = \"Name\",\n}\n\nexport interface IFiscalYearStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum FiscalYearStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IFiscalYearUsageEntity extends IEntityBase {\n Id?: number;\n DateMax?: Date;\n DateMin?: Date;\n}\n\nexport enum FiscalYearUsageEntity {\n Id = \"Id\",\n DateMax = \"DateMax\",\n DateMin = \"DateMin\",\n}\n\nexport interface IFlattenAccountEntity extends IEntityBase {\n Id?: number;\n CategoryCode?: string;\n Name?: string;\n Number?: string;\n TaxApplicabilityCode?: string;\n TypeCode?: string;\n}\n\nexport enum FlattenAccountEntity {\n Id = \"Id\",\n CategoryCode = \"CategoryCode\",\n Name = \"Name\",\n Number = \"Number\",\n TaxApplicabilityCode = \"TaxApplicabilityCode\",\n TypeCode = \"TypeCode\",\n}\n\nexport interface IFulfilmentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum FulfilmentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IGeneralPermissionEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n IsOwnerOnly?: boolean;\n Name?: string;\n}\n\nexport enum GeneralPermissionEntity {\n Code = \"Code\",\n Description = \"Description\",\n IsOwnerOnly = \"IsOwnerOnly\",\n Name = \"Name\",\n}\n\nexport interface IGeneralRoleEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n GeneralRoleName?: string;\n IsDefaultRole?: boolean;\n IsSystemRole?: boolean;\n UserCount?: number;\n GeneralRolePermissions?: IGeneralRolePermissionEntity[];\n}\n\nexport enum GeneralRoleEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n GeneralRoleName = \"GeneralRoleName\",\n IsDefaultRole = \"IsDefaultRole\",\n IsSystemRole = \"IsSystemRole\",\n UserCount = \"UserCount\",\n GeneralRolePermissions = \"GeneralRolePermissions\",\n}\n\nexport interface IGeneralRolePermissionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsEnabled?: boolean;\n PermissionCode?: string;\n Permission?: IGeneralPermissionEntity;\n}\n\nexport enum GeneralRolePermissionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsEnabled = \"IsEnabled\",\n PermissionCode = \"PermissionCode\",\n Permission = \"Permission\",\n}\n\nexport interface IGovernmentInstitutionEntity extends IEntityBase {\n Code?: string;\n City?: string;\n CountryCode?: string;\n DataBoxId?: string;\n Email?: string;\n GovernmentInstitutionTypeCode?: string;\n Name?: string;\n OpenDataCode?: string;\n Phone?: string;\n PostalCode?: string;\n ShortName?: string;\n Street?: string;\n Ufo?: string;\n UfoName?: string;\n Country?: ICountryEntity;\n GovernmentInstitutionType?: IGovernmentInstitutionTypeEntity;\n BankAccounts?: IGovernmentInstitutionBankAccountEntity[];\n}\n\nexport enum GovernmentInstitutionEntity {\n Code = \"Code\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n DataBoxId = \"DataBoxId\",\n Email = \"Email\",\n GovernmentInstitutionTypeCode = \"GovernmentInstitutionTypeCode\",\n Name = \"Name\",\n OpenDataCode = \"OpenDataCode\",\n Phone = \"Phone\",\n PostalCode = \"PostalCode\",\n ShortName = \"ShortName\",\n Street = \"Street\",\n Ufo = \"Ufo\",\n UfoName = \"UfoName\",\n Country = \"Country\",\n GovernmentInstitutionType = \"GovernmentInstitutionType\",\n BankAccounts = \"BankAccounts\",\n}\n\nexport interface IGovernmentInstitutionBankAccountEntity extends IEntityBase {\n Code?: string;\n AccountNumber?: string;\n AccountPrefix?: string;\n BankCode?: string;\n CountryCode?: string;\n GovernmentInstitutionBankAccountTypeCode?: string;\n IBAN?: string;\n Name?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n GovernmentInstitutionBankAccountType?: IGovernmentInstitutionBankAccountTypeEntity;\n}\n\nexport enum GovernmentInstitutionBankAccountEntity {\n Code = \"Code\",\n AccountNumber = \"AccountNumber\",\n AccountPrefix = \"AccountPrefix\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n GovernmentInstitutionBankAccountTypeCode = \"GovernmentInstitutionBankAccountTypeCode\",\n IBAN = \"IBAN\",\n Name = \"Name\",\n Bank = \"Bank\",\n Country = \"Country\",\n GovernmentInstitutionBankAccountType = \"GovernmentInstitutionBankAccountType\",\n}\n\nexport interface IGovernmentInstitutionBankAccountTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n GovernmentInstitutionTypeCode?: string;\n Name?: string;\n GovernmentInstitutionType?: IGovernmentInstitutionTypeEntity;\n}\n\nexport enum GovernmentInstitutionBankAccountTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n GovernmentInstitutionTypeCode = \"GovernmentInstitutionTypeCode\",\n Name = \"Name\",\n GovernmentInstitutionType = \"GovernmentInstitutionType\",\n}\n\nexport interface IGovernmentInstitutionTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum GovernmentInstitutionTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IHotspotEntity extends IEntityBase {\n ViewId?: string;\n ElementId?: string;\n IsSystem?: boolean;\n}\n\nexport enum HotspotEntity {\n ViewId = \"ViewId\",\n ElementId = \"ElementId\",\n IsSystem = \"IsSystem\",\n}\n\nexport interface IImportDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n ErrorMessage?: string;\n ImportTypeCode?: string;\n BackgroundJob?: IBackgroundJobEntity;\n DocumentType?: IDocumentTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n ImportType?: IDocumentImportTypeEntity;\n}\n\nexport enum ImportDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ErrorMessage = \"ErrorMessage\",\n ImportTypeCode = \"ImportTypeCode\",\n BackgroundJob = \"BackgroundJob\",\n DocumentType = \"DocumentType\",\n FileMetadata = \"FileMetadata\",\n ImportType = \"ImportType\",\n}\n\nexport interface IInboxCommunicationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Body?: string;\n CommunicationTypeCode?: string;\n CommunicationType?: ICommunicationTypeEntity;\n}\n\nexport enum InboxCommunicationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Body = \"Body\",\n CommunicationTypeCode = \"CommunicationTypeCode\",\n CommunicationType = \"CommunicationType\",\n}\n\nexport interface IInboxEntityTypeEntity extends IEntityBase {\n Code?: string;\n IsTaxDocument?: boolean;\n Name?: string;\n}\n\nexport enum InboxEntityTypeEntity {\n Code = \"Code\",\n IsTaxDocument = \"IsTaxDocument\",\n Name = \"Name\",\n}\n\nexport interface IInboxFileEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ApprovalStatusTypeCode?: string;\n Body?: string;\n DateReceived?: Date;\n EntityTypeCode?: string;\n InboxFileSourceCode?: string;\n IsSorted?: boolean;\n IsSpam?: boolean;\n Sender?: string;\n Subject?: string;\n ApprovalStatusType?: IApprovalStatusTypeEntity;\n CanceledByUser?: IUserEntity;\n Company?: ICompanyEntity;\n EntityType?: IInboxEntityTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n InboxFileSource?: IInboxFileSourceEntity;\n Communications?: IInboxCommunicationEntity[];\n}\n\nexport enum InboxFileEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ApprovalStatusTypeCode = \"ApprovalStatusTypeCode\",\n Body = \"Body\",\n DateReceived = \"DateReceived\",\n EntityTypeCode = \"EntityTypeCode\",\n InboxFileSourceCode = \"InboxFileSourceCode\",\n IsSorted = \"IsSorted\",\n IsSpam = \"IsSpam\",\n Sender = \"Sender\",\n Subject = \"Subject\",\n ApprovalStatusType = \"ApprovalStatusType\",\n CanceledByUser = \"CanceledByUser\",\n Company = \"Company\",\n EntityType = \"EntityType\",\n FileMetadata = \"FileMetadata\",\n InboxFileSource = \"InboxFileSource\",\n Communications = \"Communications\",\n}\n\nexport interface IInboxFileLogEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n FileName?: string;\n InboxFileStatusCode?: string;\n FileMetadata?: IFileMetadataEntity;\n InboxFileStatus?: IInboxFileStatusEntity;\n}\n\nexport enum InboxFileLogEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n FileName = \"FileName\",\n InboxFileStatusCode = \"InboxFileStatusCode\",\n FileMetadata = \"FileMetadata\",\n InboxFileStatus = \"InboxFileStatus\",\n}\n\nexport interface IInboxFileSourceEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InboxFileSourceEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IInboxFileStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InboxFileStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IInboxItemLogEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateReceived?: Date;\n EntityTypeCode?: string;\n InboxFileId?: number;\n InboxFileSourceCode?: string;\n InboxItemLogStateCode?: string;\n Name?: string;\n Sender?: string;\n Subject?: string;\n EntityType?: IInboxEntityTypeEntity;\n InboxFileSource?: IInboxFileSourceEntity;\n InboxItemLogState?: IInboxItemLogStateEntity;\n User?: IUserEntity;\n}\n\nexport enum InboxItemLogEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateReceived = \"DateReceived\",\n EntityTypeCode = \"EntityTypeCode\",\n InboxFileId = \"InboxFileId\",\n InboxFileSourceCode = \"InboxFileSourceCode\",\n InboxItemLogStateCode = \"InboxItemLogStateCode\",\n Name = \"Name\",\n Sender = \"Sender\",\n Subject = \"Subject\",\n EntityType = \"EntityType\",\n InboxFileSource = \"InboxFileSource\",\n InboxItemLogState = \"InboxItemLogState\",\n User = \"User\",\n}\n\nexport interface IInboxItemLogStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InboxItemLogStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IIncomeStatementLayoutEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ByFunctionReportSectionCode?: string;\n ByNatureReportSectionCode?: string;\n Account?: IAccountEntity;\n ByFunctionReportSection?: IFinancialReportLayoutSectionEntity;\n ByNatureReportSection?: IFinancialReportLayoutSectionEntity;\n ChartOfAccounts?: IChartOfAccountsEntity;\n}\n\nexport enum IncomeStatementLayoutEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ByFunctionReportSectionCode = \"ByFunctionReportSectionCode\",\n ByNatureReportSectionCode = \"ByNatureReportSectionCode\",\n Account = \"Account\",\n ByFunctionReportSection = \"ByFunctionReportSection\",\n ByNatureReportSection = \"ByNatureReportSection\",\n ChartOfAccounts = \"ChartOfAccounts\",\n}\n\nexport interface IIncomeStatementLayoutTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ByFunctionReportSectionCode?: string;\n ByNatureReportSectionCode?: string;\n Account?: IAccountTemplateEntity;\n ByFunctionReportSection?: IFinancialReportLayoutSectionEntity;\n ByNatureReportSection?: IFinancialReportLayoutSectionEntity;\n ChartOfAccounts?: IChartOfAccountsTemplateEntity;\n}\n\nexport enum IncomeStatementLayoutTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ByFunctionReportSectionCode = \"ByFunctionReportSectionCode\",\n ByNatureReportSectionCode = \"ByNatureReportSectionCode\",\n Account = \"Account\",\n ByFunctionReportSection = \"ByFunctionReportSection\",\n ByNatureReportSection = \"ByNatureReportSection\",\n ChartOfAccounts = \"ChartOfAccounts\",\n}\n\nexport interface IInitialAccountBalanceEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n InitialBalance?: number;\n InitialTransactionBalance?: number;\n IsDebit?: boolean;\n Number?: string;\n TransactionCurrencyCode?: string;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum InitialAccountBalanceEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n InitialBalance = \"InitialBalance\",\n InitialTransactionBalance = \"InitialTransactionBalance\",\n IsDebit = \"IsDebit\",\n Number = \"Number\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface IIntegrationApiImportFrequencyEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum IntegrationApiImportFrequencyEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IIntegrationApiImportFromWhenEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum IntegrationApiImportFromWhenEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IIntegrationApiImportRangeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum IntegrationApiImportRangeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IIntegrationApiImportedDocumentsEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum IntegrationApiImportedDocumentsEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IInteractionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InteractionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IInternalDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n CbaEntryTypeCode?: string;\n DateCbaEntry?: Date;\n Explanation?: string;\n IsInternallyManaged?: boolean;\n CbaEntryType?: ICbaEntryTypeEntity;\n Items?: IInternalDocumentItemEntity[];\n}\n\nexport enum InternalDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n CbaEntryTypeCode = \"CbaEntryTypeCode\",\n DateCbaEntry = \"DateCbaEntry\",\n Explanation = \"Explanation\",\n IsInternallyManaged = \"IsInternallyManaged\",\n CbaEntryType = \"CbaEntryType\",\n Items = \"Items\",\n}\n\nexport interface IInternalDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n VatCode?: string;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IDocumentItemCbaCategoryEntity;\n DocumentItemDraft?: IDocumentItemDraftEntity;\n LabelSelection?: ILabelSelectionEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionEntity;\n TransactionCurrencyCode?: string;\n LinkedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum InternalDocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n VatCode = \"VatCode\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItemDraft = \"DocumentItemDraft\",\n LabelSelection = \"LabelSelection\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n LinkedDocument = \"LinkedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface IInventoryTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InventoryTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IInvoiceIssuedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n DateDue?: Date;\n DateIssued?: Date;\n DateTaxableSupply?: Date;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum InvoiceIssuedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateTaxableSupply = \"DateTaxableSupply\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IInvoiceReceivedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n BankPaymentOrderStateCode?: string;\n DateBankApiPaymentOrder?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateReceived?: Date;\n DateTaxableSupply?: Date;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum InvoiceReceivedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateReceived = \"DateReceived\",\n DateTaxableSupply = \"DateTaxableSupply\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IInvoiceServiceIntegrationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ErrorMessage?: string;\n InvoiceServiceIntegrationTypeCode?: string;\n Name?: string;\n DateLastRun?: Date;\n InvoiceServiceIntegrationType?: IInvoiceServiceIntegrationTypeEntity;\n Parameters?: IInvoiceServiceIntegrationParametersEntity;\n Settings?: IInvoiceServiceIntegrationSettingsEntity;\n}\n\nexport enum InvoiceServiceIntegrationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ErrorMessage = \"ErrorMessage\",\n InvoiceServiceIntegrationTypeCode = \"InvoiceServiceIntegrationTypeCode\",\n Name = \"Name\",\n DateLastRun = \"DateLastRun\",\n InvoiceServiceIntegrationType = \"InvoiceServiceIntegrationType\",\n Parameters = \"Parameters\",\n Settings = \"Settings\",\n}\n\nexport interface IInvoiceServiceIntegrationParametersEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccessTokenId?: number;\n FakturoidSlug?: string;\n RefreshTokenId?: number;\n}\n\nexport enum InvoiceServiceIntegrationParametersEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccessTokenId = \"AccessTokenId\",\n FakturoidSlug = \"FakturoidSlug\",\n RefreshTokenId = \"RefreshTokenId\",\n}\n\nexport interface IInvoiceServiceIntegrationSettingsEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IntegrationApiImportFrequencyCode?: string;\n IntegrationApiImportFromWhenCode?: string;\n IntegrationApiImportedDocumentsCode?: string;\n IsDocumentPdfImported?: boolean;\n IsInvoiceIssuedImported?: boolean;\n IsInvoiceReceivedImported?: boolean;\n IsOtherLiabilityImported?: boolean;\n IsOtherReceivableImported?: boolean;\n IsProformaInvoiceIssuedImported?: boolean;\n IsProformaInvoiceReceivedImported?: boolean;\n IsTaxDocumentIssuedImported?: boolean;\n IsTaxDocumentReceivedImported?: boolean;\n DateCustom?: Date;\n IntegrationApiImportFrequency?: IIntegrationApiImportFrequencyEntity;\n IntegrationApiImportFromWhen?: IIntegrationApiImportFromWhenEntity;\n IntegrationApiImportedDocuments?: IIntegrationApiImportedDocumentsEntity;\n}\n\nexport enum InvoiceServiceIntegrationSettingsEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IntegrationApiImportFrequencyCode = \"IntegrationApiImportFrequencyCode\",\n IntegrationApiImportFromWhenCode = \"IntegrationApiImportFromWhenCode\",\n IntegrationApiImportedDocumentsCode = \"IntegrationApiImportedDocumentsCode\",\n IsDocumentPdfImported = \"IsDocumentPdfImported\",\n IsInvoiceIssuedImported = \"IsInvoiceIssuedImported\",\n IsInvoiceReceivedImported = \"IsInvoiceReceivedImported\",\n IsOtherLiabilityImported = \"IsOtherLiabilityImported\",\n IsOtherReceivableImported = \"IsOtherReceivableImported\",\n IsProformaInvoiceIssuedImported = \"IsProformaInvoiceIssuedImported\",\n IsProformaInvoiceReceivedImported = \"IsProformaInvoiceReceivedImported\",\n IsTaxDocumentIssuedImported = \"IsTaxDocumentIssuedImported\",\n IsTaxDocumentReceivedImported = \"IsTaxDocumentReceivedImported\",\n DateCustom = \"DateCustom\",\n IntegrationApiImportFrequency = \"IntegrationApiImportFrequency\",\n IntegrationApiImportFromWhen = \"IntegrationApiImportFromWhen\",\n IntegrationApiImportedDocuments = \"IntegrationApiImportedDocuments\",\n}\n\nexport interface IInvoiceServiceIntegrationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum InvoiceServiceIntegrationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IIsdocImportDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n ErrorMessage?: string;\n ImportTypeCode?: string;\n BackgroundJob?: IBackgroundJobEntity;\n DocumentType?: IDocumentTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n ImportType?: IDocumentImportTypeEntity;\n}\n\nexport enum IsdocImportDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ErrorMessage = \"ErrorMessage\",\n ImportTypeCode = \"ImportTypeCode\",\n BackgroundJob = \"BackgroundJob\",\n DocumentType = \"DocumentType\",\n FileMetadata = \"FileMetadata\",\n ImportType = \"ImportType\",\n}\n\nexport interface IItemTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountingCode?: string;\n AlwaysOffer?: boolean;\n Description?: string;\n TransactionCurrencyCode?: string;\n UnitOfMeasureCode?: string;\n VatCode?: string;\n VatStatusCode?: string;\n Quantity?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n AccountAssignmentSelection?: IItemTemplateAccountAssignmentSelectionEntity;\n Accounting?: IAccountingEntity;\n CbaTaxImpact?: IItemTemplateCbaTaxImpactEntity;\n TransactionCurrency?: ICurrencyEntity;\n UnitOfMeasure?: IUnitOfMeasureEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IItemTemplateVatClassificationSelectionEntity;\n VatStatus?: IVatStatusEntity;\n AllowedCompanies?: ICompanyEntity[];\n}\n\nexport enum ItemTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountingCode = \"AccountingCode\",\n AlwaysOffer = \"AlwaysOffer\",\n Description = \"Description\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n UnitOfMeasureCode = \"UnitOfMeasureCode\",\n VatCode = \"VatCode\",\n VatStatusCode = \"VatStatusCode\",\n Quantity = \"Quantity\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n Accounting = \"Accounting\",\n CbaTaxImpact = \"CbaTaxImpact\",\n TransactionCurrency = \"TransactionCurrency\",\n UnitOfMeasure = \"UnitOfMeasure\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatStatus = \"VatStatus\",\n AllowedCompanies = \"AllowedCompanies\",\n}\n\nexport interface IItemTemplateAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CreditAccountName?: string;\n CreditAccountNumber?: string;\n DebitAccountName?: string;\n DebitAccountNumber?: string;\n Name?: string;\n ShortName?: string;\n}\n\nexport enum ItemTemplateAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CreditAccountName = \"CreditAccountName\",\n CreditAccountNumber = \"CreditAccountNumber\",\n DebitAccountName = \"DebitAccountName\",\n DebitAccountNumber = \"DebitAccountNumber\",\n Name = \"Name\",\n ShortName = \"ShortName\",\n}\n\nexport interface IItemTemplateAccountAssignmentSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n AccountAssignment?: IItemTemplateAccountAssignmentEntity;\n Selection?: ISelectionEntity;\n}\n\nexport enum ItemTemplateAccountAssignmentSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n AccountAssignment = \"AccountAssignment\",\n Selection = \"Selection\",\n}\n\nexport interface IItemTemplateCbaTaxImpactEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum ItemTemplateCbaTaxImpactEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IItemTemplateVatClassificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n NonTaxAccountName?: string;\n NonTaxAccountNumber?: string;\n VatDeductionTypeCode?: string;\n VatProportionalDeduction?: number;\n VatDeductionType?: IVatDeductionTypeEntity;\n}\n\nexport enum ItemTemplateVatClassificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n NonTaxAccountName = \"NonTaxAccountName\",\n NonTaxAccountNumber = \"NonTaxAccountNumber\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n VatDeductionType = \"VatDeductionType\",\n}\n\nexport interface IItemTemplateVatClassificationSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n VatClassification?: IItemTemplateVatClassificationEntity;\n}\n\nexport enum ItemTemplateVatClassificationSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n VatClassification = \"VatClassification\",\n}\n\nexport interface IJournalEntryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DatePosted?: Date;\n Description?: string;\n DocumentTypeCode?: string;\n IsBalancing?: boolean;\n IsClosing?: boolean;\n IsOpening?: boolean;\n IsVatLockOverridden?: boolean;\n TransactionAmount?: number;\n TransactionCurrencyCode?: string;\n Company?: ICompanyEntity;\n CreditAccount?: IAccountEntity;\n Currency?: ICurrencyEntity;\n DebitAccount?: IAccountEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n DocumentType?: IDocumentTypeEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n PaymentDocument?: IPaymentDocumentEntity;\n PaymentDocumentItem?: IPaymentDocumentItemEntity;\n SplitItemAssignment?: ISplitAccountAssignmentEntity;\n TransactionCurrency?: ICurrencyEntity;\n Labels?: IJournalEntryLabelEntity[];\n}\n\nexport enum JournalEntryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DatePosted = \"DatePosted\",\n Description = \"Description\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsBalancing = \"IsBalancing\",\n IsClosing = \"IsClosing\",\n IsOpening = \"IsOpening\",\n IsVatLockOverridden = \"IsVatLockOverridden\",\n TransactionAmount = \"TransactionAmount\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Company = \"Company\",\n CreditAccount = \"CreditAccount\",\n Currency = \"Currency\",\n DebitAccount = \"DebitAccount\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n DocumentType = \"DocumentType\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n PaymentDocument = \"PaymentDocument\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n SplitItemAssignment = \"SplitItemAssignment\",\n TransactionCurrency = \"TransactionCurrency\",\n Labels = \"Labels\",\n}\n\nexport interface IJournalEntryLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum JournalEntryLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IJournalEntryTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum JournalEntryTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ILabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsActive?: boolean;\n Name?: string;\n Parent?: ILabelEntity;\n Children?: ILabelEntity[];\n}\n\nexport enum LabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n Parent = \"Parent\",\n Children = \"Children\",\n}\n\nexport interface ILabelHierarchyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Color?: string;\n Name?: string;\n Company?: ICompanyEntity;\n Labels?: ILabelEntity[];\n}\n\nexport enum LabelHierarchyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Color = \"Color\",\n Name = \"Name\",\n Company = \"Company\",\n Labels = \"Labels\",\n}\n\nexport interface ILabelSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n Labels?: IDocumentItemLabelEntity[];\n}\n\nexport enum LabelSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n Labels = \"Labels\",\n}\n\nexport interface ILabelSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n Labels?: IDocumentItemLabelDraftEntity[];\n}\n\nexport enum LabelSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n Labels = \"Labels\",\n}\n\nexport interface ILanguageEntity extends IEntityBase {\n Code?: string;\n Code2?: string;\n Code3B?: string;\n Code3T?: string;\n Name?: string;\n}\n\nexport enum LanguageEntity {\n Code = \"Code\",\n Code2 = \"Code2\",\n Code3B = \"Code3B\",\n Code3T = \"Code3T\",\n Name = \"Name\",\n}\n\nexport interface ILegalEntityCategoryEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum LegalEntityCategoryEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ILegislativeFixedExchangeRateEntity extends IEntityBase {\n Code?: string;\n Amount?: number;\n ExchangeRateDirect?: number;\n FromCurrencyCode?: string;\n LegislativeCountryCode?: string;\n Name?: string;\n ToCurrencyCode?: string;\n Year?: number;\n FromCurrency?: ICurrencyEntity;\n LegislativeCountry?: ICountryEntity;\n ToCurrency?: ICurrencyEntity;\n}\n\nexport enum LegislativeFixedExchangeRateEntity {\n Code = \"Code\",\n Amount = \"Amount\",\n ExchangeRateDirect = \"ExchangeRateDirect\",\n FromCurrencyCode = \"FromCurrencyCode\",\n LegislativeCountryCode = \"LegislativeCountryCode\",\n Name = \"Name\",\n ToCurrencyCode = \"ToCurrencyCode\",\n Year = \"Year\",\n FromCurrency = \"FromCurrency\",\n LegislativeCountry = \"LegislativeCountry\",\n ToCurrency = \"ToCurrency\",\n}\n\nexport interface ILockTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum LockTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IMandatoryAccountEntity extends IEntityBase {\n Code?: string;\n AccountRoleCode?: string;\n Name?: string;\n Number?: string;\n AccountRole?: IAccountRoleEntity;\n}\n\nexport enum MandatoryAccountEntity {\n Code = \"Code\",\n AccountRoleCode = \"AccountRoleCode\",\n Name = \"Name\",\n Number = \"Number\",\n AccountRole = \"AccountRole\",\n}\n\nexport interface IMandatoryChartOfAccountsEntity extends IEntityBase {\n Code?: string;\n AccountingCode?: string;\n Name?: string;\n Accounting?: IAccountingEntity;\n Accounts?: IMandatoryAccountEntity[];\n}\n\nexport enum MandatoryChartOfAccountsEntity {\n Code = \"Code\",\n AccountingCode = \"AccountingCode\",\n Name = \"Name\",\n Accounting = \"Accounting\",\n Accounts = \"Accounts\",\n}\n\nexport interface IMinorAssetEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CurrencyCode?: string;\n DateOfLastTransaction?: Date;\n Description?: string;\n Note?: string;\n NumberOurs?: string;\n Quantity?: number;\n StatusCode?: string;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n NumberRange?: INumberRangeEntity;\n Status?: IMinorAssetStatusEntity;\n Attachments?: IMinorAssetAttachmentEntity[];\n Items?: IMinorAssetItemEntity[];\n Labels?: IMinorAssetLabelEntity[];\n}\n\nexport enum MinorAssetEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateOfLastTransaction = \"DateOfLastTransaction\",\n Description = \"Description\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n Quantity = \"Quantity\",\n StatusCode = \"StatusCode\",\n Company = \"Company\",\n Currency = \"Currency\",\n NumberRange = \"NumberRange\",\n Status = \"Status\",\n Attachments = \"Attachments\",\n Items = \"Items\",\n Labels = \"Labels\",\n}\n\nexport interface IMinorAssetAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum MinorAssetAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IMinorAssetHistoryEntryEntity extends IEntityBase {\n NotId?: number;\n MinorAsset?: IMinorAssetEntity;\n MinorAssetHistoryItem?: IMinorAssetHistoryItemEntity;\n MinorAssetItem?: IMinorAssetItemEntity;\n}\n\nexport enum MinorAssetHistoryEntryEntity {\n NotId = \"NotId\",\n MinorAsset = \"MinorAsset\",\n MinorAssetHistoryItem = \"MinorAssetHistoryItem\",\n MinorAssetItem = \"MinorAssetItem\",\n}\n\nexport interface IMinorAssetHistoryItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CurrencyCode?: string;\n DateOfTransaction?: Date;\n IsVatIncluded?: boolean;\n ItemTypeCode?: string;\n Quantity?: number;\n Currency?: ICurrencyEntity;\n ItemType?: IAssetItemTypeEntity;\n}\n\nexport enum MinorAssetHistoryItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateOfTransaction = \"DateOfTransaction\",\n IsVatIncluded = \"IsVatIncluded\",\n ItemTypeCode = \"ItemTypeCode\",\n Quantity = \"Quantity\",\n Currency = \"Currency\",\n ItemType = \"ItemType\",\n}\n\nexport interface IMinorAssetItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CurrencyCode?: string;\n DateAcquired?: Date;\n DateGuarantee?: Date;\n DateUsefulLife?: Date;\n Description?: string;\n IsVatIncluded?: boolean;\n Note?: string;\n Order?: number;\n Quantity?: number;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n Items?: IMinorAssetHistoryItemEntity[];\n}\n\nexport enum MinorAssetItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAcquired = \"DateAcquired\",\n DateGuarantee = \"DateGuarantee\",\n DateUsefulLife = \"DateUsefulLife\",\n Description = \"Description\",\n IsVatIncluded = \"IsVatIncluded\",\n Note = \"Note\",\n Order = \"Order\",\n Quantity = \"Quantity\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n Items = \"Items\",\n}\n\nexport interface IMinorAssetLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum MinorAssetLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IMinorAssetStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum MinorAssetStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IModuleEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n S5articleGuid?: string;\n}\n\nexport enum ModuleEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n S5articleGuid = \"S5articleGuid\",\n}\n\nexport interface IMoneyS3ImportDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n ErrorMessage?: string;\n ImportTypeCode?: string;\n BackgroundJob?: IBackgroundJobEntity;\n DocumentType?: IDocumentTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n ImportType?: IDocumentImportTypeEntity;\n}\n\nexport enum MoneyS3ImportDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ErrorMessage = \"ErrorMessage\",\n ImportTypeCode = \"ImportTypeCode\",\n BackgroundJob = \"BackgroundJob\",\n DocumentType = \"DocumentType\",\n FileMetadata = \"FileMetadata\",\n ImportType = \"ImportType\",\n}\n\nexport interface IMonthOfYearEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n Number?: number;\n}\n\nexport enum MonthOfYearEntity {\n Code = \"Code\",\n Name = \"Name\",\n Number = \"Number\",\n}\n\nexport interface IMultiplePostingDateAccountingTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum MultiplePostingDateAccountingTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface INotificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n NotificationTypeCode?: string;\n TextArgument?: string;\n Company?: ICompanyEntity;\n NotificationType?: INotificationTypeEntity;\n}\n\nexport enum NotificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n NotificationTypeCode = \"NotificationTypeCode\",\n TextArgument = \"TextArgument\",\n Company = \"Company\",\n NotificationType = \"NotificationType\",\n}\n\nexport interface INotificationSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsBannerDisabled?: boolean;\n TypeSettings?: INotificationTypeSettingEntity[];\n}\n\nexport enum NotificationSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsBannerDisabled = \"IsBannerDisabled\",\n TypeSettings = \"TypeSettings\",\n}\n\nexport interface INotificationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n NotificationTypeGroupCode?: string;\n SendEmailByDefault?: boolean;\n NotificationTypeGroup?: INotificationTypeGroupEntity;\n}\n\nexport enum NotificationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n NotificationTypeGroupCode = \"NotificationTypeGroupCode\",\n SendEmailByDefault = \"SendEmailByDefault\",\n NotificationTypeGroup = \"NotificationTypeGroup\",\n}\n\nexport interface INotificationTypeGroupEntity extends IEntityBase {\n Code?: string;\n CompanyPermissionCode?: string;\n Name?: string;\n CompanyPermission?: ICompanyPermissionEntity;\n}\n\nexport enum NotificationTypeGroupEntity {\n Code = \"Code\",\n CompanyPermissionCode = \"CompanyPermissionCode\",\n Name = \"Name\",\n CompanyPermission = \"CompanyPermission\",\n}\n\nexport interface INotificationTypeSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsDisabled?: boolean;\n IsSendToEmailEnabled?: boolean;\n NotificationTypeCode?: string;\n NotificationType?: INotificationTypeEntity;\n}\n\nexport enum NotificationTypeSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsDisabled = \"IsDisabled\",\n IsSendToEmailEnabled = \"IsSendToEmailEnabled\",\n NotificationTypeCode = \"NotificationTypeCode\",\n NotificationType = \"NotificationType\",\n}\n\nexport interface INumberRangeEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n InitialValue?: number;\n IsExhausted?: boolean;\n NextNumber?: string;\n NextValue?: number;\n Definition?: INumberRangeDefinitionEntity;\n FiscalYear?: IFiscalYearEntity;\n Usage?: INumberRangeUsageEntity;\n}\n\nexport enum NumberRangeEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n InitialValue = \"InitialValue\",\n IsExhausted = \"IsExhausted\",\n NextNumber = \"NextNumber\",\n NextValue = \"NextValue\",\n Definition = \"Definition\",\n FiscalYear = \"FiscalYear\",\n Usage = \"Usage\",\n}\n\nexport interface INumberRangeDefinitionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CarryForward?: boolean;\n CarryForwardPrefix?: string;\n IsActive?: boolean;\n IsDefault?: boolean;\n Name?: string;\n NumberOfDigits?: number;\n NumberRangeTypeCode?: string;\n NumberRangeTypePrefix?: string;\n PadWithZeros?: boolean;\n Prefix?: string;\n Suffix?: string;\n NumberRangeType?: INumberRangeTypeEntity;\n NumberRanges?: INumberRangeEntity[];\n}\n\nexport enum NumberRangeDefinitionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CarryForward = \"CarryForward\",\n CarryForwardPrefix = \"CarryForwardPrefix\",\n IsActive = \"IsActive\",\n IsDefault = \"IsDefault\",\n Name = \"Name\",\n NumberOfDigits = \"NumberOfDigits\",\n NumberRangeTypeCode = \"NumberRangeTypeCode\",\n NumberRangeTypePrefix = \"NumberRangeTypePrefix\",\n PadWithZeros = \"PadWithZeros\",\n Prefix = \"Prefix\",\n Suffix = \"Suffix\",\n NumberRangeType = \"NumberRangeType\",\n NumberRanges = \"NumberRanges\",\n}\n\nexport interface INumberRangeDefinitionTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CarryForward?: boolean;\n CarryForwardPrefix?: string;\n IsActive?: boolean;\n IsDefault?: boolean;\n Name?: string;\n NumberOfDigits?: number;\n NumberRangeTypeCode?: string;\n NumberRangeTypePrefix?: string;\n PadWithZeros?: boolean;\n Prefix?: string;\n Suffix?: string;\n NumberRangeType?: INumberRangeTypeEntity;\n}\n\nexport enum NumberRangeDefinitionTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CarryForward = \"CarryForward\",\n CarryForwardPrefix = \"CarryForwardPrefix\",\n IsActive = \"IsActive\",\n IsDefault = \"IsDefault\",\n Name = \"Name\",\n NumberOfDigits = \"NumberOfDigits\",\n NumberRangeTypeCode = \"NumberRangeTypeCode\",\n NumberRangeTypePrefix = \"NumberRangeTypePrefix\",\n PadWithZeros = \"PadWithZeros\",\n Prefix = \"Prefix\",\n Suffix = \"Suffix\",\n NumberRangeType = \"NumberRangeType\",\n}\n\nexport interface INumberRangeTypeEntity extends IEntityBase {\n Code?: string;\n DocumentTypeCode?: string;\n EntityTypeCode?: string;\n FeatureCode?: string;\n Name?: string;\n Prefix?: string;\n DocumentType?: IDocumentTypeEntity;\n EntityType?: IEntityTypeEntity;\n Feature?: IFeatureEntity;\n Wildcards?: INumberRangeWildcardEntity[];\n}\n\nexport enum NumberRangeTypeEntity {\n Code = \"Code\",\n DocumentTypeCode = \"DocumentTypeCode\",\n EntityTypeCode = \"EntityTypeCode\",\n FeatureCode = \"FeatureCode\",\n Name = \"Name\",\n Prefix = \"Prefix\",\n DocumentType = \"DocumentType\",\n EntityType = \"EntityType\",\n Feature = \"Feature\",\n Wildcards = \"Wildcards\",\n}\n\nexport interface INumberRangeUsageEntity extends IEntityBase {\n Id?: number;\n IsUsed?: boolean;\n}\n\nexport enum NumberRangeUsageEntity {\n Id = \"Id\",\n IsUsed = \"IsUsed\",\n}\n\nexport interface INumberRangeWildcardEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n IsFiscalYearDependent?: boolean;\n Name?: string;\n Replacement?: string;\n Types?: INumberRangeTypeEntity[];\n}\n\nexport enum NumberRangeWildcardEntity {\n Code = \"Code\",\n Description = \"Description\",\n IsFiscalYearDependent = \"IsFiscalYearDependent\",\n Name = \"Name\",\n Replacement = \"Replacement\",\n Types = \"Types\",\n}\n\nexport interface IOppositeDocumentDocumentLinkEntity extends IEntityBase {\n Id?: number;\n OppositeDocumentLinkType?: string;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n Type?: IDocumentLinkTypeEntity;\n SourceDocument?: IDocumentEntity;\n}\n\nexport enum OppositeDocumentDocumentLinkEntity {\n Id = \"Id\",\n OppositeDocumentLinkType = \"OppositeDocumentLinkType\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n Type = \"Type\",\n SourceDocument = \"SourceDocument\",\n}\n\nexport interface IOppositeDocumentLinkEntity extends IEntityBase {\n Id?: number;\n OppositeDocumentLinkType?: string;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum OppositeDocumentLinkEntity {\n Id = \"Id\",\n OppositeDocumentLinkType = \"OppositeDocumentLinkType\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n Type = \"Type\",\n}\n\nexport interface IOppositePaymentDocumentDocumentLinkEntity extends IEntityBase {\n Id?: number;\n OppositeDocumentLinkType?: string;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n Type?: IDocumentLinkTypeEntity;\n SourcePaymentDocument?: IPaymentDocumentEntity;\n}\n\nexport enum OppositePaymentDocumentDocumentLinkEntity {\n Id = \"Id\",\n OppositeDocumentLinkType = \"OppositeDocumentLinkType\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n Type = \"Type\",\n SourcePaymentDocument = \"SourcePaymentDocument\",\n}\n\nexport interface IOrganizationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsActive?: boolean;\n Name?: string;\n AccountingCompany?: ICompanyEntity;\n}\n\nexport enum OrganizationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n AccountingCompany = \"AccountingCompany\",\n}\n\nexport interface IOtherLiabilityEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n BankPaymentOrderStateCode?: string;\n DateBankApiPaymentOrder?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateReceived?: Date;\n DateTaxableSupply?: Date;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum OtherLiabilityEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateReceived = \"DateReceived\",\n DateTaxableSupply = \"DateTaxableSupply\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IOtherReceivableEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n DateDue?: Date;\n DateIssued?: Date;\n DateTaxableSupply?: Date;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum OtherReceivableEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateTaxableSupply = \"DateTaxableSupply\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IPayableReceivableTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PayableReceivableTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPayingDocumentEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCreated?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateReceived?: Date;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n IsTaxDocument?: boolean;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n TransactionCurrencyCode?: string;\n AccountAssignment?: IDocumentAccountAssignmentEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n CorrectiveDocument?: IDocumentEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n DocumentItems?: IPayingDocumentItemViewEntity[];\n}\n\nexport enum PayingDocumentEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCreated = \"DateCreated\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateReceived = \"DateReceived\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsTaxDocument = \"IsTaxDocument\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n AccountAssignment = \"AccountAssignment\",\n BusinessPartner = \"BusinessPartner\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n CorrectiveDocument = \"CorrectiveDocument\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n DocumentItems = \"DocumentItems\",\n}\n\nexport interface IPayingDocumentItemViewEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n UnitOfMeasureCode?: string;\n VatCode?: string;\n Quantity?: number;\n UnitPrice?: number;\n UnitPriceNet?: number;\n UnitPriceVat?: number;\n TransactionUnitPrice?: number;\n TransactionUnitPriceNet?: number;\n TransactionUnitPriceVat?: number;\n DiscountPercent?: number;\n Discount?: number;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IDocumentItemCbaCategoryEntity;\n DocumentItemDraft?: IDocumentItemDraftEntity;\n LabelSelection?: ILabelSelectionEntity;\n LinkedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n UnitOfMeasure?: IUnitOfMeasureEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionEntity;\n}\n\nexport enum PayingDocumentItemViewEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n UnitOfMeasureCode = \"UnitOfMeasureCode\",\n VatCode = \"VatCode\",\n Quantity = \"Quantity\",\n UnitPrice = \"UnitPrice\",\n UnitPriceNet = \"UnitPriceNet\",\n UnitPriceVat = \"UnitPriceVat\",\n TransactionUnitPrice = \"TransactionUnitPrice\",\n TransactionUnitPriceNet = \"TransactionUnitPriceNet\",\n TransactionUnitPriceVat = \"TransactionUnitPriceVat\",\n DiscountPercent = \"DiscountPercent\",\n Discount = \"Discount\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItemDraft = \"DocumentItemDraft\",\n LabelSelection = \"LabelSelection\",\n LinkedDocument = \"LinkedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n UnitOfMeasure = \"UnitOfMeasure\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n}\n\nexport interface IPaymentDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n ExchangeRatePerUnit?: number;\n IsUnrelatedToBusiness?: boolean;\n Note?: string;\n NumberOurs?: string;\n PaymentStatusCode?: string;\n PostedStatusCode?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocumentDraft?: IPaymentDocumentDraftEntity;\n PaymentStatus?: IPaymentStatusEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Items?: IPaymentDocumentItemEntity[];\n Locks?: IPaymentDocumentLockEntity[];\n}\n\nexport enum PaymentDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n IsUnrelatedToBusiness = \"IsUnrelatedToBusiness\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaymentStatusCode = \"PaymentStatusCode\",\n PostedStatusCode = \"PostedStatusCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentStatus = \"PaymentStatus\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n DocumentLinks = \"DocumentLinks\",\n Items = \"Items\",\n Locks = \"Locks\",\n}\n\nexport interface IPaymentDocumentAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum PaymentDocumentAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IPaymentDocumentAttachmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum PaymentDocumentAttachmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface IPaymentDocumentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BankAccountDescription?: string;\n BankInternalId?: string;\n BankTransactionTypeCode?: string;\n CurrencyCode?: string;\n DateBankTransaction?: Date;\n DateIssued?: Date;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n Note?: string;\n NumberOurs?: string;\n PaidBy?: string;\n PaidTo?: string;\n PaymentInformation?: string;\n PaymentType?: string;\n Purpose?: string;\n ReceivedBy?: string;\n ReceivedFrom?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionCurrencyCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n ExchangeRatePerUnit?: number;\n BankAccount?: IBankTransactionBankAccountDraftEntity;\n BankStatement?: IBankStatementEntity;\n BankStatementDraft?: IBankStatementDraftEntity;\n BankTransactionType?: IBankTransactionTypeEntity;\n BusinessPartner?: IBankTransactionBusinessPartnerDraftEntity;\n CashBox?: ICashBoxEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n NumberRange?: INumberRangeEntity;\n PaymentDocument?: IPaymentDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n Attachments?: IPaymentDocumentAttachmentDraftEntity[];\n Items?: IPaymentDocumentItemDraftEntity[];\n Locks?: IPaymentDocumentLockDraftEntity[];\n}\n\nexport enum PaymentDocumentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BankAccountDescription = \"BankAccountDescription\",\n BankInternalId = \"BankInternalId\",\n BankTransactionTypeCode = \"BankTransactionTypeCode\",\n CurrencyCode = \"CurrencyCode\",\n DateBankTransaction = \"DateBankTransaction\",\n DateIssued = \"DateIssued\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n PaidBy = \"PaidBy\",\n PaidTo = \"PaidTo\",\n PaymentInformation = \"PaymentInformation\",\n PaymentType = \"PaymentType\",\n Purpose = \"Purpose\",\n ReceivedBy = \"ReceivedBy\",\n ReceivedFrom = \"ReceivedFrom\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n BankAccount = \"BankAccount\",\n BankStatement = \"BankStatement\",\n BankStatementDraft = \"BankStatementDraft\",\n BankTransactionType = \"BankTransactionType\",\n BusinessPartner = \"BusinessPartner\",\n CashBox = \"CashBox\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n NumberRange = \"NumberRange\",\n PaymentDocument = \"PaymentDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n Attachments = \"Attachments\",\n Items = \"Items\",\n Locks = \"Locks\",\n}\n\nexport interface IPaymentDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n DateAccountingTransaction?: Date;\n Order?: number;\n PaymentDocumentItemTypeCode?: string;\n TransactionAmount?: number;\n ExchangeRate?: number;\n ClearedAmount?: number;\n AccountAssignmentSelection?: IPaymentDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IPaymentDocumentItemCbaCategoryEntity;\n CreatedByPostingRule?: IPostingRuleEntity;\n DocumentLink?: IDocumentLinkEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n LinkedDocument?: IDocumentEntity;\n PaymentDocumentItemDraft?: IPaymentDocumentItemDraftEntity;\n PaymentDocumentItemType?: IPaymentDocumentItemTypeEntity;\n SplitAccountAssignments?: ISplitAccountAssignmentEntity[];\n}\n\nexport enum PaymentDocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n Order = \"Order\",\n PaymentDocumentItemTypeCode = \"PaymentDocumentItemTypeCode\",\n TransactionAmount = \"TransactionAmount\",\n ExchangeRate = \"ExchangeRate\",\n ClearedAmount = \"ClearedAmount\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n CreatedByPostingRule = \"CreatedByPostingRule\",\n DocumentLink = \"DocumentLink\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n LinkedDocument = \"LinkedDocument\",\n PaymentDocumentItemDraft = \"PaymentDocumentItemDraft\",\n PaymentDocumentItemType = \"PaymentDocumentItemType\",\n SplitAccountAssignments = \"SplitAccountAssignments\",\n}\n\nexport interface IPaymentDocumentItemAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum PaymentDocumentItemAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IPaymentDocumentItemAccountAssignmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n Note?: string;\n ShortName?: string;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum PaymentDocumentItemAccountAssignmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n Note = \"Note\",\n ShortName = \"ShortName\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface IPaymentDocumentItemAccountAssignmentSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IPaymentDocumentItemAccountAssignmentEntity;\n}\n\nexport enum PaymentDocumentItemAccountAssignmentSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IPaymentDocumentItemAccountAssignmentSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n AccountAssignment?: IPaymentDocumentItemAccountAssignmentDraftEntity;\n}\n\nexport enum PaymentDocumentItemAccountAssignmentSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n AccountAssignment = \"AccountAssignment\",\n}\n\nexport interface IPaymentDocumentItemCbaCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum PaymentDocumentItemCbaCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IPaymentDocumentItemCbaCategoryDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsAssetAcquisition?: boolean;\n TaxImpactCode?: string;\n TaxPercentage?: number;\n Category?: ICbaCategoryEntity;\n TaxImpact?: ICbaCategoryTaxImpactEntity;\n}\n\nexport enum PaymentDocumentItemCbaCategoryDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsAssetAcquisition = \"IsAssetAcquisition\",\n TaxImpactCode = \"TaxImpactCode\",\n TaxPercentage = \"TaxPercentage\",\n Category = \"Category\",\n TaxImpact = \"TaxImpact\",\n}\n\nexport interface IPaymentDocumentItemDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateAccountingTransaction?: Date;\n Order?: number;\n PaymentDocumentItemTypeCode?: string;\n ExchangeRate?: number;\n ClearedAmount?: number;\n Amount?: number;\n TransactionAmount?: number;\n AccountAssignmentSelection?: IPaymentDocumentItemAccountAssignmentSelectionDraftEntity;\n CbaCategory?: IPaymentDocumentItemCbaCategoryDraftEntity;\n CreatedByPostingRule?: IPostingRuleEntity;\n LinkedDocument?: IDocumentEntity;\n PaymentDocumentItem?: IPaymentDocumentItemEntity;\n PaymentDocumentItemType?: IPaymentDocumentItemTypeEntity;\n SplitAccountAssignments?: ISplitAccountAssignmentDraftEntity[];\n}\n\nexport enum PaymentDocumentItemDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n Order = \"Order\",\n PaymentDocumentItemTypeCode = \"PaymentDocumentItemTypeCode\",\n ExchangeRate = \"ExchangeRate\",\n ClearedAmount = \"ClearedAmount\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n CreatedByPostingRule = \"CreatedByPostingRule\",\n LinkedDocument = \"LinkedDocument\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n PaymentDocumentItemType = \"PaymentDocumentItemType\",\n SplitAccountAssignments = \"SplitAccountAssignments\",\n}\n\nexport interface IPaymentDocumentItemTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PaymentDocumentItemTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPaymentDocumentLockEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum PaymentDocumentLockEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IPaymentDocumentLockDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n TypeCode?: string;\n Type?: ILockTypeEntity;\n}\n\nexport enum PaymentDocumentLockDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IPaymentMethodEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PaymentMethodEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPaymentOrderFormatEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PaymentOrderFormatEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPaymentOrderOutputEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PaymentOrderOutputEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPaymentStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PaymentStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPeriodDayEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PeriodDayEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPohodaColumnPreviewValueEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Value?: string;\n}\n\nexport enum PohodaColumnPreviewValueEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Value = \"Value\",\n}\n\nexport interface IPohodaDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Number?: string;\n DocumentDraft?: IDocumentDraftEntity;\n}\n\nexport enum PohodaDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Number = \"Number\",\n DocumentDraft = \"DocumentDraft\",\n}\n\nexport interface IPohodaEnumMappingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EvalaValue?: string;\n IsPresentInFile?: boolean;\n PohodaValue?: string;\n}\n\nexport enum PohodaEnumMappingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EvalaValue = \"EvalaValue\",\n IsPresentInFile = \"IsPresentInFile\",\n PohodaValue = \"PohodaValue\",\n}\n\nexport interface IPohodaImportEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AzureFileGuid?: string;\n DocumentTypeCode?: string;\n FileName?: string;\n PohodaCompanyName?: string;\n DocumentType?: IDocumentTypeEntity;\n FiscalYear?: IFiscalYearEntity;\n PohodaDocuments?: IPohodaDocumentEntity[];\n PohodaProgresses?: IPohodaImportProgressEntity[];\n PohodaMappings?: IPohodaMappingEntity[];\n}\n\nexport enum PohodaImportEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AzureFileGuid = \"AzureFileGuid\",\n DocumentTypeCode = \"DocumentTypeCode\",\n FileName = \"FileName\",\n PohodaCompanyName = \"PohodaCompanyName\",\n DocumentType = \"DocumentType\",\n FiscalYear = \"FiscalYear\",\n PohodaDocuments = \"PohodaDocuments\",\n PohodaProgresses = \"PohodaProgresses\",\n PohodaMappings = \"PohodaMappings\",\n}\n\nexport interface IPohodaImportDocumentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DocumentTypeCode?: string;\n ErrorMessage?: string;\n ImportTypeCode?: string;\n BackgroundJob?: IBackgroundJobEntity;\n DocumentType?: IDocumentTypeEntity;\n FileMetadata?: IFileMetadataEntity;\n ImportType?: IDocumentImportTypeEntity;\n}\n\nexport enum PohodaImportDocumentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DocumentTypeCode = \"DocumentTypeCode\",\n ErrorMessage = \"ErrorMessage\",\n ImportTypeCode = \"ImportTypeCode\",\n BackgroundJob = \"BackgroundJob\",\n DocumentType = \"DocumentType\",\n FileMetadata = \"FileMetadata\",\n ImportType = \"ImportType\",\n}\n\nexport interface IPohodaImportProgressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountAll?: number;\n CountForImport?: number;\n DocumentTypeCode?: string;\n IsFinished?: boolean;\n DocumentType?: IDocumentTypeEntity;\n}\n\nexport enum PohodaImportProgressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountAll = \"CountAll\",\n CountForImport = \"CountForImport\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsFinished = \"IsFinished\",\n DocumentType = \"DocumentType\",\n}\n\nexport interface IPohodaMappingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EvalaPropertyName?: string;\n EvalaPropertyTranslated?: string;\n EvalaTypeName?: string;\n PohodaColumnName?: string;\n PohodaImport?: IPohodaImportEntity;\n EnumValuesMappings?: IPohodaEnumMappingEntity[];\n PreviewValues?: IPohodaColumnPreviewValueEntity[];\n}\n\nexport enum PohodaMappingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EvalaPropertyName = \"EvalaPropertyName\",\n EvalaPropertyTranslated = \"EvalaPropertyTranslated\",\n EvalaTypeName = \"EvalaTypeName\",\n PohodaColumnName = \"PohodaColumnName\",\n PohodaImport = \"PohodaImport\",\n EnumValuesMappings = \"EnumValuesMappings\",\n PreviewValues = \"PreviewValues\",\n}\n\nexport interface IPostedStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PostedStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPostingRuleEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AmountInCZKTolerance?: number;\n AmountInTransactionCurrencyTolerance?: number;\n BankTransactionTypeCode?: string;\n DocumentNumberMustMatchCode?: string;\n DocumentSymbolMatchingMustMatchCode?: string;\n DocumentTypeCode?: string;\n IsActive?: boolean;\n MustAmountInCZKMatch?: boolean;\n MustAmountInTransactionCurrencyMatch?: boolean;\n MustSymbolSpecificMatch?: boolean;\n MustSymbolVariableMatch?: boolean;\n Name?: string;\n Order?: number;\n BankTransactionType?: IBankTransactionTypeEntity;\n Company?: ICompanyEntity;\n DocumentNumberMustMatch?: IBankTransactionDocumentNumberLocationEntity;\n DocumentSymbolMatchingMustMatch?: IBankTransactionDocumentNumberLocationEntity;\n DocumentType?: IPostingRuleDocumentTypeEntity;\n CompanyBankAccounts?: ICompanyBankAccountEntity[];\n}\n\nexport enum PostingRuleEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AmountInCZKTolerance = \"AmountInCZKTolerance\",\n AmountInTransactionCurrencyTolerance = \"AmountInTransactionCurrencyTolerance\",\n BankTransactionTypeCode = \"BankTransactionTypeCode\",\n DocumentNumberMustMatchCode = \"DocumentNumberMustMatchCode\",\n DocumentSymbolMatchingMustMatchCode = \"DocumentSymbolMatchingMustMatchCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsActive = \"IsActive\",\n MustAmountInCZKMatch = \"MustAmountInCZKMatch\",\n MustAmountInTransactionCurrencyMatch = \"MustAmountInTransactionCurrencyMatch\",\n MustSymbolSpecificMatch = \"MustSymbolSpecificMatch\",\n MustSymbolVariableMatch = \"MustSymbolVariableMatch\",\n Name = \"Name\",\n Order = \"Order\",\n BankTransactionType = \"BankTransactionType\",\n Company = \"Company\",\n DocumentNumberMustMatch = \"DocumentNumberMustMatch\",\n DocumentSymbolMatchingMustMatch = \"DocumentSymbolMatchingMustMatch\",\n DocumentType = \"DocumentType\",\n CompanyBankAccounts = \"CompanyBankAccounts\",\n}\n\nexport interface IPostingRuleDocumentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PostingRuleDocumentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrAbsenceCategoryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BaseTypeCode?: string;\n Color?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LegislativeTypeCode?: string;\n BaseType?: IPrBaseTypeEntity;\n CurrentTemporalPropertyBag?: IPrAbsenceCategoryTemporalCurrentEntity;\n LegislativeType?: IPrAbsenceCategoryLegislativeTypeEntity;\n TemporalPropertyBag?: IPrAbsenceCategoryTemporalEntity[];\n}\n\nexport enum PrAbsenceCategoryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BaseTypeCode = \"BaseTypeCode\",\n Color = \"Color\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LegislativeTypeCode = \"LegislativeTypeCode\",\n BaseType = \"BaseType\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n LegislativeType = \"LegislativeType\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrAbsenceCategoryLegislativeTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n DefaultColor?: string;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrAbsenceCategoryLegislativeTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n DefaultColor = \"DefaultColor\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrAbsenceCategoryTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n CompensationRate?: number;\n}\n\nexport enum PrAbsenceCategoryTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n CompensationRate = \"CompensationRate\",\n}\n\nexport interface IPrAbsenceCategoryTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n CompensationRate?: number;\n}\n\nexport enum PrAbsenceCategoryTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n CompensationRate = \"CompensationRate\",\n}\n\nexport interface IPrAttendanceEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Balance?: number;\n ExtraHolidayWorked?: number;\n ExtraNightWorked?: number;\n ExtraWeekendWorked?: number;\n ExtraWorked?: number;\n Month?: number;\n Overtime?: number;\n OvertimeFromPreviousMonth?: number;\n StatusCode?: string;\n Year?: number;\n Employment?: IPrEmploymentEntity;\n Status?: IPrAttendanceStatusEntity;\n Days?: IPrAttendanceDayEntity[];\n}\n\nexport enum PrAttendanceEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Balance = \"Balance\",\n ExtraHolidayWorked = \"ExtraHolidayWorked\",\n ExtraNightWorked = \"ExtraNightWorked\",\n ExtraWeekendWorked = \"ExtraWeekendWorked\",\n ExtraWorked = \"ExtraWorked\",\n Month = \"Month\",\n Overtime = \"Overtime\",\n OvertimeFromPreviousMonth = \"OvertimeFromPreviousMonth\",\n StatusCode = \"StatusCode\",\n Year = \"Year\",\n Employment = \"Employment\",\n Status = \"Status\",\n Days = \"Days\",\n}\n\nexport interface IPrAttendanceDayEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Date?: Date;\n Intervals?: IPrAttendanceDayIntervalEntity[];\n}\n\nexport enum PrAttendanceDayEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Date = \"Date\",\n Intervals = \"Intervals\",\n}\n\nexport interface IPrAttendanceDayIntervalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsEndNextDay?: boolean;\n IsStartNextDay?: boolean;\n IsWholeDay?: boolean;\n Order?: number;\n TimeEnd?: Date;\n TimeStart?: Date;\n WorkTypeCode?: string;\n AbsenceCategory?: IPrAbsenceCategoryEntity;\n WorkType?: IPrWorkIntervalTypeEntity;\n}\n\nexport enum PrAttendanceDayIntervalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsEndNextDay = \"IsEndNextDay\",\n IsStartNextDay = \"IsStartNextDay\",\n IsWholeDay = \"IsWholeDay\",\n Order = \"Order\",\n TimeEnd = \"TimeEnd\",\n TimeStart = \"TimeStart\",\n WorkTypeCode = \"WorkTypeCode\",\n AbsenceCategory = \"AbsenceCategory\",\n WorkType = \"WorkType\",\n}\n\nexport interface IPrAttendanceStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrAttendanceStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrAttendanceWithWorkingPatternEntity extends IEntityBase {\n Id?: number;\n DateEnd?: Date;\n DateStart?: Date;\n Month?: number;\n StatusCode?: string;\n Year?: number;\n Employment?: IPrEmploymentEntity;\n EmploymentWorkingPattern?: IPrWorkingPatternEntity;\n Status?: IPrAttendanceStatusEntity;\n Template?: IPrEmploymentTemplateEntity;\n TemplateWorkingPattern?: IPrWorkingPatternEntity;\n}\n\nexport enum PrAttendanceWithWorkingPatternEntity {\n Id = \"Id\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Month = \"Month\",\n StatusCode = \"StatusCode\",\n Year = \"Year\",\n Employment = \"Employment\",\n EmploymentWorkingPattern = \"EmploymentWorkingPattern\",\n Status = \"Status\",\n Template = \"Template\",\n TemplateWorkingPattern = \"TemplateWorkingPattern\",\n}\n\nexport interface IPrBaseTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrBaseTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrChildDeductionOrderEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrChildDeductionOrderEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrChildSupportDeductionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrChildSupportDeductionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrCzechReductionLimitEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Percentage?: number;\n AmountLimit?: number;\n Country?: ICountryEntity;\n}\n\nexport enum PrCzechReductionLimitEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Percentage = \"Percentage\",\n AmountLimit = \"AmountLimit\",\n Country = \"Country\",\n}\n\nexport interface IPrDeductionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n Name?: string;\n NumberOurs?: string;\n RemittanceInformation?: string;\n StatusCode?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TypeCode?: string;\n BankAccount?: IPrDeductionBankAccountEntity;\n CurrentTemporalPropertyBag?: IPrDeductionTemporalCurrentEntity;\n NumberRange?: INumberRangeEntity;\n Recipient?: IPrDeductionBusinessPartnerEntity;\n Status?: IPrDeductionStatusEntity;\n Type?: IPrDeductionTypeEntity;\n TemporalPropertyBag?: IPrDeductionTemporalEntity[];\n}\n\nexport enum PrDeductionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Name = \"Name\",\n NumberOurs = \"NumberOurs\",\n RemittanceInformation = \"RemittanceInformation\",\n StatusCode = \"StatusCode\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TypeCode = \"TypeCode\",\n BankAccount = \"BankAccount\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n NumberRange = \"NumberRange\",\n Recipient = \"Recipient\",\n Status = \"Status\",\n Type = \"Type\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrDeductionBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum PrDeductionBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IPrDeductionBusinessPartnerEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n Name?: string;\n PhoneNumber?: string;\n PostalCode?: string;\n Street?: string;\n TaxNumber?: string;\n VatStatusCode?: string;\n BusinessPartner?: IBusinessPartnerEntity;\n Country?: ICountryEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum PrDeductionBusinessPartnerEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n TaxNumber = \"TaxNumber\",\n VatStatusCode = \"VatStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Country = \"Country\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IPrDeductionCalculationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDeductionCalculationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrDeductionEntityTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDeductionEntityTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrDeductionStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDeductionStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrDeductionTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CalculationTypeCode?: string;\n IsIncludingAllEmployees?: boolean;\n Amount?: number;\n PercentageEmployee?: number;\n PercentageEmployer?: number;\n CalculationType?: IPrDeductionCalculationTypeEntity;\n}\n\nexport enum PrDeductionTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CalculationTypeCode = \"CalculationTypeCode\",\n IsIncludingAllEmployees = \"IsIncludingAllEmployees\",\n Amount = \"Amount\",\n PercentageEmployee = \"PercentageEmployee\",\n PercentageEmployer = \"PercentageEmployer\",\n CalculationType = \"CalculationType\",\n}\n\nexport interface IPrDeductionTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CalculationTypeCode?: string;\n IsIncludingAllEmployees?: boolean;\n Amount?: number;\n PercentageEmployee?: number;\n PercentageEmployer?: number;\n CalculationType?: IPrDeductionCalculationTypeEntity;\n}\n\nexport enum PrDeductionTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CalculationTypeCode = \"CalculationTypeCode\",\n IsIncludingAllEmployees = \"IsIncludingAllEmployees\",\n Amount = \"Amount\",\n PercentageEmployee = \"PercentageEmployee\",\n PercentageEmployer = \"PercentageEmployer\",\n CalculationType = \"CalculationType\",\n}\n\nexport interface IPrDeductionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDeductionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrDisabilityDiscountAmountEntity extends IEntityBase {\n Code?: string;\n Amount?: number;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n TypeCode?: string;\n Country?: ICountryEntity;\n Type?: IPrTaxDiscountTypeEntity;\n}\n\nexport enum PrDisabilityDiscountAmountEntity {\n Code = \"Code\",\n Amount = \"Amount\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n Country = \"Country\",\n Type = \"Type\",\n}\n\nexport interface IPrDisabilityTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDisabilityTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrDistrainmentDeductionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrDistrainmentDeductionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrEmployeeEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BornLastName?: string;\n CitizenshipCode?: string;\n DateIDEndOfValidity?: Date;\n DateOfBirth?: Date;\n DatePensionFrom?: Date;\n Email?: string;\n EuHealthCareNumber?: string;\n EuSocialInsuranceNumber?: string;\n ExternalNumber?: string;\n FirstName?: string;\n ForeignPersonalIdentificationNumber?: string;\n IDCountryOfIssueCode?: string;\n IDNumber?: string;\n LastName?: string;\n NumberOurs?: string;\n PasswordForPayslip?: string;\n PerformAnnualAccounting?: boolean;\n PersonalIdentificationNumber?: string;\n PhoneNumber?: string;\n PrEmployeeStateCode?: string;\n PrIdentificationDocumentCode?: string;\n PrSexCode?: string;\n RemittanceInformation?: string;\n SalaryCurrencyCode?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TitleAfterName?: string;\n TitleBeforeName?: string;\n PreviousEmploymentDurationDays?: number;\n Cars?: IPrEmployeeCarEntity[];\n BankAccount?: IPrEmployeeBankAccountEntity;\n Citizenship?: ICountryEntity;\n ContactAddress?: IPrEmployeeContactAddressEntity;\n CurrentTemporalPropertyBag?: IPrEmployeeTemporalCurrentEntity;\n ForeignAddress?: IPrEmployeeForeignAddressEntity;\n IDCountryOfIssue?: ICountryEntity;\n LocalAddress?: IPrEmployeeLocalAddressEntity;\n NumberRange?: INumberRangeEntity;\n PrIdentificationDocument?: IPrIdentityDocumentTypeEntity;\n PrSex?: IPrSexEntity;\n SalaryCurrency?: ICurrencyEntity;\n Dependents?: IPrEmployeeDependentPersonEntity[];\n Labels?: IPrEmployeeLabelEntity[];\n TemporalPropertyBag?: IPrEmployeeTemporalEntity[];\n}\n\nexport enum PrEmployeeEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BornLastName = \"BornLastName\",\n CitizenshipCode = \"CitizenshipCode\",\n DateIDEndOfValidity = \"DateIDEndOfValidity\",\n DateOfBirth = \"DateOfBirth\",\n DatePensionFrom = \"DatePensionFrom\",\n Email = \"Email\",\n EuHealthCareNumber = \"EuHealthCareNumber\",\n EuSocialInsuranceNumber = \"EuSocialInsuranceNumber\",\n ExternalNumber = \"ExternalNumber\",\n FirstName = \"FirstName\",\n ForeignPersonalIdentificationNumber = \"ForeignPersonalIdentificationNumber\",\n IDCountryOfIssueCode = \"IDCountryOfIssueCode\",\n IDNumber = \"IDNumber\",\n LastName = \"LastName\",\n NumberOurs = \"NumberOurs\",\n PasswordForPayslip = \"PasswordForPayslip\",\n PerformAnnualAccounting = \"PerformAnnualAccounting\",\n PersonalIdentificationNumber = \"PersonalIdentificationNumber\",\n PhoneNumber = \"PhoneNumber\",\n PrEmployeeStateCode = \"PrEmployeeStateCode\",\n PrIdentificationDocumentCode = \"PrIdentificationDocumentCode\",\n PrSexCode = \"PrSexCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SalaryCurrencyCode = \"SalaryCurrencyCode\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TitleAfterName = \"TitleAfterName\",\n TitleBeforeName = \"TitleBeforeName\",\n PreviousEmploymentDurationDays = \"PreviousEmploymentDurationDays\",\n Cars = \"Cars\",\n BankAccount = \"BankAccount\",\n Citizenship = \"Citizenship\",\n ContactAddress = \"ContactAddress\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n ForeignAddress = \"ForeignAddress\",\n IDCountryOfIssue = \"IDCountryOfIssue\",\n LocalAddress = \"LocalAddress\",\n NumberRange = \"NumberRange\",\n PrIdentificationDocument = \"PrIdentificationDocument\",\n PrSex = \"PrSex\",\n SalaryCurrency = \"SalaryCurrency\",\n Dependents = \"Dependents\",\n Labels = \"Labels\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmployeeBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum PrEmployeeBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IPrEmployeeCarEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LowEmission?: boolean;\n Name?: string;\n PurchasePrice?: number;\n}\n\nexport enum PrEmployeeCarEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LowEmission = \"LowEmission\",\n Name = \"Name\",\n PurchasePrice = \"PurchasePrice\",\n}\n\nexport interface IPrEmployeeContactAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrEmployeeContactAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IPrEmployeeDependentPersonEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n DateOfBirth?: Date;\n FirstName?: string;\n LastName?: string;\n PersonalIdentificationNumber?: string;\n}\n\nexport enum PrEmployeeDependentPersonEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n DateOfBirth = \"DateOfBirth\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n PersonalIdentificationNumber = \"PersonalIdentificationNumber\",\n}\n\nexport interface IPrEmployeeForeignAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrEmployeeForeignAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IPrEmployeeLabelEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n EntityTypeCode?: string;\n EntityType?: IEntityTypeEntity;\n Label?: ILabelEntity;\n LabelHierarchy?: ILabelHierarchyEntity;\n}\n\nexport enum PrEmployeeLabelEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n EntityTypeCode = \"EntityTypeCode\",\n EntityType = \"EntityType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n}\n\nexport interface IPrEmployeeLocalAddressEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n City?: string;\n CountryCode?: string;\n PostalCode?: string;\n Street?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrEmployeeLocalAddressEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n City = \"City\",\n CountryCode = \"CountryCode\",\n PostalCode = \"PostalCode\",\n Street = \"Street\",\n Country = \"Country\",\n}\n\nexport interface IPrEmployeeStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrEmployeeStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrEmployeeTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n HealthInsuranceCode?: string;\n IsDepositing?: boolean;\n PrDisabilityTypeCode?: string;\n PrFormOfStudyTypeCode?: string;\n HealthInsurance?: IPrInsuranceCompanyPredefinedEntity;\n PrDisabilityType?: IPrDisabilityTypeEntity;\n PrFormOfStudyType?: IPrFormOfStudyTypeEntity;\n}\n\nexport enum PrEmployeeTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n HealthInsuranceCode = \"HealthInsuranceCode\",\n IsDepositing = \"IsDepositing\",\n PrDisabilityTypeCode = \"PrDisabilityTypeCode\",\n PrFormOfStudyTypeCode = \"PrFormOfStudyTypeCode\",\n HealthInsurance = \"HealthInsurance\",\n PrDisabilityType = \"PrDisabilityType\",\n PrFormOfStudyType = \"PrFormOfStudyType\",\n}\n\nexport interface IPrEmployeeTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n HealthInsuranceCode?: string;\n IsDepositing?: boolean;\n PrDisabilityTypeCode?: string;\n PrFormOfStudyTypeCode?: string;\n HealthInsurance?: IPrInsuranceCompanyPredefinedEntity;\n PrDisabilityType?: IPrDisabilityTypeEntity;\n PrFormOfStudyType?: IPrFormOfStudyTypeEntity;\n}\n\nexport enum PrEmployeeTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n HealthInsuranceCode = \"HealthInsuranceCode\",\n IsDepositing = \"IsDepositing\",\n PrDisabilityTypeCode = \"PrDisabilityTypeCode\",\n PrFormOfStudyTypeCode = \"PrFormOfStudyTypeCode\",\n HealthInsurance = \"HealthInsurance\",\n PrDisabilityType = \"PrDisabilityType\",\n PrFormOfStudyType = \"PrFormOfStudyType\",\n}\n\nexport interface IPrEmploymentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateCalculatePayslipStart?: Date;\n DateEnd?: Date;\n DateStart?: Date;\n NumberOurs?: string;\n TypeCode?: string;\n CurrentTemporalPropertyBag?: IPrEmploymentTemporalCurrentEntity;\n Employee?: IPrEmployeeEntity;\n NumberRange?: INumberRangeEntity;\n PreviousEmployment?: IPrEmploymentEntity;\n Template?: IPrEmploymentTemplateEntity;\n Type?: IPrEmploymentTypeEntity;\n ExtraSalaries?: IPrEmploymentExtraSalaryEntity[];\n SalaryComponents?: IPrEmploymentSalaryComponentEntity[];\n TemporalPropertyBag?: IPrEmploymentTemporalEntity[];\n}\n\nexport enum PrEmploymentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateCalculatePayslipStart = \"DateCalculatePayslipStart\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n NumberOurs = \"NumberOurs\",\n TypeCode = \"TypeCode\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Employee = \"Employee\",\n NumberRange = \"NumberRange\",\n PreviousEmployment = \"PreviousEmployment\",\n Template = \"Template\",\n Type = \"Type\",\n ExtraSalaries = \"ExtraSalaries\",\n SalaryComponents = \"SalaryComponents\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentExtraSalaryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CurrentTemporalPropertyBag?: IPrEmploymentExtraSalaryTemporalCurrentEntity;\n Default?: IPrExtraSalaryEntity;\n Template?: IPrEmploymentTemplateExtraSalaryEntity;\n TemporalPropertyBag?: IPrEmploymentExtraSalaryTemporalEntity[];\n}\n\nexport enum PrEmploymentExtraSalaryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Default = \"Default\",\n Template = \"Template\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentExtraSalaryTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n Name?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n}\n\nexport enum PrEmploymentExtraSalaryTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n Name = \"Name\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n}\n\nexport interface IPrEmploymentExtraSalaryTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n ComputationTypeSourceCode?: string;\n Name?: string;\n NameSourceCode?: string;\n ValueSourceCode?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n ComputationTypeSource?: IPrEntityValueSourceEntity;\n NameSource?: IPrEntityValueSourceEntity;\n ValueSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentExtraSalaryTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n ComputationTypeSourceCode = \"ComputationTypeSourceCode\",\n Name = \"Name\",\n NameSourceCode = \"NameSourceCode\",\n ValueSourceCode = \"ValueSourceCode\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n ComputationTypeSource = \"ComputationTypeSource\",\n NameSource = \"NameSource\",\n ValueSource = \"ValueSource\",\n}\n\nexport interface IPrEmploymentSalaryComponentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CurrentTemporalPropertyBag?: IPrEmploymentSalaryComponentTemporalCurrentEntity;\n Default?: IPrSalaryComponentEntity;\n Template?: IPrEmploymentTemplateSalaryComponentEntity;\n TemporalPropertyBag?: IPrEmploymentSalaryComponentTemporalEntity[];\n}\n\nexport enum PrEmploymentSalaryComponentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Default = \"Default\",\n Template = \"Template\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentSalaryComponentTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusTaxImpactCode?: string;\n Name?: string;\n TypeCode?: string;\n Amount?: number;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrSalaryComponentTypeEntity;\n}\n\nexport enum PrEmploymentSalaryComponentTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrEmploymentSalaryComponentTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n AmountSourceCode?: string;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusPayOutImpactSourceCode?: string;\n FixedBonusTaxImpactCode?: string;\n FixedBonusTaxImpactSourceCode?: string;\n Name?: string;\n NameSourceCode?: string;\n TypeCode?: string;\n TypeSourceCode?: string;\n Amount?: number;\n AmountSource?: IPrEntityValueSourceEntity;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusPayOutImpactSource?: IPrEntityValueSourceEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n FixedBonusTaxImpactSource?: IPrEntityValueSourceEntity;\n NameSource?: IPrEntityValueSourceEntity;\n Type?: IPrSalaryComponentTypeEntity;\n TypeSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentSalaryComponentTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n AmountSourceCode = \"AmountSourceCode\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusPayOutImpactSourceCode = \"FixedBonusPayOutImpactSourceCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n FixedBonusTaxImpactSourceCode = \"FixedBonusTaxImpactSourceCode\",\n Name = \"Name\",\n NameSourceCode = \"NameSourceCode\",\n TypeCode = \"TypeCode\",\n TypeSourceCode = \"TypeSourceCode\",\n Amount = \"Amount\",\n AmountSource = \"AmountSource\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusPayOutImpactSource = \"FixedBonusPayOutImpactSource\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n FixedBonusTaxImpactSource = \"FixedBonusTaxImpactSource\",\n NameSource = \"NameSource\",\n Type = \"Type\",\n TypeSource = \"TypeSource\",\n}\n\nexport interface IPrEmploymentTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Name?: string;\n NumberOurs?: string;\n CurrentTemporalPropertyBag?: IPrEmploymentTemplateTemporalCurrentEntity;\n NumberRange?: INumberRangeEntity;\n ExtraSalaries?: IPrEmploymentTemplateExtraSalaryEntity[];\n SalaryComponents?: IPrEmploymentTemplateSalaryComponentEntity[];\n TemporalPropertyBag?: IPrEmploymentTemplateTemporalEntity[];\n}\n\nexport enum PrEmploymentTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Name = \"Name\",\n NumberOurs = \"NumberOurs\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n NumberRange = \"NumberRange\",\n ExtraSalaries = \"ExtraSalaries\",\n SalaryComponents = \"SalaryComponents\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentTemplateExtraSalaryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CurrentTemporalPropertyBag?: IPrEmploymentTemplateExtraSalaryTemporalCurrentEntity;\n Default?: IPrExtraSalaryEntity;\n TemporalPropertyBag?: IPrEmploymentTemplateExtraSalaryTemporalEntity[];\n}\n\nexport enum PrEmploymentTemplateExtraSalaryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Default = \"Default\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentTemplateExtraSalaryTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n Name?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n}\n\nexport enum PrEmploymentTemplateExtraSalaryTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n Name = \"Name\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n}\n\nexport interface IPrEmploymentTemplateExtraSalaryTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n ComputationTypeSourceCode?: string;\n Name?: string;\n NameSourceCode?: string;\n ValueSourceCode?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n ComputationTypeSource?: IPrEntityValueSourceEntity;\n NameSource?: IPrEntityValueSourceEntity;\n ValueSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentTemplateExtraSalaryTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n ComputationTypeSourceCode = \"ComputationTypeSourceCode\",\n Name = \"Name\",\n NameSourceCode = \"NameSourceCode\",\n ValueSourceCode = \"ValueSourceCode\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n ComputationTypeSource = \"ComputationTypeSource\",\n NameSource = \"NameSource\",\n ValueSource = \"ValueSource\",\n}\n\nexport interface IPrEmploymentTemplateSalaryComponentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n CurrentTemporalPropertyBag?: IPrEmploymentTemplateSalaryComponentTemporalCurrentEntity;\n Default?: IPrSalaryComponentEntity;\n TemporalPropertyBag?: IPrEmploymentTemplateSalaryComponentTemporalEntity[];\n}\n\nexport enum PrEmploymentTemplateSalaryComponentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Default = \"Default\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrEmploymentTemplateSalaryComponentTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusTaxImpactCode?: string;\n Name?: string;\n TypeCode?: string;\n Amount?: number;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrSalaryComponentTypeEntity;\n}\n\nexport enum PrEmploymentTemplateSalaryComponentTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrEmploymentTemplateSalaryComponentTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n AmountSourceCode?: string;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusPayOutImpactSourceCode?: string;\n FixedBonusTaxImpactCode?: string;\n FixedBonusTaxImpactSourceCode?: string;\n Name?: string;\n NameSourceCode?: string;\n TypeCode?: string;\n TypeSourceCode?: string;\n Amount?: number;\n AmountSource?: IPrEntityValueSourceEntity;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusPayOutImpactSource?: IPrEntityValueSourceEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n FixedBonusTaxImpactSource?: IPrEntityValueSourceEntity;\n NameSource?: IPrEntityValueSourceEntity;\n Type?: IPrSalaryComponentTypeEntity;\n TypeSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentTemplateSalaryComponentTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n AmountSourceCode = \"AmountSourceCode\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusPayOutImpactSourceCode = \"FixedBonusPayOutImpactSourceCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n FixedBonusTaxImpactSourceCode = \"FixedBonusTaxImpactSourceCode\",\n Name = \"Name\",\n NameSourceCode = \"NameSourceCode\",\n TypeCode = \"TypeCode\",\n TypeSourceCode = \"TypeSourceCode\",\n Amount = \"Amount\",\n AmountSource = \"AmountSource\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusPayOutImpactSource = \"FixedBonusPayOutImpactSource\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n FixedBonusTaxImpactSource = \"FixedBonusTaxImpactSource\",\n NameSource = \"NameSource\",\n Type = \"Type\",\n TypeSource = \"TypeSource\",\n}\n\nexport interface IPrEmploymentTemplateTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDays?: number;\n SickDays?: number;\n WorkingPattern?: IPrWorkingPatternEntity;\n}\n\nexport enum PrEmploymentTemplateTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n WorkingPattern = \"WorkingPattern\",\n}\n\nexport interface IPrEmploymentTemplateTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDaysSourceCode?: string;\n SickDaysSourceCode?: string;\n WorkingPatternSourceCode?: string;\n LeaveDays?: number;\n SickDays?: number;\n LeaveDaysSource?: IPrEntityValueSourceEntity;\n SickDaysSource?: IPrEntityValueSourceEntity;\n WorkingPattern?: IPrWorkingPatternEntity;\n WorkingPatternSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentTemplateTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDaysSourceCode = \"LeaveDaysSourceCode\",\n SickDaysSourceCode = \"SickDaysSourceCode\",\n WorkingPatternSourceCode = \"WorkingPatternSourceCode\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n LeaveDaysSource = \"LeaveDaysSource\",\n SickDaysSource = \"SickDaysSource\",\n WorkingPattern = \"WorkingPattern\",\n WorkingPatternSource = \"WorkingPatternSource\",\n}\n\nexport interface IPrEmploymentTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDays?: number;\n SickDays?: number;\n WorkingPattern?: IPrWorkingPatternEntity;\n}\n\nexport enum PrEmploymentTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n WorkingPattern = \"WorkingPattern\",\n}\n\nexport interface IPrEmploymentTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDaysSourceCode?: string;\n SickDaysSourceCode?: string;\n WorkingPatternSourceCode?: string;\n LeaveDays?: number;\n SickDays?: number;\n LeaveDaysSource?: IPrEntityValueSourceEntity;\n SickDaysSource?: IPrEntityValueSourceEntity;\n WorkingPattern?: IPrWorkingPatternEntity;\n WorkingPatternSource?: IPrEntityValueSourceEntity;\n}\n\nexport enum PrEmploymentTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDaysSourceCode = \"LeaveDaysSourceCode\",\n SickDaysSourceCode = \"SickDaysSourceCode\",\n WorkingPatternSourceCode = \"WorkingPatternSourceCode\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n LeaveDaysSource = \"LeaveDaysSource\",\n SickDaysSource = \"SickDaysSource\",\n WorkingPattern = \"WorkingPattern\",\n WorkingPatternSource = \"WorkingPatternSource\",\n}\n\nexport interface IPrEmploymentTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrEmploymentTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrEntityValueSourceEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrEntityValueSourceEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrExtraSalaryEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n BaseTypeCode?: string;\n TypeCode?: string;\n BaseType?: IPrBaseTypeEntity;\n CurrentTemporalPropertyBag?: IPrExtraSalaryTemporalCurrentEntity;\n Type?: IPrExtraSalaryTypeEntity;\n TemporalPropertyBag?: IPrExtraSalaryTemporalEntity[];\n}\n\nexport enum PrExtraSalaryEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n BaseTypeCode = \"BaseTypeCode\",\n TypeCode = \"TypeCode\",\n BaseType = \"BaseType\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n Type = \"Type\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrExtraSalaryComputationTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrExtraSalaryComputationTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrExtraSalaryLegislativeValueEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ExtraSalaryComputationTypeCode?: string;\n ExtraSalaryName?: string;\n ExtraSalaryTypeCode?: string;\n MinValue?: number;\n Name?: string;\n Country?: ICountryEntity;\n ExtraSalaryComputationType?: IPrExtraSalaryComputationTypeEntity;\n ExtraSalaryType?: IPrExtraSalaryTypeEntity;\n}\n\nexport enum PrExtraSalaryLegislativeValueEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ExtraSalaryComputationTypeCode = \"ExtraSalaryComputationTypeCode\",\n ExtraSalaryName = \"ExtraSalaryName\",\n ExtraSalaryTypeCode = \"ExtraSalaryTypeCode\",\n MinValue = \"MinValue\",\n Name = \"Name\",\n Country = \"Country\",\n ExtraSalaryComputationType = \"ExtraSalaryComputationType\",\n ExtraSalaryType = \"ExtraSalaryType\",\n}\n\nexport interface IPrExtraSalaryTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n Name?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n}\n\nexport enum PrExtraSalaryTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n Name = \"Name\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n}\n\nexport interface IPrExtraSalaryTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n ComputationTypeCode?: string;\n Name?: string;\n Value?: number;\n ComputationType?: IPrExtraSalaryComputationTypeEntity;\n}\n\nexport enum PrExtraSalaryTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n ComputationTypeCode = \"ComputationTypeCode\",\n Name = \"Name\",\n Value = \"Value\",\n ComputationType = \"ComputationType\",\n}\n\nexport interface IPrExtraSalaryTypeEntity extends IEntityBase {\n Code?: string;\n IsLegallyRequired?: boolean;\n Name?: string;\n}\n\nexport enum PrExtraSalaryTypeEntity {\n Code = \"Code\",\n IsLegallyRequired = \"IsLegallyRequired\",\n Name = \"Name\",\n}\n\nexport interface IPrFixedBonusPayOutImpactEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrFixedBonusPayOutImpactEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrFixedBonusTaxImpactEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrFixedBonusTaxImpactEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrFormOfStudyTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrFormOfStudyTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrGovernmentInstitutionBankAccountDetailEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n GovernmentInstitutionBankAccountCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n GovernmentInstitutionBankAccount?: IGovernmentInstitutionBankAccountEntity;\n}\n\nexport enum PrGovernmentInstitutionBankAccountDetailEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n GovernmentInstitutionBankAccountCode = \"GovernmentInstitutionBankAccountCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n GovernmentInstitutionBankAccount = \"GovernmentInstitutionBankAccount\",\n}\n\nexport interface IPrGovernmentInstitutionDetailEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ContactEmail?: string;\n ContactName?: string;\n ContactPhone?: string;\n GovernmentInstitutionCode?: string;\n GovernmentInstitution?: IGovernmentInstitutionEntity;\n BankAccountDetails?: IPrGovernmentInstitutionBankAccountDetailEntity[];\n}\n\nexport enum PrGovernmentInstitutionDetailEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ContactEmail = \"ContactEmail\",\n ContactName = \"ContactName\",\n ContactPhone = \"ContactPhone\",\n GovernmentInstitutionCode = \"GovernmentInstitutionCode\",\n GovernmentInstitution = \"GovernmentInstitution\",\n BankAccountDetails = \"BankAccountDetails\",\n}\n\nexport interface IPrGroupDeductionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n Name?: string;\n NumberOurs?: string;\n RemittanceInformation?: string;\n StatusCode?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TypeCode?: string;\n BankAccount?: IPrDeductionBankAccountEntity;\n CurrentTemporalPropertyBag?: IPrDeductionTemporalCurrentEntity;\n NumberRange?: INumberRangeEntity;\n Recipient?: IPrDeductionBusinessPartnerEntity;\n Status?: IPrDeductionStatusEntity;\n Type?: IPrDeductionTypeEntity;\n TemporalPropertyBag?: IPrDeductionTemporalEntity[];\n Employees?: IPrGroupDeductionEmployeeEntity[];\n}\n\nexport enum PrGroupDeductionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Name = \"Name\",\n NumberOurs = \"NumberOurs\",\n RemittanceInformation = \"RemittanceInformation\",\n StatusCode = \"StatusCode\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TypeCode = \"TypeCode\",\n BankAccount = \"BankAccount\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n NumberRange = \"NumberRange\",\n Recipient = \"Recipient\",\n Status = \"Status\",\n Type = \"Type\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n Employees = \"Employees\",\n}\n\nexport interface IPrGroupDeductionEmployeeEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Employee?: IPrEmployeeEntity;\n}\n\nexport enum PrGroupDeductionEmployeeEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Employee = \"Employee\",\n}\n\nexport interface IPrHealthInsuranceCompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataBoxId?: string;\n IsActive?: boolean;\n Name?: string;\n PrInsuranceCompanyTypeCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n BankAccount?: IPrInsuranceCompanyBankAccountEntity;\n HealthInsuranceCompanyCode?: string;\n ShortName?: string;\n}\n\nexport enum PrHealthInsuranceCompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataBoxId = \"DataBoxId\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n PrInsuranceCompanyTypeCode = \"PrInsuranceCompanyTypeCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n BankAccount = \"BankAccount\",\n HealthInsuranceCompanyCode = \"HealthInsuranceCompanyCode\",\n ShortName = \"ShortName\",\n}\n\nexport interface IPrIdentityDocumentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrIdentityDocumentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrIncomeTaxDiscountEntity extends IEntityBase {\n Code?: string;\n BasicAmount?: number;\n Child1Amount?: number;\n Child2Amount?: number;\n Child3Amount?: number;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n SpouseAmount?: number;\n Country?: ICountryEntity;\n}\n\nexport enum PrIncomeTaxDiscountEntity {\n Code = \"Code\",\n BasicAmount = \"BasicAmount\",\n Child1Amount = \"Child1Amount\",\n Child2Amount = \"Child2Amount\",\n Child3Amount = \"Child3Amount\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n SpouseAmount = \"SpouseAmount\",\n Country = \"Country\",\n}\n\nexport interface IPrIndividualDeductionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateStart?: Date;\n Name?: string;\n NumberOurs?: string;\n RemittanceInformation?: string;\n StatusCode?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TypeCode?: string;\n BankAccount?: IPrDeductionBankAccountEntity;\n CurrentTemporalPropertyBag?: IPrDeductionTemporalCurrentEntity;\n NumberRange?: INumberRangeEntity;\n Recipient?: IPrDeductionBusinessPartnerEntity;\n Status?: IPrDeductionStatusEntity;\n Type?: IPrDeductionTypeEntity;\n TemporalPropertyBag?: IPrDeductionTemporalEntity[];\n ChildSupportTypeCode?: string;\n DateReceived?: Date;\n DecreeNumber?: string;\n DistrainmentTypeCode?: string;\n AmountDebtTotal?: number;\n ChildSupportType?: IPrChildSupportDeductionTypeEntity;\n DistrainmentType?: IPrDistrainmentDeductionTypeEntity;\n Employee?: IPrEmployeeEntity;\n DebtPayments?: IPrIndividualDeductionDebtPaymentEntity[];\n}\n\nexport enum PrIndividualDeductionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateStart = \"DateStart\",\n Name = \"Name\",\n NumberOurs = \"NumberOurs\",\n RemittanceInformation = \"RemittanceInformation\",\n StatusCode = \"StatusCode\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TypeCode = \"TypeCode\",\n BankAccount = \"BankAccount\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n NumberRange = \"NumberRange\",\n Recipient = \"Recipient\",\n Status = \"Status\",\n Type = \"Type\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n ChildSupportTypeCode = \"ChildSupportTypeCode\",\n DateReceived = \"DateReceived\",\n DecreeNumber = \"DecreeNumber\",\n DistrainmentTypeCode = \"DistrainmentTypeCode\",\n AmountDebtTotal = \"AmountDebtTotal\",\n ChildSupportType = \"ChildSupportType\",\n DistrainmentType = \"DistrainmentType\",\n Employee = \"Employee\",\n DebtPayments = \"DebtPayments\",\n}\n\nexport interface IPrIndividualDeductionDebtPaymentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n DateMonthStart?: Date;\n}\n\nexport enum PrIndividualDeductionDebtPaymentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n DateMonthStart = \"DateMonthStart\",\n}\n\nexport interface IPrInsuranceBankAccountPredefinedEntity extends IEntityBase {\n Code?: string;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n Name?: string;\n PrInsuranceBankAccountTypeCode?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n PrInsuranceBankAccountType?: IPrInsuranceBankAccountTypeEntity;\n}\n\nexport enum PrInsuranceBankAccountPredefinedEntity {\n Code = \"Code\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n Name = \"Name\",\n PrInsuranceBankAccountTypeCode = \"PrInsuranceBankAccountTypeCode\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n PrInsuranceBankAccountType = \"PrInsuranceBankAccountType\",\n}\n\nexport interface IPrInsuranceBankAccountTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrInsuranceBankAccountTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrInsuranceCompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataBoxId?: string;\n IsActive?: boolean;\n Name?: string;\n PrInsuranceCompanyTypeCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n BankAccount?: IPrInsuranceCompanyBankAccountEntity;\n}\n\nexport enum PrInsuranceCompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataBoxId = \"DataBoxId\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n PrInsuranceCompanyTypeCode = \"PrInsuranceCompanyTypeCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n BankAccount = \"BankAccount\",\n}\n\nexport interface IPrInsuranceCompanyBankAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AbaNumber?: string;\n AccountNumber?: string;\n BankCode?: string;\n CountryCode?: string;\n IBAN?: string;\n PaymentServiceID?: string;\n PaymentServiceName?: string;\n SWIFT?: string;\n Bank?: IBankEntity;\n Country?: ICountryEntity;\n}\n\nexport enum PrInsuranceCompanyBankAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AbaNumber = \"AbaNumber\",\n AccountNumber = \"AccountNumber\",\n BankCode = \"BankCode\",\n CountryCode = \"CountryCode\",\n IBAN = \"IBAN\",\n PaymentServiceID = \"PaymentServiceID\",\n PaymentServiceName = \"PaymentServiceName\",\n SWIFT = \"SWIFT\",\n Bank = \"Bank\",\n Country = \"Country\",\n}\n\nexport interface IPrInsuranceCompanyPredefinedEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DataBoxId?: string;\n HealthInsuranceCompanyCode?: string;\n Name?: string;\n PrInsuranceCompanyTypeCode?: string;\n ShortName?: string;\n Country?: ICountryEntity;\n PrInsuranceCompanyType?: IPrInsuranceCompanyTypeEntity;\n BankAccounts?: IPrInsuranceBankAccountPredefinedEntity[];\n}\n\nexport enum PrInsuranceCompanyPredefinedEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DataBoxId = \"DataBoxId\",\n HealthInsuranceCompanyCode = \"HealthInsuranceCompanyCode\",\n Name = \"Name\",\n PrInsuranceCompanyTypeCode = \"PrInsuranceCompanyTypeCode\",\n ShortName = \"ShortName\",\n Country = \"Country\",\n PrInsuranceCompanyType = \"PrInsuranceCompanyType\",\n BankAccounts = \"BankAccounts\",\n}\n\nexport interface IPrInsuranceCompanyTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrInsuranceCompanyTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrLegislativeAverageSalaryEntity extends IEntityBase {\n Code?: string;\n Amount?: number;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrLegislativeAverageSalaryEntity {\n Code = \"Code\",\n Amount = \"Amount\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrLifeInsuranceCompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataBoxId?: string;\n IsActive?: boolean;\n Name?: string;\n PrInsuranceCompanyTypeCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n BankAccount?: IPrInsuranceCompanyBankAccountEntity;\n}\n\nexport enum PrLifeInsuranceCompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataBoxId = \"DataBoxId\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n PrInsuranceCompanyTypeCode = \"PrInsuranceCompanyTypeCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n BankAccount = \"BankAccount\",\n}\n\nexport interface IPrPayrollComponentCategoryTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrPayrollComponentCategoryTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrPayrollComponentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrPayrollComponentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrPayrollSettingEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CurrentTemporalPropertyBag?: IPrPayrollSettingTemporalCurrentEntity;\n CzechSocialSecurityAdministration?: IPrGovernmentInstitutionDetailEntity;\n FinancialAdministration?: IPrGovernmentInstitutionDetailEntity;\n LabourOffice?: IPrGovernmentInstitutionDetailEntity;\n StatutoryInsuranceCompany?: IPrGovernmentInstitutionDetailEntity;\n TemporalPropertyBag?: IPrPayrollSettingTemporalEntity[];\n}\n\nexport enum PrPayrollSettingEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n CzechSocialSecurityAdministration = \"CzechSocialSecurityAdministration\",\n FinancialAdministration = \"FinancialAdministration\",\n LabourOffice = \"LabourOffice\",\n StatutoryInsuranceCompany = \"StatutoryInsuranceCompany\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrPayrollSettingTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDays?: number;\n SickDays?: number;\n}\n\nexport enum PrPayrollSettingTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n}\n\nexport interface IPrPayrollSettingTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n LeaveDays?: number;\n SickDays?: number;\n}\n\nexport enum PrPayrollSettingTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n LeaveDays = \"LeaveDays\",\n SickDays = \"SickDays\",\n}\n\nexport interface IPrPayslipEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AggregatedGrossSalary?: number;\n MealVoucherCount?: number;\n Month?: number;\n OverrideStatusCode?: string;\n Year?: number;\n MealVoucherCountOverride?: number;\n Employee?: IPrEmployeeEntity;\n OverrideStatus?: IPrPayslipOverrideStatusEntity;\n Deductions?: IPrPayslipDeductionEntity[];\n Employments?: IPrPayslipEmploymentEntity[];\n Items?: IPrPayslipItemEntity[];\n}\n\nexport enum PrPayslipEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AggregatedGrossSalary = \"AggregatedGrossSalary\",\n MealVoucherCount = \"MealVoucherCount\",\n Month = \"Month\",\n OverrideStatusCode = \"OverrideStatusCode\",\n Year = \"Year\",\n MealVoucherCountOverride = \"MealVoucherCountOverride\",\n Employee = \"Employee\",\n OverrideStatus = \"OverrideStatus\",\n Deductions = \"Deductions\",\n Employments = \"Employments\",\n Items = \"Items\",\n}\n\nexport interface IPrPayslipDeductionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CalculationTypeCode?: string;\n IsOneTime?: boolean;\n Name?: string;\n AmountOverride?: number;\n CalculationType?: IPrDeductionCalculationTypeEntity;\n Deduction?: IPrDeductionEntity;\n}\n\nexport enum PrPayslipDeductionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CalculationTypeCode = \"CalculationTypeCode\",\n IsOneTime = \"IsOneTime\",\n Name = \"Name\",\n AmountOverride = \"AmountOverride\",\n CalculationType = \"CalculationType\",\n Deduction = \"Deduction\",\n}\n\nexport interface IPrPayslipEmploymentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AverageSalary?: number;\n HolidayWorked?: number;\n NightWorked?: number;\n OvertimeWorked?: number;\n PlannedWork?: number;\n Reduced60AverageSalary?: number;\n ReducedAverageSalary?: number;\n WeekendWorked?: number;\n Worked?: number;\n AverageSalaryOverride?: number;\n ReducedAverageSalaryOverride?: number;\n Reduced60AverageSalaryOverride?: number;\n Attendance?: IPrAttendanceEntity;\n Employment?: IPrEmploymentEntity;\n Items?: IPrPayslipEmploymentItemEntity[];\n SalaryComponents?: IPrPayslipEmploymentSalaryComponentEntity[];\n}\n\nexport enum PrPayslipEmploymentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AverageSalary = \"AverageSalary\",\n HolidayWorked = \"HolidayWorked\",\n NightWorked = \"NightWorked\",\n OvertimeWorked = \"OvertimeWorked\",\n PlannedWork = \"PlannedWork\",\n Reduced60AverageSalary = \"Reduced60AverageSalary\",\n ReducedAverageSalary = \"ReducedAverageSalary\",\n WeekendWorked = \"WeekendWorked\",\n Worked = \"Worked\",\n AverageSalaryOverride = \"AverageSalaryOverride\",\n ReducedAverageSalaryOverride = \"ReducedAverageSalaryOverride\",\n Reduced60AverageSalaryOverride = \"Reduced60AverageSalaryOverride\",\n Attendance = \"Attendance\",\n Employment = \"Employment\",\n Items = \"Items\",\n SalaryComponents = \"SalaryComponents\",\n}\n\nexport interface IPrPayslipEmploymentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n FixedBonusTaxImpactCode?: string;\n Name?: string;\n TypeCode?: string;\n AmountOverride?: number;\n Length?: number;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrPayslipEmploymentItemTypeEntity;\n}\n\nexport enum PrPayslipEmploymentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n AmountOverride = \"AmountOverride\",\n Length = \"Length\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrPayslipEmploymentItemTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Order?: number;\n Country?: ICountryEntity;\n}\n\nexport enum PrPayslipEmploymentItemTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Order = \"Order\",\n Country = \"Country\",\n}\n\nexport interface IPrPayslipEmploymentSalaryComponentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Amount?: number;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusTaxImpactCode?: string;\n IsOneTime?: boolean;\n Name?: string;\n TypeCode?: string;\n AmountOverride?: number;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrSalaryComponentTypeEntity;\n}\n\nexport enum PrPayslipEmploymentSalaryComponentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Amount = \"Amount\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n IsOneTime = \"IsOneTime\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n AmountOverride = \"AmountOverride\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrPayslipItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n Name?: string;\n TypeCode?: string;\n AmountOverride?: number;\n Deduction?: IPrDeductionEntity;\n Type?: IPrPayslipItemTypeEntity;\n}\n\nexport enum PrPayslipItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n AmountOverride = \"AmountOverride\",\n Deduction = \"Deduction\",\n Type = \"Type\",\n}\n\nexport interface IPrPayslipItemTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Order?: number;\n Country?: ICountryEntity;\n}\n\nexport enum PrPayslipItemTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Order = \"Order\",\n Country = \"Country\",\n}\n\nexport interface IPrPayslipLayoutGroupEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrPayslipLayoutGroupEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrPayslipLayoutItemEntity extends IEntityBase {\n Code?: string;\n EmploymentItemTypeCode?: string;\n GroupCode?: string;\n ItemTypeCode?: string;\n Name?: string;\n Order?: number;\n EmploymentItemType?: IPrPayslipEmploymentItemTypeEntity;\n Group?: IPrPayslipLayoutGroupEntity;\n ItemType?: IPrPayslipItemTypeEntity;\n}\n\nexport enum PrPayslipLayoutItemEntity {\n Code = \"Code\",\n EmploymentItemTypeCode = \"EmploymentItemTypeCode\",\n GroupCode = \"GroupCode\",\n ItemTypeCode = \"ItemTypeCode\",\n Name = \"Name\",\n Order = \"Order\",\n EmploymentItemType = \"EmploymentItemType\",\n Group = \"Group\",\n ItemType = \"ItemType\",\n}\n\nexport interface IPrPayslipOverrideStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrPayslipOverrideStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrPensionInsuranceCompanyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DataBoxId?: string;\n IsActive?: boolean;\n Name?: string;\n PrInsuranceCompanyTypeCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n BankAccount?: IPrInsuranceCompanyBankAccountEntity;\n}\n\nexport enum PrPensionInsuranceCompanyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DataBoxId = \"DataBoxId\",\n IsActive = \"IsActive\",\n Name = \"Name\",\n PrInsuranceCompanyTypeCode = \"PrInsuranceCompanyTypeCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n BankAccount = \"BankAccount\",\n}\n\nexport interface IPrSalaryAdvanceEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n Month?: number;\n NumberOurs?: string;\n Year?: number;\n Currency?: ICurrencyEntity;\n Employee?: IPrEmployeeEntity;\n NumberRange?: INumberRangeEntity;\n PairedDocument?: IOtherLiabilityEntity;\n}\n\nexport enum PrSalaryAdvanceEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n Month = \"Month\",\n NumberOurs = \"NumberOurs\",\n Year = \"Year\",\n Currency = \"Currency\",\n Employee = \"Employee\",\n NumberRange = \"NumberRange\",\n PairedDocument = \"PairedDocument\",\n}\n\nexport interface IPrSalaryComponentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CurrentTemporalPropertyBag?: IPrSalaryComponentTemporalCurrentEntity;\n TemporalPropertyBag?: IPrSalaryComponentTemporalEntity[];\n}\n\nexport enum PrSalaryComponentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrSalaryComponentTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Amount?: number;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusTaxImpactCode?: string;\n Name?: string;\n TypeCode?: string;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrSalaryComponentTypeEntity;\n}\n\nexport enum PrSalaryComponentTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Amount = \"Amount\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrSalaryComponentTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Amount?: number;\n FixedBonusPayOutImpactCode?: string;\n FixedBonusTaxImpactCode?: string;\n Name?: string;\n TypeCode?: string;\n FixedBonusPayOutImpact?: IPrFixedBonusPayOutImpactEntity;\n FixedBonusTaxImpact?: IPrFixedBonusTaxImpactEntity;\n Type?: IPrSalaryComponentTypeEntity;\n}\n\nexport enum PrSalaryComponentTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Amount = \"Amount\",\n FixedBonusPayOutImpactCode = \"FixedBonusPayOutImpactCode\",\n FixedBonusTaxImpactCode = \"FixedBonusTaxImpactCode\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n FixedBonusPayOutImpact = \"FixedBonusPayOutImpact\",\n FixedBonusTaxImpact = \"FixedBonusTaxImpact\",\n Type = \"Type\",\n}\n\nexport interface IPrSalaryComponentTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrSalaryComponentTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrSexEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrSexEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPrTaxDiscountTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrTaxDiscountTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrTaxpayerDeclarationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsChecked?: boolean;\n Year?: number;\n Employee?: IPrEmployeeEntity;\n Children?: IPrTaxpayerDeclarationChildEntity[];\n Discounts?: IPrTaxpayerDeclarationDiscountEntity[];\n}\n\nexport enum PrTaxpayerDeclarationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsChecked = \"IsChecked\",\n Year = \"Year\",\n Employee = \"Employee\",\n Children = \"Children\",\n Discounts = \"Discounts\",\n}\n\nexport interface IPrTaxpayerDeclarationChildEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n FirstName?: string;\n LastName?: string;\n PersonalIdentificationNumber?: string;\n CurrentTemporalPropertyBag?: IPrTaxpayerDeclarationChildTemporalCurrentEntity;\n TemporalPropertyBag?: IPrTaxpayerDeclarationChildTemporalEntity[];\n}\n\nexport enum PrTaxpayerDeclarationChildEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n PersonalIdentificationNumber = \"PersonalIdentificationNumber\",\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport interface IPrTaxpayerDeclarationChildTemporalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n IsDisabilityDiscount?: boolean;\n OrderCode?: string;\n Order?: IPrChildDeductionOrderEntity;\n}\n\nexport enum PrTaxpayerDeclarationChildTemporalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n IsDisabilityDiscount = \"IsDisabilityDiscount\",\n OrderCode = \"OrderCode\",\n Order = \"Order\",\n}\n\nexport interface IPrTaxpayerDeclarationChildTemporalCurrentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n IsDisabilityDiscount?: boolean;\n OrderCode?: string;\n Order?: IPrChildDeductionOrderEntity;\n}\n\nexport enum PrTaxpayerDeclarationChildTemporalCurrentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n IsDisabilityDiscount = \"IsDisabilityDiscount\",\n OrderCode = \"OrderCode\",\n Order = \"Order\",\n}\n\nexport interface IPrTaxpayerDeclarationDiscountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n DiscountTypeCode?: string;\n DiscountType?: IPrTaxDiscountTypeEntity;\n}\n\nexport enum PrTaxpayerDeclarationDiscountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n DiscountTypeCode = \"DiscountTypeCode\",\n DiscountType = \"DiscountType\",\n}\n\nexport interface IPrUnseizableAmountEntity extends IEntityBase {\n Code?: string;\n AmountBase?: number;\n AmountDependant?: number;\n AmountToBeDistributedLimit?: number;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum PrUnseizableAmountEntity {\n Code = \"Code\",\n AmountBase = \"AmountBase\",\n AmountDependant = \"AmountDependant\",\n AmountToBeDistributedLimit = \"AmountToBeDistributedLimit\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IPrWorkIntervalTypeEntity extends IEntityBase {\n Code?: string;\n IncludeInWorkingHours?: boolean;\n Name?: string;\n}\n\nexport enum PrWorkIntervalTypeEntity {\n Code = \"Code\",\n IncludeInWorkingHours = \"IncludeInWorkingHours\",\n Name = \"Name\",\n}\n\nexport interface IPrWorkingPatternEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DefaultDayStart?: Date;\n IsActive?: boolean;\n IsDifferentOddAndEvenWeek?: boolean;\n IsIncludingHolidays?: boolean;\n Name?: string;\n TypeCode?: string;\n Type?: IPrWorkingPatternTypeEntity;\n Days?: IPrWorkingPatternDayEntity[];\n}\n\nexport enum PrWorkingPatternEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DefaultDayStart = \"DefaultDayStart\",\n IsActive = \"IsActive\",\n IsDifferentOddAndEvenWeek = \"IsDifferentOddAndEvenWeek\",\n IsIncludingHolidays = \"IsIncludingHolidays\",\n Name = \"Name\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n Days = \"Days\",\n}\n\nexport interface IPrWorkingPatternDayEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Date?: Date;\n WorkingHours?: Date;\n Intervals?: IPrWorkingPatternDayIntervalEntity[];\n}\n\nexport enum PrWorkingPatternDayEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Date = \"Date\",\n WorkingHours = \"WorkingHours\",\n Intervals = \"Intervals\",\n}\n\nexport interface IPrWorkingPatternDayIntervalEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsEndNextDay?: boolean;\n IsStartNextDay?: boolean;\n Order?: number;\n TimeEnd?: Date;\n TimeStart?: Date;\n TypeCode?: string;\n Type?: IPrWorkIntervalTypeEntity;\n}\n\nexport enum PrWorkingPatternDayIntervalEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsEndNextDay = \"IsEndNextDay\",\n IsStartNextDay = \"IsStartNextDay\",\n Order = \"Order\",\n TimeEnd = \"TimeEnd\",\n TimeStart = \"TimeStart\",\n TypeCode = \"TypeCode\",\n Type = \"Type\",\n}\n\nexport interface IPrWorkingPatternTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PrWorkingPatternTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IProductEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ProductEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IProformaInvoiceIssuedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n CalculateVat?: boolean;\n DateDue?: Date;\n DateIssued?: Date;\n DatePaymentReceived?: Date;\n DateProcessed?: Date;\n DateTaxableSupply?: Date;\n IsTaxDocument?: boolean;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum ProformaInvoiceIssuedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n CalculateVat = \"CalculateVat\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DatePaymentReceived = \"DatePaymentReceived\",\n DateProcessed = \"DateProcessed\",\n DateTaxableSupply = \"DateTaxableSupply\",\n IsTaxDocument = \"IsTaxDocument\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IProformaInvoiceReceivedEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n ClearedStatusCode?: string;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaDocument?: Date;\n DateClearing?: Date;\n DateDocumentVatStatement?: Date;\n DateVatDeduction?: Date;\n DocumentSourceName?: string;\n DocumentSourceTypeCode?: string;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n DocumentVatStatementStatusCode?: string;\n ExchangeRatePerUnit?: number;\n Note?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n PostedStatusCode?: string;\n RemittanceInformation?: string;\n SymbolConstant?: string;\n SymbolSpecific?: string;\n SymbolVariable?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n ExchangeRatePerUnitDateVatDeduction?: number;\n SourceSystemDocumentId?: number;\n DateSourceSystemDocumentLastModified?: Date;\n InvoiceServiceIntegrationId?: number;\n AccountAssignmentSelection?: IDocumentAccountAssignmentSelectionEntity;\n BankAccount?: IDocumentBankAccountEntity;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n CbaCategory?: IDocumentCbaCategoryEntity;\n ClearedStatus?: IClearedStatusEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n DocumentSourceType?: IDocumentSourceTypeEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n DocumentVatStatementStatus?: IVatStatementStatusEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n NumberRange?: INumberRangeEntity;\n PostedStatus?: IPostedStatusEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatClassificationSelection?: IDocumentVatClassificationSelectionEntity;\n VatControlStatementStatus?: IVatStatementStatusEntity;\n VatStatementStatus?: IVatStatementStatusEntity;\n VatViesStatementStatus?: IVatStatementStatusEntity;\n Attachments?: IDocumentAttachmentEntity[];\n DocumentItems?: IDocumentItemViewEntity[];\n DocumentLinks?: IDocumentLinkEntity[];\n Labels?: IDocumentLabelEntity[];\n Locks?: IDocumentLockEntity[];\n OppositeDocumentLinks?: IOppositeDocumentDocumentLinkEntity[];\n Payments?: IOppositePaymentDocumentDocumentLinkEntity[];\n ClearingDocumentLinks?: IClearingDocumentLinkEntity[];\n CorrectiveDocumentDrafts?: IDocumentDraftEntity[];\n DeferredPlans?: IDeferredPlanEntity[];\n ElectronicSubmissions?: IElectronicSubmissionEntity[];\n BankPaymentOrderStateCode?: string;\n CalculateVat?: boolean;\n DateBankApiPaymentOrder?: Date;\n DateDue?: Date;\n DateIssued?: Date;\n DateProcessed?: Date;\n DateReceived?: Date;\n DateTaxableSupply?: Date;\n IsTaxDocument?: boolean;\n PaymentMethodCode?: string;\n SymbolMatching?: string;\n TextBeforeItems?: string;\n TransactionAmountToPay?: number;\n TransactionAmountToReceive?: number;\n BankPaymentOrderState?: IBankPaymentOrderStateEntity;\n CashBox?: ICashBoxEntity;\n PaymentMethod?: IPaymentMethodEntity;\n Items?: IRegularDocumentItemEntity[];\n}\n\nexport enum ProformaInvoiceReceivedEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n ClearedStatusCode = \"ClearedStatusCode\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaDocument = \"DateCbaDocument\",\n DateClearing = \"DateClearing\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DateVatDeduction = \"DateVatDeduction\",\n DocumentSourceName = \"DocumentSourceName\",\n DocumentSourceTypeCode = \"DocumentSourceTypeCode\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n DocumentVatStatementStatusCode = \"DocumentVatStatementStatusCode\",\n ExchangeRatePerUnit = \"ExchangeRatePerUnit\",\n Note = \"Note\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n PostedStatusCode = \"PostedStatusCode\",\n RemittanceInformation = \"RemittanceInformation\",\n SymbolConstant = \"SymbolConstant\",\n SymbolSpecific = \"SymbolSpecific\",\n SymbolVariable = \"SymbolVariable\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n ExchangeRatePerUnitDateVatDeduction = \"ExchangeRatePerUnitDateVatDeduction\",\n SourceSystemDocumentId = \"SourceSystemDocumentId\",\n DateSourceSystemDocumentLastModified = \"DateSourceSystemDocumentLastModified\",\n InvoiceServiceIntegrationId = \"InvoiceServiceIntegrationId\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n BankAccount = \"BankAccount\",\n BusinessPartner = \"BusinessPartner\",\n CbaCategory = \"CbaCategory\",\n ClearedStatus = \"ClearedStatus\",\n Company = \"Company\",\n Currency = \"Currency\",\n DocumentDraft = \"DocumentDraft\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatStatementStatus = \"DocumentVatStatementStatus\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n NumberRange = \"NumberRange\",\n PostedStatus = \"PostedStatus\",\n TransactionCurrency = \"TransactionCurrency\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n Attachments = \"Attachments\",\n DocumentItems = \"DocumentItems\",\n DocumentLinks = \"DocumentLinks\",\n Labels = \"Labels\",\n Locks = \"Locks\",\n OppositeDocumentLinks = \"OppositeDocumentLinks\",\n Payments = \"Payments\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n CorrectiveDocumentDrafts = \"CorrectiveDocumentDrafts\",\n DeferredPlans = \"DeferredPlans\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n BankPaymentOrderStateCode = \"BankPaymentOrderStateCode\",\n CalculateVat = \"CalculateVat\",\n DateBankApiPaymentOrder = \"DateBankApiPaymentOrder\",\n DateDue = \"DateDue\",\n DateIssued = \"DateIssued\",\n DateProcessed = \"DateProcessed\",\n DateReceived = \"DateReceived\",\n DateTaxableSupply = \"DateTaxableSupply\",\n IsTaxDocument = \"IsTaxDocument\",\n PaymentMethodCode = \"PaymentMethodCode\",\n SymbolMatching = \"SymbolMatching\",\n TextBeforeItems = \"TextBeforeItems\",\n TransactionAmountToPay = \"TransactionAmountToPay\",\n TransactionAmountToReceive = \"TransactionAmountToReceive\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n CashBox = \"CashBox\",\n PaymentMethod = \"PaymentMethod\",\n Items = \"Items\",\n}\n\nexport interface IPurchaseStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum PurchaseStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IReceivableAdjustmentGroupEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum ReceivableAdjustmentGroupEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IReceivableAdjustmentTypeEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n Explanation?: string;\n GroupCode?: string;\n Name?: string;\n Country?: ICountryEntity;\n Group?: IReceivableAdjustmentGroupEntity;\n}\n\nexport enum ReceivableAdjustmentTypeEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n Explanation = \"Explanation\",\n GroupCode = \"GroupCode\",\n Name = \"Name\",\n Country = \"Country\",\n Group = \"Group\",\n}\n\nexport interface IRecurrentPaymentStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RecurrentPaymentStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRecurringTaskEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateEnd?: Date;\n DateNextExecution?: Date;\n DateStart?: Date;\n DoesExecuteEveryWeekDay?: boolean;\n ExecuteEverySpecificDayOfWeekCode?: string;\n ExecuteInMonthCode?: string;\n IntervalCode?: string;\n Name?: string;\n PeriodCode?: string;\n StateCode?: string;\n TypeCode?: string;\n ExecuteEveryNth?: number;\n ExecuteEveryNthDayOfMonth?: number;\n Company?: ICompanyEntity;\n DocumentDraft?: IDocumentDraftEntity;\n ExecuteEverySpecificDayOfWeek?: IDayOfWeekEntity;\n ExecuteInMonth?: IMonthOfYearEntity;\n Interval?: IRecurringTaskIntervalEntity;\n Period?: IRecurringTaskPeriodEntity;\n State?: IRecurringTaskStateEntity;\n Type?: IRecurringTaskTypeEntity;\n Executions?: IRecurringTaskExecutionEntity[];\n}\n\nexport enum RecurringTaskEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateEnd = \"DateEnd\",\n DateNextExecution = \"DateNextExecution\",\n DateStart = \"DateStart\",\n DoesExecuteEveryWeekDay = \"DoesExecuteEveryWeekDay\",\n ExecuteEverySpecificDayOfWeekCode = \"ExecuteEverySpecificDayOfWeekCode\",\n ExecuteInMonthCode = \"ExecuteInMonthCode\",\n IntervalCode = \"IntervalCode\",\n Name = \"Name\",\n PeriodCode = \"PeriodCode\",\n StateCode = \"StateCode\",\n TypeCode = \"TypeCode\",\n ExecuteEveryNth = \"ExecuteEveryNth\",\n ExecuteEveryNthDayOfMonth = \"ExecuteEveryNthDayOfMonth\",\n Company = \"Company\",\n DocumentDraft = \"DocumentDraft\",\n ExecuteEverySpecificDayOfWeek = \"ExecuteEverySpecificDayOfWeek\",\n ExecuteInMonth = \"ExecuteInMonth\",\n Interval = \"Interval\",\n Period = \"Period\",\n State = \"State\",\n Type = \"Type\",\n Executions = \"Executions\",\n}\n\nexport interface IRecurringTaskExecutionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ErrorMessage?: string;\n GeneratedDocument?: IDocumentEntity;\n GeneratedDocumentDraft?: IDocumentDraftEntity;\n}\n\nexport enum RecurringTaskExecutionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ErrorMessage = \"ErrorMessage\",\n GeneratedDocument = \"GeneratedDocument\",\n GeneratedDocumentDraft = \"GeneratedDocumentDraft\",\n}\n\nexport interface IRecurringTaskIntervalEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n Number?: number;\n}\n\nexport enum RecurringTaskIntervalEntity {\n Code = \"Code\",\n Name = \"Name\",\n Number = \"Number\",\n}\n\nexport interface IRecurringTaskPeriodEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RecurringTaskPeriodEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRecurringTaskStateEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RecurringTaskStateEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRecurringTaskTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RecurringTaskTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRegularDocumentItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n AmountNet?: number;\n AmountVat?: number;\n Description?: string;\n Note?: string;\n Order?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n VatCode?: string;\n AccountAssignmentSelection?: IDocumentItemAccountAssignmentSelectionEntity;\n CbaCategory?: IDocumentItemCbaCategoryEntity;\n DocumentItemDraft?: IDocumentItemDraftEntity;\n LabelSelection?: ILabelSelectionEntity;\n Vat?: IVatEntity;\n VatClassificationSelection?: IDocumentItemVatClassificationSelectionEntity;\n Quantity?: number;\n TransactionUnitPrice?: number;\n TransactionUnitPriceNet?: number;\n TransactionUnitPriceVat?: number;\n UnitOfMeasureCode?: string;\n UnitPrice?: number;\n UnitPriceNet?: number;\n UnitPriceVat?: number;\n DiscountPercent?: number;\n Discount?: number;\n UnitOfMeasure?: IUnitOfMeasureEntity;\n}\n\nexport enum RegularDocumentItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n AmountNet = \"AmountNet\",\n AmountVat = \"AmountVat\",\n Description = \"Description\",\n Note = \"Note\",\n Order = \"Order\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountNet = \"TransactionAmountNet\",\n TransactionAmountVat = \"TransactionAmountVat\",\n VatCode = \"VatCode\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n CbaCategory = \"CbaCategory\",\n DocumentItemDraft = \"DocumentItemDraft\",\n LabelSelection = \"LabelSelection\",\n Vat = \"Vat\",\n VatClassificationSelection = \"VatClassificationSelection\",\n Quantity = \"Quantity\",\n TransactionUnitPrice = \"TransactionUnitPrice\",\n TransactionUnitPriceNet = \"TransactionUnitPriceNet\",\n TransactionUnitPriceVat = \"TransactionUnitPriceVat\",\n UnitOfMeasureCode = \"UnitOfMeasureCode\",\n UnitPrice = \"UnitPrice\",\n UnitPriceNet = \"UnitPriceNet\",\n UnitPriceVat = \"UnitPriceVat\",\n DiscountPercent = \"DiscountPercent\",\n Discount = \"Discount\",\n UnitOfMeasure = \"UnitOfMeasure\",\n}\n\nexport interface IReportSectionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n ReportTypeCode?: string;\n ReportType?: IReportTypeEntity;\n}\n\nexport enum ReportSectionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n ReportTypeCode = \"ReportTypeCode\",\n ReportType = \"ReportType\",\n}\n\nexport interface IReportTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum ReportTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRequiredAccountEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountNumber?: string;\n ReceivableAdjustmentGroupCode?: string;\n RequiredAccountTypeCode?: string;\n VatRate?: number;\n ReceivableAdjustmentGroup?: IReceivableAdjustmentGroupEntity;\n RequiredAccountType?: IRequiredAccountTypeEntity;\n}\n\nexport enum RequiredAccountEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountNumber = \"AccountNumber\",\n ReceivableAdjustmentGroupCode = \"ReceivableAdjustmentGroupCode\",\n RequiredAccountTypeCode = \"RequiredAccountTypeCode\",\n VatRate = \"VatRate\",\n ReceivableAdjustmentGroup = \"ReceivableAdjustmentGroup\",\n RequiredAccountType = \"RequiredAccountType\",\n}\n\nexport interface IRequiredAccountTemplateEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccountNumber?: string;\n ReceivableAdjustmentGroupCode?: string;\n RequiredAccountTypeCode?: string;\n VatRate?: number;\n ReceivableAdjustmentGroup?: IReceivableAdjustmentGroupEntity;\n RequiredAccountType?: IRequiredAccountTypeEntity;\n}\n\nexport enum RequiredAccountTemplateEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccountNumber = \"AccountNumber\",\n ReceivableAdjustmentGroupCode = \"ReceivableAdjustmentGroupCode\",\n RequiredAccountTypeCode = \"RequiredAccountTypeCode\",\n VatRate = \"VatRate\",\n ReceivableAdjustmentGroup = \"ReceivableAdjustmentGroup\",\n RequiredAccountType = \"RequiredAccountType\",\n}\n\nexport interface IRequiredAccountTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RequiredAccountTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IRossumJobEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n FileMetadataId?: number;\n NumberOfPages?: number;\n RossumAnnotationId?: string;\n RossumDocumentId?: string;\n RossumStatusCode?: string;\n BackgroundJob?: IBackgroundJobEntity;\n RossumStatus?: IRossumJobStatusEntity;\n}\n\nexport enum RossumJobEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n FileMetadataId = \"FileMetadataId\",\n NumberOfPages = \"NumberOfPages\",\n RossumAnnotationId = \"RossumAnnotationId\",\n RossumDocumentId = \"RossumDocumentId\",\n RossumStatusCode = \"RossumStatusCode\",\n BackgroundJob = \"BackgroundJob\",\n RossumStatus = \"RossumStatus\",\n}\n\nexport interface IRossumJobStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum RossumJobStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ISelectionEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum SelectionEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ISignatoryPersonEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum SignatoryPersonEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ISingleJournalEntryEntity extends IEntityBase {\n NotId?: number;\n Amount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n Description?: string;\n DocumentTypeCode?: string;\n IsBalancing?: boolean;\n IsClosing?: boolean;\n IsOpening?: boolean;\n JournalEntryId?: number;\n JournalEntryTypeCode?: string;\n TransactionAmount?: number;\n TransactionCurrencyCode?: string;\n Account?: IAccountEntity;\n Company?: ICompanyEntity;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n DocumentType?: IDocumentTypeEntity;\n FiscalPeriod?: IFiscalPeriodEntity;\n FiscalYear?: IFiscalYearEntity;\n JournalEntryType?: IJournalEntryTypeEntity;\n PairAccount?: IAccountEntity;\n PaymentDocument?: IPaymentDocumentEntity;\n PaymentDocumentItem?: IPaymentDocumentItemEntity;\n TransactionCurrency?: ICurrencyEntity;\n}\n\nexport enum SingleJournalEntryEntity {\n NotId = \"NotId\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n Description = \"Description\",\n DocumentTypeCode = \"DocumentTypeCode\",\n IsBalancing = \"IsBalancing\",\n IsClosing = \"IsClosing\",\n IsOpening = \"IsOpening\",\n JournalEntryId = \"JournalEntryId\",\n JournalEntryTypeCode = \"JournalEntryTypeCode\",\n TransactionAmount = \"TransactionAmount\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n Account = \"Account\",\n Company = \"Company\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n DocumentType = \"DocumentType\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalYear = \"FiscalYear\",\n JournalEntryType = \"JournalEntryType\",\n PairAccount = \"PairAccount\",\n PaymentDocument = \"PaymentDocument\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n TransactionCurrency = \"TransactionCurrency\",\n}\n\nexport interface ISplitAccountAssignmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Amount?: number;\n Description?: string;\n TransactionAmount?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum SplitAccountAssignmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Amount = \"Amount\",\n Description = \"Description\",\n TransactionAmount = \"TransactionAmount\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface ISplitAccountAssignmentDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n Amount?: number;\n TransactionAmount?: number;\n ChartOfAccounts?: IChartOfAccountsEntity;\n CreditAccount?: IAccountEntity;\n DebitAccount?: IAccountEntity;\n}\n\nexport enum SplitAccountAssignmentDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n ChartOfAccounts = \"ChartOfAccounts\",\n CreditAccount = \"CreditAccount\",\n DebitAccount = \"DebitAccount\",\n}\n\nexport interface ISubscriptionStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum SubscriptionStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ISubscriptionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum SubscriptionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ITaxApplicabilityEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TaxApplicabilityEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ITaxCalendarEntity extends IEntityBase {\n Id?: number;\n CountryCode?: string;\n Date?: Date;\n Description?: string;\n TaxTypeCode?: string;\n Country?: ICountryEntity;\n TaxType?: ITaxCalendarTaxTypeEntity;\n}\n\nexport enum TaxCalendarEntity {\n Id = \"Id\",\n CountryCode = \"CountryCode\",\n Date = \"Date\",\n Description = \"Description\",\n TaxTypeCode = \"TaxTypeCode\",\n Country = \"Country\",\n TaxType = \"TaxType\",\n}\n\nexport interface ITaxCalendarTaxTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TaxCalendarTaxTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ITaxDepreciationCategoryEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n ReportName?: string;\n YearsOfDepreciation?: number;\n Country?: ICountryEntity;\n DepreciationCoefficients?: ITaxDepreciationCoefficientEntity[];\n}\n\nexport enum TaxDepreciationCategoryEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n ReportName = \"ReportName\",\n YearsOfDepreciation = \"YearsOfDepreciation\",\n Country = \"Country\",\n DepreciationCoefficients = \"DepreciationCoefficients\",\n}\n\nexport interface ITaxDepreciationCoefficientEntity extends IEntityBase {\n Code?: string;\n CanBeImproved?: boolean;\n CanBeInterrupted?: boolean;\n DepreciationTypeCode?: string;\n FirstYearRate?: number;\n IncreasedValueRate?: number;\n IsMonthly?: boolean;\n Name?: string;\n NextYearsRate?: number;\n TaxDepreciationCategoryCode?: string;\n FirstYearValueIncrease?: number;\n DepreciationType?: IDepreciationTypeEntity;\n TaxDepreciationCategory?: ITaxDepreciationCategoryEntity;\n}\n\nexport enum TaxDepreciationCoefficientEntity {\n Code = \"Code\",\n CanBeImproved = \"CanBeImproved\",\n CanBeInterrupted = \"CanBeInterrupted\",\n DepreciationTypeCode = \"DepreciationTypeCode\",\n FirstYearRate = \"FirstYearRate\",\n IncreasedValueRate = \"IncreasedValueRate\",\n IsMonthly = \"IsMonthly\",\n Name = \"Name\",\n NextYearsRate = \"NextYearsRate\",\n TaxDepreciationCategoryCode = \"TaxDepreciationCategoryCode\",\n FirstYearValueIncrease = \"FirstYearValueIncrease\",\n DepreciationType = \"DepreciationType\",\n TaxDepreciationCategory = \"TaxDepreciationCategory\",\n}\n\nexport interface ITaxDepreciationPolicyEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CurrencyCode?: string;\n DateFirstDepreciation?: Date;\n DateLastDepreciation?: Date;\n DateRequestedLastDepreciation?: Date;\n Currency?: ICurrencyEntity;\n CoefficientCode?: string;\n ReductionRate?: number;\n TaxPriceLimitCode?: string;\n Coefficient?: ITaxDepreciationCoefficientEntity;\n TaxPriceLimit?: ITaxPriceLimitEntity;\n DepreciationSettings?: IDepreciationSettingEntity[];\n Items?: ITaxDepreciationPolicyItemEntity[];\n}\n\nexport enum TaxDepreciationPolicyEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CurrencyCode = \"CurrencyCode\",\n DateFirstDepreciation = \"DateFirstDepreciation\",\n DateLastDepreciation = \"DateLastDepreciation\",\n DateRequestedLastDepreciation = \"DateRequestedLastDepreciation\",\n Currency = \"Currency\",\n CoefficientCode = \"CoefficientCode\",\n ReductionRate = \"ReductionRate\",\n TaxPriceLimitCode = \"TaxPriceLimitCode\",\n Coefficient = \"Coefficient\",\n TaxPriceLimit = \"TaxPriceLimit\",\n DepreciationSettings = \"DepreciationSettings\",\n Items = \"Items\",\n}\n\nexport interface ITaxDepreciationPolicyItemEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccumulatedDepreciation?: number;\n CalculatedExpense?: number;\n CurrencyCode?: string;\n DateDepreciation?: Date;\n EndValue?: number;\n Order?: number;\n Currency?: ICurrencyEntity;\n AccumulatedDepreciationExpense?: number;\n AccumulatedLimitedDepreciation?: number;\n DateCalculatedFor?: Date;\n DepreciationExpense?: number;\n IsDisposedDepreciation?: boolean;\n IsForReportOnly?: boolean;\n IsWholeYear?: boolean;\n LimitedExpense?: number;\n ReductionRate?: number;\n TaxPriceLimitCode?: string;\n PartialExpense?: number;\n TaxPriceLimit?: ITaxPriceLimitEntity;\n}\n\nexport enum TaxDepreciationPolicyItemEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccumulatedDepreciation = \"AccumulatedDepreciation\",\n CalculatedExpense = \"CalculatedExpense\",\n CurrencyCode = \"CurrencyCode\",\n DateDepreciation = \"DateDepreciation\",\n EndValue = \"EndValue\",\n Order = \"Order\",\n Currency = \"Currency\",\n AccumulatedDepreciationExpense = \"AccumulatedDepreciationExpense\",\n AccumulatedLimitedDepreciation = \"AccumulatedLimitedDepreciation\",\n DateCalculatedFor = \"DateCalculatedFor\",\n DepreciationExpense = \"DepreciationExpense\",\n IsDisposedDepreciation = \"IsDisposedDepreciation\",\n IsForReportOnly = \"IsForReportOnly\",\n IsWholeYear = \"IsWholeYear\",\n LimitedExpense = \"LimitedExpense\",\n ReductionRate = \"ReductionRate\",\n TaxPriceLimitCode = \"TaxPriceLimitCode\",\n PartialExpense = \"PartialExpense\",\n TaxPriceLimit = \"TaxPriceLimit\",\n}\n\nexport interface ITaxPriceLimitEntity extends IEntityBase {\n Code?: string;\n AssetPrice?: number;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n ShortName?: string;\n TaxDepreciationCategoryCode?: string;\n Country?: ICountryEntity;\n TaxDepreciationCategory?: ITaxDepreciationCategoryEntity;\n}\n\nexport enum TaxPriceLimitEntity {\n Code = \"Code\",\n AssetPrice = \"AssetPrice\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n ShortName = \"ShortName\",\n TaxDepreciationCategoryCode = \"TaxDepreciationCategoryCode\",\n Country = \"Country\",\n TaxDepreciationCategory = \"TaxDepreciationCategory\",\n}\n\nexport interface ITaxStatementSignatoryPersonEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateOfBirth?: Date;\n FirstName?: string;\n LastName?: string;\n LegalNumber?: string;\n LegalPersonName?: string;\n PersonTypeCode?: string;\n RelationshipToTaxSubject?: string;\n SignatoryPersonCode?: string;\n TaxAdvisorRegistrationNumber?: string;\n TaxStatementSubmitterCode?: string;\n PersonType?: ITypeOfBusinessEntity;\n SignatoryPerson?: ISignatoryPersonEntity;\n TaxStatementSubmitter?: ITaxStatementSubmitterEntity;\n}\n\nexport enum TaxStatementSignatoryPersonEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateOfBirth = \"DateOfBirth\",\n FirstName = \"FirstName\",\n LastName = \"LastName\",\n LegalNumber = \"LegalNumber\",\n LegalPersonName = \"LegalPersonName\",\n PersonTypeCode = \"PersonTypeCode\",\n RelationshipToTaxSubject = \"RelationshipToTaxSubject\",\n SignatoryPersonCode = \"SignatoryPersonCode\",\n TaxAdvisorRegistrationNumber = \"TaxAdvisorRegistrationNumber\",\n TaxStatementSubmitterCode = \"TaxStatementSubmitterCode\",\n PersonType = \"PersonType\",\n SignatoryPerson = \"SignatoryPerson\",\n TaxStatementSubmitter = \"TaxStatementSubmitter\",\n}\n\nexport interface ITaxStatementSubmitterEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TaxStatementSubmitterEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ITemporalEntityEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n}\n\nexport enum TemporalEntityEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n}\n\nexport interface ITicketEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Number?: string;\n TicketStatusCode?: string;\n Title?: string;\n TicketStatus?: ITicketStatusEntity;\n Messages?: ITicketMessageEntity[];\n}\n\nexport enum TicketEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Number = \"Number\",\n TicketStatusCode = \"TicketStatusCode\",\n Title = \"Title\",\n TicketStatus = \"TicketStatus\",\n Messages = \"Messages\",\n}\n\nexport interface ITicketMessageEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsReadByTicketAssignee?: boolean;\n IsReadByTicketAuthor?: boolean;\n Text?: string;\n Attachments?: ITicketMessageAttachmentEntity[];\n}\n\nexport enum TicketMessageEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsReadByTicketAssignee = \"IsReadByTicketAssignee\",\n IsReadByTicketAuthor = \"IsReadByTicketAuthor\",\n Text = \"Text\",\n Attachments = \"Attachments\",\n}\n\nexport interface ITicketMessageAttachmentEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Description?: string;\n File?: IFileMetadataEntity;\n}\n\nexport enum TicketMessageAttachmentEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Description = \"Description\",\n File = \"File\",\n}\n\nexport interface ITicketStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TicketStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface ITimeFormatEntity extends IEntityBase {\n Code?: string;\n Format?: string;\n Name?: string;\n}\n\nexport enum TimeFormatEntity {\n Code = \"Code\",\n Format = \"Format\",\n Name = \"Name\",\n}\n\nexport interface ITimeZoneEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TimeZoneEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IPropertyTranslationEntity extends IEntityBase {\n Language?: string;\n Namespace?: string;\n EntityType?: string;\n Property?: string;\n Translation?: string;\n}\n\nexport enum PropertyTranslationEntity {\n Language = \"Language\",\n Namespace = \"Namespace\",\n EntityType = \"EntityType\",\n Property = \"Property\",\n Translation = \"Translation\",\n}\n\nexport interface ITrustedSenderEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Email?: string;\n}\n\nexport enum TrustedSenderEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Email = \"Email\",\n}\n\nexport interface ITypeOfBusinessEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum TypeOfBusinessEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IUndirectedDocumentLinkEntity extends IEntityBase {\n Id?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaPayment?: Date;\n PairedDocumentIsTaxDocument?: boolean;\n TransactionCurrencyCode?: string;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n PairedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum UndirectedDocumentLinkEntity {\n Id = \"Id\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaPayment = \"DateCbaPayment\",\n PairedDocumentIsTaxDocument = \"PairedDocumentIsTaxDocument\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n Currency = \"Currency\",\n Document = \"Document\",\n PairedDocument = \"PairedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n Type = \"Type\",\n}\n\nexport interface IUndirectedPaymentDocumentLinkEntity extends IEntityBase {\n Id?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCbaPayment?: Date;\n PairedDocumentIsTaxDocument?: boolean;\n TransactionCurrencyCode?: string;\n TypeCode?: string;\n Amount?: number;\n TransactionAmount?: number;\n Currency?: ICurrencyEntity;\n Document?: IPaymentDocumentEntity;\n PairedDocument?: IDocumentEntity;\n TransactionCurrency?: ICurrencyEntity;\n Type?: IDocumentLinkTypeEntity;\n}\n\nexport enum UndirectedPaymentDocumentLinkEntity {\n Id = \"Id\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCbaPayment = \"DateCbaPayment\",\n PairedDocumentIsTaxDocument = \"PairedDocumentIsTaxDocument\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n TypeCode = \"TypeCode\",\n Amount = \"Amount\",\n TransactionAmount = \"TransactionAmount\",\n Currency = \"Currency\",\n Document = \"Document\",\n PairedDocument = \"PairedDocument\",\n TransactionCurrency = \"TransactionCurrency\",\n Type = \"Type\",\n}\n\nexport interface IUnitOfMeasureEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n ShortName?: string;\n}\n\nexport enum UnitOfMeasureEntity {\n Code = \"Code\",\n Name = \"Name\",\n ShortName = \"ShortName\",\n}\n\nexport interface IUnorganizedAssetEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n AssetTypeCode?: string;\n CurrencyCode?: string;\n EntryDate?: Date;\n AssetType?: IAssetTypeEntity;\n Currency?: ICurrencyEntity;\n Document?: IDocumentEntity;\n DocumentItem?: IDocumentItemEntity;\n Labels?: IDocumentItemLabelEntity[];\n}\n\nexport enum UnorganizedAssetEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n AssetTypeCode = \"AssetTypeCode\",\n CurrencyCode = \"CurrencyCode\",\n EntryDate = \"EntryDate\",\n AssetType = \"AssetType\",\n Currency = \"Currency\",\n Document = \"Document\",\n DocumentItem = \"DocumentItem\",\n Labels = \"Labels\",\n}\n\nexport interface IUserEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n ColourThemeCode?: string;\n CustomerSupportPin?: string;\n DateFormatCode?: string;\n Email?: string;\n FirstName?: string;\n LanguageCode?: string;\n LastName?: string;\n Name?: string;\n PhoneNumber?: string;\n StatusCode?: string;\n TimeFormatCode?: string;\n TimeZoneCode?: string;\n CustomerSupportGuid?: string;\n CompanyRoles?: IUserCompanyRoleEntity[];\n ColourTheme?: IColourThemeEntity;\n DateFormat?: IDateFormatEntity;\n Language?: ILanguageEntity;\n NotificationSetting?: INotificationSettingEntity;\n Status?: IUserStatusEntity;\n TimeFormat?: ITimeFormatEntity;\n TimeZone?: ITimeZoneEntity;\n GeneralRoles?: IUserGeneralRoleEntity[];\n}\n\nexport enum UserEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n ColourThemeCode = \"ColourThemeCode\",\n CustomerSupportPin = \"CustomerSupportPin\",\n DateFormatCode = \"DateFormatCode\",\n Email = \"Email\",\n FirstName = \"FirstName\",\n LanguageCode = \"LanguageCode\",\n LastName = \"LastName\",\n Name = \"Name\",\n PhoneNumber = \"PhoneNumber\",\n StatusCode = \"StatusCode\",\n TimeFormatCode = \"TimeFormatCode\",\n TimeZoneCode = \"TimeZoneCode\",\n CustomerSupportGuid = \"CustomerSupportGuid\",\n CompanyRoles = \"CompanyRoles\",\n ColourTheme = \"ColourTheme\",\n DateFormat = \"DateFormat\",\n Language = \"Language\",\n NotificationSetting = \"NotificationSetting\",\n Status = \"Status\",\n TimeFormat = \"TimeFormat\",\n TimeZone = \"TimeZone\",\n GeneralRoles = \"GeneralRoles\",\n}\n\nexport interface IUserCompanyRoleEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n Company?: ICompanyEntity;\n CompanyRole?: ICompanyRoleEntity;\n}\n\nexport enum UserCompanyRoleEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n Company = \"Company\",\n CompanyRole = \"CompanyRole\",\n}\n\nexport interface IUserGeneralRoleEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n GeneralRole?: IGeneralRoleEntity;\n}\n\nexport enum UserGeneralRoleEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n GeneralRole = \"GeneralRole\",\n}\n\nexport interface IUserNotificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n IsRead?: boolean;\n Notification?: INotificationEntity;\n User?: IUserEntity;\n}\n\nexport enum UserNotificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n IsRead = \"IsRead\",\n Notification = \"Notification\",\n User = \"User\",\n}\n\nexport interface IUserStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum UserStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVariantEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n AccessTypeCode?: string;\n AccountingCode?: string;\n DefaultValues?: string;\n EntityTypeCode?: string;\n Name?: string;\n VariantData?: string;\n VariantTypeCode?: string;\n VatStatusCode?: string;\n ViewId?: string;\n AccessType?: IVariantAccessTypeEntity;\n Accounting?: IAccountingEntity;\n EntityType?: IEntityTypeEntity;\n Owner?: IUserEntity;\n VariantType?: IVariantTypeEntity;\n VatStatus?: IVatStatusEntity;\n}\n\nexport enum VariantEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n AccessTypeCode = \"AccessTypeCode\",\n AccountingCode = \"AccountingCode\",\n DefaultValues = \"DefaultValues\",\n EntityTypeCode = \"EntityTypeCode\",\n Name = \"Name\",\n VariantData = \"VariantData\",\n VariantTypeCode = \"VariantTypeCode\",\n VatStatusCode = \"VatStatusCode\",\n ViewId = \"ViewId\",\n AccessType = \"AccessType\",\n Accounting = \"Accounting\",\n EntityType = \"EntityType\",\n Owner = \"Owner\",\n VariantType = \"VariantType\",\n VatStatus = \"VatStatus\",\n}\n\nexport interface IVariantAccessTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VariantAccessTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVariantTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VariantTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Rate?: number;\n RateName?: string;\n VatRateTypeCode?: string;\n Country?: ICountryEntity;\n VatRateType?: IVatRateTypeEntity;\n}\n\nexport enum VatEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Rate = \"Rate\",\n RateName = \"RateName\",\n VatRateTypeCode = \"VatRateTypeCode\",\n Country = \"Country\",\n VatRateType = \"VatRateType\",\n}\n\nexport interface IVatClassificationEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n CountryClassificationCode?: string;\n IsInAutomatedVatInclusionMode?: boolean;\n IsVatRegistered?: boolean;\n Name?: string;\n NonTaxAccountName?: string;\n NonTaxAccountNumber?: string;\n Note?: string;\n PayableReceivableTypeCode?: string;\n VatControlStatementSectionCode?: string;\n VatDeductionTypeCode?: string;\n VatOssCode?: string;\n VatReverseChargeCode?: string;\n VatStatementSectionCode?: string;\n VatViesCode?: string;\n VatProportionalDeduction?: number;\n CountryClassification?: ICountryClassificationEntity;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatementSection?: IVatControlStatementSectionEntity;\n VatDeductionType?: IVatDeductionTypeEntity;\n VatOss?: IVatOssEntity;\n VatReverseCharge?: IVatReverseChargeEntity;\n VatStatementSection?: IVatStatementSectionEntity;\n VatVies?: IVatViesEntity;\n}\n\nexport enum VatClassificationEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n CountryClassificationCode = \"CountryClassificationCode\",\n IsInAutomatedVatInclusionMode = \"IsInAutomatedVatInclusionMode\",\n IsVatRegistered = \"IsVatRegistered\",\n Name = \"Name\",\n NonTaxAccountName = \"NonTaxAccountName\",\n NonTaxAccountNumber = \"NonTaxAccountNumber\",\n Note = \"Note\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n VatControlStatementSectionCode = \"VatControlStatementSectionCode\",\n VatDeductionTypeCode = \"VatDeductionTypeCode\",\n VatOssCode = \"VatOssCode\",\n VatReverseChargeCode = \"VatReverseChargeCode\",\n VatStatementSectionCode = \"VatStatementSectionCode\",\n VatViesCode = \"VatViesCode\",\n VatProportionalDeduction = \"VatProportionalDeduction\",\n CountryClassification = \"CountryClassification\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatementSection = \"VatStatementSection\",\n VatVies = \"VatVies\",\n}\n\nexport interface IVatClassificationSelectionEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n}\n\nexport enum VatClassificationSelectionEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n}\n\nexport interface IVatClassificationSelectionDraftEntity extends IEntityBase {\n Id?: number;\n DateCreated?: Date;\n DateLastModified?: Date;\n TemporaryGuid?: string;\n CreatedBy?: IUserEntity;\n LastModifiedBy?: IUserEntity;\n SelectionCode?: string;\n Selection?: ISelectionEntity;\n}\n\nexport enum VatClassificationSelectionDraftEntity {\n Id = \"Id\",\n DateCreated = \"DateCreated\",\n DateLastModified = \"DateLastModified\",\n TemporaryGuid = \"TemporaryGuid\",\n CreatedBy = \"CreatedBy\",\n LastModifiedBy = \"LastModifiedBy\",\n SelectionCode = \"SelectionCode\",\n Selection = \"Selection\",\n}\n\nexport interface IVatControlStatementEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum VatControlStatementEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IVatControlStatementSectionEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n PayableReceivableTypeCode?: string;\n SecondaryStatementSection?: string;\n StatementSection?: string;\n VatControlStatementCode?: string;\n PayableReceivableType?: IPayableReceivableTypeEntity;\n VatControlStatement?: IVatControlStatementEntity;\n}\n\nexport enum VatControlStatementSectionEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n PayableReceivableTypeCode = \"PayableReceivableTypeCode\",\n SecondaryStatementSection = \"SecondaryStatementSection\",\n StatementSection = \"StatementSection\",\n VatControlStatementCode = \"VatControlStatementCode\",\n PayableReceivableType = \"PayableReceivableType\",\n VatControlStatement = \"VatControlStatement\",\n}\n\nexport interface IVatDeductionTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatDeductionTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatOssEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatOssEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatRateTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatRateTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatReverseChargeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatReverseChargeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatStatementEntity extends IEntityBase {\n Code?: string;\n CountryCode?: string;\n DateValidFrom?: Date;\n DateValidTo?: Date;\n Name?: string;\n Country?: ICountryEntity;\n}\n\nexport enum VatStatementEntity {\n Code = \"Code\",\n CountryCode = \"CountryCode\",\n DateValidFrom = \"DateValidFrom\",\n DateValidTo = \"DateValidTo\",\n Name = \"Name\",\n Country = \"Country\",\n}\n\nexport interface IVatStatementDocumentEntity extends IEntityBase {\n Id?: number;\n Amount?: number;\n CurrencyCode?: string;\n DateAccountingTransaction?: Date;\n DateCreated?: Date;\n DateDocumentVatStatement?: Date;\n DocumentStatusCode?: string;\n DocumentTypeCode?: string;\n NumberOurs?: string;\n NumberTheirs?: string;\n TransactionAmount?: number;\n TransactionAmountDue?: number;\n TransactionCurrencyCode?: string;\n VatControlStatementStatusCode?: string;\n VatStatementStatusCode?: string;\n VatViesStatementStatusCode?: string;\n BusinessPartner?: IDocumentBusinessPartnerEntity;\n Company?: ICompanyEntity;\n CreatedBy?: IUserEntity;\n Currency?: ICurrencyEntity;\n DocumentStatus?: IDocumentStatusEntity;\n DocumentType?: IDocumentTypeEntity;\n TransactionCurrency?: ICurrencyEntity;\n VatControlStatementStatus?: IDocumentStatusEntity;\n VatStatementStatus?: IDocumentStatusEntity;\n VatViesStatementStatus?: IDocumentStatusEntity;\n}\n\nexport enum VatStatementDocumentEntity {\n Id = \"Id\",\n Amount = \"Amount\",\n CurrencyCode = \"CurrencyCode\",\n DateAccountingTransaction = \"DateAccountingTransaction\",\n DateCreated = \"DateCreated\",\n DateDocumentVatStatement = \"DateDocumentVatStatement\",\n DocumentStatusCode = \"DocumentStatusCode\",\n DocumentTypeCode = \"DocumentTypeCode\",\n NumberOurs = \"NumberOurs\",\n NumberTheirs = \"NumberTheirs\",\n TransactionAmount = \"TransactionAmount\",\n TransactionAmountDue = \"TransactionAmountDue\",\n TransactionCurrencyCode = \"TransactionCurrencyCode\",\n VatControlStatementStatusCode = \"VatControlStatementStatusCode\",\n VatStatementStatusCode = \"VatStatementStatusCode\",\n VatViesStatementStatusCode = \"VatViesStatementStatusCode\",\n BusinessPartner = \"BusinessPartner\",\n Company = \"Company\",\n CreatedBy = \"CreatedBy\",\n Currency = \"Currency\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n TransactionCurrency = \"TransactionCurrency\",\n VatControlStatementStatus = \"VatControlStatementStatus\",\n VatStatementStatus = \"VatStatementStatus\",\n VatViesStatementStatus = \"VatViesStatementStatus\",\n}\n\nexport interface IVatStatementFrequencyEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatStatementFrequencyEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatStatementSectionEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n VatStatementCode?: string;\n VatStatementSectionCategoryCode?: string;\n StandardVatRateRow?: number;\n ReducedVatRateRow?: number;\n AdditionalStandardVatRateRow?: number;\n AdditionalReducedVatRateRow?: number;\n VatStatement?: IVatStatementEntity;\n VatStatementSectionCategory?: IVatStatementSectionCategoryEntity;\n}\n\nexport enum VatStatementSectionEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n VatStatementCode = \"VatStatementCode\",\n VatStatementSectionCategoryCode = \"VatStatementSectionCategoryCode\",\n StandardVatRateRow = \"StandardVatRateRow\",\n ReducedVatRateRow = \"ReducedVatRateRow\",\n AdditionalStandardVatRateRow = \"AdditionalStandardVatRateRow\",\n AdditionalReducedVatRateRow = \"AdditionalReducedVatRateRow\",\n VatStatement = \"VatStatement\",\n VatStatementSectionCategory = \"VatStatementSectionCategory\",\n}\n\nexport interface IVatStatementSectionCategoryEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatStatementSectionCategoryEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatStatementStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatStatementStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatStatusEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum VatStatusEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IVatViesEntity extends IEntityBase {\n Code?: string;\n Description?: string;\n Name?: string;\n}\n\nexport enum VatViesEntity {\n Code = \"Code\",\n Description = \"Description\",\n Name = \"Name\",\n}\n\nexport interface IWebSocketMessageTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum WebSocketMessageTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport interface IWriteOffTypeEntity extends IEntityBase {\n Code?: string;\n Name?: string;\n}\n\nexport enum WriteOffTypeEntity {\n Code = \"Code\",\n Name = \"Name\",\n}\n\nexport enum EntityTypeName {\n CentralBillingAddress = \"BillingAddress\",\n CentralBillingContact = \"BillingContact\",\n CentralBillingDiscount = \"BillingDiscount\",\n CentralDatabase = \"Database\",\n CentralEnabledFeature = \"EnabledFeature\",\n CentralInvitation = \"Invitation\",\n CentralInvoice = \"Invoice\",\n CentralInvoiceItem = \"InvoiceItem\",\n CentralSubscription = \"Subscription\",\n CentralTenant = \"Tenant\",\n Account = \"Account\",\n AccountAssignment = \"AccountAssignment\",\n AccountAssignmentDocumentType = \"AccountAssignmentDocumentType\",\n AccountAssignmentDocumentTypeTemplate = \"AccountAssignmentDocumentTypeTemplate\",\n AccountAssignmentSelection = \"AccountAssignmentSelection\",\n AccountAssignmentSelectionDraft = \"AccountAssignmentSelectionDraft\",\n AccountAssignmentTemplate = \"AccountAssignmentTemplate\",\n AccountCategory = \"AccountCategory\",\n AccountRole = \"AccountRole\",\n AccountTemplate = \"AccountTemplate\",\n AccountType = \"AccountType\",\n Accounting = \"Accounting\",\n AccountingDepreciationPolicy = \"AccountingDepreciationPolicy\",\n AccountingDepreciationPolicyItem = \"AccountingDepreciationPolicyItem\",\n AccruedProcessingType = \"AccruedProcessingType\",\n ActionLog = \"ActionLog\",\n ActionType = \"ActionType\",\n Address = \"Address\",\n ApprovalStatusType = \"ApprovalStatusType\",\n Asset = \"Asset\",\n AssetAttachment = \"AssetAttachment\",\n AssetDisposalType = \"AssetDisposalType\",\n AssetItem = \"AssetItem\",\n AssetItemType = \"AssetItemType\",\n AssetLabel = \"AssetLabel\",\n AssetStatus = \"AssetStatus\",\n AssetType = \"AssetType\",\n AssetValue = \"AssetValue\",\n BackgroundJob = \"BackgroundJob\",\n BackgroundJobStatus = \"BackgroundJobStatus\",\n BackgroundJobType = \"BackgroundJobType\",\n BalanceSheetLayout = \"BalanceSheetLayout\",\n BalanceSheetLayoutTemplate = \"BalanceSheetLayoutTemplate\",\n Bank = \"Bank\",\n BankAccount = \"BankAccount\",\n BankAccountBalance = \"BankAccountBalance\",\n BankAccountNumberFormatType = \"BankAccountNumberFormatType\",\n BankApiConnectionSetting = \"BankApiConnectionSetting\",\n BankApiStatementImportFrequency = \"BankApiStatementImportFrequency\",\n BankApiStatementImportRange = \"BankApiStatementImportRange\",\n BankApiStatementImportSetting = \"BankApiStatementImportSetting\",\n BankExchangeRateFreshness = \"BankExchangeRateFreshness\",\n BankPaymentOrderState = \"BankPaymentOrderState\",\n BankStatement = \"BankStatement\",\n BankStatementAttachment = \"BankStatementAttachment\",\n BankStatementAttachmentDraft = \"BankStatementAttachmentDraft\",\n BankStatementCsvSettingsText = \"BankStatementCsvSettingsText\",\n BankStatementDraft = \"BankStatementDraft\",\n BankStatementLock = \"BankStatementLock\",\n BankTransaction = \"BankTransaction\",\n BankTransactionBankAccount = \"BankTransactionBankAccount\",\n BankTransactionBankAccountDraft = \"BankTransactionBankAccountDraft\",\n BankTransactionBusinessPartner = \"BankTransactionBusinessPartner\",\n BankTransactionBusinessPartnerDraft = \"BankTransactionBusinessPartnerDraft\",\n BankTransactionCsvColumnMapping = \"BankTransactionCsvColumnMapping\",\n BankTransactionDocumentNumberLocation = \"BankTransactionDocumentNumberLocation\",\n BankTransactionDuplicate = \"BankTransactionDuplicate\",\n BankTransactionType = \"BankTransactionType\",\n BillingEvent = \"BillingEvent\",\n BillingItemType = \"BillingItemType\",\n BillingModuleType = \"BillingModuleType\",\n BillingPricing = \"BillingPricing\",\n Bookkeeping = \"Bookkeeping\",\n BusinessPartner = \"BusinessPartner\",\n BusinessPartnerAttachment = \"BusinessPartnerAttachment\",\n BusinessPartnerBankAccount = \"BusinessPartnerBankAccount\",\n BusinessPartnerBillingAddress = \"BusinessPartnerBillingAddress\",\n BusinessPartnerContact = \"BusinessPartnerContact\",\n BusinessPartnerCorrespondenceAddress = \"BusinessPartnerCorrespondenceAddress\",\n BusinessPartnerDocumentDefault = \"BusinessPartnerDocumentDefault\",\n BusinessPartnerDocumentDefaultType = \"BusinessPartnerDocumentDefaultType\",\n BusinessPartnerIssuedDocumentDefault = \"BusinessPartnerIssuedDocumentDefault\",\n BusinessPartnerReceivedDocumentDefault = \"BusinessPartnerReceivedDocumentDefault\",\n CBATransactionType = \"CBATransactionType\",\n CashBox = \"CashBox\",\n CashBoxBalance = \"CashBoxBalance\",\n CashReceipt = \"CashReceipt\",\n CashReceiptIssued = \"CashReceiptIssued\",\n CashReceiptReceived = \"CashReceiptReceived\",\n CbaAssetDisposalType = \"CbaAssetDisposalType\",\n CbaCategory = \"CbaCategory\",\n CbaCategoryTaxImpact = \"CbaCategoryTaxImpact\",\n CbaEntry = \"CbaEntry\",\n CbaEntryLabel = \"CbaEntryLabel\",\n CbaEntryLedgerDocumentType = \"CbaEntryLedgerDocumentType\",\n CbaEntrySpecialVatCalculation = \"CbaEntrySpecialVatCalculation\",\n CbaEntryType = \"CbaEntryType\",\n ChartOfAccounts = \"ChartOfAccounts\",\n ChartOfAccountsTemplate = \"ChartOfAccountsTemplate\",\n ChartedAccountAssignment = \"ChartedAccountAssignment\",\n ClearedStatus = \"ClearedStatus\",\n ClearingDocumentLink = \"ClearingDocumentLink\",\n ColourTheme = \"ColourTheme\",\n CommunicationEntry = \"CommunicationEntry\",\n CommunicationEntryAttachment = \"CommunicationEntryAttachment\",\n CommunicationEntryChannel = \"CommunicationEntryChannel\",\n CommunicationEntryState = \"CommunicationEntryState\",\n CommunicationEntryType = \"CommunicationEntryType\",\n CommunicationType = \"CommunicationType\",\n Company = \"Company\",\n CompanyBankAccount = \"CompanyBankAccount\",\n CompanyBankAccountType = \"CompanyBankAccountType\",\n CompanyCommunicationAddress = \"CompanyCommunicationAddress\",\n CompanyCommunicationContact = \"CompanyCommunicationContact\",\n CompanyFixedExchangeRate = \"CompanyFixedExchangeRate\",\n CompanyLegalAddress = \"CompanyLegalAddress\",\n CompanyPermission = \"CompanyPermission\",\n CompanyRole = \"CompanyRole\",\n CompanyRolePermission = \"CompanyRolePermission\",\n CompanyRoleType = \"CompanyRoleType\",\n CompanySetting = \"CompanySetting\",\n CompanyState = \"CompanyState\",\n CompanyVatReducedCoefficient = \"CompanyVatReducedCoefficient\",\n CompanyVatStatus = \"CompanyVatStatus\",\n CompoundJournalEntry = \"CompoundJournalEntry\",\n Contact = \"Contact\",\n CorrectiveInvoiceIssued = \"CorrectiveInvoiceIssued\",\n CorrectiveInvoiceReceived = \"CorrectiveInvoiceReceived\",\n Country = \"Country\",\n CountryClassification = \"CountryClassification\",\n CountryOrUnion = \"CountryOrUnion\",\n Currency = \"Currency\",\n CurrencyUsedByCompany = \"CurrencyUsedByCompany\",\n CurrencyWithExchangeRateInfo = \"CurrencyWithExchangeRateInfo\",\n CustomerPortalPayment = \"CustomerPortalPayment\",\n CzNace = \"CzNace\",\n DashboardTask = \"DashboardTask\",\n DataBox = \"DataBox\",\n DataLimit = \"DataLimit\",\n DataLimitType = \"DataLimitType\",\n DateFormat = \"DateFormat\",\n DayOfWeek = \"DayOfWeek\",\n DefaultVariant = \"DefaultVariant\",\n DeferredDocument = \"DeferredDocument\",\n DeferredPlan = \"DeferredPlan\",\n DeferredPlanDocument = \"DeferredPlanDocument\",\n DeferredPlanDocumentItem = \"DeferredPlanDocumentItem\",\n DeferredPlanOriginalDocumentItem = \"DeferredPlanOriginalDocumentItem\",\n DeferredPlanPostingType = \"DeferredPlanPostingType\",\n DepreciationPolicy = \"DepreciationPolicy\",\n DepreciationPolicyItem = \"DepreciationPolicyItem\",\n DepreciationPolicyType = \"DepreciationPolicyType\",\n DepreciationSetting = \"DepreciationSetting\",\n DepreciationSettingType = \"DepreciationSettingType\",\n DepreciationType = \"DepreciationType\",\n Document = \"Document\",\n DocumentAccountAssignment = \"DocumentAccountAssignment\",\n DocumentAccountAssignmentDraft = \"DocumentAccountAssignmentDraft\",\n DocumentAccountAssignmentSelection = \"DocumentAccountAssignmentSelection\",\n DocumentAccountAssignmentSelectionDraft = \"DocumentAccountAssignmentSelectionDraft\",\n DocumentAssetEntry = \"DocumentAssetEntry\",\n DocumentAttachment = \"DocumentAttachment\",\n DocumentAttachmentDeleted = \"DocumentAttachmentDeleted\",\n DocumentAttachmentDraft = \"DocumentAttachmentDraft\",\n DocumentBankAccount = \"DocumentBankAccount\",\n DocumentBankAccountDraft = \"DocumentBankAccountDraft\",\n DocumentBusinessPartner = \"DocumentBusinessPartner\",\n DocumentBusinessPartnerDraft = \"DocumentBusinessPartnerDraft\",\n DocumentCbaCategory = \"DocumentCbaCategory\",\n DocumentCbaCategoryDraft = \"DocumentCbaCategoryDraft\",\n DocumentDeleteLog = \"DocumentDeleteLog\",\n DocumentDraft = \"DocumentDraft\",\n DocumentImportType = \"DocumentImportType\",\n DocumentItem = \"DocumentItem\",\n DocumentItemAccountAssignment = \"DocumentItemAccountAssignment\",\n DocumentItemAccountAssignmentDraft = \"DocumentItemAccountAssignmentDraft\",\n DocumentItemAccountAssignmentSelection = \"DocumentItemAccountAssignmentSelection\",\n DocumentItemAccountAssignmentSelectionDraft = \"DocumentItemAccountAssignmentSelectionDraft\",\n DocumentItemCbaCategory = \"DocumentItemCbaCategory\",\n DocumentItemCbaCategoryDraft = \"DocumentItemCbaCategoryDraft\",\n DocumentItemDraft = \"DocumentItemDraft\",\n DocumentItemLabel = \"DocumentItemLabel\",\n DocumentItemLabelDraft = \"DocumentItemLabelDraft\",\n DocumentItemType = \"DocumentItemType\",\n DocumentItemVatClassification = \"DocumentItemVatClassification\",\n DocumentItemVatClassificationDraft = \"DocumentItemVatClassificationDraft\",\n DocumentItemVatClassificationSelection = \"DocumentItemVatClassificationSelection\",\n DocumentItemVatClassificationSelectionDraft = \"DocumentItemVatClassificationSelectionDraft\",\n DocumentItemView = \"DocumentItemView\",\n DocumentLabel = \"DocumentLabel\",\n DocumentLabelDraft = \"DocumentLabelDraft\",\n DocumentLink = \"DocumentLink\",\n DocumentLinkClearingType = \"DocumentLinkClearingType\",\n DocumentLinkDraft = \"DocumentLinkDraft\",\n DocumentLinkType = \"DocumentLinkType\",\n DocumentLock = \"DocumentLock\",\n DocumentLockDraft = \"DocumentLockDraft\",\n DocumentMinorAssetItem = \"DocumentMinorAssetItem\",\n DocumentSourceType = \"DocumentSourceType\",\n DocumentStatus = \"DocumentStatus\",\n DocumentType = \"DocumentType\",\n DocumentVatClassification = \"DocumentVatClassification\",\n DocumentVatClassificationDraft = \"DocumentVatClassificationDraft\",\n DocumentVatClassificationSelection = \"DocumentVatClassificationSelection\",\n DocumentVatClassificationSelectionDraft = \"DocumentVatClassificationSelectionDraft\",\n ElectronicSubmission = \"ElectronicSubmission\",\n ElectronicSubmissionPeriodWithDeletedDocument = \"ElectronicSubmissionPeriodWithDeletedDocument\",\n ElectronicSubmissionSubmissionType = \"ElectronicSubmissionSubmissionType\",\n ElectronicSubmissionType = \"ElectronicSubmissionType\",\n Entity = \"Entity\",\n EntityAccountAssignment = \"EntityAccountAssignment\",\n EntityAccountAssignmentDraft = \"EntityAccountAssignmentDraft\",\n EntityAttachment = \"EntityAttachment\",\n EntityBankAccount = \"EntityBankAccount\",\n EntityBankAccountDraft = \"EntityBankAccountDraft\",\n EntityBusinessPartner = \"EntityBusinessPartner\",\n EntityBusinessPartnerDraft = \"EntityBusinessPartnerDraft\",\n EntityCbaCategory = \"EntityCbaCategory\",\n EntityCbaCategoryDraft = \"EntityCbaCategoryDraft\",\n EntityLabel = \"EntityLabel\",\n EntityLock = \"EntityLock\",\n EntityPermissionLevel = \"EntityPermissionLevel\",\n EntityType = \"EntityType\",\n EntityVatClassification = \"EntityVatClassification\",\n EntityVatClassificationDraft = \"EntityVatClassificationDraft\",\n ExchangeRate = \"ExchangeRate\",\n ExchangeRateType = \"ExchangeRateType\",\n ExpenseTaxRate = \"ExpenseTaxRate\",\n ExportLog = \"ExportLog\",\n ExportRange = \"ExportRange\",\n ExportResultType = \"ExportResultType\",\n ExportType = \"ExportType\",\n ExternalCorrectedDocumentType = \"ExternalCorrectedDocumentType\",\n Feature = \"Feature\",\n FileMetadata = \"FileMetadata\",\n FinancialReportLayout = \"FinancialReportLayout\",\n FinancialReportLayoutSection = \"FinancialReportLayoutSection\",\n FiscalPeriod = \"FiscalPeriod\",\n FiscalPeriodUsage = \"FiscalPeriodUsage\",\n FiscalYear = \"FiscalYear\",\n FiscalYearClose = \"FiscalYearClose\",\n FiscalYearCloseAdvanceTax = \"FiscalYearCloseAdvanceTax\",\n FiscalYearCloseAttachment = \"FiscalYearCloseAttachment\",\n FiscalYearCloseExchangeRate = \"FiscalYearCloseExchangeRate\",\n FiscalYearCloseInventory = \"FiscalYearCloseInventory\",\n FiscalYearCloseSection = \"FiscalYearCloseSection\",\n FiscalYearCloseSectionType = \"FiscalYearCloseSectionType\",\n FiscalYearStatus = \"FiscalYearStatus\",\n FiscalYearUsage = \"FiscalYearUsage\",\n FlattenAccount = \"FlattenAccount\",\n FulfilmentType = \"FulfilmentType\",\n GeneralPermission = \"GeneralPermission\",\n GeneralRole = \"GeneralRole\",\n GeneralRolePermission = \"GeneralRolePermission\",\n GovernmentInstitution = \"GovernmentInstitution\",\n GovernmentInstitutionBankAccount = \"GovernmentInstitutionBankAccount\",\n GovernmentInstitutionBankAccountType = \"GovernmentInstitutionBankAccountType\",\n GovernmentInstitutionType = \"GovernmentInstitutionType\",\n Hotspot = \"Hotspot\",\n ImportDocument = \"ImportDocument\",\n InboxCommunication = \"InboxCommunication\",\n InboxEntityType = \"InboxEntityType\",\n InboxFile = \"InboxFile\",\n InboxFileLog = \"InboxFileLog\",\n InboxFileSource = \"InboxFileSource\",\n InboxFileStatus = \"InboxFileStatus\",\n InboxItemLog = \"InboxItemLog\",\n InboxItemLogState = \"InboxItemLogState\",\n IncomeStatementLayout = \"IncomeStatementLayout\",\n IncomeStatementLayoutTemplate = \"IncomeStatementLayoutTemplate\",\n InitialAccountBalance = \"InitialAccountBalance\",\n IntegrationApiImportFrequency = \"IntegrationApiImportFrequency\",\n IntegrationApiImportFromWhen = \"IntegrationApiImportFromWhen\",\n IntegrationApiImportRange = \"IntegrationApiImportRange\",\n IntegrationApiImportedDocuments = \"IntegrationApiImportedDocuments\",\n InteractionType = \"InteractionType\",\n InternalDocument = \"InternalDocument\",\n InternalDocumentItem = \"InternalDocumentItem\",\n InventoryType = \"InventoryType\",\n InvoiceIssued = \"InvoiceIssued\",\n InvoiceReceived = \"InvoiceReceived\",\n InvoiceServiceIntegration = \"InvoiceServiceIntegration\",\n InvoiceServiceIntegrationParameters = \"InvoiceServiceIntegrationParameters\",\n InvoiceServiceIntegrationSettings = \"InvoiceServiceIntegrationSettings\",\n InvoiceServiceIntegrationType = \"InvoiceServiceIntegrationType\",\n IsdocImportDocument = \"IsdocImportDocument\",\n ItemTemplate = \"ItemTemplate\",\n ItemTemplateAccountAssignment = \"ItemTemplateAccountAssignment\",\n ItemTemplateAccountAssignmentSelection = \"ItemTemplateAccountAssignmentSelection\",\n ItemTemplateCbaTaxImpact = \"ItemTemplateCbaTaxImpact\",\n ItemTemplateVatClassification = \"ItemTemplateVatClassification\",\n ItemTemplateVatClassificationSelection = \"ItemTemplateVatClassificationSelection\",\n JournalEntry = \"JournalEntry\",\n JournalEntryLabel = \"JournalEntryLabel\",\n JournalEntryType = \"JournalEntryType\",\n Label = \"Label\",\n LabelHierarchy = \"LabelHierarchy\",\n LabelSelection = \"LabelSelection\",\n LabelSelectionDraft = \"LabelSelectionDraft\",\n Language = \"Language\",\n LegalEntityCategory = \"LegalEntityCategory\",\n LegislativeFixedExchangeRate = \"LegislativeFixedExchangeRate\",\n LockType = \"LockType\",\n MandatoryAccount = \"MandatoryAccount\",\n MandatoryChartOfAccounts = \"MandatoryChartOfAccounts\",\n MinorAsset = \"MinorAsset\",\n MinorAssetAttachment = \"MinorAssetAttachment\",\n MinorAssetHistoryEntry = \"MinorAssetHistoryEntry\",\n MinorAssetHistoryItem = \"MinorAssetHistoryItem\",\n MinorAssetItem = \"MinorAssetItem\",\n MinorAssetLabel = \"MinorAssetLabel\",\n MinorAssetStatus = \"MinorAssetStatus\",\n Module = \"Module\",\n MoneyS3ImportDocument = \"MoneyS3ImportDocument\",\n MonthOfYear = \"MonthOfYear\",\n MultiplePostingDateAccountingType = \"MultiplePostingDateAccountingType\",\n Notification = \"Notification\",\n NotificationSetting = \"NotificationSetting\",\n NotificationType = \"NotificationType\",\n NotificationTypeGroup = \"NotificationTypeGroup\",\n NotificationTypeSetting = \"NotificationTypeSetting\",\n NumberRange = \"NumberRange\",\n NumberRangeDefinition = \"NumberRangeDefinition\",\n NumberRangeDefinitionTemplate = \"NumberRangeDefinitionTemplate\",\n NumberRangeType = \"NumberRangeType\",\n NumberRangeUsage = \"NumberRangeUsage\",\n NumberRangeWildcard = \"NumberRangeWildcard\",\n OppositeDocumentDocumentLink = \"OppositeDocumentDocumentLink\",\n OppositeDocumentLink = \"OppositeDocumentLink\",\n OppositePaymentDocumentDocumentLink = \"OppositePaymentDocumentDocumentLink\",\n Organization = \"Organization\",\n OtherLiability = \"OtherLiability\",\n OtherReceivable = \"OtherReceivable\",\n PayableReceivableType = \"PayableReceivableType\",\n PayingDocument = \"PayingDocument\",\n PayingDocumentItemView = \"PayingDocumentItemView\",\n PaymentDocument = \"PaymentDocument\",\n PaymentDocumentAttachment = \"PaymentDocumentAttachment\",\n PaymentDocumentAttachmentDraft = \"PaymentDocumentAttachmentDraft\",\n PaymentDocumentDraft = \"PaymentDocumentDraft\",\n PaymentDocumentItem = \"PaymentDocumentItem\",\n PaymentDocumentItemAccountAssignment = \"PaymentDocumentItemAccountAssignment\",\n PaymentDocumentItemAccountAssignmentDraft = \"PaymentDocumentItemAccountAssignmentDraft\",\n PaymentDocumentItemAccountAssignmentSelection = \"PaymentDocumentItemAccountAssignmentSelection\",\n PaymentDocumentItemAccountAssignmentSelectionDraft = \"PaymentDocumentItemAccountAssignmentSelectionDraft\",\n PaymentDocumentItemCbaCategory = \"PaymentDocumentItemCbaCategory\",\n PaymentDocumentItemCbaCategoryDraft = \"PaymentDocumentItemCbaCategoryDraft\",\n PaymentDocumentItemDraft = \"PaymentDocumentItemDraft\",\n PaymentDocumentItemType = \"PaymentDocumentItemType\",\n PaymentDocumentLock = \"PaymentDocumentLock\",\n PaymentDocumentLockDraft = \"PaymentDocumentLockDraft\",\n PaymentMethod = \"PaymentMethod\",\n PaymentOrderFormat = \"PaymentOrderFormat\",\n PaymentOrderOutput = \"PaymentOrderOutput\",\n PaymentStatus = \"PaymentStatus\",\n PeriodDay = \"PeriodDay\",\n PohodaColumnPreviewValue = \"PohodaColumnPreviewValue\",\n PohodaDocument = \"PohodaDocument\",\n PohodaEnumMapping = \"PohodaEnumMapping\",\n PohodaImport = \"PohodaImport\",\n PohodaImportDocument = \"PohodaImportDocument\",\n PohodaImportProgress = \"PohodaImportProgress\",\n PohodaMapping = \"PohodaMapping\",\n PostedStatus = \"PostedStatus\",\n PostingRule = \"PostingRule\",\n PostingRuleDocumentType = \"PostingRuleDocumentType\",\n PrAbsenceCategory = \"PrAbsenceCategory\",\n PrAbsenceCategoryLegislativeType = \"PrAbsenceCategoryLegislativeType\",\n PrAbsenceCategoryTemporal = \"PrAbsenceCategoryTemporal\",\n PrAbsenceCategoryTemporalCurrent = \"PrAbsenceCategoryTemporalCurrent\",\n PrAttendance = \"PrAttendance\",\n PrAttendanceDay = \"PrAttendanceDay\",\n PrAttendanceDayInterval = \"PrAttendanceDayInterval\",\n PrAttendanceStatus = \"PrAttendanceStatus\",\n PrAttendanceWithWorkingPattern = \"PrAttendanceWithWorkingPattern\",\n PrBaseType = \"PrBaseType\",\n PrChildDeductionOrder = \"PrChildDeductionOrder\",\n PrChildSupportDeductionType = \"PrChildSupportDeductionType\",\n PrCzechReductionLimit = \"PrCzechReductionLimit\",\n PrDeduction = \"PrDeduction\",\n PrDeductionBankAccount = \"PrDeductionBankAccount\",\n PrDeductionBusinessPartner = \"PrDeductionBusinessPartner\",\n PrDeductionCalculationType = \"PrDeductionCalculationType\",\n PrDeductionEntityType = \"PrDeductionEntityType\",\n PrDeductionStatus = \"PrDeductionStatus\",\n PrDeductionTemporal = \"PrDeductionTemporal\",\n PrDeductionTemporalCurrent = \"PrDeductionTemporalCurrent\",\n PrDeductionType = \"PrDeductionType\",\n PrDisabilityDiscountAmount = \"PrDisabilityDiscountAmount\",\n PrDisabilityType = \"PrDisabilityType\",\n PrDistrainmentDeductionType = \"PrDistrainmentDeductionType\",\n PrEmployee = \"PrEmployee\",\n PrEmployeeBankAccount = \"PrEmployeeBankAccount\",\n PrEmployeeCar = \"PrEmployeeCar\",\n PrEmployeeContactAddress = \"PrEmployeeContactAddress\",\n PrEmployeeDependentPerson = \"PrEmployeeDependentPerson\",\n PrEmployeeForeignAddress = \"PrEmployeeForeignAddress\",\n PrEmployeeLabel = \"PrEmployeeLabel\",\n PrEmployeeLocalAddress = \"PrEmployeeLocalAddress\",\n PrEmployeeState = \"PrEmployeeState\",\n PrEmployeeTemporal = \"PrEmployeeTemporal\",\n PrEmployeeTemporalCurrent = \"PrEmployeeTemporalCurrent\",\n PrEmployment = \"PrEmployment\",\n PrEmploymentExtraSalary = \"PrEmploymentExtraSalary\",\n PrEmploymentExtraSalaryTemporal = \"PrEmploymentExtraSalaryTemporal\",\n PrEmploymentExtraSalaryTemporalCurrent = \"PrEmploymentExtraSalaryTemporalCurrent\",\n PrEmploymentSalaryComponent = \"PrEmploymentSalaryComponent\",\n PrEmploymentSalaryComponentTemporal = \"PrEmploymentSalaryComponentTemporal\",\n PrEmploymentSalaryComponentTemporalCurrent = \"PrEmploymentSalaryComponentTemporalCurrent\",\n PrEmploymentTemplate = \"PrEmploymentTemplate\",\n PrEmploymentTemplateExtraSalary = \"PrEmploymentTemplateExtraSalary\",\n PrEmploymentTemplateExtraSalaryTemporal = \"PrEmploymentTemplateExtraSalaryTemporal\",\n PrEmploymentTemplateExtraSalaryTemporalCurrent = \"PrEmploymentTemplateExtraSalaryTemporalCurrent\",\n PrEmploymentTemplateSalaryComponent = \"PrEmploymentTemplateSalaryComponent\",\n PrEmploymentTemplateSalaryComponentTemporal = \"PrEmploymentTemplateSalaryComponentTemporal\",\n PrEmploymentTemplateSalaryComponentTemporalCurrent = \"PrEmploymentTemplateSalaryComponentTemporalCurrent\",\n PrEmploymentTemplateTemporal = \"PrEmploymentTemplateTemporal\",\n PrEmploymentTemplateTemporalCurrent = \"PrEmploymentTemplateTemporalCurrent\",\n PrEmploymentTemporal = \"PrEmploymentTemporal\",\n PrEmploymentTemporalCurrent = \"PrEmploymentTemporalCurrent\",\n PrEmploymentType = \"PrEmploymentType\",\n PrEntityValueSource = \"PrEntityValueSource\",\n PrExtraSalary = \"PrExtraSalary\",\n PrExtraSalaryComputationType = \"PrExtraSalaryComputationType\",\n PrExtraSalaryLegislativeValue = \"PrExtraSalaryLegislativeValue\",\n PrExtraSalaryTemporal = \"PrExtraSalaryTemporal\",\n PrExtraSalaryTemporalCurrent = \"PrExtraSalaryTemporalCurrent\",\n PrExtraSalaryType = \"PrExtraSalaryType\",\n PrFixedBonusPayOutImpact = \"PrFixedBonusPayOutImpact\",\n PrFixedBonusTaxImpact = \"PrFixedBonusTaxImpact\",\n PrFormOfStudyType = \"PrFormOfStudyType\",\n PrGovernmentInstitutionBankAccountDetail = \"PrGovernmentInstitutionBankAccountDetail\",\n PrGovernmentInstitutionDetail = \"PrGovernmentInstitutionDetail\",\n PrGroupDeduction = \"PrGroupDeduction\",\n PrGroupDeductionEmployee = \"PrGroupDeductionEmployee\",\n PrHealthInsuranceCompany = \"PrHealthInsuranceCompany\",\n PrIdentityDocumentType = \"PrIdentityDocumentType\",\n PrIncomeTaxDiscount = \"PrIncomeTaxDiscount\",\n PrIndividualDeduction = \"PrIndividualDeduction\",\n PrIndividualDeductionDebtPayment = \"PrIndividualDeductionDebtPayment\",\n PrInsuranceBankAccountPredefined = \"PrInsuranceBankAccountPredefined\",\n PrInsuranceBankAccountType = \"PrInsuranceBankAccountType\",\n PrInsuranceCompany = \"PrInsuranceCompany\",\n PrInsuranceCompanyBankAccount = \"PrInsuranceCompanyBankAccount\",\n PrInsuranceCompanyPredefined = \"PrInsuranceCompanyPredefined\",\n PrInsuranceCompanyType = \"PrInsuranceCompanyType\",\n PrLegislativeAverageSalary = \"PrLegislativeAverageSalary\",\n PrLifeInsuranceCompany = \"PrLifeInsuranceCompany\",\n PrPayrollComponentCategoryType = \"PrPayrollComponentCategoryType\",\n PrPayrollComponentType = \"PrPayrollComponentType\",\n PrPayrollSetting = \"PrPayrollSetting\",\n PrPayrollSettingTemporal = \"PrPayrollSettingTemporal\",\n PrPayrollSettingTemporalCurrent = \"PrPayrollSettingTemporalCurrent\",\n PrPayslip = \"PrPayslip\",\n PrPayslipDeduction = \"PrPayslipDeduction\",\n PrPayslipEmployment = \"PrPayslipEmployment\",\n PrPayslipEmploymentItem = \"PrPayslipEmploymentItem\",\n PrPayslipEmploymentItemType = \"PrPayslipEmploymentItemType\",\n PrPayslipEmploymentSalaryComponent = \"PrPayslipEmploymentSalaryComponent\",\n PrPayslipItem = \"PrPayslipItem\",\n PrPayslipItemType = \"PrPayslipItemType\",\n PrPayslipLayoutGroup = \"PrPayslipLayoutGroup\",\n PrPayslipLayoutItem = \"PrPayslipLayoutItem\",\n PrPayslipOverrideStatus = \"PrPayslipOverrideStatus\",\n PrPensionInsuranceCompany = \"PrPensionInsuranceCompany\",\n PrSalaryAdvance = \"PrSalaryAdvance\",\n PrSalaryComponent = \"PrSalaryComponent\",\n PrSalaryComponentTemporal = \"PrSalaryComponentTemporal\",\n PrSalaryComponentTemporalCurrent = \"PrSalaryComponentTemporalCurrent\",\n PrSalaryComponentType = \"PrSalaryComponentType\",\n PrSex = \"PrSex\",\n PrTaxDiscountType = \"PrTaxDiscountType\",\n PrTaxpayerDeclaration = \"PrTaxpayerDeclaration\",\n PrTaxpayerDeclarationChild = \"PrTaxpayerDeclarationChild\",\n PrTaxpayerDeclarationChildTemporal = \"PrTaxpayerDeclarationChildTemporal\",\n PrTaxpayerDeclarationChildTemporalCurrent = \"PrTaxpayerDeclarationChildTemporalCurrent\",\n PrTaxpayerDeclarationDiscount = \"PrTaxpayerDeclarationDiscount\",\n PrUnseizableAmount = \"PrUnseizableAmount\",\n PrWorkIntervalType = \"PrWorkIntervalType\",\n PrWorkingPattern = \"PrWorkingPattern\",\n PrWorkingPatternDay = \"PrWorkingPatternDay\",\n PrWorkingPatternDayInterval = \"PrWorkingPatternDayInterval\",\n PrWorkingPatternType = \"PrWorkingPatternType\",\n Product = \"Product\",\n ProformaInvoiceIssued = \"ProformaInvoiceIssued\",\n ProformaInvoiceReceived = \"ProformaInvoiceReceived\",\n PurchaseStatus = \"PurchaseStatus\",\n ReceivableAdjustmentGroup = \"ReceivableAdjustmentGroup\",\n ReceivableAdjustmentType = \"ReceivableAdjustmentType\",\n RecurrentPaymentState = \"RecurrentPaymentState\",\n RecurringTask = \"RecurringTask\",\n RecurringTaskExecution = \"RecurringTaskExecution\",\n RecurringTaskInterval = \"RecurringTaskInterval\",\n RecurringTaskPeriod = \"RecurringTaskPeriod\",\n RecurringTaskState = \"RecurringTaskState\",\n RecurringTaskType = \"RecurringTaskType\",\n RegularDocumentItem = \"RegularDocumentItem\",\n ReportSectionType = \"ReportSectionType\",\n ReportType = \"ReportType\",\n RequiredAccount = \"RequiredAccount\",\n RequiredAccountTemplate = \"RequiredAccountTemplate\",\n RequiredAccountType = \"RequiredAccountType\",\n RossumJob = \"RossumJob\",\n RossumJobStatus = \"RossumJobStatus\",\n Selection = \"Selection\",\n SignatoryPerson = \"SignatoryPerson\",\n SingleJournalEntry = \"SingleJournalEntry\",\n SplitAccountAssignment = \"SplitAccountAssignment\",\n SplitAccountAssignmentDraft = \"SplitAccountAssignmentDraft\",\n SubscriptionStatus = \"SubscriptionStatus\",\n SubscriptionType = \"SubscriptionType\",\n TaxApplicability = \"TaxApplicability\",\n TaxCalendar = \"TaxCalendar\",\n TaxCalendarTaxType = \"TaxCalendarTaxType\",\n TaxDepreciationCategory = \"TaxDepreciationCategory\",\n TaxDepreciationCoefficient = \"TaxDepreciationCoefficient\",\n TaxDepreciationPolicy = \"TaxDepreciationPolicy\",\n TaxDepreciationPolicyItem = \"TaxDepreciationPolicyItem\",\n TaxPriceLimit = \"TaxPriceLimit\",\n TaxStatementSignatoryPerson = \"TaxStatementSignatoryPerson\",\n TaxStatementSubmitter = \"TaxStatementSubmitter\",\n TemporalEntity = \"TemporalEntity\",\n Ticket = \"Ticket\",\n TicketMessage = \"TicketMessage\",\n TicketMessageAttachment = \"TicketMessageAttachment\",\n TicketStatus = \"TicketStatus\",\n TimeFormat = \"TimeFormat\",\n TimeZone = \"TimeZone\",\n PropertyTranslation = \"PropertyTranslation\",\n TrustedSender = \"TrustedSender\",\n TypeOfBusiness = \"TypeOfBusiness\",\n UndirectedDocumentLink = \"UndirectedDocumentLink\",\n UndirectedPaymentDocumentLink = \"UndirectedPaymentDocumentLink\",\n UnitOfMeasure = \"UnitOfMeasure\",\n UnorganizedAsset = \"UnorganizedAsset\",\n User = \"User\",\n UserCompanyRole = \"UserCompanyRole\",\n UserGeneralRole = \"UserGeneralRole\",\n UserNotification = \"UserNotification\",\n UserStatus = \"UserStatus\",\n Variant = \"Variant\",\n VariantAccessType = \"VariantAccessType\",\n VariantType = \"VariantType\",\n Vat = \"Vat\",\n VatClassification = \"VatClassification\",\n VatClassificationSelection = \"VatClassificationSelection\",\n VatClassificationSelectionDraft = \"VatClassificationSelectionDraft\",\n VatControlStatement = \"VatControlStatement\",\n VatControlStatementSection = \"VatControlStatementSection\",\n VatDeductionType = \"VatDeductionType\",\n VatOss = \"VatOss\",\n VatRateType = \"VatRateType\",\n VatReverseCharge = \"VatReverseCharge\",\n VatStatement = \"VatStatement\",\n VatStatementDocument = \"VatStatementDocument\",\n VatStatementFrequency = \"VatStatementFrequency\",\n VatStatementSection = \"VatStatementSection\",\n VatStatementSectionCategory = \"VatStatementSectionCategory\",\n VatStatementStatus = \"VatStatementStatus\",\n VatStatus = \"VatStatus\",\n VatVies = \"VatVies\",\n WebSocketMessageType = \"WebSocketMessageType\",\n WriteOffType = \"WriteOffType\",\n}\n\nexport enum EntitySetName {\n AccountCategories = \"AccountCategories\",\n Accountings = \"Accountings\",\n AccountRoles = \"AccountRoles\",\n AccountTypes = \"AccountTypes\",\n AccruedProcessingTypes = \"AccruedProcessingTypes\",\n ApprovalStatusTypes = \"ApprovalStatusTypes\",\n AssetDisposalTypes = \"AssetDisposalTypes\",\n AssetItemTypes = \"AssetItemTypes\",\n AssetStatuses = \"AssetStatuses\",\n AssetTypes = \"AssetTypes\",\n AssetValues = \"AssetValues\",\n BackgroundJobStatuses = \"BackgroundJobStatuses\",\n BackgroundJobTypes = \"BackgroundJobTypes\",\n Banks = \"Banks\",\n BankAccountNumberFormatTypes = \"BankAccountNumberFormatTypes\",\n BankApiStatementImportFrequencies = \"BankApiStatementImportFrequencies\",\n BankApiStatementImportRanges = \"BankApiStatementImportRanges\",\n BankExchangeRateFreshnesses = \"BankExchangeRateFreshnesses\",\n BankPaymentOrderStates = \"BankPaymentOrderStates\",\n BankTransactionDocumentNumberLocations = \"BankTransactionDocumentNumberLocations\",\n BankTransactionTypes = \"BankTransactionTypes\",\n BillingItemTypes = \"BillingItemTypes\",\n BillingModuleTypes = \"BillingModuleTypes\",\n BillingPricings = \"BillingPricings\",\n Bookkeepings = \"Bookkeepings\",\n BusinessPartnerDocumentDefaultTypes = \"BusinessPartnerDocumentDefaultTypes\",\n CbaAssetDisposalTypes = \"CbaAssetDisposalTypes\",\n CbaCategoryTaxTypes = \"CbaCategoryTaxTypes\",\n CbaEntryLedgerDocumentTypes = \"CbaEntryLedgerDocumentTypes\",\n CbaEntrySpecialVatCalculations = \"CbaEntrySpecialVatCalculations\",\n CbaEntryTypes = \"CbaEntryTypes\",\n CBATransactionTypes = \"CBATransactionTypes\",\n ClearedStatuses = \"ClearedStatuses\",\n ColourThemes = \"ColourThemes\",\n CommunicationEntryChannels = \"CommunicationEntryChannels\",\n CommunicationEntryStates = \"CommunicationEntryStates\",\n CommunicationEntryTypes = \"CommunicationEntryTypes\",\n CommunicationTypes = \"CommunicationTypes\",\n CompanyBankAccountTypes = \"CompanyBankAccountTypes\",\n CompanyPermissions = \"CompanyPermissions\",\n CompanyRoleTypes = \"CompanyRoleTypes\",\n CompanyStates = \"CompanyStates\",\n Countries = \"Countries\",\n CountryClassifications = \"CountryClassifications\",\n CountriesAndUnions = \"CountriesAndUnions\",\n Currencies = \"Currencies\",\n CzNaces = \"CzNaces\",\n DataLimitTypes = \"DataLimitTypes\",\n DateFormats = \"DateFormats\",\n DaysOfWeek = \"DaysOfWeek\",\n DeferredPlanPostingTypes = \"DeferredPlanPostingTypes\",\n DepreciationPolicyTypes = \"DepreciationPolicyTypes\",\n DepreciationSettingTypes = \"DepreciationSettingTypes\",\n DepreciationTypes = \"DepreciationTypes\",\n DocumentImportTypes = \"DocumentImportTypes\",\n DocumentItemTypes = \"DocumentItemTypes\",\n DocumentLinkClearingTypes = \"DocumentLinkClearingTypes\",\n DocumentLinkTypes = \"DocumentLinkTypes\",\n DocumentSourceTypes = \"DocumentSourceTypes\",\n DocumentStatuses = \"DocumentStatuses\",\n DocumentTypes = \"DocumentTypes\",\n ElectronicSubmissionSubmissionTypes = \"ElectronicSubmissionSubmissionTypes\",\n ElectronicSubmissionTypes = \"ElectronicSubmissionTypes\",\n EntityPermissionLevels = \"EntityPermissionLevels\",\n EntityTypes = \"EntityTypes\",\n ExchangeRateTypes = \"ExchangeRateTypes\",\n ExpenseTaxRates = \"ExpenseTaxRates\",\n ExportRanges = \"ExportRanges\",\n ExportResultTypes = \"ExportResultTypes\",\n ExportTypes = \"ExportTypes\",\n ExternalCorrectedDocumentTypes = \"ExternalCorrectedDocumentTypes\",\n Features = \"Features\",\n FinancialReportLayouts = \"FinancialReportLayouts\",\n FinancialReportLayoutSections = \"FinancialReportLayoutSections\",\n FiscalYearCloseSectionTypes = \"FiscalYearCloseSectionTypes\",\n FiscalYearStatuses = \"FiscalYearStatuses\",\n FulfilmentTypes = \"FulfilmentTypes\",\n GeneralPermissions = \"GeneralPermissions\",\n GovernmentInstitutions = \"GovernmentInstitutions\",\n GovernmentInstitutionBankAccounts = \"GovernmentInstitutionBankAccounts\",\n GovernmentInstitutionBankAccountTypes = \"GovernmentInstitutionBankAccountTypes\",\n GovernmentInstitutionTypes = \"GovernmentInstitutionTypes\",\n InboxEntityTypes = \"InboxEntityTypes\",\n InboxFileSources = \"InboxFileSources\",\n InboxFileStatuses = \"InboxFileStatuses\",\n InboxItemLogStates = \"InboxItemLogStates\",\n IntegrationApiImportedDocuments = \"IntegrationApiImportedDocuments\",\n IntegrationApiImportFrequencies = \"IntegrationApiImportFrequencies\",\n IntegrationApiImportFromWhenList = \"IntegrationApiImportFromWhenList\",\n IntegrationApiImportRanges = \"IntegrationApiImportRanges\",\n InteractionTypes = \"InteractionTypes\",\n InventoryTypes = \"InventoryTypes\",\n InvoiceServiceIntegrationTypes = \"InvoiceServiceIntegrationTypes\",\n JournalEntryTypes = \"JournalEntryTypes\",\n Languages = \"Languages\",\n LegalEntityCategories = \"LegalEntityCategories\",\n LegislativeFixedExchangeRates = \"LegislativeFixedExchangeRates\",\n DocumentLockTypes = \"DocumentLockTypes\",\n MandatoryAccounts = \"MandatoryAccounts\",\n MandatoryChartsOfAccounts = \"MandatoryChartsOfAccounts\",\n MinorAssetStatuses = \"MinorAssetStatuses\",\n Modules = \"Modules\",\n MonthsOfYear = \"MonthsOfYear\",\n MultiplePostingDateAccountingType = \"MultiplePostingDateAccountingType\",\n NotificationTypes = \"NotificationTypes\",\n NotificationTypeGroups = \"NotificationTypeGroups\",\n NumberRangeTypes = \"NumberRangeTypes\",\n NumberRangeWildcards = \"NumberRangeWildcards\",\n PayableReceivableTypes = \"PayableReceivableTypes\",\n PaymentDocumentItemTypes = \"PaymentDocumentItemTypes\",\n PaymentMethods = \"PaymentMethods\",\n PaymentOrderFormats = \"PaymentOrderFormats\",\n PaymentOrderOutput = \"PaymentOrderOutput\",\n PaymentStatuses = \"PaymentStatuses\",\n PrAbsenceCategoryLegislativeTypes = \"PrAbsenceCategoryLegislativeTypes\",\n PrAttendanceStatuses = \"PrAttendanceStatuses\",\n PrChildDeductionOrders = \"PrChildDeductionOrders\",\n PrCzechReductionLimits = \"PrCzechReductionLimits\",\n PrDisabilityDiscountAmounts = \"PrDisabilityDiscountAmounts\",\n PrDisabilityTypes = \"PrDisabilityTypes\",\n PrEmployeeStates = \"PrEmployeeStates\",\n PrEmploymentTypes = \"PrEmploymentTypes\",\n PrExtraSalaryComputationTypes = \"PrExtraSalaryComputationTypes\",\n PrExtraSalaryLegislativeValues = \"PrExtraSalaryLegislativeValues\",\n PrExtraSalaryTypes = \"PrExtraSalaryTypes\",\n PrFormOfStudyTypes = \"PrFormOfStudyTypes\",\n PrIdentityDocumentTypes = \"PrIdentityDocumentTypes\",\n PrIncomeTaxDiscounts = \"PrIncomeTaxDiscounts\",\n PrInsuranceBankAccountsPredefined = \"PrInsuranceBankAccountsPredefined\",\n PrInsuranceBankAccountTypes = \"PrInsuranceBankAccountTypes\",\n PrInsuranceCompaniesPredefined = \"PrInsuranceCompaniesPredefined\",\n PrInsuranceCompanyTypes = \"PrInsuranceCompanyTypes\",\n PrLegislativeAverageSalaries = \"PrLegislativeAverageSalaries\",\n PrPayrollComponentCategoryTypes = \"PrPayrollComponentCategoryTypes\",\n PrPayrollComponentTypes = \"PrPayrollComponentTypes\",\n PrPayslipEmploymentItemTypes = \"PrPayslipEmploymentItemTypes\",\n PrPayslipItemTypes = \"PrPayslipItemTypes\",\n PrPayslipLayoutGroups = \"PrPayslipLayoutGroups\",\n PrPayslipLayoutItems = \"PrPayslipLayoutItems\",\n PrSalaryComponentTypes = \"PrSalaryComponentTypes\",\n PrSex = \"PrSex\",\n PrTaxDiscountTypes = \"PrTaxDiscountTypes\",\n PrUnseizableAmounts = \"PrUnseizableAmounts\",\n PrWorkingPatternTypes = \"PrWorkingPatternTypes\",\n PeriodDays = \"PeriodDays\",\n PostedStatuses = \"PostedStatuses\",\n PostingRuleDocumentTypes = \"PostingRuleDocumentTypes\",\n PrBaseTypes = \"PrBaseTypes\",\n PrChildSupportDeductionTypes = \"PrChildSupportDeductionTypes\",\n PrDeductionCalculationTypes = \"PrDeductionCalculationTypes\",\n PrDeductionEntityTypes = \"PrDeductionEntityTypes\",\n PrDeductionStatuses = \"PrDeductionStatuses\",\n PrDeductionTypes = \"PrDeductionTypes\",\n PrDistrainmentDeductionTypes = \"PrDistrainmentDeductionTypes\",\n PrEntityValueSources = \"PrEntityValueSources\",\n PrFixedBonusPayOutImpacts = \"PrFixedBonusPayOutImpacts\",\n PrFixedBonusTaxImpacts = \"PrFixedBonusTaxImpacts\",\n Products = \"Products\",\n PrPayslipOverrideStatuses = \"PrPayslipOverrideStatuses\",\n PrWorkIntervalTypes = \"PrWorkIntervalTypes\",\n PurchaseStatuses = \"PurchaseStatuses\",\n ReceivableAdjustmentGroups = \"ReceivableAdjustmentGroups\",\n ReceivableAdjustmentTypes = \"ReceivableAdjustmentTypes\",\n RecurrentPaymentStates = \"RecurrentPaymentStates\",\n RecurringTaskIntervals = \"RecurringTaskIntervals\",\n RecurringTaskPeriods = \"RecurringTaskPeriods\",\n RecurringTaskStates = \"RecurringTaskStates\",\n RecurringTaskTypes = \"RecurringTaskTypes\",\n ReportSectionTypes = \"ReportSectionTypes\",\n ReportTypes = \"ReportTypes\",\n RequiredAccountTypes = \"RequiredAccountTypes\",\n RosumJobStatuses = \"RosumJobStatuses\",\n Selections = \"Selections\",\n SignatoryPersons = \"SignatoryPersons\",\n SubscriptionStatuses = \"SubscriptionStatuses\",\n SubscriptionTypes = \"SubscriptionTypes\",\n TaxApplicabilities = \"TaxApplicabilities\",\n TaxCalendarTaxTypes = \"TaxCalendarTaxTypes\",\n TaxDepreciationCategories = \"TaxDepreciationCategories\",\n TaxDepreciationCoefficients = \"TaxDepreciationCoefficients\",\n TaxPriceLimits = \"TaxPriceLimits\",\n TaxStatementSubmitters = \"TaxStatementSubmitters\",\n TicketStatuses = \"TicketStatuses\",\n TimeFormats = \"TimeFormats\",\n TimeZones = \"TimeZones\",\n TypeOfBusinesses = \"TypeOfBusinesses\",\n UnitsOfMeasure = \"UnitsOfMeasure\",\n UserStatuses = \"UserStatuses\",\n VariantAccessTypes = \"VariantAccessTypes\",\n VariantTypes = \"VariantTypes\",\n Vats = \"Vats\",\n VatControlStatements = \"VatControlStatements\",\n VatControlStatementSections = \"VatControlStatementSections\",\n VatDeductionTypes = \"VatDeductionTypes\",\n VatOsses = \"VatOsses\",\n VatRateTypes = \"VatRateTypes\",\n VatReverseCharges = \"VatReverseCharges\",\n VatStatements = \"VatStatements\",\n VatStatementFrequencies = \"VatStatementFrequencies\",\n VatStatementSections = \"VatStatementSections\",\n VatStatementSectionCategories = \"VatStatementSectionCategories\",\n VatStatementStatuses = \"VatStatementStatuses\",\n VatStatuses = \"VatStatuses\",\n VatVieses = \"VatVieses\",\n WebSocketMessageTypes = \"WebSocketMessageTypes\",\n WriteOffTypes = \"WriteOffTypes\",\n Documents = \"Documents\",\n PrInsuranceCompanies = \"PrInsuranceCompanies\",\n CashReceipts = \"CashReceipts\",\n AccountAssignments = \"AccountAssignments\",\n CorrectiveInvoicesReceived = \"CorrectiveInvoicesReceived\",\n InvoicesReceived = \"InvoicesReceived\",\n OtherLiabilities = \"OtherLiabilities\",\n ProformaInvoicesReceived = \"ProformaInvoicesReceived\",\n CorrectiveInvoicesIssued = \"CorrectiveInvoicesIssued\",\n InvoicesIssued = \"InvoicesIssued\",\n OtherReceivables = \"OtherReceivables\",\n ProformaInvoicesIssued = \"ProformaInvoicesIssued\",\n DeferredDocuments = \"DeferredDocuments\",\n DeferredPlans = \"DeferredPlans\",\n ActionLogs = \"ActionLogs\",\n Assets = \"Assets\",\n DocumentAssetEntries = \"DocumentAssetEntries\",\n DocumentMinorAssetItems = \"DocumentMinorAssetItems\",\n MinorAssets = \"MinorAssets\",\n MinorAssetHistoryEntries = \"MinorAssetHistoryEntries\",\n UnorganizedAssets = \"UnorganizedAssets\",\n BackgroundJobs = \"BackgroundJobs\",\n BusinessPartners = \"BusinessPartners\",\n CbaCategories = \"CbaCategories\",\n CbaEntries = \"CbaEntries\",\n ChartedAccountAssignments = \"ChartedAccountAssignments\",\n ChartsOfAccounts = \"ChartsOfAccounts\",\n CommunicationEntries = \"CommunicationEntries\",\n Companies = \"Companies\",\n CompanyRoles = \"CompanyRoles\",\n CompanySettings = \"CompanySettings\",\n CurrenciesUsedByCompany = \"CurrenciesUsedByCompany\",\n CurrenciesWithExchangeRateInfo = \"CurrenciesWithExchangeRateInfo\",\n CustomerPortalPayments = \"CustomerPortalPayments\",\n DashboardTasks = \"DashboardTasks\",\n DataBoxes = \"DataBoxes\",\n IsdocImportDocuments = \"IsdocImportDocuments\",\n MoneyS3ImportDocuments = \"MoneyS3ImportDocuments\",\n PohodaImports = \"PohodaImports\",\n PohodaImportDocuments = \"PohodaImportDocuments\",\n PohodaMappings = \"PohodaMappings\",\n ClearingDocumentLinks = \"ClearingDocumentLinks\",\n DocumentDeleteLogs = \"DocumentDeleteLogs\",\n DocumentDrafts = \"DocumentDrafts\",\n PayingDocuments = \"PayingDocuments\",\n UndirectedDocumentLinks = \"UndirectedDocumentLinks\",\n VatStatementDocuments = \"VatStatementDocuments\",\n ElectronicSubmissions = \"ElectronicSubmissions\",\n ElectronicSubmissionPeriodWithDeletedDocuments = \"ElectronicSubmissionPeriodWithDeletedDocuments\",\n ExchangeRates = \"ExchangeRates\",\n ExportLogs = \"ExportLogs\",\n FilesMetadata = \"FilesMetadata\",\n FiscalYears = \"FiscalYears\",\n FiscalYearCloses = \"FiscalYearCloses\",\n FlattenAccounts = \"FlattenAccounts\",\n GeneralRoles = \"GeneralRoles\",\n Hotspots = \"Hotspots\",\n InboxFiles = \"InboxFiles\",\n InboxFileLogs = \"InboxFileLogs\",\n InboxItemLogs = \"InboxItemLogs\",\n InternalDocuments = \"InternalDocuments\",\n InvoiceServiceIntegrations = \"InvoiceServiceIntegrations\",\n ItemTemplates = \"ItemTemplates\",\n CompoundJournalEntries = \"CompoundJournalEntries\",\n JournalEntries = \"JournalEntries\",\n SingleJournalEntries = \"SingleJournalEntries\",\n LabelHierarchies = \"LabelHierarchies\",\n NotificationSettings = \"NotificationSettings\",\n Notifications = \"Notifications\",\n NumberRanges = \"NumberRanges\",\n NumberRangeDefinitions = \"NumberRangeDefinitions\",\n Organizations = \"Organizations\",\n BankStatements = \"BankStatements\",\n BankStatementDrafts = \"BankStatementDrafts\",\n BankTransactions = \"BankTransactions\",\n BankTransactionDuplicates = \"BankTransactionDuplicates\",\n CompanyBankAccounts = \"CompanyBankAccounts\",\n PostingRules = \"PostingRules\",\n CashBoxes = \"CashBoxes\",\n CashReceiptsIssued = \"CashReceiptsIssued\",\n CashReceiptsReceived = \"CashReceiptsReceived\",\n PaymentDocumentDrafts = \"PaymentDocumentDrafts\",\n UndirectedPaymentDocumentLinks = \"UndirectedPaymentDocumentLinks\",\n PrPayslips = \"PrPayslips\",\n PrAbsenceCategories = \"PrAbsenceCategories\",\n PrAttendances = \"PrAttendances\",\n PrAttendancesWithWorkingPatterns = \"PrAttendancesWithWorkingPatterns\",\n PrEmployees = \"PrEmployees\",\n PrEmployments = \"PrEmployments\",\n PrEmploymentTemplates = \"PrEmploymentTemplates\",\n PrExtraSalaries = \"PrExtraSalaries\",\n PrGroupDeductions = \"PrGroupDeductions\",\n PrHealthInsuranceCompanies = \"PrHealthInsuranceCompanies\",\n PrIndividualDeductions = \"PrIndividualDeductions\",\n PrLifeInsuranceCompanies = \"PrLifeInsuranceCompanies\",\n PrPayrollSettings = \"PrPayrollSettings\",\n PrPensionInsuranceCompanies = \"PrPensionInsuranceCompanies\",\n PrSalaryAdvances = \"PrSalaryAdvances\",\n PrSalaryComponents = \"PrSalaryComponents\",\n PrTaxpayerDeclarations = \"PrTaxpayerDeclarations\",\n PrWorkingPatterns = \"PrWorkingPatterns\",\n RecurringTasks = \"RecurringTasks\",\n BalanceSheetLayouts = \"BalanceSheetLayouts\",\n IncomeStatementLayouts = \"IncomeStatementLayouts\",\n RequiredAccounts = \"RequiredAccounts\",\n RossumJobs = \"RossumJobs\",\n TaxCalendars = \"TaxCalendars\",\n AccountAssignmentTemplates = \"AccountAssignmentTemplates\",\n BalanceSheetLayoutTemplates = \"BalanceSheetLayoutTemplates\",\n ChartOfAccountsTemplates = \"ChartOfAccountsTemplates\",\n IncomeStatementLayoutTemplates = \"IncomeStatementLayoutTemplates\",\n Tickets = \"Tickets\",\n Users = \"Users\",\n DefaultVariants = \"DefaultVariants\",\n Variants = \"Variants\",\n VatClassifications = \"VatClassifications\",\n PropertyTranslations = \"PropertyTranslations\",\n BillingAddresses = \"BillingAddresses\",\n BillingContacts = \"BillingContacts\",\n EnabledFeatures = \"EnabledFeatures\",\n Invitations = \"Invitations\",\n Subscriptions = \"Subscriptions\",\n Tenants = \"Tenants\",\n}\n\nexport enum OdataActionName {\n BackgroundJobCancel = \"BackgroundJobCancel\",\n BackgroundJobMarkSeen = \"BackgroundJobMarkSeen\",\n BackgroundJobRollback = \"BackgroundJobRollback\",\n BankTransactionsConfirm = \"BankTransactionsConfirm\",\n BankTransactionsMatchMultiple = \"BankTransactionsMatchMultiple\",\n BankTransactionsPostMultiple = \"BankTransactionsPostMultiple\",\n DocumentDraftsPostMultiple = \"DocumentDraftsPostMultiple\",\n DocumentDraftCancelRossum = \"DocumentDraftCancelRossum\",\n CashBoxCreateReceipt = \"CashBoxCreateReceipt\",\n ElectronicSubmissionsLock = \"ElectronicSubmissionsLock\",\n ElectronicSubmissionUnlock = \"ElectronicSubmissionUnlock\",\n DocumentDraftExtractIsdoc = \"DocumentDraftExtractIsdoc\",\n DocumentDraftExtractRossum = \"DocumentDraftExtractRossum\",\n UserNotificationsMarkAllIsRead = \"UserNotificationsMarkAllIsRead\",\n PrEmploymentRemoveTemplate = \"PrEmploymentRemoveTemplate\",\n InboxFileRemoveInboxFileLeaveFileMetadata = \"InboxFileRemoveInboxFileLeaveFileMetadata\",\n UserNotificationSwitchIsRead = \"UserNotificationSwitchIsRead\",\n}\n\nexport const ODataActionPath = {\n [OdataActionName.BackgroundJobCancel]: \"Cancel\",\n [OdataActionName.BackgroundJobMarkSeen]: \"MarkSeen\",\n [OdataActionName.BackgroundJobRollback]: \"Rollback\",\n [OdataActionName.BankTransactionsConfirm]: \"Confirm\",\n [OdataActionName.BankTransactionsMatchMultiple]: \"MatchMultiple\",\n [OdataActionName.BankTransactionsPostMultiple]: \"PostMultiple\",\n [OdataActionName.DocumentDraftsPostMultiple]: \"PostMultiple\",\n [OdataActionName.DocumentDraftCancelRossum]: \"CancelRossum\",\n [OdataActionName.CashBoxCreateReceipt]: \"CreateReceipt\",\n [OdataActionName.ElectronicSubmissionsLock]: \"Lock\",\n [OdataActionName.ElectronicSubmissionUnlock]: \"Unlock\",\n [OdataActionName.DocumentDraftExtractIsdoc]: \"ExtractIsdoc\",\n [OdataActionName.DocumentDraftExtractRossum]: \"ExtractRossum\",\n [OdataActionName.UserNotificationsMarkAllIsRead]: \"MarkAllIsRead\",\n [OdataActionName.PrEmploymentRemoveTemplate]: \"RemoveTemplate\",\n [OdataActionName.InboxFileRemoveInboxFileLeaveFileMetadata]: \"RemoveInboxFileLeaveFileMetadata\",\n [OdataActionName.UserNotificationSwitchIsRead]: \"SwitchIsRead\",\n};\n\nexport interface IBankTransactionsConfirmParameters {\n BankTransactionIds: number[];\n}\n\nexport interface IBankTransactionsMatchMultipleParameters {\n DocumentId: number;\n TransactionIds: number[];\n}\n\nexport interface IBankTransactionsPostMultipleParameters {\n AccountId?: number;\n TransactionIds: number[];\n}\n\nexport interface IDocumentDraftsPostMultipleParameters {\n DraftIds: number[];\n EntityTypeCode: string;\n DateAccountingTypeCode?: string;\n DateAccounting?: string;\n CreditAccountNumber?: string;\n DebitAccountNumber?: string;\n AccountAssignmentName?: string;\n IsAccountAssignmentCustom?: boolean;\n DocumentVatClassificationId?: number;\n CbaCategoryId?: number;\n CbaTaxImpactCode?: string;\n TaxPercentage?: number;\n IsAssetAcquisition?: boolean;\n}\n\nexport interface IDocumentDraftCancelRossumParameters {\n BackgroundJobId: number;\n}\n\nexport interface ICashBoxCreateReceiptParameters {\n Document: IDocumentEntity;\n}\n\nexport interface IElectronicSubmissionsLockParameters {\n Company?: ICompanyEntity;\n DatePeriodStart?: string;\n DatePeriodEnd?: string;\n ElectronicSubmissionTypeCode?: string;\n ElectronicSubmissionSubmissionTypeCode?: string;\n DateCorrectionDiscovered?: string;\n CorrectionReason?: string;\n ReferenceNumberOfNotice?: string;\n ForceLock?: boolean;\n}\n\nexport interface IDocumentDraftExtractIsdocParameters {\n FileMetadata: IFileMetadataEntity;\n WorkDate?: string;\n}\n\nexport interface IDocumentDraftExtractRossumParameters {\n FileMetadata: IFileMetadataEntity;\n WorkDate?: string;\n}\n\nexport interface IPrEmploymentRemoveTemplateParameters {\n TargetDate: string;\n SynchronizeWithDefaultValues: boolean;\n}\n\nexport interface IOdataActionParameters {\n [OdataActionName.BackgroundJobCancel]: null;\n [OdataActionName.BackgroundJobMarkSeen]: null;\n [OdataActionName.BackgroundJobRollback]: null;\n [OdataActionName.BankTransactionsConfirm]: IBankTransactionsConfirmParameters;\n [OdataActionName.BankTransactionsMatchMultiple]: IBankTransactionsMatchMultipleParameters;\n [OdataActionName.BankTransactionsPostMultiple]: IBankTransactionsPostMultipleParameters;\n [OdataActionName.DocumentDraftsPostMultiple]: IDocumentDraftsPostMultipleParameters;\n [OdataActionName.DocumentDraftCancelRossum]: IDocumentDraftCancelRossumParameters;\n [OdataActionName.CashBoxCreateReceipt]: ICashBoxCreateReceiptParameters;\n [OdataActionName.ElectronicSubmissionsLock]: IElectronicSubmissionsLockParameters;\n [OdataActionName.ElectronicSubmissionUnlock]: null;\n [OdataActionName.DocumentDraftExtractIsdoc]: IDocumentDraftExtractIsdocParameters;\n [OdataActionName.DocumentDraftExtractRossum]: IDocumentDraftExtractRossumParameters;\n [OdataActionName.UserNotificationsMarkAllIsRead]: null;\n [OdataActionName.PrEmploymentRemoveTemplate]: IPrEmploymentRemoveTemplateParameters;\n [OdataActionName.InboxFileRemoveInboxFileLeaveFileMetadata]: null;\n [OdataActionName.UserNotificationSwitchIsRead]: null;\n}","export enum AccountCategoryCode {\n BalanceSheet = \"BS\",\n IncomeStatement = \"IS\",\n FinancialStatement = \"FS\",\n Internal = \"IN\",\n Extension = \"EX\",\n}\n\nexport enum AccountingCode {\n AccountingForBusiness = \"CzAccBiz\",\n CashBasisAccounting = \"CzCashBas\",\n}\n\nexport enum AccountRoleCode {\n AccountsPayable = \"AP\",\n AccountsReceivable = \"AR\",\n Bank = \"BANK\",\n Cash = \"CASH\",\n ValueAddedTax = \"VAT\",\n ValueAddedTaxBalance = \"VATBALANCE\",\n Asset = \"ASSET\",\n Other = \"OTHER\",\n}\n\nexport enum AccountTypeCode {\n Assets = \"A\",\n Liabilities = \"L\",\n Income = \"I\",\n Expense = \"E\",\n None = \"N\",\n Opening = \"O\",\n Closing = \"C\",\n Balancing = \"B\",\n}\n\nexport enum AccruedProcessingTypeCode {\n AccruedExpense = \"AccruedExpense\",\n AccruedRevenue = \"AccruedRevenue\",\n EstimatedAccruedExpense = \"EstimatedAccruedExpense\",\n EstimatedAccruedRevenue = \"EstimatedAccruedRevenue\",\n}\n\nexport enum ActionTypeCode {\n ExcelExport = \"XLS\",\n CsvExport = \"CSV\",\n PDFExport = \"PDF\",\n XMLExport = \"XML\",\n}\n\nexport enum AddressTypeCode {\n BusinessPartnerBilling = \"BusinessPartnerBill\",\n BusinessPartnerCorrespondence = \"BusinessPartnerCorr\",\n CompanyLegal = \"CompanyLegal\",\n CompanyCommunication = \"CompanyCommunication\",\n EmployeeLocal = \"EmployeeLocal\",\n EmployeeForeign = \"EmployeeForeign\",\n EmployeeContact = \"EmployeeContact\",\n}\n\nexport enum ApprovalStatusTypeCode {\n Approved = \"Approved\",\n NotNeeded = \"NotNeeded\",\n Pending = \"Pending\",\n Rejected = \"Rejected\",\n Canceled = \"Canceled\",\n}\n\nexport enum AssetDisposalTypeCode {\n Damaged = \"DAMAGE\",\n Disposed = \"DISPOSAL\",\n TransferredFreeOfCharge = \"GIFT\",\n Sold = \"SALE\",\n TransferredToPersonalUse = \"TRANSFER\",\n}\n\nexport enum AssetItemTypeCode {\n Acquisition = \"ACQ\",\n Disposal = \"DIS\",\n PutInUse = \"USE\",\n TechnicalImprovement = \"IMP\",\n IncreaseOfPrice = \"INC\",\n ReductionOfPrice = \"RED\",\n AccountingDepreciation = \"MAD\",\n TaxDepreciation = \"TAX\",\n DepreciationOfTheResidualValue = \"DRV\",\n ImportOfOldAsset = \"OLD\",\n}\n\nexport enum AssetStatusCode {\n Created = \"CRE\",\n InUse = \"USE\",\n Disposed = \"DIS\",\n}\n\nexport enum AssetTypeCode {\n Intangible = \"Intan\",\n Tangible = \"Tan\",\n}\n\nexport enum AssetValueCode {\n MinimalFixedAssetValue = \"CZ_AV0\",\n MinimalFixedAssetValueFrom2021 = \"CZ_AV21\",\n}\n\nexport enum BackgroundJobStatusCode {\n NotStarted = \"NotStarted\",\n Running = \"Running\",\n PendingUserInput = \"PendingUserInput\",\n Finished = \"Finished\",\n Error = \"Error\",\n Canceled = \"Canceled\",\n Cancelling = \"Cancelling\",\n Finishing = \"Finishing\",\n Expired = \"Expired\",\n FinishedWithWarning = \"FinishedWithWarning\",\n}\n\nexport enum BackgroundJobTypeCode {\n BankStatementImport = \"BankImport\",\n PostingRules = \"PostingRules\",\n FileStorageCleanup = \"AzureStorageCleanup\",\n VerificationCleanup = \"VerificationCleanup\",\n UpdateSentDataBoxMessages = \"UpdateSentDBM\",\n ReceivingNewDataBoxMessages = \"ReceiveDBM\",\n UpdateDataBoxCredentials = \"UpdateDBCredentials\",\n GoPayPaymentCreate = \"GoPayPaymentCreate\",\n GoPayPaymentCheckStatus = \"GoPayPaymentStatus\",\n DeferredDocumentPlanProcessing = \"DeferredPlanProc\",\n AssetsDepreciationUpdate = \"DepreciationUpdate\",\n GetS5InvoicePDF = \"GetS5InvoicePdf\",\n RecurringTaskProcessing = \"RecurringTaskProc\",\n LoadExchangeRates = \"LoadExchangeRates\",\n UserSettingsSynchronization = \"SyncUserSettings\",\n BankAPIStatementImport = \"BankApiImport\",\n BusinessPartnerUpdate = \"BusinessPartnerUpdt\",\n SessionCleanup = \"SessionCleanup\",\n InboxNotification = \"InboxNotification\",\n NotificationCleanup = \"NotificationCleanup\",\n CompanyDelete = \"CompanyDelete\",\n RetryDeleteCompaniesAtNight = \"RetryCompanyDelete\",\n CleanupLoginLogs = \"CleanupLoginLogs\",\n TenantDelete = \"TenantDelete\",\n DataImportCleanup = \"DataImportCleanup\",\n DocumentForApprovalNotification = \"ApprovalNotification\",\n ConfirmationOfBankTransactions = \"BankTransactionsConfirmer\",\n MultiplePostOfBankTransactions = \"BankTransactionsPostMultiple\",\n AttendanceCreation = \"PrAttendanceCreation\",\n MultipleMatchOfBankTransactions = \"BankTransactionsMatchMultiple\",\n RossumDataMining = \"RossumDataMining\",\n RossumDataMiningSystem = \"RossumDataMiningSystem\",\n FailedLoginAttemptsCleanup = \"LoginFailedAttemptsCleanup\",\n CleanupInactiveUsers = \"CleanupInactiveUsers\",\n CleanupTenantSelectionLogs = \"CleanupTenantSelectionLogs\",\n IsdocImport = \"IsdocImport\",\n MoneyS3Import = \"MoneyS3Import\",\n PohodaImport = \"PohodaImport\",\n CalculateTenantScore = \"CalculateTenantScore\",\n SynchronizeToDaktela = \"SynchronizeToDaktela\",\n SynchronizeToCrmScheduled = \"SynchronizeToCrmScheduled\",\n SynchronizeToCrm = \"SynchronizeToCrm\",\n SetFixedExchangeRates = \"FixedExchangeRateSetting\",\n TemporalSalesReport = \"TemporalSalesReportJob\",\n CreatingDemoCompany = \"CreateDemoTenantJob\",\n PostMultipleDrafts = \"DraftsPostMultiple\",\n BillingProcessing = \"BillingProcessing\",\n ImportsDocumentsFromInvoiceServices = \"InvoiceServiceIntegrationJob\",\n ImportsDocumentsFromInvoiceService = \"InvoiceServiceIntegrationBkg\",\n Rel2024_12VatStatementGeneration = \"Rel2024_12_VatStatementGen\",\n}\n\nexport enum BankAccountNumberFormatTypeCode {\n Inner = \"I\",\n Edit = \"E\",\n}\n\nexport enum BankAccountTypeCode {\n BusinessPartner = \"BusinessPartner\",\n CompanyBankAccount = \"Company\",\n InsuranceCompany = \"InsuranceCompany\",\n}\n\nexport enum BankApiStatementImportFrequencyCode {\n Daily = \"D\",\n Monthly = \"M\",\n Weekly = \"W\",\n}\n\nexport enum BankApiStatementImportRangeCode {\n CurrentActiveFiscalYear = \"FiscalYear\",\n FromDate = \"Custom\",\n}\n\nexport enum BankCode {\n KomerčníBanka_A_s_ = \"0100\",\n ČeskoslovenskáObchodníBanka_A_S_ = \"0300\",\n MONETAMoneyBank_A_s_ = \"0600\",\n ČESKÁNÁRODNÍBANKA = \"0710\",\n ČeskáSpořitelna_A_s_ = \"0800\",\n FioBanka_A_s_ = \"2010\",\n MUFGBankEuropeN_V_PragueBranch = \"2020\",\n Citfin_SpořitelníDružstvo = \"2060\",\n TRINITYBANKA_s_ = \"2070\",\n HypotečníBanka_A_s_ = \"2100\",\n PeněžníDům_SpořitelníDružstvo = \"2200\",\n Artesa_SpořitelníDružstvo = \"2220\",\n BankaCREDITASA_s_ = \"2250\",\n NEYSpořitelníDružstvo = \"2260\",\n PodnikatelskáDružstevníZáložna = \"2275\",\n CitibankEuropePlc_OrganizačníSložka = \"2600\",\n UniCreditBankCzechRepublicAndSlovakia_A_s_ = \"2700\",\n AirBankA_s_ = \"3030\",\n BNPParibasPersonalFinanceSA_OdštěpnýZávod = \"3050\",\n PKOBPS_A__CzechBranch = \"3060\",\n INGBankN_V_ = \"3500\",\n ExpobankCZA_s_ = \"4000\",\n NárodníRozvojováBanka_A_s_ = \"4300\",\n RaiffeisenbankA_s_ = \"5500\",\n J_AND_TBANKA_A_s_ = \"5800\",\n PPFBankaA_s_ = \"6000\",\n RaiffeisenbankA_s_Do31_12_2021EquaBankA_s_ = \"6100\",\n COMMERZBANKAktiengesellschaft_PobočkaPraha = \"6200\",\n MBankS_A__OrganizačníSložka = \"6210\",\n BNPParibasS_A__PobočkaČeskáRepublika = \"6300\",\n PartnersBanka_A_s_ = \"6363\",\n VšeobecnáÚverováBankaA_s__PobočkaPraha = \"6700\",\n SberbankCZ_A_s_ = \"6800\",\n DeutscheBankAktiengesellschaftFilialePrag_OrganizačníSložka = \"7910\",\n RaiffeisenStavebníSpořitelnaA_s_ = \"7950\",\n ČSOBStavebníSpořitelna_A_s_ = \"7960\",\n MONETAStavebníSpořitelna_A_s_ = \"7970\",\n ModráPyramidaStavebníSpořitelna_A_s_ = \"7990\",\n VolksbankRaiffeisenbankNordoberpfalzEGPobočkaCheb = \"8030\",\n OberbankAGPobočkaČeskáRepublika = \"8040\",\n StavebníSpořitelnaČeskéSpořitelny_A_s_ = \"8060\",\n ČeskáExportníBanka_A_s_ = \"8090\",\n HSBCContinentalEurope_CzechRepublic = \"8150\",\n SparkasseOberlausitzNiederschlesien = \"8190\",\n FASFinanceCompanyS_r_o_ = \"8198\",\n MoneyPoloEuropeS_r_o_ = \"8199\",\n PRIVATBANKDerRaiffeisenlandesbankOberösterreichAktiengesellschaft_PobočkaČeskáRepublika = \"8200\",\n PaymentExecutionS_r_o_ = \"8220\",\n ABAPAYS_r_o_ = \"8230\",\n DružstevníZáložnaKredit = \"8240\",\n BankOfChinaCEELtd_PragueBranch = \"8250\",\n BankOfCommunicationsCo__Ltd__PragueBranchOdštěpnýZávod = \"8255\",\n IndustrialAndCommercialBankOfChinaLimited_PragueBranch_OdštěpnýZávod = \"8265\",\n FairplayPayS_r_o_ = \"8270\",\n VIVAPAYMENTSERVICESS_A_OdštěpnýZávod = \"8272\",\n BEfektA_s_ = \"8280\",\n MercuriusPartnersS_r_o_ = \"8293\",\n BESTPAYS_r_o_ = \"8299\",\n FerratumBankPlc = \"8500\",\n}\n\nexport enum BankExchangeRateFreshnessCode {\n Current = \"Current\",\n PreviousDay = \"PrevDay\",\n}\n\nexport enum BankPaymentOrderStateCode {\n Exported = \"Exported\",\n Sent = \"Sent\",\n CustomerPortal = \"CustomerPortal\",\n}\n\nexport enum BankTransactionDocumentNumberLocationCode {\n RemittanceInformation = \"RI\",\n SpecificSymbol = \"SS\",\n VariableSymbol = \"VS\",\n PaymentInformation = \"PI\",\n}\n\nexport enum BankTransactionTypeCode {\n IncomingPayment = \"In\",\n OutgoingPayment = \"Out\",\n Other = \"Oth\",\n}\n\nexport enum BillingItemTypeCode {\n Company = \"Company\",\n Module = \"Module\",\n User = \"User\",\n AcceptableUserPolicy = \"AUP\",\n ArchivedCompany = \"ArchivComp\",\n Discount = \"Discount\",\n}\n\nexport enum BillingModuleTypeCode {\n Archived = \"Archived\",\n CashBased = \"CashBased\",\n DoubleEntry = \"DoubleEntry\",\n ExtraDocument = \"ExtraDocument\",\n IndividualCashBased = \"IndividualCashBased\",\n IndividualDoubleEntry = \"IndividualDoubleEntry\",\n Rossum = \"Rossum\",\n Storage = \"Storage\",\n IndividualDiscount = \"IndividualDiscount\",\n TrialDiscount = \"TrialDiscount\",\n RossumFreeDocuments = \"RossumDiscount\",\n}\n\nexport enum BillingPricingCode {\n CZArchived = \"CzArchived\",\n CZCashBased = \"CzCashBased\",\n CZDoubleEntry = \"CzDoubleEntry\",\n CZExtraDocument2024_5 = \"CzExtraDocument2024A\",\n CZExtraDocument2024_6 = \"CzExtraDocument2024B\",\n CZIndividualCashBased = \"CzIndividualCashBased\",\n CZIndividualDoubleEntry = \"CzIndividualDoubleEntry\",\n CZRossum = \"CzRossum\",\n CZStorage = \"CzStorage\",\n}\n\nexport enum BookkeepingCode {\n DoubleentryBookkeeping = \"DE\",\n SingleentryBookkeeping = \"SE\",\n}\n\nexport enum BusinessPartnerDocumentDefaultTypeCode {\n Issued = \"Issued\",\n Received = \"Received\",\n}\n\nexport enum CbaAssetDisposalTypeCode {\n AssetDamageNaturalDisaster_UnknownPerpetrator = \"Damage\",\n GiftOrTransferToPersonalUse = \"GiftTransfer\",\n OtherDamage = \"OtherDamage\",\n PhysicalDisposal = \"PhysicalDisposal\",\n Sale = \"Sale\",\n}\n\nexport enum CbaCategoryTaxImpactCode {\n Nontax = \"NonTax\",\n Partial = \"Partial\",\n Tax = \"Tax\",\n VATCorrection = \"VatCorr\",\n}\n\nexport enum CbaEntryLedgerDocumentTypeCode {\n Bank = \"Bank\",\n CashBox = \"CashBox\",\n InternalDocument = \"InternalDocument\",\n ProformaInvoice = \"ProformaDocument\",\n}\n\nexport enum CbaEntrySpecialVatCalculationCode {\n AssetInAutomatedVATInclusionMode = \"AAvi\",\n AssetInReverseCharge = \"ARCh\",\n ReverseCharge = \"RCh\",\n}\n\nexport enum CbaEntryTypeCode {\n Expense = \"Expense\",\n Income = \"Income\",\n}\n\nexport enum ClearedStatusCode {\n Cleared = \"C\",\n PartiallyCleared = \"P\",\n NotCleared = \"N\",\n N_A = \"_\",\n}\n\nexport enum ColourThemeCode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\nexport enum CommunicationEntryChannelCode {\n Email = \"EMAIL\",\n DataMessage = \"DATABOX\",\n BankAPI = \"BANKAPI\",\n}\n\nexport enum CommunicationEntryStateCode {\n Sent = \"SENT\",\n Delivered = \"DELIVERED\",\n Received = \"RECEIVED\",\n Undeliverable = \"UNDELIVERABLE\",\n Deleted = \"DELETED\",\n}\n\nexport enum CommunicationEntryTypeCode {\n Received = \"IN\",\n Sent = \"OUT\",\n}\n\nexport enum CommunicationTypeCode {\n User = \"User\",\n System = \"System\",\n}\n\nexport enum CompanyBankAccountTypeCode {\n Bank = \"BANK\",\n PaymentService = \"SERVICE\",\n}\n\nexport enum CompanyPermissionCode {\n Asset = \"Asset\",\n Audit = \"Audit\",\n Bank = \"Bank\",\n CanImport = \"CanImport\",\n CashBox = \"CashBox\",\n CustomerPortal = \"CustomerPortal\",\n DataBox = \"DataBox\",\n DocumentPosting = \"DocumentPosting\",\n FiscalYearClose = \"FiscalYearClose\",\n SortingFilesFromAPhotoFile = \"InBox\",\n InternalAndCorrectiveDocuments = \"InternalDocuments\",\n InvoicesIssued = \"InvoicesIssued\",\n InvoicesReceived = \"InvoicesReceived\",\n CustomerSettings = \"MasterData\",\n Payroll = \"PrPayroll\",\n PayrollSettings = \"PrPayrollSetting\",\n ReceivableAdjustments = \"ReceivableAdjustments\",\n RecurringTask = \"RecurringTask\",\n Reports = \"Reports\",\n VatStatement = \"VatStatement\",\n}\n\nexport enum CompanyRoleTypeCode {\n UserRole = \"User\",\n CustomerRole = \"Customer\",\n}\n\nexport enum CompanyStateCode {\n New = \"New\",\n Initialized = \"Initialized\",\n Archived = \"Archived\",\n DeleteFailed = \"DeleteFailed\",\n DeleteRetryFailed = \"DeleteRetryFailed\",\n WaitingForDelete = \"WaitingForDelete\",\n}\n\nexport enum ContactTypeCode {\n BusinessPartner = \"BusinessPartner\",\n CompanyCommunication = \"CompanyCommunication\",\n}\n\nexport enum CountryCode {\n Andorra = \"AD\",\n UnitedArabEmirates = \"AE\",\n Afghanistan = \"AF\",\n AntiguaAndBarbuda = \"AG\",\n Anguilla = \"AI\",\n Albania = \"AL\",\n Armenia = \"AM\",\n Angola = \"AO\",\n Antarctica = \"AQ\",\n Argentina = \"AR\",\n AmericanSamoa = \"AS\",\n Austria = \"AT\",\n Australia = \"AU\",\n Aruba = \"AW\",\n ÅlandIslands = \"AX\",\n Azerbaijan = \"AZ\",\n BosniaAndHerzegovina = \"BA\",\n Barbados = \"BB\",\n Bangladesh = \"BD\",\n Belgium = \"BE\",\n BurkinaFaso = \"BF\",\n Bulgaria = \"BG\",\n Bahrain = \"BH\",\n Burundi = \"BI\",\n Benin = \"BJ\",\n SaintBarthélemy = \"BL\",\n Bermuda = \"BM\",\n Brunei = \"BN\",\n Bolivia = \"BO\",\n Bonaire_SintEustasiusAndSaba = \"BQ\",\n Brazil = \"BR\",\n Bahamas = \"BS\",\n Bhutan = \"BT\",\n BouvetIsland = \"BV\",\n Botswana = \"BW\",\n Belarus = \"BY\",\n Belize = \"BZ\",\n Canada = \"CA\",\n CocosKeelingIslands = \"CC\",\n CongoDRC = \"CD\",\n CentralAfricanRepublic = \"CF\",\n Congo = \"CG\",\n CôteDIvoire = \"CI\",\n CookIslands = \"CK\",\n Chile = \"CL\",\n Cameroon = \"CM\",\n China = \"CN\",\n Colombia = \"CO\",\n CostaRica = \"CR\",\n Cuba = \"CU\",\n CaboVerde = \"CV\",\n Curaçao = \"CW\",\n ChristmasIsland = \"CX\",\n Cyprus = \"CY\",\n CzechRepublic = \"CZ\",\n Germany = \"DE\",\n Djibouti = \"DJ\",\n Denmark = \"DK\",\n Dominica = \"DM\",\n DominicanRepublic = \"DO\",\n Algeria = \"DZ\",\n Ecuador = \"EC\",\n Estonia = \"EE\",\n Egypt = \"EG\",\n WesternSahara = \"EH\",\n Eritrea = \"ER\",\n Spain = \"ES\",\n Ethiopia = \"ET\",\n Finland = \"FI\",\n Fiji = \"FJ\",\n FalklandIslands = \"FK\",\n Micronesia = \"FM\",\n FaroeIslands = \"FO\",\n France = \"FR\",\n Gabon = \"GA\",\n UnitedKingdom = \"GB\",\n Grenada = \"GD\",\n Georgia = \"GE\",\n FrenchGuiana = \"GF\",\n Guernsey = \"GG\",\n Ghana = \"GH\",\n Gibraltar = \"GI\",\n Greenland = \"GL\",\n Gambia = \"GM\",\n Guinea = \"GN\",\n Guadeloupe = \"GP\",\n EquatorialGuinea = \"GQ\",\n Greece = \"GR\",\n SouthGeorgiaAndTheSouthSandwichIslands = \"GS\",\n Guatemala = \"GT\",\n Guam = \"GU\",\n GuineaBissau = \"GW\",\n Guyana = \"GY\",\n HongKong = \"HK\",\n HeardIslandAndMcDonaldIslands = \"HM\",\n Honduras = \"HN\",\n Croatia = \"HR\",\n Haiti = \"HT\",\n Hungary = \"HU\",\n Switzerland = \"CH\",\n Indonesia = \"ID\",\n Ireland = \"IE\",\n Israel = \"IL\",\n IsleOfMan = \"IM\",\n India = \"IN\",\n BritishIndianOceanTerritory = \"IO\",\n Iraq = \"IQ\",\n Iran = \"IR\",\n Iceland = \"IS\",\n Italy = \"IT\",\n Jersey = \"JE\",\n Jamaica = \"JM\",\n Jordan = \"JO\",\n Japan = \"JP\",\n Kenya = \"KE\",\n Kyrgyzstan = \"KG\",\n Cambodia = \"KH\",\n Kiribati = \"KI\",\n Comoros = \"KM\",\n SaintKittsAndNevis = \"KN\",\n NorthKorea = \"KP\",\n SouthKorea = \"KR\",\n Kuwait = \"KW\",\n CaymanIslands = \"KY\",\n Kazakhstan = \"KZ\",\n Laos = \"LA\",\n Lebanon = \"LB\",\n SaintLucia = \"LC\",\n Liechtenstein = \"LI\",\n SriLanka = \"LK\",\n Liberia = \"LR\",\n Lesotho = \"LS\",\n Lithuania = \"LT\",\n Luxembourg = \"LU\",\n Latvia = \"LV\",\n Libya = \"LY\",\n Morocco = \"MA\",\n Monaco = \"MC\",\n Moldova = \"MD\",\n Montenegro = \"ME\",\n SaintMartin = \"MF\",\n Madagascar = \"MG\",\n MarshallIslands = \"MH\",\n NorthMacedonia = \"MK\",\n Mali = \"ML\",\n Myanmar = \"MM\",\n Mongolia = \"MN\",\n Macao = \"MO\",\n NorthernMarianaIslands = \"MP\",\n Martinique = \"MQ\",\n Mauritania = \"MR\",\n Montserrat = \"MS\",\n Malta = \"MT\",\n Mauritius = \"MU\",\n Maldives = \"MV\",\n Malawi = \"MW\",\n Mexico = \"MX\",\n Malaysia = \"MY\",\n Mozambique = \"MZ\",\n Namibia = \"NA\",\n NewCaledonia = \"NC\",\n Niger = \"NE\",\n NorfolkIsland = \"NF\",\n Nigeria = \"NG\",\n Nicaragua = \"NI\",\n Netherlands = \"NL\",\n Norway = \"NO\",\n Nepal = \"NP\",\n Nauru = \"NR\",\n Niue = \"NU\",\n NewZealand = \"NZ\",\n Oman = \"OM\",\n Panama = \"PA\",\n Peru = \"PE\",\n FrenchPolynesia = \"PF\",\n PapuaNewGuinea = \"PG\",\n Philippines = \"PH\",\n Pakistan = \"PK\",\n Poland = \"PL\",\n SaintPierreAndMiquelon = \"PM\",\n PitcairnIslands = \"PN\",\n PuertoRico = \"PR\",\n Palestine = \"PS\",\n Portugal = \"PT\",\n Palau = \"PW\",\n Paraguay = \"PY\",\n Qatar = \"QA\",\n Réunion = \"RE\",\n Romania = \"RO\",\n Serbia = \"RS\",\n Russia = \"RU\",\n Rwanda = \"RW\",\n SaudiArabia = \"SA\",\n SolomonIslands = \"SB\",\n Seychelles = \"SC\",\n Sudan = \"SD\",\n Sweden = \"SE\",\n Singapore = \"SG\",\n SaintHelena = \"SH\",\n Slovenia = \"SI\",\n Svalbard = \"SJ\",\n Slovakia = \"SK\",\n SierraLeone = \"SL\",\n SanMarino = \"SM\",\n Senegal = \"SN\",\n Somalia = \"SO\",\n Suriname = \"SR\",\n SouthSudan = \"SS\",\n SãoToméAndPríncipe = \"ST\",\n ElSalvador = \"SV\",\n SintMaarten = \"SX\",\n Syria = \"SY\",\n Eswatini = \"SZ\",\n TurksAndCaicosIslands = \"TC\",\n Chad = \"TD\",\n FrenchSouthernTerritories = \"TF\",\n Togo = \"TG\",\n Thailand = \"TH\",\n Tajikistan = \"TJ\",\n Tokelau = \"TK\",\n TimorLeste = \"TL\",\n Turkmenistan = \"TM\",\n Tunisia = \"TN\",\n Tonga = \"TO\",\n Turkey = \"TR\",\n TrinidadAndTobago = \"TT\",\n Tuvalu = \"TV\",\n Taiwan = \"TW\",\n Tanzania = \"TZ\",\n Ukraine = \"UA\",\n Uganda = \"UG\",\n U_S_MinorOutlyingIslands = \"UM\",\n UnitedStatesOfAmerica = \"US\",\n Uruguay = \"UY\",\n Uzbekistan = \"UZ\",\n VaticanCity = \"VA\",\n SaintVincentAndTheGrenadines = \"VC\",\n Venezuela = \"VE\",\n BritishVirginInslands = \"VG\",\n U_S_VirginIslands = \"VI\",\n Vietnam = \"VN\",\n Vanuatu = \"VU\",\n WallisAndFutuna = \"WF\",\n Samoa = \"WS\",\n Kosovo = \"XK\",\n Yemen = \"YE\",\n Mayotte = \"YT\",\n SouthAfrica = \"ZA\",\n Zambia = \"ZM\",\n Zimbabwe = \"ZW\",\n EuropeanUnion = \"XX\",\n InternationalMonetaryFund = \"YY\",\n}\n\nexport enum CountryClassificationCode {\n Domestic = \"Domestic\",\n EuropeanUnion = \"EEA\",\n OutsideTheEuropeanUnion = \"NonEEA\",\n}\n\nexport enum CountryOrUnionCode {\n Andorra = \"AD\",\n UnitedArabEmirates = \"AE\",\n Afghanistan = \"AF\",\n AntiguaAndBarbuda = \"AG\",\n Anguilla = \"AI\",\n Albania = \"AL\",\n Armenia = \"AM\",\n Angola = \"AO\",\n Antarctica = \"AQ\",\n Argentina = \"AR\",\n AmericanSamoa = \"AS\",\n Austria = \"AT\",\n Australia = \"AU\",\n Aruba = \"AW\",\n ÅlandIslands = \"AX\",\n Azerbaijan = \"AZ\",\n BosniaAndHerzegovina = \"BA\",\n Barbados = \"BB\",\n Bangladesh = \"BD\",\n Belgium = \"BE\",\n BurkinaFaso = \"BF\",\n Bulgaria = \"BG\",\n Bahrain = \"BH\",\n Burundi = \"BI\",\n Benin = \"BJ\",\n SaintBarthélemy = \"BL\",\n Bermuda = \"BM\",\n Brunei = \"BN\",\n Bolivia = \"BO\",\n Bonaire_SintEustasiusAndSaba = \"BQ\",\n Brazil = \"BR\",\n Bahamas = \"BS\",\n Bhutan = \"BT\",\n BouvetIsland = \"BV\",\n Botswana = \"BW\",\n Belarus = \"BY\",\n Belize = \"BZ\",\n Canada = \"CA\",\n CocosKeelingIslands = \"CC\",\n CongoDRC = \"CD\",\n CentralAfricanRepublic = \"CF\",\n Congo = \"CG\",\n CôteDIvoire = \"CI\",\n CookIslands = \"CK\",\n Chile = \"CL\",\n Cameroon = \"CM\",\n China = \"CN\",\n Colombia = \"CO\",\n CostaRica = \"CR\",\n Cuba = \"CU\",\n CaboVerde = \"CV\",\n Curaçao = \"CW\",\n ChristmasIsland = \"CX\",\n Cyprus = \"CY\",\n CzechRepublic = \"CZ\",\n Germany = \"DE\",\n Djibouti = \"DJ\",\n Denmark = \"DK\",\n Dominica = \"DM\",\n DominicanRepublic = \"DO\",\n Algeria = \"DZ\",\n Ecuador = \"EC\",\n Estonia = \"EE\",\n Egypt = \"EG\",\n WesternSahara = \"EH\",\n Eritrea = \"ER\",\n Spain = \"ES\",\n Ethiopia = \"ET\",\n Finland = \"FI\",\n Fiji = \"FJ\",\n FalklandIslands = \"FK\",\n Micronesia = \"FM\",\n FaroeIslands = \"FO\",\n France = \"FR\",\n Gabon = \"GA\",\n UnitedKingdom = \"GB\",\n Grenada = \"GD\",\n Georgia = \"GE\",\n FrenchGuiana = \"GF\",\n Guernsey = \"GG\",\n Ghana = \"GH\",\n Gibraltar = \"GI\",\n Greenland = \"GL\",\n Gambia = \"GM\",\n Guinea = \"GN\",\n Guadeloupe = \"GP\",\n EquatorialGuinea = \"GQ\",\n Greece = \"GR\",\n SouthGeorgiaAndTheSouthSandwichIslands = \"GS\",\n Guatemala = \"GT\",\n Guam = \"GU\",\n GuineaBissau = \"GW\",\n Guyana = \"GY\",\n HongKong = \"HK\",\n HeardIslandAndMcDonaldIslands = \"HM\",\n Honduras = \"HN\",\n Croatia = \"HR\",\n Haiti = \"HT\",\n Hungary = \"HU\",\n Switzerland = \"CH\",\n Indonesia = \"ID\",\n Ireland = \"IE\",\n Israel = \"IL\",\n IsleOfMan = \"IM\",\n India = \"IN\",\n BritishIndianOceanTerritory = \"IO\",\n Iraq = \"IQ\",\n Iran = \"IR\",\n Iceland = \"IS\",\n Italy = \"IT\",\n Jersey = \"JE\",\n Jamaica = \"JM\",\n Jordan = \"JO\",\n Japan = \"JP\",\n Kenya = \"KE\",\n Kyrgyzstan = \"KG\",\n Cambodia = \"KH\",\n Kiribati = \"KI\",\n Comoros = \"KM\",\n SaintKittsAndNevis = \"KN\",\n NorthKorea = \"KP\",\n SouthKorea = \"KR\",\n Kuwait = \"KW\",\n CaymanIslands = \"KY\",\n Kazakhstan = \"KZ\",\n Laos = \"LA\",\n Lebanon = \"LB\",\n SaintLucia = \"LC\",\n Liechtenstein = \"LI\",\n SriLanka = \"LK\",\n Liberia = \"LR\",\n Lesotho = \"LS\",\n Lithuania = \"LT\",\n Luxembourg = \"LU\",\n Latvia = \"LV\",\n Libya = \"LY\",\n Morocco = \"MA\",\n Monaco = \"MC\",\n Moldova = \"MD\",\n Montenegro = \"ME\",\n SaintMartin = \"MF\",\n Madagascar = \"MG\",\n MarshallIslands = \"MH\",\n NorthMacedonia = \"MK\",\n Mali = \"ML\",\n Myanmar = \"MM\",\n Mongolia = \"MN\",\n Macao = \"MO\",\n NorthernMarianaIslands = \"MP\",\n Martinique = \"MQ\",\n Mauritania = \"MR\",\n Montserrat = \"MS\",\n Malta = \"MT\",\n Mauritius = \"MU\",\n Maldives = \"MV\",\n Malawi = \"MW\",\n Mexico = \"MX\",\n Malaysia = \"MY\",\n Mozambique = \"MZ\",\n Namibia = \"NA\",\n NewCaledonia = \"NC\",\n Niger = \"NE\",\n NorfolkIsland = \"NF\",\n Nigeria = \"NG\",\n Nicaragua = \"NI\",\n Netherlands = \"NL\",\n Norway = \"NO\",\n Nepal = \"NP\",\n Nauru = \"NR\",\n Niue = \"NU\",\n NewZealand = \"NZ\",\n Oman = \"OM\",\n Panama = \"PA\",\n Peru = \"PE\",\n FrenchPolynesia = \"PF\",\n PapuaNewGuinea = \"PG\",\n Philippines = \"PH\",\n Pakistan = \"PK\",\n Poland = \"PL\",\n SaintPierreAndMiquelon = \"PM\",\n PitcairnIslands = \"PN\",\n PuertoRico = \"PR\",\n Palestine = \"PS\",\n Portugal = \"PT\",\n Palau = \"PW\",\n Paraguay = \"PY\",\n Qatar = \"QA\",\n Réunion = \"RE\",\n Romania = \"RO\",\n Serbia = \"RS\",\n Russia = \"RU\",\n Rwanda = \"RW\",\n SaudiArabia = \"SA\",\n SolomonIslands = \"SB\",\n Seychelles = \"SC\",\n Sudan = \"SD\",\n Sweden = \"SE\",\n Singapore = \"SG\",\n SaintHelena = \"SH\",\n Slovenia = \"SI\",\n Svalbard = \"SJ\",\n Slovakia = \"SK\",\n SierraLeone = \"SL\",\n SanMarino = \"SM\",\n Senegal = \"SN\",\n Somalia = \"SO\",\n Suriname = \"SR\",\n SouthSudan = \"SS\",\n SãoToméAndPríncipe = \"ST\",\n ElSalvador = \"SV\",\n SintMaarten = \"SX\",\n Syria = \"SY\",\n Eswatini = \"SZ\",\n TurksAndCaicosIslands = \"TC\",\n Chad = \"TD\",\n FrenchSouthernTerritories = \"TF\",\n Togo = \"TG\",\n Thailand = \"TH\",\n Tajikistan = \"TJ\",\n Tokelau = \"TK\",\n TimorLeste = \"TL\",\n Turkmenistan = \"TM\",\n Tunisia = \"TN\",\n Tonga = \"TO\",\n Turkey = \"TR\",\n TrinidadAndTobago = \"TT\",\n Tuvalu = \"TV\",\n Taiwan = \"TW\",\n Tanzania = \"TZ\",\n Ukraine = \"UA\",\n Uganda = \"UG\",\n U_S_MinorOutlyingIslands = \"UM\",\n UnitedStatesOfAmerica = \"US\",\n Uruguay = \"UY\",\n Uzbekistan = \"UZ\",\n VaticanCity = \"VA\",\n SaintVincentAndTheGrenadines = \"VC\",\n Venezuela = \"VE\",\n BritishVirginInslands = \"VG\",\n U_S_VirginIslands = \"VI\",\n Vietnam = \"VN\",\n Vanuatu = \"VU\",\n WallisAndFutuna = \"WF\",\n Samoa = \"WS\",\n Kosovo = \"XK\",\n Yemen = \"YE\",\n Mayotte = \"YT\",\n SouthAfrica = \"ZA\",\n Zambia = \"ZM\",\n Zimbabwe = \"ZW\",\n EuropeanUnion = \"XX\",\n InternationalMonetaryFund = \"YY\",\n}\n\nexport enum CurrencyCode {\n UAEDirham = \"AED\",\n AfghanAfghani = \"AFN\",\n Lek = \"ALL\",\n ArmenianDram = \"AMD\",\n NetherlandsAntilleanGuilder = \"ANG\",\n Kwanza = \"AOA\",\n ArgentinePeso = \"ARS\",\n AustralianDollar = \"AUD\",\n ArubanFlorin = \"AWG\",\n AzerbaijanManat = \"AZN\",\n ConvertibleMark = \"BAM\",\n BarbadosDollar = \"BBD\",\n Taka = \"BDT\",\n BulgarianLev = \"BGN\",\n BahrainiDinar = \"BHD\",\n BurundiFranc = \"BIF\",\n BermudianDollar = \"BMD\",\n BruneiDollar = \"BND\",\n Boliviano = \"BOB\",\n Mvdol = \"BOV\",\n BrazilianReal = \"BRL\",\n BahamianDollar = \"BSD\",\n Ngultrum = \"BTN\",\n Pula = \"BWP\",\n BelarusianRuble = \"BYN\",\n BelizeDollar = \"BZD\",\n CanadianDollar = \"CAD\",\n CongoleseFranc = \"CDF\",\n UnidadDeFomento = \"CLF\",\n ChileanPeso = \"CLP\",\n YuanRenminbi = \"CNY\",\n ColombianPeso = \"COP\",\n UnidadDeValorReal = \"COU\",\n CostaRicanColon = \"CRC\",\n PesoConvertible = \"CUC\",\n CubanPeso = \"CUP\",\n CaboVerdeEscudo = \"CVE\",\n CzechKoruna = \"CZK\",\n DjiboutiFranc = \"DJF\",\n DanishKrone = \"DKK\",\n DominicanPeso = \"DOP\",\n AlgerianDinar = \"DZD\",\n EgyptianPound = \"EGP\",\n Nakfa = \"ERN\",\n EthiopianBirr = \"ETB\",\n Euro = \"EUR\",\n FijiDollar = \"FJD\",\n FalklandIslandsPound = \"FKP\",\n PoundSterling = \"GBP\",\n Lari = \"GEL\",\n GhanaCedi = \"GHS\",\n GibraltarPound = \"GIP\",\n Dalasi = \"GMD\",\n GuineanFranc = \"GNF\",\n Quetzal = \"GTQ\",\n GuyanaDollar = \"GYD\",\n HongKongDollar = \"HKD\",\n Lempira = \"HNL\",\n Kuna = \"HRK\",\n Gourde = \"HTG\",\n Forint = \"HUF\",\n WIREuro = \"CHE\",\n SwissFranc = \"CHF\",\n WIRFranc = \"CHW\",\n Rupiah = \"IDR\",\n NewIsraeliSheqel = \"ILS\",\n IndianRupee = \"INR\",\n IraqiDinar = \"IQD\",\n IranianRial = \"IRR\",\n IcelandKrona = \"ISK\",\n JamaicanDollar = \"JMD\",\n JordanianDinar = \"JOD\",\n Yen = \"JPY\",\n KenyanShilling = \"KES\",\n Som = \"KGS\",\n Riel = \"KHR\",\n ComorianFranc = \"KMF\",\n NorthKoreanWon = \"KPW\",\n Won = \"KRW\",\n KuwaitiDinar = \"KWD\",\n CaymanIslandsDollar = \"KYD\",\n Tenge = \"KZT\",\n LaoKip = \"LAK\",\n LebanesePound = \"LBP\",\n SriLankaRupee = \"LKR\",\n LiberianDollar = \"LRD\",\n Loti = \"LSL\",\n LibyanDinar = \"LYD\",\n MoroccanDirham = \"MAD\",\n MoldovanLeu = \"MDL\",\n MalagasyAriary = \"MGA\",\n Denar = \"MKD\",\n Kyat = \"MMK\",\n Tugrik = \"MNT\",\n Pataca = \"MOP\",\n Ouguiya = \"MRU\",\n MauritiusRupee = \"MUR\",\n Rufiyaa = \"MVR\",\n MalawiKwacha = \"MWK\",\n MexicanPeso = \"MXN\",\n MexicanUnidadDeInversionUDI = \"MXV\",\n MalaysianRinggit = \"MYR\",\n MozambiqueMetical = \"MZN\",\n NamibiaDollar = \"NAD\",\n Naira = \"NGN\",\n CordobaOro = \"NIO\",\n NorwegianKrone = \"NOK\",\n NepaleseRupee = \"NPR\",\n NewZealandDollar = \"NZD\",\n RialOmani = \"OMR\",\n Balboa = \"PAB\",\n Sol = \"PEN\",\n Kina = \"PGK\",\n PhilippinePeso = \"PHP\",\n PakistanRupee = \"PKR\",\n Zloty = \"PLN\",\n Guarani = \"PYG\",\n QatariRial = \"QAR\",\n RomanianLeu = \"RON\",\n SerbianDinar = \"RSD\",\n RussianRuble = \"RUB\",\n RwandaFranc = \"RWF\",\n SaudiRiyal = \"SAR\",\n SolomonIslandsDollar = \"SBD\",\n SeychellesRupee = \"SCR\",\n SudanesePound = \"SDG\",\n SwedishKrona = \"SEK\",\n SingaporeDollar = \"SGD\",\n SaintHelenaPound = \"SHP\",\n Leone694 = \"SLL\",\n Leone = \"SLE\",\n SomaliShilling = \"SOS\",\n SurinamDollar = \"SRD\",\n SouthSudanesePound = \"SSP\",\n Dobra = \"STN\",\n ElSalvadorColon = \"SVC\",\n SyrianPound = \"SYP\",\n Lilangeni = \"SZL\",\n Baht = \"THB\",\n Somoni = \"TJS\",\n TurkmenistanNewManat = \"TMT\",\n TunisianDinar = \"TND\",\n Paanga = \"TOP\",\n TurkishLira = \"TRY\",\n TrinidadAndTobagoDollar = \"TTD\",\n NewTaiwanDollar = \"TWD\",\n TanzanianShilling = \"TZS\",\n Hryvnia = \"UAH\",\n UgandaShilling = \"UGX\",\n USDollar = \"USD\",\n USDollarNextDay = \"USN\",\n UruguayPesoEnUnidadesIndexadasUI = \"UYI\",\n PesoUruguayo = \"UYU\",\n UnidadPrevisional = \"UYW\",\n UzbekistanSum = \"UZS\",\n BolívarSoberano = \"VES\",\n VenezuelanDigitalBolívar = \"VED\",\n VenezuelanBolívar = \"VEF\",\n Dong = \"VND\",\n Vatu = \"VUV\",\n Tala = \"WST\",\n CFAFrancBEAC = \"XAF\",\n EastCaribbeanDollar = \"XCD\",\n SDRSpecialDrawingRight = \"XDR\",\n CFAFrancBCEAO = \"XOF\",\n CFPFranc = \"XPF\",\n Sucre = \"XSU\",\n ADBUnitOfAccount = \"XUA\",\n YemeniRial = \"YER\",\n Rand = \"ZAR\",\n ZambianKwacha = \"ZMW\",\n ZimbabweanDollar = \"ZWL\",\n}\n\nexport enum DataLimitTypeCode {\n BankTransactionLimit = \"BankTransactionLimit\",\n DocumentLimit = \"DocumentLimit\",\n DraftDocumentLimit = \"DraftDocumentLimit\",\n FileLimit = \"FileLimit\",\n JournalEntryLimit = \"JournalEntryLimit\",\n}\n\nexport enum DateFormatCode {\n DaysMonthsYearsDots = \"DaysMonthsYearsDots\",\n DaysMonthsYearsSlashes = \"DaysMonthsYearsSlashes\",\n DaysMonthsYearsHyphens = \"DaysMonthsYearsHyphens\",\n MonthsDaysYearsDots = \"MonthsDaysYearsDots\",\n MonthsDaysYearsSlashes = \"MonthsDaysYearsSlashes\",\n MonthsDaysYearsHyphens = \"MonthsDaysYearsHyphens\",\n YearsMonthsDaysDots = \"YearsMonthsDaysDots\",\n YearsMonthsDaysSlashes = \"YearsMonthsDaysSlashes\",\n YearsMonthsDaysHyphens = \"YearsMonthsDaysHyphens\",\n}\n\nexport enum DayOfWeekCode {\n Friday = \"FRI\",\n Monday = \"MON\",\n Saturday = \"SAT\",\n Sunday = \"SUN\",\n Thursday = \"THU\",\n Tuesday = \"TUE\",\n Wednesday = \"WED\",\n}\n\nexport enum DeferredPlanPostingTypeCode {\n Monthly = \"Monthly\",\n Yearly = \"Yearly\",\n}\n\nexport enum DepreciationPolicyTypeCode {\n TaxDepreciation = \"TAX\",\n AccountingDepreciation = \"ACCOUNTING\",\n}\n\nexport enum DepreciationSettingTypeCode {\n Interrupted = \"INTERRUPTED\",\n Partial = \"PARTIAL\",\n}\n\nexport enum DepreciationTypeCode {\n Linear = \"LINEAR\",\n Accelerated = \"ACCELERATED\",\n TimeDependent = \"TIMED\",\n}\n\nexport enum DocumentImportTypeCode {\n Isdoc = \"Isdoc\",\n MoneyS3 = \"MoneyS3\",\n Pohoda = \"Pohoda\",\n}\n\nexport enum DocumentItemTypeCode {\n Platba = \"PaymentDocumentItem\",\n ObecnáPoložka = \"RegularDocumentItem\",\n PoložkaInterníhoDokladu = \"InternalDocumentItem\",\n}\n\nexport enum DocumentLinkClearingTypeCode {\n Both = \"All\",\n None = \"None\",\n SourceDocument = \"SourceDocument\",\n TargetDocument = \"TargetDocument\",\n}\n\nexport enum DocumentLinkTypeCode {\n Default = \"DF\",\n CorrectiveWithClearing = \"CRC\",\n CorrectiveWithoutClearing = \"CRN\",\n Payment = \"PM\",\n InternalDocumentClearing = \"IDCL\",\n ExchangeRateGain = \"EXRG\",\n ExchangeRateLoss = \"EXRL\",\n ReceivableAdjustment = \"RA\",\n ReceivableAdjustmentSmall = \"RAS\",\n ReceivableAdjustmentCancellation = \"RAC\",\n ReceivableAdjustmentCancellationClearing = \"RACC\",\n ReceivableAdjustmentExchangeRateDifference = \"RAEX\",\n DebtWriteOffTaxDeductible = \"WOT\",\n DebtWriteOffNotTaxDeductible = \"WON\",\n DeferredExpense = \"DE\",\n AccruedExpense = \"AE\",\n AccruedExpenseSettlement = \"AES\",\n DeferredRevenue = \"DR\",\n AccruedRevenue = \"AR\",\n AccruedRevenueSettlement = \"ARS\",\n EstimatedAccruedRevenue = \"EDR\",\n EstimatedAccruedRevenueSettlement = \"EDRS\",\n EstimatedAccruedExpense = \"EAE\",\n EstimatedAccruedExpenseSettlement = \"EAES\",\n AutomatedVATInclusionInputVAT = \"AVII\",\n AutomatedVATInclusionOutputVAT = \"AVIO\",\n AssetToExpenseReassignment = \"ATE\",\n ProformaInvoiceDeduction = \"PII\",\n AssetPutInUseDocument = \"APIU\",\n}\n\nexport enum DocumentSourceTypeCode {\n Fakturoid = \"Fakturoid\",\n ISDOC = \"ISDOC\",\n Manual = \"Manual\",\n Money = \"Money\",\n Pohoda = \"Pohoda\",\n Rossum = \"Rossum\",\n IDoklad = \"iDoklad\",\n}\n\nexport enum DocumentStatusCode {\n Posted = \"P:_\",\n NotCleared = \"P:N\",\n PartiallyCleared = \"P:P\",\n Cleared = \"P:C\",\n NotPosted = \"N:_\",\n NotPaid = \"_:N\",\n PartiallyPaid = \"_:P\",\n Paid = \"_:C\",\n Created = \"_:_\",\n NotPostedNotPaid = \"N:N\",\n NotPostedPartiallyPaid = \"N:P\",\n NotPostedPaid = \"N:C\",\n}\n\nexport enum DocumentTypeCode {\n BankTransaction = \"BankTransaction\",\n CorrectiveInvoiceIssued = \"CorrectiveInvoiceIssued\",\n CorrectiveInvoiceReceived = \"CorrectiveInvoiceReceived\",\n InternalDocument = \"InternalDocument\",\n InvoiceIssued = \"InvoiceIssued\",\n InvoiceReceived = \"InvoiceReceived\",\n OtherLiability = \"OtherLiability\",\n OtherReceivable = \"OtherReceivable\",\n ProformaInvoiceIssued = \"ProformaInvoiceIssued\",\n ProformaInvoiceReceived = \"ProformaInvoiceReceived\",\n CashReceiptIssued = \"CashReceiptIssued\",\n CashReceiptReceived = \"CashReceiptReceived\",\n}\n\nexport enum ElectronicSubmissionSubmissionTypeCode {\n Amended = \"Amended\",\n Regular = \"Regular\",\n}\n\nexport enum ElectronicSubmissionTypeCode {\n VatControlStatement = \"VatControlSt\",\n VatStatement = \"VatSt\",\n VatVIESStatement = \"VatViesSt\",\n}\n\nexport enum EntityPermissionLevelCode {\n Read = \"R\",\n Write_Create = \"W\",\n Delete = \"D\",\n}\n\nexport enum ExchangeRateTypeCode {\n ByBank = \"ByBank\",\n Fixed = \"Fixed\",\n}\n\nexport enum ExpenseTaxRateCode {\n ZemědělskáALesníVýroba = \"CzeAgriculture2010\",\n ŘemeslnéŽivnosti = \"CzeCrafts2010\",\n Živnosti = \"CzeTrade2010\",\n JináPodnikáníPráva_Autoři____ = \"CzeOtherProfessions2010\",\n Pronájem = \"CzeRent2010\",\n}\n\nexport enum ExportRangeCode {\n All = \"All\",\n CurrentFiscalYear = \"CurrentFiscalYear\",\n LastClosedFiscalYear = \"LastClosedFiscalYear\",\n}\n\nexport enum ExportResultTypeCode {\n SeparatelyForEachRecord = \"MultipleFiles\",\n SingleFile = \"SingleFile\",\n}\n\nexport enum ExportTypeCode {\n All = \"All\",\n Documents = \"Documents\",\n BankTransactions = \"BankTransactions\",\n CashReceipts = \"CashReceipts\",\n}\n\nexport enum ExternalCorrectedDocumentTypeCode {\n Clear = \"Clear\",\n DontClear = \"DontClear\",\n}\n\nexport enum FeatureCode {\n MdbImport = \"MdbImport\",\n Payroll = \"Payroll\",\n}\n\nexport enum FinancialReportLayoutCode {\n RozvahaPlatnáOd1_1_2018 = \"CZ_BS2018\",\n VýsledkovkaDruhovéČleněníPlatnáOd1_1_2019 = \"CZ_IS_N_2019\",\n VýsledkovkaÚčelovéČleněníPlatnáOd1_1_2019 = \"CZ_IS_F_2019\",\n}\n\nexport enum FiscalYearCloseSectionTypeCode {\n Accrued = \"Accrued\",\n Asset = \"Asset\",\n Bank = \"Bank\",\n CashBox = \"CashBox\",\n DeferredPlan = \"DeferredPlan\",\n ExchangeRates = \"ExchangeRates\",\n FinalClosure = \"FinalClosure\",\n ForeignCurrencies = \"ForeignCurrencies\",\n Inventory = \"Inventory\",\n PayableReceivable = \"PayableReceivable\",\n ReceivableAdjustments = \"ReceivableAdjustments\",\n TaxStatement = \"TaxStatement\",\n}\n\nexport enum FiscalYearStatusCode {\n Closed = \"CD\",\n Active = \"AC\",\n NotUsed = \"NU\",\n}\n\nexport enum FulfilmentTypeCode {\n ReceivedTaxableFulfilments = \"R\",\n ExecutedTaxableFulfilments = \"X\",\n}\n\nexport enum GeneralPermissionCode {\n CanExportDataFromTheSystem = \"CanExport\",\n OrganizationManagement = \"OrganizationManagement\",\n CompanyManagement = \"CompanyManagement\",\n CommonSettingsManagement = \"TemplateManagement\",\n Unlocking = \"Unlocking\",\n AuditTrail = \"AuditTrail\",\n}\n\nexport enum GovernmentInstitutionCode {\n CZ_CSSA_110 = \"CZ_CSSA_110\",\n CZ_CSSA_111 = \"CZ_CSSA_111\",\n CZ_CSSA_112 = \"CZ_CSSA_112\",\n CZ_CSSA_113 = \"CZ_CSSA_113\",\n CZ_CSSA_114 = \"CZ_CSSA_114\",\n CZ_CSSA_115 = \"CZ_CSSA_115\",\n CZ_CSSA_116 = \"CZ_CSSA_116\",\n CZ_CSSA_117 = \"CZ_CSSA_117\",\n CZ_CSSA_118 = \"CZ_CSSA_118\",\n CZ_CSSA_119 = \"CZ_CSSA_119\",\n CZ_CSSA_121 = \"CZ_CSSA_121\",\n CZ_CSSA_122 = \"CZ_CSSA_122\",\n CZ_CSSA_123 = \"CZ_CSSA_123\",\n CZ_CSSA_220 = \"CZ_CSSA_220\",\n CZ_CSSA_221 = \"CZ_CSSA_221\",\n CZ_CSSA_222 = \"CZ_CSSA_222\",\n CZ_CSSA_223 = \"CZ_CSSA_223\",\n CZ_CSSA_224 = \"CZ_CSSA_224\",\n CZ_CSSA_225 = \"CZ_CSSA_225\",\n CZ_CSSA_226 = \"CZ_CSSA_226\",\n CZ_CSSA_227 = \"CZ_CSSA_227\",\n CZ_CSSA_228 = \"CZ_CSSA_228\",\n CZ_CSSA_229 = \"CZ_CSSA_229\",\n CZ_CSSA_230 = \"CZ_CSSA_230\",\n CZ_CSSA_231 = \"CZ_CSSA_231\",\n CZ_CSSA_332 = \"CZ_CSSA_332\",\n CZ_CSSA_333 = \"CZ_CSSA_333\",\n CZ_CSSA_334 = \"CZ_CSSA_334\",\n CZ_CSSA_335 = \"CZ_CSSA_335\",\n CZ_CSSA_336 = \"CZ_CSSA_336\",\n CZ_CSSA_337 = \"CZ_CSSA_337\",\n CZ_CSSA_338 = \"CZ_CSSA_338\",\n CZ_CSSA_339 = \"CZ_CSSA_339\",\n CZ_CSSA_440 = \"CZ_CSSA_440\",\n CZ_CSSA_441 = \"CZ_CSSA_441\",\n CZ_CSSA_442 = \"CZ_CSSA_442\",\n CZ_CSSA_443 = \"CZ_CSSA_443\",\n CZ_CSSA_444 = \"CZ_CSSA_444\",\n CZ_CSSA_445 = \"CZ_CSSA_445\",\n CZ_CSSA_446 = \"CZ_CSSA_446\",\n CZ_CSSA_447 = \"CZ_CSSA_447\",\n CZ_CSSA_448 = \"CZ_CSSA_448\",\n CZ_CSSA_449 = \"CZ_CSSA_449\",\n CZ_CSSA_550 = \"CZ_CSSA_550\",\n CZ_CSSA_551 = \"CZ_CSSA_551\",\n CZ_CSSA_552 = \"CZ_CSSA_552\",\n CZ_CSSA_553 = \"CZ_CSSA_553\",\n CZ_CSSA_554 = \"CZ_CSSA_554\",\n CZ_CSSA_555 = \"CZ_CSSA_555\",\n CZ_CSSA_556 = \"CZ_CSSA_556\",\n CZ_CSSA_557 = \"CZ_CSSA_557\",\n CZ_CSSA_558 = \"CZ_CSSA_558\",\n CZ_CSSA_559 = \"CZ_CSSA_559\",\n CZ_CSSA_660 = \"CZ_CSSA_660\",\n CZ_CSSA_661 = \"CZ_CSSA_661\",\n CZ_CSSA_662 = \"CZ_CSSA_662\",\n CZ_CSSA_663 = \"CZ_CSSA_663\",\n CZ_CSSA_664 = \"CZ_CSSA_664\",\n CZ_CSSA_665 = \"CZ_CSSA_665\",\n CZ_CSSA_666 = \"CZ_CSSA_666\",\n CZ_CSSA_667 = \"CZ_CSSA_667\",\n CZ_CSSA_668 = \"CZ_CSSA_668\",\n CZ_CSSA_669 = \"CZ_CSSA_669\",\n CZ_CSSA_670 = \"CZ_CSSA_670\",\n CZ_CSSA_771 = \"CZ_CSSA_771\",\n CZ_CSSA_772 = \"CZ_CSSA_772\",\n CZ_CSSA_773 = \"CZ_CSSA_773\",\n CZ_CSSA_774 = \"CZ_CSSA_774\",\n CZ_CSSA_775 = \"CZ_CSSA_775\",\n CZ_CSSA_776 = \"CZ_CSSA_776\",\n CZ_CSSA_777 = \"CZ_CSSA_777\",\n CZ_CSSA_778 = \"CZ_CSSA_778\",\n CZ_CSSA_779 = \"CZ_CSSA_779\",\n CZ_CSSA_780 = \"CZ_CSSA_780\",\n CZ_CSSA_781 = \"CZ_CSSA_781\",\n CZ_CSSA_782 = \"CZ_CSSA_782\",\n CZ_CSSA_783 = \"CZ_CSSA_783\",\n CZ_CSSA_784 = \"CZ_CSSA_784\",\n CZ_CSSA_884 = \"CZ_CSSA_884\",\n CZ_CSSA_885 = \"CZ_CSSA_885\",\n CZ_CSSA_886 = \"CZ_CSSA_886\",\n CZ_CSSA_887 = \"CZ_CSSA_887\",\n CZ_CSSA_888 = \"CZ_CSSA_888\",\n CZ_CSSA_889 = \"CZ_CSSA_889\",\n CZ_CSSA_890 = \"CZ_CSSA_890\",\n CZ_CSSA_891 = \"CZ_CSSA_891\",\n CZ_CSSA_892 = \"CZ_CSSA_892\",\n CZ_CSSA_893 = \"CZ_CSSA_893\",\n CZ_CSSA_894 = \"CZ_CSSA_894\",\n CZ_LO_krp_2_049968E32 = \"CZ_LO_krp_2_049968E32\",\n CZ_LO_ABC_A902AF19A = \"CZ_LO_ABC_A902AF19A\",\n CZ_LO_ABE_6369B6B7E = \"CZ_LO_ABE_6369B6B7E\",\n CZ_LO_ABF_E9333A499 = \"CZ_LO_ABF_E9333A499\",\n CZ_LO_ABG_B994AE224 = \"CZ_LO_ABG_B994AE224\",\n CZ_LO_ABI_860538615 = \"CZ_LO_ABI_860538615\",\n CZ_LO_ABJ_44738C95A = \"CZ_LO_ABJ_44738C95A\",\n CZ_LO_ABK_87C207A69 = \"CZ_LO_ABK_87C207A69\",\n CZ_LO_ABF_4CC55AE86 = \"CZ_LO_ABF_4CC55AE86\",\n CZ_LO_ABF_82487F7FE = \"CZ_LO_ABF_82487F7FE\",\n CZ_LO_krp_3_E38A51A63 = \"CZ_LO_krp_3_E38A51A63\",\n CZ_LO_BNA_FC387E210 = \"CZ_LO_BNA_FC387E210\",\n CZ_LO_BEA_14137BCE5 = \"CZ_LO_BEA_14137BCE5\",\n CZ_LO_PYA_0C2D753DC = \"CZ_LO_PYA_0C2D753DC\",\n CZ_LO_KHD_C336E2F1F = \"CZ_LO_KHD_C336E2F1F\",\n CZ_LO_KOB_F7EE29581 = \"CZ_LO_KOB_F7EE29581\",\n CZ_LO_PBC_97F89B422 = \"CZ_LO_PBC_97F89B422\",\n CZ_LO_BEB_E33EF1720 = \"CZ_LO_BEB_E33EF1720\",\n CZ_LO_KLA_6640D167C = \"CZ_LO_KLA_6640D167C\",\n CZ_LO_KOA_72D8674A1 = \"CZ_LO_KOA_72D8674A1\",\n CZ_LO_MEB_D1F3919B0 = \"CZ_LO_MEB_D1F3919B0\",\n CZ_LO_KHA_42D12F28E = \"CZ_LO_KHA_42D12F28E\",\n CZ_LO_NBA_13E388641 = \"CZ_LO_NBA_13E388641\",\n CZ_LO_MEA_E5A979D34 = \"CZ_LO_MEA_E5A979D34\",\n CZ_LO_NBC_C7D78FA51 = \"CZ_LO_NBC_C7D78FA51\",\n CZ_LO_NBB_1F04306A2 = \"CZ_LO_NBB_1F04306A2\",\n CZ_LO_MBA_D6DE3D8CF = \"CZ_LO_MBA_D6DE3D8CF\",\n CZ_LO_MBB_D96C0E408 = \"CZ_LO_MBB_D96C0E408\",\n CZ_LO_MEC_9C07D9E86 = \"CZ_LO_MEC_9C07D9E86\",\n CZ_LO_NBA_90FA1B402 = \"CZ_LO_NBA_90FA1B402\",\n CZ_LO_NBA_002CA99E5 = \"CZ_LO_NBA_002CA99E5\",\n CZ_LO_PYA_3BE74F42C = \"CZ_LO_PYA_3BE74F42C\",\n CZ_LO_PZA_FCDAE47E2 = \"CZ_LO_PZA_FCDAE47E2\",\n CZ_LO_PBA_E16F20AF3 = \"CZ_LO_PBA_E16F20AF3\",\n CZ_LO_RAA_4E53C77F5 = \"CZ_LO_RAA_4E53C77F5\",\n CZ_LO_PYA_7DA52ABF3 = \"CZ_LO_PYA_7DA52ABF3\",\n CZ_LO_PBB_F76B20967 = \"CZ_LO_PBB_F76B20967\",\n CZ_LO_KLB_3C0AA7D87 = \"CZ_LO_KLB_3C0AA7D87\",\n CZ_LO_KLA_4E8E9F125 = \"CZ_LO_KLA_4E8E9F125\",\n CZ_LO_KHB_93C902722 = \"CZ_LO_KHB_93C902722\",\n CZ_LO_BNB_935398BAF = \"CZ_LO_BNB_935398BAF\",\n CZ_LO_BNC_DFC73A7B0 = \"CZ_LO_BNC_DFC73A7B0\",\n CZ_LO_KHC_B7F0770C8 = \"CZ_LO_KHC_B7F0770C8\",\n CZ_LO_krp_4_602B725DB = \"CZ_LO_krp_4_602B725DB\",\n CZ_LO_TAA_37CB9148A = \"CZ_LO_TAA_37CB9148A\",\n CZ_LO_STB_3703589E2 = \"CZ_LO_STB_3703589E2\",\n CZ_LO_CBA_FA14C5EC5 = \"CZ_LO_CBA_FA14C5EC5\",\n CZ_LO_CBA_4A14A2BFC = \"CZ_LO_CBA_4A14A2BFC\",\n CZ_LO_CKA_B217B2392 = \"CZ_LO_CKA_B217B2392\",\n CZ_LO_JHB_156533919 = \"CZ_LO_JHB_156533919\",\n CZ_LO_CBA_FCC0DEE06 = \"CZ_LO_CBA_FCC0DEE06\",\n CZ_LO_CKA_EF929E34F = \"CZ_LO_CKA_EF929E34F\",\n CZ_LO_JHA_F980EBDBC = \"CZ_LO_JHA_F980EBDBC\",\n CZ_LO_CKB_D4756FC6B = \"CZ_LO_CKB_D4756FC6B\",\n CZ_LO_CBA_A9D576F4B = \"CZ_LO_CBA_A9D576F4B\",\n CZ_LO_CBA_C56431DFB = \"CZ_LO_CBA_C56431DFB\",\n CZ_LO_PIC_AF24E5176 = \"CZ_LO_PIC_AF24E5176\",\n CZ_LO_PIA_3DEEF76CE = \"CZ_LO_PIA_3DEEF76CE\",\n CZ_LO_PIB_3F41CF207 = \"CZ_LO_PIB_3F41CF207\",\n CZ_LO_TAA_2E7022573 = \"CZ_LO_TAA_2E7022573\",\n CZ_LO_PTA_5B066C49F = \"CZ_LO_PTA_5B066C49F\",\n CZ_LO_CBB_EA2A057F2 = \"CZ_LO_CBB_EA2A057F2\",\n CZ_LO_PIA_B97D6F3E1 = \"CZ_LO_PIA_B97D6F3E1\",\n CZ_LO_PTA_BE624C4C3 = \"CZ_LO_PTA_BE624C4C3\",\n CZ_LO_PIA_280D1CB22 = \"CZ_LO_PIA_280D1CB22\",\n CZ_LO_TAB_B25176745 = \"CZ_LO_TAB_B25176745\",\n CZ_LO_STA_4703A6955 = \"CZ_LO_STA_4703A6955\",\n CZ_LO_TAA_94CA65FA1 = \"CZ_LO_TAA_94CA65FA1\",\n CZ_LO_CBC_3DF746B5E = \"CZ_LO_CBC_3DF746B5E\",\n CZ_LO_JHC_91D58F03A = \"CZ_LO_JHC_91D58F03A\",\n CZ_LO_CBD_2908CF136 = \"CZ_LO_CBD_2908CF136\",\n CZ_LO_TAA_BD7C1DE58 = \"CZ_LO_TAA_BD7C1DE58\",\n CZ_LO_PTB_B63D26726 = \"CZ_LO_PTB_B63D26726\",\n CZ_LO_STC_6FC5C88F1 = \"CZ_LO_STC_6FC5C88F1\",\n CZ_LO_PTC_4987D2B5E = \"CZ_LO_PTC_4987D2B5E\",\n CZ_LO_STA_D5048CE26 = \"CZ_LO_STA_D5048CE26\",\n CZ_LO_CKA_2D2C2757A = \"CZ_LO_CKA_2D2C2757A\",\n CZ_LO_CBA_916C58EA0 = \"CZ_LO_CBA_916C58EA0\",\n CZ_LO_krp_12_239F5633F = \"CZ_LO_krp_12_239F5633F\",\n CZ_LO_BKA_F6E8D95C6 = \"CZ_LO_BKA_F6E8D95C6\",\n CZ_LO_BKB_348062832 = \"CZ_LO_BKB_348062832\",\n CZ_LO_BMA_FA2B1D04D = \"CZ_LO_BMA_FA2B1D04D\",\n CZ_LO_BVA_349879A27 = \"CZ_LO_BVA_349879A27\",\n CZ_LO_VYB_6B26277A4 = \"CZ_LO_VYB_6B26277A4\",\n CZ_LO_HOB_CCA9DDB92 = \"CZ_LO_HOB_CCA9DDB92\",\n CZ_LO_HOA_153CACEC9 = \"CZ_LO_HOA_153CACEC9\",\n CZ_LO_ZNC_9B9A7861E = \"CZ_LO_ZNC_9B9A7861E\",\n CZ_LO_BVB_759000374 = \"CZ_LO_BVB_759000374\",\n CZ_LO_BOB_5975F898B = \"CZ_LO_BOB_5975F898B\",\n CZ_LO_BVB_7B16864B5 = \"CZ_LO_BVB_7B16864B5\",\n CZ_LO_BOA_D9EE400CF = \"CZ_LO_BOA_D9EE400CF\",\n CZ_LO_HOB_40A27E3B5 = \"CZ_LO_HOB_40A27E3B5\",\n CZ_LO_BKC_F32C4B90A = \"CZ_LO_BKC_F32C4B90A\",\n CZ_LO_BVC_78D12E005 = \"CZ_LO_BVC_78D12E005\",\n CZ_LO_ZNB_A97726442 = \"CZ_LO_ZNB_A97726442\",\n CZ_LO_ZNB_6ACBD8955 = \"CZ_LO_ZNB_6ACBD8955\",\n CZ_LO_BOG_5D407392D = \"CZ_LO_BOG_5D407392D\",\n CZ_LO_BOD_D38E846B3 = \"CZ_LO_BOD_D38E846B3\",\n CZ_LO_VYC_6AD1A7B07 = \"CZ_LO_VYC_6AD1A7B07\",\n CZ_LO_BOE_CA487B098 = \"CZ_LO_BOE_CA487B098\",\n CZ_LO_HOC_F0644E7DF = \"CZ_LO_HOC_F0644E7DF\",\n CZ_LO_ZND_378E2B0F3 = \"CZ_LO_ZND_378E2B0F3\",\n CZ_LO_VYA_C8238791D = \"CZ_LO_VYA_C8238791D\",\n CZ_LO_ZNA_38BBA1914 = \"CZ_LO_ZNA_38BBA1914\",\n CZ_LO_HOB_34F2A66F1 = \"CZ_LO_HOB_34F2A66F1\",\n CZ_LO_BOF_C59B07AD2 = \"CZ_LO_BOF_C59B07AD2\",\n CZ_LO_krp_6_68C8C92DF = \"CZ_LO_krp_6_68C8C92DF\",\n CZ_LO_CHB_532610D8C = \"CZ_LO_CHB_532610D8C\",\n CZ_LO_SOB_679FFFCAD = \"CZ_LO_SOB_679FFFCAD\",\n CZ_LO_CHA_ACAEABEF6 = \"CZ_LO_CHA_ACAEABEF6\",\n CZ_LO_SOD_433AC839F = \"CZ_LO_SOD_433AC839F\",\n CZ_LO_KVA_5EA8547B5 = \"CZ_LO_KVA_5EA8547B5\",\n CZ_LO_SOC_434BAEA96 = \"CZ_LO_SOC_434BAEA96\",\n CZ_LO_CHC_C0C1CFD92 = \"CZ_LO_CHC_C0C1CFD92\",\n CZ_LO_KVF_73BCF968E = \"CZ_LO_KVF_73BCF968E\",\n CZ_LO_KVE_E6C28F76C = \"CZ_LO_KVE_E6C28F76C\",\n CZ_LO_SOA_CB66FD787 = \"CZ_LO_SOA_CB66FD787\",\n CZ_LO_KVB_AB2F53E85 = \"CZ_LO_KVB_AB2F53E85\",\n CZ_LO_krp_11_B090580DF = \"CZ_LO_krp_11_B090580DF\",\n CZ_LO_ZRB_02FDCE2B6 = \"CZ_LO_ZRB_02FDCE2B6\",\n CZ_LO_HBA_B03C4E0B2 = \"CZ_LO_HBA_B03C4E0B2\",\n CZ_LO_HBA_29F2A8512 = \"CZ_LO_HBA_29F2A8512\",\n CZ_LO_TRA_21C7A73F9 = \"CZ_LO_TRA_21C7A73F9\",\n CZ_LO_PEB_7C87E7476 = \"CZ_LO_PEB_7C87E7476\",\n CZ_LO_HBB_D92D2C07E = \"CZ_LO_HBB_D92D2C07E\",\n CZ_LO_TRA_6C331C13A = \"CZ_LO_TRA_6C331C13A\",\n CZ_LO_TRB_34500F1EC = \"CZ_LO_TRB_34500F1EC\",\n CZ_LO_JIA_7767C7CB0 = \"CZ_LO_JIA_7767C7CB0\",\n CZ_LO_PEA_E8209D5E9 = \"CZ_LO_PEA_E8209D5E9\",\n CZ_LO_HBC_F7F7FE2F5 = \"CZ_LO_HBC_F7F7FE2F5\",\n CZ_LO_TRC_5D9A85B0D = \"CZ_LO_TRC_5D9A85B0D\",\n CZ_LO_TRD_B9528B655 = \"CZ_LO_TRD_B9528B655\",\n CZ_LO_ZRC_074B2473A = \"CZ_LO_ZRC_074B2473A\",\n CZ_LO_PEA_AEFADFDB5 = \"CZ_LO_PEA_AEFADFDB5\",\n CZ_LO_PEA_D8A83688D = \"CZ_LO_PEA_D8A83688D\",\n CZ_LO_JIB_AF524304C = \"CZ_LO_JIB_AF524304C\",\n CZ_LO_HBA_A57EC05EB = \"CZ_LO_HBA_A57EC05EB\",\n CZ_LO_HBF_381A5630D = \"CZ_LO_HBF_381A5630D\",\n CZ_LO_JIC_E45A00927 = \"CZ_LO_JIC_E45A00927\",\n CZ_LO_TRA_03A351944 = \"CZ_LO_TRA_03A351944\",\n CZ_LO_JID_09F667B4F = \"CZ_LO_JID_09F667B4F\",\n CZ_LO_ZRE_EF3F891E6 = \"CZ_LO_ZRE_EF3F891E6\",\n CZ_LO_ZRD_F9FC07A0C = \"CZ_LO_ZRD_F9FC07A0C\",\n CZ_LO_ZRA_63E75399D = \"CZ_LO_ZRA_63E75399D\",\n CZ_LO_HBB_88552A06A = \"CZ_LO_HBB_88552A06A\",\n CZ_LO_krp_9_6598764ED = \"CZ_LO_krp_9_6598764ED\",\n CZ_LO_NAB_D39F07060 = \"CZ_LO_NAB_D39F07060\",\n CZ_LO_RKB_F950BDD49 = \"CZ_LO_RKB_F950BDD49\",\n CZ_LO_TUC_0457213C8 = \"CZ_LO_TUC_0457213C8\",\n CZ_LO_JCB_AC97E5129 = \"CZ_LO_JCB_AC97E5129\",\n CZ_LO_HKA_94C2F7528 = \"CZ_LO_HKA_94C2F7528\",\n CZ_LO_HKB_D6C2E4623 = \"CZ_LO_HKB_D6C2E4623\",\n CZ_LO_NAC_A9AB56BC1 = \"CZ_LO_NAC_A9AB56BC1\",\n CZ_LO_JCA_99FC17F70 = \"CZ_LO_JCA_99FC17F70\",\n CZ_LO_RKC_C3739467C = \"CZ_LO_RKC_C3739467C\",\n CZ_LO_NAA_05AB6B829 = \"CZ_LO_NAA_05AB6B829\",\n CZ_LO_JCC_583741992 = \"CZ_LO_JCC_583741992\",\n CZ_LO_NAD_1F35B8236 = \"CZ_LO_NAD_1F35B8236\",\n CZ_LO_HKC_707E00A9C = \"CZ_LO_HKC_707E00A9C\",\n CZ_LO_RKA_B922957F2 = \"CZ_LO_RKA_B922957F2\",\n CZ_LO_TUA_476CF34F1 = \"CZ_LO_TUA_476CF34F1\",\n CZ_LO_TUA_B38AF0717 = \"CZ_LO_TUA_B38AF0717\",\n CZ_LO_TUB_4C505353D = \"CZ_LO_TUB_4C505353D\",\n CZ_LO_krp_8_91106F528 = \"CZ_LO_krp_8_91106F528\",\n CZ_LO_CLB_34CE8A7AF = \"CZ_LO_CLB_34CE8A7AF\",\n CZ_LO_CLA_D272482CA = \"CZ_LO_CLA_D272482CA\",\n CZ_LO_LBF_F48D46A44 = \"CZ_LO_LBF_F48D46A44\",\n CZ_LO_CLD_99E06EFF9 = \"CZ_LO_CLD_99E06EFF9\",\n CZ_LO_LBB_E6FE7B0D1 = \"CZ_LO_LBB_E6FE7B0D1\",\n CZ_LO_LBC_119C9FCB0 = \"CZ_LO_LBC_119C9FCB0\",\n CZ_LO_LBA_F495C3917 = \"CZ_LO_LBA_F495C3917\",\n CZ_LO_JNA_77DE9C1DD = \"CZ_LO_JNA_77DE9C1DD\",\n CZ_LO_LBA_E4850E123 = \"CZ_LO_LBA_E4850E123\",\n CZ_LO_SMB_7E7BD0A76 = \"CZ_LO_SMB_7E7BD0A76\",\n CZ_LO_LBA_51929DC7D = \"CZ_LO_LBA_51929DC7D\",\n CZ_LO_SMA_D05C570E3 = \"CZ_LO_SMA_D05C570E3\",\n CZ_LO_CLD_32440500A = \"CZ_LO_CLD_32440500A\",\n CZ_LO_LBD_0C9B981C9 = \"CZ_LO_LBD_0C9B981C9\",\n CZ_LO_CLB_A7171E04F = \"CZ_LO_CLB_A7171E04F\",\n CZ_LO_SMA_CDE49713A = \"CZ_LO_SMA_CDE49713A\",\n CZ_LO_JNB_1BCAA01F5 = \"CZ_LO_JNB_1BCAA01F5\",\n CZ_LO_SMC_173777136 = \"CZ_LO_SMC_173777136\",\n CZ_LO_JNC_65AC430B5 = \"CZ_LO_JNC_65AC430B5\",\n CZ_LO_krp_14_C23096D2D = \"CZ_LO_krp_14_C23096D2D\",\n CZ_LO_NJD_1F4D465FB = \"CZ_LO_NJD_1F4D465FB\",\n CZ_LO_KAB_B26248ADE = \"CZ_LO_KAB_B26248ADE\",\n CZ_LO_BRA_B149A98EC = \"CZ_LO_BRA_B149A98EC\",\n CZ_LO_KAE_D5CB9AA4F = \"CZ_LO_KAE_D5CB9AA4F\",\n CZ_LO_NJE_B7AFAEAB5 = \"CZ_LO_NJE_B7AFAEAB5\",\n CZ_LO_FMA_820BA1BD6 = \"CZ_LO_FMA_820BA1BD6\",\n CZ_LO_FMC_A094C5B23 = \"CZ_LO_FMC_A094C5B23\",\n CZ_LO_KAC_29403568B = \"CZ_LO_KAC_29403568B\",\n CZ_LO_OPB_F5D5ADB23 = \"CZ_LO_OPB_F5D5ADB23\",\n CZ_LO_BRA_3BF6ACB18 = \"CZ_LO_BRA_3BF6ACB18\",\n CZ_LO_FMD_2D5DDE140 = \"CZ_LO_FMD_2D5DDE140\",\n CZ_LO_KAA_2EA3779BA = \"CZ_LO_KAA_2EA3779BA\",\n CZ_LO_NJB_E65ADDFAC = \"CZ_LO_NJB_E65ADDFAC\",\n CZ_LO_OPD_C139A4B28 = \"CZ_LO_OPD_C139A4B28\",\n CZ_LO_BRB_D8908EC79 = \"CZ_LO_BRB_D8908EC79\",\n CZ_LO_BRF_C68C9D925 = \"CZ_LO_BRF_C68C9D925\",\n CZ_LO_NJA_2B19F76C8 = \"CZ_LO_NJA_2B19F76C8\",\n CZ_LO_NJC_6CE4DB123 = \"CZ_LO_NJC_6CE4DB123\",\n CZ_LO_OPA_36300EA7A = \"CZ_LO_OPA_36300EA7A\",\n CZ_LO_KAD_5969719FA = \"CZ_LO_KAD_5969719FA\",\n CZ_LO_BRC_810D8F241 = \"CZ_LO_BRC_810D8F241\",\n CZ_LO_OTA_CE6613F36 = \"CZ_LO_OTA_CE6613F36\",\n CZ_LO_OTA_B1CBA8C8E = \"CZ_LO_OTA_B1CBA8C8E\",\n CZ_LO_OTA_BA3027E11 = \"CZ_LO_OTA_BA3027E11\",\n CZ_LO_BRD_52CF98A34 = \"CZ_LO_BRD_52CF98A34\",\n CZ_LO_FMB_4C1CFFDB1 = \"CZ_LO_FMB_4C1CFFDB1\",\n CZ_LO_OPC_003640ABF = \"CZ_LO_OPC_003640ABF\",\n CZ_LO_BRH_4B8C93926 = \"CZ_LO_BRH_4B8C93926\",\n CZ_LO_krp_13_8611BA035 = \"CZ_LO_krp_13_8611BA035\",\n CZ_LO_SUD_8F2C2FB83 = \"CZ_LO_SUD_8F2C2FB83\",\n CZ_LO_PRB_FC8643848 = \"CZ_LO_PRB_FC8643848\",\n CZ_LO_JEB_4D3CDF2DC = \"CZ_LO_JEB_4D3CDF2DC\",\n CZ_LO_JEA_1AFD54AAA = \"CZ_LO_JEA_1AFD54AAA\",\n CZ_LO_PRD_F01285EF3 = \"CZ_LO_PRD_F01285EF3\",\n CZ_LO_PVB_BB7FE05F8 = \"CZ_LO_PVB_BB7FE05F8\",\n CZ_LO_PRC_19AF6F66B = \"CZ_LO_PRC_19AF6F66B\",\n CZ_LO_OLB_00520C634 = \"CZ_LO_OLB_00520C634\",\n CZ_LO_SUC_ADC4B9658 = \"CZ_LO_SUC_ADC4B9658\",\n CZ_LO_OLA_6D051C0BE = \"CZ_LO_OLA_6D051C0BE\",\n CZ_LO_PVA_BEC503FD4 = \"CZ_LO_PVA_BEC503FD4\",\n CZ_LO_PRA_B0DCBBE58 = \"CZ_LO_PRA_B0DCBBE58\",\n CZ_LO_OLC_038D0DF41 = \"CZ_LO_OLC_038D0DF41\",\n CZ_LO_SUA_28AA5231C = \"CZ_LO_SUA_28AA5231C\",\n CZ_LO_OLD_07297FA7B = \"CZ_LO_OLD_07297FA7B\",\n CZ_LO_SUB_5EF255F85 = \"CZ_LO_SUB_5EF255F85\",\n CZ_LO_JED_5326E5082 = \"CZ_LO_JED_5326E5082\",\n CZ_LO_krp_10_2BEF22BB6 = \"CZ_LO_krp_10_2BEF22BB6\",\n CZ_LO_UOE_DEBCBF07D = \"CZ_LO_UOE_DEBCBF07D\",\n CZ_LO_CRB_46C53B740 = \"CZ_LO_CRB_46C53B740\",\n CZ_LO_PAB_8FACD1B6B = \"CZ_LO_PAB_8FACD1B6B\",\n CZ_LO_UOD_C8C58B6D3 = \"CZ_LO_UOD_C8C58B6D3\",\n CZ_LO_CRA_79A814AB7 = \"CZ_LO_CRA_79A814AB7\",\n CZ_LO_UOF_703F6F4ED = \"CZ_LO_UOF_703F6F4ED\",\n CZ_LO_SYC_2665653C7 = \"CZ_LO_SYC_2665653C7\",\n CZ_LO_UOC_B01DF3245 = \"CZ_LO_UOC_B01DF3245\",\n CZ_LO_UOB_156A05CC2 = \"CZ_LO_UOB_156A05CC2\",\n CZ_LO_SYB_FC45DAA19 = \"CZ_LO_SYB_FC45DAA19\",\n CZ_LO_SYC_D8412735D = \"CZ_LO_SYC_D8412735D\",\n CZ_LO_CRA_F0A91F696 = \"CZ_LO_CRA_F0A91F696\",\n CZ_LO_PAA_64E3F5F06 = \"CZ_LO_PAA_64E3F5F06\",\n CZ_LO_SYD_897CD86AB = \"CZ_LO_SYD_897CD86AB\",\n CZ_LO_PAC_00CBAACBA = \"CZ_LO_PAC_00CBAACBA\",\n CZ_LO_CRD_AD056F390 = \"CZ_LO_CRD_AD056F390\",\n CZ_LO_SYA_57B61A836 = \"CZ_LO_SYA_57B61A836\",\n CZ_LO_CRC_3382B7F21 = \"CZ_LO_CRC_3382B7F21\",\n CZ_LO_UOA_CE332AA0C = \"CZ_LO_UOA_CE332AA0C\",\n CZ_LO_UOD_0CDE13CA0 = \"CZ_LO_UOD_0CDE13CA0\",\n CZ_LO_UOF_2B9C48C1E = \"CZ_LO_UOF_2B9C48C1E\",\n CZ_LO_krp_5_77494A9E6 = \"CZ_LO_krp_5_77494A9E6\",\n CZ_LO_PJA_7945089FD = \"CZ_LO_PJA_7945089FD\",\n CZ_LO_TCA_8FD35ADA4 = \"CZ_LO_TCA_8FD35ADA4\",\n CZ_LO_DOA_847241E32 = \"CZ_LO_DOA_847241E32\",\n CZ_LO_KTC_73F2B0A9C = \"CZ_LO_KTC_73F2B0A9C\",\n CZ_LO_DOA_CC7812494 = \"CZ_LO_DOA_CC7812494\",\n CZ_LO_KTA_329929FF3 = \"CZ_LO_KTA_329929FF3\",\n CZ_LO_PSC_449796A94 = \"CZ_LO_PSC_449796A94\",\n CZ_LO_PSE_A13C28249 = \"CZ_LO_PSE_A13C28249\",\n CZ_LO_PJB_FC778C646 = \"CZ_LO_PJB_FC778C646\",\n CZ_LO_KTA_6772C7BA3 = \"CZ_LO_KTA_6772C7BA3\",\n CZ_LO_PSB_51F4D3A50 = \"CZ_LO_PSB_51F4D3A50\",\n CZ_LO_KTA_10659140F = \"CZ_LO_KTA_10659140F\",\n CZ_LO_PSA_133A19182 = \"CZ_LO_PSA_133A19182\",\n CZ_LO_PMA_1A5D8CF5F = \"CZ_LO_PMA_1A5D8CF5F\",\n CZ_LO_PJC_796150684 = \"CZ_LO_PJC_796150684\",\n CZ_LO_ROA_6AFEE5EFA = \"CZ_LO_ROA_6AFEE5EFA\",\n CZ_LO_PJA_E417E0DB0 = \"CZ_LO_PJA_E417E0DB0\",\n CZ_LO_TCB_22D0BD99E = \"CZ_LO_TCB_22D0BD99E\",\n CZ_LO_KTB_042B7C4DA = \"CZ_LO_KTB_042B7C4DA\",\n CZ_LO_TCA_70A37137E = \"CZ_LO_TCA_70A37137E\",\n CZ_LO_krp_15_A9027380C = \"CZ_LO_krp_15_A9027380C\",\n CZ_LO_UHB_C876B1431 = \"CZ_LO_UHB_C876B1431\",\n CZ_LO_KMB_8F893CF66 = \"CZ_LO_KMB_8F893CF66\",\n CZ_LO_KMC_D2DB08B40 = \"CZ_LO_KMC_D2DB08B40\",\n CZ_LO_VSD_4911F6413 = \"CZ_LO_VSD_4911F6413\",\n CZ_LO_KMA_05D798887 = \"CZ_LO_KMA_05D798887\",\n CZ_LO_KMA_B225E132E = \"CZ_LO_KMA_B225E132E\",\n CZ_LO_ZLA_9BA811B11 = \"CZ_LO_ZLA_9BA811B11\",\n CZ_LO_ZLD_E22CD9A4B = \"CZ_LO_ZLD_E22CD9A4B\",\n CZ_LO_VSB_E480C2D3A = \"CZ_LO_VSB_E480C2D3A\",\n CZ_LO_ZLB_AFB81AEF0 = \"CZ_LO_ZLB_AFB81AEF0\",\n CZ_LO_UHA_C54C4EF07 = \"CZ_LO_UHA_C54C4EF07\",\n CZ_LO_UHB_F230AD714 = \"CZ_LO_UHB_F230AD714\",\n CZ_LO_ZLC_9C2482262 = \"CZ_LO_ZLC_9C2482262\",\n CZ_LO_VSC_D7A2B2192 = \"CZ_LO_VSC_D7A2B2192\",\n CZ_LO_VSA_187EAA8D1 = \"CZ_LO_VSA_187EAA8D1\",\n CZ_LO_ZLA_F942C129A = \"CZ_LO_ZLA_F942C129A\",\n CZ_LO_krp_7_22CA62F39 = \"CZ_LO_krp_7_22CA62F39\",\n CZ_LO_TPA_21AD60F24 = \"CZ_LO_TPA_21AD60F24\",\n CZ_LO_DCA_512A054A6 = \"CZ_LO_DCA_512A054A6\",\n CZ_LO_DCA_3AF8DD938 = \"CZ_LO_DCA_3AF8DD938\",\n CZ_LO_TPA_4B3800936 = \"CZ_LO_TPA_4B3800936\",\n CZ_LO_CVB_3EBF5A554 = \"CZ_LO_CVB_3EBF5A554\",\n CZ_LO_CVC_A45AA8F6F = \"CZ_LO_CVC_A45AA8F6F\",\n CZ_LO_CVD_DDE169D06 = \"CZ_LO_CVD_DDE169D06\",\n CZ_LO_LTD_FA6440DFC = \"CZ_LO_LTD_FA6440DFC\",\n CZ_LO_MOB_3F45D3E49 = \"CZ_LO_MOB_3F45D3E49\",\n CZ_LO_LTE_6E6B6F54F = \"CZ_LO_LTE_6E6B6F54F\",\n CZ_LO_LNB_3189C2778 = \"CZ_LO_LNB_3189C2778\",\n CZ_LO_LTB_352F65940 = \"CZ_LO_LTB_352F65940\",\n CZ_LO_DCB_0E6AC6B18 = \"CZ_LO_DCB_0E6AC6B18\",\n CZ_LO_DCB_8B03AD1B7 = \"CZ_LO_DCB_8B03AD1B7\",\n CZ_LO_LTF_C7A4D90ED = \"CZ_LO_LTF_C7A4D90ED\",\n CZ_LO_LTC_4161A6763 = \"CZ_LO_LTC_4161A6763\",\n CZ_LO_DCC_107C9AE18 = \"CZ_LO_DCC_107C9AE18\",\n CZ_LO_CVE_487E7150C = \"CZ_LO_CVE_487E7150C\",\n CZ_LO_LNC_64DA904E3 = \"CZ_LO_LNC_64DA904E3\",\n CZ_SIC_KOOP = \"CZ_SIC_KOOP\",\n CZ_FA_2103 = \"CZ_FA_2103\",\n CZ_FA_3004 = \"CZ_FA_3004\",\n CZ_FA_2503 = \"CZ_FA_2503\",\n CZ_FA_3102 = \"CZ_FA_3102\",\n CZ_FA_2901 = \"CZ_FA_2901\",\n CZ_FA_3213 = \"CZ_FA_3213\",\n CZ_FA_2509 = \"CZ_FA_2509\",\n CZ_FA_3216 = \"CZ_FA_3216\",\n CZ_FA_2301 = \"CZ_FA_2301\",\n CZ_FA_2003 = \"CZ_FA_2003\",\n CZ_FA_2012 = \"CZ_FA_2012\",\n CZ_FA_2512 = \"CZ_FA_2512\",\n CZ_FA_2211 = \"CZ_FA_2211\",\n CZ_FA_2912 = \"CZ_FA_2912\",\n CZ_FA_2913 = \"CZ_FA_2913\",\n CZ_FA_3020 = \"CZ_FA_3020\",\n CZ_FA_2104 = \"CZ_FA_2104\",\n CZ_FA_3005 = \"CZ_FA_3005\",\n CZ_FA_2305 = \"CZ_FA_2305\",\n CZ_FA_3011 = \"CZ_FA_3011\",\n CZ_FA_2205 = \"CZ_FA_2205\",\n CZ_FA_2112 = \"CZ_FA_2112\",\n CZ_FA_2114 = \"CZ_FA_2114\",\n CZ_FA_3202 = \"CZ_FA_3202\",\n CZ_FA_2303 = \"CZ_FA_2303\",\n CZ_FA_2004 = \"CZ_FA_2004\",\n CZ_FA_2101 = \"CZ_FA_2101\",\n CZ_FA_3307 = \"CZ_FA_3307\",\n CZ_FA_2808 = \"CZ_FA_2808\",\n CZ_FA_3218 = \"CZ_FA_3218\",\n CZ_FA_3018 = \"CZ_FA_3018\",\n CZ_FA_2811 = \"CZ_FA_2811\",\n CZ_FA_3006 = \"CZ_FA_3006\",\n CZ_FA_3205 = \"CZ_FA_3205\",\n CZ_FA_3207 = \"CZ_FA_3207\",\n CZ_FA_2403 = \"CZ_FA_2403\",\n CZ_FA_2505 = \"CZ_FA_2505\",\n CZ_FA_3214 = \"CZ_FA_3214\",\n CZ_FA_2115 = \"CZ_FA_2115\",\n CZ_FA_3203 = \"CZ_FA_3203\",\n CZ_FA_2302 = \"CZ_FA_2302\",\n CZ_FA_2005 = \"CZ_FA_2005\",\n CZ_FA_2209 = \"CZ_FA_2209\",\n CZ_FA_2513 = \"CZ_FA_2513\",\n CZ_FA_3108 = \"CZ_FA_3108\",\n CZ_FA_2609 = \"CZ_FA_2609\",\n CZ_FA_2125 = \"CZ_FA_2125\",\n CZ_FA_2515 = \"CZ_FA_2515\",\n CZ_FA_3007 = \"CZ_FA_3007\",\n CZ_FA_3008 = \"CZ_FA_3008\",\n CZ_FA_3210 = \"CZ_FA_3210\",\n CZ_FA_2504 = \"CZ_FA_2504\",\n CZ_FA_2401 = \"CZ_FA_2401\",\n CZ_FA_3304 = \"CZ_FA_3304\",\n CZ_FA_2510 = \"CZ_FA_2510\",\n CZ_FA_3201 = \"CZ_FA_3201\",\n CZ_FA_2119 = \"CZ_FA_2119\",\n CZ_FA_2006 = \"CZ_FA_2006\",\n CZ_FA_3106 = \"CZ_FA_3106\",\n CZ_FA_2712 = \"CZ_FA_2712\",\n CZ_FA_3109 = \"CZ_FA_3109\",\n CZ_FA_3309 = \"CZ_FA_3309\",\n CZ_FA_3312 = \"CZ_FA_3312\",\n CZ_FA_2914 = \"CZ_FA_2914\",\n CZ_FA_2105 = \"CZ_FA_2105\",\n CZ_FA_2106 = \"CZ_FA_2106\",\n CZ_FA_2903 = \"CZ_FA_2903\",\n CZ_FA_2804 = \"CZ_FA_2804\",\n CZ_FA_3212 = \"CZ_FA_3212\",\n CZ_FA_2113 = \"CZ_FA_2113\",\n CZ_FA_2709 = \"CZ_FA_2709\",\n CZ_FA_3306 = \"CZ_FA_3306\",\n CZ_FA_2102 = \"CZ_FA_2102\",\n CZ_FA_2007 = \"CZ_FA_2007\",\n CZ_FA_3107 = \"CZ_FA_3107\",\n CZ_FA_2122 = \"CZ_FA_2122\",\n CZ_FA_2212 = \"CZ_FA_2212\",\n CZ_FA_3308 = \"CZ_FA_3308\",\n CZ_FA_2810 = \"CZ_FA_2810\",\n CZ_FA_3001 = \"CZ_FA_3001\",\n CZ_FA_2602 = \"CZ_FA_2602\",\n CZ_FA_3010 = \"CZ_FA_3010\",\n CZ_FA_2604 = \"CZ_FA_2604\",\n CZ_FA_2110 = \"CZ_FA_2110\",\n CZ_FA_3013 = \"CZ_FA_3013\",\n CZ_FA_3215 = \"CZ_FA_3215\",\n CZ_FA_2801 = \"CZ_FA_2801\",\n CZ_FA_2001 = \"CZ_FA_2001\",\n CZ_FA_2008 = \"CZ_FA_2008\",\n CZ_FA_2120 = \"CZ_FA_2120\",\n CZ_FA_2607 = \"CZ_FA_2607\",\n CZ_FA_2313 = \"CZ_FA_2313\",\n CZ_FA_2501 = \"CZ_FA_2501\",\n CZ_FA_3019 = \"CZ_FA_3019\",\n CZ_FA_3002 = \"CZ_FA_3002\",\n CZ_FA_2201 = \"CZ_FA_2201\",\n CZ_FA_2109 = \"CZ_FA_2109\",\n CZ_FA_3103 = \"CZ_FA_3103\",\n CZ_FA_2308 = \"CZ_FA_2308\",\n CZ_FA_2601 = \"CZ_FA_2601\",\n CZ_FA_2118 = \"CZ_FA_2118\",\n CZ_FA_2910 = \"CZ_FA_2910\",\n CZ_FA_2010 = \"CZ_FA_2010\",\n CZ_FA_2009 = \"CZ_FA_2009\",\n CZ_FA_2121 = \"CZ_FA_2121\",\n CZ_FA_2124 = \"CZ_FA_2124\",\n CZ_FA_2514 = \"CZ_FA_2514\",\n CZ_FA_2809 = \"CZ_FA_2809\",\n CZ_FA_3110 = \"CZ_FA_3110\",\n CZ_FA_3003 = \"CZ_FA_3003\",\n CZ_FA_2203 = \"CZ_FA_2203\",\n CZ_FA_2701 = \"CZ_FA_2701\",\n CZ_FA_2707 = \"CZ_FA_2707\",\n CZ_FA_2111 = \"CZ_FA_2111\",\n CZ_FA_2507 = \"CZ_FA_2507\",\n CZ_FA_3101 = \"CZ_FA_3101\",\n CZ_FA_2208 = \"CZ_FA_2208\",\n CZ_FA_2002 = \"CZ_FA_2002\",\n CZ_FA_2011 = \"CZ_FA_2011\",\n CZ_FA_2312 = \"CZ_FA_2312\",\n CZ_FA_2407 = \"CZ_FA_2407\",\n CZ_FA_2713 = \"CZ_FA_2713\",\n CZ_FA_3310 = \"CZ_FA_3310\",\n CZ_FA_3301 = \"CZ_FA_3301\",\n}\n\nexport enum GovernmentInstitutionTypeCode {\n CzechSocialSecurityAdministration = \"CSSA\",\n FinancialAdministration = \"FA\",\n LabourOffice = \"LO\",\n StatutoryInsuranceCompany = \"SIC\",\n}\n\nexport enum InboxEntityTypeCode {\n CashReceiptsIssued = \"CashReceiptIssued\",\n CashReceiptsReceived = \"CashReceiptReceived\",\n InvoicesIssued = \"InvoiceIssued\",\n InvoicesReceived = \"InvoiceReceived\",\n Other = \"Other\",\n OtherLiabilities = \"OtherLiability\",\n OtherReceivables = \"OtherReceivable\",\n ProformaInvoicesIssued = \"ProformaInvoiceIssued\",\n ProformaInvoicesReceived = \"ProformaInvoiceReceived\",\n TaxDocumentsIssued = \"TaxDocumentIssued\",\n TaxDocumentsReceived = \"TaxDocumentReceived\",\n}\n\nexport enum InboxFileSourceCode {\n Email = \"Email\",\n CustomerPortal = \"CustomerPortal\",\n UploadedByAccountant = \"UploadedByAccountant\",\n}\n\nexport enum InboxFileStatusCode {\n Processing = \"Processing\",\n Completed = \"Completed\",\n Deleted = \"Deleted\",\n}\n\nexport enum InboxItemLogStateCode {\n Accepted = \"Accepted\",\n ApprovedByUser = \"ApprovedByUser\",\n IncludedByUser = \"IncludedByUser\",\n IncludedIn = \"IncludedIn\",\n ApprovedAutomaticallyDeliveredFromTrustedAddress = \"ApprovedTrustedSender\",\n ApprovedAutomaticallyDeliveredFromCustomerPortal = \"ApprovedCustomerPortal\",\n ApprovedAutomaticallyNoApproverNeeded = \"ApprovedAutomatically\",\n ApprovementCanceledByUser = \"CanceledByUser\",\n ApprovementResumedByUser = \"ResumedByUser\",\n RejectedByUser = \"RejectedByUser\",\n DeletedByUser = \"DeletedByUser\",\n}\n\nexport enum IntegrationApiImportedDocumentsCode {\n NewOnly = \"New\",\n NewAndChanged = \"NewAndChanged\",\n}\n\nexport enum IntegrationApiImportFrequencyCode {\n Daily = \"Daily\",\n LastDayOfTheMonth = \"LastDayOfMonth\",\n DoNotImportAutomatically = \"Never\",\n LastDayOfTheWeek = \"LastDayOfWeek\",\n}\n\nexport enum IntegrationApiImportFromWhenCode {\n FromDate = \"CustomDate\",\n ForThisFiscalYear = \"FiscalYear\",\n}\n\nexport enum IntegrationApiImportRangeCode {\n FromDate = \"Custom\",\n InTheCurrentFiscalYear = \"FiscalYear\",\n DoNotImport = \"None\",\n}\n\nexport enum InteractionTypeCode {\n DeletedBankAccount = \"DeletedBankAccount\",\n DeletedAdvanceTaxPayment = \"DeletedAdvanceTaxPayment\",\n DeletedSalaryAdvance = \"DeletedSalaryAdvance\",\n DeletedBalanceSheetClose = \"DeletedBalanceSheetClose\",\n DeletedDeferredPlan = \"DeletedDeferredPlan\",\n DeletedExchangeRates = \"DeletedExchangeRates\",\n DeletedIncomeExpenseTransfer = \"DeletedIncomeExpenseTransfer\",\n DeletedIncomeTaxDocument = \"DeletedIncomeTax\",\n DeletedInitialAccountBalances = \"DeletedInitialAccountBalances\",\n DeletedInventoryCheckDocument = \"DeletedInventoryCheck\",\n DeletedInventoryClearingDocument = \"DeletedInventoryClearing\",\n DeletedLinksAndSettlement = \"DeletedLinksAndSettlement\",\n DeletedNextYearBalanceSheetOpen = \"DeletedNextYearBalance\",\n DeletedNextYearProfitOrLossTransfer = \"DeletedNextYearProfitOrLoss\",\n DeletedProfitOrLoss = \"DeletedProfitOrLoss\",\n DisposedAsset = \"DisposedAsset\",\n ReceivableAdjustments = \"ReceivableAdjustments\",\n UserInteraction = \"UserInteraction\",\n VATElectronicSubmissionUnlocked = \"ElectronicSubmissionUnlocked\",\n}\n\nexport enum InventoryTypeCode {\n MethodA = \"CzInvA\",\n MethodB = \"CzInvB\",\n}\n\nexport enum InvoiceServiceIntegrationTypeCode {\n Fakturoid = \"Fakturoid\",\n IDoklad = \"IDoklad\",\n}\n\nexport enum JournalEntryTypeCode {\n Debit = \"Dr\",\n Credit = \"Cr\",\n}\n\nexport enum LanguageCode {\n English = \"en\",\n Czech = \"cs-CZ\",\n}\n\nexport enum LegalEntityCategoryCode {\n Large = \"Large\",\n Medium = \"Medium\",\n Micro = \"Micro\",\n Small = \"Small\",\n}\n\nexport enum LegislativeFixedExchangeRateCode {\n CZ2020_CZK_AUD = \"CZ2020_CZK_AUD\",\n CZ2020_CZK_BRL = \"CZ2020_CZK_BRL\",\n CZ2020_CZK_BGN = \"CZ2020_CZK_BGN\",\n CZ2020_CZK_CNY = \"CZ2020_CZK_CNY\",\n CZ2020_CZK_DKK = \"CZ2020_CZK_DKK\",\n CZ2020_CZK_EUR = \"CZ2020_CZK_EUR\",\n CZ2020_CZK_PHP = \"CZ2020_CZK_PHP\",\n CZ2020_CZK_HKD = \"CZ2020_CZK_HKD\",\n CZ2020_CZK_HRK = \"CZ2020_CZK_HRK\",\n CZ2020_CZK_INR = \"CZ2020_CZK_INR\",\n CZ2020_CZK_IDR = \"CZ2020_CZK_IDR\",\n CZ2020_CZK_ISK = \"CZ2020_CZK_ISK\",\n CZ2020_CZK_ILS = \"CZ2020_CZK_ILS\",\n CZ2020_CZK_JPY = \"CZ2020_CZK_JPY\",\n CZ2020_CZK_ZAR = \"CZ2020_CZK_ZAR\",\n CZ2020_CZK_CAD = \"CZ2020_CZK_CAD\",\n CZ2020_CZK_KRW = \"CZ2020_CZK_KRW\",\n CZ2020_CZK_HUF = \"CZ2020_CZK_HUF\",\n CZ2020_CZK_MYR = \"CZ2020_CZK_MYR\",\n CZ2020_CZK_MXN = \"CZ2020_CZK_MXN\",\n CZ2020_CZK_XDR = \"CZ2020_CZK_XDR\",\n CZ2020_CZK_NOK = \"CZ2020_CZK_NOK\",\n CZ2020_CZK_NZD = \"CZ2020_CZK_NZD\",\n CZ2020_CZK_PLN = \"CZ2020_CZK_PLN\",\n CZ2020_CZK_RON = \"CZ2020_CZK_RON\",\n CZ2020_CZK_RUB = \"CZ2020_CZK_RUB\",\n CZ2020_CZK_SGD = \"CZ2020_CZK_SGD\",\n CZ2020_CZK_SEK = \"CZ2020_CZK_SEK\",\n CZ2020_CZK_CHF = \"CZ2020_CZK_CHF\",\n CZ2020_CZK_THB = \"CZ2020_CZK_THB\",\n CZ2020_CZK_TRY = \"CZ2020_CZK_TRY\",\n CZ2020_CZK_USD = \"CZ2020_CZK_USD\",\n CZ2020_CZK_GBP = \"CZ2020_CZK_GBP\",\n CZ2021_CZK_AUD = \"CZ2021_CZK_AUD\",\n CZ2021_CZK_BRL = \"CZ2021_CZK_BRL\",\n CZ2021_CZK_BGN = \"CZ2021_CZK_BGN\",\n CZ2021_CZK_CNY = \"CZ2021_CZK_CNY\",\n CZ2021_CZK_DKK = \"CZ2021_CZK_DKK\",\n CZ2021_CZK_EUR = \"CZ2021_CZK_EUR\",\n CZ2021_CZK_PHP = \"CZ2021_CZK_PHP\",\n CZ2021_CZK_HKD = \"CZ2021_CZK_HKD\",\n CZ2021_CZK_HRK = \"CZ2021_CZK_HRK\",\n CZ2021_CZK_INR = \"CZ2021_CZK_INR\",\n CZ2021_CZK_IDR = \"CZ2021_CZK_IDR\",\n CZ2021_CZK_ISK = \"CZ2021_CZK_ISK\",\n CZ2021_CZK_ILS = \"CZ2021_CZK_ILS\",\n CZ2021_CZK_JPY = \"CZ2021_CZK_JPY\",\n CZ2021_CZK_ZAR = \"CZ2021_CZK_ZAR\",\n CZ2021_CZK_CAD = \"CZ2021_CZK_CAD\",\n CZ2021_CZK_KRW = \"CZ2021_CZK_KRW\",\n CZ2021_CZK_HUF = \"CZ2021_CZK_HUF\",\n CZ2021_CZK_MYR = \"CZ2021_CZK_MYR\",\n CZ2021_CZK_MXN = \"CZ2021_CZK_MXN\",\n CZ2021_CZK_XDR = \"CZ2021_CZK_XDR\",\n CZ2021_CZK_NOK = \"CZ2021_CZK_NOK\",\n CZ2021_CZK_NZD = \"CZ2021_CZK_NZD\",\n CZ2021_CZK_PLN = \"CZ2021_CZK_PLN\",\n CZ2021_CZK_RON = \"CZ2021_CZK_RON\",\n CZ2021_CZK_RUB = \"CZ2021_CZK_RUB\",\n CZ2021_CZK_SGD = \"CZ2021_CZK_SGD\",\n CZ2021_CZK_SEK = \"CZ2021_CZK_SEK\",\n CZ2021_CZK_CHF = \"CZ2021_CZK_CHF\",\n CZ2021_CZK_THB = \"CZ2021_CZK_THB\",\n CZ2021_CZK_TRY = \"CZ2021_CZK_TRY\",\n CZ2021_CZK_USD = \"CZ2021_CZK_USD\",\n CZ2021_CZK_GBP = \"CZ2021_CZK_GBP\",\n CZ2022_CZK_AUD = \"CZ2022_CZK_AUD\",\n CZ2022_CZK_BRL = \"CZ2022_CZK_BRL\",\n CZ2022_CZK_BGN = \"CZ2022_CZK_BGN\",\n CZ2022_CZK_CNY = \"CZ2022_CZK_CNY\",\n CZ2022_CZK_DKK = \"CZ2022_CZK_DKK\",\n CZ2022_CZK_EUR = \"CZ2022_CZK_EUR\",\n CZ2022_CZK_PHP = \"CZ2022_CZK_PHP\",\n CZ2022_CZK_HKD = \"CZ2022_CZK_HKD\",\n CZ2022_CZK_HRK = \"CZ2022_CZK_HRK\",\n CZ2022_CZK_INR = \"CZ2022_CZK_INR\",\n CZ2022_CZK_IDR = \"CZ2022_CZK_IDR\",\n CZ2022_CZK_ISK = \"CZ2022_CZK_ISK\",\n CZ2022_CZK_ILS = \"CZ2022_CZK_ILS\",\n CZ2022_CZK_JPY = \"CZ2022_CZK_JPY\",\n CZ2022_CZK_ZAR = \"CZ2022_CZK_ZAR\",\n CZ2022_CZK_CAD = \"CZ2022_CZK_CAD\",\n CZ2022_CZK_KRW = \"CZ2022_CZK_KRW\",\n CZ2022_CZK_HUF = \"CZ2022_CZK_HUF\",\n CZ2022_CZK_MYR = \"CZ2022_CZK_MYR\",\n CZ2022_CZK_MXN = \"CZ2022_CZK_MXN\",\n CZ2022_CZK_XDR = \"CZ2022_CZK_XDR\",\n CZ2022_CZK_NOK = \"CZ2022_CZK_NOK\",\n CZ2022_CZK_NZD = \"CZ2022_CZK_NZD\",\n CZ2022_CZK_PLN = \"CZ2022_CZK_PLN\",\n CZ2022_CZK_RON = \"CZ2022_CZK_RON\",\n CZ2022_CZK_SGD = \"CZ2022_CZK_SGD\",\n CZ2022_CZK_SEK = \"CZ2022_CZK_SEK\",\n CZ2022_CZK_CHF = \"CZ2022_CZK_CHF\",\n CZ2022_CZK_THB = \"CZ2022_CZK_THB\",\n CZ2022_CZK_TRY = \"CZ2022_CZK_TRY\",\n CZ2022_CZK_USD = \"CZ2022_CZK_USD\",\n CZ2022_CZK_GBP = \"CZ2022_CZK_GBP\",\n CZ2023_CZK_AUD = \"CZ2023_CZK_AUD\",\n CZ2023_CZK_BRL = \"CZ2023_CZK_BRL\",\n CZ2023_CZK_BGN = \"CZ2023_CZK_BGN\",\n CZ2023_CZK_CNY = \"CZ2023_CZK_CNY\",\n CZ2023_CZK_DKK = \"CZ2023_CZK_DKK\",\n CZ2023_CZK_EUR = \"CZ2023_CZK_EUR\",\n CZ2023_CZK_PHP = \"CZ2023_CZK_PHP\",\n CZ2023_CZK_HKD = \"CZ2023_CZK_HKD\",\n CZ2023_CZK_INR = \"CZ2023_CZK_INR\",\n CZ2023_CZK_IDR = \"CZ2023_CZK_IDR\",\n CZ2023_CZK_ISK = \"CZ2023_CZK_ISK\",\n CZ2023_CZK_ILS = \"CZ2023_CZK_ILS\",\n CZ2023_CZK_JPY = \"CZ2023_CZK_JPY\",\n CZ2023_CZK_ZAR = \"CZ2023_CZK_ZAR\",\n CZ2023_CZK_CAD = \"CZ2023_CZK_CAD\",\n CZ2023_CZK_KRW = \"CZ2023_CZK_KRW\",\n CZ2023_CZK_HUF = \"CZ2023_CZK_HUF\",\n CZ2023_CZK_MYR = \"CZ2023_CZK_MYR\",\n CZ2023_CZK_MXN = \"CZ2023_CZK_MXN\",\n CZ2023_CZK_XDR = \"CZ2023_CZK_XDR\",\n CZ2023_CZK_NOK = \"CZ2023_CZK_NOK\",\n CZ2023_CZK_NZD = \"CZ2023_CZK_NZD\",\n CZ2023_CZK_PLN = \"CZ2023_CZK_PLN\",\n CZ2023_CZK_RON = \"CZ2023_CZK_RON\",\n CZ2023_CZK_SGD = \"CZ2023_CZK_SGD\",\n CZ2023_CZK_SEK = \"CZ2023_CZK_SEK\",\n CZ2023_CZK_CHF = \"CZ2023_CZK_CHF\",\n CZ2023_CZK_THB = \"CZ2023_CZK_THB\",\n CZ2023_CZK_TRY = \"CZ2023_CZK_TRY\",\n CZ2023_CZK_USD = \"CZ2023_CZK_USD\",\n CZ2023_CZK_GBP = \"CZ2023_CZK_GBP\",\n}\n\nexport enum LockTypeCode {\n User = \"User\",\n}\n\nexport enum MandatoryAccountCode {\n _321AccountsPayable = \"CzAccBizAp\",\n _311AccountsReceivable = \"CzAccBizAr\",\n _221Bank = \"CzAccBizBank\",\n _211Cash = \"CzAccBizCash\",\n _315BusinessOtherReceivable = \"CzAccBizBusinessOtherAr\",\n _325BusinessOtherPayable = \"CzAccBizBusinessOtherAp\",\n _343ValueAddedTax = \"CzAccBizVat\",\n _341IncomeTax = \"CzAccBizIncomeTax\",\n _342OtherDirectTaxes = \"CzAccBizOtherDirTax\",\n _345OtherTaxesAndFees = \"CzAccBizOtherTaxes\",\n _349BalancingAccountForVAT = \"CzAccBizConAccount\",\n _378OtherReceivables = \"CzAccBizOtherAr\",\n _379OtherPayables = \"CzAccBizOtherAp\",\n _391AdjustmentsToDoubtfulReceivables = \"CzAccBizRecAdj\",\n _395InternalClearing = \"CzAccBizIntClrng\",\n _431ProfitOrLossToBeApproved = \"CzAccBizProfLossApr\",\n _558AdditionsToTaxdeducibleAdjustments = \"CzAccBizAddAdj\",\n _042AcquisitionOfTangibleAssets = \"CzAccBizTan\",\n _041AcquisitionOfIntangibleAssets = \"CzAccBizIntan\",\n _551DepreciationsOfAssets = \"CzAccBizAssDep\",\n _381DeferredExpenses = \"CzAccBizDefExp\",\n _384DeferredRevenues = \"CzAccBizDefRev\",\n _383AccruedExpenses = \"CzAccBizAccExp\",\n _385AccruedRevenues = \"CzAccBizAccRev\",\n _388EstimatedAccruedRevenues = \"CzAccBizEstAccRev\",\n _389EstimatedAccruedExpenses = \"CzAccBizEstAccExp\",\n _546ReceivablesWriteoff = \"CzAccBizWOff\",\n _546001ReceivablesWriteoffTax = \"CzAccBizWOffT\",\n _546009ReceivablesWriteoffNontax = \"CzAccBizWOffN\",\n _700InitialBalanceSheetAccount = \"CzAccBizInit\",\n _701OpeningBalanceSheetAccount = \"CzAccBizOpen\",\n _702ClosingBalanceSheetAccount = \"CzAccBizClose\",\n _710ProfitAndLossAccount = \"CzAccBizProfitLoss\",\n _314AdvanceOperatingPaymentsGiven = \"CzAccBizAdvPayGiven\",\n _324AdvancePaymentsReceived = \"CzAccBizAdvPayRecvd\",\n _563ForeignExchangeLosses = \"CzAccBizExchLoss\",\n _663ForeignExchangeGains = \"CzAccBizExchGain\",\n _591IncomeTaxOnOrdinaryIncomeDue = \"CzAccBizIncTaxExp\",\n _112MaterialInStock = \"CzAccBizInvMaterial\",\n _132GoodsInHand = \"CzAccBizInvGoods\",\n _111MaterialProcurement = \"CzAccBizInvMatProc\",\n _131GoodsProcurement = \"CzAccBizInvGoodsProc\",\n _012Research = \"CzAccBizResearch\",\n _013Software = \"CzAccBizSoftware\",\n _021Buildings = \"CzAccBizBuildings\",\n _022Movables = \"CzAccBizMovables\",\n _031Holdings = \"CzAccBizHoldings\",\n _072AccumulatedDepreciationForResearch = \"CzAccBizResearchAD\",\n _073AccumulatedDepreciationForSoftware = \"CzAccBizSoftwareAD\",\n _081AccumulatedDepreciationForBuildings = \"CzAccBizBuildingsAD\",\n _082AccumulatedDepreciationForMovables = \"CzAccBizHoldingsAD\",\n _261CashInTransit = \"CzAccBizCashTransfer\",\n _491PersonalConsumptionOfTheEntrepreneur = \"CzAccBizPersConsumption\",\n _562InterestExpenses = \"CzAccBizInterestExp\",\n _662InterestRevenue = \"CzAccBizInterestRev\",\n _331PayrollPayable = \"CzAccBizPayrollPayable\",\n _335ReceivablesFromEmployees = \"CzAccBizRecFromEmployee\",\n}\n\nexport enum MandatoryChartOfAccountsCode {\n MandatoryChartOfAccountsForBusinesses = \"CzAccBiz\",\n}\n\nexport enum MinorAssetStatusCode {\n Active = \"ACTIVE\",\n WithoutAssets = \"EMPTY\",\n}\n\nexport enum ModuleCode {\n ExtendedStorage = \"Storage\",\n Rossum = \"Rossum\",\n}\n\nexport enum MonthOfYearCode {\n April = \"APR\",\n August = \"AUG\",\n December = \"DEC\",\n February = \"FEB\",\n January = \"JAN\",\n July = \"JUL\",\n June = \"JUN\",\n March = \"MAR\",\n May = \"MAY\",\n November = \"NOV\",\n October = \"OCT\",\n September = \"SEP\",\n}\n\nexport enum MultiplePostingDateAccountingTypeCode {\n ExplicitDate = \"ExplicitDate\",\n IssuedDate = \"DateIssued\",\n}\n\nexport enum NotificationTypeCode {\n DataBoxMessageReceivment = \"DataboxMessage\",\n InboxDocumentReceivment = \"InboxDocument\",\n InboxDocumentApprovalCanceled = \"InboxDocumentApprovalCanceled\",\n InboxDocumentApprovalResumed = \"InboxDocumentApprovalResumed\",\n SatisfactionSurvey = \"SurveySatisfaction\",\n SystemUpdate = \"SystemUpdate\",\n DocumentForApprovalReceivement = \"DocumentForApproval\",\n NewTicketCreated = \"NewTicket\",\n NewTicketFromCustomerPortalCreated = \"NewTicketFromCustomerPortal\",\n NewTicketMessageFromAnAccountantReceivement = \"NewTicketMessage\",\n NewTicketMessageFromACustomerReceivement = \"NewTicketMessageFromCustomerPortal\",\n BankStatementImportError = \"BankStatementImportError\",\n BankTransactionsMatchMultipleError = \"BankTransactionsMatchMultipleError\",\n InvoiceServiceIntegrationCredentialsExpiredReminder = \"ISIntegrationCredentialsExpired\",\n}\n\nexport enum NotificationTypeGroupCode {\n DataBox = \"Databox\",\n Inbox = \"Inbox\",\n CustomerPortal = \"CustomerPortal\",\n Bank = \"Bank\",\n Integration = \"ISIntegration\",\n}\n\nexport enum NumberRangeTypeCode {\n BankStatement = \"BankStatement\",\n MinorAsset = \"MinorAsset\",\n Asset = \"Asset\",\n CorrectiveInvoiceIssued = \"CorrectiveInvoiceIssued\",\n CorrectiveInvoiceReceived = \"CorrectiveInvoiceReceived\",\n InternalDocument = \"InternalDocument\",\n InvoiceIssued = \"InvoiceIssued\",\n InvoiceReceived = \"InvoiceReceived\",\n OtherLiability = \"OtherLiability\",\n OtherReceivable = \"OtherReceivable\",\n ProformaInvoiceIssued = \"ProformaInvoiceIssued\",\n ProformaInvoiceReceived = \"ProformaInvoiceReceived\",\n CashReceiptIssued = \"CashReceiptIssued\",\n CashReceiptReceived = \"CashReceiptReceived\",\n Employment = \"PrEmployment\",\n EmploymentTemplate = \"PrEmploymentTemplate\",\n SalaryAdvance = \"PrSalaryAdvance\",\n Employee = \"PrEmployee\",\n IndividualDeduction = \"PrIndividualDeduction\",\n GroupDeduction = \"PrGroupDeduction\",\n}\n\nexport enum NumberRangeWildcardCode {\n DocumentsFiscalYear4Digits_UpTo2CharactersSuffix = \"%FFFF%\",\n DocumentsFiscalYear2Digits_UpTo2CharactersSuffix = \"%FF%\",\n DocumentsFiscalYear1Digit_UpTo2CharactersSuffix = \"%F%\",\n DocumentsFiscalPeriod3Digits = \"%PPP%\",\n CalendarYear4Digits = \"%YYYY%\",\n CalendarYear2Digits = \"%YY%\",\n CalendarYear1Digit = \"%Y%\",\n CalendarMonth2Digit = \"%MM%\",\n}\n\nexport enum PayableReceivableTypeCode {\n Payable = \"AP\",\n Receivable = \"AR\",\n InternalDocument = \"NO\",\n}\n\nexport enum PaymentDocumentItemTypeCode {\n ExchangeGain = \"ExchangeGain\",\n ExchangeLoss = \"ExchangeLoss\",\n Other = \"Other\",\n Payment = \"Payment\",\n}\n\nexport enum PaymentItemCode {\n InitPaymentCZK = \"InitPaymentCZK\",\n InitPaymentEUR = \"InitPaymentEUR\",\n}\n\nexport enum PaymentMethodCode {\n WireTransfer = \"Wire\",\n Cash = \"Cash\",\n Card = \"Card\",\n PaymentService = \"Srvc\",\n Netting = \"Nett\",\n CashOnDelivery = \"Deli\",\n}\n\nexport enum PaymentOrderFormatCode {\n CzechPayment = \"Czech\",\n NonSEPAPayment = \"NonSepa\",\n SepaPayment = \"Sepa\",\n}\n\nexport enum PaymentOrderOutputCode {\n BankAPIDefault = \"BankApi\",\n BankFile = \"BankFile\",\n CustomerPortal = \"CustomerPortal\",\n MicrosoftExcel = \"Excel\",\n}\n\nexport enum PaymentStatusCode {\n WaitsForProcessing = \"WP\",\n NeedsApproval = \"NA\",\n PartiallyProcessed = \"PP\",\n Processed = \"PR\",\n}\n\nexport enum PrAbsenceCategoryLegislativeTypeCode {\n Nemocenská = \"CzIllness\",\n OČR = \"CzFamilyMemberCare\",\n PlacenéVolno = \"CzOtherPaidTimeOff\",\n PracovníVolnoDarováníKrve = \"CzPaidTimeOffBloodDonation\",\n PracovníVolnoVolebníKomise = \"CzPaidTimeOffElections\",\n PracovníVolnoPohřeb = \"CzPaidTimeOffFuneral\",\n PracovníVolnoČinnostVedoucíchTáborů = \"CzPaidTimeOffSummerCamp\",\n PracovníVolnoSvatba = \"CzPaidTimeOffWedding\",\n OtcovskáDovolená = \"CzParentalLeave\",\n NeplacenéVolno = \"CzUnpaidTimeOff\",\n Dovolená = \"CzVacation\",\n NáhradníVolno = \"CzCompensatoryTime\",\n Lékař = \"CzDoctorAppointment\",\n}\n\nexport enum PrAttendanceStatusCode {\n Locked = \"Locked\",\n Processed = \"Processed\",\n ToProcess = \"ToProcess\",\n}\n\nexport enum PrChildDeductionOrderCode {\n _1 = \"Cz1\",\n _2 = \"Cz2\",\n _3 = \"Cz3\",\n N = \"CzN\",\n}\n\nexport enum PrCzechReductionLimitCode {\n _20221st = \"Cz2022_1\",\n _20222nd = \"Cz2022_2\",\n _20223rd = \"Cz2022_3\",\n _2022Limit = \"Cz2022_4\",\n _20231st = \"Cz2023_1\",\n _20232nd = \"Cz2023_2\",\n _20233rd = \"Cz2023_3\",\n _2023Limit = \"Cz2023_4\",\n _20241st = \"Cz2024_1\",\n _20242nd = \"Cz2024_2\",\n _20243rd = \"Cz2024_3\",\n _2024Limit = \"Cz2024_4\",\n}\n\nexport enum PrDisabilityDiscountAmountCode {\n BasicDisabilityDiscountFor2024 = \"Cz2024Basic2024\",\n ExtendedDisabilityDiscountFor2024 = \"Cz2024Extended2024\",\n DiscountForZTP_PHolderFor2024 = \"Cz2024ZtpP2024\",\n}\n\nexport enum PrDisabilityTypeCode {\n I_Disability = \"I\",\n II_Disability = \"II\",\n III_Disability = \"III\",\n}\n\nexport enum PrEmployeeStateCode {\n Current = \"Current\",\n Former = \"Former\",\n}\n\nexport enum PrEmploymentTypeCode {\n DohodaOPracovníČinnosti = \"CzDpc\",\n DohodaOProvedeníPráce = \"CzDpp\",\n Employment = \"Employment\",\n}\n\nexport enum PrExtraSalaryComputationTypeCode {\n AbsoluteAmountHour = \"HourlyAbsolute\",\n AverageHourlySalaryPercentage = \"HourlyPercentage\",\n AbsoluteAmountShift = \"ShiftAbsolute\",\n}\n\nexport enum PrExtraSalaryLegislativeValueCode {\n Holiday100 = \"CzHoliday100\",\n Overtime25 = \"CzOvertime25\",\n Weekend10 = \"CzWeekend10\",\n Night20 = \"CzNight20\",\n}\n\nexport enum PrExtraSalaryTypeCode {\n Holiday = \"Holiday\",\n Night = \"Night\",\n Overtime = \"Overtime\",\n Weekend = \"Weekend\",\n Custom = \"Custom\",\n}\n\nexport enum PrFormOfStudyTypeCode {\n Combined = \"Combined\",\n FullTime = \"FullTime\",\n}\n\nexport enum PrIdentityDocumentTypeCode {\n IDCard = \"IdCard\",\n Passport = \"Passport\",\n}\n\nexport enum PrIncomeTaxDiscountCode {\n CzechSince2022 = \"Cz2022\",\n}\n\nexport enum PrInsuranceBankAccountPredefinedCode {\n CPZPHealthInsuranceAccount01 = \"CZ_H_CPZP_01\",\n CPZPHealthInsuranceAccount02 = \"CZ_H_CPZP_02\",\n CPZPHealthInsuranceAccount03 = \"CZ_H_CPZP_03\",\n CPZPHealthInsuranceAccount04 = \"CZ_H_CPZP_04\",\n CPZPHealthInsuranceAccount05 = \"CZ_H_CPZP_05\",\n CPZPHealthInsuranceAccount06 = \"CZ_H_CPZP_06\",\n CPZPHealthInsuranceAccount07 = \"CZ_H_CPZP_07\",\n CPZPHealthInsuranceAccount08 = \"CZ_H_CPZP_08\",\n CPZPHealthInsuranceAccount09 = \"CZ_H_CPZP_09\",\n OZPHealthInsuranceAccount01 = \"CZ_H_OZP_01\",\n OZPHealthInsuranceAccount02 = \"CZ_H_OZP_02\",\n RBPHealthInsuranceAccount01 = \"CZ_H_RBP_01\",\n RBPHealthInsuranceAccount02 = \"CZ_H_RBP_02\",\n RBPHealthInsuranceAccount03 = \"CZ_H_RBP_03\",\n RBPHealthInsuranceAccount04 = \"CZ_H_RBP_04\",\n RBPHealthInsuranceAccount05 = \"CZ_H_RBP_05\",\n RBPHealthInsuranceAccount06 = \"CZ_H_RBP_06\",\n VZPHealthInsuranceAccount01 = \"CZ_H_VZP_01\",\n VZPHealthInsuranceAccount02 = \"CZ_H_VZP_02\",\n VZPHealthInsuranceAccount03 = \"CZ_H_VZP_03\",\n VZPHealthInsuranceAccount04 = \"CZ_H_VZP_04\",\n VZPHealthInsuranceAccount05 = \"CZ_H_VZP_05\",\n VZPHealthInsuranceAccount06 = \"CZ_H_VZP_06\",\n VZPHealthInsuranceAccount07 = \"CZ_H_VZP_07\",\n VZPHealthInsuranceAccount08 = \"CZ_H_VZP_08\",\n VZPHealthInsuranceAccount09 = \"CZ_H_VZP_09\",\n VZPHealthInsuranceAccount10 = \"CZ_H_VZP_10\",\n VZPHealthInsuranceAccount11 = \"CZ_H_VZP_11\",\n VZPHealthInsuranceAccount12 = \"CZ_H_VZP_12\",\n VZPHealthInsuranceAccount13 = \"CZ_H_VZP_13\",\n VZPHealthInsuranceAccount14 = \"CZ_H_VZP_14\",\n VZPHealthInsuranceAccount15 = \"CZ_H_VZP_15\",\n VZPHealthInsuranceAccount16 = \"CZ_H_VZP_16\",\n VZPHealthInsuranceAccount17 = \"CZ_H_VZP_17\",\n VZPHealthInsuranceAccount18 = \"CZ_H_VZP_18\",\n VZPHealthInsuranceAccount19 = \"CZ_H_VZP_19\",\n VZPHealthInsuranceAccount20 = \"CZ_H_VZP_20\",\n VZPHealthInsuranceAccount21 = \"CZ_H_VZP_21\",\n VZPHealthInsuranceAccount22 = \"CZ_H_VZP_22\",\n VZPHealthInsuranceAccount23 = \"CZ_H_VZP_23\",\n VZPHealthInsuranceAccount24 = \"CZ_H_VZP_24\",\n VZPHealthInsuranceAccount25 = \"CZ_H_VZP_25\",\n VZPHealthInsuranceAccount26 = \"CZ_H_VZP_26\",\n VZPHealthInsuranceAccount27 = \"CZ_H_VZP_27\",\n VZPHealthInsuranceAccount28 = \"CZ_H_VZP_28\",\n VZPHealthInsuranceAccount29 = \"CZ_H_VZP_29\",\n VZPHealthInsuranceAccount30 = \"CZ_H_VZP_30\",\n VZPHealthInsuranceAccount31 = \"CZ_H_VZP_31\",\n VZPHealthInsuranceAccount32 = \"CZ_H_VZP_32\",\n VZPHealthInsuranceAccount33 = \"CZ_H_VZP_33\",\n VZPHealthInsuranceAccount34 = \"CZ_H_VZP_34\",\n VZPHealthInsuranceAccount35 = \"CZ_H_VZP_35\",\n VZPHealthInsuranceAccount36 = \"CZ_H_VZP_36\",\n VZPHealthInsuranceAccount37 = \"CZ_H_VZP_37\",\n VZPHealthInsuranceAccount38 = \"CZ_H_VZP_38\",\n VZPHealthInsuranceAccount39 = \"CZ_H_VZP_39\",\n VZPHealthInsuranceAccount40 = \"CZ_H_VZP_40\",\n VZPHealthInsuranceAccount41 = \"CZ_H_VZP_41\",\n VZPHealthInsuranceAccount42 = \"CZ_H_VZP_42\",\n VOZPHealthInsuranceAccount01 = \"CZ_H_VOZP_01\",\n VOZPHealthInsuranceAccount02 = \"CZ_H_VOZP_02\",\n VOZPHealthInsuranceAccount03 = \"CZ_H_VOZP_03\",\n ZPSHealthInsuranceAccount01 = \"CZ_H_ZPS_01\",\n ZPSHealthInsuranceAccount02 = \"CZ_H_ZPS_02\",\n ZPSHealthInsuranceAccount03 = \"CZ_H_ZPS_03\",\n ZPSHealthInsuranceAccount04 = \"CZ_H_ZPS_04\",\n ZPMVHealthInsuranceAccount01 = \"CZ_H_ZPMV_01\",\n ZPMVHealthInsuranceAccount02 = \"CZ_H_ZPMV_02\",\n ZPMVHealthInsuranceAccount03 = \"CZ_H_ZPMV_03\",\n ZPMVHealthInsuranceAccount04 = \"CZ_H_ZPMV_04\",\n AllianzLifeInsuranceAccount01 = \"CZ_L_ALLI_01\",\n MetlifeLifeInsuranceAccount01 = \"CZ_L_METL_01\",\n MetlifeLifeInsuranceAccount02 = \"CZ_L_METL_02\",\n GeneraliLifeInsuranceAccount01 = \"CZ_L_GENE_01\",\n GeneraliLifeInsuranceAccount02 = \"CZ_L_GENE_02\",\n GeneraliLifeInsuranceAccount03 = \"CZ_L_GENE_03\",\n ČeskáSpořitelnaLifeInsuranceAccount01 = \"CZ_L_SPOR_01\",\n ČPPLifeInsuranceAccount01 = \"CZ_L_CPP_01\",\n ČSOBLifeInsuranceAccount01 = \"CZ_L_CSOB_01\",\n PillowLifeInsuranceAccount01 = \"CZ_L_PILL_01\",\n NNLifeInsuranceAccount01 = \"CZ_L_NN_01\",\n KooperativaLifeInsuranceAccount01 = \"CZ_L_KOOP_01\",\n UniqaLifeInsuranceAccount01 = \"CZ_L_UNIQ_01\",\n MaximaLifeInsuranceAccount01 = \"CZ_L_MAXI_01\",\n BNPParibasCardifLifeInsuranceAccount01 = \"CZ_L_MAXI_02\",\n ErgoLifeInsuranceAccount01 = \"CZ_L_ERGO_01\",\n HasičskáVzájemnáPojišťovnaLifeInsuranceAccount01 = \"CZ_L_FIRE_01\",\n AllianzPensionInsuranceAccount01 = \"CZ_P_ALLI_01\",\n ČeskáSpořitelnaPensionInsuranceAccount01 = \"CZ_P_SPOR_01\",\n ČSOBPensionInsuranceAccount01 = \"CZ_P_CSOB_01\",\n NNPensionInsuranceAccount01 = \"CZ_P_NN_01\",\n GeneraliPensionInsuranceAccount01 = \"CZ_P_GENE_01\",\n}\n\nexport enum PrInsuranceBankAccountTypeCode {\n CompensationForDamages = \"DC\",\n Employee = \"EM\",\n NoTaxableIncome = \"NT\",\n PenaltiesAndFines = \"PF\",\n Selfemployed = \"SE\",\n}\n\nexport enum PrInsuranceCompanyPredefinedCode {\n CZ_H_CPZP = \"CZ_H_CPZP\",\n CZ_H_OZP = \"CZ_H_OZP\",\n CZ_H_RBP = \"CZ_H_RBP\",\n CZ_H_VZP = \"CZ_H_VZP\",\n CZ_H_VOZP = \"CZ_H_VOZP\",\n CZ_H_ZPS = \"CZ_H_ZPS\",\n CZ_H_ZPMV = \"CZ_H_ZPMV\",\n CZ_L_ALLI = \"CZ_L_ALLI\",\n CZ_L_METL = \"CZ_L_METL\",\n CZ_L_GENE = \"CZ_L_GENE\",\n CZ_L_SPOR = \"CZ_L_SPOR\",\n CZ_L_CPP = \"CZ_L_CPP\",\n CZ_L_CSOB = \"CZ_L_CSOB\",\n CZ_L_PILL = \"CZ_L_PILL\",\n CZ_L_NN = \"CZ_L_NN\",\n CZ_L_KOMM = \"CZ_L_KOMM\",\n CZ_L_KOOP = \"CZ_L_KOOP\",\n CZ_L_UNIQ = \"CZ_L_UNIQ\",\n CZ_L_MAXI = \"CZ_L_MAXI\",\n CZ_L_BNP = \"CZ_L_BNP\",\n CZ_L_UNIC = \"CZ_L_UNIC\",\n CZ_L_YOUP = \"CZ_L_YOUP\",\n CZ_L_MUTU = \"CZ_L_MUTU\",\n CZ_L_ERGO = \"CZ_L_ERGO\",\n CZ_L_FIRE = \"CZ_L_FIRE\",\n CZ_L_RAIF = \"CZ_L_RAIF\",\n CZ_L_MONE = \"CZ_L_MONE\",\n CZ_L_SIMP = \"CZ_L_SIMP\",\n CZ_P_ALLI = \"CZ_P_ALLI\",\n CZ_P_AXA = \"CZ_P_AXA\",\n CZ_P_CONS = \"CZ_P_CONS\",\n CZ_P_SPOR = \"CZ_P_SPOR\",\n CZ_P_CSOB = \"CZ_P_CSOB\",\n CZ_P_KOMM = \"CZ_P_KOMM\",\n CZ_P_NN = \"CZ_P_NN\",\n CZ_P_GENE = \"CZ_P_GENE\",\n}\n\nexport enum PrInsuranceCompanyTypeCode {\n HealthInsuranceCompany = \"PrHealthInsuranceCompany\",\n LifeInsuranceCompany = \"PrLifeInsuranceCompany\",\n PensionInsuranceCompany = \"PrPensionInsuranceCompany\",\n}\n\nexport enum PrLegislativeAverageSalaryCode {\n CzechRepublic2023 = \"Cz_2023\",\n CzechRepublic2024 = \"Cz_2024\",\n}\n\nexport enum PrPayrollComponentCategoryTypeCode {\n Deductions = \"Deductions\",\n HealthInsurace = \"HealthInsurace\",\n LifeInsurance = \"LifeInsurace\",\n MandatoryInsurace = \"MandatoryInsurace\",\n PensionInsurace = \"PensionInsurace\",\n SalaryParts = \"SalaryParts\",\n SocialInsurace = \"SocialInsurace\",\n}\n\nexport enum PrPayrollComponentTypeCode {\n AdvanceTax = \"AdvanceTax\",\n BankruptcyWageDeduction = \"BankruptcyWageDeduction\",\n CateringAllowance = \"CateringAllowance\",\n DeductionChildSupport = \"DeductionChildSupport\",\n DeductionDay = \"DeductionDay\",\n DeductionInsurance = \"DeductionInsurance\",\n DeductionSavings = \"DeductionSavings\",\n EmployeePensionSavings = \"EmployeePensionSavings\",\n EmployerClaim = \"EmployerClaim\",\n ForeclosureClaim = \"ForeclosureClaim\",\n ForeclosureWageDeduction = \"ForeclosureWageDeduction\",\n GrossWage = \"GrossWage\",\n HealthInsuranceEmployee = \"HealthInsuranceEmployee\",\n HealthInsuranceEmployer = \"HealthInsuranceEmployer\",\n InsurancePaymentDiscount = \"InsurancePaymentDiscount\",\n LifeInsuranceEmployee = \"LifeInsuranceEmployee\",\n LifeInsuranceEmployerAppreciable = \"LifeInsuranceEmployerAppreciable\",\n LifeInsuranceEmployerNotAppreciable = \"LifeInsuranceEmployerNotAppreciable\",\n MandatoryInsurance = \"MandatoryInsurance\",\n NaturalWage = \"NaturalWage\",\n NonInsuraceIncome = \"NonInsuraceIncome\",\n OtherBenefits = \"OtherBenefits\",\n PayedVacation = \"PayedVacation\",\n PensionInsuranceEmployee = \"PensionInsuranceEmployee\",\n PensionInsuranceEmployerAppreciable = \"PensionInsuranceEmployerAppreciable\",\n PensionInsuranceEmployerNotAppreciable = \"PensionInsuranceEmployerNotAppreciable\",\n QuarantineBonus = \"QuarantineBonus\",\n SickBenefit = \"SickBenefit\",\n SickLeaveCompensation = \"SickLeave\",\n HalfDaySickLeaveCompensation = \"SickLeaveHalf\",\n SocialInsuranceEmployee = \"SocialInsuranceEmployee\",\n SocialInsuranceEmployer = \"SocialInsuranceEmployer\",\n TaxBonus = \"TaxBonus\",\n TaxOverpayment = \"TaxOverpayment\",\n TaxWitholding = \"TaxWitholding\",\n}\n\nexport enum PrPayslipEmploymentItemTypeCode {\n SalaryForHoursWorked = \"CzSalaryWorked\",\n BonusSalary = \"CzSalaryBonus\",\n SalaryInKind = \"CzSalaryInKind\",\n Vacation = \"CzVacation\",\n Illness = \"CzIllness\",\n Overtime = \"CzExtraSalaryOvertime\",\n Night = \"CzExtraSalaryNight\",\n Weekend = \"CzExtraSalaryWeekend\",\n Holiday = \"CzExtraSalaryHoliday\",\n GrossSalaryEmployment = \"CzEmploymentGrossSalary\",\n IncomeTaxCalculationBasis = \"CzEmploymentTaxCalcBase\",\n BasisForHealthInsuranceCalculation = \"CzHealthInsuranceCalcBase\",\n HealthInsurancePaidByEmployee = \"CzHealthInsuranceEmployee\",\n HealthInsurancePaidByEmployer = \"CzHealthInsuranceEmployer\",\n BasisForSocialInsuranceCalculation = \"CzSocialInsuranceCalcBase\",\n SocialInsurancePaidByEmployee = \"CzSocialInsuranceEmployee\",\n SocialInsurancePaidByEmployer = \"CzSocialInsuranceEmployer\",\n}\n\nexport enum PrPayslipItemTypeCode {\n GrossSalary = \"CzGrossSalary\",\n IncomeTaxCalculationBasis = \"CzIncomeTaxCalcBasis\",\n IncomeTaxBeforeAdvantages = \"CzIncomeTaxGross\",\n IncomeTaxReductions = \"CzIncomeTaxReduction\",\n IncomeTaxAdvantages = \"CzIncomeTaxAdvantage\",\n IncomeTaxNet = \"CzIncomeTaxNet\",\n IncomeTaxBonus = \"CzIncomeTaxBonus\",\n NetSalary = \"CzNetSalary\",\n Deduction = \"CzDeduction\",\n SalaryAdvance = \"CzSalaryAdvanceSubtr\",\n AmountToPayEmployee = \"CzAmountToPayEmployee\",\n}\n\nexport enum PrPayslipLayoutGroupCode {\n Insurance = \"Insurance\",\n Tax = \"Tax\",\n ToPay = \"ToPay\",\n}\n\nexport enum PrPayslipLayoutItemCode {\n ToPayCzAmountToPayEmployee = \"ToPay_CzAmountToPayEmployee\",\n ToPayCzGrossSalary = \"ToPay_CzGrossSalary\",\n ToPayCzEmploymentGrossSalary = \"ToPay_CzEmploymentGrossSalary\",\n TaxCzEmploymentTaxCalcBase = \"Tax_CzEmploymentTaxCalcBase\",\n ToPayCzNetSalary = \"ToPay_CzNetSalary\",\n ToPayCzSalaryAdvanceSubtr = \"ToPay_CzSalaryAdvanceSubtr\",\n TaxCzIncomeTaxNet = \"Tax_CzIncomeTaxNet\",\n TaxCzGrossSalary = \"Tax_CzGrossSalary\",\n TaxCzHealthInsuranceEmployer = \"Tax_CzHealthInsuranceEmployer\",\n TaxCzSocialInsuranceEmployer = \"Tax_CzSocialInsuranceEmployer\",\n TaxCzIncomeTaxReductions = \"Tax_CzIncomeTaxReductions\",\n TaxCzIncomeTaxAdvantages = \"Tax_CzIncomeTaxAdvantages\",\n TaxCzIncomeTaxBonus = \"Tax_CzIncomeTaxBonus\",\n InsuranceCzSocialInsuranceCalcBase = \"Insurance_CzSocialInsuranceCalcBase\",\n InsuranceCzSocialInsuranceEmployee = \"Insurance_CzSocialInsuranceEmployee\",\n InsuranceCzHealthInsuranceCalcBase = \"Insurance_CzHealthInsuranceCalcBase\",\n InsuranceCzHealthInsuranceEmployee = \"Insurance_CzHealthInsuranceEmployee\",\n}\n\nexport enum PrSalaryComponentTypeCode {\n Hourly = \"Hourly\",\n Monthly = \"Monthly\",\n Fixed = \"Fixed\",\n}\n\nexport enum PrSexCode {\n Female = \"Female\",\n Male = \"Male\",\n}\n\nexport enum PrTaxDiscountTypeCode {\n TaxPayerDiscount = \"CzPayer2024\",\n BasicDisabilityDiscount = \"CzDisBasic2024\",\n ExtendedDisabilityDiscount = \"CzDisExtended2024\",\n DiscountForZTP_PHolder = \"CzDisZtpP2024\",\n}\n\nexport enum PrUnseizableAmountCode {\n TemporaryValueToWorkWithSystemDateTime_Today = \"Cz2020_1\",\n From1_1_2022 = \"Cz2022_1\",\n From1_4_2022 = \"Cz2022_4\",\n From1_7_2022 = \"Cz2022_7\",\n From1_10_2022 = \"Cz2022_10\",\n From1_1_2023 = \"Cz2023_1\",\n From1_1_2024 = \"Cz2024_1\",\n}\n\nexport enum PrWorkingPatternTypeCode {\n Monthly = \"Monthly\",\n Rotation = \"Rotation\",\n Weekly = \"Weekly\",\n}\n\nexport enum PeriodDayCode {\n FirstDay = \"First\",\n LastDay = \"Last\",\n}\n\nexport enum PostedStatusCode {\n Posted = \"P\",\n NotPosted = \"N\",\n N_A = \"_\",\n}\n\nexport enum PostingRuleDocumentTypeCode {\n ReceivedDocuments = \"AP\",\n IssuedDocuments = \"AR\",\n InvoiceReceived = \"InvoiceReceived\",\n InvoiceIssued = \"InvoiceIssued\",\n ProformaInvoiceReceived = \"ProformaInvoiceReceived\",\n ProformaInvoiceIssued = \"ProformaInvoiceIssued\",\n OtherLiability = \"OtherLiability\",\n OtherReceivable = \"OtherReceivable\",\n CorrectiveInvoiceReceived = \"CorrectiveInvoiceReceived\",\n CorrectiveInvoiceIssued = \"CorrectiveInvoiceIssued\",\n}\n\nexport enum PostingRuleOperatorCode {\n Equal = \"EQ\",\n NotEqual = \"NE\",\n GreaterThan = \"GT\",\n GreaterThanOrEqual = \"GE\",\n LessThan = \"LT\",\n LessThanOrEqual = \"LE\",\n Between = \"BETWEEN\",\n Contains = \"CONTAINS\",\n}\n\nexport enum PrBaseTypeCode {\n Custom = \"Custom\",\n Legislative = \"Legislative\",\n}\n\nexport enum PrChildSupportDeductionTypeCode {\n Owed = \"Owed\",\n Regular = \"Regular\",\n Substitute = \"Substitute\",\n}\n\nexport enum PrDeductionCalculationTypeCode {\n Fixed = \"Fixed\",\n PercentageFromGrossSalary = \"PercentageGross\",\n PercentageFromNetSalary = \"PercentageNet\",\n}\n\nexport enum PrDeductionEntityTypeCode {\n Group = \"Group\",\n Individual = \"Individual\",\n}\n\nexport enum PrDeductionStatusCode {\n Deposited = \"Deposited\",\n Finished = \"Finished\",\n Ongoing = \"Ongoing\",\n Planned = \"Planned\",\n Suspended = \"Suspended\",\n}\n\nexport enum PrDeductionTypeCode {\n ChildSupport = \"ChildSupport\",\n Custom = \"Custom\",\n Distrainment = \"Distrainment\",\n Insolvency = \"Insolvency\",\n MealVoucher = \"MealVoucher\",\n}\n\nexport enum PrDistrainmentDeductionTypeCode {\n Standard = \"Standard\",\n Priority = \"Priority\",\n}\n\nexport enum PrEntityValueSourceCode {\n Default = \"D\",\n Entity = \"E\",\n Template = \"T\",\n TemplateDefault = \"TD\",\n}\n\nexport enum PrFixedBonusPayOutImpactCode {\n InKind = \"InKind\",\n ToPayOut = \"ToPayOut\",\n}\n\nexport enum PrFixedBonusTaxImpactCode {\n Full = \"Full\",\n IncomeTaxOnly = \"IncomeTaxOnly\",\n None = \"None\",\n}\n\nexport enum ProductCode {\n EvalaDemo = \"Demo\",\n EvalaForAccountants = \"Acc\",\n EvalaForCompanies = \"Comp\",\n}\n\nexport enum PrPayslipOverrideStatusCode {\n Changed = \"Changed\",\n Removed = \"Removed\",\n Unchanged = \"Unchanged\",\n}\n\nexport enum PrWorkIntervalTypeCode {\n MealBreak = \"MealBreak\",\n Work = \"Work\",\n}\n\nexport enum PurchaseStatusCode {\n NotPurchased = \"NotPurchased\",\n Purchased = \"Purchased\",\n}\n\nexport enum ReceivableAdjustmentGroupCode {\n SmallReceivableAdjustment = \"CzSmall\",\n LargeReceivableAdjustment = \"CzLarge\",\n InsolvencyReceivableAdjustment = \"CzInsolvency\",\n CancelReceivableAdjustment = \"CzCancel\",\n WriteOffReceivableAdjustment = \"CzWriteOff\",\n}\n\nexport enum ReceivableAdjustmentTypeCode {\n ReceivableAdjustmentPer8cZORUnder30Thousand = \"CZ_8c\",\n ReceivableAdjustmentPer8aZOR50 = \"CZ_8a_50\",\n ReceivableAdjustmentPer8aZOR100 = \"CZ_8a_100\",\n ReceivableAdjustmentPer8ZORInsolvency = \"CZ_8_Insolvency\",\n ReceivableAdjustmentCancellationPer8ZOR = \"CZ_8_Cancel\",\n TaxWriteOff = \"CZ_WriteOff_Tax\",\n NontaxWriteOff = \"CZ_WriteOff_NonTax\",\n}\n\nexport enum RecurrentPaymentStateCode {\n Paid = \"Paid\",\n Created = \"Created\",\n Failed = \"Failed\",\n OverTheCardLimit = \"OverLimit\",\n}\n\nexport enum RecurringTaskIntervalCode {\n ToDate = \"DATE\",\n First = \"FIRST\",\n Fourth = \"FOURTH\",\n Last = \"LAST\",\n Second = \"SECOND\",\n Third = \"THIRD\",\n}\n\nexport enum RecurringTaskPeriodCode {\n Daily = \"D\",\n Monthly = \"M\",\n Weekly = \"W\",\n Yearly = \"Y\",\n}\n\nexport enum RecurringTaskStateCode {\n Active = \"A\",\n Blocked = \"B\",\n Paused = \"P\",\n}\n\nexport enum RecurringTaskTypeCode {\n InvoiceIssued = \"InvoiceIssued\",\n InvoiceReceived = \"InvoiceReceived\",\n ProformaInvoiceIssued = \"ProformaInvoiceIssued\",\n}\n\nexport enum ReportSectionTypeCode {\n BS_A = \"BS_A\",\n BS_L = \"BS_L\",\n BS_S = \"BS_S\",\n IS_N_I = \"IS_N_I\",\n IS_N_E = \"IS_N_E\",\n IS_N_S = \"IS_N_S\",\n IS_F_I = \"IS_F_I\",\n IS_F_E = \"IS_F_E\",\n IS_F_S = \"IS_F_S\",\n}\n\nexport enum ReportTypeCode {\n BalanceSheet = \"BS\",\n IncomeStatementNatureOfExpense = \"IS_N\",\n IncomeStatementFunctionOfExpense = \"IS_F\",\n}\n\nexport enum RequiredAccountTypeCode {\n ReceivableAdjustment = \"ReceivableAdjustment\",\n VatAccount = \"VatAccount\",\n}\n\nexport enum RossumJobStatusCode {\n Done = \"Done\",\n Running = \"Running\",\n Canceled = \"Canceled\",\n Expired = \"Expired\",\n}\n\nexport enum SelectionCode {\n None = \"None\",\n Default = \"Default\",\n Own = \"Own\",\n Copy = \"Copy\",\n Split = \"Split\",\n}\n\nexport enum SignatoryPersonCode {\n _4aGeneralAttorneyIndividualAndLegalPerson = \"4a\",\n _4bIndividual_TaxAdvisorOrAttorney = \"4b\",\n _4cLegalEntityProvidingTaxConsultancy = \"4c\",\n}\n\nexport enum SubscriptionContactTypeCode {\n Billing = \"Billing\",\n Technical = \"Technical\",\n}\n\nexport enum SubscriptionStatusCode {\n Active = \"Active\",\n Cancelled = \"Cancelled\",\n Expired = \"Expired\",\n AwaitsRenewal = \"AwaitsRenewal\",\n AwaitsConfirmation = \"AwaitsConfirm\",\n}\n\nexport enum SubscriptionTypeCode {\n Free = \"Free\",\n Standard = \"Standard\",\n EDU = \"Edu\",\n}\n\nexport enum TaxApplicabilityCode {\n TaxApplicable = \"Applicable\",\n NotTaxApplicable = \"NotApplicable\",\n}\n\nexport enum TaxCalendarTaxTypeCode {\n Biofuel = \"Biofuel\",\n CRS = \"Crs\",\n DAC6 = \"Dac6\",\n Ecotax = \"Ecotax\",\n ExciseTax = \"Excise\",\n ForeignAccountTaxComplianceAct = \"Fatca\",\n GamblingTax = \"Gambling\",\n IncomeTax = \"Income\",\n LandValueTax = \"LandValue\",\n ValueaddedTax = \"ValueAdded\",\n VehicleExciseDuty = \"Vehicle\",\n WindfallTax = \"Windfall\",\n DAC7 = \"Dac7\",\n ExcludedFromNotificationDuty = \"ExclNote\",\n}\n\nexport enum TaxDepreciationCategoryCode {\n C1_CZ_93 = \"C1_CZ_93\",\n C1_CZ_05 = \"C1_CZ_05\",\n C1a_CZ = \"C1a_CZ\",\n C2_CZ_93 = \"C2_CZ_93\",\n C2_CZ_99 = \"C2_CZ_99\",\n C2_CZ_05 = \"C2_CZ_05\",\n C3_CZ_93 = \"C3_CZ_93\",\n C3_CZ_99 = \"C3_CZ_99\",\n C3_CZ_05 = \"C3_CZ_05\",\n C4_CZ_93 = \"C4_CZ_93\",\n C4_CZ_99 = \"C4_CZ_99\",\n C5_CZ_93 = \"C5_CZ_93\",\n C5_CZ_95 = \"C5_CZ_95\",\n C5_CZ_99 = \"C5_CZ_99\",\n C6_CZ_04 = \"C6_CZ_04\",\n C1cv_CZ_20 = \"C1cv_CZ_20\",\n C2cv_CZ_20 = \"C2cv_CZ_20\",\n C30_CZ_20 = \"C30_CZ_20\",\n C2cv_CZ_24 = \"C2cv_CZ_24\",\n C30b_CZ_20 = \"C30b_CZ_20\",\n}\n\nexport enum TaxPriceLimitCode {\n C2_CZ_05_M1_24 = \"C2_CZ_05_M1_24\",\n C2cv_CZ_24_M1_24 = \"C2cv_CZ_24_M1_24\",\n}\n\nexport enum TaxStatementSubmitterCode {\n Accountant = \"Accountant\",\n Customer = \"Customer\",\n TaxAdvisor = \"TaxAdvisor\",\n}\n\nexport enum TicketStatusCode {\n InProgress = \"InProgress\",\n Done = \"Done\",\n}\n\nexport enum TimeFormatCode {\n Hh_mm = \"HoursMinutes24Clock\",\n Hh_mm_ss = \"HoursMinutesSeconds24Clock\",\n Hh_mm_ssAM_PM = \"HoursMinutesSecondsDesignator12Clock\",\n Hh_mmAM_PM = \"HoursMinutesDesignator12Clock\",\n}\n\nexport enum TimeZoneCode {\n UTC_1CentralEuropeanTime_Amsterdam = \"Europe/Amsterdam\",\n UTC_1CentralEuropeanTime_Andorra = \"Europe/Andorra\",\n UTC_2EasternEuropeanTime_Athens = \"Europe/Athens\",\n UTC_0GreenwichMeanTime_Belfast = \"Europe/Belfast\",\n UTC_1CentralEuropeanTime_Belgrade = \"Europe/Belgrade\",\n UTC_1CentralEuropeanTime_Berlin = \"Europe/Berlin\",\n UTC_1CentralEuropeanTime_Bratislava = \"Europe/Bratislava\",\n UTC_1CentralEuropeanTime_Brussels = \"Europe/Brussels\",\n UTC_2EasternEuropeanTime_Bucharest = \"Europe/Bucharest\",\n UTC_1CentralEuropeanTime_Budapest = \"Europe/Budapest\",\n UTC_1CentralEuropeanTime_Busingen = \"Europe/Busingen\",\n UTC_2EasternEuropeanTime_Chisinau = \"Europe/Chisinau\",\n UTC_1CentralEuropeanTime_Copenhagen = \"Europe/Copenhagen\",\n UTC_0GreenwichMeanTime_Dublin = \"Europe/Dublin\",\n UTC_1CentralEuropeanTime_Gibraltar = \"Europe/Gibraltar\",\n UTC_0GreenwichMeanTime_Guernsey = \"Europe/Guernsey\",\n UTC_2EasternEuropeanTime_Helsinki = \"Europe/Helsinki\",\n UTC_0GreenwichMeanTime_IsleOfMan = \"Europe/Isle_of_Man\",\n UTC_3Turkey_Istanbul = \"Europe/Istanbul\",\n UTC_0GreenwichMeanTime_Jersey = \"Europe/Jersey\",\n UTC_3MoscowStandardTime_Kaliningrad = \"Europe/Kaliningrad\",\n UTC_2EasternEuropeanTime_Kiev = \"Europe/Kiev\",\n UTC_0WesternEuropeanTime_Lisbon = \"Europe/Lisbon\",\n UTC_1CentralEuropeanTime_Ljubljana = \"Europe/Ljubljana\",\n UTC_0GreenwichMeanTime_London = \"Europe/London\",\n UTC_1CentralEuropeanTime_Luxembourg = \"Europe/Luxembourg\",\n UTC_1CentralEuropeanTime_Madrid = \"Europe/Madrid\",\n UTC_1CentralEuropeanTime_Malta = \"Europe/Malta\",\n UTC_2EasternEuropeanTime_Mariehamn = \"Europe/Mariehamn\",\n UTC_3BelarusStandardTime_Minsk = \"Europe/Minsk\",\n UTC_1CentralEuropeanTime_Monaco = \"Europe/Monaco\",\n UTC_3MoscowStandardTime_Moscow = \"Europe/Moscow\",\n UTC_2EasternEuropeanTime_Nicosia = \"Europe/Nicosia\",\n UTC_1CentralEuropeanTime_Oslo = \"Europe/Oslo\",\n UTC_1CentralEuropeanTime_Paris = \"Europe/Paris\",\n UTC_1CentralEuropeanTime_Podgorica = \"Europe/Podgorica\",\n UTC_1CentralEuropeanTime_Prague = \"Europe/Prague\",\n UTC_2EasternEuropeanTime_Riga = \"Europe/Riga\",\n UTC_1CentralEuropeanTime_Rome = \"Europe/Rome\",\n UTC_4Samara = \"Europe/Samara\",\n UTC_1CentralEuropeanTime_SanMarino = \"Europe/San_Marino\",\n UTC_1CentralEuropeanTime_Sarajevo = \"Europe/Sarajevo\",\n UTC_3MoscowStandardTime_Simferopol = \"Europe/Simferopol\",\n UTC_1CentralEuropeanTime_Skopje = \"Europe/Skopje\",\n UTC_2EasternEuropeanTime_Sofia = \"Europe/Sofia\",\n UTC_1CentralEuropeanTime_Stockholm = \"Europe/Stockholm\",\n UTC_2EasternEuropeanTime_Tallinn = \"Europe/Tallinn\",\n UTC_1CentralEuropeanTime_Tirane = \"Europe/Tirane\",\n UTC_2EasternEuropeanTime_Uzhgorod = \"Europe/Uzhgorod\",\n UTC_1CentralEuropeanTime_Vaduz = \"Europe/Vaduz\",\n UTC_1CentralEuropeanTime_Vatican = \"Europe/Vatican\",\n UTC_1CentralEuropeanTime_Vienna = \"Europe/Vienna\",\n UTC_2EasternEuropeanTime_Vilnius = \"Europe/Vilnius\",\n UTC_4Volgograd = \"Europe/Volgograd\",\n UTC_1CentralEuropeanTime_Warsaw = \"Europe/Warsaw\",\n UTC_1CentralEuropeanTime_Zagreb = \"Europe/Zagreb\",\n UTC_2EasternEuropeanTime_Zaporozhye = \"Europe/Zaporozhye\",\n UTC_1CentralEuropeanTime_Zurich = \"Europe/Zurich\",\n}\n\nexport enum TypeOfBusinessCode {\n LegalPerson = \"LP\",\n NaturalPerson = \"NP\",\n}\n\nexport enum UnitOfMeasureCode {\n Set = \"SET\",\n Centimeter = \"CM\",\n Gram = \"GRAM\",\n Kilogram = \"KILO\",\n Piece = \"PIECE\",\n Liter = \"LITER\",\n Meter = \"METER\",\n Pallet = \"PAL\",\n Tonne = \"TONNE\",\n Hour = \"HOUR\",\n Minute = \"MINUTE\",\n Day = \"DAY\",\n}\n\nexport enum UserStatusCode {\n Invited = \"INV\",\n Active = \"ACT\",\n Inactive = \"IAC\",\n Deleted = \"DEL\",\n RoleAcceptancePending = \"RAP\",\n}\n\nexport enum VariantAccessTypeCode {\n SystemVariant = \"System\",\n GlobalVariant = \"Global\",\n UserVariant = \"User\",\n}\n\nexport enum VariantTypeCode {\n FormVariant = \"Form\",\n TableVariant = \"Table\",\n}\n\nexport enum VatCode {\n CzStd2012 = \"CzStd2012\",\n CzRdc2012 = \"CzRdc2012\",\n CzStd2013 = \"CzStd2013\",\n Cz1Rdc2013 = \"Cz1Rdc2013\",\n Cz2Rdc2015 = \"Cz2Rdc2015\",\n CzRdc2024 = \"CzRdc2024\",\n SkStd2004 = \"SkStd2004\",\n Sk1Rdc2007 = \"Sk1Rdc2007\",\n Sk2Rdc2010 = \"Sk2Rdc2010\",\n SkStd2011 = \"SkStd2011\",\n SkRdc2011 = \"SkRdc2011\",\n}\n\nexport enum VatControlStatementCode {\n KontrolníHlášeníDPHPlatnéOd1_1_2016 = \"CZ_2016\",\n}\n\nexport enum VatControlStatementSectionCode {\n A_1 = \"CZ_2016_A1\",\n A_2 = \"CZ_2016_A2\",\n A_3 = \"CZ_2016_A3\",\n A_4 = \"CZ_2016_A4\",\n A_4_A_5 = \"CZ_2016_A4_A5\",\n A_5 = \"CZ_2016_A5\",\n B_1 = \"CZ_2016_B1\",\n B_2 = \"CZ_2016_B2\",\n B_2_B_3 = \"CZ_2016_B2_B3\",\n B_3 = \"CZ_2016_B3\",\n CZ_2016_N = \"CZ_2016_N\",\n}\n\nexport enum VatDeductionTypeCode {\n Proportional = \"Proportional\",\n Reduced = \"Reduced\",\n ReducedAndProportional = \"ReducedAndProportional\",\n}\n\nexport enum VatOssCode {\n Žádný = \"None\",\n ElektronickáSlužba = \"ElService\",\n ZbožíNaDálku = \"AtDistance\",\n}\n\nexport enum VatRateTypeCode {\n Standard = \"Std\",\n FirstReduced = \"1Rdc\",\n SecondReduced = \"2Rdc\",\n}\n\nexport enum VatReverseChargeCode {\n Ano = \"Yes\",\n Ne = \"No\",\n Zlato = \"1\",\n Zlato_ZprostředkováníDodáníInvestičníhoZlata = \"1a\",\n DodáníNemovitéVěci = \"3\",\n DodáníNemovitéVěciVNucenémProdeji = \"3a\",\n StavebníAMontážníPráce = \"4\",\n StavebníAMontážníPráce_PoskytnutíPracovníků = \"4a\",\n ZbožíUvedenéVPřílozeČ_5 = \"5\",\n DodáníZbožíPoskytnutéhoPůvodněJakoZáruka = \"6\",\n DodáníZbožíPoPostoupeníVýhradyVlastnictví = \"7\",\n PovolenkyNaEmiseSkleníkovýchPlynů = \"11\",\n ObilovinyATechnickéPlodiny = \"12\",\n Kovy = \"13\",\n MobilníTelefony = \"14\",\n IntegrovanéObvody = \"15\",\n PřenosnáZařízeníProAutomatizovanéZpracováníDat = \"16\",\n VideoherníKonzole = \"17\",\n DodáníCertifikátůElektřiny = \"18\",\n DodáníElektřinySoustavamiNeboSítěmiObchodníkovi = \"19\",\n DodáníPlynuSoustavamiNeboSítěmiObchodníkovi = \"20\",\n PoskytnutíVymezenýchSlužebElektronickýchKomunikací = \"21\",\n}\n\nexport enum VatStatementCode {\n PřiznáníKDaniZPřidanéHodnotyPlatnéOd1_1_2011 = \"CZ_2011\",\n}\n\nexport enum VatStatementFrequencyCode {\n Monthly = \"Monthly\",\n Quarterly = \"Quarterly\",\n}\n\nexport enum VatStatementSectionCode {\n CZ_2011_3_4 = \"CZ_2011_3_4\",\n CZ_2011_5_6 = \"CZ_2011_5_6\",\n CZ_2011_12_13 = \"CZ_2011_12_13\",\n CZ_2011_9 = \"CZ_2011_9\",\n CZ_2011_7_8 = \"CZ_2011_7_8\",\n CZ_2011_10_11 = \"CZ_2011_10_11\",\n CZ_2011_40_41 = \"CZ_2011_40_41\",\n CZ_2011_42 = \"CZ_2011_42\",\n CZ_2011_61 = \"CZ_2011_61\",\n CZ_2011_30 = \"CZ_2011_30\",\n CZ_2011_47 = \"CZ_2011_47\",\n CZ_2011_32 = \"CZ_2011_32\",\n CZ_2011_1_2 = \"CZ_2011_1_2\",\n CZ_2011_20 = \"CZ_2011_20\",\n CZ_2011_22 = \"CZ_2011_22\",\n CZ_2011_23 = \"CZ_2011_23\",\n CZ_2011_24 = \"CZ_2011_24\",\n CZ_2011_26 = \"CZ_2011_26\",\n CZ_2011_50 = \"CZ_2011_50\",\n CZ_2011_61D = \"CZ_2011_61D\",\n CZ_2011_31 = \"CZ_2011_31\",\n CZ_2011_21 = \"CZ_2011_21\",\n CZ_2011_25 = \"CZ_2011_25\",\n CZ_2011_3_4_IP = \"CZ_2011_3_4_IP\",\n CZ_2011_5_6_IP = \"CZ_2011_5_6_IP\",\n CZ_2011_12_13_IP = \"CZ_2011_12_13_IP\",\n}\n\nexport enum VatStatementSectionCategoryCode {\n DocumentReceivedInReverseChargeMode = \"DocRcvdRCh\",\n DocumentReceivedInAutomatedVATInclusionMode = \"DocRcvdAvim\",\n DocumentReceivedInAutomatedVATInclusionModeIdentifiedPerson = \"DocRcvdAvimIp\",\n DocumentReceived = \"DocRcvd\",\n DocumentIssued = \"DocIssd\",\n InternalVATStatementSection = \"Internal\",\n}\n\nexport enum VatStatementStatusCode {\n Filed = \"F\",\n FiledAndModified = \"M\",\n PartiallyFiled = \"P\",\n NotFiled = \"N\",\n N_A = \"_\",\n Undefined = \"U\",\n}\n\nexport enum VatStatusCode {\n VATRegistered = \"VatRegistered\",\n NotVATRegistered = \"NotVatRegistered\",\n IdentifiedPerson = \"IdentifiedPerson\",\n}\n\nexport enum VatViesCode {\n Kód0 = \"0\",\n Kód1 = \"1\",\n Kód2 = \"2\",\n Kód3 = \"3\",\n}\n\nexport enum WebSocketMessageTypeCode {\n Notification = \"Notification\",\n SessionInvalidated = \"SessionInvalidated\",\n SessionTerminated = \"SessionTerminated\",\n BackgroundJob = \"BackgroundJob\",\n ActionProgress = \"ActionProgress\",\n Login = \"Login\",\n System = \"System\",\n}\n\nexport enum WriteOffTypeCode {\n No = \"None\",\n Nottax = \"NotTax\",\n Tax = \"Tax\",\n}\n\n","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { isDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { compareString } from \"@utils/string\";\nimport i18next from \"i18next\";\n\nimport { TRecordAny } from \"../global.types\";\nimport memoize from \"../utils/memoize\";\nimport { ENUM_DISPLAY_NAME, ENUM_KEY_PROP_NAME } from \"./BindingContext\";\nimport { IFieldInfo } from \"./FieldInfo.utils\";\nimport * as generatedEnums from \"./GeneratedEnums\";\nimport { OData } from \"./OData\";\n\nexport const ENUM_TOML_PREFIX = \"Enum-\";\n\ninterface IBaseEnum {\n [ENUM_KEY_PROP_NAME]: string,\n [ENUM_DISPLAY_NAME]: string\n}\n\nexport const isEnum = (fieldInfo: IFieldInfo): boolean => {\n return isDefined(fieldInfo.fieldSettings?.isEnum) ? fieldInfo.fieldSettings?.isEnum : fieldInfo.bindingContext.isEnum();\n};\n\nexport const getEnumName = (fieldInfo: IFieldInfo, oData?: OData): string => {\n if (fieldInfo.bindingContext.isLocal()) {\n return fieldInfo.fieldSettings?.entitySet ? (oData?.metadata.getTypeForPath(fieldInfo.fieldSettings?.entitySet as string).getName() ?? null) : null;\n }\n return fieldInfo.bindingContext.getProperty()?.getType().getName() ?? oData?.metadata.getTypeForPath(fieldInfo.fieldSettings?.entitySet as string).getName();\n};\n\nexport const getEnumNameSpaceName = (enumName: string): string => {\n return `${ENUM_TOML_PREFIX}${enumName}`;\n};\n\nexport interface ILoadEnumsResult {\n // list of namespaces that have not yet been loaded\n notLoadedNamespaces: string[];\n // promise that resolves once all the namespaces have been loaded\n namespacesPromise: Promise;\n}\n\nexport function loadEnums(...enumNames: string[]): ILoadEnumsResult {\n const namespaces = enumNames.map(name => getEnumNameSpaceName(name));\n let namespacesPromise: Promise;\n\n // hasLoadedNamespace doesn't have public API\n // @ts-ignore\n const notLoadedNamespaces = namespaces.filter(namespace => !i18next.hasLoadedNamespace([namespace]));\n\n if (notLoadedNamespaces.length) {\n namespacesPromise = Promise.all(notLoadedNamespaces.map(namespace => i18next.loadNamespaces([namespace])));\n }\n\n return {\n notLoadedNamespaces,\n namespacesPromise\n };\n}\n\nexport function getEnumValues(enumName: string): string[] {\n const genEnumName = `${enumName}Code` as keyof (typeof generatedEnums);\n const enumValues = generatedEnums[genEnumName];\n return Object.values(enumValues);\n}\n\nfunction generateEnumEntities(enumName: string, keyProp: keyof T, labelProp: keyof T): T[] {\n try {\n return getEnumValues(enumName).map(val => {\n return {\n [keyProp]: val,\n [labelProp]: getEnumDisplayValue(enumName, val)\n } as T;\n });\n } catch (e) {\n logger.error(`${enumName} is missing in GeneratedEnums.ts`);\n return [];\n }\n}\n\nconst memoizedEnumDeps = (enumName: string) => [\n // hasLoadedNamespace doesn't have public API\n // @ts-ignore\n i18next.hasLoadedNamespace(getEnumNameSpaceName(enumName)), i18next.language\n];\n\nexport const getEnumEntities = memoize((enumName: string): IBaseEnum[] => {\n return generateEnumEntities(enumName, ENUM_KEY_PROP_NAME, ENUM_DISPLAY_NAME);\n}, memoizedEnumDeps);\n\nexport const getEnumSelectItems = memoize((enumName: string): ISelectItem[] => {\n return generateEnumEntities>(enumName, \"id\", \"label\")\n .sort((a: ISelectItem, b: ISelectItem) => compareString(a.label, b.label))\n .map(item => ({\n ...item,\n additionalData: {\n [ENUM_KEY_PROP_NAME]: item.id,\n [ENUM_DISPLAY_NAME]: item.label\n }\n }));\n}, memoizedEnumDeps);\n\n// Returns enum translation using bindingContext or enumName\nexport const getEnumDisplayValue = memoize((enumName: string, value: string): string => {\n return i18next.t(value, { nsSeparator: false, ns: getEnumNameSpaceName(enumName) }).toString();\n}, (enumName: string, value: string) => {\n return `${i18next.hasLoadedNamespace(getEnumNameSpaceName(enumName))}${i18next.language}${enumName}:${value}`;\n});\n","import {\n formatDateToDateString,\n formatDateToDateTimeOffsetString,\n formatTimeOfDayToTimeString\n} from \"@components/inputs/date/utils\";\nimport { TId } from \"@components/table\";\nimport { fetchMetadata, Metadata } from \"@evala/odata-metadata/src\";\nimport { isODataError, ODataError } from \"@odata/Data.types\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport { isDefined, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { TFetchFn } from \"@utils/oneFetch\";\nimport { createUrl, join, joinParameters } from \"@utils/url\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { TRecordAny, TRecordString } from \"../global.types\";\nimport memoize from \"../utils/memoize\";\nimport BindingContext, { IEntity, TEntityKey } from \"./BindingContext\";\nimport { getNestedValue, setNestedValue } from \"./Data.utils\";\nimport { EntitySetName, IOdataActionParameters, OdataActionName, ODataActionPath } from \"./GeneratedEntityTypes\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"./GeneratedEnums.utils\";\nimport { ODataQueryResult, parseError, parseQueryResult, parseResponse } from \"./ODataParser\";\n\ntype TRequest = IRequest | IUrl;\n\nexport const MAX_URL_LENGTH = 2048;\n// header used to inject disabled fields metadata into odata get request response\nexport const EVALA_METADATA_HEADER = \"evala-add-metadata\";\n\nclass UrlOptions {\n id: string;\n atomicityGroup: string;\n queryParameters: TRecordString;\n}\n\ninterface IUrl {\n __options: UrlOptions;\n\n toUrl?: (urlPrefix: string) => string;\n}\n\nexport function isIUrl(query: TRequest): query is IUrl {\n return (query as IUrl).toUrl !== undefined;\n}\n\nexport interface IOrderBy {\n propertyName: TId;\n asc: boolean;\n}\n\nexport interface ICommandArgs {\n headers?: Record;\n index?: number;\n // custom string pasted into url\n customUrlSuffix?: string;\n fetchFn?: TFetchFn;\n}\n\nexport interface IRequest {\n id?: string;\n atomicityGroup?: string;\n url?: string;\n method?: string;\n headers?: Record;\n body?: IEntity;\n}\n\n/** Converts values to their correct oData representation.\n * Properties are checked against their EntityType so that e.g. Date can be converted to Edm.DateTime. */\nexport function encodeOdataObject(obj: IEntity, metadata: Metadata, path: string) {\n if (isNotDefined(obj) || typeof obj !== \"object\") {\n return obj;\n }\n\n let entityType;\n\n try {\n entityType = metadata.getTypeForPath(path);\n } catch (e) {\n // ignore fail (e.g. odata@id key)\n // we only want to get entityType for proper paths\n }\n\n const result: IEntity = {};\n\n for (let [key, value] of Object.entries(obj)) {\n const newPath = `${path}/${key.replace(\"@odata.delta\", \"\")}`;\n const property = entityType?.getProperty(key);\n const isNotCollection = !property?.getType()?.isCollection();\n const typeName = property?.getType()?.getName();\n\n if (isNotCollection && typeName === \"Date\") {\n value = formatDateToDateString(value);\n } else if (isNotCollection && typeName === \"DateTimeOffset\") {\n value = formatDateToDateTimeOffsetString(value);\n } else if (isNotCollection && typeName === \"TimeOfDay\") {\n value = formatTimeOfDayToTimeString(value);\n } else {\n switch (typeof (value)) {\n case \"object\":\n if (Array.isArray(value)) {\n value = value.map(val => {\n return encodeOdataObject(val, metadata, newPath);\n });\n } else if (!(value instanceof Date)) {\n value = encodeOdataObject(value, metadata, newPath);\n }\n break;\n case \"number\":\n value = String(value);\n break;\n }\n }\n\n result[key] = value;\n }\n return result;\n}\n\nexport class Query implements IUrl {\n _path: string;\n _action: string;\n _aggregate: string;\n _top: number;\n _count: boolean;\n _skip: number;\n _orderBy: IOrderBy[];\n _select: string[];\n _filter: string;\n _groupBy: string[];\n _expand: Record;\n __options: UrlOptions;\n\n _oData: OData;\n\n constructor(path: string, oData?: OData, action?: string) {\n this._path = path;\n this._action = action;\n this.__options = new UrlOptions();\n\n this._oData = oData;\n }\n\n queryParameters(parameters: TRecordString) {\n this.__options.queryParameters = parameters;\n return this;\n }\n\n top(count: number) {\n this._top = count;\n return this;\n }\n\n skip(count: number) {\n this._skip = count;\n return this;\n }\n\n orderBy(propertyName: TId, asc = true) {\n if (!this._orderBy) {\n this._orderBy = [];\n }\n this._orderBy.push({\n propertyName: propertyName,\n asc: asc\n });\n return this;\n }\n\n aggregate(aggregation: string) {\n this._aggregate = aggregation;\n return this;\n }\n\n count() {\n this._count = true;\n return this;\n }\n\n select(...propertyNames: string[]) {\n if (!this._select) {\n this._select = [];\n }\n for (const nameOrArray of propertyNames) {\n if (Array.isArray(nameOrArray)) {\n for (const name of nameOrArray) {\n if (!this._select.includes(name)) {\n this._select.push(name);\n }\n }\n } else {\n if (!this._select.includes(nameOrArray)) {\n this._select.push(nameOrArray);\n }\n }\n }\n return this;\n }\n\n filter(query: string) {\n this._filter = query;\n return this;\n }\n\n // ToDo: There is currently just two use cases,\n // 1. in value help to select with apply and groupBy, so let's keep it simple,\n // 2. to get counts in filter tabs over table in documents\n // but we may consider to support further use cases later.\n groupBy(...propertyNames: string[]) {\n if (!this._groupBy) {\n this._groupBy = [];\n }\n for (const nameOrArray of propertyNames) {\n if (Array.isArray(nameOrArray)) {\n for (const name of nameOrArray) {\n this._groupBy.push(name);\n }\n } else {\n this._groupBy.push(nameOrArray);\n }\n }\n return this;\n }\n\n expand(expandProperty: string, callback?: (query: ExpandQueryBuilder) => void) {\n if (!this._expand) {\n this._expand = {};\n }\n if (!this._expand[expandProperty]) {\n this._expand[expandProperty] = new ExpandQueryBuilder(expandProperty, this._getPath(), this._oData);\n }\n if (callback) {\n callback(this._expand[expandProperty]);\n }\n return this;\n }\n\n _getPath() {\n return this._path;\n }\n\n /** Check whether we can use select instead of expand to improve backend performance.\n * Only enum expands that don't use other columns than Code and Name are valid.*/\n _isEnumOnlyExpand = (expand: ExpandQueryBuilder) => {\n const expandParentEntityType = this._oData.getMetadata().getTypeForPath(expand._fullPath.split(\"/\").slice(0, -1).join(\"/\"));\n const isExpandCollection = expandParentEntityType.getProperty(expand._path).getType().isCollection();\n\n if (isExpandCollection) {\n return false;\n }\n\n const hasChildExpand = expand._expand && Object.keys(expand._expand).length > 0;\n if (hasChildExpand) {\n return false;\n }\n\n const entityType = this._oData.getMetadata().getTypeForPath(expand._fullPath);\n const allowedColumns = [\"Code\", \"Name\"];\n // we can only apply !expand._select rule if the entity has only Code and Name properties,\n // some enums contains more than those two values and caller can expect to get all properties even without specifying \"select\"\n const noExtraColumnsSelected = (!expand._select && Object.keys(entityType.getProperties()).length === 2)\n || expand._select?.every(select => allowedColumns.includes(select));\n\n return entityType.getKeys()[0]?.getName() === BindingContext.ENUM_KEY_PROP && noExtraColumnsSelected;\n };\n\n _getEnumNameSpace = memoize((expandFullPath: string) => {\n const entityType = this._oData.getMetadata().getTypeForPath(expandFullPath);\n\n return getEnumNameSpaceName(entityType.getName());\n });\n\n // returns full paths of every expand property\n _getExpandToSelectProperties = (): string[] => {\n if (!this._expand) {\n return [];\n }\n\n const params: string[] = [];\n\n for (const expand of Object.values(this._expand)) {\n if (this._isEnumOnlyExpand(expand)) {\n params.push(expand._fullPath);\n }\n }\n\n return params;\n };\n\n /** Enhanced results with navigation objects for enum properties that were previously converted from expand to select */\n _enhanceValueWithEnumExpands = async (value: IEntity | IEntity[]): Promise => {\n // use loop with array of promises instead of recursive function with await on each level\n // to improve the functions performance\n // todo still kinda slow, could be better\n const allPromises: Promise[] = [];\n const expandsToProcess: {\n values: IEntity | IEntity[];\n expandQueryBuilder: ExpandQueryBuilder;\n }[] = [{\n values: value,\n expandQueryBuilder: this as unknown as ExpandQueryBuilder\n }];\n\n\n while (expandsToProcess.length > 0) {\n const { values: tmpVal, expandQueryBuilder } = expandsToProcess.pop();\n const values = Array.isArray(tmpVal) ? tmpVal : [tmpVal];\n\n if (!expandQueryBuilder._expand || Object.values(expandQueryBuilder._expand).length === 0) {\n continue;\n }\n\n const expandToSelectProps = expandQueryBuilder._getExpandToSelectProperties();\n const nameSpaces = expandToSelectProps.map(expandQueryBuilder._getEnumNameSpace);\n\n for (const row of values) {\n if (isNotDefined(value)) {\n continue;\n }\n\n for (const expand of Object.values(expandQueryBuilder._expand)) {\n if (expandToSelectProps.includes(expand._fullPath)) {\n const entityType = expandQueryBuilder._oData.getMetadata().getTypeForPath(expand._fullPath);\n const enumName = entityType.getName();\n const code = getNestedValue(`${expand._path}Code`, row);\n\n if (isDefined(code)) {\n const setValueFn = () => {\n setNestedValue({\n Code: code,\n Name: getEnumDisplayValue(enumName, code)\n }, expand._path, row);\n };\n\n if (nameSpaces.some(namespace => !i18next.hasLoadedNamespace(namespace as string))) {\n const promise = i18next.loadNamespaces(nameSpaces as string[]).then(setValueFn);\n\n allPromises.push(promise);\n } else {\n setValueFn();\n }\n }\n } else {\n // enhance nested items\n if (row[expand._path]) {\n expandsToProcess.push({\n values: row[expand._path],\n expandQueryBuilder: expand\n });\n }\n }\n }\n }\n }\n\n return await Promise.all(allPromises);\n };\n\n _applyExpandParams = (params: TRecordAny): void => {\n const expandToSelectProps = this._getExpandToSelectProperties();\n\n for (const expand of Object.values(this._expand)) {\n if (expandToSelectProps.includes(expand._fullPath)) {\n const selectProperty = `${expand._path}Code`;\n\n // only add code to $select if theres already some other value\n // otherwise, caller could expect all the properties to be returned\n if (params[\"$select\"]) {\n params[\"$select\"] = `${params[\"$select\"]},${selectProperty}`;\n }\n } else {\n if (!params[\"$expand\"]) {\n params[\"$expand\"] = [];\n }\n\n params[\"$expand\"].push(expand.toUrl());\n }\n }\n };\n\n _getParams() {\n const params: TRecordAny = {};\n // should accept 0 as well\n if (this._top !== undefined) {\n params[\"$top\"] = this._top;\n }\n if (this._skip !== undefined) {\n params[\"$skip\"] = this._skip;\n }\n if (this._orderBy) {\n params[\"$orderBy\"] = this._orderBy.map(o => o.propertyName + \" \" + (o.asc ? \"asc\" : \"desc\")).join(\", \");\n }\n if (this._count) {\n params[\"$count\"] = this._count;\n }\n if (this._select) {\n params[\"$select\"] = this._select.join(\",\");\n }\n if (this._groupBy || this._aggregate) {\n const prefix = this._filter ? `filter(${this._filter})/` : \"\";\n if (this._groupBy) {\n params[\"$apply\"] = `${prefix}groupby((${this._groupBy.join(\",\")})${this._aggregate ? `,aggregate(${this._aggregate})` : \"\"})`;\n } else {\n params[\"$apply\"] = `${prefix}aggregate(${this._aggregate})`;\n }\n } else if (this._filter) {\n params[\"$filter\"] = this._filter;\n }\n if (this._expand) {\n this._applyExpandParams(params);\n }\n if (this.__options.queryParameters) {\n for (const [key, val] of Object.entries(this.__options.queryParameters)) {\n params[key] = val;\n }\n }\n return params;\n }\n\n toUrl(urlPrefix: string, withParams = true): string {\n const url = join(...[urlPrefix, this._path, this._action].filter(i => !!i));\n\n const params = withParams ? this._getParams() : {};\n return createUrl(url, params);\n }\n\n getId(): string {\n return this.__options?.id;\n }\n}\n\nexport class ExpandQueryBuilder extends Query {\n _fullPath: string;\n\n constructor(path: string, parentPath: string, oData?: OData) {\n super(path, oData);\n\n // keep full path for enum expansion workaround\n // we need to be able to tell if the expand property isEnum or not\n this._fullPath = `${parentPath}/${path}`;\n }\n\n _getPath(): string {\n return this._fullPath;\n }\n\n toUrl(): string {\n let queryString = joinParameters(this._getParams(), \";\", false);\n if (queryString) {\n queryString = `(${queryString})`;\n }\n return `${this._path}${queryString}`;\n }\n}\n\nexport class ODataQueryBuilder extends Query {\n\n clone(): ODataQueryBuilder {\n const cloned = new ODataQueryBuilder(this._path, this._oData, this._action);\n for (const key in this) {\n if (this.hasOwnProperty(key) && ![\"_oData\", \"_path\", \"_action\"].includes(key) && !(typeof this[key] === \"function\")) {\n // @ts-ignore\n cloned[key] = cloneDeep(this[key]);\n }\n }\n return cloned;\n }\n\n async fetchData(fetchFn?: TFetchFn, options: RequestInit = {}, body?: TRecordAny): Promise> {\n let url = this.toUrl(this._oData.getMetadata().getUrl(), false);\n const params = this._getParams();\n\n if (url.length > MAX_URL_LENGTH) {\n // there is maximum limit of URL length which can be processed on IIS server. In that cases, we built\n // the request using $query operator and put parameters to request body. We want to keep original approach\n // for better readability of requests for debugging purposes, when it's not needed\n\n // we want queryParams to be part of url, not the body\n const queryParams: TRecordString = {};\n const oDataParams: TRecordString = {};\n\n for (const [key, value] of Object.entries(params)) {\n if (key.startsWith(\"$\")) {\n oDataParams[key] = value;\n } else {\n queryParams[key] = value;\n }\n }\n\n url += createUrl(\"/$query\", queryParams);\n options = {\n ...options,\n method: \"POST\",\n headers: {\n ...options.headers,\n \"Content-Type\": \"text/plain\"\n },\n body: joinParameters(oDataParams)\n };\n } else {\n url = createUrl(url, params);\n }\n\n if (body || this._action) {\n options = {\n ...getDefaultPostParams(),\n ...(options ?? {}),\n body: JSON.stringify(encodeOdataObject(body ?? {}, this._oData.getMetadata(), this._path))\n };\n }\n\n const fetchFunction = fetchFn ?? fetch;\n let response;\n if (!isObjectEmpty(options)) {\n response = await fetchFunction(url, options);\n } else {\n response = await fetchFunction(url);\n }\n // TODO error handling, fails when tries to load InvoicesReceived(non existing number)\n\n if (response.status === 404) {\n logger.warn(`fetchData ${url} returned 404`);\n return null;\n } else {\n const contentType = response.headers?.get(\"Content-Type\");\n const isJSON = contentType?.includes(\"application/json\");\n if (isJSON) {\n let data;\n try {\n data = await response.json();\n } catch (e) {\n logger.error(\"Error parsing JSON response\", e);\n data = {};\n }\n\n if (response.ok) {\n const queryResult = parseQueryResult(data, this._oData.getMetadata(), this._getPath());\n\n await this._enhanceValueWithEnumExpands(queryResult.value);\n\n return queryResult;\n } else {\n throw parseError(data);\n }\n } else {\n return { value: null };\n }\n }\n }\n}\n\nclass PathBuilder implements IUrl {\n _path: string;\n _suffix: string;\n _key: TEntityKey;\n __options: UrlOptions;\n\n constructor(path: string, suffix?: string) {\n this._path = path;\n this._suffix = suffix;\n this.__options = new UrlOptions();\n }\n\n /**\n *\n * @param {Object} key\n * @returns {PathBuilder}\n */\n get(key: TEntityKey) {\n this._key = key;\n return this;\n }\n\n navigate(navigation: string) {\n const url = join(this.toUrl(), navigation);\n return new PathBuilder(url);\n }\n\n toUrl(urlPrefix?: string) {\n let result = this._path;\n if (urlPrefix) {\n result = join(urlPrefix, result);\n }\n if (this._key !== undefined) {\n const keys = this._key.toString();\n\n if (keys.startsWith(\"$\")) {\n // relative path, remove last segment as it's saved in the $prop\n const lastSegmentIndex = result.lastIndexOf(\"/\");\n result = result.substring(0, lastSegmentIndex + 1) + keys;\n } else {\n result += \"(\" + keys + \")\";\n }\n }\n if (this._suffix) {\n result += \"/\" + this._suffix;\n }\n if (this.__options.queryParameters) {\n result = createUrl(result, this.__options.queryParameters);\n }\n\n return result;\n }\n}\n\nexport abstract class Wrapper {\n path: string;\n metadata: Metadata;\n qparams: TRecordString;\n\n protected constructor(path: string, metadata: Metadata) {\n this.path = path;\n this.metadata = metadata;\n }\n\n // // TODO for me the naming cause confusion\n // // what is the exact difference between query (which accepts key) and key (which is something like get?)\n // key(key: TEntityKey) {\n // let pathBuilder = this._getPathBuilder(key);\n // let type = this.metadata.getTypeForPath(this.path);\n // let navigationProperties = type.getNavigationProperties();\n // let result: Record = {};\n // for (let navProp of navigationProperties) {\n // result[navProp.getName()] = new NestedEntityWrapper(pathBuilder.navigate(navProp.getName()).toUrl(), this);\n // }\n // return result;\n // }\n\n abstract query(a?: TEntityKey, ...args: any): Query\n\n abstract addKey(key: TEntityKey): Wrapper\n\n abstract navigate(navigationProperty: string): Wrapper\n\n abstract _handleCommand(method: string, command: TRequest, ...args: any): CommandRetVal\n\n _getPathBuilder(keys: TEntityKey, action?: string): PathBuilder {\n const builder = new PathBuilder(this.path, action);\n if (keys) {\n builder.get(keys);\n }\n return builder;\n }\n\n queryParameters(parameters: TRecordString) {\n this.qparams = parameters;\n return this;\n }\n\n getQueryParameters(): TRecordString {\n return this.qparams;\n }\n\n getUrl(keys?: TEntityKey, action?: string): string {\n return this._getPathBuilder(keys, action).toUrl(this.metadata.getUrl());\n }\n\n get(key?: string | number, args: ICommandArgs = {}): IEntity {\n const request: IRequest = {\n url: this.getUrl(key),\n method: \"GET\",\n headers: {\n // bug on backend, headers (even empty) object is needed on all batch call\n }\n };\n return this._handleCommand(\"get\", request, args) as IEntity;\n }\n\n create(values: object, args: ICommandArgs = {}) {\n const request: IRequest = {\n url: this.getUrl(),\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...args.headers\n },\n body: values\n };\n return this._handleCommand(\"create\", request, args);\n }\n\n delete(keys: TEntityKey, args: ICommandArgs = {}) {\n const request: IRequest = {\n url: this.getUrl(keys),\n // bug on backend, headers (even empty) object is needed on all batch call\n headers: {\n ...args.headers\n },\n method: \"DELETE\"\n };\n\n if (args.customUrlSuffix) {\n // used to delete a reference to an entity in collection\n request.url += args.customUrlSuffix;\n }\n\n return this._handleCommand(\"delete\", request, args);\n }\n\n update(keys: TEntityKey, values: Partial, args: ICommandArgs = {}) {\n const request: IRequest = {\n url: this.getUrl(keys),\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...args.headers\n },\n body: values\n };\n return this._handleCommand(\"update\", request, args);\n }\n\n /**\n * Actions are additional operations to the basic CRUD operations. Could be more complex,\n * feel free to enhance this method to support more method types, expanded content\n * or parsing JSON responses, when needed\n * @param action\n * @param keys\n * @param values\n * @param args\n */\n action(action: A, keys?: TEntityKey, values?: IOdataActionParameters[A], args: ICommandArgs = {}) {\n const actionPath = ODataActionPath[action] ?? action;\n const request: IRequest = {\n url: this.getUrl(keys, actionPath),\n method: \"POST\",\n headers: {\n ...args.headers\n },\n body: values ?? {}\n };\n return this._handleCommand(\"action\", request, args);\n }\n\n /**\n * Fixes a bug in OData library which internally handles batch request as if\n * the type was IEEE754Compatible JSON.\n * @param {} command\n */\n _encodeCommand(command: IRequest): void {\n if (command.body) {\n command.headers[\"Content-Type\"] = \"application/json;IEEE754Compatible=true\";\n command.body = encodeOdataObject(command.body, this.metadata, this.path);\n }\n }\n}\n\ntype THandleCommandResponse = Promise;\n\nexport class EntitySetWrapper extends Wrapper {\n oData: OData;\n\n constructor(entitySetName: string, oData: OData) {\n super(entitySetName, oData.getMetadata());\n this.oData = oData;\n }\n\n addKey(key: TEntityKey) {\n const pathBuilder = this._getPathBuilder(key);\n\n return new EntitySetWrapper(pathBuilder.toUrl(), this.oData);\n }\n\n navigate(navigationProperty: string) {\n const pathBuilder = this._getPathBuilder(\"\");\n const type = this.metadata.getTypeForPath(this.path);\n const navigationProperties = type.getNavigationProperties();\n const result: Record = {};\n\n for (const navProp of navigationProperties) {\n result[navProp.getName()] = new EntitySetWrapper(pathBuilder.navigate(navProp.getName()).toUrl(), this.oData);\n }\n\n return result[navigationProperty];\n }\n\n _fetch(request: IRequest, fetchFn?: TFetchFn) {\n this._encodeCommand(request);\n\n let { url, body, ...rest } = request;\n const newRequest: RequestInit = rest;\n\n if (body) {\n newRequest.body = JSON.stringify(body);\n }\n newRequest.redirect = \"error\";\n\n const queryParameters = this.getQueryParameters();\n\n if (queryParameters) {\n url = createUrl(url, queryParameters);\n this.queryParameters(null);\n }\n\n const fetchFunction = fetchFn ?? fetch;\n\n return fetchFunction(url, newRequest);\n }\n\n async _handleCommand(method: string, command: IRequest, args: ICommandArgs = {}): THandleCommandResponse {\n const path = command.url;\n const response = await this._fetch(command, args?.fetchFn);\n\n if (response.ok) {\n if (method === \"create\" || method === \"get\" || method === \"action\") {\n try {\n const data = await response.json();\n return parseQueryResult(data, this.metadata, path);\n } catch (e) {\n if (method === \"action\") {\n // action method might not have response body, just return true in that case...\n return true;\n }\n // error in parsing create or get method\n throw e;\n }\n } else {\n return true;\n }\n } else {\n let data;\n try {\n data = await response.json();\n } catch (e) {\n data = {};\n }\n throw parseError(data);\n }\n }\n\n query(key?: TEntityKey, action?: string): ODataQueryBuilder {\n const query = new ODataQueryBuilder(this._getPathBuilder(key).toUrl(), this.oData, action);\n const queryParameters = this.getQueryParameters();\n if (queryParameters) {\n query.queryParameters(queryParameters);\n this.queryParameters(null);\n }\n return query;\n }\n}\n\nexport class BatchEntitySetWrapper extends Wrapper {\n _batchRequest: BatchRequest;\n\n constructor(batchRequest: BatchRequest, entitySetName: string) {\n super(entitySetName, batchRequest.oData.getMetadata());\n this._batchRequest = batchRequest;\n }\n\n addKey(key: TEntityKey) {\n const pathBuilder = this._getPathBuilder(key);\n\n return new BatchEntitySetWrapper(this._batchRequest, pathBuilder.toUrl());\n }\n\n navigate(navigationProperty: string) {\n const pathBuilder = this._getPathBuilder(\"\");\n const type = this._batchRequest.oData.metadata.getTypeForPath(this.path);\n const navigationProperties = type.getNavigationProperties();\n const result: Record = {};\n\n for (const navProp of navigationProperties) {\n result[navProp.getName()] = new BatchEntitySetWrapper(this._batchRequest, pathBuilder.navigate(navProp.getName()).toUrl());\n }\n\n return result[navigationProperty];\n }\n\n batchId(id: string) {\n this._batchRequest.setNextId(id);\n return this;\n }\n\n query(key?: string, args: ICommandArgs = {}) {\n const query = new Query(this._getPathBuilder(key).toUrl(), this._batchRequest.oData);\n\n const queryParameters = this.getQueryParameters();\n if (queryParameters) {\n query.queryParameters(queryParameters);\n }\n\n this._batchRequest._addRequest(query, args.index);\n return query;\n }\n\n get(key?: string | number, args: ICommandArgs = {}) {\n return super.get(key, args);\n }\n\n create(values: object, args: ICommandArgs = {}) {\n return super.create(values, args);\n }\n\n delete(keys: TEntityKey, args: ICommandArgs = {}) {\n return super.delete(keys, args);\n }\n\n update(keys: TEntityKey, values: object, args: ICommandArgs = {}) {\n return super.update(keys, values, args);\n }\n\n // returns batch id of the created request\n _handleCommand(method: string, command: IRequest, args: ICommandArgs = {}): string {\n this._encodeCommand(command);\n\n const queryParams = this.getQueryParameters();\n\n if (queryParams) {\n command.url = createUrl(command.url, queryParams);\n this.queryParameters(null);\n }\n return this._batchRequest._addRequest(command, args.index);\n }\n}\n\nexport interface IOriginalBatchResult {\n id: string;\n status: number;\n headers: HeadersInit;\n body: unknown;\n}\n\nexport interface IOriginalBatchBody {\n responses: IOriginalBatchResult[];\n}\n\nexport interface IBatchResult {\n id: string;\n status: number;\n headers: Headers;\n body: T;\n}\n\nexport function isBatchResultOk(batchResult: IBatchResult): batchResult is IBatchResult {\n return batchResult.status < 300;\n}\n\ntype TBatchResult = IBatchResult | ODataError>;\n\nfunction parseBatchResult(data: any, metadata: Metadata, paths: string[]): IBatchResult[] {\n if (data.responses) {\n return data.responses.map((result: IBatchResult, i: number) => {\n const res = {\n id: result.id,\n status: result.status,\n headers: new Headers(result.headers),\n body: undefined as object\n };\n if (result.status < 300 && result.body) {\n res.body = parseQueryResult(result.body, metadata, paths[i]);\n } else if (result.body && result.body.error) {\n res.body = parseError(result.body);\n }\n return res;\n });\n } else {\n return data;\n }\n}\n\nabstract class EntitySetsWrappersHolder {\n abstract getEntitySetWrapper(entitySetName: string): Wrapper\n\n fromPath(path: string, metadata: Metadata) {\n const { entitySet, entityKey, navigation } = metadata.getLastValidEntitySet(path);\n const entityRegex = /^(?\\w+)(\\((?[^)]+)\\))?$/;\n const parts = navigation.split(\"/\");\n let entitySetWrapper = this.getEntitySetWrapper(entitySet.getName());\n\n if (entityKey) {\n entitySetWrapper = entitySetWrapper.addKey(entityKey);\n }\n\n for (const part of parts) {\n if (!part) {\n continue;\n }\n\n const match = part.match(entityRegex);\n\n if (!match) {\n throw new Error(`Unexpected format of first part of path: ${part}`);\n }\n\n const entityName = match.groups.name;\n const entityKey = match.groups.key;\n\n entitySetWrapper = entitySetWrapper.navigate(entityName);\n\n if (!entitySetWrapper) {\n throw new Error(`Entity set or navigation ${entityName} not found.`);\n }\n\n if (entityKey) {\n entitySetWrapper = entitySetWrapper.addKey(entityKey);\n }\n }\n\n return entitySetWrapper;\n }\n}\n\nexport class BatchRequest extends EntitySetsWrappersHolder {\n oData: OData;\n requests: TRequest[];\n promises: Record,\n resolve: (batchResult: TBatchResult) => void\n }>;\n abortController: AbortController;\n nextId: string;\n currentAtomicityGroup: string;\n _entitySets: Partial> = {};\n\n constructor(oData: OData) {\n super();\n\n this.oData = oData;\n this.requests = [];\n this.promises = {};\n this.nextId = \"0\";\n this.currentAtomicityGroup = null;\n for (const setName of Object.keys(oData.getMetadata().entitySets)) {\n this._entitySets[setName as EntitySetName] = new BatchEntitySetWrapper(this, setName);\n }\n }\n\n isEmpty() {\n return this.requests.length === 0;\n }\n\n getRequests() {\n return this.requests;\n }\n\n fromPath(path: string): BatchEntitySetWrapper {\n return super.fromPath(path, this.oData.metadata) as BatchEntitySetWrapper;\n }\n\n getEntitySetWrapper(entitySetName: EntitySetName) {\n return this._entitySets[entitySetName];\n }\n\n getNextId() {\n return this.nextId;\n }\n\n setNextId(id: string) {\n this.nextId = id;\n }\n\n beginAtomicityGroup(name: string) {\n this.currentAtomicityGroup = name;\n }\n\n _getApiUrl() {\n return this.oData.getMetadata().getUrl();\n }\n\n _addRequest(data: TRequest, index?: number) {\n const currentId = this.getNextId();\n\n if (isIUrl(data)) {\n data.__options.id = currentId;\n if (this.currentAtomicityGroup) {\n data.__options.atomicityGroup = this.currentAtomicityGroup;\n }\n } else if (!data.id) {\n data.id = currentId;\n if (this.currentAtomicityGroup) {\n data.atomicityGroup = this.currentAtomicityGroup;\n }\n }\n\n if (isNotDefined(index)) {\n this.requests.push(data);\n } else {\n this.requests.splice(index, 0, data);\n }\n\n this.setNextId(String(this.requests.length));\n\n return currentId;\n }\n\n _getRequestJson() {\n const urlPrefix = this.oData.getMetadata().getUrl();\n return this.requests.map(obj => {\n if (isIUrl(obj)) {\n const result = {\n id: obj.__options.id,\n url: obj.toUrl(urlPrefix),\n method: \"GET\",\n headers: {\n // bug on backend, headers (even empty) object is needed on all batch call\n },\n atomicityGroup: undefined as string\n };\n if (obj.__options.atomicityGroup) {\n result.atomicityGroup = obj.__options.atomicityGroup;\n }\n return result;\n } else {\n return obj;\n }\n });\n }\n\n async execute(): Promise[]> {\n const url = join(this._getApiUrl(), \"$batch\");\n const data = {\n requests: this._getRequestJson()\n };\n\n this.abortController = new AbortController();\n\n const response = await fetch(url, {\n method: \"POST\",\n redirect: \"error\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\",\n \"Content-Transfer-Encoding\": \"binary\"\n },\n body: JSON.stringify(data),\n signal: this.abortController.signal\n });\n const body = await parseResponse(response);\n\n // TODO we should somehow call FetchWithMiddleware after (or even before?) callbacks\n // for each request in batch, so that we can handle errors in the same way as in FetchWithMiddleware\n\n if (isODataError(body)) {\n throw body;\n } else {\n const batchResult = parseBatchResult(body, this.oData.getMetadata(), data.requests.map(r => r.url));\n\n for (let i = 0; i < batchResult.length; i++) {\n const result = batchResult[i];\n const request = this.requests[i];\n\n if (result.status < 300 && request instanceof Query) {\n await request._enhanceValueWithEnumExpands((result.body as ODataQueryResult).value);\n }\n\n if (this.promises[data.requests[i].id]) {\n this.promises[data.requests[i].id].resolve(result);\n }\n }\n\n return batchResult;\n }\n }\n\n abort() {\n this.abortController?.abort();\n }\n\n /** requests can be added into one Batch from multiple places in code\n * this adds possibility to await one particular request from batch\n * */\n\n async awaitRequest(requestId: string) {\n if (!this.promises[requestId]) {\n\n let resolveFn: (batchResult: TBatchResult) => void;\n const promise = new Promise((resolve) => {\n resolveFn = resolve;\n });\n\n this.promises[requestId] = {\n promise,\n resolve: resolveFn\n };\n\n }\n\n return this.promises[requestId].promise;\n }\n}\n\nclass OData extends EntitySetsWrappersHolder {\n metadata: Metadata;\n _entitySets: Record = {};\n\n constructor(metadata: Metadata) {\n super();\n\n this.metadata = metadata;\n for (const setName of Object.keys(metadata.entitySets)) {\n this._entitySets[setName] = new EntitySetWrapper(setName, this);\n }\n }\n\n getEntitySetWrapper(entitySetName: EntitySetName) {\n return this._entitySets[entitySetName];\n }\n\n getMetadata() {\n return this.metadata;\n }\n\n batch() {\n return new BatchRequest(this);\n }\n\n fromPath(path: string): EntitySetWrapper {\n return super.fromPath(path, this.metadata) as EntitySetWrapper;\n }\n}\n\nconst repository: Record = {};\n\nasync function getOData(url: string) {\n if (!url) {\n throw new Error(\"Url parameter must be non null.\");\n }\n if (!repository[url]) {\n repository[url] = await fetchMetadata(url);\n }\n return new OData(repository[url]);\n}\n\nexport { getOData, OData };","import {\n Condition,\n ConditionType,\n formatFilterAsSentence,\n formatFilterDisplayCondition,\n getComplexFilterValue,\n IComplexFilter,\n isComplexFilterArr,\n isInterval,\n IValueInterval,\n PredefinedFilter,\n TFilterValue\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { formatDateInterval, formatDateToDateString, isValidDateInterval } from \"@components/inputs/date/utils\";\nimport { getInfoValue, IFieldDef } from \"@components/smart/FieldInfo\";\nimport { ISort } from \"@components/table\";\nimport { isBooleanType, isDateType, isNumericType } from \"@evala/odata-metadata/src\";\nimport { IFetchDefinition } from \"@pages/PageUtils\";\nimport { formatDateByTimeAggFn, isValidDateIntervalWithTimeAggFn } from \"@pages/reports/Report.utils\";\nimport { getDefaultPostParams } from \"@utils/customFetch\";\nimport { dateTimeToDateRange, isDefined, isNotDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\n\nimport { EMPTY_VALUE, NON_BREAKING_SPACE, ODATA_API_URL } from \"../constants\";\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { FieldType, ODataFilterFunction, Sort, ValueType } from \"../enums\";\nimport { IToString, TRecordAny } from \"../global.types\";\nimport { Model } from \"../model/Model\";\nimport { formatCurrency, formatCurrencyVariableDecimals } from \"../types/Currency\";\nimport DateType from \"../types/Date\";\nimport NumberType from \"../types/Number\";\nimport { IChangedFilter } from \"../views/table/TableView.utils\";\nimport BindingContext, { IEntity } from \"./BindingContext\";\nimport { getUniqueContextsSuffixAsString } from \"./Data.utils\";\nimport { getValueTypeFromProperty, IFieldInfo } from \"./FieldInfo.utils\";\nimport { ActionTypeCode } from \"./GeneratedEnums\";\nimport { BatchRequest, EntitySetWrapper, OData, ODataQueryBuilder, Query } from \"./OData\";\n\ninterface IParsedPath {\n navigation: string;\n propertyPath: string;\n}\n\nexport interface ICreateFilterStringSettings {\n rootBindingContext?: BindingContext;\n prefix?: string;\n}\n\n// we are using one character filter prefixes -> increment on every recursion\nfunction incrementString(char: string): string {\n return String.fromCharCode(...(Array.from(char).map(c => c.charCodeAt(0) + 1)));\n}\n\nexport function createFilterValue(bindingContext: BindingContext, filterName: string, filter: IComplexFilter): string {\n const valueType = getValueTypeFromProperty(bindingContext.getProperty());\n let value = getComplexFilterValue(filter);\n\n const _patterns: Partial> = {\n [Condition.Equals]: \"%name% eq %value%\",\n [Condition.IsBefore]: \"%name% lt %value%\",\n [Condition.IsAfter]: \"%name% gt %value%\",\n [Condition.IsBeforeOrEqualsTo]: \"%name% le %value%\",\n [Condition.IsAfterOrEqualsTo]: \"%name% ge %value%\",\n [Condition.GreaterThan]: \"%name% gt %value%\",\n [Condition.LesserThan]: \"%name% lt %value%\",\n [Condition.GreaterOrEqual]: \"%name% ge %value%\",\n [Condition.LesserOrEqual]: \"%name% le %value%\",\n [Condition.Contains]: \"contains(%name%,%value%)\",\n [Condition.BeginsWith]: \"startswith(%name%,%value%)\",\n [Condition.EndsWith]: \"endswith(%name%,%value%)\"\n };\n\n const _intervalPatterns: Partial> = {\n [Condition.Equals]: \"(%name% ge %from% and %name% le %to%)\",\n [Condition.Between]: \"(%name% ge %from% and %name% le %to%)\",\n [Condition.IsBefore]: \"%name% lt %from%\",\n [Condition.IsAfter]: \"%name% gt %to%\",\n [Condition.IsBeforeOrEqualsTo]: \"%name% le %to%\",\n [Condition.IsAfterOrEqualsTo]: \"%name% ge %from%\"\n };\n\n let filterStr: string;\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return \"\";\n }\n // for array of values use IN clause instead of multiple ORs => faster\n const joinedValues = transformToODataString(value as string[], valueType);\n\n filterStr = `${filterName} in (${joinedValues})`;\n } else {\n const isDate = valueType === ValueType.Date;\n\n // We should transform dates to intervals to cover whole day regardless of time of the day\n if (value !== null && isDate && !isInterval(value)) {\n value = dateTimeToDateRange(value as Date);\n }\n\n filterStr = (isInterval(value) ? _intervalPatterns : _patterns)[filter.condition];\n\n // We are using pattern for the filter, so we need to replace placeholders with actual values\n filterStr = filterStr.replaceAll(\"%name%\", filterName);\n\n if (isInterval(value)) {\n Object.keys(value).forEach((key) => {\n const v = transformToODataString((value as TRecordAny)[key], valueType);\n filterStr = filterStr.replaceAll(new RegExp(`%${key}%`, \"g\"), v);\n });\n } else {\n filterStr = filterStr.replaceAll(new RegExp(`%value%`, \"g\"), transformToODataString(value as Exclude, valueType));\n }\n }\n\n if (filter.type === ConditionType.Excluded) {\n filterStr = `not (${filterStr})`;\n }\n\n return filterStr;\n}\n\nfunction formatFilterToDisplayValue(filterValue: IComplexFilter, info: IFieldInfo, opts: IFormatOptions) {\n const { value } = filterValue;\n let displayValue;\n\n if (isInterval(value)) {\n displayValue = {\n from: formatValue((value as IValueInterval).from, info, opts),\n to: formatValue((value as IValueInterval).to, info, opts)\n };\n } else {\n displayValue = formatValue(value, info, opts);\n }\n\n return displayValue;\n}\n\nexport function getFilterToken(filterValue: IComplexFilter, info: IFieldInfo, opts: IFormatOptions): string {\n const { condition, filter, type, value } = filterValue;\n let prefix = \"\";\n let displayValue;\n\n if (filter !== PredefinedFilter.Value) {\n displayValue = i18next.t(`Components:ValueHelper.${filter}`);\n } else {\n displayValue = formatFilterToDisplayValue(filterValue, info, opts);\n }\n\n if (type === ConditionType.Excluded) {\n prefix = \"!\";\n }\n\n return `${prefix}${formatFilterDisplayCondition(condition, displayValue)}`;\n}\n\nexport function getFilterSentence(filterValue: IComplexFilter, info: IFieldInfo, opts: IFormatOptions): string {\n const displayValue = formatFilterToDisplayValue(filterValue, info, opts);\n\n return formatFilterAsSentence(filterValue.condition, displayValue);\n}\n\nexport const createFilterString = (filter: IChangedFilter, settings: ICreateFilterStringSettings = {}): string => {\n const _getFilterName = (bc: BindingContext) => {\n const navigation = bc.getNavigationPath(true, settings.rootBindingContext);\n return settings.prefix ? `${settings.prefix}/${navigation}` : navigation;\n };\n\n const parentCollection = filter.bindingContext.getParentCollection(settings.rootBindingContext);\n\n if (parentCollection) {\n const prefix = settings.prefix ? incrementString(settings.prefix) : \"x\";\n const filterString = createFilterString(filter, {\n rootBindingContext: parentCollection,\n prefix\n });\n\n if (filter.info.filter?.nullFilterMeansEmptyCollectionFilter && filterString === EMPTY_VALUE) {\n return `not(${_getFilterName(parentCollection)}/any())`;\n }\n\n return `${_getFilterName(parentCollection)}/any(${prefix}: ${filterString})`;\n }\n let filterName = _getFilterName(filter.bindingContext);\n\n if (filter.info.filter?.oDataFn) {\n filterName = `${filter.info.filter?.oDataFn}(${filterName})`;\n }\n\n // first truthy case will be used\n switch (true) {\n case isNotDefined(filter.value):\n return \"\";\n\n case isComplexFilterArr(filter.value):\n return (filter.value as IComplexFilter[])\n .map((value: IComplexFilter) => createFilterValue(filter.bindingContext, filterName, value))\n .filter(filterStr => filterStr !== \"\")\n .join(\" AND \");\n\n // isCollection vs field.info.type === FieldType.MultiInput\n case filter.bindingContext.isCollection():\n const filterValue = filter.value as string[];\n const paramName = filter.info.fieldSettings?.displayName ?? filter.bindingContext.getKeyPropertyName();\n\n if (!filterValue?.length) {\n return \"\";\n }\n\n const joinedParams = filterValue\n .map((value) => `param/${paramName} eq '${value}'`)\n .join(\" OR \");\n\n return `${filter.info.id}/any(param: ${joinedParams})`;\n\n // Dates have special treatment - date arrays and also single values...\n // due to bug in oData library (https://github.com/OData/WebApi/issues/2373) we need to treat Date type\n // values from value helper using \"eq\" operator joined with OR condition instead of \"in\".\n case filter.info.valueType === ValueType.Date:\n\n if (Array.isArray(filter.value)) {\n // Date Array is list of dates from value helper - exact values, we can directly filter by\n // array of date objects or strings representing date object (in case it comes from storage)\n return (filter.value as string[])\n .map(val => `${filterName} eq ${transformToODataString(val, filter.info.valueType)}`)\n .join(\" OR \");\n\n } else {\n // Single date inserted by user manual should be converted to day interval (we don't want to use exact match)\n const { from, to } = dateTimeToDateRange(filter.value as Date);\n\n return `${filterName} ge ${transformToODataString(from, filter.info.valueType)} AND ${filterName} le ${transformToODataString(to, filter.info.valueType)}`;\n }\n\n // Multiselects - user picks exact values, so we are using in operator\n case Array.isArray(filter.value):\n const joinedValues = transformToODataString(filter.value as string[], filter.info.valueType);\n return `${filterName} in (${joinedValues})`;\n\n // It's single value filled manually by user\n // or EMPTY_VALUE created in fnBuildFilterQuery\n default:\n if (filter.value !== null && typeof filter.value === \"object\") {\n logger.error(`wrong filter value for: ${filter.bindingContext.getFullPath()}`);\n return \"\";\n }\n const transformedValue = transformToODataString(filter.value, filter.info.valueType);\n if (filter.info.valueType === ValueType.String && filter.value !== EMPTY_VALUE) {\n return `${filter.info.filter?.stringFilterFn ?? ODataFilterFunction.Startswith}(${filterName},${transformedValue})`;\n }\n\n // sometimes (e.g. when filtering over Labels), we want to filter only items WITHOUT any label \"not(Labels/any()\"\n // => return EMPTY_VALUE so that the caller knows it has to create query wrapped in \"not\"\n if (filter.info.filter?.nullFilterMeansEmptyCollectionFilter && filter.value === EMPTY_VALUE) {\n return EMPTY_VALUE;\n }\n\n return `${filterName} eq ${transformedValue}`;\n }\n};\n\nexport interface ILogAction {\n actionId: string;\n actionType: ActionTypeCode;\n detail?: string;\n}\n\nexport const logAction = async (args: ILogAction) => {\n const response = await fetch(`${ODATA_API_URL}/ActionLogs`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n ActionId: args.actionId,\n ActionTypeCode: args.actionType,\n ActionDetails: args.detail ?? \"\"\n })\n });\n\n return response.ok;\n};\n\n// we still want Company Id to be part of the log\nexport const getDefaultLogActionDetail = (storage: Model) => {\n return `Company/Id eq ${storage.context.getCompanyId()}`;\n};\n\nexport enum FormattingTarget {\n Summary = \"Summary\"\n}\n\nexport interface IFormatOptions {\n // whole entity or row in case of table\n entity?: E;\n // value related to the bindingContext, or usually row again in case of table\n item?: I;\n storage?: Model;\n context?: IAppContext;\n bindingContext?: BindingContext;\n info?: IFieldInfo;\n readonly?: boolean;\n placeholder?: string;\n unit?: string;\n target?: FormattingTarget;\n customArgs?: Record;\n}\n\nexport const isEmptyValue = (val: unknown): boolean => isNotDefined(val) || val === EMPTY_VALUE;\n\nexport const formatValue = (value: any, fieldInfo: IFieldInfo, options?: IFormatOptions) => {\n let formattedValue = value;\n\n if (!fieldInfo) {\n return value;\n }\n\n const property = fieldInfo.bindingContext.getProperty();\n\n if (fieldInfo.formatter) {\n formattedValue = fieldInfo.formatter(value, options);\n } else if (property?.getCurrency()\n && options?.readonly) { // we don't want to format currency name in inputs\n const currency = property.getCurrency();\n const constraint = fieldInfo.bindingContext.getEntityType().getProperty(currency).getReferentialConstraint();\n // in case navigation object doesn't exist (Currency), try to use property (CurrencyCode)\n const currencyValue = (options.entity[currency]?.[constraint.referencedProperty] as string) ?? options.entity[constraint.property];\n\n const method = options.target === FormattingTarget.Summary ? formatCurrencyVariableDecimals : formatCurrency;\n formattedValue = method(value, currencyValue);\n } else if (isEmptyValue(value) && options?.readonly) {\n formattedValue = options?.placeholder ?? \"\";\n } else if (isNumericType(property)\n || fieldInfo.type === FieldType.NumberInput) { // local context field don't specify fieldInfo.propertyMetadata but can use NumberInput\n formattedValue = NumberType.format(value);\n if (options?.unit && options?.readonly) {\n formattedValue = formattedValue + NON_BREAKING_SPACE + options.unit;\n }\n } else if (isDateType(property) || (fieldInfo.type === FieldType.Date)) {\n if (isValidDateIntervalWithTimeAggFn(value)) {\n // for case when filter is passed as date interval via drilldown filters,\n // but is defined as FieldType.Date in local filter definition\n // used in GeneralLedgerDef\n formattedValue = formatDateByTimeAggFn(value.from, value.type);\n } else if (isValidDateInterval(value)) {\n formattedValue = formatDateInterval(value);\n } else {\n // todo: localFormat ??\n formattedValue = DateType.format(value, fieldInfo.displayFormat, {\n isReadOnly: options.readonly\n });\n }\n } else if (isBooleanType(property)) {\n formattedValue = formatBooleanValue(value);\n }\n\n return formattedValue;\n};\n\nexport function formatBooleanValue(value: boolean): string {\n return i18next.t(`Common:General.${value ? \"Yes\" : \"No\"}`);\n}\n\nexport function parsePropertyPath(path: string): IParsedPath {\n let navigation;\n let propertyPath = path;\n\n if (path.indexOf(\"/\") >= 0) {\n navigation = path.split(\"/\");\n propertyPath = navigation.pop();\n navigation = navigation.join(\"/\");\n }\n\n return {\n navigation,\n propertyPath\n };\n}\n\ninterface IParsedTree {\n properties?: string [];\n navigation?: {\n [navigationProperty: string]: IParsedTree;\n };\n}\n\nexport const parseNavigationTree = (properties: string [], bindingContext: BindingContext): IParsedTree => {\n const tree: IParsedTree = {\n properties: [],\n navigation: {}\n };\n\n const nextLevel: {\n [key: string]: string[]\n } = {};\n\n for (const property of properties) {\n const propBindingContext = bindingContext.navigate(property);\n const split = property.split(\"/\");\n\n if (split.length === 1 && !propBindingContext.isNavigation()) {\n tree.properties.push(split[0]);\n } else {\n const navigation = split.shift();\n\n if (!(navigation in nextLevel)) {\n nextLevel[navigation] = [];\n }\n\n if (split.length > 0) {\n nextLevel[navigation].push(\n split.join(\"/\")\n );\n }\n }\n }\n\n\n for (const nextNav of Object.keys(nextLevel)) {\n const navBindingContext = bindingContext.navigate(nextNav);\n tree.navigation[nextNav] = parseNavigationTree(nextLevel[nextNav], navBindingContext);\n }\n\n return tree;\n};\n\nconst applyQuerySettings = ({ query, settings, path = \"\" }: {\n query: Query,\n settings: IPrepareQuerySettings,\n path?: string\n}) => {\n if (!(path in settings)) {\n return query;\n }\n\n const pathSettings = settings[path];\n\n if (pathSettings.sort) {\n for (const sort of pathSettings.sort) {\n query = query.orderBy(sort.id, sort.sort === Sort.Asc);\n }\n }\n\n if (pathSettings.filter) {\n query = query.filter(pathSettings.filter);\n }\n\n if (pathSettings.count) {\n query = query.count();\n }\n\n if (isDefined(pathSettings.top)) {\n query = query.top(pathSettings.top);\n }\n\n if (isDefined(pathSettings.skip)) {\n query = query.skip(pathSettings.skip);\n }\n\n return query;\n};\n\nexport const queryFromTree = ({ bindingContext, fieldDefs, navigationTree, settings, isRoot }: {\n bindingContext: BindingContext,\n navigationTree: IParsedTree,\n fieldDefs?: IFieldDef[],\n settings: IPrepareQuerySettings,\n isRoot?: boolean\n}) => {\n return (q: Query) => {\n const enrichedProperties = getEnrichedProperties(navigationTree.properties, bindingContext, fieldDefs);\n const parsedTree = parseNavigationTree(enrichedProperties, bindingContext);\n\n q.select(...parsedTree.properties);\n\n const navigations = {\n ...navigationTree.navigation,\n ...parsedTree.navigation\n };\n\n for (const nav of Object.keys(navigations)) {\n const newBindingContext = bindingContext.navigate(nav);\n\n q.expand(nav, queryFromTree({\n bindingContext: newBindingContext,\n navigationTree: navigations[nav],\n fieldDefs,\n settings\n }));\n }\n\n applyQuerySettings({ query: q, settings, path: isRoot ? \"\" : bindingContext.getNavigationPath() });\n };\n};\n\n// const flattenTree = (entityTree, flattenArray, fullPath = \"\") => {\n// let flattenedTree = {};\n//\n// for (let [name, value] of Object.entries(entityTree)) {\n// const newPath = fullPath === \"\" ? name : `${fullPath}/${name}`;\n// if (value !== null && typeof value === \"object\" && !(value instanceof Date)) {\n// if (!flattenArray && Array.isArray(value)) {\n// flattenedTree[newPath] = [];\n// for (let val of value) {\n// flattenedTree[newPath].push(flattenTree(val, flattenArray));\n// }\n// } else {\n// flattenedTree = {\n// ...flattenedTree,\n// ...flattenTree(value, flattenArray, newPath)\n// };\n// }\n// } else {\n// flattenedTree[newPath] = value;\n// }\n// }\n//\n// return flattenedTree;\n// };\n\n/**\n * Adds key properties of entitySet, so that we can create unique ids for each returned item\n Adds Currency properties\n Adds displayName property if defined in FieldInfo\n */\nexport const getEnrichedProperties = (properties: string[], bindingContext: BindingContext, fieldDefs: IFieldDef[]) => {\n const _getAllAdditionalProperties = (fieldDef: IFieldDef, fieldBc?: BindingContext) => {\n let allAdditionalProperties: string[] = [];\n\n if (fieldDef) {\n const fieldBindingContext = fieldBc ? fieldBc : bindingContext.navigate(fieldDef.id);\n\n if (!fieldBindingContext.isLocal() && fieldDef.fieldSettings?.displayName) {\n allAdditionalProperties.push(getUniqueContextsSuffixAsString(fieldBindingContext.navigateWithSiblingFallback(fieldDef.fieldSettings?.displayName), bindingContext));\n }\n\n if (fieldDef.additionalProperties) {\n // if the path starts with '/' it represents full path from the root so we take it without any change\n allAdditionalProperties = [...allAdditionalProperties, ...(fieldDef.additionalProperties.map(additionalDef => {\n return additionalDef.id?.startsWith(\"/\") ? additionalDef.id?.slice(1)\n : getUniqueContextsSuffixAsString(fieldBindingContext.navigateWithSiblingFallback(additionalDef.id), bindingContext);\n }))];\n }\n }\n\n return allAdditionalProperties;\n };\n\n const propertiesWithKeys = [...properties];\n const entityType = bindingContext.getEntityType();\n\n // add entity keys\n for (const keyProp of entityType.getKeys()) {\n if (propertiesWithKeys.indexOf(keyProp.getName()) < 0) {\n propertiesWithKeys.push(keyProp.getName());\n }\n }\n\n // virtual \"local\" properties cannot be part of the odata request\n const newProperties = [...propertiesWithKeys.filter(property => !BindingContext.isLocalContextPath(property))];\n\n for (const property of propertiesWithKeys) {\n for (const additionalProp of _getAllAdditionalProperties(fieldDefs.find((fieldDef) => removeKeyFromPath(fieldDef.id) === property))) {\n // todo find better condition than removeKeyFromPath(fieldDef.id) === property)\n // to match property with its fieldDef => get rid of this try catch block\n try {\n bindingContext.navigate(additionalProp);\n if (!newProperties.find(prop => additionalProp === prop)) {\n newProperties.push(additionalProp);\n }\n } catch {\n }\n\n }\n }\n\n for (const propName of propertiesWithKeys) {\n const property = entityType.getProperty(propName);\n\n if (!property) {\n continue;\n }\n\n const currency = property.getCurrency();\n\n if (currency) {\n if (newProperties.indexOf(currency) < 0) {\n const referencedProperty = entityType.getProperty(currency).getReferentialConstraint().referencedProperty;\n newProperties.push(`${currency}/${referencedProperty}`);\n }\n }\n }\n\n return newProperties;\n};\n\nconst KEY_REGEX = /\\((\\d+)\\)/;\n\nexport function removeKeyFromPath(path: string): string {\n return path.replace(KEY_REGEX, \"\");\n}\n\nexport interface IPrepareQuerySettings {\n [entityType: string]: {\n sort?: ISort[];\n filter?: string;\n count?: boolean;\n top?: number;\n skip?: number;\n };\n}\n\ninterface IPrepareQueryArgsBase {\n bindingContext: BindingContext;\n fieldDefs?: IFieldDef[];\n settings?: IPrepareQuerySettings;\n}\n\ninterface IPrepareQueryArgs extends IPrepareQueryArgsBase {\n oData: OData;\n}\n\ninterface IPrepareQueryForBatchArgs extends IPrepareQueryArgsBase {\n batch: BatchRequest;\n}\n\nexport const prepareQueryBase = (query: Query, {\n bindingContext,\n fieldDefs = [],\n settings = {}\n}: IPrepareQueryArgsBase): Query => {\n const properties = fieldDefs.map(fieldDef => fieldDef.id)\n .map(property => removeKeyFromPath(property));\n\n const applyQuery = queryFromTree({\n bindingContext,\n fieldDefs,\n navigationTree: {\n properties: properties,\n navigation: {}\n },\n settings,\n isRoot: true\n });\n\n applyQuery(query);\n\n return query;\n};\n\nexport const prepareQuery = (args: IPrepareQueryArgs): ODataQueryBuilder => {\n const { oData, ...restArgs } = args;\n const entitySetWrapper: EntitySetWrapper = oData.fromPath(args.bindingContext.toString());\n const query = entitySetWrapper.query();\n\n return prepareQueryBase(query, restArgs) as ODataQueryBuilder;\n};\n\nexport const prepareQueryForBatch = (args: IPrepareQueryForBatchArgs): Query => {\n const { batch, ...restArgs } = args;\n const entitySetWrapper = batch.fromPath(args.bindingContext.toString());\n const query = entitySetWrapper.query();\n\n return prepareQueryBase(query, restArgs);\n};\n\ntype TBaseValue = string | number | Date | Dayjs | boolean | IToString;\ntype TTransformValue = TBaseValue | TBaseValue[];\n\nexport function transformToODataString(val: TTransformValue, type: ValueType): string {\n if (isEmptyValue(val)) {\n return \"null\";\n }\n if (Array.isArray(val)) {\n return val.map((v) => transformToODataString(v, type)).join(\",\");\n }\n switch (type) {\n case ValueType.String:\n return `'${val.toString().replace(/'/g, \"''\")}'`;\n case ValueType.Date:\n return formatDateToDateString(val as Date);\n default:\n // ValueType.Number, ValueType.Boolean or type === undefined - mostly for navigation properties, etc...\n return `${val}`;\n }\n}\n\nexport const fetchData = async (bindingContext: BindingContext, oData: OData, definition: IFetchDefinition, context: IAppContext) => {\n const settings: IPrepareQuerySettings = {},\n { sort, columns } = definition,\n filter = getInfoValue(definition, \"filter\", { bindingContext, context });\n\n settings[\"\"] = {\n sort, filter\n };\n\n const query = prepareQuery({\n oData: oData,\n bindingContext,\n fieldDefs: [\n ...columns\n ],\n settings\n });\n\n const result = await query.fetchData();\n return result.value;\n};\n\n","import { TRecordString, TValue } from \"../global.types\";\nimport { EntityType, Metadata, Type } from \"@evala/odata-metadata/src\";\nimport i18next from \"i18next\";\nimport { logger } from \"@utils/log\";\nimport { ODATA_API_URL } from \"../constants\";\nimport { ODataEntityMetadata } from \"./GeneratedEntityTypes\";\nimport { BackendErrorCode, HTTPStatusCode } from \"../enums\";\nimport { getUtcDate, getUtcDayjs } from \"../types/Date\";\nimport { IValidationMessage, ODataError, ODataInnerError, ODataPropertyValue } from \"@odata/Data.types\";\n\nexport interface IBackendErrorObject {\n code: BackendErrorCode;\n message: string;\n innererror: {\n message: string;\n stacktrace: string;\n type?: string;\n };\n validationMessages?: IValidationMessage[];\n}\n\nexport function isPermissionErrorCode(code: string | BackendErrorCode): boolean {\n return [BackendErrorCode.PermissionError, BackendErrorCode.PermissionMissing].includes(code as BackendErrorCode);\n}\n\nexport function parseError(dataObject: { error?: IBackendErrorObject }): ODataError {\n function replaceWinNl(s: string) {\n return s.replace(/\\r\\n/g, \"\\n\");\n }\n\n const error = dataObject.error;\n if (!error) {\n return null;\n }\n let innerError = null;\n if (error.innererror) {\n let stackTrace = error.innererror.stacktrace;\n let stackTraceArray: string[] = [];\n\n if (stackTrace) {\n stackTrace = replaceWinNl(stackTrace);\n stackTraceArray = stackTrace.split(\"\\n\");\n }\n innerError = new ODataInnerError(error.innererror.type, replaceWinNl(error.innererror.message), stackTraceArray);\n }\n\n const validationMessages = error.validationMessages?.map((valMess: IValidationMessage) => {\n const key = `Error:${valMess.code}`;\n\n return {\n ...valMess,\n message: i18next.exists(key) ? i18next.t(key, valMess.messageParameters) : valMess.message\n };\n });\n\n return new ODataError(error.code, replaceWinNl(error.message), innerError, validationMessages);\n}\n\nfunction getBEErrorCodeFromHTTPStatus(status: HTTPStatusCode): BackendErrorCode {\n switch (status) {\n case HTTPStatusCode.Forbidden:\n return BackendErrorCode.PermissionError;\n case HTTPStatusCode.Unauthorized:\n return BackendErrorCode.NoSession;\n case HTTPStatusCode.GatewayTimeout:\n return BackendErrorCode.GatewayTimeout;\n default:\n return null;\n }\n}\n\n/**\n * Method parses response.\n * - if response is ok, it returns parsed json / text according to response content type\n * - if response is not ok, calls custom handler\n * - if custom handler does not return error, tries to use common handlers defined in the method\n * - otherwise fallbacks to generic error\n * @param response\n * @param customErrorHandler\n */\nexport async function parseResponse(response: Response, customErrorHandler?: (error: IBackendErrorObject) => ODataError): Promise {\n const contentType = response.headers?.get(\"Content-Type\");\n const isJSON = contentType?.includes(\"application/json\");\n\n const _getContents = () => {\n try {\n return isJSON ? response.json() : response.text();\n } catch (e) {\n logger.error(\"Error parsing response\", e);\n }\n return (isJSON ? {} : \"\") as T;\n };\n\n const contents = await _getContents();\n if (response.ok) {\n // success response\n return contents;\n }\n\n const error = contents?.error ? contents.error as IBackendErrorObject : null;\n\n if (customErrorHandler) {\n const customError = customErrorHandler(error);\n if (customError) {\n // if the error is handled by caller, return it\n return customError;\n }\n }\n // common error handlers\n switch (response.status) {\n case HTTPStatusCode.Forbidden:\n case HTTPStatusCode.GatewayTimeout:\n // timeout doesn't return any response => create custom error to show user what's happening\n const code = getBEErrorCodeFromHTTPStatus(response.status);\n return new ODataError(code, i18next.t(`Common:Errors.${code}`), null);\n default:\n return parseError(contents as { error: IBackendErrorObject });\n }\n}\n\nfunction parseSimpleType(type: string, value: TValue): ODataPropertyValue {\n if (value === null) {\n return null;\n }\n switch (type) {\n case \"Date\":\n case \"DateTimeOffset\":\n return getUtcDate(value as string);\n case \"TimeOfDay\":\n if (!value) {\n return null;\n }\n const [hours, minutes] = (value as string).split(\":\");\n const date = getUtcDayjs().set(\"hour\", parseInt(hours)).set(\"minute\", parseInt(minutes));\n return date.toDate();\n case \"Byte\":\n case \"SByte\":\n case \"Int16\":\n case \"Int32\":\n case \"Int64\":\n case \"Single\":\n case \"Double\":\n case \"Decimal\":\n switch (value) {\n case \"-INF\":\n return -Infinity;\n case \"INF\":\n return Infinity;\n case \"NaN\":\n return NaN;\n default:\n return value as number;\n }\n default:\n return value as string;\n }\n}\n\nfunction parseComplexType(obj: Record, metadata: Metadata, type: Type) {\n const resultObj: Record = {};\n const entity = metadata.entities[type.getFullName()];\n for (const key of Object.keys(obj)) {\n const property = entity.getProperty(key);\n const type = property.getType();\n if (type.getNamespace() === \"Edm\") {\n resultObj[key] = parseSimpleType(type.getName(), obj[key] as string);\n } else {\n resultObj[key] = parseComplexType(obj[key] as TRecordString, metadata, type);\n }\n }\n return resultObj;\n}\n\nfunction parseResultObject(obj: Record | Record[], metadata: Metadata, currentPath: string, withoutLogs?: boolean): Record | Record[] {\n if (Array.isArray(obj)) {\n return obj.map(o => parseResultObject(o, metadata, currentPath, withoutLogs));\n } else if (currentPath.startsWith(\"Edm.\")) { // sometimes @odata.context has Edm type instead of property path\n return obj;\n } else {\n const resultMetadata: Record> = {};\n const resultObj: Record = {};\n\n if (obj) {\n let entity: EntityType = metadata.entities[obj[\"@odata.type\"]?.slice(1)];\n\n if (!entity) {\n try {\n entity = metadata.getTypeForPath(currentPath);\n } catch (e) {\n // currentPath can include action (e.g. DocumentDrafts(5)/ExtractIsdoc)\n // => try to remove the last part and parse entity path again (just DocumentDrafts(5))\n const lastSlashIndex = currentPath.lastIndexOf(\"/\");\n\n entity = metadata.getTypeForPath(currentPath.slice(0, lastSlashIndex));\n }\n }\n\n for (const key of Object.keys(obj)) {\n const indexOfAtOdata = key.indexOf(\"@odata.\");\n const indexOfAtEvala = key.indexOf(\"@evala.\");\n const index = indexOfAtOdata >= 0 ? indexOfAtOdata : indexOfAtEvala;\n\n if (index >= 0) {\n const prop = key.substring(0, index);\n const metadataProp = key.substring(index + 7);\n\n if (!resultMetadata[prop]) {\n resultMetadata[prop] = {};\n }\n resultMetadata[prop][metadataProp] = obj[key];\n } else {\n const property = entity.getProperty(key);\n if (!property) {\n if (!withoutLogs) {\n logger.error(\"Type for property \" + key + \" not found.\");\n }\n continue;\n }\n const type = property.getType();\n if (type.getNamespace() === \"Edm\") {\n resultObj[key] = parseSimpleType(type.getName(), obj[key]);\n } else if (property.isNavigation()) {\n const nextPath = currentPath + \"/\" + entity.getProperty(key).getName();\n resultObj[key] = parseResultObject(obj[key], metadata, nextPath, withoutLogs);\n } else {\n resultObj[key] = parseComplexType(obj[key], metadata, type);\n }\n }\n }\n }\n\n if (Object.keys(resultMetadata).length > 0) {\n resultObj._metadata = resultMetadata;\n }\n\n return resultObj;\n }\n}\n\nexport interface ODataResponse {\n // todo better interface\n [key: string]: any;\n}\n\nexport interface ODataQueryResult {\n value?: T;\n _metadata?: ODataEntityMetadata;\n}\n\n/** withoutLogs is for audit trail witch contains some weird data that are not in the odata entities.\n * Backend probably dumps the whole table, not the odata entity. Use withoutLogs to prevent the substantial amount of\n * logging requests that would otherwise be sent when audit trail is opened.*/\nexport function parseQueryResult(data: ODataResponse, metadata: Metadata, currentPath: string, withoutLogs?: boolean): ODataQueryResult {\n const result: any = {};\n const directValues: {\n [key: string]: any\n } = {};\n const resultMetadata: ODataEntityMetadata = {};\n\n if (currentPath) {\n currentPath = currentPath.split(\"?\")[0].replace(`${ODATA_API_URL}/`, \"\");\n }\n\n if (Array.isArray(data)) {\n result.value = data;\n } else {\n for (const [key, value] of Object.entries(data)) {\n if (key === \"value\") {\n result.value = value as TValue;\n } else if (key.startsWith(\"@odata.\") || key.startsWith(\"@evala.\")) {\n (resultMetadata as any)[key.substring(7)] = value;\n } else {\n directValues[key] = value;\n }\n }\n if (!result.value) {\n result.value = directValues;\n }\n }\n\n if (Object.keys(resultMetadata).length > 0) {\n result._metadata = resultMetadata;\n }\n if (result._metadata || currentPath) {\n // let context: Record = parseContextTree(result._metadata.context);\n // we don't need to parse the whole contextTree (and use context.property instead of currentPath)\n // because we only used context.property anyway and we know this from the request url\n result.value = parseResultObject(result.value, metadata, currentPath, withoutLogs);\n }\n return result;\n}\n\nexport { ODataError };\n","import React from \"react\";\nimport { getOData, OData } from \"./OData\";\nimport { ODATA_API_URL } from \"../constants\";\nimport { WithAuthContext, withAuthContext } from \"../contexts/authContext/withAuthContext\";\n\nexport const ODataContext = React.createContext(undefined);\n\ninterface IProps extends WithAuthContext {\n onODataLoaded: (odata: OData) => void;\n}\n\ninterface IState {\n oData: OData;\n}\n\nclass ODataProvider extends React.Component {\n state: IState = {\n oData: null\n };\n\n componentDidMount(): void {\n if (this.props.authContext.isAuthenticated) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n if (!prevProps.authContext.isAuthenticated && this.props.authContext.isAuthenticated) {\n this.init();\n } else if (prevProps.authContext.isAuthenticated && !this.props.authContext.isAuthenticated) {\n this.reset();\n }\n }\n\n init = async () => {\n await this.fetchOData();\n };\n\n reset = async () => {\n this.setState({\n oData: null\n });\n };\n\n fetchOData = async () => {\n // todo error handling (or is error boundary enough)\n const oData = await getOData(ODATA_API_URL);\n\n this.setState({\n oData\n });\n this.props.onODataLoaded(oData);\n };\n\n render = () => {\n return (\n \n {this.props.children}\n \n );\n };\n}\n\nexport default withAuthContext(ODataProvider);","import { BatchRequest, getOData, IBatchResult, OData } from \"./OData\";\nimport { logger } from \"@utils/log\";\nimport { EntityType, IType, Metadata, Property } from \"@evala/odata-metadata/src\";\nimport { ODATA_API_URL } from \"../constants\";\nimport { EntitySetName, IPropertyTranslationEntity } from \"./GeneratedEntityTypes\";\nimport i18next from \"i18next\";\nimport { asyncDebounced } from \"@utils/general\";\nimport { TRecordString } from \"../global.types\";\n\nclass PropertyTranslationCache {\n _propertyTranslations: Record;\n _pendingEntities: Record>;\n batch: BatchRequest = null;\n execute: any = null;\n\n constructor() {\n this._propertyTranslations = {};\n this._pendingEntities = {};\n }\n\n static async getTranslation(property: Property, type: EntityType): Promise {\n const cache = getCache();\n return await cache.getPropertyTranslation(i18next.language, property, type);\n }\n\n static getCachedTranslation(property: Property): string {\n const cache = getCache();\n return cache.getCachedPropertyTranslation(i18next.language, property);\n }\n\n createEntityKey(locale: string, type: IType): string {\n return `${locale};${type.getNamespace()};${type.getName()}`;\n }\n\n createEntityKeyFromResult(entity: IPropertyTranslationEntity): string {\n return `${entity.Language};${entity.Namespace};${entity.EntityType}`;\n }\n\n prepareNewBatch = (odata: OData): void => {\n this.batch = odata.batch();\n this.batch.beginAtomicityGroup(\"group1\");\n\n // new async execution has to be prepared for every batch\n // so that correct latest results are always returned\n this.execute = asyncDebounced(async (): Promise => {\n const batch = this.batch;\n\n // set batch to null, so that future requests are grouped into new batch\n this.batch = null;\n\n const res = await batch.execute();\n\n return res;\n }, 0);\n };\n\n async fetchEntityTypeTranslation(locale: string, type: IType, forType: EntityType): Promise {\n const odata = await getOData(ODATA_API_URL);\n const metadata = odata.getMetadata();\n\n const key = this.createEntityKey(locale, type);\n if (this._pendingEntities[key]) {\n await this._pendingEntities[key];\n }\n if (this._propertyTranslations[key]) {\n return this._propertyTranslations[key];\n }\n const types = this.getAllPropertyTypes(forType, metadata);\n const namespace = types[0].getNamespace(); //So far all entities in inheritance are in the same namespace\n const typeKeys = types.map(t => this.createEntityKey(locale, t));\n let fetchResolve: (value: unknown) => void;\n const fetchPromise = new Promise(function(resolve, reject) {\n fetchResolve = resolve;\n });\n\n const typesToLoad = [];\n const pendingEntities = [];\n for (let i = 0; i < types.length; i++) {\n if (this._pendingEntities[typeKeys[i]]) {\n pendingEntities.push(this._pendingEntities[typeKeys[i]]);\n } else if (!this._propertyTranslations[typeKeys[i]]) {\n this._pendingEntities[typeKeys[i]] = fetchPromise;\n typesToLoad.push({\n key: typeKeys[i],\n type: types[i]\n });\n }\n }\n\n if (typesToLoad.length > 0) {\n const entityFilter = typesToLoad.map(p => `'${p.type.getName()}'`).join(\", \");\n\n if (!this.batch) {\n this.prepareNewBatch(odata);\n }\n\n const resultIndex = this.batch.getRequests()?.length ?? 0;\n\n this.batch.getEntitySetWrapper(EntitySetName.PropertyTranslations).query().filter(`language eq '${locale}' and namespace eq '${namespace}' and entityType in (${entityFilter})`);\n\n const results = await this.execute();\n const result = results[resultIndex]?.body;\n\n result.value.forEach((tr: IPropertyTranslationEntity) => {\n const entityKey = this.createEntityKeyFromResult(tr);\n if (!this._propertyTranslations[entityKey]) {\n this._propertyTranslations[entityKey] = {};\n }\n this._propertyTranslations[entityKey][tr.Property] = tr.Translation;\n });\n\n for (const t of typesToLoad) {\n if (this._pendingEntities[t.key]) {\n delete this._pendingEntities[t.key];\n }\n }\n }\n\n if (fetchResolve) {\n fetchResolve(null);\n }\n\n if (pendingEntities.length > 0) {\n await Promise.all(pendingEntities);\n }\n\n return this._propertyTranslations[key];\n }\n\n getAllPropertyTypes(type: IType, metadata: Metadata): EntityType[] {\n const types = [];\n let currentType = metadata.entities[type.getFullName()];\n while (currentType) {\n types.push(currentType);\n currentType = currentType.getBaseType();\n }\n return types;\n }\n\n /**\n * Downloads translations for given EntityType and returns translation of given property if it exists.\n * Translations are cached for EntityType.\n * In case property translanslation dosn't exist, its name is returned instead.\n * @param locale\n * @param type\n * @param property\n * @returns {Promise<*>}\n */\n async getPropertyTranslation(locale: string, property: Property, type: EntityType): Promise {\n const entityTranslation = await this.fetchEntityTypeTranslation(locale, property.getEntityType(), type);\n\n if (!entityTranslation || !entityTranslation[property.getName()]) {\n if (!property.isKey()) {\n logger.warn(`Unable to find a translation for ${property.getEntityType().getName()}.${property.getName()} in PropertyTranslation ${locale}`);\n }\n\n return property.getName();\n }\n\n return entityTranslation[property.getName()];\n }\n\n /** Returns already cached translation without promise. Expects that the translation has been loaded previously */\n getCachedPropertyTranslation(locale: string, property: Property): string {\n const key = this.createEntityKey(locale, property.getEntityType());\n const propertyTranslations = this._propertyTranslations[key];\n\n if (!propertyTranslations) {\n logger.warn(`tried to access ${key} from translation cache, but it was not found`);\n\n return null;\n }\n\n return propertyTranslations[property.getName()];\n }\n}\n\nlet cache: PropertyTranslationCache = undefined;\n\nfunction getCache(): PropertyTranslationCache {\n if (!cache) {\n cache = new PropertyTranslationCache();\n }\n return cache;\n}\n\nexport { getCache, PropertyTranslationCache };","import { getGroupingProperties, groupAndOptimizeRanges, TemporalEntityProp, TTemporal } from \"@odata/TemporalUtils\";\nimport React, { useCallback } from \"react\";\n\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { TimeDependentFilledIcon, TimeDependentIcon } from \"../../icon\";\nimport { IconButtonStyled } from \"./SmartTemporalPropertyButton.styles\";\n\ninterface IProps {\n storage: FormStorage;\n bindingContext: BindingContext;\n customTemporalNavigationPath?: string;\n customTemporalPropertyPath?: string;\n}\n\nconst SmartTemporalPropertyButton: React.FC = ({\n storage,\n bindingContext,\n customTemporalNavigationPath,\n customTemporalPropertyPath\n }) => {\n let baseBindingContext = storage.data.bindingContext;\n\n if (bindingContext.isAnyPartCollection()) {\n const collectionBc = bindingContext.getParentCollection(storage.data.bindingContext);\n baseBindingContext = baseBindingContext.navigate(collectionBc.getPath());\n }\n\n const temporalPropertyBagBc = baseBindingContext\n .navigate(customTemporalNavigationPath ?? TemporalEntityProp.TemporalPropertyBag);\n bindingContext = temporalPropertyBagBc\n .navigate(customTemporalPropertyPath ?? bindingContext.getPath());\n\n const temporalBag = (storage.getValue(temporalPropertyBagBc) as TTemporal[])?.filter(propertyBag => propertyBag.DateValidFrom && propertyBag.DateValidTo) ?? [];\n const properties = getGroupingProperties(bindingContext, storage);\n const groupedRanges = groupAndOptimizeRanges(temporalBag, properties, true);\n const today = getUtcDayjs();\n const hasFuturePlannedValue = groupedRanges.find(range => today.isBefore(range.DateValidFrom));\n const Icon = !hasFuturePlannedValue ? TimeDependentIcon : TimeDependentFilledIcon;\n\n const handleClick = useCallback(() => {\n storage.setCustomData({\n temporalPropertyDialogBc: bindingContext\n });\n storage.refresh();\n }, [storage, bindingContext]);\n\n return (\n \n \n \n );\n};\n\nexport default SmartTemporalPropertyButton;","import { DateRangeSpecialValue } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { SimpleTimeLineStatus } from \"@components/simpleTimeline/SimpleTimeline.utils\";\nimport {\n getInfoValue,\n ifAny,\n IFieldDef,\n IGetValueArgs,\n TGetValueFn,\n TTemporalDialogSettings,\n TValidatorFn\n} from \"@components/smart/FieldInfo\";\n// keep exact path because of circular dependencies\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { TFieldDefinition, TFieldsDefinition } from \"@pages/PageUtils\";\nimport {\n areValuesEqual,\n forEachKey,\n isDefined,\n isNotDefined,\n isObjectEmpty,\n isTwoPrimitiveArraysEqual\n} from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport SmartTemporalPropertyButton from \"../components/smart/smartTemporalPropertyButton/SmartTemporalPropertyButton\";\nimport { ValidatorType } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport { DATE_MAX, getUtcDayjs } from \"../types/Date\";\nimport memoize from \"../utils/memoize\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../views/formView/FormStorage\";\nimport BindingContext, { createPath, IEntity } from \"./BindingContext\";\nimport { updateDataOnChange } from \"./Data.utils\";\nimport { PrEntityValueSourceCode } from \"./GeneratedEnums\";\nimport { getEnumSelectItems } from \"./GeneratedEnums.utils\";\n\nexport const systemProperties = [\"Id\", \"DateCreated\", \"CreatedBy\", \"DateLastModified\", \"LastModifiedBy\", \"TemporaryGuid\"];\n\nexport enum TemporalEntityProp {\n CurrentTemporalPropertyBag = \"CurrentTemporalPropertyBag\",\n TemporalPropertyBag = \"TemporalPropertyBag\",\n}\n\nexport type TTemporal> = T & {\n DateValidFrom: Date;\n DateValidTo: Date;\n // FE only flag to distinguish extracted history items in temporalPropertyDialog\n SourceCode?: PrEntityValueSourceCode;\n}\n\nexport type TTemporalLineItem> = TTemporal<{\n [TemporalEntityProp.CurrentTemporalPropertyBag]: T;\n [TemporalEntityProp.TemporalPropertyBag]: TTemporal[];\n}>\n\nexport interface ISmartTemporalPropertyDialogCustomData extends IFormStorageDefaultCustomData {\n // bc for which the current SmartTemporalPropertyDialog is opened,\n // needed for callbacks used for DateValidFrom/DateValidTo,\n // because those fields have one definition shared across all the dialogs,\n // but we need to be able to target those callback for a specific one\n openedDialogBindingContext?: BindingContext;\n}\n\n// TODO Temporal component si generic, maybe it shouldn't be connected to \"last wage\"?\nexport function lastWageDate(): Dayjs {\n return getUtcDayjs();\n}\n\nexport function groupTemporalRanges(propertyBags: TTemporal[], properties: (keyof T)[], withoutValidations = false): TTemporal>[] {\n if (propertyBags.length === 0) {\n return [];\n }\n\n const bags = [...propertyBags];\n const result: TTemporal>[] = [];\n\n bags.sort((a, b) => a.DateValidFrom.getTime() - b.DateValidFrom.getTime());\n\n if (!withoutValidations) {\n validateRanges(bags);\n }\n\n // Add sourceCode, so it is copied and also don't merge rows without different value of it\n properties = [...properties, (\"SourceCode\" as keyof T)];\n\n let bag = bags[0];\n let currentProperties = getProperties(bag, properties);\n let currentFrom = bag.DateValidFrom, currentTo = bag.DateValidTo;\n const addResult = () => {\n result.push({\n DateValidFrom: currentFrom,\n DateValidTo: currentTo,\n ...currentProperties\n });\n };\n\n for (let i = 1; i < bags.length; i++) {\n bag = bags[i];\n const props = getProperties(bag, properties);\n\n if (anyPropsChanged(properties, currentProperties, props) || !areOneDayApart(bag.DateValidFrom, bags[i - 1].DateValidTo)) {\n addResult();\n currentProperties = props;\n currentFrom = bag.DateValidFrom;\n currentTo = bag.DateValidTo;\n } else {\n currentTo = bag.DateValidTo;\n }\n }\n\n if (!isObjectEmpty(currentProperties)) {\n addResult();\n }\n\n return result;\n}\n\nexport function ungroupTemporalRanges(groupedRanges: TTemporal[], originalPropertyBags: TTemporal[], properties: string[]): TTemporal>[] {\n groupedRanges = [...groupedRanges];\n const originalPropertyBagsCopy = originalPropertyBags ? [...originalPropertyBags] : [];\n groupedRanges.sort((a, b) => a.DateValidFrom.getTime() - b.DateValidFrom.getTime());\n originalPropertyBagsCopy.sort((a, b) => a.DateValidFrom.getTime() - b.DateValidFrom.getTime());\n const bagsStack = [...originalPropertyBagsCopy];\n validateRanges(groupedRanges);\n validateRanges(originalPropertyBagsCopy);\n const result: TTemporal>[] = [];\n\n while (groupedRanges.length > 0) {\n let currentGroup = groupedRanges.shift();\n let groupFrom = getUtcDayjs(currentGroup.DateValidFrom);\n const groupTo = getUtcDayjs(currentGroup.DateValidTo);\n\n if (bagsStack?.length === 0) {\n result.push(Object.assign({}, currentGroup));\n } else {\n while (bagsStack.length > 0 && currentGroup !== null) {\n const currentBag = bagsStack.shift();\n const bagFrom = getUtcDayjs(currentBag.DateValidFrom);\n const bagTo = getUtcDayjs(currentBag.DateValidTo);\n\n if (bagTo.isBefore(groupFrom, \"day\")) {\n const obj = Object.assign({}, currentBag);\n setProperties(obj, {}, properties);\n result.push(obj);\n continue;\n }\n if (bagFrom.isSame(groupFrom, \"day\") && bagTo.isSame(groupTo, \"day\")) {\n const obj = Object.assign({}, currentBag);\n setProperties(obj, currentGroup, properties);\n result.push(obj);\n currentGroup = null;\n break;\n }\n if (bagFrom.isBefore(groupFrom, \"day\")) {\n const obj = Object.assign({}, currentBag);\n const newBag = Object.assign({}, currentBag);\n setProperties(obj, {}, properties);\n obj.DateValidTo = groupFrom.subtract(1, \"day\").toDate();\n removeSystemProperties(newBag);\n newBag.DateValidFrom = groupFrom.toDate();\n bagsStack.unshift(newBag);\n result.push(obj);\n continue;\n }\n if (groupFrom.isBefore(bagFrom, \"day\")) {\n bagsStack.unshift(currentBag);\n const obj: TTemporal = {\n DateValidFrom: groupFrom.toDate(),\n DateValidTo: bagFrom.subtract(1, \"day\").toDate()\n };\n setProperties(obj, currentGroup, properties);\n if (groupTo.isBefore(bagFrom, \"day\")) {\n obj.DateValidTo = groupTo.toDate();\n currentGroup = null;\n } else {\n groupFrom = bagFrom;\n currentGroup.DateValidFrom = groupFrom.toDate();\n }\n result.push(obj as TTemporal>);\n continue;\n }\n //Now groupFrom === bagFrom\n if (bagTo.isBefore(groupTo, \"day\")) {\n const obj = Object.assign({}, currentBag);\n setProperties(obj, currentGroup, properties);\n groupFrom = bagTo.add(1, \"day\");\n currentGroup.DateValidFrom = groupFrom.toDate();\n result.push(obj);\n continue;\n }\n if (groupTo.isBefore(bagTo)) {\n const obj = Object.assign({}, currentBag);\n const newBag = Object.assign({}, currentBag);\n removeSystemProperties(newBag);\n newBag.DateValidFrom = groupTo.add(1, \"day\").toDate();\n setProperties(obj, currentGroup, properties);\n obj.DateValidTo = groupTo.toDate();\n currentGroup = null;\n bagsStack.unshift(newBag);\n result.push(obj);\n continue;\n }\n throw new Error(\"Combination I didn't think of.\");\n }\n }\n }\n\n while (bagsStack.length > 0) {\n const currentBag = bagsStack.shift();\n const obj = Object.assign({}, currentBag);\n setProperties(obj, {}, properties);\n result.push(obj);\n }\n\n return result;\n}\n\nexport function optimizeRanges(ranges: TTemporal[]): void {\n // empty ranges are synchronized ones. We have to skip this until we are able to distinguish synchronized\n // and not synchronized ranges -> may be some explicit flag in the model??\n // removeEmptyRanges(ranges);\n mergeSameRanges(ranges);\n}\n\nexport function groupAndOptimizeRanges(propertyBags: TTemporal[], properties: (keyof T)[], withoutValidations = false): TTemporal[] {\n const result: TTemporal[] = groupTemporalRanges(propertyBags ?? [], properties, withoutValidations);\n\n optimizeRanges(result);\n return result;\n}\n\nexport function ungroupAndOptimizeRanges(groupedRanges: TTemporal[], originalPropertyBags: TTemporal[], properties: string[]): TTemporal[] {\n const result: TTemporal[] = ungroupTemporalRanges(groupedRanges, originalPropertyBags, properties);\n\n optimizeRanges(result);\n return result;\n}\n\nfunction mergeSameRanges(ranges: any[]) {\n let pos = 1;\n while (pos < ranges.length) {\n if (hasSameProperties(ranges[pos - 1], ranges[pos]) && areOneDayApart(ranges[pos - 1].DateValidTo, ranges[pos].DateValidFrom)) {\n let removePos;\n if (!Number.isInteger(ranges[pos - 1].Id)) {\n removePos = pos - 1;\n ranges[pos].DateValidFrom = ranges[removePos].DateValidFrom;\n } else {\n removePos = pos;\n ranges[pos - 1].DateValidTo = ranges[pos].DateValidTo;\n }\n ranges.splice(removePos, 1);\n } else {\n pos++;\n }\n }\n}\n\nfunction areOneDayApart(date1: Date, date2: Date) {\n return Math.abs(getUtcDayjs(date1).startOf(\"day\").diff(getUtcDayjs(date2).startOf(\"day\"), \"day\")) <= 1;\n}\n\nfunction removeEmptyRanges(ranges: any[]) {\n let pos = 0;\n while (pos < ranges.length) {\n if (isEmptyRange(ranges[pos]) && !isSynchronizedRange(ranges[pos])) {\n ranges.splice(pos, 1);\n } else {\n pos++;\n }\n }\n}\n\nexport function cleanUpTemporalValues(ranges: any[]): void {\n ranges.forEach(range => {\n // delete sourceCode, which was added to distinguish history values\n delete range.SourceCode;\n });\n}\n\nfunction hasSameProperties(range1: any, range2: any) {\n // check that the objects has same properties\n // if one has keys that the other doesn't it wouldn't be caught by the Object.keys(range1) check\n const range1Keys = Object.keys(range1).sort().filter(prop => !isSystemProperty(prop));\n const range2Keys = Object.keys(range2).sort().filter(prop => !isSystemProperty(prop));\n\n if (!isTwoPrimitiveArraysEqual(range1Keys, range2Keys)) {\n return false;\n }\n\n for (const property of Object.keys(range1)) {\n if (!isPropertySame(range1, range2, property)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isPropertySame(range1: any, range2: any, property: string) {\n if (isSystemProperty(property)) {\n return true;\n }\n\n const val1 = range1[property];\n const val2 = range2[property];\n\n return areValuesEqual(val1, val2);\n}\n\nfunction isEmptyRange(range: any): boolean {\n for (const property of Object.keys(range)) {\n if (!isPropertyEmpty(range, property)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isSynchronizedRange(range: TTemporal) {\n return (range.SourceCode && range.SourceCode !== PrEntityValueSourceCode.Entity);\n}\n\nfunction isPropertyEmpty(range: any, property: string) {\n return isSystemProperty(property) || isNotDefined(range[property]) ||\n (typeof range[property] === \"object\" && isObjectEmpty(range[property]));\n}\n\nfunction isSystemProperty(property: string) {\n return systemProperties.includes(property) || property === \"DateValidFrom\" || property === \"DateValidTo\";\n}\n\nfunction removeSystemProperties(obj: IEntity) {\n for (const p of systemProperties) {\n delete obj[p];\n }\n}\n\nfunction setProperties(obj: any, from: any, properties: string[]) {\n for (const p of properties) {\n if (!isSystemProperty(p)) {\n if (from[p] !== undefined) {\n obj[p] = from[p];\n } else {\n delete obj[p];\n }\n }\n\n }\n}\n\nexport function validateRanges(groupedRanges: TTemporal[]): void {\n for (const group of groupedRanges) {\n if (getUtcDayjs(group.DateValidFrom).isAfter(group.DateValidTo, \"day\")) {\n throw new Error(\"From must be less then to.\");\n }\n }\n for (let pos = 1; pos < groupedRanges.length; pos++) {\n if (getUtcDayjs(groupedRanges[pos - 1].DateValidTo).isSameOrAfter(groupedRanges[pos].DateValidFrom, \"day\")) {\n throw new Error(\"Intervals cannot overlap.\");\n }\n }\n}\n\n\nfunction anyPropsChanged(properties: (keyof T)[], bag1: Partial, bag2: Partial): boolean {\n for (const p of properties) {\n if (!isPropertySame(bag1, bag2, p.toString())) {\n return true;\n }\n }\n return false;\n}\n\nfunction getProperties(bag: TTemporal, properties: (keyof T)[]): Partial {\n const result: Partial = {};\n for (const p of properties) {\n if (bag[p] !== undefined) {\n result[p] = bag[p];\n }\n }\n return result;\n}\n\nexport const getGroupingProperties = memoize((bindingContext: BindingContext, storage: FormStorage) => {\n const properties = new Set();\n const codeProperty = bindingContext.isEnum() ? bindingContext.getProperty()?.getReferentialConstraint()?.property : null;\n\n properties.add(bindingContext.getPath());\n\n // for enums, add code property so that we have both the navigation object and code string correctly updated when grouping/ungrouping\n if (codeProperty) {\n properties.add(codeProperty);\n }\n\n // multiple fields can be grouped into one temporal multi property\n const dialogSettingsColumns = storage.getInfo(bindingContext)?.fieldSettings?.temporalDialog?.columns;\n\n if (dialogSettingsColumns) {\n for (const column of dialogSettingsColumns) {\n properties.add(column);\n\n const colBc = bindingContext.getParent().navigate(column);\n\n // add Code property for enum navigations\n if (colBc.isEnum()) {\n const codeProperty = colBc.getProperty()?.getReferentialConstraint()?.property;\n\n properties.add(codeProperty);\n }\n }\n }\n\n return Array.from(properties);\n}, (bc: BindingContext) => {\n return bc.getFullPath();\n});\n\nexport const setTemporalRangeNewValue = (storage: FormStorage, e: ISmartFieldChange, range: TTemporal): TTemporal => {\n const bc = e.bindingContext;\n let updatedRange = { ...range };\n\n if (bc.isEnum()) {\n updatedRange[bc.getPath()] = e.additionalData;\n updatedRange[bc.getProperty().getReferentialConstraint().property] = e.value;\n } else {\n updatedRange = updateDataOnChange({\n storage,\n dataBindingContext: bc.getParent(),\n bindingContext: bc,\n data: range,\n newValue: e.value,\n preventCloning: true\n });\n }\n\n return updatedRange;\n};\n\nexport const getTemporalPropertyExtraFieldContentAfter = (customTemporalNavigationPath?: string, customTemporalPropertyPath?: string): TGetValueFn => {\n return (args: IGetValueArgs) => (\n \n );\n};\n\nexport const getTimelineStatus = (temporalItem: TTemporal): SimpleTimeLineStatus => {\n const _lastWage = lastWageDate();\n return _lastWage.isBetween(temporalItem.DateValidFrom, temporalItem.DateValidTo, \"day\", \"[]\") ? SimpleTimeLineStatus.Current\n : _lastWage.isAfter(temporalItem.DateValidTo) ? SimpleTimeLineStatus.History : SimpleTimeLineStatus.Future;\n\n};\n\nconst getTemporalItemTimeLineStatus = (storage: FormStorage, bindingContext: BindingContext, dataStore = storage.data.origEntity) => {\n // saved items that are in the past should no longer be editable\n const key = bindingContext.getKey();\n\n if (isNotDefined(key)) {\n return null;\n }\n\n const item = storage.getValue(bindingContext, { dataStore: dataStore });\n\n if (!item) {\n return null;\n }\n\n return getTimelineStatus(item);\n};\n\nexport const checkTemporalItemTimeLineStatus = (storage: FormStorage, bindingContext: BindingContext, status: SimpleTimeLineStatus[], dataStore?: TRecordAny): boolean => {\n return status.includes(getTemporalItemTimeLineStatus(storage, bindingContext, dataStore));\n};\n\nconst isEditableRangeDateField = (row: TTemporal, bindingContext: BindingContext) => {\n const path = bindingContext.getPath();\n if (path === \"DateValidTo\") {\n // todo: distinguish somehow last row of the expanded history,\n // where we want to keep the DateValidTo editable\n const isLastExpandedHistoryRange = true;\n // todo: check the original value, not the current one... Or make it editable if dirty\n const isEditableDate = getUtcDayjs(row.DateValidTo).isAfter(lastWageDate());\n return isLastExpandedHistoryRange && isEditableDate;\n }\n return false;\n};\n\nexport const isTemporalFieldReadOnly: TGetValueFn = (args: IGetValueArgs) => {\n const itemBc = args.bindingContext.getParent();\n\n const row = args.storage.getValue(itemBc);\n if (row?.SourceCode && row.SourceCode !== PrEntityValueSourceCode.Entity) {\n return !isEditableRangeDateField(row, args.bindingContext);\n }\n\n return false; // todo: checkTemporalItemTimeLineStatus(args.storage as FormStorage, itemBc, [SimpleTimeLineStatus.History]);\n};\n\nexport const isTemporalLineItemRemovable: TGetValueFn = (args: IGetValueArgs) => {\n return !checkTemporalItemTimeLineStatus(args.storage as FormStorage, args.bindingContext, [SimpleTimeLineStatus.History, SimpleTimeLineStatus.Current]);\n};\n\nconst dateValidFromValidator: TValidatorFn = (value: TValue, args: IGetValueArgs) => {\n const item = args.storage.getValue(args.bindingContext.getParent());\n const items = args.storage.getValue(args.bindingContext.getParent().removeKey()) as TTemporal[];\n const itemIndex = items.findIndex(i => i === item);\n const previousItem = items[itemIndex - 1];\n\n if (!previousItem) {\n return true;\n }\n\n if (previousItem.DateValidTo && item.DateValidFrom && getUtcDayjs(item.DateValidFrom).isSameOrBefore(previousItem.DateValidTo, \"date\")) {\n return new ValidationError(args.storage.t(\"Components:TemporalProperty.ValidationDateFromAfterPreviousDateTo\"), false, args.bindingContext.getPath(true));\n }\n\n return true;\n};\n\nconst dateValidToValidator: TValidatorFn = (value: TValue, args: IGetValueArgs) => {\n const itemBc = args.bindingContext.getParent();\n const item = args.storage.getValue(itemBc) as TTemporal;\n\n // compare dates in the current item\n if (item.DateValidFrom && item.DateValidTo && getUtcDayjs(item.DateValidFrom).isSameOrAfter(item.DateValidTo, \"date\")) {\n return new ValidationError(args.storage.t(\"Components:TemporalProperty.ValidationDateFromBeforeDateTo\"), false, args.bindingContext.getPath(true));\n }\n\n return true;\n};\n\nexport const TemporalValidityFieldsDef: TFieldsDefinition = {\n \"TemporalPropertyBag/DateValidFrom\": {\n useForValidation: true,\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutStart\n },\n isReadOnly: isTemporalFieldReadOnly,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: dateValidFromValidator\n }\n }\n },\n \"TemporalPropertyBag/DateValidTo\": {\n useForValidation: true,\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n },\n isReadOnly: isTemporalFieldReadOnly,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: dateValidToValidator\n }\n }\n }\n};\n\nexport const getGranularity = (dialogSettings: TTemporalDialogSettings): TTemporalDialogSettings[\"granularity\"] => {\n return dialogSettings?.granularity ?? \"month\";\n};\n\nexport function getTemporalAdditionalProperties(tempEntity: T, entity: E): IFieldDef[] {\n // we always have to load all TemporalProperties for the range (un)grouping to work properly\n // and so that we are able to show correct (un)filled icon next to temporary property fields\n return Object.keys(tempEntity)\n .filter(key => !systemProperties.includes(key))\n .map(key => ({ id: `${entity.TemporalPropertyBag}/${key}`, useForValidation: true }));\n}\n\n// return start of current month,\n// or start of next month after the latest item\nexport const getDefaultTemporalDateValidFrom = (dialogSettings: TTemporalDialogSettings, items?: TTemporal[]): Date => {\n if (dialogSettings?.customDateValidFrom) {\n return dialogSettings.customDateValidFrom(items);\n }\n\n const granularity = getGranularity(dialogSettings);\n const startOfCurrentGranularity = getUtcDayjs().startOf(granularity);\n\n if (!items || items.length === 0) {\n return startOfCurrentGranularity.toDate();\n }\n\n const previousItemDateValidFrom = getUtcDayjs(items[items.length - 2].DateValidFrom);\n const diff = previousItemDateValidFrom.startOf(\"day\").diff(startOfCurrentGranularity, \"day\");\n\n if (diff >= -1) {\n return previousItemDateValidFrom.startOf(granularity).add(diff <= 0 && granularity === \"day\" ? 2 : 1, granularity).toDate();\n }\n\n return startOfCurrentGranularity.toDate();\n};\n\nexport const getDefaultTemporalDateValidTo = (dialogSettings: TTemporalDialogSettings, items?: TTemporal[]): Date => {\n return DATE_MAX;\n};\n\nexport const getCurrentRangeIndex = (ranges: TTemporal[], date?: Date): number => {\n const today = getUtcDayjs(date);\n\n return ranges.findIndex(range => today.isSameOrAfter(range.DateValidFrom, \"date\") && today.isSameOrBefore(range.DateValidTo, \"date\"));\n};\n\nexport const updateTemporalRangesAfterCurrentTempPropChange = (e: ISmartFieldChange, storage: FormStorage, temporalBagProperty: string = TemporalEntityProp.TemporalPropertyBag): void => {\n const properties = getGroupingProperties(e.bindingContext, storage);\n const temporalBag = storage.getValueByPath(temporalBagProperty) as TTemporal[] ?? [];\n const groupedRanges = groupAndOptimizeRanges(temporalBag, properties);\n const today = getUtcDayjs();\n const dialogSettings = storage.getInfo(e.bindingContext)?.fieldSettings?.temporalDialog;\n const fromDate = getUtcDayjs(getDefaultTemporalDateValidFrom(dialogSettings));\n let toDate = getDefaultTemporalDateValidTo(dialogSettings);\n let currentRangeIndex: number;\n let currentRange: typeof groupedRanges[number];\n\n if (groupedRanges.length !== 0) {\n currentRangeIndex = getCurrentRangeIndex(groupedRanges);\n currentRange = groupedRanges[currentRangeIndex];\n\n if (currentRange) {\n if (fromDate.isSame(currentRange.DateValidFrom, \"day\")) {\n // same range, just change value and don't create new one\n toDate = null;\n currentRange = setTemporalRangeNewValue(storage, e, currentRange);\n } else {\n // split the range and create a new one\n currentRange.DateValidTo = fromDate.subtract(1, \"day\").toDate();\n }\n }\n\n const nextRangeIndex = groupedRanges.findIndex(range => today.isBefore(range.DateValidFrom));\n const nextRange = groupedRanges[nextRangeIndex];\n\n if (nextRange && toDate) {\n toDate = getUtcDayjs(nextRange.DateValidFrom).subtract(1, \"day\").toDate();\n\n // if next range starts tomorrow, move it by day\n if (fromDate.isSame(toDate, \"day\")) {\n toDate = nextRange.DateValidFrom;\n groupedRanges[nextRangeIndex] = {\n ...nextRange,\n DateValidFrom: fromDate.add(2, \"day\").toDate()\n };\n }\n }\n }\n\n if (toDate) {\n const newRange = setTemporalRangeNewValue(storage, e, {\n ...(currentRange ?? {}),\n DateValidFrom: fromDate.toDate(),\n DateValidTo: toDate\n });\n groupedRanges.push(newRange);\n }\n\n if (isDefined(currentRangeIndex)) {\n groupedRanges[currentRangeIndex] = currentRange;\n }\n\n const ungroupedRanges = ungroupTemporalRanges(groupedRanges, temporalBag, properties);\n storage.setValueByPath(temporalBagProperty, ungroupedRanges);\n};\n\nexport const handleCurrentTemporalPropChange = (e: ISmartFieldChange, storage: FormStorage, temporalBagProperty: string = TemporalEntityProp.TemporalPropertyBag): void => {\n if (e.bindingContext.getParent().getPath() !== \"CurrentTemporalPropertyBag\") {\n return;\n }\n\n updateTemporalRangesAfterCurrentTempPropChange(e, storage, temporalBagProperty);\n};\n\n// has to be called for required select values that has default value\n// in CurrentTemporalPropertyBag, this value has to be propagated to TemporalPropertyBag\nexport const setTemporalRequiredSelectDefaultPropertyBagValue = (bindingContext: BindingContext, storage: FormStorage): void => {\n const value = storage.getValue(bindingContext)?.Code;\n const additionalData = getEnumSelectItems(bindingContext.getEntityType().getName()).find(item => item.id === value).additionalData;\n\n handleCurrentTemporalPropChange({\n bindingContext,\n additionalData,\n value: value\n }, storage);\n};\n\nexport const setTemporalDefaultValueByPath = (storage: FormStorage, path: string): void => {\n const bindingContext = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bindingContext);\n const defVal = getInfoValue(info, \"defaultValue\", {\n data: storage.data.entity,\n storage,\n info,\n bindingContext,\n context: storage.context\n });\n\n handleCurrentTemporalPropChange({\n bindingContext,\n value: defVal\n }, storage);\n};\n\nexport const EntityValueSourcePropNameSuffix = \"SourceCode\";\n\nexport function isFieldSynchronized({ storage, bindingContext }: IGetValueArgs): boolean {\n const propPath = bindingContext.getPath();\n const enumBc = bindingContext.getParent().navigate(`${propPath}${EntityValueSourcePropNameSuffix}`);\n const sourceCode = storage.getValue(enumBc) as PrEntityValueSourceCode;\n return isDefined(sourceCode) && sourceCode !== PrEntityValueSourceCode.Entity;\n}\n\ninterface IGetTemporalPropertyFieldDefinitionArgs {\n propName: string;\n // definition that will be applied to both TemporalPropertyBag and CurrentTemporalPropertyBag\n definition?: TFieldDefinition;\n // definition that will be applied only to the CurrentTemporalPropertyBag field shown in form\n currentDefinition?: TFieldDefinition;\n withOpeningButton?: boolean;\n isSynchronized?: boolean;\n}\n\ninterface IGetTemporalPropertyLineItemFieldDefinitionArgs extends IGetTemporalPropertyFieldDefinitionArgs {\n collectionName: string;\n}\n\nexport function getTemporalPropertyLineItemFieldDefinition(args: IGetTemporalPropertyLineItemFieldDefinitionArgs): TFieldsDefinition {\n const def: TFieldDefinition = args.definition ?? {};\n const currentDef: TFieldDefinition = {\n ...(args.definition ?? {}),\n ...(args.currentDefinition ?? {}),\n extraFieldContentAfter: args.withOpeningButton === true ? getTemporalPropertyExtraFieldContentAfter() : null\n };\n\n const currentPropertyBagPath = createPath(args.collectionName, TemporalEntityProp.CurrentTemporalPropertyBag, args.propName);\n\n const additionalProperties = currentDef.additionalProperties ?? [];\n const fieldSettings: IFieldDef[\"fieldSettings\"] = {\n ...(currentDef.fieldSettings ?? {})\n };\n\n if (args.isSynchronized) {\n additionalProperties.push({ id: `/${currentPropertyBagPath}${EntityValueSourcePropNameSuffix}` });\n fieldSettings.isSynchronized = isFieldSynchronized;\n }\n\n const tmpFieldsDef: TFieldsDefinition = {};\n forEachKey(TemporalValidityFieldsDef, (key) => {\n const collectionKey = createPath(args.collectionName, key);\n tmpFieldsDef[collectionKey] = TemporalValidityFieldsDef[key];\n });\n\n return {\n [createPath(args.collectionName, TemporalEntityProp.TemporalPropertyBag, args.propName)]: {\n ...def,\n isReadOnly: def.isReadOnly ? ifAny(def.isReadOnly, isTemporalFieldReadOnly) : isTemporalFieldReadOnly\n },\n [currentPropertyBagPath]: {\n ...currentDef,\n fieldSettings,\n additionalProperties\n },\n ...tmpFieldsDef\n };\n}\n\nexport function getTemporalPropertyFieldDefinition(args: IGetTemporalPropertyFieldDefinitionArgs): TFieldsDefinition {\n const currentDefinition = {\n ...(args.currentDefinition ?? {})\n };\n\n return getTemporalPropertyLineItemFieldDefinition({\n ...args,\n collectionName: null,\n currentDefinition,\n withOpeningButton: args.withOpeningButton !== false\n });\n}\n\nfunction getRangeWithDefault(temporalSettings: TTemporalDialogSettings, range: TTemporal): TTemporal {\n let { DateValidFrom, DateValidTo } = range ?? {};\n\n if (!DateValidFrom) {\n DateValidFrom = getDefaultTemporalDateValidFrom(temporalSettings);\n }\n if (!DateValidTo) {\n DateValidTo = getDefaultTemporalDateValidTo(temporalSettings);\n }\n return { DateValidFrom, DateValidTo };\n}\n\nexport function createNewTemporalLineItem(temporalSettings: TTemporalDialogSettings, values: T, range?: TTemporal): T {\n const { DateValidFrom, DateValidTo } = getRangeWithDefault(temporalSettings, range);\n\n return {\n ...values,\n DateValidFrom, DateValidTo,\n TemporalPropertyBag: [{\n ...range,\n DateValidFrom, DateValidTo\n }]\n } as T;\n}\n\n/**\n * Enhances new line item entity with temporal settings, changes the entity given in params.\n * @param temporalSettings\n * @param item\n * @param range\n */\nexport function enhanceNewTemporalLineItem(temporalSettings: TTemporalDialogSettings, item: T, range?: TTemporal): void {\n const { DateValidFrom, DateValidTo } = getRangeWithDefault(temporalSettings, range);\n\n item.DateValidFrom = DateValidFrom;\n item.DateValidTo = DateValidTo;\n item.TemporalPropertyBag = [{\n ...item[TemporalEntityProp.CurrentTemporalPropertyBag],\n DateValidFrom, DateValidTo\n }];\n}\n\nexport function handleTemporalLineItemsActions(storage: FormStorage, args: ISmartFastEntriesActionEvent): void {\n\n const _defaultBehavior = () => {\n storage.handleLineItemsAction(args);\n storage.refresh();\n };\n\n switch (args.actionType) {\n case ActionType.Add:\n // new item has to be enhanced with temporal property bag and other props\n const { definition } = storage.data;\n const groupId = args.bindingContext.getPath(true);\n const groupDef = definition.groups.find(item => item.id === groupId);\n const [item] = args.affectedItems;\n enhanceNewTemporalLineItem(groupDef.lineItems.temporalDialog, item);\n\n _defaultBehavior();\n break;\n\n case ActionType.Remove:\n // todo: if line item is not fully editable, just set the DateValidTo to last editable date\n _defaultBehavior();\n break;\n\n case ActionType.Custom:\n case ActionType.Clone:\n // clone actions are not defined for temporal line items, customAction should be handled in caller\n throw new Error(`ActionType '${args.actionType}' not handled in common method`);\n\n default:\n _defaultBehavior();\n }\n}\n\nexport function replaceSyncedValueWithHistoryValues>>(value: T, historyData: T[], sourceCode: PrEntityValueSourceCode = PrEntityValueSourceCode.Default): T[] {\n if (!isEmptyRange(value) && !isSynchronizedRange(value as TTemporal)) {\n return [value];\n }\n const newRanges: T[] = [];\n\n const fromDayjs = getUtcDayjs(value.DateValidFrom);\n const toDayjs = getUtcDayjs(value.DateValidTo);\n\n historyData.forEach((range, idx) => {\n // if value range overlaps with history data (at least partly)\n if (fromDayjs.isBefore(range.DateValidTo) && toDayjs.isAfter(range.DateValidFrom)) {\n newRanges.push({\n ...range,\n DateValidFrom: fromDayjs.isBefore(range.DateValidFrom) ? range.DateValidFrom : value.DateValidFrom,\n DateValidTo: toDayjs.isAfter(range.DateValidTo) ? range.DateValidTo : value.DateValidTo,\n // range might be already expanded from TemplateDefault, so keep the original source\n SourceCode: range.SourceCode ?? sourceCode\n });\n }\n });\n\n return newRanges;\n}\n\nexport function cleanupHistoryValues>>(temporalPropertyBag: T[]): T[] {\n return temporalPropertyBag.map(item => {\n if (item.SourceCode) {\n // if this is synced row from another entity, we clear all the values and use just the range\n return {\n DateValidFrom: item.DateValidFrom,\n DateValidTo: item.DateValidTo\n } as T;\n }\n return item;\n });\n}\n","import { OData } from \"./OData\";\nimport React from \"react\";\nimport { ODataContext } from \"./ODataProvider\";\n\nexport interface WithOData {\n oData: OData;\n}\n\n// TODO try to improve TS on the 'with' providers, 'as any' still has to be used\n// https://medium.com/@martin_hotell/react-refs-with-typescript-a32d56c4d315\nexport const withOData =

    (Component: React.ComponentType

    ): React.ComponentType> => {\n return React.forwardRef((props: Omit, ref) => (\n \n {(context) => {\n // only render component when oData are ready?\n // if (!context) {\n // return null;\n // }\n\n return (\n \n );\n }}\n \n )) as unknown as React.ComponentType>;\n};","import React from \"react\";\nimport { AppContext, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { RequireKeys } from \"../global.types\";\nimport { IDefinition } from \"./PageUtils\";\nimport { IFormDef } from \"../views/formView/Form\";\nimport { getEntitySetFromDefinition } from \"../views/formView/Form.utils\";\nimport memoizeOne from \"../utils/memoizeOne\";\nimport BindingContext, { createBindingContext } from \"../odata/BindingContext\";\nimport { getDefByEntityType } from \"./getDefByEntityType\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\nimport { ISplitPagePaneData } from \"./DialogPage\";\nimport { StorageModel } from \"../model/StorageModel\";\nimport { PageViewMode } from \"../enums\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\n\nexport interface IDialogPageBaseProps {\n getDef: (context?: IAppContext) => any;\n rootStorage?: StorageModel;\n customFooterButtons?: React.ReactElement;\n pageViewMode?: PageViewMode;\n onAfterSave?: (bc: BindingContext) => void;\n}\n\nexport default abstract class DialogPageBase

    extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps: RequireKeys, \"getDef\">;\n\n protected definition: IDefinition;\n protected currentEntityType: string;\n\n\n protected masterData: ISplitPagePaneData = {};\n protected detailData: ISplitPagePaneData = {};\n\n constructor(props: P, context: IAppContext) {\n super(props, context);\n\n this.definition = this.props.getDef(context);\n this.masterData.def = this.definition.table;\n\n this.bindEvents();\n }\n\n\n bindEvents = () => {\n this.handleRowSelect = this.handleRowSelect.bind(this);\n this.handleCloseDetail = this.handleCloseDetail.bind(this);\n this.handleAfterSave = this.handleAfterSave.bind(this);\n };\n\n getEntitySet() {\n return getEntitySetFromDefinition(this.definition, this.context);\n }\n\n getTableViewContext = memoizeOne(() => {\n return createBindingContext(this.getEntitySet(), this.props.rootStorage.oData.getMetadata());\n }, () => [this.getEntitySet()]\n );\n\n getChildCollectionForEditableParent = (): string => {\n return undefined;\n };\n\n setFormDefFromEntityType = async (bc: BindingContext): Promise => {\n if (bc) {\n const bcs = bc.getFullPathAsArrayOfContexts();\n if (bcs?.length > 0) {\n const entityType: string = bcs[bcs.length - 1].getEntityType().getName();\n if (entityType !== this.currentEntityType) {\n this.currentEntityType = entityType;\n const definition = getDefByEntityType(entityType as EntityTypeName);\n await i18next.loadNamespaces(definition.translationFiles);\n this.detailData.def = definition(this.context).form;\n return true;\n }\n }\n }\n\n return false;\n };\n\n getMandatoryChildParentProps = () => {\n return {};\n };\n\n handleRowSelect(bc: BindingContext): void {\n this.setFormDefFromEntityType(bc)\n .then(() => {\n // keep it here, so bc always corresponds with definition\n this.detailData.bc = bc;\n this.forceUpdate();\n });\n }\n\n handleCloseDetail(): void {\n this.detailData.bc = null;\n this.forceUpdate();\n }\n\n handleAfterSave(bc: BindingContext): void {\n this.detailData.bc = bc;\n this.props.onAfterSave?.(bc);\n this.forceUpdate();\n }\n\n abstract getMandatoryProps(): T & { key: string };\n\n abstract render(): React.ReactElement;\n}","import React from \"react\";\nimport { ITableViewBaseProps } from \"../views/table/TableView\";\nimport { IFormDef, IProps as IFormProps } from \"../views/formView/Form\";\nimport BindingContext from \"../odata/BindingContext\";\nimport { IProps as ISplitPageProps, SplitPage } from \"./SplitPage\";\nimport { EmptyObject } from \"../global.types\";\nimport DialogPageBase, { IDialogPageBaseProps } from \"./DialogPageBase\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\n\nexport interface IProps extends IDialogPageBaseProps {\n tableView?: React.ComponentType;\n tableViewProps?: any;\n formProps?: Partial;\n}\n\nexport interface ISplitPagePaneData {\n bc?: BindingContext;\n def?: Type;\n entitySet?: string;\n}\n\nexport default class DialogPage

    extends DialogPageBase {\n\n getMandatoryProps(): ISplitPageProps & { key: string } {\n const isEditable = this.detailData?.bc?.isNew();\n this.masterData.entitySet = this.getEntitySet();\n\n return {\n key: this.context.getCompany().Id,\n // need to duplicate wrapper object for correct prevProps in splitpage\n masterData: { ...this.masterData },\n detailData: { ...this.detailData },\n t: this.props.rootStorage.t,\n tableView: this.props.tableView,\n rootStorage: this.props.rootStorage,\n pageViewMode: isEditable ? undefined : this.props.pageViewMode,\n formProps: {\n customFooterButtons: isEditable ? undefined : this.props.customFooterButtons,\n hideBreadcrumbs: true,\n shouldHideAuditTrail: true,\n isSimple: true,\n ...this.props.formProps,\n },\n tableViewProps: this.props.tableViewProps,\n isInDialog: true,\n\n ...this.getMandatoryChildParentProps(),\n\n onRowSelect: this.handleRowSelect,\n onCloseDetail: this.handleCloseDetail,\n onAfterSave: this.handleAfterSave\n };\n }\n\n render() {\n const props = this.getMandatoryProps();\n\n return (\n \n );\n }\n}\n","import { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { WithOData } from \"@odata/withOData\";\nimport { isDefined } from \"@utils/general\";\nimport React, { ReactElement } from \"react\";\nimport { WithTranslation } from \"react-i18next\";\nimport { RouteComponentProps } from \"react-router-dom\";\n\nimport { NEW_ITEM_DETAIL } from \"../constants\";\nimport { AppContext, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { QueryParam } from \"../enums\";\nimport { RequireKeys, TRecordAny, TRecordString } from \"../global.types\";\nimport BindingContext, { areBindingContextsDifferent, createBindingContext, TEntityKey } from \"../odata/BindingContext\";\nimport { getCorrectPath } from \"../routes\";\nimport { getQueryParameters } from \"../routes/Routes.utils\";\nimport memoizeOne from \"../utils/memoizeOne\";\nimport { IFormDef } from \"../views/formView/Form\";\nimport { getEntitySetFromDefinition } from \"../views/formView/Form.utils\";\nimport { ITableViewBaseProps } from \"../views/table/TableView\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\nimport { getDefByEntityType } from \"./getDefByEntityType\";\nimport { DRAFT_BC_PREFIX, getUniqBcSuffix, IDefinition, IPageProps } from \"./PageUtils\";\nimport { IReportTableDefinition } from \"./reports/Report.utils\";\nimport { SplitPage } from \"./SplitPage\";\n\nexport interface IPageParams {\n ParentId?: string;\n Id?: string;\n}\n\nexport interface IProps extends IPageProps, WithOData, WithTranslation, RouteComponentProps {\n getDef: (context?: IAppContext) => IDefinition;\n tableView?: React.ComponentType;\n hasPreview?: boolean;\n // indicates whether show prompt dialog when user wants to leave form without saving changes\n usePrompt?: boolean;\n auditTrailView?: ReactElement;\n dontUseUrlParams?: boolean;\n parentId?: TEntityKey;\n}\n\nexport interface ISplitPagePaneData {\n bc?: BindingContext;\n draftId?: string;\n def?: Type;\n entitySet?: string;\n customData?: TRecordAny;\n}\n\nexport interface IPageState {\n parentId?: TEntityKey;\n childId?: TEntityKey;\n}\n\nexport default class Page

    extends React.Component {\n static contextType = AppContext;\n static defaultProps: RequireKeys, \"getDef\">;\n\n protected definition: IDefinition;\n protected currentEntityType: string;\n\n protected uuid = \"\";\n\n protected masterData: ISplitPagePaneData = {};\n protected detailData: ISplitPagePaneData = {};\n\n constructor(props: P, context: IAppContext) {\n super(props);\n\n this.state = {\n ...this.state,\n parentId: props.parentId ?? null,\n childId: null\n };\n this.bindEvents();\n\n // currently, we always redirect to ROUTE_HOME on company change\n // and this.companyChange handler only causes problems with CompanyId param and browser history.\n // Uncomment and rewrite only if someone decides NOT to redirect to Home on company change again.\n // context.eventEmitter.on(ContextEvents.CompanyChanged, this.companyChange);\n }\n\n\n companyChange(id: number): void {\n // we don't want to leave new form when company is changed\n // or when its change to null (AppMode.OrganizationSettings)\n if (this.getKey() === NEW_ITEM_DETAIL || !id) {\n return;\n }\n\n this.context.setViewBreadcrumbs({\n items: this.context.getViewBreadcrumbs().items.slice(0, -1),\n lockable: false\n });\n\n this.detailData.bc = null;\n this.setUrl(null, null);\n }\n\n componentWillUnmount(): void {\n // this.context.eventEmitter.off(ContextEvents.CompanyChanged, this.companyChange);\n }\n\n\n bindEvents = (): void => {\n this.isReady = this.isReady.bind(this);\n this.handleRowSelect = this.handleRowSelect.bind(this);\n this.handleCloseDetail = this.handleCloseDetail.bind(this);\n this.handleAddDetail = this.handleAddDetail.bind(this);\n this.handleAfterSave = this.handleAfterSave.bind(this);\n this.companyChange = this.companyChange.bind(this);\n this.onAfterFormDefLoad = this.onAfterFormDefLoad.bind(this);\n };\n\n componentDidMount(): void {\n this.parseUrl();\n }\n\n componentDidUpdate(prevProps: Readonly

    , prevState: Readonly>): void {\n this.parseUrl();\n }\n\n parseUrl = (): void => {\n if (this.props.auditTrailView) {\n return;\n }\n let shouldUpdate = false;\n if (!this.props.tReady) {\n return;\n }\n\n // first time load once translation is ready\n if (!this.definition) {\n this.definition = this.props.getDef(this.context);\n this.masterData.def = this.definition.table;\n shouldUpdate = true;\n }\n\n const newBc = this.getBindingContextFromUrl();\n const isNewEntityType = this.setFormDefFromEntityType(newBc);\n\n // for changed entity type or new bc (typically row select) - call update\n if (isNewEntityType || areBindingContextsDifferent(newBc, this.detailData.bc)) {\n shouldUpdate = true;\n isNewEntityType && this.onAfterFormDefLoad();\n }\n\n this.detailData.bc = newBc;\n this.detailData.draftId = getQueryParameters()[QueryParam.DraftId];\n shouldUpdate && this.forceUpdate();\n };\n\n onAfterFormDefLoad(): void {\n /* Prepared for redefinition */\n }\n\n getParentKey = (): string => {\n if (this.props.dontUseUrlParams) {\n return this.state.parentId?.toString();\n }\n return this.props.match.params?.ParentId;\n };\n\n getKey = (): string => {\n if (this.props.dontUseUrlParams) {\n return this.state.childId?.toString();\n }\n return this.props.match.params.Id;\n };\n\n getEntitySet(): string {\n return getEntitySetFromDefinition(this.definition, this.context, this.getParentKey());\n }\n\n getTableViewContext = (): BindingContext => {\n return this.getTableViewContextMemoized(this.getEntitySet());\n };\n\n getTableViewContextMemoized = memoizeOne((entitySet: string) => {\n return createBindingContext(entitySet, this.props.oData.getMetadata());\n });\n\n getNewFormBindingContext = memoizeOne((parentId: string, childCollection?: string) => {\n if (parentId && childCollection) {\n return this.getTableViewContext().addKey(parentId).navigate(childCollection).addKey(NEW_ITEM_DETAIL, true);\n }\n const draftId = getQueryParameters()[QueryParam.DraftId];\n const draftKey = `${DRAFT_BC_PREFIX}${draftId}`;\n let newKey = draftId ? draftKey : NEW_ITEM_DETAIL;\n const { bc } = this.detailData;\n if (bc?.isNew() && bc?.getKey() !== draftKey) {\n newKey = `${newKey}${getUniqBcSuffix()}`;\n }\n return this.getTableViewContext().addKey(newKey, true);\n }, () => {\n const params = getQueryParameters();\n return [params[QueryParam.DraftId], params[QueryParam.Type]];\n });\n\n getChildCollectionForEditableParent = (): string => {\n return undefined;\n };\n\n getBindingContextFromUrl = (): BindingContext => {\n let ParentId: string;\n let Id: string;\n if (this.props.dontUseUrlParams) {\n ParentId = this.state.parentId?.toString();\n Id = this.state.childId?.toString();\n } else {\n ParentId = this.props.match.params?.ParentId;\n Id = this.props.match.params?.Id;\n }\n\n const entitySet = this.getEntitySet();\n const childCollection = this.getChildCollectionForEditableParent();\n\n if (isDefined(Id)) {\n if (Id === NEW_ITEM_DETAIL) {\n return this.getNewFormBindingContext(this.getParentKey(), childCollection);\n } else {\n if (isDefined(ParentId) && !!childCollection) {\n return createBindingContext(`${entitySet}(${ParentId})/${childCollection}(${Id})`, this.props.oData.getMetadata());\n }\n return createBindingContext(`${entitySet}(${Id})`, this.props.oData.getMetadata());\n }\n } else {\n if (isDefined(ParentId) && !!childCollection) {\n if (ParentId === NEW_ITEM_DETAIL) {\n return this.getNewFormBindingContext(null, childCollection);\n }\n\n return createBindingContext(`${entitySet}(${ParentId})`, this.props.oData.getMetadata());\n }\n }\n\n return null;\n };\n\n setFormDefFromEntityType = (bc: BindingContext): boolean => {\n if (bc) {\n const bcs = bc.getFullPathAsArrayOfContexts();\n if (bcs?.length > 0) {\n const entityType: string = bcs[bcs.length - 1].getEntityType().getName();\n if (entityType !== this.currentEntityType) {\n this.currentEntityType = entityType;\n const defByEntityType = getDefByEntityType(entityType as EntityTypeName);\n const unwrappedDefinition = defByEntityType(this.context);\n this.detailData.def = unwrappedDefinition.form;\n return true;\n }\n }\n }\n return false;\n };\n\n setUrl = (entityKey?: string, parentKey?: string, searchData?: TRecordString, copyHistoryState?: boolean): void => {\n if (this.props.dontUseUrlParams) {\n this.setState({\n childId: entityKey,\n parentId: parentKey\n });\n return;\n }\n\n const pathname = getCorrectPath(this.preparePath(!!entityKey), {\n Id: entityKey,\n ParentId: parentKey\n });\n\n const queryParams = getQueryParameters();\n\n if (queryParams[QueryParam.PreventDraftSave]) {\n searchData = {\n ...searchData,\n [QueryParam.PreventDraftSave]: \"true\"\n };\n }\n\n if (queryParams.CompanyId && !searchData?.CompanyId) {\n searchData = {\n ...searchData,\n CompanyId: queryParams.CompanyId\n };\n }\n\n const search = new URLSearchParams(searchData).toString();\n\n // don't pointlessly add same url to history\n if (pathname !== this.props.history.location.pathname || search !== this.props.history.location.search) {\n if (copyHistoryState) {\n this.props.history.push({ pathname, search, state: this.props.history.location.state });\n } else {\n this.props.history.push({ pathname, search });\n }\n }\n };\n\n preparePath = (addEntityType: boolean): string => {\n let path = this.props.match.path;\n if (this.props.childCollection) {\n if (addEntityType) {\n if (!path.includes(`/${this.props.childCollection}/`)) {\n path = path.replace(new RegExp(`:ParentId[?]?`, \"g\"), `:ParentId/${this.props.childCollection}`);\n }\n } else {\n path = path.replace(`/${this.props.childCollection}/`, \"\");\n }\n }\n\n return path;\n };\n\n getMandatoryChildParentProps = (): Record => {\n return {};\n };\n\n handleRowSelect(bc: BindingContext, search?: TRecordString): void {\n if (typeof bc !== \"string\") {\n const key = bc.getKey();\n\n this.setUrl(key as string, undefined, search, true);\n } else {\n // NumberRange table, hierarchy rows have only string and are not selectable\n }\n }\n\n handleCloseDetail(): void {\n const queryParams = getQueryParameters();\n // newParams cannot be null, because it will be passed to urlSearchParams => use undefined instead\n const newParams = queryParams.drafts ? { drafts: queryParams.drafts } : undefined;\n\n this.setUrl(null, null, newParams);\n }\n\n handleAddDetail(type?: string): void {\n this.setUrl(NEW_ITEM_DETAIL);\n }\n\n handleAfterSave(bc: BindingContext): void {\n this.setUrl(bc.getKey() as string);\n }\n\n isSecondaryBookmarkActive = (): boolean => {\n const query = getQueryParameters();\n\n return !!query[QueryParam.SecondaryBookmarkActive];\n };\n\n getMandatoryProps() {\n this.masterData.entitySet = this.getEntitySet();\n\n return {\n key: this.context.getCompanyId() ?? \"no-company\",\n // need to duplicate wrapper object for correct prevProps in splitpage\n masterData: { ...this.masterData },\n detailData: { ...this.detailData },\n t: this.props.t,\n tableView: this.props.tableView,\n hasPreview: this.props.hasPreview,\n usePrompt: this.props.usePrompt,\n\n ...this.getMandatoryChildParentProps(),\n\n isSecondaryBookmarkActive: this.isSecondaryBookmarkActive(),\n\n onRowSelect: this.handleRowSelect,\n onCloseDetail: this.handleCloseDetail,\n onAddDetail: this.handleAddDetail,\n onAfterSave: this.handleAfterSave,\n };\n }\n\n isReady(): boolean {\n return this.props.tReady && !!this.definition && !(this.context as IAppContext).isLoadingCompany;\n }\n\n render() {\n if (this.props.auditTrailView) {\n return this.props.auditTrailView;\n }\n\n if (!this.isReady()) {\n return null;\n }\n\n return (\n \n );\n }\n}\n","import { IFieldDef, IFieldInfoProperties, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { ISort } from \"@components/table\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { TEntityKey } from \"@odata/BindingContext\";\nimport { OData } from \"@odata/OData\";\nimport { uuidv4 } from \"@utils/general\";\nimport { TFunction } from \"i18next\";\n\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { PageViewMode, QueryParam, ToolbarItemType } from \"../enums\";\nimport { TRecordAny, TRecordType } from \"../global.types\";\nimport { Model } from \"../model/Model\";\nimport { getQueryParameters } from \"../routes/Routes.utils\";\nimport { IFormDef } from \"../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\n\nexport type TFieldDefinition = IFieldInfoProperties & Partial;\nexport type TFieldDefinitionFactory = boolean | ((storage: Model, id?: string) => Promise);\nexport type TFieldsDefinition = TRecordType;\n\n//todo: will be moved to different location in the next step\nexport interface IPageProps {\n childCollection?: string;\n}\n\nexport interface IDefinition {\n entitySet?: TInfoValue;\n\n table?: ISplitPageTableDef;\n form?: IFormDef;\n}\n\nexport interface IGetDefinition {\n (context: IAppContext, ...args: any[]): IDefinition;\n\n // \"static\" property for retrieving translationFiles before calling getDefinition itself\n translationFiles: string[];\n}\n\n// don't know how to keep the call signature of the interface when using Partial/Optional\n// => using new interface as workaround\nexport interface IGetDefinitionOptionalTranslation {\n (context: IAppContext, ...args: any[]): IDefinition;\n\n translationFiles?: string[];\n}\n\nexport const DRAFT_BC_PREFIX = \"draft-\";\nconst UNIQ_SUFFIX_SEPARATOR = \"#\";\n\nexport const getCleanDraftKey = (key: TEntityKey): string => {\n const [base] = key.toString().split(UNIQ_SUFFIX_SEPARATOR, 2);\n return base.replace(DRAFT_BC_PREFIX, \"\");\n};\n\nexport const getUniqBcSuffix = (): string => `${UNIQ_SUFFIX_SEPARATOR}${uuidv4()}`;\n\nexport interface IFilesDefinition {\n /** Defines collection on the current entity set, which contains the fields */\n collection: string;\n /** If the entity of the given collection isn't FileMetadata directly, defines the property that is */\n property?: string;\n}\n\nexport interface IFetchDefinition {\n entitySet: TInfoValue;\n columns: IFieldDef[];\n sort?: ISort[];\n filter?: TInfoValue;\n}\n\nexport const getPageViewMode = (viewMode?: PageViewMode): PageViewMode => {\n return viewMode ?? getQueryParameters()?.[QueryParam.ViewMode] as PageViewMode;\n};\n\nexport enum ObjectListAction {\n Edit = \"edit\",\n ToggleActive = \"activate\",\n Delete = \"delete\"\n}\n\nexport const getStandardObjectListActions = (t: TFunction, isActive: boolean, isDefault?: boolean): IToolbarItem[] => {\n let actions: IToolbarItem [] = [{\n id: ObjectListAction.Edit,\n iconName: \"Edit\",\n itemType: ToolbarItemType.Icon,\n label: t(\"Common:General.Edit\")\n }];\n\n if (!isDefault) {\n actions = actions.concat({\n id: ObjectListAction.ToggleActive,\n itemType: isActive ? ToolbarItemType.TransparentButton : ToolbarItemType.Button,\n label: isActive ? t(\"Common:General.Deactivate\") : t(\"Common:General.Activate\")\n }, {\n id: ObjectListAction.Delete,\n iconName: \"Bin\",\n itemType: ToolbarItemType.Icon,\n label: t(\"Common:General.Delete\")\n });\n }\n\n return actions;\n};\n\nexport const deleteObjectListItem = async (entitySet: string, oData: OData, items: TRecordAny[], id: TEntityKey): Promise => {\n await oData.fromPath(entitySet).delete(id);\n\n const idx = items?.findIndex((item: TRecordAny) => item.Id?.toString() === id?.toString());\n if (idx !== -1) {\n items.splice(idx, 1);\n }\n};\n\nexport function getItemBreadCrumbsText(storage: Model, newItemText: string, itemText?: string): string {\n return storage.data.bindingContext.isNew() ? newItemText : (itemText ?? newItemText);\n}","import { ITabData } from \"@components/tabs\";\nimport { fetchData } from \"@odata/OData.utils\";\nimport { logger } from \"@utils/log\";\n\nimport { NEW_ITEM_DETAIL } from \"../constants\";\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport BindingContext, { IEntity, TEntityKey } from \"../odata/BindingContext\";\nimport { getCorrectPath, ROUTE_NOT_FOUND } from \"../routes\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\nimport Page, { IPageState, IProps } from \"./Page\";\n\nexport interface IParentPageProps extends IProps {\n isParentEditable: boolean;\n onAfterLoad?: () => void;\n}\n\nexport default class ParentChildPage

    extends Page {\n protected parents: IEntity[] = [];\n\n protected areParentsLoaded = false;\n private areParentsLoading = false;\n\n constructor(props: P, context: IAppContext) {\n super(props, context);\n\n this.handleChangeParent = this.handleChangeParent.bind(this);\n }\n\n async componentDidMount() {\n super.componentDidMount();\n await this.loadParents();\n }\n\n async componentDidUpdate(prevProps: Readonly

    , prevState: Readonly) {\n super.componentDidUpdate(prevProps, prevState);\n await this.loadParents();\n this.redirectToFirstParent();\n }\n\n companyChange(id: number): void {\n this.areParentsLoaded = false;\n this.parents = [];\n super.companyChange(id);\n }\n\n\n loadParents = async (): Promise => {\n if (this.definition?.table?.parentDefinition && !this.areParentsLoaded && !this.areParentsLoading) {\n // prevent multiple load in case too many updates are fired\n this.areParentsLoading = true;\n await this.loadParentEntities();\n this.areParentsLoaded = true;\n this.areParentsLoading = false;\n this.redirectToFirstParent();\n this.forceUpdate();\n this.props.onAfterLoad?.();\n }\n };\n\n loadParentEntities = async (): Promise => {\n const parentDef = (this.masterData.def as ISplitPageTableDef).parentDefinition;\n const bc = this.getTableViewContextMemoized(parentDef.entitySet as string);\n\n let result: ITabData[];\n try {\n result = await fetchData(bc, this.props.oData, parentDef, this.context);\n } catch (error) {\n // todo: busy state & global error handling\n logger.error(\"error in fetchData\", error);\n result = [];\n }\n\n this.parents = result;\n };\n\n get defaultParentKey(): string {\n return this.parents?.[0]?.Id?.toString() ?? \"\";\n }\n\n redirectToFirstParent(): void {\n const parents = this.parents || [],\n activeId = this.getParentKey();\n\n if (parents.length) {\n if (!activeId) {\n if (this.props.dontUseUrlParams) {\n this.setState({ parentId: parents[0]?.Id });\n } else {\n const newUrl = getCorrectPath(this.props.match.path, {\n ParentId: this.defaultParentKey\n });\n if (newUrl !== this.props.match.url) {\n this.props.history.replace(newUrl);\n }\n }\n } else if (!parents.find((entity: IEntity) => entity.Id?.toString() === activeId)) {\n this.props.history.replace(ROUTE_NOT_FOUND);\n }\n }\n }\n\n handleRowSelect(bc: BindingContext): void {\n let parentKey, key;\n if (bc.isRoot() && this.props.childCollection) {\n parentKey = bc.getKey();\n } else {\n parentKey = bc.getParent()?.getKey();\n key = bc.getKey();\n }\n\n this.setUrl(key as string, parentKey as string);\n }\n\n handleAddDetail(): void {\n const key = this.props.isParentEditable ? null : NEW_ITEM_DETAIL;\n const parentKey = this.props.isParentEditable ? NEW_ITEM_DETAIL : this.getParentKey();\n this.setUrl(key, parentKey);\n }\n\n handleCloseDetail(): void {\n this.setUrl(null, this.props.isParentEditable ? null : this.getParentKey());\n }\n\n getParentEntity = (): IEntity => {\n return this.parents?.find((entity: IEntity) => entity.Id.toString() === this.getParentKey());\n };\n\n getChildCollectionForEditableParent = (): P[\"childCollection\"] => {\n return this.props.isParentEditable && this.props.childCollection;\n };\n\n getMandatoryChildParentProps = (): {\n parents: IEntity[];\n parentEntity: IEntity;\n onChangeParent: (key?: TEntityKey) => void;\n } => {\n return {\n parents: this.parents,\n parentEntity: this.getParentEntity(),\n onChangeParent: this.handleChangeParent\n };\n };\n\n handleChangeParent(key?: TEntityKey): void {\n this.setUrl(null, key?.toString(), {}, true);\n }\n\n handleAfterSave(bc: BindingContext): void {\n const currentKey = bc.getKey() as string;\n\n // if we have parent-child split page (childCollection prop) we have to differ two cases\n // if parent is not editable we know we are saving child\n // but if it is we have to decide if we are saving child or parent\n\n const isParentEditing = this.props.isParentEditable && bc.getPath(true) !== this.getChildCollectionForEditableParent();\n const parentKey = isParentEditing ? currentKey : this.getParentKey();\n const key = isParentEditing ? null : currentKey;\n\n this.setUrl(key, parentKey);\n }\n\n isReady(): boolean {\n const hasParentDefinition = this.definition?.table?.parentDefinition;\n return super.isReady() && (!hasParentDefinition || this.areParentsLoaded);\n }\n}\n","import React from \"react\";\nimport { IDefinition } from \"./PageUtils\";\nimport { ITableViewBaseProps } from \"../views/table/TableView\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { ISplitPageProps, SplitPageBase } from \"./SplitPageBase\";\nimport { DomManipulatorProvider } from \"../contexts/domManipulator/DomManipulatorProvider\";\n\nexport interface IProps extends Omit, \"renderTable\"> {\n getDefinitions?: (storage?: TSmartODataTableStorage) => IDefinition;\n onTableStorageLoad?: (storage: TSmartODataTableStorage) => Promise;\n tableView: React.ComponentType;\n}\n\nclass SplitPage extends React.Component {\n renderTable = (args: any) => {\n\n const Table = this.props.tableView;\n\n return (\n \n

    \n \n );\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport { SplitPage };","import styled from \"styled-components/macro\";\nimport { T_BREAD } from \"../../global.style\";\n\nexport const StyledDraftTimeStamp = styled.div`\n ${T_BREAD};\n font-style: italic;\n color: ${props => props.theme.C_TEXT_primary};\n margin-right: 8px;\n display: flex;\n align-items: center;\n svg {\n margin-right: 5px;\n }\n`;","import React, { Component, ReactElement } from \"react\";\nimport { StyledDraftTimeStamp } from \"./DraftTimestamp.styles\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport DateType from \"../../types/Date\";\nimport { FloppyDiskIcon } from \"../icon\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps extends WithTranslation {\n storage: FormStorage;\n\n ref?: React.RefObject;\n}\n\nclass DraftTimestamp extends Component {\n render() {\n const draftProp = this.props.storage?.data.definition.draftDef?.draftProperty;\n // todo: solve overlapping with breadcrumbs\n const dateLastModified = this.props.storage?.data.entity?.[draftProp]?.DateLastModified;\n const format = DateType.isToday(dateLastModified) ? DateType.defaultTimeFormat : DateType.defaultDateFormat;\n return !!dateLastModified ? \n \n {this.props.t(\"Components:DraftTimestamp.Saved\")} {DateType.localFormat(dateLastModified, format)}\n : null;\n }\n}\n\nexport default withTranslation([\"Components\"], { withRef: true })(DraftTimestamp);","import { uuidv4 } from \"@utils/general\";\nimport * as H from \"history\";\nimport React, { Component } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Prompt } from \"react-router\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { WithConfirmationDialog, withConfirmationDialog } from \"../dialog/withConfirmationDialog\";\n\ninterface IProps extends WithTranslation, WithConfirmationDialog, RouteComponentProps {\n title?: string;\n storage: FormStorage;\n}\n\n// This is code for custom prompt, which was found very annoying and his service is no longer needed right now\nclass UnsavedChangesPrompt extends Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n _trigger: symbol;\n\n _isRedirecting: boolean;\n\n constructor(props: IProps) {\n super(props);\n // Define a unique global symbol to store a dialog trigger reference accessible via a string key\n this._trigger = Symbol.for(`__PreventTransitionPrompt_${uuidv4()}`);\n }\n\n /**\n * Attach global dialog trigger for this component\n * instance to our Symbol trigger\n */\n componentDidMount() {\n // @ts-ignore\n window[this._trigger] = this.show;\n }\n\n /**\n * Ensure we clean up and remove the reference\n * from the global object\n */\n componentWillUnmount() {\n // @ts-ignore\n delete window[this._trigger];\n }\n\n /**\n * Show the dialog. Invoked primarily from React Router transition\n * handler getUserConfirmation.\n *\n * @param allowTransitionCallback A function that accepts a flag whether or not to allow the route transition\n */\n show = async (allowTransitionCallback: (arg: boolean) => boolean) => {\n // there are cases then we change URL before this is unmounted so this may be triggered several times even\n // after dialog is closed (see Main.tsx, manageCompanyInUrl)\n // for this case we make sure this dialog is shown only once per TRUE confirmation of the dialog\n if (!this._isRedirecting) {\n const res = await this.confirmDialog();\n this._isRedirecting = res;\n allowTransitionCallback(res);\n }\n };\n\n confirmDialog = async () => {\n const customUsePrompt = this.props.storage.getCustomData()?.usePrompt;\n const confirmText = customUsePrompt?.dialogConfirmText || this.props.t(\"Common:Form.DiscardChanges\");\n const content = customUsePrompt?.dialogContent || this.props.t(\"Common:Form.UnsavedChanges\");\n const res = await this.props.confirmationDialog.open({\n confirmText,\n content\n });\n\n if (res) {\n if (customUsePrompt) {\n this.props.storage.setCustomData({\n usePrompt: null\n });\n }\n\n // is it ok to have this here, or should it be somehow (how?) handled in DocumentFormView (or elsewhere if it is used in other places)\n if (this.props.storage.getEditOverride()) {\n this.props.storage.clearEditOverride();\n }\n }\n\n\n return res;\n };\n\n /**\n * Handles the Router transition. Returns true if allowed\n * or the dialog trigger key to enable the dialog.\n */\n\n allowTransition = (location: H.Location, action: H.Action) => {\n if (location.pathname + location.search === this.props.location.pathname + this.props.location.search) {\n // ignore when url didn't change\n return true;\n }\n\n return (this.props.storage.loaded && (this.props.storage.isDirty() || this.props.storage.getCustomData()?.usePrompt)) ? Symbol.keyFor(this._trigger) : true;\n };\n\n render() {\n return (\n <>\n {/* React Router prompt, callback will return true to allow transition or dialog key to prevent */}\n \n \n );\n }\n}\n\nexport default withTranslation(\"Common\")(withRouter(withConfirmationDialog(UnsavedChangesPrompt)));\n","import { getInfoValue } from \"@components/smart/FieldInfo\";\nimport { ISmartODataTableAPI } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IPaneBookmark, SplitLayout } from \"@components/splitLayout\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport DraftTimestamp from \"../components/draftTimeStamp\";\nimport { Pane } from \"../components/splitLayout/Pane\";\nimport UnsavedChangesPrompt from \"../components/unsavedChangesPrompt/UnsavedChangesPrompt\";\nimport { NEW_ITEM_DETAIL } from \"../constants\";\nimport { AppContext, ContextEvents, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { DomManipulatorProvider } from \"../contexts/domManipulator/DomManipulatorProvider\";\nimport { PageViewMode, PaneStatus, QueryParam, TableAddingRowType, TableViewMode } from \"../enums\";\nimport { TRecordAny, TRecordString } from \"../global.types\";\nimport { IAfterSaveEventArgs, ModelEvent } from \"../model/Model\";\nimport { StorageModel } from \"../model/StorageModel\";\nimport { TableStorage } from \"../model/TableStorage\";\nimport BindingContext, {\n areBindingContextsDifferent,\n createBindingContext,\n IEntity,\n TEntityKey\n} from \"../odata/BindingContext\";\nimport { getQueryParameters, removeQueryParam } from \"../routes/Routes.utils\";\nimport { PropsWithTheme } from \"../theme\";\nimport memoizeOne from \"../utils/memoizeOne\";\nimport FileView from \"../views/fileView/FileView\";\nimport { getFiles } from \"../views/fileView/FileViewUtils\";\nimport { IFormDef, IProps as IFormProps } from \"../views/formView/Form\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport { ITableRefreshNeeded } from \"../views/formView/FormView\";\nimport { ITableViewBaseProps } from \"../views/table/TableView\";\nimport { ISplitPageTableDef } from \"../views/table/TableView.utils\";\nimport { ISplitPagePaneData } from \"./Page\";\nimport { DRAFT_BC_PREFIX, getCleanDraftKey, getPageViewMode, IDefinition } from \"./PageUtils\";\n\nexport type TRenderTableArgs = Omit & { storage: TableStorage };\n\nexport interface ISplitPageProps {\n t?: any;\n\n rootStorage?: StorageModel;\n renderTable: (args: TRenderTableArgs) => React.ReactElement;\n onTableStorageLoad?: (args?: any) => void;\n customTableStorage?: typeof TableStorage;\n hideBreadcrumbs?: boolean;\n formProps?: Partial;\n tableViewProps?: any;\n pageViewMode?: PageViewMode;\n\n customData?: TRecordAny;\n hasPreview?: boolean;\n isInDialog?: boolean;\n // flag for child-parent split pages. Indicates table displays both parent and child and both are editable -\n // f.e. labels. In contraty ChartsOfAccounts are parent-child split page where parent is not editable\n isParentEditable?: boolean;\n\n // Indicator for parent-child split pages. Indicates the name of collection in parent entity type.\n childCollection?: string;\n\n masterData: ISplitPagePaneData;\n detailData: ISplitPagePaneData;\n\n parents?: IEntity[];\n parentEntity?: IEntity;\n\n usePrompt?: boolean;\n\n isSecondaryBookmarkActive?: boolean;\n\n onRowSelect?: (bc: BindingContext, search?: TRecordString) => void;\n onTableActionChange?: (action: string) => void;\n onCloseDetail?: () => void;\n onAddDetail?: (type?: string) => void;\n onAfterSave?: (bc: BindingContext) => void;\n onChangeParent?: (key: TEntityKey) => void;\n}\n\ninterface IProps extends ISplitPageProps, RouteComponentProps, WithOData, PropsWithTheme {\n\n}\n\ninterface IState {\n paneStatus: PaneStatus[];\n highlightLastPane: boolean;\n}\n\nconst defaultPaneStatus = [PaneStatus.Normal, PaneStatus.Normal, PaneStatus.Collapsed];\nconst viewFormOnlyPaneStatus = [PaneStatus.Collapsed, PaneStatus.Expanded, PaneStatus.Collapsed];\n\nfunction isValidPaneStatus(status: string[]): boolean {\n if (status.length !== 3) {\n return false;\n }\n\n for (const char of status) {\n if (!Object.values(PaneStatus).includes(char as PaneStatus)) {\n return false;\n }\n }\n return true;\n}\n\nclass SplitPageBase extends React.Component, IState> {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n formStorage: FormStorage;\n tableStorage: TableStorage;\n\n // custom data assigned to form storage when row changed\n customData: TRecordAny;\n\n // helper variable to be used, to hold value for storage that does not yet exist\n _storageShouldBeDisabled: boolean;\n _formRef = React.createRef();\n _tableRef = React.createRef();\n _fileViewRef = React.createRef();\n _draftTimeStampRef = React.createRef();\n\n _formPaneRef = React.createRef();\n _lastFormBusyState: boolean;\n\n getTableViewContext = memoizeOne(() => {\n if (!this.props.masterData.entitySet) {\n return undefined;\n }\n\n const entitySet = getInfoValue(this.props.masterData, \"entitySet\", {\n context: this.context\n });\n\n return createBindingContext(entitySet, this.props.oData.getMetadata());\n }, () => [this.props.masterData.entitySet]);\n\n private _lastDraftId: string;\n\n constructor(props: IProps, context: IAppContext) {\n super(props);\n const TableStorageClass = this.props.customTableStorage ?? TableStorage;\n\n this.tableStorage = new TableStorageClass({\n ...this.getStorageProps(context),\n id: this.props.masterData.def.id,\n definition: this.props.masterData.def,\n refresh: async (refreshPage?: boolean) => {\n if (refreshPage) {\n this.forceUpdate();\n } else {\n if (this._tableRef.current?.beforeRefresh) {\n await this._tableRef.current.beforeRefresh();\n }\n this._tableRef.current?.forceUpdate();\n }\n },\n // copy state in constructor instead of using it directly in the rest of the app\n // because browser history state is changed on any navigation\n initialHistoryState: props.history.location.state\n });\n\n this.state = {\n paneStatus: this.isTableVisible() ? defaultPaneStatus : viewFormOnlyPaneStatus,\n highlightLastPane: false\n };\n }\n\n componentDidMount(): void {\n this.initialLoad();\n }\n\n async componentDidUpdate(prevProps: Readonly>, prevState: Readonly, snapshot?: any) {\n // the goal is to trigger the least refreshes as possible\n // !!!!!!! IMPORTANT !!!!!!!!!\n // NO FORM REFRESH OR UPDATE HERE\n // the ONLY ONE PLACE of refreshing the form is onAfterLoad in formView\n // the only exception is when chaining entity type, so we need to switch forms (or first load of course)\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n if (this.props.location.key !== prevProps.location.key\n && this.props.location.pathname === prevProps.location.pathname\n && this.props.location.search === prevProps.location.search\n && this.props.location.state !== prevProps.location.state) {\n // when clicked on link that navigates on the same page, state could've been changed\n // => update the state in current storage\n this.updateFormStorageInitialHistoryState();\n }\n\n if (!!getQueryParameters()[QueryParam.PaneStatus]) {\n const status = getQueryParameters()[QueryParam.PaneStatus].split(\"\");\n if (isValidPaneStatus(status)) {\n this.setPaneStatus(status as unknown as PaneStatus[]);\n }\n removeQueryParam(this.props.history, QueryParam.PaneStatus, true);\n }\n\n // cases when entityset is changed: Typical case is when user change chartofaccount tab year ->\n // it changes from f.e: ChartOfAccounts(1) => ChartOfAccounts(4)\n const tableBc = this.getTableViewContext();\n if (!tableBc) {\n return;\n }\n\n if (!tableBc.isSame(this.tableStorage.data.bindingContext)) {\n // this is not the greatest solution but seems to be working, this is typically when user clicks table \"secondary\" tabs filter\n // we need to delete formstorage (as it has no use anyway) so we prevent useless render when changing to another tab..\n // this is due to the fact that we first time render second pane (condition detail.bc is fullfilled) so it is creating NOT updating (so\n // component did update won't work)\n delete this.formStorage;\n\n if (this.tableStorage.data.bindingContext.getRootParent().getPath(true) !== tableBc.getRootParent().getPath(true)) {\n this.tableStorage.clearFilters();\n }\n\n await this.loadTable(tableBc, false);\n this.forceUpdate();\n\n this.tableStorage.refresh();\n return;\n }\n\n const prevEntityType = prevProps.detailData.bc?.getEntityType();\n const currentEntityType = this.props.detailData.bc?.getEntityType();\n const hasEntityTypeChanged = prevEntityType && prevEntityType !== currentEntityType;\n\n // remove form storage if entity changed or detail data is empty, so it can be correctly initialized in renderAndLoadForm\n if (hasEntityTypeChanged || !this.props.detailData.bc) {\n this.formStorage = null;\n }\n\n const hasRowBcChanged = areBindingContextsDifferent(prevProps.detailData?.bc, this.props.detailData.bc);\n\n if (this.props.detailData.bc && this.props.detailData.draftId !== this._lastDraftId) {\n this._lastDraftId = this.props.detailData.draftId;\n this.renderAndLoadForm();\n this.tableStorage.storeSingleValue(\"rowBindingContext\", createBindingContext(`${this.formStorage.data.definition.draftDef.draftEntitySet}(${this._lastDraftId})`, this.tableStorage.oData.metadata));\n this.tableStorage.refresh();\n } else if (this.props.detailData.bc && hasRowBcChanged) {\n this.renderAndLoadForm();\n }\n\n const rowBc = this.props.detailData.bc;\n const wasFormVisible = !!this.formStorage?.data?.bindingContext?.getKey();\n\n if (hasRowBcChanged) {\n this.tableStorage.storeSingleValue(\"rowBindingContext\", rowBc);\n if (rowBc?.isNew() && this.tableStorage.data.tableViewMode !== TableViewMode.Draft && !getQueryParameters()[QueryParam.Drafts]) {\n const addingRowType = this.formStorage.getCustomData()?.isCopy ? TableAddingRowType.Copy : TableAddingRowType.New;\n this.tableStorage.storeSingleValue(\"addingRow\", addingRowType);\n } else {\n this.tableStorage.storeSingleValue(\"addingRow\", undefined);\n // for closing the right form (f.e. when canceling adding new stuff, or cancel button on the form)\n // we need to refresh the whole split page to hide the right form\n // keep in mind bot table and form are \"shouldComponentUpdate -> false\" so their content is not refreshed by\n // this call\n if (wasFormVisible && !rowBc) {\n this.forceUpdate();\n }\n }\n\n this.tableStorage.refresh();\n }\n\n // Prevent invalid state - if form is not visible, first pane must not be collapsed\n if (!this.isFormVisible() && this.state.paneStatus?.[0] === PaneStatus.Collapsed) {\n this.setPaneStatus(defaultPaneStatus);\n }\n\n\n this.handlePageViewModeChange();\n this.updateTableStorageHistoryState();\n }\n\n handleRerenderNeeded = () => {\n this.forceUpdate();\n };\n\n updateFormStorageInitialHistoryState = () => {\n this.formStorage.initialHistoryState = this.props.history.location.state;\n };\n\n handlePageViewModeChange = async (): Promise => {\n if (this.formStorage) {\n const lastReadOnly = this.formStorage.pageViewMode === PageViewMode.FormReadOnly;\n // restore original isReadOnly from the unchanged this.props.detailData.def\n const newReadOnly = getPageViewMode(this.props.pageViewMode) === PageViewMode.FormReadOnly;\n\n if (lastReadOnly !== newReadOnly) {\n if (this.formStorage) {\n this.formStorage.pageViewMode = newReadOnly ? PageViewMode.FormReadOnly : PageViewMode.Default;\n\n if (this.formStorage.initialHistoryState !== this.props.history.location.state) {\n // in case user used \"edit entity\" button in read only form mode,\n // initialHistoryState was cleared (FormView.renderButtonsByContext.onClick)\n // but when user goes back (via browser) we need to restore it to the original browser state\n // to get correct breadcrumbs\n this.updateFormStorageInitialHistoryState();\n }\n\n if (lastReadOnly && !newReadOnly && !this.formStorage.data.metadata?.metadata) {\n this.formStorage.setBusy(true);\n await this.formStorage.loadDisabledFieldMetadata();\n this.formStorage.setBusy(false);\n }\n }\n this.forceUpdate();\n this.formStorage?.refresh();\n }\n }\n };\n\n updateTableStorageHistoryState = async () => {\n if (this.props.history.location.state === this.tableStorage.initialHistoryState) {\n return;\n }\n\n this.tableStorage.initialHistoryState = this.props.history.location.state;\n // await this.initialLoad();\n // await this.refreshTable();\n };\n\n getCurrentForm = () => {\n return this.formStorage?.data?.definition;\n };\n\n renderAndLoadForm = () => {\n if (!this.formStorage) {\n const { bc } = this.props.detailData;\n // if old form exists, show immediately busy indicator\n const showBusyImmediately = !!this.formStorage;\n this.createFormStorage(showBusyImmediately);\n // just for rendering empty form envelope\n // content is refresh after onAfterLoad via refresh\n this.forceUpdate(() => {\n if (bc === this.props.detailData.bc) {\n this.loadForm(bc);\n }\n });\n } else {\n this.loadForm(this.props.detailData.bc);\n }\n };\n\n initialLoad = async () => {\n // do this first, before any awaits.\n // otherwise, the subsequent calls will trigger componentDidUpdate and call renderAndLoadForm again\n // => formStorage will be initialized two times resulting in two requests and form loaded events\n if (this.props.detailData.def) {\n // set _lastDraftId to prevent componentDidUpdate\n // from calling renderAndLoadForm twice\n this._lastDraftId = this.props.detailData.draftId;\n this.renderAndLoadForm();\n }\n\n await this.loadTable(this.props.detailData.bc);\n await this.props.onTableStorageLoad?.(this.tableStorage);\n this.forceUpdate();\n };\n\n loadTable = async (rowBindingContext: BindingContext, preserveInfos = true) => {\n await this.tableStorage.init({\n rowBindingContext,\n bindingContext: this.getTableViewContext(),\n definition: (this.props.masterData.def as ISplitPageTableDef),\n preserveInfos,\n useDrilldownFilters: !this.props.isInDialog,\n isInDialog: this.props.isInDialog\n });\n\n if (rowBindingContext?.isNew() && !this.props.detailData?.draftId) {\n this.tableStorage.storeSingleValue(\"addingRow\", TableAddingRowType.New);\n }\n };\n\n loadForm = async (bc: BindingContext) => {\n if (bc) {\n const storage = this.formStorage;\n\n const initialData = storage.data?.customData?.initialData;\n\n if (this.customData) {\n storage.setCustomData(this.customData);\n delete this.customData;\n }\n\n storage.setCustomData({\n isCopy: !!initialData,\n isFirstRefreshAfterInit: true\n });\n\n await storage.init({\n bindingContext: bc,\n data: initialData\n });\n\n if (storage.data.bindingContext !== bc) {\n // storage is not loaded (it was re-initiated in the meantime)\n return;\n }\n\n if (initialData) {\n storage.data.origEntity = {};\n }\n\n delete storage.data?.customData?.[\"initialData\"];\n\n storage.loaded = true;\n\n this._lastFormBusyState = this.formStorage?.isBusy();\n }\n };\n\n hasFiles = () => {\n const files = getFiles(this.formStorage);\n\n return files?.length > 0;\n };\n\n getStorageProps = (context: IAppContext) => {\n return {\n oData: this.props.oData,\n t: this.props.t,\n history: this.props.history,\n match: this.props.match,\n theme: this.props.theme,\n context: context\n };\n };\n\n createFormStorage = (showBusyImmediately = false) => {\n const _create = () => {\n // use clone in form storage - we can edit the form storage definition but stil keep original values\n const definition = cloneDeep(this.props.detailData.def);\n const isReadOnly = getPageViewMode(this.props.pageViewMode) === PageViewMode.FormReadOnly;\n const pageViewMode = isReadOnly ? PageViewMode.FormReadOnly : PageViewMode.Default;\n\n const storage = new FormStorage({\n ...this.getStorageProps(this.context),\n id: definition.id,\n definition,\n pageViewMode,\n refresh: (refreshPage?: boolean) => {\n const _refreshRefs = () => {\n this._formRef.current?.forceUpdate();\n this._fileViewRef.current?.forceUpdate();\n this._draftTimeStampRef.current?.forceUpdate();\n };\n\n if (!this.formStorage) {\n // in case form was closed, nothing to refresh...\n return;\n }\n\n const isFormBusy = this.formStorage.isBusy();\n\n if (this._lastFormBusyState !== isFormBusy) {\n this._lastFormBusyState = isFormBusy;\n // re-render whole SplitPageBase to propagate busy state to the Form Pane Bubble\n refreshPage = true;\n }\n\n if (storage.getCustomData()?.isFirstRefreshAfterInit || refreshPage) {\n // FormViews should call refresh(true) in onAfterLoad, to ensure SplitPageBase is re-rendered\n // => correct busy state on Pane Bubble can be propagated.\n // But in case that for some reason won't happen, use isFirstRefresh safeguard so that SplitPageBase is re-rendered anyway\n storage.setCustomData({ isFirstRefreshAfterInit: false });\n this.forceUpdate(() => {\n _refreshRefs();\n });\n } else if (!this._formRef.current) {\n this.forceUpdate(() => {\n _refreshRefs();\n });\n } else {\n _refreshRefs();\n }\n\n },\n initialHistoryState: this.props.history.location.state\n });\n\n if (showBusyImmediately) {\n storage.shouldDelayInitialBusy = false;\n }\n\n if (this._storageShouldBeDisabled) {\n storage.data.disabled = true;\n }\n\n return storage;\n };\n\n this.formStorage = _create();\n };\n\n handleParentKeyChange = (id: TEntityKey) => {\n this.props.onChangeParent?.(id);\n this.context.getViewBreadcrumbs().items.pop();\n };\n\n handleRowSelect = (bindingContext: BindingContext, props: IRowProps, params: TRecordString, customData: TRecordAny) => {\n if (this.state.paneStatus[1] === PaneStatus.Collapsed && this.state.paneStatus[2] === PaneStatus.Collapsed) {\n this.setSplitToDefault();\n }\n this.context.eventEmitter.emit(ContextEvents.SelectedRowChanged);\n if (customData) {\n this.customData = customData;\n }\n const search = params ?? getQueryParameters();\n this.props.onRowSelect?.(bindingContext, search);\n };\n\n handleRemovedRows = (rows: BindingContext[]) => {\n let selectedRowBc = this.tableStorage.data.rowBindingContext;\n const draftDef = this.formStorage?.data.definition.draftDef;\n const isDraft = selectedRowBc?.getKey()?.toString()?.startsWith(DRAFT_BC_PREFIX);\n if (isDraft) {\n const key = getCleanDraftKey(selectedRowBc.getKey());\n selectedRowBc = createBindingContext(draftDef?.draftEntitySet, this.props.oData.getMetadata()).addKey(key);\n }\n if (rows.find(row => !areBindingContextsDifferent(row, selectedRowBc))) {\n this.props.onCloseDetail?.();\n // note: selectedRowBc.getEntitySet().getName() fails for removed ChoA->Account...\n // todo: can we maybe use just \"isDraft\" condition from above lines or move the event to TableViewWithDraft??\n if (draftDef?.draftEntitySet && (selectedRowBc.getEntitySet().getName() === draftDef?.draftEntitySet)) {\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n // if the row has been removed, we want to remove it from current breadcrumbs as well\n this.context.setViewBreadcrumbs({\n items: this.context.getViewBreadcrumbs().items.slice(0, -1),\n lockable: false\n });\n }\n };\n\n handlePaneStatusChange = (paneStatus: PaneStatus[]) => {\n this.setPaneStatus(paneStatus);\n };\n\n setPaneStatus = (paneStatus: PaneStatus[]) => {\n this.setState({\n paneStatus: paneStatus\n });\n };\n\n\n isTableVisible = () => {\n if (this.props.pageViewMode) {\n return true;\n }\n\n const viewMode = getPageViewMode();\n return !viewMode || viewMode === PageViewMode.Default;\n };\n\n isFormVisible = () => {\n return !!this.props.detailData.bc;\n };\n\n setSplitToDefault = () => {\n if (this.state.paneStatus[0] !== PaneStatus.Normal || this.state.paneStatus[1] !== PaneStatus.Normal) {\n this.setPaneStatus(defaultPaneStatus);\n }\n };\n\n setAddingRowParent = (selectedRowBc: BindingContext): void => {\n if (!selectedRowBc) {\n if (this.formStorage) {\n this.formStorage.setCustomData({\n Parent: null\n });\n }\n this.customData = null;\n\n return;\n }\n\n const tableApi = this.tableStorage.tableAPI as ISmartODataTableAPI;\n const rows = tableApi?.getState()?.rows ?? {};\n const parentRow = getRow(rows, selectedRowBc)?.customData.parent;\n\n if (this.formStorage) {\n this.formStorage.setCustomData({\n // if no parentRow, select row is the root parent,\n // => set it as the Parent\n Parent: parentRow?.id as BindingContext ?? selectedRowBc\n });\n\n // ensure that the custom data will remain in new form storage\n this.customData = this.formStorage.getCustomData();\n }\n };\n\n handleAdd = (type?: string) => {\n // used by CoA and Labels, this check can be changed as needed\n const shouldTryToAddSibling = this.tableStorage.data.bindingContext.isAnyPartCollection() || this.tableStorage.data?.definition?.childColumns;\n\n if (shouldTryToAddSibling) {\n // If no row is selected, create new first row. Otherwise, try to create sibling to the selected row.\n const selectedRowBc = this.tableStorage.data.rowBindingContext ?? null;\n\n this.setAddingRowParent(selectedRowBc);\n }\n\n this.setSplitToDefault();\n this.props.onAddDetail?.(type);\n };\n\n handleBeforeSave = () => {\n this.formStorage.setBusy(true);\n };\n\n handleSaveFail = () => {\n this.formStorage.setBusy(false);\n };\n\n handleAfterSave = (isNew: boolean, preventTableViewRefresh?: boolean) => {\n this.formStorage.setBusy(false);\n const { bindingContext } = this.formStorage.data;\n\n this.props.onAfterSave?.(bindingContext);\n this.tableStorage.storeSingleValue(\"rowBindingContext\", bindingContext);\n const args: IAfterSaveEventArgs = {\n isNew,\n bindingContext\n };\n this.tableStorage.emitter.emit(ModelEvent.AfterSave, args);\n\n if (isNew || !preventTableViewRefresh) {\n this.refreshTable();\n }\n };\n\n handleCancel = () => {\n if (this.formStorage) {\n this.formStorage.loaded = false;\n this.props.onCloseDetail?.();\n\n if (!this.context.getAddingNewCompany()) {\n this.context.setViewBreadcrumbs({\n items: this.context.getViewBreadcrumbs().items.slice(0, -1),\n lockable: false\n });\n }\n }\n };\n\n tableCancelAdd = () => {\n // close storage when closing detail form, this prevents flicking when reopening form\n this.handleCancel();\n };\n\n refreshTable = (args: ITableRefreshNeeded = {}) => {\n if (!args.refreshRowOnly) {\n // in case we want to reload everything - table, tabs..\n if (!args.modelRefreshOnly) {\n this.tableStorage.updateUuid();\n }\n this.tableStorage.refresh();\n } else {\n // reload just one row of the table\n (this.tableStorage.tableAPI as any)?.reloadRow(args.rowBc ?? this.formStorage.data.bindingContext);\n }\n };\n\n handleTableRefreshNeeded = (args: ITableRefreshNeeded = {}) => {\n this.refreshTable(args);\n };\n\n handleOpenNextDraft = () => {\n const tableApi = this.tableStorage.tableAPI as ISmartODataTableAPI;\n const state = tableApi.getState();\n const storage = this.tableStorage;\n const draftDef = storage.data.definition.draftDef;\n const metadata = storage.oData.getMetadata();\n const draftId = getQueryParameters()[QueryParam.DraftId];\n\n if (draftId) {\n const draftBc = createBindingContext(draftDef.draftEntitySet, metadata).addKey(draftId);\n const currentIndex = state.rowsOrder.findIndex(order => order === draftBc.toString());\n const nextItem = state.rowsOrder[currentIndex + 1];\n if (nextItem) {\n const nextItemBc = createBindingContext(nextItem, metadata);\n const esName = storage.data.bindingContext.getEntitySet().getName();\n\n const bc = createBindingContext(esName, storage.oData.metadata).addKey(NEW_ITEM_DETAIL, true);\n this.props.onRowSelect?.(bc, {\n [QueryParam.DraftId]: nextItemBc.getKey().toString(),\n [QueryParam.Drafts]: \"true\"\n });\n\n this.handleTableRefreshNeeded();\n } else {\n this.handleAfterSave(true, false);\n }\n }\n }\n\n handleFormRefreshNeeded = async () => {\n await this.formStorage.reload();\n };\n\n handleFormDisabledChanged = (disabled: boolean) => {\n const currentStorage = this.formStorage;\n\n // can be called even before the form is opened => storage doesn't exist\n // => store in helper variable\n // DEV-16806 - set this flag always and don't delete it other then here\n // there are tables when we create form storages when row is clicked (multiple entity types)\n // so we need this flag to be set for every such form storage\n this._storageShouldBeDisabled = disabled;\n\n if (currentStorage) {\n currentStorage.data.disabled = disabled;\n currentStorage.refresh();\n }\n };\n\n renderTable = () => {\n return (\n this.props.renderTable({\n ref: this._tableRef,\n storage: this.tableStorage,\n rootStorage: this.props.rootStorage,\n formStorage: this.formStorage,\n onFormRefreshNeeded: this.handleFormRefreshNeeded,\n onFormDisabledChange: this.handleFormDisabledChanged,\n onAddingRowCancel: this.tableCancelAdd,\n onAdd: this.handleAdd,\n onRowSelect: this.handleRowSelect,\n onRemovedRows: this.handleRemovedRows,\n onTableActionChange: this.props.onTableActionChange,\n parents: this.props.parents,\n parentEntity: this.props.parentEntity,\n onParentKeyChange: this.handleParentKeyChange,\n ...this.props.tableViewProps\n })\n );\n };\n\n renderForm = () => {\n if (this.props.isSecondaryBookmarkActive) {\n return null;\n }\n\n if (this.formStorage) {\n const FormView = this.getCurrentForm().formControl;\n\n return (\n \n {/* This is code for custom prompt, which was found very annoying and his service is no longer needed right now\n Prompt stores value clicked on confirm dialog and so it is tailored to have one instance for one url. On url change it has to be unmounted\n */}\n {(this.props.usePrompt || this.formStorage?.getCustomData()?.usePrompt) &&\n \n }\n \n \n );\n }\n return null;\n };\n\n handleFilesUploaded = (isFirstUpload: boolean) => {\n if (isFirstUpload) {\n // refresh row to show attachment icon\n this.refreshTable({\n refreshRowOnly: true\n });\n // refresh hasFiles icon\n this.forceUpdate();\n }\n };\n\n handleNewFiles = () => {\n if (this.state.paneStatus?.[2] === PaneStatus.Collapsed) {\n // open last pane\n this.setPaneStatus([PaneStatus.Collapsed, PaneStatus.Normal, PaneStatus.Normal]);\n }\n\n if (this.state.highlightLastPane) {\n this.setState({\n highlightLastPane: false\n });\n }\n };\n\n handleDragEnter = () => {\n const isFileUploaderHidden = !!this._fileViewRef.current.state.selectedFile || this.state.paneStatus[2] === PaneStatus.Collapsed;\n\n if (isFileUploaderHidden) {\n this.setState({\n highlightLastPane: true\n });\n }\n };\n\n handleDragLeave = () => {\n if (this.state.highlightLastPane) {\n this.setState({\n highlightLastPane: false\n });\n }\n };\n\n\n getSecondaryBookmark = (): IPaneBookmark & { content: React.ReactElement } => {\n if (!this.formStorage?.loaded) {\n return null;\n }\n\n const bookmarkDef = getInfoValue(\n this.props.detailData?.def as IFormDef,\n \"secondaryBookmark\", {\n storage: this.formStorage\n });\n\n if (!bookmarkDef) {\n return null;\n }\n\n return {\n ...bookmarkDef,\n isActive: this.props.isSecondaryBookmarkActive\n };\n };\n\n handleBookmarkChange = (bookmarkId: string, isActive: boolean) => {\n const queryParams = getQueryParameters();\n\n if (isActive) {\n queryParams[QueryParam.SecondaryBookmarkActive] = \"true\";\n } else {\n delete queryParams[QueryParam.SecondaryBookmarkActive];\n }\n\n this.props.history.replace({\n pathname: this.props.history.location.pathname,\n search: new URLSearchParams(queryParams).toString()\n });\n };\n\n render() {\n const isFormReadOnly = this.formStorage?.isReadOnly;\n const hasFiles = this.hasFiles();\n const secondaryBookmark = this.getSecondaryBookmark();\n const hasDrafts = this.formStorage?.data.definition?.draftDef?.draftProperty;\n const hasThirdPane = this.props.hasPreview && (!isFormReadOnly || hasFiles);\n\n return (\n \n \n {this.tableStorage.loaded && this.renderTable()}\n \n : null}\n // only show busy if third pane present, otherwise Splitter is not even visible\n // TODO why do we render Splitter with bubble icon into DOM when thid pane is not present? can it get visible somehow?\n isBusy={this.state.paneStatus[1] !== PaneStatus.Collapsed && hasThirdPane && this.formStorage && (this.formStorage?.isBusy() || !this.formStorage?.loaded || !this._formRef?.current)}\n isBusyDelayed={!this.formStorage?.loaded}\n >\n <>\n {this.renderForm()}\n {this.props.isSecondaryBookmarkActive && secondaryBookmark?.content}\n \n \n {hasThirdPane &&\n \n \n }\n \n );\n }\n}\n\nconst wrapped = withRouter(withTheme(withOData(SplitPageBase)));\nexport { wrapped as SplitPageBase };","import { FormStorage } from \"../../views/formView/FormStorage\";\nimport { CacheStrategy } from \"../../enums\";\nimport { fetchAndSetItemsByInfo, invalidateItems } from \"@components/smart/smartSelect/SmartSelectAPI\";\n\nexport const reloadAccounts = async (storage: FormStorage, fetchItems: boolean, path: string): Promise => {\n const bindingContext = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bindingContext);\n const cacheStrategy = info?.cacheStrategy ?? CacheStrategy.None;\n\n // clear cache and items (for document and all document items) so that fetchSelectItems/SmartSelect can load new items\n invalidateItems([bindingContext], storage, cacheStrategy);\n\n let item;\n if (fetchItems) {\n const items = await fetchAndSetItemsByInfo(storage, info);\n const currentNumber = storage.getValue(bindingContext.navigateWithSiblingFallback(\"Number\"));\n item = items.find(item => item.additionalData.Number === currentNumber);\n // fallback to the only item\n if (!item && items.length === 1) {\n item = items[0];\n }\n } else {\n info.fieldSettings.items = [];\n }\n\n if (item) {\n storage.clearAndSetValue(bindingContext, item.id);\n if (info?.fieldSettings?.localDependentFields?.length > 0) {\n storage.processDependentField(info.fieldSettings.localDependentFields, item.additionalData, bindingContext);\n }\n } else {\n storage.clearAndSetValue(bindingContext, null);\n }\n};","import { IAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { isMatchingAccount } from \"@pages/documents/Document.utils\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { toTuple, TValue } from \"../../global.types\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { Model } from \"../../model/Model\";\n\nexport function getAccountFormatter(propName: string, accountEntityGetter?: (entity: IEntity, storage: Model) => IEntity): TFormatterFn {\n return (val: TValue, { entity, storage }: IFormatOptions) => {\n const e = (accountEntityGetter ? accountEntityGetter(entity, storage) : entity) ?? {};\n const numberProp = `${propName}Number` as keyof IEntity;\n const nameProp = `${propName}Name` as keyof IEntity;\n return e[numberProp] || e[nameProp] ? `${e[numberProp] ?? \"\"} - ${e[nameProp] ?? \"\"}` : null;\n };\n}\n\nexport function getAccountComparisonFunction(propName: string, accountEntityGetter?: (entity: IEntity) => IEntity) {\n return (e1: IEntity, e2: IEntity): boolean => {\n const [account1, account2] = toTuple([e1, e2].map((e) => {\n const aa = (accountEntityGetter ? accountEntityGetter(e) : e as IEntity) ?? {};\n const numberProp = `${propName}Number` as keyof IEntity;\n const nameProp = `${propName}Name` as keyof IEntity;\n return {\n Name: aa[nameProp] as string,\n Number: aa[numberProp] as string\n } as IAccountEntity;\n }));\n return isMatchingAccount(account1, account2);\n };\n}\n\n","import { formatDateToDateString, getWorkDate } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { getInfoByPath, ifAll, IFieldInfoProperties, IGetValueArgs, TValidatorFn } from \"@components/smart/FieldInfo\";\nimport { AccountDefFormatter, getAccountDef } from \"@components/smart/GeneralFieldDefinition\";\nimport { getCollapsedGroupId } from \"@components/smart/Smart.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IDependentFieldDef, IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport {\n fetchAndSetItemsByInfo,\n fetchItemsByInfo,\n fetchItemsByPath,\n invalidateItems\n} from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { getBoundValue, getNestedValue, setNestedValue } from \"@odata/Data.utils\";\nimport {\n AccountAssignmentEntity,\n DocumentAccountAssignmentEntity,\n DocumentEntity,\n DocumentVatClassificationEntity,\n DocumentVatClassificationSelectionEntity,\n EntitySetName,\n IAccountAssignmentEntity,\n IAccountEntity,\n IChartedAccountAssignmentEntity,\n IDocumentAccountAssignmentEntity,\n IDocumentAccountAssignmentSelectionEntity,\n IDocumentEntity,\n IDocumentTypeEntity,\n IFiscalYearEntity,\n IPaymentDocumentItemEntity,\n PaymentDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n CompanyPermissionCode,\n DocumentTypeCode,\n GeneralPermissionCode,\n PaymentDocumentItemTypeCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { IFormatOptions, prepareQuery } from \"@odata/OData.utils\";\nimport { getAgendaCountryCode } from \"@pages/companies/Company.shared.utils\";\nimport { memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isNotDefined, isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport { ValidationError } from \"yup\";\n\nimport {\n BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX,\n CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX,\n DASH_CHARACTER\n} from \"../../constants\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n LabelStatus,\n NavigationSource,\n ValidationErrorType,\n ValidatorType\n} from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport {\n getFiscalDataCorrespondingToDateAccountingTransaction,\n isMatchingAccount,\n isReceived\n} from \"../documents/Document.utils\";\nimport { getActiveChartOfAccountsId } from \"../fiscalYear/FiscalYear.utils\";\nimport { TFieldDefinition, TFieldsDefinition } from \"../PageUtils\";\nimport { reloadAccounts } from \"./Account.utils\";\n\nexport const ACCOUNT_ASSIGNMENT_GROUP_ID = \"Assignment\";\nconst ACCOUNT_ASSIGNMENT_COLLAPSED_GROUP_ID = getCollapsedGroupId({ id: \"AccountAssignmentSelection/AccountAssignment\" });\n\nexport const ItemCreateCustomAssignmentBc = BindingContext.localContext(\"ItemCreateCustomAssignment\");\nexport const CreateCustomAssignmentPath = \"##CreateCustomAssignment##\";\n\nexport const accountAssignmentSelectColumns = [\n {\n id: \"ShortName\",\n additionalProperties: [\n // properties that need to be set on item selection\n { id: \"ChartOfAccounts\" },\n { id: \"CreditAccount/Name\" }, { id: \"CreditAccount/Number\" }, { id: \"CreditAccount/IsClosed\" },\n { id: \"DebitAccount/Name\" }, { id: \"DebitAccount/Number\" }, { id: \"DebitAccount/IsClosed\" },\n { id: \"ShortName\" }\n ]\n },\n {\n id: \"Name\"\n }\n];\nexport const vatAssignmentFields = [\"AccountAssignmentSelection/AccountAssignment/CreditAccount\", \"AccountAssignmentSelection/AccountAssignment/DebitAccount\"];\nexport const AccountDialogFields = [\"DebitAccount\", \"CreditAccount\", \"Name\", ItemCreateCustomAssignmentBc];\n\n// currently, isWithoutSelectionPrefix is not used anywhere, but keeping for possible future use\nconst getFieldId = (id: string, isWithoutSelectionPrefix?: boolean) => {\n return `${!isWithoutSelectionPrefix ? \"AccountAssignmentSelection/\" : \"\"}AccountAssignment${id ? `/${id}` : \"\"}`;\n};\n\nexport const getAccountAssignmentDependentFields = (isLineItem: boolean): IDependentFieldDef[] => {\n return [\n {\n from: { id: \"CreditAccount\" },\n to: isLineItem ? null : { id: \"AccountAssignmentSelection/AccountAssignment/CreditAccount\" },\n navigateFrom: isLineItem ? NavigationSource.Itself : NavigationSource.Root\n },\n {\n from: { id: \"DebitAccount\" },\n to: isLineItem ? null : { id: \"AccountAssignmentSelection/AccountAssignment/DebitAccount\" },\n navigateFrom: isLineItem ? NavigationSource.Itself : NavigationSource.Root\n },\n {\n from: { id: \"ChartOfAccounts\" },\n to: isLineItem ? null : { id: \"AccountAssignmentSelection/AccountAssignment/ChartOfAccounts\" },\n navigateFrom: isLineItem ? NavigationSource.Itself : NavigationSource.Root\n },\n {\n from: { id: \"ShortName\" },\n to: isLineItem ? null : { id: \"AccountAssignmentSelection/AccountAssignment/ShortName\" },\n navigateFrom: isLineItem ? NavigationSource.Itself : NavigationSource.Root\n },\n {\n from: { id: \"Name\" },\n to: isLineItem ? null : { id: \"AccountAssignmentSelection/AccountAssignment/Name\" },\n navigateFrom: isLineItem ? NavigationSource.Itself : NavigationSource.Root\n }\n ];\n};\n\nexport const getAccAssignmentFilterWithTypeAndDate = (type: DocumentTypeCode, args: IGetValueArgs, date?: Date): string => {\n const dt = date ?? args.storage.data.entity.DateAccountingTransaction ?? getWorkDate();\n const formattedDate = formatDateToDateString(dt);\n return `DocumentTypeCode eq '${type}' and ChartOfAccounts/FiscalYear/DateStart le ${formattedDate} and ChartOfAccounts/FiscalYear/DateEnd ge ${formattedDate}\n AND DebitAccount/IsActive eq true AND CreditAccount/IsActive eq true`;\n};\n\nconst accAssignmentFilterWithType = (type: DocumentTypeCode, args: IGetValueArgs): string => {\n return getAccAssignmentFilterWithTypeAndDate(type, args);\n};\n\nexport const accountAssignmentComparisonFunction = (entity1: IEntity, entity2: IEntity, bc: BindingContext): boolean => {\n const bcParent = bc.getParent(); // (document or item) AccountAssignmentSelection\n\n const left = getBoundValue({ bindingContext: bcParent, data: entity1, dataBindingContext: bc.getRootParent() });\n const right = getBoundValue({ bindingContext: bcParent, data: entity2, dataBindingContext: bc.getRootParent() });\n let hasSplitDifference = false;\n\n // Selection Code is dynamic property which is change in the runtime based on additional external data and such is displayed to user\n // assignment to be different has to differ in both CA and DA and a note\n // this can make soma draft stuff not working as orig entity may differ from entity due to the fact,\n // this can be changed in onAfterLoad based on wheather there exists same account assignment\n // Typical case of malfunction: we create \"own\" AS, then save it, then we create manually same AS and in onafterload \"own\" -> \"copy\" and error.\n // if (left?.Selection?.Code !== right?.Selection?.Code) {\n // return false;\n // }\n\n if (left?.Selection?.Code === SelectionCode.Split && right?.Selection?.Code === SelectionCode.Split) {\n const leftItem = getBoundValue({\n bindingContext: bcParent.getParent(),\n data: entity1,\n dataBindingContext: bc.getRootParent()\n }) as IPaymentDocumentItemEntity;\n const rightItem = getBoundValue({\n bindingContext: bcParent.getParent(),\n data: entity2,\n dataBindingContext: bc.getRootParent()\n }) as IPaymentDocumentItemEntity;\n hasSplitDifference = leftItem.SplitAccountAssignments?.length !== rightItem.SplitAccountAssignments?.length ||\n leftItem.SplitAccountAssignments?.some(lAss => {\n return !rightItem.SplitAccountAssignments?.find(rAss => {\n return rAss.CreditAccount?.Id === lAss.CreditAccount?.Id && rAss.DebitAccount?.Id === lAss.DebitAccount?.Id &&\n rAss.TransactionAmount === lAss.TransactionAmount && rAss.Description === lAss.Description;\n });\n });\n }\n\n const val1 = \"\" + left?.AccountAssignment?.CreditAccount?.Id + left?.AccountAssignment?.DebitAccount?.Id;\n const val2 = \"\" + right?.AccountAssignment?.CreditAccount?.Id + right?.AccountAssignment?.DebitAccount?.Id;\n\n return val1 === val2 && ((left && right) || (!left && !right)) && !hasSplitDifference;\n};\n\nconst isVatFieldVisible = (args: IGetValueArgs) => {\n return args.storage.data.entity.AccountAssignmentSelection?.AccountAssignment?.Id !== SelectionCode.None;\n};\n\nexport const getAdditionalAccAssItems = (skipNoneItem?: boolean): ISelectItem[] => {\n const additionalItems: ISelectItem[] = [\n {\n id: SelectionCode.Own,\n additionalData: {},\n label: i18next.t(\"Document:AccountAssignment.Own\"),\n groupId: \"Default\"\n }\n ];\n\n if (!skipNoneItem) {\n additionalItems.unshift({\n id: SelectionCode.None,\n label: i18next.t(\"Document:AccountAssignment.None\"),\n groupId: \"Default\"\n });\n }\n\n return additionalItems;\n};\n\nexport function getShortNameFromAccountNumbers(debitAccountNumber: string, creditAccountNumber: string): string {\n return debitAccountNumber || creditAccountNumber ? `${debitAccountNumber ?? DASH_CHARACTER}/${creditAccountNumber ?? DASH_CHARACTER}` : null;\n}\n\nexport const accAssignmentFormatter = (val: TValue, args?: IFormatOptions, isDocumentItemAssignment = false): string => {\n let selection: IDocumentAccountAssignmentSelectionEntity;\n let accountAssignment: IDocumentAccountAssignmentEntity;\n if (args.bindingContext) {\n selection = args.storage.getValue(args.bindingContext.getParent());\n accountAssignment = selection?.AccountAssignment;\n } else {\n // case for when used as select formatter\n accountAssignment = args.entity;\n }\n\n const selectionCode = selection?.Selection?.Code as SelectionCode;\n if (selectionCode === SelectionCode.Split) {\n return i18next.t(`Document:AccountAssignment.${selectionCode}`);\n }\n\n if ([SelectionCode.Default, SelectionCode.Own].includes(selectionCode)) {\n // default on item\n const isDefault = SelectionCode.Default === selectionCode;\n const defaultSelection = args.entity.AccountAssignmentSelection;\n const defaultShortNameFromAccountNumbers = getShortNameFromAccountNumbers(defaultSelection?.AccountAssignment?.DebitAccount?.Number, defaultSelection?.AccountAssignment?.CreditAccount?.Number);\n const defaultShortName = defaultSelection?.Selection?.Code === SelectionCode.None\n ? i18next.t(\"Document:AccountAssignment.None\")\n : defaultShortNameFromAccountNumbers ?? defaultSelection?.AccountAssignment?.ShortName;\n\n const shortNameFromAccountNumbers = getShortNameFromAccountNumbers(accountAssignment?.DebitAccount?.Number, accountAssignment?.CreditAccount?.Number);\n const shortName = isDefault ? defaultShortName : shortNameFromAccountNumbers ?? accountAssignment.ShortName;\n const description = i18next.t(`Document:AccountAssignment.${selectionCode}`);\n\n return shortName ? `${shortName} (${description})` : description;\n }\n\n const isSpecial = [SelectionCode.Default, SelectionCode.Own, SelectionCode.None]\n .includes(selectionCode);\n\n if (accountAssignment && !!accountAssignment?.ShortName && !isSpecial) {\n return isDocumentItemAssignment ? accountAssignment.ShortName : `${accountAssignment.ShortName} - ${accountAssignment.Name}`;\n }\n\n return selectionCode === SelectionCode.None ? i18next.t(\"Document:AccountAssignment.None\") : \"\";\n};\n\nexport const accAssignmentItemFormatter = (val: TValue, args?: IFormatOptions): string => {\n return accAssignmentFormatter(val, args, true);\n};\n\ninterface IChoaArgs {\n transactionDate?: Date;\n datePath?: string;\n fallbackToActiveChOA?: boolean;\n}\n\n/** Returns CoA id based on currently selected DateAccountingTransaction, or current active CoA */\nexport const getCurrentCoAId = (args: IGetValueArgs, options?: IChoaArgs): number => {\n const { entity, bindingContext } = args.storage?.data || {};\n\n // Some entities may have ChartOfAccounts relation saved on the entity and e.g. FixedAsset can have date in the past\n // before first configured FY, so we fall back for the oldest active FY -> date not match,\n // so we need to keep the preference to selected ChartOfAccounts->Id\n if (entity.ChartOfAccounts?.Id) {\n return entity.ChartOfAccounts.Id;\n }\n\n const _getDefault = () => {\n return options?.fallbackToActiveChOA === false ? null : getActiveChartOfAccountsId(args.context ?? args.storage.context);\n };\n\n\n // Priority was changed, now date has higher priority then entity FiscalYear (as it makes 0 sense to take it from entity, if i want ChoA based on Date)\n // this swap can be reason of some mistakes tho\n if (options?.transactionDate || options?.datePath) {\n let transactionDate = options?.transactionDate;\n if (!transactionDate) {\n transactionDate = getBoundValue({\n bindingContext: bindingContext.navigate(options.datePath),\n data: entity,\n dataBindingContext: bindingContext\n });\n }\n\n // Question is whether take getActiveChartOfAccountsId if we dont find fiscal year to given date\n // i guess it sould return null ---> open question for the future\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(args.storage as StorageModel, transactionDate);\n return isObjectEmpty(fiscalData.fiscalYear) ? _getDefault() : fiscalData.fiscalYear?.ChartOfAccounts.Id;\n } else {\n return entity?.FiscalYear?.ChartOfAccounts?.Id ?? _getDefault();\n }\n};\n\nexport const getChoAIdBasedOnDate = (storage: StorageModel, date: Date, useDefault = true) => {\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage as StorageModel, date);\n return isObjectEmpty(fiscalData.fiscalYear) && useDefault ? getActiveChartOfAccountsId(storage.context) : fiscalData.fiscalYear?.ChartOfAccounts?.Id;\n};\n\ninterface IFetchAccounts {\n storage: Model;\n choaId: number;\n filter?: string;\n}\n\nconst getAccountsMemoized = memoizedWithCacheStrategy(\n async (args: IFetchAccounts) => {\n const queryBc = new BindingContext({\n metadata: args.storage.oData.metadata,\n path: `ChartsOfAccounts(${args.choaId})/Accounts`\n });\n\n let filter = \"IsActive eq true\";\n\n const query = prepareQuery({\n oData: args.storage.oData,\n bindingContext: queryBc,\n fieldDefs: [{ id: \"Id\" }, { id: \"Name\" }, { id: \"Number\" }]\n });\n\n if (args.filter) {\n filter += ` AND ${args.filter}`;\n }\n\n query.filter(filter);\n\n try {\n const result = (await query.fetchData()) ?? { value: [] };\n return result.value;\n } catch (error) {\n logger.error(\"error in fetch accounts\", error);\n return [];\n }\n },\n (args: IFetchAccounts) => {\n return args.choaId?.toString();\n }\n);\n\n\nexport const loadAccountsBasedOnDate = async (storage: StorageModel, date: Date, filter?: string) => {\n const choaId = getChoAIdBasedOnDate(storage, date);\n\n return await getAccountsMemoized({ storage, choaId, filter }, CacheStrategy.View);\n};\n\nexport const getDocAccountEntitySet = (options: IChoaArgs) => {\n return (args: IGetValueArgs): string => {\n const coaId = getCurrentCoAId(args, options);\n\n return coaId && `ChartsOfAccounts(${coaId})/Accounts`;\n };\n};\n\nexport const generalAccountProps = (path?: string, coADatePath?: string): IFieldInfoProperties => {\n const def = getAccountDef(path);\n\n return {\n ...def,\n customizationData: {\n useForCustomization: isNotTaxEvidence\n },\n filter: {\n select: \"IsActive eq true\"\n },\n fieldSettings: {\n ...def?.fieldSettings,\n entitySet: getDocAccountEntitySet({\n datePath: coADatePath\n })\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: accountIsClosedValidator\n }\n }\n };\n};\n\nexport const getSingleAccountFieldDef = (options: IChoaArgs = {}): TFieldDefinition => {\n const commonDef = generalAccountProps();\n return {\n ...commonDef,\n fieldSettings: {\n ...commonDef.fieldSettings,\n entitySet: getDocAccountEntitySet({\n ...options,\n fallbackToActiveChOA: options.fallbackToActiveChOA ?? false\n })\n },\n formatter: AccountDefFormatter\n };\n};\n\nexport const isVatChildRequired = (args: IGetValueArgs): boolean => {\n const value = args.storage.getValueByPath(\"AccountAssignmentSelection/Selection\");\n return value?.Code !== undefined && value?.Code !== SelectionCode.None;\n};\n\nconst isOwnAccountAssignmentSelection = (args: IGetValueArgs) => {\n return args.storage.data.entity.AccountAssignmentSelection?.AccountAssignment?.Id === SelectionCode.Own;\n};\n\nconst userHasTemplateManagementPermissions = (args: IGetValueArgs): boolean => {\n return args.context?.getGeneralPermissions().has(GeneralPermissionCode.CommonSettingsManagement);\n};\n\nconst getAdditionalLineAccAssItems = (addDefault = true) => {\n const items = getAdditionalAccAssItems();\n if (addDefault) {\n items.unshift({\n id: SelectionCode.Default,\n label: i18next.t(\"Document:AccountAssignment.Default\"),\n groupId: \"Default\"\n });\n }\n return items;\n};\n\nconst hasOwnSelection = ({ storage, bindingContext }: IGetValueArgs): boolean => {\n const { collectionBindingContext } = bindingContext.splitByCollectionPath();\n const selection = storage.getValue(collectionBindingContext.navigate(\"AccountAssignmentSelection/Selection/Code\"));\n return selection === SelectionCode.Own;\n};\n\nconst defaultAccountAssignmentValidator: TValidatorFn = (value, args): boolean => {\n if (value === SelectionCode.Default) {\n const doc = args.storage.data.entity as IDocumentEntity;\n const selectionCode = doc.AccountAssignmentSelection?.Selection?.Code;\n return !!selectionCode;\n }\n return true;\n};\n\nconst accountIsClosedValidator: TValidatorFn = (value, args) => {\n const { storage, bindingContext } = args;\n const info = storage.getInfo(bindingContext);\n const items = info.fieldSettings.items ?? [];\n const selected = items.find(item => item.id === value);\n const Account = selected?.additionalData as IAccountEntity;\n if (Account?.IsClosed) {\n const num = Account.Number;\n return new ValidationError(i18next.t(\"Document:AccountAssignment.AccountClosed\", { num }), false, args.bindingContext.getNavigationPath(false));\n }\n return true;\n};\n\nexport const accountsAreClosedValidator: TValidatorFn = (value, args) => {\n const { storage, bindingContext } = args;\n const info = storage.getInfo(bindingContext);\n const items = info.fieldSettings.items ?? [];\n const selected = items.find(item => item.id === value);\n const AccountAssignment = (selected?.additionalData ?? {}) as IDocumentAccountAssignmentEntity;\n const accounts: (keyof IDocumentAccountAssignmentEntity)[] = [\"CreditAccount\", \"DebitAccount\"];\n for (const account of accounts) {\n const Account = AccountAssignment[account] as IAccountEntity;\n if (Account?.IsClosed) {\n const num = Account.Number;\n return new ValidationError(i18next.t(\"Document:AccountAssignment.AccountClosed\", { num }), false, args.bindingContext.getNavigationPath(false));\n }\n }\n return true;\n};\n\nexport const accountsAreSetValidator: TValidatorFn = (value, args) => {\n const { storage, bindingContext } = args;\n const accounts: (keyof IDocumentAccountAssignmentEntity)[] = [\"CreditAccount\", \"DebitAccount\"];\n const codeBc = bindingContext.getParent().navigate(\"SelectionCode\");\n const code = storage.getValue(codeBc) as SelectionCode;\n if (![SelectionCode.Own, SelectionCode.Copy].includes(code)) {\n return true;\n }\n for (const account of accounts) {\n const bc = bindingContext.navigate(account);\n if (!storage.getValue(bc, { useDirectValue: false })) {\n return new ValidationError(i18next.t(\"Document:AccountAssignment.SubfieldsNotValid\"), false, args.bindingContext.getNavigationPath(false));\n }\n }\n return true;\n};\n\nexport const getAccountAssignmentItemDef = (collectionName: string, documentType: DocumentTypeCode, addDefault: boolean, hasAccountAssignment: boolean): TFieldsDefinition => {\n const accountAssignmentPath = `${collectionName}/AccountAssignmentSelection/AccountAssignment`;\n return {\n [accountAssignmentPath]: {\n isRequired: true,\n fieldSettings: {\n displayName: \"ShortName\",\n additionalItems: getAdditionalLineAccAssItems(addDefault),\n entitySet: EntitySetName.ChartedAccountAssignments\n },\n customizationData: {\n useForCustomization: ifAll(isNotTaxEvidence, hasAccountAssignment)\n },\n isVisible: isNotTaxEvidence,\n columns: accountAssignmentSelectColumns,\n width: FastEntryInputSizes.M,\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.View,\n filter: {\n select: accAssignmentFilterWithType.bind(accAssignmentFilterWithType, documentType)\n },\n comparisonFunction: accountAssignmentComparisonFunction,\n formatter: accAssignmentItemFormatter,\n defaultValue: SelectionCode.Default,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: [\n {\n validator: defaultAccountAssignmentValidator,\n message: i18next.t(\"Document:AccountAssignment.DefaultNotAllowedWhenEmpty\")\n },\n {\n validator: accountsAreClosedValidator\n },\n {\n validator: accountsAreSetValidator\n }\n ]\n }\n },\n additionalProperties: [\n // ChartOfAccounts needs to be present so that we can infer correct entity set during saving\n { id: \"ChartOfAccounts\" },\n { id: \"DebitAccount\" },\n { id: \"CreditAccount\" },\n { id: ItemCreateCustomAssignmentBc },\n { id: `/${collectionName}/AccountAssignmentSelection/Selection` },\n { id: \"Name\" }\n ]\n },\n [`${accountAssignmentPath}/${ItemCreateCustomAssignmentBc}`]: {\n type: FieldType.Checkbox,\n label: i18next.t(\"Document:AccountAssignment.SaveAsNew\"),\n labelStatus: LabelStatus.Hidden,\n defaultValue: false,\n useForValidation: false,\n customizationData: {\n useForCustomization: false\n },\n isDisabled: args => {\n return !args.storage.context.getCompanyPermissions().has(CompanyPermissionCode.DocumentPosting);\n },\n isVisible: userHasTemplateManagementPermissions\n },\n [`${accountAssignmentPath}/DebitAccount`]: {\n label: i18next.t(\"Document:Form.DebitAccount\"),\n ...generalAccountProps(`/${collectionName}/AccountAssignmentSelection/AccountAssignment/DebitAccount/Name`),\n width: BasicInputSizes.L,\n isRequired: hasOwnSelection,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n }\n },\n [`${accountAssignmentPath}/CreditAccount`]: {\n label: i18next.t(\"Document:Form.CreditAccount\"),\n ...generalAccountProps(`/${collectionName}/AccountAssignmentSelection/AccountAssignment/CreditAccount/Name`),\n width: BasicInputSizes.L,\n isRequired: hasOwnSelection,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n }\n },\n [`${accountAssignmentPath}/Name`]: {\n width: BasicInputSizes.L,\n isRequired: hasOwnSelection,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n }\n }\n };\n};\n\nconst accountFormatter = (val: TValue, args?: IFormatOptions) => {\n if (!val) {\n return \"\";\n }\n const account = args.storage.getValue(args.bindingContext) as IAccountEntity;\n return !!account.Number && !!account.Name ? `${account.Number} - ${account.Name}` : \"\";\n};\n\nexport const getAccountSelectionFieldsDef = (documentType: DocumentTypeCode, args: IGetAccAssignmentGroupArgs = {}): Record => {\n const collapsedRows = [\n [\n { id: getFieldId(\"DebitAccount\", args.isWithoutSelectionPrefix) },\n { id: getFieldId(\"CreditAccount\", args.isWithoutSelectionPrefix) }\n ],\n [\n { id: getFieldId(\"Name\", args.isWithoutSelectionPrefix) }\n ]\n ];\n\n if (!args.skipCreateCustom) {\n collapsedRows[1].push({ id: CreateCustomAssignmentPath });\n }\n\n const obj: Record = {\n [getFieldId(\"\", args.isWithoutSelectionPrefix)]: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.View,\n label: args.isLabelWithoutDefaultPrefix ? i18next.t(\"Document:AccountAssignment.AccountAssignment\") : i18next.t(\"Document:Form.DefaultVat\"),\n fieldSettings: {\n entitySet: EntitySetName.ChartedAccountAssignments,\n displayName: \"ShortName\",\n noRecordText: args.skipNoRecordText ? null : i18next.t(\"Common:Select.NoRecord\"),\n additionalItems: getAdditionalAccAssItems(args.skipNoneItem)\n },\n columns: accountAssignmentSelectColumns,\n width: BasicInputSizes.XL,\n additionalProperties: [\n { id: \"Name\" },\n // ChartOfAccounts needs to be present so that we can infer correct entity set during saving\n { id: \"ChartOfAccounts\" }\n ],\n collapsedRows,\n filter: {\n select: accAssignmentFilterWithType.bind(accAssignmentFilterWithType, documentType)\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: accountsAreClosedValidator\n }\n },\n affectedFields: [\n { id: \"AccountAssignmentSelection/AccountAssignment/DebitAccount\", revalidate: true },\n { id: \"AccountAssignmentSelection/AccountAssignment/CreditAccount\", revalidate: true },\n { id: \"Items/AccountAssignmentSelection/AccountAssignment\", revalidate: true }\n ],\n formatter: accAssignmentFormatter,\n comparisonFunction: accountAssignmentComparisonFunction,\n customizationData: {\n useForCustomization: isNotTaxEvidence\n }\n },\n [getFieldId(\"DebitAccount\", args.isWithoutSelectionPrefix)]: {\n ...generalAccountProps(`/${getFieldId(\"DebitAccount/Name\", args.isWithoutSelectionPrefix)}`, args.transactionDatePath),\n width: BasicInputSizes.L,\n formatter: accountFormatter,\n isRequired: isVatChildRequired,\n isVisible: isVatFieldVisible\n },\n [getFieldId(\"CreditAccount\", args.isWithoutSelectionPrefix)]: {\n ...generalAccountProps(`/${getFieldId(\"CreditAccount/Name\", args.isWithoutSelectionPrefix)}`, args.transactionDatePath),\n width: BasicInputSizes.L,\n formatter: accountFormatter,\n isRequired: isVatChildRequired,\n isVisible: isVatFieldVisible\n },\n [getFieldId(\"Name\", args.isWithoutSelectionPrefix)]: {\n customizationData: {\n useForCustomization: isNotTaxEvidence\n },\n width: BasicInputSizes.XL,\n isRequired: isVatChildRequired,\n isVisible: isVatFieldVisible\n },\n [CreateCustomAssignmentPath]: {\n type: FieldType.Checkbox,\n label: i18next.t(\"Document:AccountAssignment.SaveAsNew\"),\n labelStatus: LabelStatus.Hidden,\n defaultValue: false,\n isVisible: ifAll(userHasTemplateManagementPermissions, isOwnAccountAssignmentSelection),\n isDisabled: args => {\n return !args.storage.context.getCompanyPermissions().has(CompanyPermissionCode.DocumentPosting);\n },\n customizationData: {\n useForCustomization: isNotTaxEvidence\n }\n }\n };\n\n return obj;\n};\n\nexport interface IGetAccAssignmentGroupArgs {\n skipCreateCustom?: boolean;\n skipNoneItem?: boolean;\n skipNoRecordText?: boolean;\n hideTitle?: boolean;\n /** Don't use AccountAssignmentSelection in paths */\n isWithoutSelectionPrefix?: boolean;\n isLabelWithoutDefaultPrefix?: boolean;\n /** Path to date that will be used by getCurrentCoAId to find correct CoA when loading accounts */\n transactionDatePath?: string;\n}\n\nconst isNotTaxEvidence = (args: IGetValueArgs): boolean => {\n return !isCashBasisAccountingCompany(args.context ?? args.storage.context);\n};\n\nexport const getAccAssignmentGroup = ({\n hideTitle,\n isWithoutSelectionPrefix\n }: IGetAccAssignmentGroupArgs = {}): IFormGroupDef => {\n return {\n id: ACCOUNT_ASSIGNMENT_GROUP_ID,\n isVisible: isNotTaxEvidence,\n customizationData: {\n useForCustomization: isNotTaxEvidence\n },\n rows: [[{ id: getFieldId(\"\", isWithoutSelectionPrefix) }]],\n title: hideTitle ? \"\" : i18next.t(\"Document:FormGroup.WithoutVat\")\n };\n};\n\n/**\n * All VATs, which was valid through the time for current agenda's country\n * @param args\n */\nexport const currentAgendaVatsFilter = (args?: IGetValueArgs): string => {\n return `CountryCode eq '${getAgendaCountryCode(args.storage.context)}'`;\n};\n\nconst hasAccountAssignment = (storage: FormStorage, collectionName = \"Items\") => storage.data.definition.fieldDefinition[\"AccountAssignmentSelection/AccountAssignment\"] || storage.data.definition.fieldDefinition[`${collectionName}/AccountAssignmentSelection/AccountAssignment`];\n\n// TODO what is the difference between this and correctAccountId? shouldn't it be just one function?\nexport const processAccountAssignmentSelection = (data: TRecordAny, isLineItem: boolean, isNew: boolean): void => {\n const selectionCode = data?.AccountAssignmentSelection?.Selection?.Code;\n const AApath = \"AccountAssignmentSelection/AccountAssignment\";\n if (selectionCode) {\n if (selectionCode === SelectionCode.None || selectionCode === SelectionCode.Default) {\n setNestedValue(selectionCode, `${AApath}/Id`, data);\n setNestedValue(undefined, `${AApath}/Name`, data);\n }\n if (selectionCode === SelectionCode.Own || selectionCode === SelectionCode.Split) {\n setNestedValue(selectionCode, `${AApath}/Id`, data);\n }\n } else if (isNew && isLineItem) {\n setNestedValue(SelectionCode.Default, `${AApath}/Id`, data);\n setNestedValue(SelectionCode.Default, \"AccountAssignmentSelection/Selection/Code\", data);\n }\n};\n\nexport const setCorrectSpecialItemsForAccountAssignment = (storage: FormStorage, collectionName = \"Items\"): void => {\n if (!hasAccountAssignment(storage, collectionName)) {\n return;\n }\n const isNew = storage.data.bindingContext.isNew();\n const hasRootAa = storage.isValidPath(\"AccountAssignmentSelection/AccountAssignment\");\n if (hasRootAa) {\n processAccountAssignmentSelection(storage.data.entity, false, isNew);\n }\n\n for (const item of (storage.data.entity[collectionName] || [])) {\n processAccountAssignmentSelection(item, true, isNew);\n }\n\n // close group if selection is None\n if (hasRootAa) {\n const assignment = storage.getValueByPath(\"AccountAssignmentSelection/AccountAssignment/Id\");\n if (isNotDefined(assignment) || assignment === SelectionCode.None) {\n storage.expandGroup(false, ACCOUNT_ASSIGNMENT_COLLAPSED_GROUP_ID);\n }\n }\n};\n\nexport interface IPrepareAcAssForSaveOptions {\n collectionName?: string;\n transactionDate?: Date;\n}\n\nexport const prepareAccountAssignmentsForSave = (storage: FormStorage, data: IEntity, options: IPrepareAcAssForSaveOptions = {}): void => {\n if (!hasAccountAssignment(storage, options?.collectionName)) {\n return;\n }\n\n const selection = data.AccountAssignmentSelection?.Selection?.Code;\n if (!selection) {\n data.AccountAssignmentSelection = null;\n } else if (selection === SelectionCode.None) {\n data.AccountAssignmentSelection.AccountAssignment = {};\n } else if (selection === SelectionCode.Default) {\n data.AccountAssignmentSelection.AccountAssignment = {};\n } else if (selection === SelectionCode.Own) {\n\n const origAccAssShortName = getNestedValue(\"AccountAssignmentSelection/AccountAssignment/ShortName\", data)?.split(\"/\");\n const daNumber = getNestedValue(\"AccountAssignmentSelection/AccountAssignment/DebitAccount/Number\", data) ?? origAccAssShortName?.[0];\n const caNumber = getNestedValue(\"AccountAssignmentSelection/AccountAssignment/CreditAccount/Number\", data) ?? origAccAssShortName?.[1];\n const shortName = (caNumber && daNumber) ? `${daNumber}/${caNumber}` : origAccAssShortName;\n\n setNestedValue(shortName, \"AccountAssignmentSelection/AccountAssignment/ShortName\", data);\n }\n\n if (selection === SelectionCode.Split) {\n const coaId = getCurrentCoAId({ storage: storage }, { transactionDate: options.transactionDate });\n for (const item of data.SplitAccountAssignments || []) {\n item.ChartOfAccounts = {\n Id: coaId\n };\n\n const exRate = storage.data.entity.ExchangeRatePerUnit ?? 1;\n item.Amount = roundToDecimalPlaces(2, item.TransactionAmount * exRate);\n }\n\n if (data.AccountAssignmentSelection.AccountAssignment) {\n data.AccountAssignmentSelection.AccountAssignment = null;\n }\n\n return;\n } else if (data.SplitAccountAssignments) {\n data.SplitAccountAssignments = [];\n }\n\n // change AccountAssignmentSelection.Own to AccountAssignmentSelection.Copy if CreateCustomAssignment is checked\n // check both CreateCustomAssignment and ItemCreateCustomAssignment so that it works for both document and document item\n const ownAccountAssignment = data.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Own;\n const createAssignment = data[CreateCustomAssignmentPath] ?? data.AccountAssignmentSelection?.AccountAssignment?.[ItemCreateCustomAssignmentBc];\n\n if (data?.AccountAssignmentSelection) {\n if (ownAccountAssignment && createAssignment) {\n data.AccountAssignmentSelection.Selection.Code = SelectionCode.Copy;\n }\n\n // remove NotId property that came from ChartedAccountAssignments\n if (data.AccountAssignmentSelection.AccountAssignment) {\n delete data.AccountAssignmentSelection.AccountAssignment.NotId;\n\n if ([SelectionCode.Copy, SelectionCode.Own].includes(data.AccountAssignmentSelection.Selection.Code as SelectionCode)) {\n // use fallbackToActiveChOA, we need CoA always present in case drafts are being saved when wrong DateAccountingTransaction is selected,\n // otherwise ChartsOfAccounts(null)/Accounts(xyz) is send on BE and it throws ugly error\n const coaId = getCurrentCoAId({ storage: storage }, {\n transactionDate: options.transactionDate,\n fallbackToActiveChOA: true\n });\n setNestedValue(coaId, \"AccountAssignmentSelection/AccountAssignment/ChartOfAccounts/Id\", data);\n }\n }\n }\n};\n\nconst changeAccountAssignmentSelection = (storage: FormStorage, value: string) => {\n storage.setValueByPath(\"AccountAssignmentSelection/Selection/Code\", value);\n};\n\nexport const handleAccAssignmentChildrenChange = (storage: FormStorage, e: ISmartFieldChange): void => {\n let assignmentBc: BindingContext;\n\n // Credit or Debit account change on both - main account assigment or item\n const isAccountBc = [\"CreditAccount\", \"DebitAccount\"].includes(e.bindingContext.getPath());\n const isMainDocumentAssignment = e.bindingContext.getNavigationPath(true).startsWith(\"AccountAssignmentSelection/AccountAssignment/\");\n if (isAccountBc) {\n storage.setValue(e.bindingContext.navigate(\"Number\"), e.additionalData?.Number);\n storage.setValue(e.bindingContext.navigate(\"Name\"), e.additionalData?.Name);\n\n assignmentBc = e.bindingContext.getParent();\n const debitNumber = storage.getValue(assignmentBc.navigate(\"DebitAccount/Number\"));\n const creditNumber = storage.getValue(assignmentBc.navigate(\"CreditAccount/Number\"));\n if (debitNumber || creditNumber) {\n const fallback = DASH_CHARACTER;\n storage.setValue(assignmentBc.navigate(\"ShortName\"), `${debitNumber ?? fallback}/${creditNumber ?? fallback}`);\n }\n }\n\n // Only main account assignment\n if (isMainDocumentAssignment) {\n assignmentBc = storage.data.bindingContext.navigate(\"AccountAssignmentSelection/AccountAssignment\");\n\n const isAnyAccountSet = [\"CreditAccount\", \"DebitAccount\"].find(path => {\n const bc = assignmentBc.navigate(path);\n return !!storage.getValue(bc, { useDirectValue: false });\n });\n if (e.bindingContext.getPath() === \"Name\" && !e.value && !isAnyAccountSet) {\n storage.clearValue(assignmentBc);\n changeAccountAssignmentSelection(storage, undefined);\n } else {\n storage.setValue(assignmentBc, SelectionCode.Own);\n changeAccountAssignmentSelection(storage, SelectionCode.Own);\n }\n\n }\n\n if (assignmentBc && storage.getInfo(assignmentBc)) {\n storage.addActiveGroup(assignmentBc);\n storage.addActiveGroupByKey(\"Items\");\n }\n};\n\nexport async function correctAccountIdAfterChange(storage: FormStorage, e: ISmartFieldChange): Promise {\n const path = e.bindingContext.getPath();\n const assignmentBc = e.bindingContext.getParent();\n const assignmentPath = assignmentBc.getPath();\n\n if (assignmentPath === \"AccountAssignment\" && (e.triggerAdditionalTasks || [\"Name\"].includes(path))) {\n const info = storage.getInfo(assignmentBc);\n if (info) {\n // correctAccountId directly changes the selection object, so we need the correct one (not from temporal data)\n const selection = storage.getValue(assignmentBc.getParent(), { skipTemporaryValue: true }) as IDocumentAccountAssignmentSelectionEntity;\n const currentId = storage.getValue(assignmentBc, { useDirectValue: false });\n if (currentId) {\n if (!selection.AccountAssignment) {\n selection.AccountAssignment = {};\n }\n // fill with possible temporary value from Items dialog\n selection.AccountAssignment.Id = currentId;\n\n // AccountAssignment can be fetching new items at this very moment\n // => wait for the result before using the items value\n const items = await fetchItemsByInfo(storage, info);\n\n correctAccountId(storage, selection, items, assignmentBc);\n }\n storage.validateFieldSync(assignmentBc);\n storage.addActiveGroup(assignmentBc);\n }\n }\n}\n\ninterface IAccAssHandlerCustomData extends IFormStorageDefaultCustomData {\n updatingAssignment?: IAccountAssignmentEntity;\n}\n\nexport interface IHandleAccAssChangeArgs {\n storage: FormStorage;\n event: ISmartFieldChange;\n documentTypeCode: DocumentTypeCode;\n}\n\nexport const handleAccAssignmentChange = async (args: IHandleAccAssChangeArgs): Promise => {\n const path = args.event.bindingContext.getNavigationPath(true);\n if ((path === CreateCustomAssignmentPath || path?.includes(ItemCreateCustomAssignmentBc)) && args.event.value) {\n // we have to check whether this assignment already exists\n // if so we don't create new one, but update old one.\n // for this purpose we display warning alert to notify the user\n // also we store ID and document types so we can add current document type if it is missing in updated assignment\n\n const accountAssignment = args.storage.getValue(args.event.bindingContext.getParent())?.AccountAssignmentSelection?.AccountAssignment;\n const ca = accountAssignment?.CreditAccount?.Number;\n const da = accountAssignment?.DebitAccount?.Number;\n const name = accountAssignment?.Name;\n const filter = `CreditAccountNumber eq '${ca}' AND DebitAccountNumber eq '${da}' AND Name eq '${name}'`;\n const query = args.storage.oData.getEntitySetWrapper(EntitySetName.AccountAssignments).query().filter(filter).expand(\"DocumentTypes\");\n const assignments = await query.fetchData();\n const existingAssignment = assignments?.value[0];\n args.storage.setCustomData({ updatingAssignment: existingAssignment });\n\n if (existingAssignment) {\n const isInDocTypes = !!(existingAssignment?.DocumentTypes?.find((docType: TRecordAny) => docType.DocumentTypeCode === args.documentTypeCode));\n if (isInDocTypes) {\n // existing account change select to this account\n // same stuff just switch to existing assignment\n const bc = args.event.bindingContext.getParent().navigate(\"AccountAssignmentSelection/AccountAssignment\");\n // storage.clearAndSetValue(bc, existingAssignment.Id);\n const items = args.storage.getInfo(bc)?.fieldSettings?.items;\n const matchingItem = findMatchingPureAccAss(existingAssignment, items);\n if (matchingItem) {\n args.storage.clearAndSetValue(bc, matchingItem.id);\n const selBc = args.event.bindingContext.getParent().navigate(\"AccountAssignmentSelection/Selection\");\n args.storage.clearAndSetValue(selBc, SelectionCode.Copy);\n args.storage.refreshGroup(bc);\n }\n }\n }\n }\n\n if (path.startsWith(\"AccountAssignmentSelection/AccountAssignment\")) {\n args.storage.setValueByPath(CreateCustomAssignmentPath, false);\n }\n\n if (path === \"AccountAssignmentSelection/AccountAssignment\" && args.event.triggerAdditionalTasks) {\n\n const shouldLoadFields = _handleAccAssignmentChange(args.storage, args.event.bindingContext, args.event.value);\n\n if (shouldLoadFields) {\n args.storage.processDependentField(getAccountAssignmentDependentFields(false), args.event.additionalData, args.event.bindingContext);\n }\n }\n\n return true;\n};\n\n/**\n * Common method used to transform selected AccountAssignment -> DocumentAccountAssignment\n *\n * @param storage\n * @param bindingContext\n * @param id\n */\nexport const _handleAccAssignmentChange = (storage: FormStorage, bindingContext: BindingContext, id: TValue): boolean => {\n let shouldProcessLocalDependentFields = true;\n if (!hasAccountAssignment(storage)) {\n return shouldProcessLocalDependentFields;\n }\n\n const _clearAccounts = () => {\n for (const path of vatAssignmentFields) {\n const bc = storage.data.bindingContext.navigate(path);\n storage.clearAndSetValue(bc, {});\n }\n storage.setValueByPath(\"AccountAssignmentSelection/AccountAssignment/Name\", \"\");\n };\n\n if (!id || id === SelectionCode.None) {\n changeAccountAssignmentSelection(storage, id ? SelectionCode.None : undefined);\n _clearAccounts();\n // close the group if selection is \"None\"\n storage.expandGroup(false, ACCOUNT_ASSIGNMENT_COLLAPSED_GROUP_ID);\n storage.refreshGroup(bindingContext);\n storage.refreshGroupByKey(\"Items\");\n } else if (id === SelectionCode.Own) {\n const oldValue = storage.getValue(bindingContext, { useDirectValue: false });\n if (!oldValue || oldValue !== SelectionCode.Own) {\n storage.expandGroup(true, ACCOUNT_ASSIGNMENT_COLLAPSED_GROUP_ID);\n changeAccountAssignmentSelection(storage, SelectionCode.Own);\n storage.addActiveGroupByKey(ACCOUNT_ASSIGNMENT_GROUP_ID);\n } else {\n shouldProcessLocalDependentFields = false;\n }\n } else if (id) {\n changeAccountAssignmentSelection(storage, SelectionCode.Copy);\n // data copying is handled by localDependentFields\n storage.refreshGroup(bindingContext);\n }\n\n return shouldProcessLocalDependentFields;\n};\n\n/** Apparently, some accounts shouldn't be used in AccountAssignments. It isn't BE error, but we should not allow it.\n * @see https://solitea-cz.atlassian.net/browse/DEV-17670\n * If analytical account (either for banks or cashboxes) is used, we should swap it with its root parent (BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX/CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX). */\nconst fixNewAccountAssigment = async (storage: FormStorage, accountAssignment: IAccountAssignmentEntity): Promise => {\n const cleanAccountAssignment = { ...accountAssignment };\n const prefixes = [BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX.toString(), CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX.toString()];\n let accountItems: ISelectItem[];\n let wasChanged = false;\n\n const fnGetAccountItems = async () => {\n if (!accountItems) {\n // we need to fetch accounts, to find name of the right root account\n const accountPath = \"Items/AccountAssignmentSelection/AccountAssignment/CreditAccount\";\n accountItems = await fetchItemsByInfo(storage, storage.getInfo(storage.data.bindingContext.navigate(accountPath)));\n }\n\n return accountItems;\n };\n\n for (const prefix of prefixes) {\n if (cleanAccountAssignment.CreditAccountNumber.startsWith(prefix) && cleanAccountAssignment.CreditAccountNumber !== prefix) {\n const accountItems = await fnGetAccountItems();\n const rootAccount = accountItems.find((item) => (item.additionalData as IAccountEntity).Number === prefix)?.additionalData as IAccountEntity;\n\n cleanAccountAssignment.CreditAccountNumber = prefix;\n cleanAccountAssignment.CreditAccountName = rootAccount.Name;\n wasChanged = true;\n }\n\n if (cleanAccountAssignment.DebitAccountNumber.startsWith(prefix) && cleanAccountAssignment.DebitAccountNumber !== prefix) {\n const accountItems = await fnGetAccountItems();\n const rootAccount = accountItems.find((item) => (item.additionalData as IAccountEntity).Number === prefix)?.additionalData as IAccountEntity;\n\n cleanAccountAssignment.DebitAccountNumber = prefix;\n cleanAccountAssignment.DebitAccountName = rootAccount.Name;\n wasChanged = true;\n }\n }\n\n if (wasChanged) {\n const origAccAssShortName = cleanAccountAssignment.ShortName;\n const shortName = (cleanAccountAssignment.DebitAccountNumber && cleanAccountAssignment.CreditAccountNumber) ? `${cleanAccountAssignment.DebitAccountNumber}/${cleanAccountAssignment.CreditAccountNumber}` : origAccAssShortName;\n\n cleanAccountAssignment.ShortName = shortName;\n }\n\n return cleanAccountAssignment;\n};\n\nexport const sendAdditionalRequestForAccountAssignment = async (storage: FormStorage, entity: IEntity, batch: BatchRequest, docTypeCode: DocumentTypeCode, collectionName = \"Items\"): Promise => {\n let shouldReloadAccountAssignment = false;\n if (!hasAccountAssignment(storage, collectionName)) {\n return shouldReloadAccountAssignment;\n }\n const accountAssignmentsWrapper = batch.getEntitySetWrapper(EntitySetName.AccountAssignments);\n\n const _addBatch = async (entity: IEntity, key: string) => {\n const createAssignment = key === CreateCustomAssignmentPath ? entity[key] : entity.AccountAssignmentSelection?.AccountAssignment?.[key];\n if (createAssignment) {\n shouldReloadAccountAssignment = true;\n // DocumentAccountAssignments has references to debit/credit account, just like AccountAssignmentWithReferences\n // but we are creating new AccountAssignment which have CreditAccountName + CreditAccountNumber instead\n const documentAccountAssignment = entity.AccountAssignmentSelection.AccountAssignment as IDocumentAccountAssignmentEntity;\n const newAccountAssignment: IAccountAssignmentEntity = await fixNewAccountAssigment(storage, {\n CreditAccountName: documentAccountAssignment.CreditAccount?.Name,\n CreditAccountNumber: documentAccountAssignment.CreditAccount?.Number,\n DebitAccountName: documentAccountAssignment.DebitAccount?.Name,\n DebitAccountNumber: documentAccountAssignment.DebitAccount?.Number,\n Name: documentAccountAssignment.Name,\n ShortName: documentAccountAssignment.ShortName,\n Note: documentAccountAssignment.Note\n });\n\n const upAssignment = storage.getCustomData().updatingAssignment;\n\n if (upAssignment) {\n const type = upAssignment.DocumentTypes?.find((type: TRecordAny) => type.DocumentTypeCode === docTypeCode);\n if (!type) {\n newAccountAssignment.DocumentTypes = [{ DocumentTypeCode: docTypeCode }];\n }\n accountAssignmentsWrapper.update(upAssignment.Id, newAccountAssignment);\n } else {\n newAccountAssignment.DocumentTypes = [{ DocumentTypeCode: docTypeCode }];\n accountAssignmentsWrapper.create(newAccountAssignment);\n }\n }\n };\n\n await _addBatch(entity, CreateCustomAssignmentPath);\n for (const item of entity[collectionName] || []) {\n await _addBatch(item, ItemCreateCustomAssignmentBc);\n }\n\n return shouldReloadAccountAssignment;\n};\n\nexport const invalidateAccountAssignments = (storage: FormStorage, collectionName = \"Items\"): void => {\n if (!hasAccountAssignment(storage, collectionName)) {\n return;\n }\n\n const bcs = [];\n\n for (const item of storage.data.entity[collectionName] || []) {\n const itemBc = storage.data.bindingContext.navigate(collectionName).addKey(item).navigate(\"AccountAssignmentSelection/AccountAssignment\");\n bcs.push(itemBc);\n }\n\n invalidateItems(bcs, storage);\n};\n\nexport const correctAccountIds = async (storage: FormStorage, collectionName = \"Items\"): Promise => {\n if (!hasAccountAssignment(storage, collectionName)) {\n return;\n }\n\n const hasRootAa = storage.isValidPath(\"AccountAssignmentSelection/AccountAssignment\");\n\n // call fetchAndSetItemsByInfo for each item, they could use different filter\n // fetchItems is cached, so it won't be called multiple times unnecessarily\n\n if (hasRootAa) {\n const items = await fetchItemsByPath(storage, \"AccountAssignmentSelection/AccountAssignment\");\n const accSel = storage.data.entity.AccountAssignmentSelection;\n\n correctAccountId(storage, accSel, items, storage.data.bindingContext.navigate(\"AccountAssignmentSelection/AccountAssignment\"));\n }\n\n const itemsBc = storage.data.bindingContext.navigate(collectionName);\n\n for (const item of (storage.data.entity[collectionName] || [])) {\n const bc = itemsBc.addKey(item).navigate(\"AccountAssignmentSelection/AccountAssignment\");\n // todo: these are the same items for each collection item, so we could cache them?\n const itemItems = await fetchItemsByInfo(storage, storage.getInfo(bc));\n\n correctAccountId(storage, item.AccountAssignmentSelection, itemItems, bc);\n }\n};\n\nconst correctAccountId = (storage: FormStorage, accSel: IEntity, items: ISelectItem[], accountAssignmentBc: BindingContext) => {\n const id = accSel?.AccountAssignment?.Id;\n\n if (!id || id === SelectionCode.Split || id === SelectionCode.None || id === SelectionCode.Default || id === SelectionCode.Copy) {\n return;\n }\n const matchingAccount = findMatchingAccAss(accSel?.AccountAssignment, items ?? []);\n if (!matchingAccount) {\n setNestedValue(SelectionCode.Own, \"Selection/Code\", accSel);\n setNestedValue(SelectionCode.Own, \"AccountAssignment/Id\", accSel);\n } else {\n setNestedValue(SelectionCode.Copy, \"Selection/Code\", accSel);\n setNestedValue(matchingAccount.id, \"AccountAssignment/Id\", accSel);\n\n // in case shortname was changed in the original AA\n if (matchingAccount.additionalData?.ShortName && matchingAccount.additionalData.ShortName !== accSel.AccountAssignment.ShortName) {\n accSel.AccountAssignment.ShortName = matchingAccount.additionalData.ShortName;\n }\n }\n};\n\n/** Matching account assignments have same debit and credit account */\ninterface IAccountCollection {\n cas: ISelectItem[];\n das: ISelectItem[];\n}\n\ninterface IGetMatchingAccountsArgs {\n storage: FormStorage;\n accountAssignment: IEntity;\n collection?: string;\n accounts?: IAccountCollection;\n}\n\nexport const getMatchingAccounts = async (args: IGetMatchingAccountsArgs) => {\n let cas = args.accounts?.cas;\n let das = args.accounts?.das;\n if (!args.accounts) {\n const prefix = args.collection ? `${args.collection}/` : \"\";\n const caInfo = getInfoByPath(args.storage, `${prefix}AccountAssignmentSelection/AccountAssignment/CreditAccount`);\n const daInfo = getInfoByPath(args.storage, `${prefix}AccountAssignmentSelection/AccountAssignment/DebitAccount`);\n\n // this function is called without binding context - it is not related to any particular line item\n // => don't try to reuse already existing items, nor set the fetched accounts to any field info\n // calling fetchItemsByInfo multiple times should be fine, it is cached\n cas = await fetchItemsByInfo(args.storage, caInfo);\n das = await fetchItemsByInfo(args.storage, daInfo);\n }\n\n const ca = cas.find(ca => isMatchingAccount(ca.additionalData, args.accountAssignment.CreditAccount));\n const da = das.find(da => isMatchingAccount(da.additionalData, args.accountAssignment.DebitAccount));\n\n if (ca || da) {\n return { ca, da };\n }\n\n return null;\n};\n\nexport const findMatchingAccAss = (accountAssignment: IDocumentAccountAssignmentEntity, items: ISelectItem[]) => {\n if (!accountAssignment) {\n return null;\n }\n\n return items.find((item) => {\n return accountAssignment.CreditAccount && isMatchingAccount(accountAssignment.CreditAccount, item.additionalData.CreditAccount)\n && accountAssignment.DebitAccount && isMatchingAccount(accountAssignment.DebitAccount, item.additionalData.DebitAccount)\n && accountAssignment.Name === item.additionalData.Name;\n });\n};\n\nconst findMatchingPureAccAss = (accountAssignment: IEntity, items: ISelectItem[]) => {\n if (!accountAssignment) {\n return null;\n }\n\n return items.find((item) => {\n return accountAssignment.CreditAccountName === item.additionalData.CreditAccount?.Name && accountAssignment.CreditAccountNumber === item.additionalData.CreditAccount?.Number\n && accountAssignment.DebitAccountName === item.additionalData.DebitAccount?.Name && accountAssignment.DebitAccountNumber === item.additionalData.DebitAccount?.Number\n && accountAssignment.Name === item.additionalData.Name;\n });\n};\n\nexport const loadAccountAssignments = async (storage: FormStorage, collectionName?: string): Promise => {\n const prefix = collectionName ? `${collectionName}/` : \"\";\n return fetchItemsByPath(storage, `${prefix}AccountAssignmentSelection/AccountAssignment`);\n};\n\nexport const reloadAccountsAndAssignments = async (storage: FormStorage, fiscalYear: IFiscalYearEntity, hasRootAssignment = true, collectionName = \"Items\", withoutBusy = false): Promise => {\n if (!hasAccountAssignment(storage, collectionName)) {\n return;\n }\n if (!withoutBusy) {\n // we can't let user save the form before the values are changed => busy indicator\n storage.setBusy(true);\n }\n\n const accAssPath = \"AccountAssignmentSelection/AccountAssignment\";\n\n let rootBcs: BindingContext[] = [];\n let cacheStrategy = CacheStrategy.View;\n\n if (hasRootAssignment) {\n const accAssBc = storage.data.bindingContext.navigate(accAssPath);\n const accAssInfo = storage.getInfo(accAssBc);\n\n rootBcs = [accAssBc, accAssBc.navigate(\"DebitAccount\"), accAssBc.navigate(\"CreditAccount\")];\n cacheStrategy = accAssInfo.cacheStrategy ?? CacheStrategy.View;\n }\n\n const itemsAccAssBcs: BindingContext[] = [];\n\n if (collectionName && storage.data.entity[collectionName]) {\n const subItems = storage.data.bindingContext.iterateNavigation(collectionName, storage.data.entity[collectionName]);\n for (const element of subItems || []) {\n itemsAccAssBcs.push(element.bindingContext.navigate(accAssPath));\n }\n }\n\n // clear cache and items (for document and all document items) so that fetchSelectItems/SmartSelect can load new items\n invalidateItems([\n ...rootBcs,\n ...itemsAccAssBcs.flatMap((bc) => [bc, bc.navigate(\"DebitAccount\"), bc.navigate(\"CreditAccount\")])\n ], storage, cacheStrategy);\n\n // fetch new acc ass items before letting SmartSelect fetch them automatically,\n // so that we can change account assignment selection based on those new items\n // let SmartSelect handle debit/credit accounts\n // calling fetchSelectItems will store items in the cache as well => won't cause redundant requests\n const items = fiscalYear ? (await loadAccountAssignments(storage)) : [];\n\n const fnResetItemsForNonextistingFiscalYear = (accAssBc: BindingContext) => {\n const accAssInfo = storage.getInfo(accAssBc);\n\n // set items directly into fieldSettings, instead of letting SmartSelect handle it by itself\n // to prevent pointless request when no fiscal year exists\n accAssInfo.fieldSettings.items = [];\n storage.getInfo(accAssBc.navigate(\"DebitAccount\")).fieldSettings.items = [];\n storage.getInfo(accAssBc.navigate(\"CreditAccount\")).fieldSettings.items = [];\n };\n\n // change items and value for all DOCUMENT ITEMS acc assignment field\n if (hasRootAssignment) {\n const accAssBc = storage.data.bindingContext.navigate(accAssPath);\n itemsAccAssBcs.unshift(accAssBc);\n }\n\n for (const itemAccAssBc of itemsAccAssBcs) {\n if (!fiscalYear) {\n fnResetItemsForNonextistingFiscalYear(itemAccAssBc);\n clearSelect(storage, itemAccAssBc);\n continue;\n }\n\n const itemBc = itemAccAssBc.getParent().getParent();\n\n await rewriteAccountAssignment({\n storage,\n collectionName: itemAccAssBc.toString().includes(collectionName) ? collectionName : null,\n choaId: fiscalYear.ChartOfAccounts?.Id,\n itemBc,\n accountAssignments: items\n });\n }\n\n if (!withoutBusy) {\n storage.setBusy(false);\n }\n};\n\nconst clearSelect = (storage: FormStorage, bc: BindingContext) => {\n storage.clearAndSetValue(bc, {});\n storage.clearAndSetValue(bc.getParent(), {});\n\n const ca = bc.navigate(\"CreditAccount\");\n storage.clearValue(ca);\n\n const da = bc.navigate(\"DebitAccount\");\n storage.clearValue(da);\n};\n\ninterface IAccountCollection {\n cas: ISelectItem[];\n das: ISelectItem[];\n}\n\ninterface IRewriteAccountAssignment {\n storage: FormStorage;\n choaId: number;\n accounts?: IAccountCollection;\n itemBc: BindingContext;\n accountAssignments: ISelectItem[];\n collectionName?: string;\n}\n\nexport const getExpenseGains = (storage: FormStorage, id: number): IPaymentDocumentItemEntity[] => {\n return storage.data.entity.Items?.filter((item: IPaymentDocumentItemEntity) => item?.LinkedDocument?.Id === id\n && (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss));\n};\n\ninterface IDateChangeArgs {\n value: Date;\n storage: FormStorage;\n bindingContext: BindingContext;\n}\n\nexport const handleItemDateChange = async (args: IDateChangeArgs) => {\n const storage = args.storage;\n\n const _refreshAccounts = async () => {\n const date = args.value as Date;\n const choaId = getChoAIdBasedOnDate(storage as FormStorage, date, false);\n\n const itemBc = args.bindingContext.getParent();\n const asBc = itemBc.navigate(\"AccountAssignmentSelection/AccountAssignment\");\n const as = storage.getValue(asBc);\n // try to find previous CoA id to prevent unnecessary reload\n // AccountAssignment doesn't have to be selected, so try to also take it from the fetched account assignment items\n const oldCoAId = as?.ChartOfAccounts?.Id ?? storage.getInfo(asBc).fieldSettings.items?.[0]?.additionalData?.ChartOfAccounts?.Id;\n\n if (oldCoAId !== choaId) {\n const caBc = asBc.navigate(\"CreditAccount\");\n const daBc = asBc.navigate(\"DebitAccount\");\n\n const caInfo = storage.getInfo(caBc);\n const daInfo = storage.getInfo(daBc);\n const asInfo = storage.getInfo(asBc);\n\n invalidateItems([asBc, caBc, daBc], storage);\n\n let cas: ISelectItem[] = [], das: ISelectItem[] = [], accounts: ISelectItem[] = [];\n\n if (choaId) {\n const promises = [fetchAndSetItemsByInfo(storage, caInfo), fetchAndSetItemsByInfo(storage, daInfo), fetchAndSetItemsByInfo(storage, asInfo)];\n [cas, das, accounts] = await Promise.all(promises);\n }\n\n await rewriteAccountAssignment({\n storage,\n accounts: { cas, das },\n choaId: choaId,\n itemBc,\n accountAssignments: accounts\n });\n\n if (linkedId && cas && das) {\n const gains = getExpenseGains(storage, linkedId);\n for (const gain of gains || []) {\n const id = gain.Id ?? `#id=${(gain as IEntity)[BindingContext.NEW_ENTITY_ID_PROP]}`;\n const bc = storage.data.bindingContext.navigate(`Items(${id})`);\n const caIBc = bc.navigate(\"AccountAssignmentSelection/AccountAssignment/CreditAccount\");\n const daIBc = bc.navigate(\"AccountAssignmentSelection/AccountAssignment/DebitAccount\");\n\n const caIInfo = storage.getInfo(caIBc);\n const daIInfo = storage.getInfo(daIBc);\n\n invalidateItems([caIBc, daIBc], storage);\n\n const promises = [fetchAndSetItemsByInfo(storage, caIInfo), fetchAndSetItemsByInfo(storage, daIInfo)];\n const [casG, dasG] = await Promise.all(promises);\n\n if (casG && dasG) {\n const as = storage.getValue(bc.navigate(\"AccountAssignmentSelection/AccountAssignment\"));\n if (!as.ChartOfAccounts) {\n as.ChartOfAccounts = {};\n }\n\n as.ChartOfAccounts.Id = choaId;\n\n const ca = casG.find(ca => isMatchingAccount(ca.additionalData, as.CreditAccount));\n const da = dasG.find(da => isMatchingAccount(da.additionalData, as.DebitAccount));\n\n ca?.additionalData ? as.CreditAccount = { ...ca?.additionalData } : delete as.CreditAccount;\n da?.additionalData ? as.DebitAccount = { ...da?.additionalData } : delete as.DebitAccount;\n }\n }\n }\n }\n };\n\n const item = storage.getValue(args.bindingContext.getParent());\n const linkedId = item?.LinkedDocument?.Id;\n\n // gain date MUST be set BEFORE accounts are refreshed as their entity set depends on the date\n // THIS MUST BE SET BEFORE _refreshAccounts is called !!\n // so the corrent entityset callback is called\n if (linkedId) {\n const gains = getExpenseGains(storage, linkedId);\n for (const gain of gains || []) {\n const id = gain.Id ?? `#id=${gain[BindingContext.NEW_ENTITY_ID_PROP as keyof IPaymentDocumentItemEntity]}`;\n const _path = `Items(${id})/DateAccountingTransaction`;\n const bc = storage.data.bindingContext.navigate(_path);\n storage.setValue(bc, args.value);\n }\n }\n\n await _refreshAccounts();\n};\n\nexport const rewriteSplitAccountAssignments = (args: IRewriteAccountAssignment) => {\n const item = args.storage.getValue(args.itemBc);\n const { storage } = args;\n\n const bcs = [];\n for (const element of args.itemBc.iterateNavigation(PaymentDocumentItemEntity.SplitAccountAssignments, item[PaymentDocumentItemEntity.SplitAccountAssignments])) {\n const caBc = element.bindingContext.navigate(\"CreditAccount\");\n const daBc = element.bindingContext.navigate(\"DebitAccount\");\n\n bcs.push(caBc);\n bcs.push(daBc);\n\n const ca = args.accounts.cas.find(ca => isMatchingAccount(ca.additionalData, element.entity.CreditAccount));\n const da = args.accounts.das.find(da => isMatchingAccount(da.additionalData, element.entity.DebitAccount));\n\n element.entity.CreditAccount = { ...ca?.additionalData };\n element.entity.DebitAccount = { ...da?.additionalData };\n\n if (!ca || !da) {\n storage.setError(args.itemBc.navigate(\"AccountAssignmentSelection/AccountAssignment\"), {\n message: storage.t(\"Banks:Transactions.SetSplit\"),\n errorType: ValidationErrorType.Field\n });\n }\n }\n\n invalidateItems(bcs, storage);\n};\n\nexport const rewriteAccountAssignment = async (args: IRewriteAccountAssignment) => {\n const item = args.storage.getValue(args.itemBc);\n const isSplit = item?.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split;\n\n if (isSplit) {\n rewriteSplitAccountAssignments(args);\n return;\n }\n\n const aaBc = args.itemBc.navigate(\"AccountAssignmentSelection/AccountAssignment\");\n const as = args.storage.getValue(aaBc);\n\n const fnApplyMatchingValues = (accAss: IEntity, matchingAccAss: IChartedAccountAssignmentEntity) => {\n accAss.Id = matchingAccAss.NotId;\n accAss.ChartOfAccounts = { ...matchingAccAss.ChartOfAccounts };\n accAss.CreditAccount = { ...matchingAccAss.CreditAccount };\n accAss.DebitAccount = { ...matchingAccAss.DebitAccount };\n };\n\n if (as && as.Id !== SelectionCode.Default && as.Id !== SelectionCode.None) {\n let matchingAccAss: IChartedAccountAssignmentEntity;\n\n // first, try to find matching account assignment\n // if it doesn't exist, or SelectionCode.Own, try to find matching accounts\n // if those don't exist, clear the select\n if (as.Id !== SelectionCode.Own) {\n matchingAccAss = findMatchingAccAss(as, args.accountAssignments)?.additionalData;\n\n if (matchingAccAss) {\n fnApplyMatchingValues(as, matchingAccAss);\n }\n }\n\n if (as.Id === SelectionCode.Own || !matchingAccAss) {\n // check whether there is credit and debit accounts existing in new fiscal period\n // if so, change the ChartOfAccounts based on that period\n const accounts = await getMatchingAccounts({\n storage: args.storage,\n accounts: args.accounts,\n accountAssignment: as,\n collection: args.collectionName\n });\n\n if (accounts && accounts.ca?.additionalData && accounts.da?.additionalData) {\n as.CreditAccount = { ...accounts.ca?.additionalData };\n as.DebitAccount = { ...accounts.da?.additionalData };\n as.ChartOfAccounts = {\n ...as.ChartOfAccounts,\n Id: args.choaId\n };\n as.Id = SelectionCode.Own;\n // set selection to Own as well, it could be something else\n args.storage.setValue(args.itemBc.navigate(\"AccountAssignmentSelection/Selection\"), SelectionCode.Own);\n } else {\n clearSelect(args.storage, aaBc);\n }\n }\n }\n};\n\nexport const clearItemAccAssignment = (storage: FormStorage, bindingContext: BindingContext): void => {\n // we need to clear both value and current value\n const bcs = [\"CreditAccount\", \"DebitAccount\"].map(id => bindingContext.navigate(id));\n bcs.forEach(bc => storage.clearAndSetValue(bc, {}));\n // Credit and DebitAccount are confirmable fields\n // storage.confirmFields(bcs);\n};\n\n\nexport interface IAccAssDialogCustomData extends IFormStorageDefaultCustomData {\n isSplitDialogOpened?: boolean;\n splitDialogError?: IValidationError;\n isDialogOpen?: boolean;\n AccountAssignmentDialogBc?: BindingContext;\n}\n\n\ninterface IItemAccAssChangeArgs {\n storage: FormStorage;\n e: ISmartFieldChange;\n oldId?: SelectionCode;\n}\n\nexport const handleItemAccAssignmentDialog = ({ e, storage, oldId }: IItemAccAssChangeArgs): boolean => {\n const { bindingContext, value } = e;\n\n if (bindingContext?.getPath() === \"AccountAssignment\") {\n if (value === SelectionCode.Split && e.triggerAdditionalTasks) {\n storage.setCustomData({\n isSplitDialogOpened: true,\n splitDialogError: storage.getError(bindingContext),\n AccountAssignmentDialogBc: bindingContext\n });\n\n storage.setTemporalData(bindingContext, { value: SelectionCode.Split });\n storage.refresh();\n // stops processing the change, just opens the dialog\n return true;\n }\n\n if (value === SelectionCode.Own && e.triggerAdditionalTasks) {\n const currentAssignment = oldId ?? storage.getValue(bindingContext, { useDirectValue: false });\n if (!currentAssignment || currentAssignment !== SelectionCode.Own) {\n // fill temporal data because of validation in the temporal dialog\n AccountDialogFields.forEach(field =>\n storage.setTemporalData(bindingContext.navigate(field), {\n value: undefined,\n additionalData: {},\n additionalFieldData: {}\n }));\n }\n\n // set Own selection to temporal data\n storage.setTemporalData(bindingContext, { value: SelectionCode.Own });\n storage.setTemporalData(bindingContext.getParent().navigate(\"Selection/Code\"), { value: SelectionCode.Own });\n\n storage.setCustomData({\n isDialogOpen: true,\n AccountAssignmentDialogBc: bindingContext\n });\n\n storage.refresh();\n // stops processing the change, just opens the dialog\n return true;\n }\n }\n return false;\n};\n\nexport const handleItemAccAssignmentChange = (args: IItemAccAssChangeArgs): void => {\n const { e, storage } = args;\n const { bindingContext } = e;\n\n if (bindingContext?.getPath() === \"AccountAssignment\") {\n const id = storage.getValue(bindingContext.navigate(\"Id\"), { useDirectValue: false });\n const itemBc = bindingContext.getParent().getParent();\n const item = storage.getValue(itemBc);\n\n if (!id || id === SelectionCode.None) {\n setNestedValue(id, \"AccountAssignmentSelection/Selection/Code\", item);\n\n // null/AccountAssignmentSelection.None => completely remove AccountAssignment from item\n clearItemAccAssignment(storage, bindingContext);\n } else if (id === SelectionCode.Default) {\n setNestedValue(id, \"AccountAssignmentSelection/Selection/Code\", item);\n } else if (id !== SelectionCode.Default && id !== SelectionCode.None) {\n const value = storage.getValue(bindingContext, { useDirectValue: false });\n\n if (value !== SelectionCode.Own) {\n setNestedValue(SelectionCode.Copy, \"AccountAssignmentSelection/Selection/Code\", item);\n }\n\n // data are already stored in the item - they are loaded in the select in additional data\n }\n const selectionBc = bindingContext.getParent().navigate(\"Selection\");\n storage.correctEnumValue(selectionBc, getNestedValue(\"AccountAssignmentSelection/Selection/Code\", item));\n\n // we need to rerender debit/credit fields\n // todo should we automatically add fields with same prefix as active? =>\n // => AccountAssignmentSelection/AccountAssignment would cause AccountAssignmentSelection/AccountAssignment/DebitAccount to rerender\n storage.processDependentField(getAccountAssignmentDependentFields(true), e.additionalData, bindingContext);\n }\n};\n\nexport const setDefaultAccountAssignment = async (storage: FormStorage, entitySet: string, withoutBusy = false): Promise => {\n if (!isAccountAssignmentCompany(storage.context)) {\n return;\n }\n const accAssPath = \"AccountAssignmentSelection/AccountAssignment\";\n const defaultAccAssAccounts = cloneDeep(storage.data.definition.fieldDefinition[accAssPath]?.defaultValue) as any;\n\n if (!storage.data.entity.AccountAssignmentSelection?.AccountAssignment) {\n // set empty object to trigger error validation when empty\n storage.data.entity.AccountAssignmentSelection = {\n AccountAssignment: {}\n };\n }\n\n const _handleChange = async (event: ISmartFieldChange) => {\n handleAccAssignmentChildrenChange(storage, event);\n await handleAccAssignmentChange({\n storage, event,\n documentTypeCode: storage.data.entity.DocumentTypeCode\n });\n storage.handleChange(event);\n\n await correctAccountIdAfterChange(storage, event);\n };\n\n if (!defaultAccAssAccounts || !storage.data.fieldsInfo[`${entitySet}/${accAssPath}`]) {\n return;\n }\n\n if (!withoutBusy) {\n storage.setBusy(true);\n }\n\n // load items manually before select will do it automatically,\n // so that we are able to set default value to Account Assignment\n const accAssItems = await loadAccountAssignments(storage);\n\n\n const accAssBc = storage.data.bindingContext.navigate(accAssPath);\n\n let defaultAccAss: ISelectItem;\n\n if (accAssItems?.length > 0) {\n defaultAccAss = cloneDeep(\n accAssItems.find(accItem => {\n return accItem.additionalData.DebitAccount.Number === defaultAccAssAccounts?.DebitAccount?.Number && accItem.additionalData.CreditAccount.Number === defaultAccAssAccounts?.CreditAccount?.Number;\n })\n );\n } else {\n // if there is no accountAssignment, set SelectionCode.Own to prevent select from being in a wrong state\n defaultAccAss = cloneDeep(storage.getInfo(accAssBc)?.fieldSettings?.additionalItems?.find(item => item.id === SelectionCode.Own));\n }\n\n // todo is there a better way how to set a default account assignment?\n if (defaultAccAss) {\n await _handleChange({\n value: defaultAccAss.id,\n bindingContext: accAssBc,\n triggerAdditionalTasks: true,\n additionalData: defaultAccAss.additionalData,\n groupId: defaultAccAss.groupId,\n currentValue: defaultAccAss.label\n });\n\n if (defaultAccAss.id === SelectionCode.Own) {\n // try to select accounts by Number\n const accounts: { DebitAccount: ISelectItem[], CreditAccount: ISelectItem[] } = {\n DebitAccount: await fetchItemsByPath(storage, `${accAssPath}/DebitAccount`),\n CreditAccount: null\n };\n\n if (storage.getInfo(storage.data.bindingContext.navigate(`${accAssPath}/DebitAccount`)).filter\n !== storage.getInfo(storage.data.bindingContext.navigate(`${accAssPath}/CreditAccount`)).filter) {\n // fetch both account types if they have different filter\n accounts.CreditAccount = await fetchItemsByPath(storage, `${accAssPath}/CreditAccount`);\n } else {\n accounts.CreditAccount = cloneDeep(accounts.DebitAccount);\n }\n\n for (const prop of [\"DebitAccount\", \"CreditAccount\"]) {\n const { Number, Name } = defaultAccAssAccounts[prop] ?? {};\n const accountSelectItem = Number && accounts[prop as (\"DebitAccount\" | \"CreditAccount\")].find(item => item.additionalData.Number === Number\n && (!Name || item.additionalData.Name === Name));\n\n if (accountSelectItem) {\n await _handleChange({\n value: accountSelectItem.id,\n bindingContext: accAssBc.navigate(prop),\n triggerAdditionalTasks: true,\n additionalData: accountSelectItem.additionalData,\n groupId: accountSelectItem.groupId,\n currentValue: accountSelectItem.label\n });\n }\n }\n if (defaultAccAssAccounts?.Name) {\n await _handleChange({\n value: defaultAccAssAccounts.Name,\n bindingContext: accAssBc.navigate(\"Name\")\n });\n }\n }\n\n } else {\n storage.clearValue(accAssBc.navigate(\"DebitAccount\"));\n storage.clearValue(accAssBc.navigate(\"CreditAccount\"));\n }\n\n storage.refresh(true);\n\n if (!withoutBusy) {\n storage.setBusy(false);\n }\n};\n\nexport function getDocumentTypeLabel(type: IDocumentTypeEntity): string {\n let key: string;\n\n switch (type.Code) {\n case DocumentTypeCode.ProformaInvoiceReceived:\n key = \"ReceivedDDOPP\";\n break;\n case DocumentTypeCode.ProformaInvoiceIssued:\n key = \"IssuedDDOPP\";\n break;\n }\n\n return key ? i18next.t(`Common:DocumentTypeName.${key}`) : type.Name;\n}\n\nexport type AccountAssignmentAccountType =\n DocumentAccountAssignmentEntity.CreditAccount\n | DocumentAccountAssignmentEntity.DebitAccount;\nexport const creditAndDebitAccount: AccountAssignmentAccountType[] = [DocumentAccountAssignmentEntity.DebitAccount, DocumentAccountAssignmentEntity.CreditAccount];\n\n/**\n * returns filter query for documents which has any item using specified account number\n * @param accountType\n * @param accountNumber\n */\nexport function getDocumentFilterByUsedAccountNumber(accountType: AccountAssignmentAccountType, accountNumber: number | string): string {\n const accountNumberPath = `AccountAssignmentSelection/AccountAssignment/${accountType}/Number`;\n const _getCondition = (prefix?: string) =>\n `startswith(${prefix ? `${prefix}/` : \"\"}${accountNumberPath}, '${accountNumber}')`;\n\n return `((${_getCondition()} AND Items/any(aa: aa/AccountAssignmentSelection/SelectionCode eq '${SelectionCode.Default}'))\n OR Items/any(aa: ${_getCondition(\"aa\")}))`;\n}\n\n\nexport const convertAccountAssignmentIntoSelection = (accountAssignment: IAccountAssignmentEntity): IDocumentAccountAssignmentSelectionEntity => {\n return {\n SelectionCode: SelectionCode.Copy,\n Selection: {\n Name: SelectionCode.Copy\n },\n AccountAssignment: {\n Name: accountAssignment.Name,\n ShortName: accountAssignment.ShortName,\n DebitAccount: {\n Name: accountAssignment.DebitAccountName,\n Number: accountAssignment.DebitAccountNumber\n },\n CreditAccount: {\n Name: accountAssignment.CreditAccountName,\n Number: accountAssignment.CreditAccountNumber\n }\n }\n };\n};\n\nexport const simpleAccountAssignmentFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions): string => {\n const accountAssignment = args.item as IAccountAssignmentEntity;\n\n if (!accountAssignment?.ShortName) {\n return \"\";\n }\n\n return `${accountAssignment.ShortName} - ${accountAssignment.Name}`;\n};\n\nexport const getSimpleAccountAssignmentFieldDef = (): TFieldDefinition => {\n return {\n width: BasicInputSizes.XL,\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: AccountAssignmentEntity.ShortName,\n entitySet: EntitySetName.AccountAssignments,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n localDependentFields: [\n { from: { id: \"ShortName\" }, to: { id: \"ShortName\" }, navigateFrom: NavigationSource.Itself },\n { from: { id: \"Name\" }, to: { id: \"Name\" }, navigateFrom: NavigationSource.Itself }\n ]\n },\n columns: [\n { id: AccountAssignmentEntity.ShortName },\n { id: AccountAssignmentEntity.Name }\n ],\n additionalProperties: [\n { id: AccountAssignmentEntity.ShortName },\n { id: AccountAssignmentEntity.Name }\n ],\n formatter: simpleAccountAssignmentFormatter\n };\n};\n\nexport async function refreshAccountIdsForActualFiscalYear(storage: FormStorage, fiscalYear: IFiscalYearEntity, withoutBusy = true): Promise {\n const promises = [];\n if (isAccountAssignmentCompany(storage.context)) {\n promises.push(reloadAccountsAndAssignments(storage, fiscalYear, true, \"Items\", withoutBusy));\n\n const hasFiscalYear = !!fiscalYear?.Id;\n if (isReceived((storage.data.entity as IDocumentEntity).DocumentTypeCode as DocumentTypeCode)) {\n const nonTaxAccountPath = createPath(\n DocumentEntity.VatClassificationSelection,\n DocumentVatClassificationSelectionEntity.VatClassification,\n DocumentVatClassificationEntity.NonTaxAccount\n );\n promises.push(reloadAccounts(storage, hasFiscalYear, nonTaxAccountPath));\n }\n }\n\n return Promise.all(promises);\n}\n\nexport async function applyAccountFromTemplate(storage: FormStorage, accountBc: BindingContext, data: Pick): Promise {\n const info = storage.getInfo(accountBc);\n if (info) {\n const accounts = info.fieldSettings?.items ?? await fetchAndSetItemsByInfo(storage, info, true);\n const account = accounts\n .find(item => item.additionalData.Number === data.Number && item.additionalData.Name === data.Name);\n if (account) {\n storage.setValue(accountBc, account.id);\n storage.processDependentField(info.fieldSettings.localDependentFields, account.additionalData, accountBc);\n storage.validateFieldSync(accountBc);\n } else {\n storage.clearValue(accountBc);\n storage.validateFieldSync(accountBc);\n }\n }\n}\n","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n AccountAssignmentEntity,\n EntitySetName,\n IAccountAssignmentEntity,\n IDocumentTypeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { isDefined } from \"@utils/general\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { setBreadCrumbs } from \"../../views/formView/Form.utils\";\nimport { IFormStorageSaveResult } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend } from \"../../views/formView/FormView\";\nimport { getDocumentTypeLabel } from \"./AccountAssignment.utils\";\nimport { AccAssCreditAccountPath, AccAssDebitAccountPath } from \"./AccountAssignmentDef\";\n\nclass AccountAssignmentFormView extends FormViewForExtend {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n title: \"AccountAssignment:FormTitle\"\n };\n\n getAdditionalLoadPromise = () => {\n return [this.loadDocumentTypes()];\n }\n\n loadDocumentTypes = async (): Promise => {\n if (!this.context.getData().custom?.documentTypes) {\n const response = await this.props.storage.oData\n .getEntitySetWrapper(EntitySetName.DocumentTypes)\n .query()\n .fetchData();\n\n const docTypes = response.value ?? [];\n const items: ISelectItem[] = docTypes.map((documentType: IDocumentTypeEntity) => ({\n id: documentType.Code,\n label: getDocumentTypeLabel(documentType)\n }));\n\n this.context.setCustomData({\n documentTypes: items\n });\n\n this.props.storage.refresh();\n }\n };\n\n onAfterLoad = async () => {\n setBreadCrumbs(this.props.storage);\n this.storeDocumentTypes();\n !this.props.storage.data.bindingContext.isNew() && this.setAccountValues();\n return super.onAfterLoad();\n };\n\n setAccountValues = (): void => {\n const storage = this.props.storage;\n\n // local context for credit/debit account has to have some id so validation and select works properly, but it\n // should not be linked to existing accounts (eg. you have account with id 4, you change his name, but you still\n // want to display old name here until you chose again from select items)\n storage.setValueByPath(AccAssCreditAccountPath, BindingContext.NEW_ENTITY_ID_PROP);\n storage.setValueByPath(AccAssDebitAccountPath, BindingContext.NEW_ENTITY_ID_PROP);\n storage.refreshFields();\n };\n\n storeDocumentTypes = (): void => {\n const items = this.context.getData().custom?.documentTypes;\n if (this.props.storage.data.bindingContext && items) {\n const bc = this.props.storage.data.bindingContext.navigate(AccountAssignmentEntity.DocumentTypes);\n const info = this.props.storage.getInfo(bc);\n\n if (isDefined(info)) {\n info.fieldSettings.items = items;\n }\n }\n };\n\n save = async (): Promise => {\n this.props.onBeforeSave();\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n const result = await this.props.storage.save({\n successSubtitle: this.props.storage.t(\"AccountAssignment:Validation.Saved\")\n });\n\n if (!result) {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n setBreadCrumbs(this.props.storage);\n this.onAfterSave(isNew, false);\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n return result;\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n super.handleChange(e);\n this.handleAccountChange(e);\n };\n\n handleAccountChange = (e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n\n if (![AccAssCreditAccountPath, AccAssDebitAccountPath].includes(path)) {\n return;\n }\n\n if (e.triggerAdditionalTasks) {\n const cleanPath = BindingContext.cleanLocalContext(path);\n const { Name, Number } = e.additionalData ?? {};\n\n this.props.storage.setValueByPath(`${cleanPath}Name`, Name);\n this.props.storage.setValueByPath(`${cleanPath}Number`, Number);\n }\n };\n}\n\nexport default withPermissionContext(AccountAssignmentFormView);","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport {\n AccountDefFormatter,\n getCommonFilterDefs,\n getCommonTableColumnsDefs\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { EntitySetName, EntityTypeName, IAccountAssignmentDocumentTypeEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n getAccountComparisonFunction,\n getAccountFormatter\n} from \"@pages/accountAssignment/AccountAssignment.utils.shared\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, CacheStrategy, FieldType, LabelStatus, Sort, ValueType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { getDocumentTypeLabel } from \"./AccountAssignment.utils\";\nimport AccountAssignmentFormView from \"./AccountAssignmentFormView\";\n\nexport const flattenAccountsDef = {\n isRequired: true,\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.View,\n columns: [{\n id: \"Number\",\n additionalProperties: [{\n id: \"/Name\"\n }],\n formatter: AccountDefFormatter\n }],\n formatter: AccountDefFormatter,\n fieldSettings: {\n displayName: \"Number\",\n entitySet: EntitySetName.FlattenAccounts\n },\n width: BasicInputSizes.XL\n};\n\nexport const AccAssCreditAccountPath = BindingContext.localContext(\"CreditAccount\");\nexport const AccAssDebitAccountPath = BindingContext.localContext(\"DebitAccount\");\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"ShortName\",\n \"Name\",\n \"DebitAccountNumber\",\n \"CreditAccountNumber\",\n BindingContext.localContext(\"DocumentTypes\")\n ],\n filterDefinition: {\n ShortName: {},\n Name: {},\n DebitAccountNumber: {},\n CreditAccountNumber: {},\n // once again, similar problem as we have e.g. in document form with account assignments\n // the source of the filter is different than what the AccountAssignment/DocumentItems points to (type AccountAssignmentDocumentType)\n // but we need to load the data from the DocumentTypes entity set (type DocumentType)\n // this causes mismatch between properties a fails on multiple places => using local binding context instead\n // todo enable this without local binding context\n [BindingContext.localContext(\"DocumentTypes\")]: {\n label: i18next.t(\"AccountAssignment:AvailableFor\"),\n filterName: [\"/DocumentTypes/DocumentTypeCode\"],\n isValueHelp: false,\n type: FieldType.MultiSelect,\n valueType: ValueType.String,\n fieldSettings: {\n entitySet: EntitySetName.DocumentTypes,\n displayName: \"Name\",\n transformFetchedItems: (items) => {\n return items.map((item: ISelectItem) => ({\n id: item.id,\n label: getDocumentTypeLabel({\n Code: item.id as string,\n Name: item.label\n })\n }));\n }\n },\n defaultValue: []\n },\n Note: {},\n ...getCommonFilterDefs()\n }\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.AccountAssignment}Table`,\n columns: [\n \"ShortName\",\n \"Name\",\n \"DebitAccountNumber\",\n \"CreditAccountNumber\"\n ],\n columnDefinition: {\n ShortName: { id: \"ShortName\" },\n Name: { id: \"Name\" },\n DebitAccountNumber: {\n additionalProperties: [{ id: \"/DebitAccountName\" }],\n formatter: getAccountFormatter(\"DebitAccount\"),\n label: i18next.t(\"AccountAssignment:DebitAccount\")\n },\n CreditAccountNumber: {\n additionalProperties: [{ id: \"/CreditAccountName\" }],\n formatter: getAccountFormatter(\"CreditAccount\"),\n label: i18next.t(\"AccountAssignment:CreditAccount\")\n },\n Note: {},\n ...getCommonTableColumnsDefs(),\n DocumentTypes: {\n additionalProperties: [\n { id: \"DocumentType/Name\" }\n ],\n formatter: (val: TValue, args?: IFormatOptions) => {\n return args.entity.DocumentTypes\n ?.map((documentType: IAccountAssignmentDocumentTypeEntity) => documentType.DocumentType.Name).join(\", \");\n }\n }\n\n },\n title: i18next.t(\"AccountAssignment:Title\"),\n initialSortBy: [{\n id: \"ShortName\", sort: Sort.Asc\n }]\n };\n\n const summary: ISummaryItem[] = [];\n\n const form: IFormDef = {\n id: `${EntityTypeName.AccountAssignment}Form`,\n summary,\n formControl: AccountAssignmentFormView,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"AccountAssignment:NewAccountAssignment\"), storage.data.entity?.Name),\n additionalProperties: [\n { id: \"DebitAccountNumber\" }, { id: \"DebitAccountName\" },\n { id: \"CreditAccountNumber\" }, { id: \"CreditAccountName\" }\n ],\n groups: [\n {\n id: \"basic\",\n rows: [[{ id: \"ShortName\" }, { id: \"Name\" },\n { id: AccAssDebitAccountPath },\n { id: AccAssCreditAccountPath }\n ]]\n },\n {\n id: \"note\",\n title: i18next.t(\"Common:General.Note\"),\n rows: [[{ id: \"Note\" }]]\n }, {\n id: \"availableFor\",\n title: i18next.t(\"Common:Form.AvailableFor\"),\n rows: [[{ id: \"DocumentTypes\" }]]\n }],\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.XL\n },\n ShortName: {\n width: BasicInputSizes.S\n },\n [AccAssCreditAccountPath]: {\n label: i18next.t(\"AccountAssignment:CreditAccount\"),\n ...flattenAccountsDef,\n comparisonFunction: getAccountComparisonFunction(\"CreditAccount\"),\n formatter: getAccountFormatter(\"CreditAccount\")\n },\n [AccAssDebitAccountPath]: {\n label: i18next.t(\"AccountAssignment:DebitAccount\"),\n ...flattenAccountsDef,\n comparisonFunction: getAccountComparisonFunction(\"DebitAccount\"),\n formatter: getAccountFormatter(\"DebitAccount\")\n },\n\n Note: {\n type: FieldType.EditableText,\n labelStatus: LabelStatus.Removed\n },\n DocumentTypes: {\n fieldSettings: {\n keyPath: \"DocumentType/Code\"\n },\n customizationData: {\n isRequired: true\n },\n additionalProperties: [{\n id: \"DocumentType\"\n }, {\n id: \"DocumentType/Name\",\n isRequired: false\n }],\n labelStatus: LabelStatus.Removed,\n type: FieldType.CheckboxGroup\n }\n }\n };\n\n return {\n entitySet: EntitySetName.AccountAssignments,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"AccountAssignment\"];\nsetDefByEntityType(EntityTypeName.AccountAssignment, getDefinitions);","import React, { useCallback } from \"react\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport TemporalFormDialog from \"../../views/formView/TemporalFormDialog\";\nimport { AccountDialogFields, IAccAssDialogCustomData } from \"./AccountAssignment.utils\";\n\ninterface IProps {\n storage: FormStorage;\n onConfirm?: () => void;\n onChange: (e: ISmartFieldChange) => void;\n onTemporalChange: (e: ISmartFieldChange) => void;\n}\n\nexport const AccountAssignmentDialog: React.FC = ({ storage, onChange, onTemporalChange, onConfirm }) => {\n const bc = storage.getCustomData().AccountAssignmentDialogBc;\n\n const onClose = useCallback(async (isConfirmed: boolean) => {\n storage.setCustomData({\n isDialogOpen: false\n });\n const selectionFields = [bc, bc.getParent().navigate(\"Selection/Code\")];\n // cancels the temporal value from storage, which was previously set, so fields in dialog\n // works well, (e.g. isRequired is correctly calculated)\n storage.cancelFields(selectionFields);\n storage.refresh();\n if (isConfirmed) {\n onConfirm?.();\n }\n }, [storage, bc, onConfirm]);\n\n const isOpened = storage.getCustomData().isDialogOpen;\n if (!isOpened) {\n return null;\n }\n\n const accountAssignmentPath = bc.getNavigationPath();\n const fields = AccountDialogFields.map(field => `${accountAssignmentPath}/${field}`);\n const rows = [fields.slice(0, 2), fields.slice(2, fields.length)];\n\n return (\n \n );\n};\n","import React from \"react\";\nimport { IRow, ISort, TId } from \"@components/table\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { EntitySetName, IUserEntity, UserEntity } from \"@odata/GeneratedEntityTypes\";\nimport { userNameWithAvatarFormatter } from \"../users/UsersDef\";\nimport AssignedUsersTable from \"../generalRoles/AssignedUsersTable\";\nimport { AvatarSize, Sort } from \"../../../enums\";\nimport { CompanyNameWithAvatar } from \"../users/Users.styles\";\nimport Tokenizer from \"../../../components/token/Tokenizer\";\nimport { getCompanyLogoUrl } from \"@utils/CompanyUtils\";\nimport Avatar from \"../../../components/avatar\";\nimport MoreItems from \"../../../components/moreItems/MoreItems\";\n\nclass AssignedCompanyUsersTable extends AssignedUsersTable {\n columns = [\n { id: \"FirstName\", label: this.props.storage.t(\"CompanyRoles:User\"), width: 200 },\n { id: \"Company\", label: this.props.storage.t(\"CompanyRoles:Agenda\"), width: 300 , disableSort: true }\n ];\n tableId = \"companyRoleAssignedUsers\";\n\n getRows = memoizeOne(async (id: TId, sort: ISort[]): Promise => {\n const query = this.props.storage.oData.getEntitySetWrapper(EntitySetName.Users).query()\n .select(UserEntity.Id, UserEntity.FirstName, UserEntity.LastName)\n .filter(`CompanyRoles/any(user: user/CompanyRole/Id eq ${id})`)\n .expand(\"CompanyRoles\",\n g => g.filter(`CompanyRole/Id eq ${id}`)\n .select(\"Id\")\n .expand(\"Company\",\n q => q.select(\"Name\")\n .expand(\"Logo\"))\n .expand(\"CompanyRole\", q => q.select(\"Id\")));\n\n (sort ?? this.state.sort).forEach((sort) => {\n query.orderBy(sort.id, sort.sort === Sort.Asc);\n });\n\n const users = await query.fetchData();\n return users.value.map((user: IUserEntity) => {\n const companies = user.CompanyRoles.filter(role => role.CompanyRole.Id === id);\n const companyNames = companies.map(role => role.Company.Name);\n const logoUrl = getCompanyLogoUrl(companies[0].Company);\n const getTooltipText = () => {\n return ({\n id,\n color: \"#fff\",\n title: id\n }))}/>;\n };\n return {\n id: user.Id,\n values: {\n FirstName: userNameWithAvatarFormatter(user.FirstName, { entity: user }, {\n isBold: false,\n withLink: true\n }),\n Company: {\n tooltip: companyNames.join(\", \"),\n value: \n   \n {companyNames[0]} \n \n \n }\n }\n };\n });\n });\n}\n\nexport default AssignedCompanyUsersTable;","import {\n CompanyPermissionEntity,\n EntitySetName,\n ICompanyPermissionEntity,\n ICompanyRolePermissionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport React, { PureComponent } from \"react\";\n\nimport BindingContext from \"../../../odata/BindingContext\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { PermissionsGrid } from \"../generalRoles/GeneralRoles.styles\";\nimport { PermissionSwitch } from \"../generalRoles/PermissionsTable\";\n\ninterface IProps {\n storage: FormStorage;\n roleId: number;\n}\n\nclass CompanyPermissionsTable extends PureComponent {\n componentDidMount = async (): Promise => {\n const storage = this.props.storage as FormStorage;\n\n if (storage.loaded && storage.data.bindingContext.isNew() && !this.props.storage.data.entity.CompanyRolePermissions) {\n await this.init();\n }\n };\n\n // componentDidMount can be called during storage.init call\n // and CompanyRolePermissions would get deleted from the storage later\n // => we need to wait for the storage to be loaded\n componentDidUpdate = async (): Promise => {\n const storage = this.props.storage as FormStorage;\n\n if (storage.loaded && storage.data.bindingContext.isNew() && !this.props.storage.data.entity.CompanyRolePermissions) {\n await this.init();\n }\n };\n\n init = async (): Promise => {\n const permissions = await this.fetchPermissions();\n\n // const response = await customFetch(COMPANY_ROLE_ALLOWED_PERMISSION_URL);\n // const permissions = (await response.json()) as TRecordType;\n // const userPermissions = permissions[\"Code = User, Name = User role\"];\n\n this.props.storage.data.entity.CompanyRolePermissions = permissions?.map((perm: ICompanyPermissionEntity) => ({\n Id: BindingContext.NEW_ENTITY_ID_PROP,\n CompanyPermissionCode: perm.Code,\n CompanyPermission: perm\n }));\n this.forceUpdate();\n };\n\n fetchPermissions = memoizeOne(async (): Promise => {\n const result = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.CompanyPermissions)\n .query()\n .select(CompanyPermissionEntity.Code, CompanyPermissionEntity.Name, CompanyPermissionEntity.Description)\n .fetchData();\n\n return result.value;\n });\n\n handleChange = (code: string, checked: boolean): void => {\n this.props.storage.handleFirstChange();\n\n const permissions = this.props.storage.data.entity.CompanyRolePermissions;\n const permission = permissions.find((role: ICompanyRolePermissionEntity) => role.CompanyPermission.Code === code);\n permission.IsEnabled = checked;\n if (permission.OwnOnly === true && checked === false) {\n permission.OwnOnly = false;\n }\n this.forceUpdate();\n };\n\n onOwnOnlyChange = (code: string, ownOnly: boolean): void => {\n this.props.storage.handleFirstChange();\n\n const permissions = this.props.storage.data.entity.CompanyRolePermissions;\n const permission = permissions.find((role: ICompanyRolePermissionEntity) => role.CompanyPermission.Code === code);\n permission.OwnOnly = ownOnly;\n this.forceUpdate();\n };\n\n render() {\n return \n {this.props.storage.data.entity.CompanyRolePermissions?.map((role: ICompanyRolePermissionEntity) => {\n return ;\n })}\n ;\n }\n}\n\nexport default CompanyPermissionsTable;","import { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n CompanyPermissionEntity,\n CompanyRoleEntity,\n CompanyRolePermissionEntity,\n EntitySetName,\n EntityTypeName\n} from \"@odata/GeneratedEntityTypes\";\nimport { CompanyRoleTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, FieldType, LabelStatus, Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport FormView from \"../../../views/formView/FormView\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport AssignedCompanyUsersTable from \"./AssignedCompanyUsersTable\";\nimport CompanyPermissionsTable from \"./CompanyPermissionsTable\";\n\nconst isSystemRole = (args: IGetValueArgs) => {\n return args.storage?.data.entity?.Id < 0;\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n CompanyRoleEntity.CompanyRoleName,\n CompanyRoleEntity.UserCount\n ],\n filterDefinition: {\n CompanyRoleName: {},\n UserCount: {}\n },\n isValueHelp: true,\n allowCustomFilters: false\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.CompanyRole}Table`,\n columns: [\n CompanyRoleEntity.CompanyRoleName,\n CompanyRoleEntity.UserCount\n ],\n columnDefinition: {\n CompanyRoleName: {\n formatter: (val: TValue) => {\n return {\n value: {val},\n tooltip: val as string\n };\n }\n },\n UserCount: {}\n },\n title: i18next.t(\"CompanyRoles:Title\"),\n initialSortBy: [{ id: CompanyRoleEntity.CompanyRoleName, sort: Sort.Asc }]\n };\n\n const summary: ISummaryItem[] = [{\n id: CompanyRoleEntity.CompanyRoleName\n }];\n\n const form: IFormDef = {\n id: `${EntityTypeName.CompanyRole}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"CompanyRoles:NewRole\"), storage.data.entity?.CompanyRoleName),\n summary,\n title: i18next.t(\"CompanyRoles:FormTitle\"),\n translationFiles: getDefinitions.translationFiles,\n formControl: FormView,\n additionalProperties: [],\n isReadOnly: isSystemRole,\n isDeletable: true,\n fieldDefinition: {\n [CompanyRoleEntity.CompanyRoleName]: {\n width: BasicInputSizes.L\n },\n [CompanyRoleEntity.Type]: {\n type: FieldType.SegmentedButton,\n labelStatus: LabelStatus.Removed,\n defaultValue: CompanyRoleTypeCode.UserRole,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.CompanyRoleType)\n },\n isVisible: (args) => false, // todo: args.storage.data.bindingContext.isNew(),\n clearIfInvisible: false,\n customizationData: {\n useForCustomization: false // or according to todo above\n }\n },\n [BindingContext.localContext(\"AssignedUsers\")]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return (\n \n );\n }\n },\n [BindingContext.localContext(\"Permissions\")]: {\n type: FieldType.Custom,\n additionalProperties: [\n {\n id: CompanyRoleEntity.CompanyRolePermissions,\n additionalProperties: [{\n id: CompanyRolePermissionEntity.CompanyPermission,\n additionalProperties: [{ id: CompanyPermissionEntity.Name }, { id: CompanyPermissionEntity.Code }, { id: CompanyPermissionEntity.Description }]\n }, {\n id: CompanyRolePermissionEntity.IsEnabled\n }, {\n id: CompanyRolePermissionEntity.OwnOnly\n }]\n }],\n render: (args: IFieldDefFn) => {\n return ;\n }\n },\n },\n groups: [{\n id: \"general\",\n rows: [[{ id: CompanyRoleEntity.CompanyRoleName }]]\n }, {\n id: \"users\",\n title: i18next.t(\"CompanyRoles:AssignedUsers\"),\n rows: [[{ id: BindingContext.localContext(\"AssignedUsers\") }]],\n customizationData: {\n isLocked: true\n }\n }, {\n id: \"permissions\",\n title: i18next.t(\"CompanyRoles:Permissions\"),\n rows: [[{ id: BindingContext.localContext(\"Permissions\") }]],\n customizationData: {\n isLocked: true\n }\n }]\n };\n\n return {\n entitySet: EntitySetName.CompanyRoles,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"CompanyRoles\"];\nsetDefByEntityType(EntityTypeName.CompanyRole, getDefinitions);","import { IRow, ISort, TId } from \"@components/table\";\nimport { TEntityKey } from \"@odata/BindingContext\";\nimport { EntitySetName, IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\nimport React, { PureComponent } from \"react\";\n\nimport { CollapsibleContent } from \"../../../components/collapsibleContent\";\nimport TableWithAutoSizedColumns from \"../../../components/table/TableWithAutoSizedColumns\";\nimport { Sort, TableSizes } from \"../../../enums\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { userNameWithAvatarFormatter } from \"../users/UsersDef\";\nimport { AssignedUsersTableWrapper } from \"./GeneralRoles.styles\";\n\ninterface IProps {\n storage: FormStorage;\n}\n\ninterface IState {\n isCollapsed: boolean;\n loadingUsers: boolean;\n rows: IRow[];\n sort: ISort[];\n}\n\nclass AssignedUsersTable extends PureComponent {\n state: IState = {\n isCollapsed: true,\n loadingUsers: true,\n rows: [],\n sort: [{ id: \"FirstName\", sort: Sort.Asc }]\n };\n columns = [\n { id: \"FirstName\", label: i18next.t(\"GeneralRoles:User\") }\n ];\n\n tableId = \"generalRoleAssignedUsers\";\n\n componentDidMount = async (): Promise => {\n const id = this.getId();\n const rows = id ? await this.getRows(id) : [];\n this.setState({ loadingUsers: false, rows });\n };\n\n getId = (): TEntityKey => {\n // use bindingContext.getKey() instead of entity.Id,\n // because for some reason componentDidMount is called before the entity is loaded\n return this.props.storage.data.bindingContext.isNew() ? null : this.props.storage.data.bindingContext.getKey();\n };\n\n getRows = memoizeOne(async (id: TId, sort?: ISort[]): Promise => {\n const query = this.props.storage.oData.getEntitySetWrapper(EntitySetName.Users).query()\n .select(\"Id\", \"FirstName\", \"LastName\")\n .filter(`GeneralRoles/any(role: role/GeneralRole/Id eq ${id})`)\n .expand(\"GeneralRoles\", g => g.select(\"Id\"));\n\n (sort ?? this.state.sort).forEach((sort) => {\n query.orderBy(sort.id, sort.sort === Sort.Asc);\n });\n\n const users = await query.fetchData();\n\n return users.value.map((user: IUserEntity) => {\n return {\n id: user.Id,\n values: {\n FirstName: userNameWithAvatarFormatter(user.FirstName, { entity: user }, {\n isBold: false,\n withLink: true\n })\n }\n };\n });\n });\n\n handleCollapsed = (): void => {\n this.setState({ isCollapsed: !this.state.isCollapsed });\n };\n\n handleCollapsingEnd = (): void => {\n this.props.storage.emitter.emit(ModelEvent.RecalculateScrollbar);\n };\n\n handleSort = async (props: ISort[]): Promise => {\n const rows = await this.getRows(this.getId(), props);\n this.setState({ rows, sort: props });\n };\n\n render() {\n const tableHeight = this.state.rows?.length ? `${(this.state.rows.length + 1) * TableSizes.RowHeight}px` : \"100%\"; // +1 for header\n const table = ;\n return \n {this.state.rows?.length ? \n {table}\n : table}\n ;\n }\n}\n\nexport default AssignedUsersTable;","import { StyledCollapsibleContent } from \"@components/collapsibleContent/CollapsibleContent.styles\";\nimport { StyledSwitch } from \"@components/inputs/switch/Switch.styles\";\nimport styled from \"styled-components/macro\";\n\nimport { T_PLAIN_big } from \"../../../global.style\";\nimport { UserNameStyled } from \"../users/Users.styles\";\n\nexport const AssignedUsersTableWrapper = styled.div`\n width: 100%;\n ${StyledCollapsibleContent} {\n width: 100%;\n }\n ${UserNameStyled} {\n color: ${props => props.theme.C_TEXT_link}\n }\n`;\n\nexport const PermissionGroup = styled.div`\n display: flex;\n align-items: flex-start;\n ${StyledSwitch} {\n margin-left: 40px;\n }\n`;\n\nexport const LeftColumn = styled.div`\n width: 215px;\n h5 {\n margin-bottom: 9px;\n }\n span {\n ${T_PLAIN_big};\n\n & + div {\n margin-top: 9px;\n }\n }\n`;\n\nexport const PermissionsGrid = styled.div`\n display: inline-flex;\n flex-wrap: wrap;\n gap: 40px 80px;\n justify-content: flex-start;\n`;","import { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n GeneralPermissionEntity,\n GeneralRoleEntity,\n GeneralRolePermissionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, FieldType, Sort } from \"../../../enums\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport FormView from \"../../../views/formView/FormView\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport AssignedUsersTable from \"../generalRoles/AssignedUsersTable\";\nimport PermissionsTable from \"./PermissionsTable\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"GeneralRoleName\",\n \"UserCount\"\n ],\n filterDefinition: {\n GeneralRoleName: {},\n UserCount: {}\n },\n isValueHelp: true,\n allowCustomFilters: false\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.GeneralRole}Table`,\n filterBarDef,\n columns: [\n \"GeneralRoleName\",\n \"UserCount\"\n ],\n columnDefinition: {\n GeneralRoleName: {\n formatter: val => {\n return {\n value: {val},\n tooltip: val as string\n };\n }\n },\n UserCount: {}\n },\n title: i18next.t(\"GeneralRoles:Title\"),\n initialSortBy: [{ id: \"GeneralRoleName\", sort: Sort.Asc }]\n };\n\n const summary: ISummaryItem[] = [{\n id: \"GeneralRoleName\"\n }];\n\n const form: IFormDef = {\n id: `${EntityTypeName.GeneralRole}Form`,\n translationFiles: getDefinitions.translationFiles,\n formControl: FormView,\n isDeletable: true,\n summary,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"GeneralRoles:NewRole\"), storage.data.entity?.GeneralRoleName),\n title: i18next.t(\"GeneralRoles:FormTitle\"),\n additionalProperties: [],\n isReadOnly: (args: IGetValueArgs) => {\n return args.data?.Id < 0;\n },\n fieldDefinition: {\n \"GeneralRoleName\": {\n width: BasicInputSizes.L\n },\n [BindingContext.localContext(\"AssignedUsers\")]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return (\n \n );\n }\n },\n [BindingContext.localContext(\"Permissions\")]: {\n type: FieldType.Custom,\n additionalProperties: [\n {\n id: GeneralRoleEntity.GeneralRolePermissions,\n additionalProperties: [\n {\n id: GeneralRolePermissionEntity.Permission,\n additionalProperties: [\n { id: GeneralPermissionEntity.Name },\n { id: GeneralPermissionEntity.Code },\n { id: GeneralPermissionEntity.Description }\n ] },\n { id: GeneralRolePermissionEntity.IsEnabled }\n ]\n }],\n render: (args: IFieldDefFn) => {\n return (\n \n );\n },\n isVisible: (args: IGetValueArgs) => {\n const { bindingContext, entity } = args.storage.data;\n return bindingContext.isNew() || entity.GeneralRolePermissions?.length;\n }\n },\n },\n groups: [{\n id: \"general\",\n rows: [[{ id: GeneralRoleEntity.GeneralRoleName }]]\n }, {\n id: \"users\",\n title: i18next.t(\"GeneralRoles:AssignedUsers\"),\n rows: [[{ id: BindingContext.localContext(\"AssignedUsers\") }]],\n customizationData: {\n isLocked: true\n }\n }, {\n id: \"permissions\",\n title: i18next.t(\"GeneralRoles:Permissions\"),\n rows: [[{ id: BindingContext.localContext(\"Permissions\") }]],\n customizationData: {\n isLocked: true\n }\n }]\n };\n\n return {\n entitySet: EntitySetName.GeneralRoles,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"GeneralRoles\"];\nsetDefByEntityType(EntityTypeName.GeneralRole, getDefinitions);","import React, { PureComponent } from \"react\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport {\n EntitySetName,\n GeneralPermissionEntity,\n ICompanyPermissionEntity,\n IGeneralPermissionEntity,\n IGeneralRolePermissionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport Switch, { SwitchType } from \"../../../components/inputs/switch/Switch\";\nimport { LeftColumn, PermissionGroup, PermissionsGrid } from \"./GeneralRoles.styles\";\nimport TestIds from \"../../../testIds\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport Checkbox, { ICheckboxChange } from \"../../../components/inputs/checkbox\";\nimport { CompanyPermissionCode, GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\n\ntype PermissionCode = CompanyPermissionCode | GeneralPermissionCode;\nconst PermissionsWithOwnOnlyFlag: PermissionCode[] = [\n CompanyPermissionCode.InvoicesIssued,\n CompanyPermissionCode.DocumentPosting,\n CompanyPermissionCode.InvoicesReceived,\n CompanyPermissionCode.InternalAndCorrectiveDocuments\n];\n\ninterface IProps {\n storage: FormStorage;\n roleId: number;\n}\n\ninterface IPermissionSwitchProps {\n permission: IGeneralPermissionEntity | ICompanyPermissionEntity;\n onChange: (code: string, checked: boolean) => void;\n checked: boolean;\n onOwnOnlyChange?: (code: string, ownOnly: boolean) => void;\n ownOnly?: boolean;\n isReadOnly?: boolean;\n storage: FormStorage;\n}\n\nexport class PermissionSwitch extends PureComponent {\n handleSwitchChange = (checked: boolean): void => {\n this.props.onChange(this.props.permission.Code, checked);\n };\n\n handleOwnOnlyChange = (e: ICheckboxChange): void => {\n this.props.onOwnOnlyChange?.(this.props.permission.Code, e.value);\n };\n\n render() {\n const code = this.props.permission.Code as PermissionCode;\n const isReadOnly = this.props.isReadOnly || code === GeneralPermissionCode.OrganizationManagement;\n\n return \n \n
    {this.props.permission.Name}
    \n {this.props.permission.Description}\n {PermissionsWithOwnOnlyFlag.includes(code) &&\n }\n
    \n \n
    ;\n }\n}\n\nclass PermissionsTable extends PureComponent {\n componentDidMount = async (): Promise => {\n const storage = this.props.storage as FormStorage;\n\n if (storage.data.bindingContext.isNew() && !storage.data.entity?.GeneralRolePermissions) {\n await this.init();\n }\n };\n\n // componentDidMount can be called during storage.init call\n // and CompanyRolePermissions would get deleted from the storage later\n // => we need to wait for the storage to be loaded\n componentDidUpdate = async (): Promise => {\n const storage = this.props.storage as FormStorage;\n\n if (storage.data.bindingContext.isNew() && !storage.data.entity?.GeneralRolePermissions) {\n await this.init();\n }\n };\n\n init = async (): Promise => {\n const permissions = await this.fetchPermissions();\n\n this.props.storage.data.entity.GeneralRolePermissions = permissions?.map((perm: IGeneralPermissionEntity) => ({\n Id: BindingContext.NEW_ENTITY_ID_PROP,\n PermissionCode: perm.Code,\n Permission: perm\n }));\n this.forceUpdate();\n };\n\n fetchPermissions = memoizeOne(async (): Promise => {\n const result = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.GeneralPermissions)\n .query()\n .select(GeneralPermissionEntity.Code, GeneralPermissionEntity.Name, GeneralPermissionEntity.Description)\n .fetchData();\n\n return result.value;\n });\n\n handleChange = (code: string, checked: boolean): void => {\n const permissions = this.props.storage.data.entity.GeneralRolePermissions;\n const permission = permissions.find((role: IGeneralRolePermissionEntity) => role.Permission.Code === code);\n permission.IsEnabled = checked;\n this.forceUpdate();\n };\n\n render() {\n return \n {this.props.storage.data.entity.GeneralRolePermissions?.map((role: IGeneralRolePermissionEntity) => {\n return ;\n })}\n ;\n }\n}\n\nexport default PermissionsTable;","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { isFieldDisabled } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport BindingContext, { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n CompanyEntity,\n DocumentAccountAssignmentEntity,\n DocumentAccountAssignmentSelectionEntity,\n DocumentItemEntity,\n DocumentVatClassificationEntity,\n DocumentVatClassificationSelectionEntity,\n EntitySetName,\n IDocumentCbaCategoryEntity,\n IDocumentEntity,\n IItemTemplateAccountAssignmentEntity,\n IItemTemplateEntity,\n ItemTemplateAccountAssignmentSelectionEntity,\n ItemTemplateEntity,\n ItemTemplateVatClassificationSelectionEntity,\n PaymentDocumentItemEntity,\n VatEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AccountingCode, CbaCategoryTaxImpactCode, SelectionCode, VatDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport { applyAccountFromTemplate } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { ITEMS_VAT_DEDUCTION_PATH } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { CBA_CATEGORY_PATH, CbaSelectionCode } from \"@pages/cashBasisAccounting/CashBasisAccounting.utils\";\nimport { isReceivedBc } from \"@pages/documents/Document.utils\";\nimport { memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { isCashBasisAccountingCompany, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\n\nimport { TValue } from \"../../../global.types\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\n\n\nexport const getItemTemplateSelectItems = memoizedWithCacheStrategy(async (storage: FormStorage): Promise => {\n const filters: string[] = [];\n const currentCompanyId = storage.context.getCompanyId();\n const currencyCode = storage.data.entity.TransactionCurrency?.Code ?? storage.data.entity.TransactionCurrencyCode;\n const conditionFilters: string[] = [`${ItemTemplateEntity.AlwaysOffer} eq true`];\n const isCbaCompany = isCashBasisAccountingCompany(storage.context);\n conditionFilters.push(`${ItemTemplateEntity.AccountingCode} eq '${isCbaCompany ? AccountingCode.CashBasisAccounting : AccountingCode.AccountingForBusiness}'`);\n filters.push(`((${conditionFilters.join(\" AND \")}) OR ${ItemTemplateEntity.AllowedCompanies}/any(c: c/${CompanyEntity.Id} eq ${currentCompanyId}))`);\n filters.push(`${ItemTemplateEntity.TransactionCurrencyCode} eq '${currencyCode}'`);\n\n const query = storage.oData.getEntitySetWrapper(EntitySetName.ItemTemplates).query()\n .filter(filters.join(\" AND \"))\n .expand(ItemTemplateEntity.Vat)\n .expand(ItemTemplateEntity.CbaTaxImpact)\n .expand(ItemTemplateEntity.AccountAssignmentSelection, q1 => q1.expand(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment))\n .expand(ItemTemplateEntity.VatClassificationSelection, q2 => q2.expand(ItemTemplateVatClassificationSelectionEntity.VatClassification))\n .orderBy(ItemTemplateEntity.Description);\n\n const data = await query.fetchData();\n\n return data.value.map((item) => ({\n id: item.Id,\n label: item.Description,\n additionalData: {\n ...item\n }\n }));\n}, (storage: FormStorage) => `${storage.context.getCompanyId()}::${storage.data.entity.TransactionCurrency?.Code ?? storage.data.entity.TransactionCurrencyCode}::${storage.data.entity?.BusinessPartner?.CountryCode}`);\n\nexport function handleItemTemplateChange(args: ISmartFieldChange, storage: FormStorage): boolean {\n const data = args.additionalData;\n const copyProps = [ItemTemplateEntity.Description, ItemTemplateEntity.TransactionAmount,\n ItemTemplateEntity.TransactionAmountNet, ItemTemplateEntity.TransactionAmountVat, ItemTemplateEntity.Quantity,\n ItemTemplateEntity.UnitOfMeasureCode, ItemTemplateEntity.VatCode];\n const itemBc = args.bindingContext.getParent();\n\n const _processField = (bc: BindingContext, value: TValue): void => {\n const info = storage.getInfo(bc);\n if (!isFieldDisabled(info, storage, bc)) {\n storage.setValue(bc, value);\n // only just after setting the value, so bc is defined and not called repeatedly\n storage.validateFieldSync(bc);\n }\n };\n\n copyProps.forEach(propName => {\n let bc: BindingContext;\n if (!itemBc.isValidNavigation(propName)) {\n // skip properties, which are not present in the entity\n return;\n }\n if (isDefined(data[propName]) || propName === ItemTemplateEntity.VatCode) {\n const isEnumCode = [ItemTemplateEntity.UnitOfMeasureCode, ItemTemplateEntity.VatCode].includes(propName);\n bc = itemBc.navigate(isEnumCode ? propName.replace(/Code$/, \"\") : propName);\n _processField(bc, data[propName]);\n }\n if (propName === ItemTemplateEntity.VatCode) {\n // we need to copy also Rate for document Vat, to make Vat formatter working\n bc = itemBc.navigate(createPath(ItemTemplateEntity.Vat, VatEntity.Rate));\n _processField(bc, data[ItemTemplateEntity.Vat][VatEntity.Rate]);\n }\n });\n // set value for account assignment\n const aaSel = data.AccountAssignmentSelection;\n if (!isObjectEmpty(aaSel)) {\n const aaSelBc = itemBc.navigate(ItemTemplateEntity.AccountAssignmentSelection);\n const aaBc = aaSelBc.navigate(DocumentAccountAssignmentSelectionEntity.AccountAssignment);\n const info = storage.getInfo(aaBc);\n if (!isFieldDisabled(info, storage, aaBc)) {\n let aaSelCode: SelectionCode = aaSel.SelectionCode as SelectionCode;\n if ([SelectionCode.Copy, SelectionCode.Own].includes(aaSelCode)) {\n aaSelCode = SelectionCode.Own;\n // find correct account IDs, copy data to VatClassification\n const aaData = aaSel.AccountAssignment as IItemTemplateAccountAssignmentEntity;\n storage.setValue(aaBc.navigate(DocumentAccountAssignmentEntity.Name), aaData.Name);\n storage.setValue(aaBc.navigate(DocumentAccountAssignmentEntity.ShortName), aaData.ShortName);\n // nonTaxAccount\n const { CreditAccountNumber, CreditAccountName, DebitAccountNumber, DebitAccountName } = aaData;\n Promise.all([\n applyAccountFromTemplate(storage, aaBc.navigate(DocumentAccountAssignmentEntity.CreditAccount), {\n Name: CreditAccountName,\n Number: CreditAccountNumber\n }),\n applyAccountFromTemplate(storage, aaBc.navigate(DocumentAccountAssignmentEntity.DebitAccount), {\n Name: DebitAccountName,\n Number: DebitAccountNumber\n })\n ]).then(() => {\n // update short name (some of the accounts might be empty)\n if (!storage.getValue(aaBc.navigate(DocumentAccountAssignmentEntity.CreditAccount), { useDirectValue: false }) ||\n !storage.getValue(aaBc.navigate(DocumentAccountAssignmentEntity.DebitAccount), { useDirectValue: false })) {\n storage.setValue(aaBc.navigate(DocumentAccountAssignmentEntity.ShortName), null);\n }\n storage.validateFieldSync(aaBc);\n storage.addActiveField(aaBc);\n storage.refresh();\n });\n } else {\n // None, Default -> just clear the VatClassification value and copy selection code (outsideo of the if)\n storage.clearValue(aaBc);\n }\n storage.setValue(aaSelBc.navigate(DocumentAccountAssignmentSelectionEntity.Selection), aaSelCode);\n storage.setValue(aaBc, aaSelCode);\n storage.addActiveField(aaBc);\n }\n }\n // set value for vat classification\n const vatSel = data.VatClassificationSelection;\n if (!isObjectEmpty(vatSel) && isReceivedBc(storage.data.bindingContext)) {\n const vatSelBc = itemBc.navigate(ItemTemplateEntity.VatClassificationSelection);\n const vatClassificationBc = vatSelBc.navigate(DocumentVatClassificationSelectionEntity.VatClassification);\n const vatDeductionBc = itemBc.navigate(ITEMS_VAT_DEDUCTION_PATH);\n const info = storage.getInfo(vatDeductionBc);\n if (!isFieldDisabled(info, storage, vatDeductionBc)) {\n let vatSelCode: SelectionCode = vatSel.SelectionCode as SelectionCode;\n let id: VatDeductionTypeCode | SelectionCode = null;\n if ([SelectionCode.Copy, SelectionCode.Own].includes(vatSelCode)) {\n vatSelCode = SelectionCode.Own;\n // find correct account IDs, copy data to VatClassification\n const vatClassData = vatSel.VatClassification;\n storage.setValue(vatClassificationBc.navigate(DocumentVatClassificationEntity.VatProportionalDeduction), vatClassData.VatProportionalDeduction);\n storage.setValue(vatClassificationBc.navigate(DocumentVatClassificationEntity.VatDeductionType), vatClassData.VatDeductionTypeCode);\n id = vatClassData.VatDeductionTypeCode;\n // nonTaxAccount\n const { NonTaxAccountName, NonTaxAccountNumber } = vatClassData;\n applyAccountFromTemplate(storage, vatClassificationBc.navigate(DocumentVatClassificationEntity.NonTaxAccount), {\n Name: NonTaxAccountName,\n Number: NonTaxAccountNumber\n }).then(() => {\n storage.validateFieldSync(vatDeductionBc);\n storage.addActiveField(vatDeductionBc);\n storage.refresh();\n });\n } else {\n // None, Default -> just clear the VatClassification value and copy selection code (outsideo of the if)\n storage.clearValue(vatClassificationBc);\n }\n if (vatSelCode === SelectionCode.None) {\n // None means Own selection without accounts??\n vatSelCode = SelectionCode.Own;\n }\n if (vatSelCode === SelectionCode.Default) {\n id = SelectionCode.Default;\n }\n storage.setValue(vatSelBc.navigate(DocumentVatClassificationSelectionEntity.Selection), vatSelCode);\n storage.setValue(vatDeductionBc, id);\n storage.validateFieldSync(vatDeductionBc);\n storage.addActiveField(vatDeductionBc);\n }\n }\n\n // set value for Tax Impact\n const taxImpact = data.CbaTaxImpact;\n if (!isObjectEmpty(taxImpact)) {\n const catBc = itemBc.navigate(PaymentDocumentItemEntity.CbaCategory);\n const catPathBc = itemBc.navigate(CBA_CATEGORY_PATH);\n const { TaxImpactCode } = taxImpact;\n const cbaSelection = TaxImpactCode === CbaCategoryTaxImpactCode.Partial || taxImpact.IsAssetAcquisition ? CbaSelectionCode.Own : TaxImpactCode;\n const category: IDocumentCbaCategoryEntity = {\n TaxPercentage: taxImpact.TaxPercentage ?? (TaxImpactCode === CbaCategoryTaxImpactCode.Tax ? 100 : 0),\n TaxImpactCode,\n IsAssetAcquisition: taxImpact.IsAssetAcquisition,\n Category: null\n };\n storage.setValue(catBc, category);\n storage.setValue(catPathBc, cbaSelection);\n storage.addActiveField(catPathBc);\n }\n\n // force update item amounts - change bc to amount field which should recalculate the item according to.\n args.bindingContext = itemBc.navigate(isVatRegisteredCompany(storage.context) ? ItemTemplateEntity.TransactionAmountNet : ItemTemplateEntity.TransactionAmount);\n return true;\n}\n\nexport function invalidateItemTemplateSelectItems(storage: FormStorage): void {\n const { entity, bindingContext } = storage.data;\n const { Items } = entity;\n const itemBc = bindingContext.navigate(\"Items\");\n Items?.forEach((item: IEntity) => {\n const bc = itemBc.addKey(item).navigate(DocumentItemEntity.Description);\n const info = storage.getInfo(bc);\n info.fieldSettings.items = null;\n });\n}","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport {\n AccountAssignmentDocumentTypeEntity,\n AccountAssignmentEntity,\n EntitySetName,\n EntityTypeName,\n IAccountAssignmentEntity,\n IItemTemplateEntity,\n ItemTemplateCbaTaxImpactEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CbaCategoryTaxImpactCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { getAssetAcquisitionLabel } from \"@pages/cashBasisAccounting/CashBasisAccounting.utils\";\n\nimport { ValueType } from \"../../../enums\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\n\nexport type TItemTemplateStorage = FormStorage;\n\nexport const ItemTemplatesTranslationFiles = [\n \"ItemTemplates\",\n \"Document\",\n \"Categories\",\n getEnumNameSpaceName(EntityTypeName.CbaCategoryTaxImpact),\n getEnumNameSpaceName(EntityTypeName.VatDeductionType),\n getEnumNameSpaceName(EntityTypeName.VatStatus)\n];\n\nexport enum DialogType {\n AccountAssignment = \"AccountAssignment\",\n VatDeduction = \"VatDeduction\",\n TaxImpact = \"TaxImpact\"\n}\n\nexport interface IItemTemplateCustomData extends IFormStorageDefaultCustomData {\n AccountAssignments: IAccountAssignmentEntity[];\n FlattenAccounts: ISelectItem[];\n FlattenNonTaxAccounts: ISelectItem[];\n openedDialog: DialogType;\n}\n\nconst ItemTemplateAllowedTypes = [\n DocumentTypeCode.InvoiceIssued, DocumentTypeCode.InvoiceReceived,\n DocumentTypeCode.ProformaInvoiceIssued, DocumentTypeCode.ProformaInvoiceReceived,\n DocumentTypeCode.OtherLiability, DocumentTypeCode.OtherReceivable,\n DocumentTypeCode.CorrectiveInvoiceIssued, DocumentTypeCode.CorrectiveInvoiceReceived,\n];\n\nexport async function loadAccountAssignments(storage: TItemTemplateStorage): Promise {\n let { AccountAssignments } = storage.getCustomData() ?? {};\n if (!AccountAssignments) {\n const query = storage.oData.getEntitySetWrapper(EntitySetName.AccountAssignments).query()\n .filter(`${AccountAssignmentEntity.DocumentTypes}/any(x: x/${AccountAssignmentDocumentTypeEntity.DocumentTypeCode} in (${transformToODataString(ItemTemplateAllowedTypes, ValueType.String)}))`)\n .orderBy(AccountAssignmentEntity.ShortName);\n\n const data = await query.fetchData();\n AccountAssignments = data.value;\n\n storage.setCustomData({\n AccountAssignments\n });\n }\n\n return AccountAssignments;\n}\n\nexport const nonTaxAssetID = `${CbaCategoryTaxImpactCode.Nontax}_asset`;\n\nexport function getCbaTaxImpactSelectItems(): ISelectItem[] {\n\n const _createItem = (code: CbaCategoryTaxImpactCode): ISelectItem => ({\n id: code,\n label: getEnumDisplayValue(EntityTypeName.CbaCategoryTaxImpact, code)\n });\n\n return [\n _createItem(CbaCategoryTaxImpactCode.Tax),\n _createItem(CbaCategoryTaxImpactCode.Nontax),\n // nonTax, Asset Acquisition\n {\n id: nonTaxAssetID,\n label: getAssetAcquisitionLabel(getEnumDisplayValue(EntityTypeName.CbaCategoryTaxImpact, CbaCategoryTaxImpactCode.Nontax)),\n additionalData: {\n [ItemTemplateCbaTaxImpactEntity.IsAssetAcquisition]: true\n }\n },\n _createItem(CbaCategoryTaxImpactCode.Partial),\n ];\n}","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { fetchItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport BindingContext, { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n IItemTemplateEntity,\n ItemTemplateAccountAssignmentEntity,\n ItemTemplateAccountAssignmentSelectionEntity,\n ItemTemplateCbaTaxImpactEntity,\n ItemTemplateEntity,\n ItemTemplateVatClassificationEntity,\n ItemTemplateVatClassificationSelectionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CbaCategoryTaxImpactCode, SelectionCode, VatDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getShortNameFromAccountNumbers } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport {\n DialogType,\n IItemTemplateCustomData,\n loadAccountAssignments,\n nonTaxAssetID\n} from \"@pages/admin/itemTemplates/ItemTemplates.utils\";\nimport {\n AASelectionCodePath,\n AccAssCreditAccountPath,\n AccAssDebitAccountPath,\n AccAssNamePath,\n AccAssShortNamePath,\n additionalAssignmentSelectionCodes,\n additionalVatClassificationSelectionCodes,\n CbaTaxImpactLocalPath,\n CbaTaxPercentagePath,\n NonTaxAccountPath,\n recalculateTriggerProps,\n selectionAccountPaths,\n vatClassificationAccountPaths,\n VatProportionalDeductionPath\n} from \"@pages/admin/itemTemplates/ItemTemplatesDef\";\nimport { isProportionalDeduction } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { anyPathEquals, calcLineItemValues, loadVats } from \"@pages/documents/Document.utils\";\nimport { isDefined } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport TemporalFormDialog from \"../../../views/formView/TemporalFormDialog\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass ItemTemplatesFormView extends FormViewForExtend {\n static defaultProps = {\n title: \"FormTitle\"\n };\n\n constructor(props: IProps) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.save = this.save.bind(this);\n this.onAfterLoad = this.onAfterLoad.bind(this);\n this.onBeforeSave = this.onBeforeSave.bind(this);\n }\n\n getAdditionalLoadPromise = () => {\n const { storage } = this.props;\n return [loadVats(storage.context, storage), loadAccountAssignments(storage)];\n }\n\n onAfterLoad = async () => {\n // find correct account assignment ID, correct selection ID, so it shows the correct value\n this.correctAccountAssignmentId();\n // set correct VatClassification ID, so the select shows correct value\n this.correctVatClassificationId();\n // set correct local context value for CbaTaxImpact field\n this.setCbaTaxImpactLocalContext();\n\n const [items] = await this.preloadFlattenAccounts();\n if (!this.props.storage.data.bindingContext.isNew()) {\n this.setAccountValues(items);\n }\n\n return super.onAfterLoad();\n };\n\n async preloadFlattenAccounts(): Promise {\n const { storage } = this.props;\n const info = storage.getInfo(storage.data.bindingContext.navigate(AccAssCreditAccountPath));\n const infoNonTax = storage.getInfo(storage.data.bindingContext.navigate(NonTaxAccountPath));\n const [items, nonTaxItems] = await Promise.all([fetchItemsByInfo(storage, info), fetchItemsByInfo(storage, infoNonTax)]);\n storage.setCustomData({ FlattenAccounts: items, FlattenNonTaxAccounts: nonTaxItems });\n return [items, nonTaxItems];\n }\n\n correctVatClassificationId() {\n const { storage } = this.props;\n const { entity, bindingContext } = storage.data;\n\n let correctId: string | number;\n const selectionCode = entity.VatClassificationSelection?.SelectionCode as (SelectionCode | undefined);\n if (!selectionCode || additionalVatClassificationSelectionCodes.includes(selectionCode)) {\n correctId = selectionCode;\n } else if (selectionCode === SelectionCode.Own) {\n // matching ID\n correctId = entity?.VatClassificationSelection?.VatClassification?.VatDeductionTypeCode;\n }\n const bc = bindingContext\n .navigate(ItemTemplateEntity.VatClassificationSelection);\n storage.setValue(bc, correctId);\n }\n\n handleVatClassificationSelectionChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath() as ItemTemplateEntity;\n\n if (path === ItemTemplateEntity.VatClassificationSelection) {\n let selectionCode = e.value as SelectionCode;\n let deductionType: VatDeductionTypeCode = null;\n\n if (selectionCode && !additionalVatClassificationSelectionCodes.includes(selectionCode)) {\n selectionCode = SelectionCode.Own;\n deductionType = e.value as VatDeductionTypeCode;\n }\n const bc = e.bindingContext.navigate(ItemTemplateVatClassificationSelectionEntity.SelectionCode);\n storage.setValue(bc, selectionCode);\n storage.setValue(e.bindingContext, e.value);\n\n const deductionTypeBc = e.bindingContext\n .navigate(ItemTemplateVatClassificationSelectionEntity.VatClassification)\n .navigate(ItemTemplateVatClassificationEntity.VatDeductionTypeCode);\n storage.setValue(deductionTypeBc, deductionType);\n if (!isProportionalDeduction(deductionType)) {\n storage.clearValueByPath(VatProportionalDeductionPath);\n storage.clearValueByPath(NonTaxAccountPath);\n }\n }\n };\n\n handleVatClassificationDialog = ({\n value,\n triggerAdditionalTasks,\n bindingContext\n }: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = bindingContext.getPath() as ItemTemplateEntity;\n if (triggerAdditionalTasks && path === ItemTemplateEntity.VatClassificationSelection && isProportionalDeduction(value)) {\n storage.setCustomData({ openedDialog: DialogType.VatDeduction });\n storage.setTemporalData(bindingContext, { value });\n // needed for isRequired validation\n const deductionTypeBc = bindingContext\n .navigate(ItemTemplateVatClassificationSelectionEntity.VatClassification)\n .navigate(ItemTemplateVatClassificationEntity.VatDeductionTypeCode);\n storage.setTemporalData(deductionTypeBc, { value });\n const { entity } = storage.data;\n if (!entity.VatClassificationSelection?.VatClassification) {\n entity.VatClassificationSelection = {\n ...entity.VatClassificationSelection,\n VatClassification: {}\n };\n }\n this.setAccountValues(storage.getCustomData().FlattenAccounts);\n storage.refresh();\n // stops processing the change -> just open the dialog\n return true;\n }\n return false;\n };\n\n setCbaTaxImpactLocalContext = () => {\n const { storage } = this.props;\n const { entity } = storage.data;\n\n let correctId: string = entity.CbaTaxImpact.TaxImpactCode;\n if (entity.CbaTaxImpact.IsAssetAcquisition) {\n correctId = nonTaxAssetID;\n }\n storage.setValueByPath(CbaTaxImpactLocalPath, correctId);\n };\n\n handleTaxImpactDialog = ({ value, triggerAdditionalTasks, bindingContext }: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = bindingContext.getPath() as ItemTemplateEntity;\n if (triggerAdditionalTasks && path === CbaTaxImpactLocalPath && value === CbaCategoryTaxImpactCode.Partial) {\n storage.setCustomData({ openedDialog: DialogType.TaxImpact });\n storage.setTemporalData(bindingContext, { value });\n // needed for isRequired validation\n const taxImpactCodeBc = storage.data.bindingContext\n .navigate(ItemTemplateEntity.CbaTaxImpact)\n .navigate(ItemTemplateCbaTaxImpactEntity.TaxImpactCode);\n storage.setTemporalData(taxImpactCodeBc, { value });\n storage.refresh();\n // stops processing the change -> just open the dialog\n return true;\n }\n return false;\n };\n\n correctAccountAssignmentId() {\n // finds matching account assignment ID and correct it in the entity, so the custom select shows correct value\n const { storage } = this.props;\n const { entity } = storage.data;\n const compareProps = [\n ItemTemplateAccountAssignmentEntity.ShortName,\n ItemTemplateAccountAssignmentEntity.Name,\n ItemTemplateAccountAssignmentEntity.CreditAccountName,\n ItemTemplateAccountAssignmentEntity.CreditAccountNumber,\n ItemTemplateAccountAssignmentEntity.DebitAccountName,\n ItemTemplateAccountAssignmentEntity.DebitAccountNumber,\n ];\n let correctId: string | number;\n const selectionCode = entity.AccountAssignmentSelection?.SelectionCode as (SelectionCode | undefined);\n if (!selectionCode || additionalAssignmentSelectionCodes.includes(selectionCode)) {\n correctId = selectionCode;\n } else if (selectionCode === SelectionCode.Copy) {\n // find matching ID\n const { AccountAssignments } = storage.getCustomData();\n const entityAA = entity.AccountAssignmentSelection?.AccountAssignment;\n const matching = AccountAssignments?.find(aa => compareProps.every(propName => aa[propName] === entityAA[propName]));\n correctId = matching?.Id ?? SelectionCode.Own;\n }\n storage.setValue(storage.data.bindingContext.navigate(ItemTemplateEntity.AccountAssignmentSelection), correctId);\n }\n\n handleAccountAssignmentSelectionChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath() as ItemTemplateEntity;\n if (path === ItemTemplateEntity.AccountAssignmentSelection) {\n let selectionCode = e.value as SelectionCode;\n\n if (typeof e.value === \"number\") {\n selectionCode = SelectionCode.Copy;\n }\n const bc = e.bindingContext.navigate(ItemTemplateAccountAssignmentSelectionEntity.SelectionCode);\n storage.setValue(bc, selectionCode);\n storage.setValue(e.bindingContext, e.value);\n }\n };\n\n handleTaxImpactChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath() as ItemTemplateEntity;\n if (path === CbaTaxImpactLocalPath) {\n let impactCode = e.value as CbaCategoryTaxImpactCode;\n const taxImpactBc = storage.data.bindingContext.navigate(ItemTemplateEntity.CbaTaxImpact);\n\n const isAssetAcquisition = e.value === nonTaxAssetID;\n if (isAssetAcquisition) {\n impactCode = CbaCategoryTaxImpactCode.Nontax;\n }\n storage.setValue(taxImpactBc.navigate(ItemTemplateCbaTaxImpactEntity.IsAssetAcquisition), isAssetAcquisition);\n const bc = taxImpactBc.navigate(ItemTemplateCbaTaxImpactEntity.TaxImpactCode);\n storage.setValue(bc, impactCode);\n storage.setValue(e.bindingContext, e.value);\n }\n };\n\n setAccountValues = (items: ISelectItem[]): void => {\n const storage = this.props.storage;\n const { entity } = storage.data;\n const { AccountAssignment } = entity.AccountAssignmentSelection ?? {};\n const { VatClassification } = entity.VatClassificationSelection ?? {};\n let creditId, debitId, nonTaxId;\n\n items.forEach(item => {\n const { Name, Number } = item.additionalData;\n if (VatClassification?.NonTaxAccountNumber && Number === VatClassification.NonTaxAccountNumber && Name === VatClassification.NonTaxAccountName) {\n nonTaxId = item.id;\n }\n if (AccountAssignment?.CreditAccountNumber && Number === AccountAssignment.CreditAccountNumber && Name === AccountAssignment.CreditAccountName) {\n creditId = item.id;\n }\n if (AccountAssignment?.DebitAccountNumber && Number === AccountAssignment.DebitAccountNumber && Name === AccountAssignment.DebitAccountName) {\n debitId = item.id;\n }\n });\n storage.setValueByPath(NonTaxAccountPath, nonTaxId, true);\n storage.setValueByPath(AccAssCreditAccountPath, creditId, true);\n storage.setValueByPath(AccAssDebitAccountPath, debitId, true);\n };\n\n handleAccountAssignmentDialog = ({ value, triggerAdditionalTasks, bindingContext }: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = bindingContext.getPath() as ItemTemplateEntity;\n if (triggerAdditionalTasks && path === ItemTemplateEntity.AccountAssignmentSelection && value === SelectionCode.Own) {\n storage.setCustomData({ openedDialog: DialogType.AccountAssignment });\n storage.setTemporalData(bindingContext, { value });\n // needed for isRequired validation\n storage.setTemporalData(storage.data.bindingContext.navigate(AASelectionCodePath), { value });\n const { entity } = storage.data;\n if (!entity.AccountAssignmentSelection?.AccountAssignment) {\n entity.AccountAssignmentSelection = {\n ...entity.AccountAssignmentSelection,\n AccountAssignment: {}\n };\n }\n this.setAccountValues(storage.getCustomData().FlattenAccounts);\n storage.refresh();\n // stops processing the change -> just open the dialog\n return true;\n }\n return false;\n };\n\n handleChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n if (this.handleAccountAssignmentDialog(e) || this.handleVatClassificationDialog(e) || this.handleTaxImpactDialog(e)) {\n // just open temporal dialog -> no real change\n return;\n }\n\n storage.handleChange(e);\n\n if (e.triggerAdditionalTasks) {\n this.handleTaxImpactChange(e);\n this.handleAccountAssignmentSelectionChange(e);\n this.handleVatClassificationSelectionChange(e);\n this.updateAmounts(e.bindingContext);\n\n const path = e.bindingContext.getPath();\n if (path === ItemTemplateEntity.Accounting || path === ItemTemplateEntity.VatStatus) {\n // remove all selected companies as they can't match the new selection of conditions\n if (!storage.getValueByPath(ItemTemplateEntity.AlwaysOffer)) {\n storage.setValueByPath(ItemTemplateEntity.AllowedCompanies, []);\n }\n // refresh whole default values group to update field visibility\n storage.refreshGroup(storage.data.bindingContext.navigate(ItemTemplateEntity.Quantity));\n }\n }\n\n storage.refreshFields();\n };\n\n handleAccountTemporalChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath();\n if ([AccAssCreditAccountPath, AccAssDebitAccountPath, NonTaxAccountPath].includes(path) && e.triggerAdditionalTasks) {\n const cleanPath = BindingContext.cleanLocalContext(path);\n const { Name, Number } = e.additionalData ?? {};\n\n const basePath = path === NonTaxAccountPath\n ? createPath(ItemTemplateEntity.VatClassificationSelection, ItemTemplateVatClassificationSelectionEntity.VatClassification)\n : createPath(ItemTemplateEntity.AccountAssignmentSelection, ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment);\n const bc = storage.data.bindingContext.navigate(basePath);\n\n storage.setTemporalData(bc.navigate(`${cleanPath}Name`), { value: Name });\n storage.setTemporalData(bc.navigate(`${cleanPath}Number`), { value: Number });\n }\n };\n\n async handleBlur(args: ISmartFieldBlur): Promise {\n const error = await this.props.storage.handleBlur(args);\n\n if (args.wasChanged) {\n if (!error) {\n // don't update values if last changed caused validation error\n await this.updateAmounts(args.bindingContext);\n }\n }\n this.props.storage.refreshFields();\n }\n\n async updateAmounts(bc: BindingContext) {\n const { storage } = this.props;\n const { bindingContext } = storage.data;\n const triggered = anyPathEquals(bc, recalculateTriggerProps, bindingContext.getFullPath(true));\n\n if (!triggered) {\n return;\n }\n\n const value = storage.getValue(bc);\n const path = bc.getPath() as ItemTemplateEntity;\n const newData = (isDefined(value) || path === ItemTemplateEntity.Vat) ? this.recalculateAmounts(path) : {};\n\n recalculateTriggerProps.forEach(prop => {\n if (isDefined(newData[prop]) || ![\"Quantity\", \"Vat\"].includes(prop)) {\n storage.setValue(storage.data.bindingContext.navigate(prop), newData[prop]);\n }\n });\n storage.refresh();\n\n await storage.validateFields(recalculateTriggerProps.map(prop => storage.data.bindingContext.navigate(prop)));\n storage.refreshFields(true);\n }\n\n _lastChangedProp: ItemTemplateEntity | null = null;\n\n recalculateAmounts(changedProp: ItemTemplateEntity) {\n const nonNumericProps = [ItemTemplateEntity.Vat];\n const { entity } = this.props.storage.data;\n const decimalPlaces = entity.TransactionCurrency?.MinorUnit ?? 2;\n const newData: TRecordAny = {};\n recalculateTriggerProps.forEach(prop => {\n newData[prop] = entity[prop];\n });\n\n if (!nonNumericProps.includes(changedProp)) {\n newData[changedProp] = parseFloat(newData[changedProp]);\n\n if (isNaN(newData[changedProp])) {\n newData[changedProp] = 0;\n }\n }\n\n // todo what to do with big values? causes Infinity and NaN\n if (isNaN(parseFloat(newData.Quantity))) {\n newData.Quantity = 1;\n }\n\n const lastChangedValue = this._lastChangedProp;\n\n const newValues = calcLineItemValues({\n Quantity: newData.Quantity,\n TransactionAmount: newData.TransactionAmount,\n TransactionAmountNet: newData.TransactionAmountNet,\n TransactionAmountVat: newData.TransactionAmountVat,\n // if we select 'without VAT' (value is null) we want to calculate with 0 vat rate\n Vat: (newData.Vat?.Code && newData.Vat?.Rate) ?? 0\n }, changedProp, lastChangedValue, decimalPlaces);\n\n if (changedProp === ItemTemplateEntity.TransactionAmount) {\n this._lastChangedProp = ItemTemplateEntity.TransactionAmount;\n } else if (changedProp === ItemTemplateEntity.TransactionAmountVat) {\n this._lastChangedProp = ItemTemplateEntity.TransactionAmountVat;\n } else {\n // keep the original value, e.g. if user changes Vat twice, it should behave in a same way\n }\n\n newData.TransactionAmount = newValues.TransactionAmount;\n newData.TransactionAmountNet = newValues.TransactionAmountNet;\n newData.TransactionAmountVat = newValues.TransactionAmountVat;\n\n return newData;\n }\n\n onBeforeSave = (): IEntity => {\n const entity = cloneDeep(this.entity);\n\n const _selAACode = entity.AccountAssignmentSelection?.SelectionCode as (SelectionCode | undefined);\n if (!_selAACode) {\n entity.AccountAssignmentSelection = null;\n } else if (![SelectionCode.Own, SelectionCode.Copy].includes(_selAACode)) {\n entity.AccountAssignmentSelection.AccountAssignment = null;\n }\n\n const _selVatCode = entity.VatClassificationSelection?.SelectionCode as (SelectionCode | undefined);\n if (!_selVatCode) {\n entity.VatClassificationSelection = null;\n } else if (_selVatCode !== SelectionCode.Own) {\n entity.VatClassificationSelection.VatClassification = null;\n }\n\n const _taxImpactCode = entity.CbaTaxImpact.TaxImpactCode as (CbaCategoryTaxImpactCode | undefined);\n if (!_taxImpactCode) {\n entity.CbaTaxImpact = null;\n } else {\n if (_taxImpactCode !== CbaCategoryTaxImpactCode.Partial) {\n entity.CbaTaxImpact.TaxPercentage = _taxImpactCode === CbaCategoryTaxImpactCode.Nontax ? 0 : 100;\n }\n }\n\n return entity;\n };\n\n renderCustomDialogs() {\n return (<>\n {this.renderAccountAssignmentDialog()}\n {this.renderVatClassificationDialog()}\n {this.renderTaxImpactDialog()}\n );\n }\n\n renderTaxImpactDialog = (): React.ReactElement => {\n const { storage } = this.props;\n if (storage.getCustomData().openedDialog !== DialogType.TaxImpact) {\n return null;\n }\n\n const paths = [\n [CbaTaxPercentagePath]\n ];\n\n const { bindingContext } = storage.data;\n const _close = async (isConfirmed: boolean) => {\n const taxImpactBc = bindingContext.navigate(ItemTemplateEntity.CbaTaxImpact);\n const taxImpactLocalBc = bindingContext.navigate(CbaTaxImpactLocalPath);\n const percentageBc = bindingContext.navigate(CbaTaxPercentagePath);\n if (isConfirmed) {\n // confirm additional Fields not visible in the dialog form\n await Promise.all([\n storage.confirmFields([percentageBc], this.handleChange),\n storage.confirmFields([taxImpactLocalBc], this.handleTaxImpactChange)\n ]);\n } else {\n storage.cancelFields([percentageBc, taxImpactLocalBc, taxImpactBc]);\n }\n storage.setCustomData({ openedDialog: null });\n this.forceUpdate();\n };\n\n return (\n \n );\n };\n\n renderAccountAssignmentDialog = (): React.ReactElement => {\n const { storage } = this.props;\n if (storage.getCustomData().openedDialog !== DialogType.AccountAssignment) {\n return null;\n }\n\n const paths = [\n [AccAssDebitAccountPath, AccAssCreditAccountPath],\n [AccAssNamePath]\n ];\n\n const { bindingContext } = storage.data;\n const _close = async (isConfirmed: boolean) => {\n const selectionBc = bindingContext.navigate(ItemTemplateEntity.AccountAssignmentSelection);\n const bcs = selectionAccountPaths.map(path => selectionBc.navigate(path));\n if (isConfirmed) {\n // confirm additional Fields not visible in the dialog form\n await Promise.all([\n storage.confirmFields(bcs, this.handleChange),\n storage.confirmFields([selectionBc], this.handleAccountAssignmentSelectionChange)\n ]);\n const { CreditAccountNumber, DebitAccountNumber} = storage.data.entity.AccountAssignmentSelection.AccountAssignment;\n const defaultShortName = getShortNameFromAccountNumbers(DebitAccountNumber, CreditAccountNumber);\n storage.setValueByPath(AccAssShortNamePath, defaultShortName);\n } else {\n storage.cancelFields([...bcs, selectionBc, storage.data.bindingContext.navigate(AASelectionCodePath)]);\n }\n storage.setCustomData({ openedDialog: null });\n this.forceUpdate();\n };\n\n return (\n \n );\n };\n\n renderVatClassificationDialog = (): React.ReactElement => {\n const { storage } = this.props;\n if (storage.getCustomData().openedDialog !== DialogType.VatDeduction) {\n return null;\n }\n\n const paths = [[VatProportionalDeductionPath, NonTaxAccountPath]];\n\n const { bindingContext } = storage.data;\n const _close = async (isConfirmed: boolean) => {\n const selectionBc = bindingContext.navigate(ItemTemplateEntity.VatClassificationSelection);\n const bcs = vatClassificationAccountPaths.map(path => selectionBc.navigate(path));\n const deductionTypeBc = selectionBc\n .navigate(ItemTemplateVatClassificationSelectionEntity.VatClassification)\n .navigate(ItemTemplateVatClassificationEntity.VatDeductionTypeCode);\n if (isConfirmed) {\n // confirm additional Fields not visible in the dialog form\n await Promise.all([\n storage.confirmFields(bcs, this.handleChange),\n storage.confirmFields([selectionBc], this.handleVatClassificationSelectionChange)\n ]);\n } else {\n storage.cancelFields([...bcs, selectionBc, deductionTypeBc]);\n }\n storage.setCustomData({ openedDialog: null });\n this.forceUpdate();\n };\n\n return (\n \n );\n };\n}\n\nexport default withPermissionContext(ItemTemplatesFormView);\n","import { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { EMPTY_DASH } from \"@components/readOnlyList/ReadOnlyList\";\nimport { IGetValueArgs, TGetValueFn } from \"@components/smart/FieldInfo\";\nimport { CurrencyDef, getDocumentItemVatDef, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport BindingContext, { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n AccountingEntity,\n EntitySetName,\n EntityTypeName,\n IAccountAssignmentEntity,\n ICompanyEntity,\n IItemTemplateAccountAssignmentEntity,\n IItemTemplateEntity,\n ItemTemplateAccountAssignmentEntity,\n ItemTemplateAccountAssignmentSelectionEntity,\n ItemTemplateCbaTaxImpactEntity,\n ItemTemplateEntity,\n ItemTemplateVatClassificationEntity,\n ItemTemplateVatClassificationSelectionEntity,\n UnitOfMeasureEntity,\n VatClassificationSelectionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountingCode,\n CbaCategoryTaxImpactCode,\n CurrencyCode,\n SelectionCode,\n VatStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n getAccountComparisonFunction,\n getAccountFormatter\n} from \"@pages/accountAssignment/AccountAssignment.utils.shared\";\nimport { flattenAccountsDef } from \"@pages/accountAssignment/AccountAssignmentDef\";\nimport {\n getCbaTaxImpactSelectItems,\n ItemTemplatesTranslationFiles,\n TItemTemplateStorage\n} from \"@pages/admin/itemTemplates/ItemTemplates.utils\";\nimport ItemTemplatesFormView from \"@pages/admin/itemTemplates/ItemTemplatesFormView\";\nimport { getNonTaxAccountFilter, isProportionalDeduction } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { getAssetAcquisitionLabel, getPartialImpactLabel } from \"@pages/cashBasisAccounting/CashBasisAccounting.utils\";\nimport { getCurrencyUnit, lineItemsTriggerProps, readOnlyCurrencyItemFormatter } from \"@pages/documents/Document.utils\";\nimport { ItemQuantityDef, UnitOfMeasureDef } from \"@pages/documents/DocumentCommonDefs\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport {\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n GroupedField,\n NavigationSource,\n Sort,\n ValidatorType\n} from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\n\nexport const recalculateTriggerProps = lineItemsTriggerProps.filter(prop => !prop.startsWith(\"Unit\")) as ItemTemplateEntity[];\n\nexport const CbaTaxImpactLocalPath = BindingContext.localContext(\"TaxImpact\");\nexport const CbaTaxPercentagePath = createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.TaxPercentage);\nexport const CbaTaxImpactPath = createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.TaxImpact);\n\nexport const AASelectionCodePath = createPath(ItemTemplateEntity.AccountAssignmentSelection, ItemTemplateAccountAssignmentSelectionEntity.SelectionCode);\nexport const AccAssCreditAccountPath = BindingContext.localContext(\"CreditAccount\");\nexport const AccAssDebitAccountPath = BindingContext.localContext(\"DebitAccount\");\nexport const AccAssNamePath = createPath(ItemTemplateEntity.AccountAssignmentSelection, ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.Name);\nexport const AccAssShortNamePath = createPath(ItemTemplateEntity.AccountAssignmentSelection, ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.ShortName);\n\nexport const selectionAccountPaths = [\n createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.CreditAccountName),\n createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.CreditAccountNumber),\n createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.DebitAccountName),\n createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.DebitAccountNumber)\n];\n\nexport const VatProportionalDeductionPath = createPath(ItemTemplateEntity.VatClassificationSelection, ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatProportionalDeduction);\nexport const VatDeductionTypeCodePath = createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatDeductionTypeCode);\nexport const VatDeductionTypePath = createPath(ItemTemplateEntity.VatClassificationSelection, ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatDeductionType);\nexport const NonTaxAccountPath = BindingContext.localContext(\"NonTaxAccount\");\n\nexport const vatClassificationAccountPaths = [\n createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.NonTaxAccountName),\n createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.NonTaxAccountNumber),\n];\n\nfunction accountEntityGetter(entity: IItemTemplateEntity, storage?: Model): IItemTemplateAccountAssignmentEntity {\n const assignment: TRecordAny = { ...entity.AccountAssignmentSelection?.AccountAssignment };\n if (storage) {\n const assignmentBc = storage.data.bindingContext.navigate(ItemTemplateEntity.AccountAssignmentSelection);\n selectionAccountPaths.forEach(path => {\n const bc = assignmentBc.navigate(path);\n const data = storage.getTemporalData(bc);\n if (data?.value) {\n assignment[bc.getPath()] = data.value;\n }\n });\n }\n return assignment;\n}\n\nfunction vatNonTaxAccountEntityGetter(entity: IItemTemplateEntity, storage?: Model): IEntity {\n const vatClassification: TRecordAny = { ...entity.VatClassificationSelection?.VatClassification };\n if (storage) {\n const vatClassBc = storage.data.bindingContext.navigate(ItemTemplateEntity.VatClassificationSelection);\n vatClassificationAccountPaths.forEach(path => {\n const bc = vatClassBc.navigate(path);\n const data = storage.getTemporalData(bc);\n if (data?.value) {\n vatClassification[bc.getPath()] = data.value;\n }\n });\n }\n return vatClassification;\n}\n\nconst isGroupedFieldEndWhenNotVatRegistered: TGetValueFn = (args) => {\n return isVatRegistered(args) ? null : GroupedField.WrappedMultiEnd;\n};\n\nconst isVatRegistered: TGetValueFn = (args) => {\n return args.storage.data.entity?.VatStatus?.Code === VatStatusCode.VATRegistered;\n};\n\nconst isPartialTaxImpact: TGetValueFn = (args) => {\n // including temporal value\n const taxImpact = args.storage.getValueByPath(CbaTaxImpactLocalPath);\n return taxImpact === CbaCategoryTaxImpactCode.Partial;\n};\n\nconst isCashBasisAccounting: TGetValueFn = (args) => {\n return args.storage.data.entity?.Accounting?.Code === AccountingCode.CashBasisAccounting;\n};\n\nconst hasAccountAssignment: TGetValueFn = (args) => {\n return args.storage.data.entity?.Accounting?.Code === AccountingCode.AccountingForBusiness;\n};\n\nconst hasOwnAASelection: TGetValueFn = (args) => {\n const selection = args.storage.getValueByPath(AASelectionCodePath);\n return selection === SelectionCode.Own;\n};\n\nconst hasProportionalDeduction: TGetValueFn = (args) => {\n const bc = args.storage.data.bindingContext\n .navigate(ItemTemplateEntity.VatClassificationSelection)\n .navigate(VatDeductionTypeCodePath);\n const deductionTypeCode = args.storage.getValue(bc);\n return isProportionalDeduction(deductionTypeCode);\n};\n\nexport const additionalAssignmentSelectionCodes = [SelectionCode.None, SelectionCode.Default, SelectionCode.Own];\nexport const additionalVatClassificationSelectionCodes = [SelectionCode.None, SelectionCode.Default];\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n ItemTemplateEntity.Description,\n ItemTemplateEntity.Accounting,\n ItemTemplateEntity.VatStatus,\n ItemTemplateEntity.TransactionCurrency,\n AccAssShortNamePath,\n VatDeductionTypePath,\n CbaTaxImpactPath\n ],\n filterDefinition: {\n [ItemTemplateEntity.Description]: {},\n ...withDisplayName(ItemTemplateEntity.Accounting),\n ...withDisplayName(ItemTemplateEntity.VatStatus),\n ...withDisplayName(CbaTaxImpactPath, {\n description: i18next.t(\"ItemTemplates:Table.CbaTaxImpact\").toString()\n }),\n [ItemTemplateEntity.AlwaysOffer]: {\n width: BasicInputSizes.M,\n },\n [ItemTemplateEntity.Quantity]: {},\n ...withDisplayName(ItemTemplateEntity.UnitOfMeasure),\n ...withDisplayName(ItemTemplateEntity.Vat),\n [ItemTemplateEntity.TransactionAmount]: {},\n [ItemTemplateEntity.TransactionAmountNet]: {},\n [ItemTemplateEntity.TransactionAmountVat]: {},\n ...withDisplayName(ItemTemplateEntity.TransactionCurrency),\n [AccAssShortNamePath]: {},\n ...withDisplayName(VatDeductionTypePath, {\n label: i18next.t(\"ItemTemplates:Table.VatDeductionType\")\n })\n },\n isValueHelp: true,\n allowCustomFilters: true\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.ItemTemplate}Table`,\n columns: [\n ItemTemplateEntity.Description,\n ItemTemplateEntity.Accounting,\n ItemTemplateEntity.VatStatus,\n ItemTemplateEntity.TransactionCurrency,\n AccAssShortNamePath,\n CbaTaxImpactPath,\n VatDeductionTypePath,\n ],\n additionalProperties: [\n { id: AASelectionCodePath },\n { id: createPath(ItemTemplateEntity.VatClassificationSelection, VatClassificationSelectionEntity.SelectionCode) }\n ],\n columnDefinition: {\n [ItemTemplateEntity.Description]: {},\n ...withDisplayName(ItemTemplateEntity.Accounting),\n ...withDisplayName(ItemTemplateEntity.VatStatus),\n ...withDisplayName(ItemTemplateEntity.TransactionCurrency),\n [ItemTemplateEntity.AlwaysOffer]: {},\n [ItemTemplateEntity.Quantity]: {},\n [ItemTemplateEntity.UnitOfMeasure]: {\n fieldSettings: {\n displayName: UnitOfMeasureEntity.ShortName\n }\n },\n ...withDisplayName(ItemTemplateEntity.Vat),\n [ItemTemplateEntity.TransactionAmount]: {},\n [ItemTemplateEntity.TransactionAmountNet]: {},\n [ItemTemplateEntity.TransactionAmountVat]: {},\n [AccAssShortNamePath]: {\n label: i18next.t(\"ItemTemplates:Table.AccountAssignment\"),\n formatter: (val: string, args: IFormatOptions): string => {\n if (!val) {\n const { entity } = args;\n const _code = entity.AccountAssignmentSelection?.SelectionCode;\n if ([SelectionCode.None, SelectionCode.Default].includes(_code as SelectionCode)) {\n return i18next.t(`ItemTemplates:Selection.${_code}`);\n }\n return EMPTY_DASH;\n }\n return val;\n }\n },\n [CbaTaxImpactPath]: {\n label: i18next.t(\"ItemTemplates:Table.CbaTaxImpact\"),\n formatter: (val: string, { entity }: IFormatOptions): string => {\n const Name = val && getEnumDisplayValue(EntityTypeName.CbaCategoryTaxImpact, val);\n if (val === CbaCategoryTaxImpactCode.Partial && entity.CbaTaxImpact?.TaxPercentage) {\n return getPartialImpactLabel(Name, entity.CbaTaxImpact?.TaxPercentage);\n }\n if (val === CbaCategoryTaxImpactCode.Nontax && entity.CbaTaxImpact?.IsAssetAcquisition) {\n return getAssetAcquisitionLabel(Name);\n }\n return Name ?? EMPTY_DASH;\n },\n additionalProperties: [\n { id: `/${createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.TaxPercentage)}` },\n { id: `/${createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.IsAssetAcquisition)}` },\n ]\n },\n [VatDeductionTypePath]: {\n label: i18next.t(\"ItemTemplates:Table.VatDeductionType\"),\n formatter: (val: string, args: IFormatOptions): string => {\n if (!val) {\n const { entity } = args;\n const _code = entity.VatClassificationSelection?.SelectionCode;\n if ([SelectionCode.None, SelectionCode.Default].includes(_code as SelectionCode)) {\n return i18next.t(`ItemTemplates:VatSelection.${_code}`);\n }\n return EMPTY_DASH;\n }\n return getEnumDisplayValue(EntityTypeName.VatDeductionType, val);\n }\n }\n },\n title: i18next.t(\"ItemTemplates:Title\"),\n initialSortBy: [{ id: \"Description\", sort: Sort.Asc }]\n };\n\n const currDef = cloneDeep(CurrencyDef);\n delete currDef.filter;\n currDef.defaultValue = CurrencyCode.CzechKoruna;\n\n const amountDef = {\n width: FastEntryInputSizes.S,\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n }\n };\n\n const vatDef = getDocumentItemVatDef();\n delete vatDef.defaultValue;\n\n const form: IFormDef = {\n id: `${EntityTypeName.ItemTemplate}Form`,\n translationFiles: getDefinitions.translationFiles,\n formControl: ItemTemplatesFormView,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"ItemTemplates:NewItem\"), storage.data.entity?.Description),\n fieldDefinition: {\n [ItemTemplateEntity.Description]: {\n isRequired: true,\n width: BasicInputSizes.XL,\n validator: {\n type: ValidatorType.String,\n settings: {\n min: 3\n }\n },\n },\n [ItemTemplateEntity.TransactionCurrency]: {\n ...currDef,\n affectedFields: [\n { id: ItemTemplateEntity.TransactionAmount },\n { id: ItemTemplateEntity.TransactionAmountNet },\n { id: ItemTemplateEntity.TransactionAmountVat },\n ],\n },\n [ItemTemplateEntity.VatStatus]: {\n type: FieldType.ComboBox,\n isRequired: true,\n defaultValue: VatStatusCode.VATRegistered,\n fieldSettings: {\n items: getEnumSelectItems(EntityTypeName.VatStatus).filter(item => item.id !== VatStatusCode.IdentifiedPerson)\n }\n },\n [ItemTemplateEntity.Accounting]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n isRequired: true,\n defaultValue: AccountingCode.AccountingForBusiness,\n fieldSettings: {\n displayName: AccountingEntity.Name\n }\n },\n [ItemTemplateEntity.AlwaysOffer]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo,\n },\n defaultValue: true,\n affectedFields: [{ id: ItemTemplateEntity.AllowedCompanies }],\n customizationData: {\n dependents: [ItemTemplateEntity.AllowedCompanies]\n }\n },\n [ItemTemplateEntity.AllowedCompanies]: {\n type: FieldType.MultiSelect,\n isRequired: true,\n isCollectionField: true,\n width: BasicInputSizes.XL,\n fieldSettings: {\n keyPath: \"Id\",\n items: [],\n itemsForRender: (origItems, args: IGetValueArgs): ISelectItem[] => {\n const companies = args.storage.context.getData().companies;\n const { Accounting, VatStatus } = args.storage.data.entity as IItemTemplateEntity;\n return companies?.filter(company => {\n // todo: should we filter out companies according to current VatStatus or anytime VatStatus to support suggesting values in different times?\n return company.AccountingCode === Accounting?.Code && company.VatStatuses.find(vatStatus => vatStatus.VatStatusCode === VatStatus?.Code);\n }).map(({ Name, Id }: ICompanyEntity): ISelectItem => ({\n label: Name,\n id: Id,\n }));\n }\n },\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.entity?.AlwaysOffer;\n }\n },\n // line item values\n [ItemTemplateEntity.Quantity]: {\n ...ItemQuantityDef,\n groupedField: GroupedField.WrappedMultiStart,\n },\n [ItemTemplateEntity.UnitOfMeasure]: { ...UnitOfMeasureDef },\n [ItemTemplateEntity.Vat]: {\n ...vatDef,\n isVisible: isVatRegistered\n },\n [ItemTemplateEntity.TransactionAmountNet]: {\n ...amountDef,\n isVisible: isVatRegistered\n },\n [ItemTemplateEntity.TransactionAmountVat]: {\n ...amountDef,\n isVisible: isVatRegistered\n },\n [ItemTemplateEntity.TransactionAmount]: { ...amountDef },\n // Category\n [CbaTaxImpactLocalPath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"ItemTemplates:Form.CbaTaxImpact\"),\n isVisible: isCashBasisAccounting,\n groupedField: isGroupedFieldEndWhenNotVatRegistered,\n fieldSettings: {\n noRecordText: EMPTY_DASH,\n itemsFactory: (args: IGetValueArgs): Promise => {\n return Promise.resolve(getCbaTaxImpactSelectItems());\n }\n },\n formatter: (val: TValue, { entity }: IFormatOptions): string => {\n const item = getCbaTaxImpactSelectItems().find(item => item.id === val);\n if (val === CbaCategoryTaxImpactCode.Partial && entity.CbaTaxImpact?.TaxPercentage) {\n return getPartialImpactLabel(item.label, entity.CbaTaxImpact?.TaxPercentage);\n }\n return item?.label ?? EMPTY_DASH;\n },\n additionalProperties: [\n { id: createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.TaxImpactCode) },\n { id: createPath(ItemTemplateEntity.CbaTaxImpact, ItemTemplateCbaTaxImpactEntity.IsAssetAcquisition) },\n ]\n },\n [CbaTaxPercentagePath]: {\n type: FieldType.NumberInput,\n fieldSettings: {\n unit: \"%\",\n showSteppers: true,\n min: 0,\n max: 100\n },\n defaultValue: 100,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n max: 100\n }\n },\n customizationData: { useForCustomization: false },\n isConfirmable: true,\n isVisible: isPartialTaxImpact\n },\n // AccountAssignmentSelection\n [ItemTemplateEntity.AccountAssignmentSelection]: {\n type: FieldType.ComboBox,\n isVisible: hasAccountAssignment,\n groupedField: isGroupedFieldEndWhenNotVatRegistered,\n fieldSettings: {\n noRecordText: EMPTY_DASH,\n additionalItems: additionalAssignmentSelectionCodes.map((code) => ({\n label: i18next.t(`ItemTemplates:Selection.${code}`),\n id: code,\n groupId: SelectGroups.Default,\n additionalData: {\n SelectionCode: code\n }\n })),\n itemsFactory: async (args: IGetValueArgs): Promise => {\n // account assignments should be preloaded by formView in storage customData\n const assignments = (args.storage as TItemTemplateStorage).getCustomData().AccountAssignments;\n return assignments?.map(({\n Id,\n ShortName,\n Name,\n CreditAccountName,\n CreditAccountNumber,\n DebitAccountName,\n DebitAccountNumber\n }: IAccountAssignmentEntity): ISelectItem => ({\n id: Id,\n label: `${ShortName} - ${Name}`,\n additionalData: {\n CreditAccountName,\n CreditAccountNumber,\n DebitAccountName,\n DebitAccountNumber,\n Name, ShortName,\n SelectionCode: SelectionCode.Copy\n }\n }));\n },\n localDependentFields: [\n {\n from: { id: \"CreditAccountName\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.CreditAccountName) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"CreditAccountNumber\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.CreditAccountNumber) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"DebitAccountName\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.DebitAccountName) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"DebitAccountNumber\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.DebitAccountNumber) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"Name\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.Name) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"ShortName\" },\n to: { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.ShortName) },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"SelectionCode\" },\n to: { id: ItemTemplateAccountAssignmentSelectionEntity.SelectionCode },\n navigateFrom: NavigationSource.Itself\n },\n ]\n },\n formatter: (val, { item, storage }) => {\n const assignment = storage.getValueByPath(createPath(ItemTemplateEntity.AccountAssignmentSelection, ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment), { skipTemporaryValue: true });\n const code = storage.getValueByPath(AASelectionCodePath, { skipTemporaryValue: true });\n if (code === SelectionCode.Copy) {\n return `${assignment?.ShortName} - ${assignment?.Name}`;\n }\n // none, default, own\n const selectionName = i18next.t(`ItemTemplates:Selection.${code}`);\n if (code === SelectionCode.Own) {\n return `${assignment?.ShortName} (${selectionName})`;\n }\n return val ? selectionName : EMPTY_DASH;\n },\n additionalProperties: [\n ...selectionAccountPaths.map(id => ({ id })),\n { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.Name), },\n { id: createPath(ItemTemplateAccountAssignmentSelectionEntity.AccountAssignment, ItemTemplateAccountAssignmentEntity.ShortName), },\n { id: ItemTemplateAccountAssignmentSelectionEntity.SelectionCode },\n ]\n },\n [AccAssNamePath]: {\n width: BasicInputSizes.XL,\n isRequired: hasOwnAASelection,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n isConfirmable: true\n },\n [AccAssCreditAccountPath]: {\n label: i18next.t(\"ItemTemplates:Form.CreditAccount\"),\n ...flattenAccountsDef,\n isRequired: hasOwnAASelection,\n comparisonFunction: getAccountComparisonFunction(\"CreditAccount\", accountEntityGetter),\n formatter: getAccountFormatter(\"CreditAccount\", accountEntityGetter),\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n isConfirmable: true\n },\n [AccAssDebitAccountPath]: {\n label: i18next.t(\"ItemTemplates:Form.DebitAccount\"),\n ...flattenAccountsDef,\n isRequired: hasOwnAASelection,\n comparisonFunction: getAccountComparisonFunction(\"DebitAccount\", accountEntityGetter),\n formatter: getAccountFormatter(\"DebitAccount\", accountEntityGetter),\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n isConfirmable: true\n },\n\n // VatClassificationSelection\n [ItemTemplateEntity.VatClassificationSelection]: {\n type: FieldType.ComboBox,\n isVisible: isVatRegistered,\n groupedField: GroupedField.WrappedMultiEnd,\n fieldSettings: {\n noRecordText: EMPTY_DASH,\n additionalItems: additionalVatClassificationSelectionCodes.map((code) => ({\n label: i18next.t(`ItemTemplates:VatSelection.${code}`),\n id: code,\n groupId: SelectGroups.Default,\n additionalData: {\n SelectionCode: code\n }\n })),\n itemsFactory: async (args: IGetValueArgs): Promise => {\n return getEnumSelectItems(EntityTypeName.VatDeductionType)\n .map(item => ({\n ...item,\n additionalData: {\n ...item.additionalData,\n VatDeductionTypeCode: item.id,\n SelectionCode: SelectionCode.Own\n }\n }));\n },\n getCustomTabularData(val: TValue, args: IFormatOptions): string[] {\n if (isProportionalDeduction(val)) {\n const { storage, bindingContext } = args;\n const bc = bindingContext.navigate(createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatProportionalDeduction));\n const percentage = storage.getValue(bc);\n\n return [`${percentage}%`];\n }\n return null;\n },\n localDependentFields: [\n {\n from: { id: \"VatDeductionTypeCode\" },\n to: { id: VatDeductionTypeCodePath },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: \"SelectionCode\" },\n to: { id: ItemTemplateVatClassificationSelectionEntity.SelectionCode },\n navigateFrom: NavigationSource.Itself\n }\n ]\n },\n additionalProperties: [\n ...vatClassificationAccountPaths.map(id => ({ id })),\n { id: createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatDeductionTypeCode) },\n { id: createPath(ItemTemplateVatClassificationSelectionEntity.VatClassification, ItemTemplateVatClassificationEntity.VatProportionalDeduction) },\n { id: ItemTemplateVatClassificationSelectionEntity.SelectionCode },\n ]\n },\n [VatProportionalDeductionPath]: {\n type: FieldType.NumberInput,\n isRequired: hasProportionalDeduction,\n fieldSettings: {\n unit: \"%\",\n showSteppers: true,\n min: 0,\n max: 100\n },\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n max: 100\n }\n },\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n isConfirmable: true\n },\n [NonTaxAccountPath]: {\n label: i18next.t(\"ItemTemplates:Form.NonTaxAccount\"),\n ...flattenAccountsDef,\n filter: {\n select: getNonTaxAccountFilter()\n },\n isRequired: hasProportionalDeduction,\n comparisonFunction: getAccountComparisonFunction(\"NonTaxAccount\", vatNonTaxAccountEntityGetter),\n formatter: getAccountFormatter(\"NonTaxAccount\", vatNonTaxAccountEntityGetter),\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n isConfirmable: true\n },\n },\n groups: [{\n id: \"general\",\n rows: [\n [{ id: ItemTemplateEntity.Description }]\n ]\n }, {\n id: \"conditions\",\n title: i18next.t(\"ItemTemplates:Form.Conditions\"),\n rows: [\n [{ id: ItemTemplateEntity.Accounting }, { id: ItemTemplateEntity.VatStatus }, { id: ItemTemplateEntity.TransactionCurrency }],\n [{ id: ItemTemplateEntity.AlwaysOffer }, { id: ItemTemplateEntity.AllowedCompanies }]\n ]\n }, {\n id: \"defaultValues\",\n title: i18next.t(\"ItemTemplates:Form.DefaultValues\"),\n rows: [[\n { id: ItemTemplateEntity.Quantity },\n { id: ItemTemplateEntity.UnitOfMeasure },\n { id: ItemTemplateEntity.Vat },\n { id: ItemTemplateEntity.TransactionAmountNet },\n { id: ItemTemplateEntity.TransactionAmountVat },\n { id: ItemTemplateEntity.TransactionAmount },\n { id: ItemTemplateEntity.AccountAssignmentSelection },\n { id: CbaTaxImpactLocalPath },\n { id: ItemTemplateEntity.VatClassificationSelection },\n ]]\n }]\n };\n\n return {\n entitySet: EntitySetName.ItemTemplates,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = ItemTemplatesTranslationFiles;\nsetDefByEntityType(EntityTypeName.ItemTemplate, getDefinitions);","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCreditCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 42 42\",\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 className: \"C_TEXT_primary_outline\",\n d: \"M5.5 15.2h30.7M5.5 19.3h30.7M4.6 27.5V14.2c0-3.1 2.5-5.7 5.7-5.7h21.1c3.1 0 5.7 2.5 5.7 5.7v13.5c0 3.1-2.5 5.7-5.7 5.7H9.9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCreditCard);\nexport default __webpack_public_path__ + \"static/media/creditCard.69fe3c62479da148a36cd409b234aa4f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMastercard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 735.6 129\",\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 className: \"C_TEXT_primary\",\n d: \"M202.5 104.4v-2.1h.8v-.4h-2.1v.4h.8v2.1h.5zm4.2 0v-2.5h-.7l-.8 1.7-.8-1.7h-.7v2.5h.5v-1.9l.7 1.6h.5l.7-1.6v1.9h.6zm112.9-18.2V59.3c0-10.1-6.5-17-16.9-17-5.5-.1-11.1 1.6-15.1 7.6-3-4.8-7.6-7.6-14.2-7.6-4.6 0-9.1 1.3-12.6 6.4v-5.3h-9.3v42.9h9.4V62.4c0-7.4 4.1-11.4 10.5-11.4 6.2 0 9.3 4 9.3 11.3v23.9h9.4V62.4c0-7.4 4.3-11.4 10.5-11.4 6.4 0 9.4 4 9.4 11.3v23.9h9.6zM459 43.3h-15.3v-13h-9.4v13h-8.7v8.5h8.7v19.6c0 10 3.9 15.9 14.9 15.9 4 0 8.7-1.3 11.7-3.3l-2.7-8c-2.8 1.6-5.8 2.4-8.3 2.4-4.7 0-6.2-2.9-6.2-7.2V51.8H459v-8.5zm79.6-1.1c-5.4 0-8.9 2.5-11.3 6.3v-5.2h-9.2v42.9h9.3v-24c0-7.1 3.1-11 9.2-11 1.9 0 3.9.3 5.8 1.1l2.9-8.8c-2.1-.9-4.8-1.3-6.7-1.3zm-120.3 4.5c-4.5-3-10.7-4.5-17.5-4.5-10.9 0-17.9 5.2-17.9 13.7 0 7 5.2 11.3 14.8 12.7l4.4.6c5.1.7 7.5 2.1 7.5 4.5 0 3.3-3.4 5.2-9.8 5.2-6.5 0-11.1-2.1-14.3-4.5l-4.4 7.3c5.1 3.8 11.6 5.6 18.6 5.6 12.4 0 19.6-5.8 19.6-14 0-7.5-5.7-11.5-15-12.8l-4.4-.6c-4-.5-7.3-1.3-7.3-4.2 0-3.1 3-5 8.2-5 5.5 0 10.8 2.1 13.4 3.7l4.1-7.7zm249.9-4.5c-5.4 0-8.9 2.5-11.3 6.3v-5.2h-9.2v42.9h9.3v-24c0-7.1 3.1-11 9.2-11 1.9 0 3.9.3 5.8 1.1l2.9-8.8c-2.1-.9-4.8-1.3-6.7-1.3zM548 64.8c0 13 9.1 22.5 22.9 22.5 6.5 0 10.8-1.4 15.4-5.1l-4.5-7.5c-3.5 2.5-7.2 3.9-11.2 3.9-7.4-.1-12.9-5.5-12.9-13.7 0-8.3 5.5-13.6 12.9-13.7 4 0 7.7 1.3 11.2 3.9l4.5-7.5c-4.7-3.7-9-5.1-15.4-5.1-13.8-.3-22.9 9.3-22.9 22.3zm87.4 0V43.3h-9.3v5.2c-3-3.9-7.4-6.3-13.5-6.3-12 0-21.4 9.4-21.4 22.5s9.4 22.5 21.4 22.5c6.1 0 10.6-2.4 13.5-6.3v5.2h9.3V64.8zm-34.7 0c0-7.5 4.9-13.7 13-13.7 7.7 0 12.9 5.9 12.9 13.7s-5.2 13.7-12.9 13.7c-8.1 0-13-6.2-13-13.7zM488.1 42.2c-12.6 0-21.4 9.2-21.4 22.5 0 13.6 9.2 22.5 22 22.5 6.5 0 12.4-1.6 17.6-6l-4.6-6.9c-3.6 2.9-8.2 4.5-12.5 4.5-6 0-11.5-2.8-12.8-10.5h31.8c.1-1.2.2-2.3.2-3.6 0-13.3-8.3-22.5-20.3-22.5zm-.2 8.4c6 0 9.9 3.8 10.9 10.4h-22.2c.9-6.2 4.7-10.4 11.3-10.4zM722 64.8V26.1h-9.3v22.4c-3-3.9-7.4-6.3-13.5-6.3-12 0-21.4 9.4-21.4 22.5s9.4 22.5 21.4 22.5c6.1 0 10.6-2.4 13.5-6.3v5.2h9.3V64.8zm10.9 17.4c.4 0 .7.1 1.1.2.3.1.6.3.9.6.3.2.4.5.6.9.1.3.2.7.2 1.1 0 .4-.1.7-.2 1.1-.1.3-.3.6-.6.9-.3.2-.5.4-.9.6-.3.1-.7.2-1.1.2-.4 0-.8-.1-1.1-.2-.3-.1-.6-.3-.9-.6-.2-.2-.4-.5-.6-.9-.1-.3-.2-.7-.2-1.1 0-.4.1-.7.2-1.1.1-.3.3-.6.6-.9.2-.2.5-.4.9-.6.3-.1.7-.2 1.1-.2zm0 4.9c.3 0 .6-.1.8-.2.3-.1.5-.3.7-.5.2-.2.3-.4.5-.7.1-.3.2-.5.2-.8 0-.3-.1-.6-.2-.8-.1-.3-.3-.5-.5-.7-.2-.2-.4-.3-.7-.4-.3-.1-.5-.2-.8-.2-.3 0-.6.1-.8.2-.3.1-.5.3-.7.4-.2.2-.3.4-.5.7-.1.3-.2.5-.2.8 0 .3.1.6.2.8.1.3.3.5.5.7.2.2.4.3.7.5.2.1.5.2.8.2zm.1-3.4c.3 0 .6.1.8.2.2.1.3.3.3.6 0 .2-.1.4-.2.5-.1.1-.3.2-.6.3l.8 1h-.6l-.8-.9h-.2v.9h-.5v-2.5h1zm-.6.5v.7h.6c.1 0 .3 0 .3-.1.1-.1.1-.1.1-.3 0-.1 0-.2-.1-.3-.1-.1-.2-.1-.3-.1h-.6zm-45.1-19.4c0-7.5 4.9-13.7 13-13.7 7.7 0 12.9 5.9 12.9 13.7s-5.2 13.7-12.9 13.7c-8.1 0-13-6.2-13-13.7zm-315.1 0V43.3h-9.3v5.2c-3-3.9-7.4-6.3-13.5-6.3-12 0-21.4 9.4-21.4 22.5s9.4 22.5 21.4 22.5c6.1 0 10.6-2.4 13.5-6.3v5.2h9.3V64.8zm-34.7 0c0-7.5 4.9-13.7 13-13.7 7.7 0 12.9 5.9 12.9 13.7s-5.2 13.7-12.9 13.7c-8.1 0-13-6.2-13-13.7zM98.6 116.9c.5.4 1 .9 1.6 1.3A64.22 64.22 0 0164.5 129C28.9 129 0 100.1 0 64.5S28.9 0 64.5 0C77.7 0 90 4 100.2 10.8c-.5.4-1.1.8-1.6 1.3a69.365 69.365 0 00-23.9 52.4c0 20.1 8.7 39.2 23.9 52.4zM144.2 0c-13.2 0-25.5 4-35.7 10.8.5.4 1.1.9 1.6 1.3C125.2 25.3 134 44.4 134 64.5s-8.7 39.2-23.9 52.4c-.5.4-1 .9-1.6 1.3a64.22 64.22 0 0035.7 10.8c35.6 0 64.5-28.9 64.5-64.5S179.8 0 144.2 0zm-39.9 13.8c-.8.7-1.6 1.3-2.4 2-13.6 11.9-22.2 29.3-22.2 48.7 0 19.4 8.6 36.8 22.2 48.7.8.7 1.6 1.4 2.4 2 .8-.7 1.6-1.3 2.4-2 13.6-11.8 22.2-29.2 22.2-48.7 0-19.4-8.6-36.8-22.2-48.7-.7-.7-1.5-1.3-2.4-2\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMastercard);\nexport default __webpack_public_path__ + \"static/media/mastercard.79a81e0755d11ea9bd1d6f4b34075067.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVisa(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 399.4 129\",\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 className: \"C_TEXT_primary\",\n d: \"M206.6 41.2c-.2 18 16 28 28.2 34 12.6 6.1 16.8 10 16.7 15.5-.1 8.4-10 12.1-19.3 12.2-16.2.3-25.6-4.4-33.1-7.9l-5.8 27.3c7.5 3.5 21.4 6.5 35.9 6.6 33.9 0 56.1-16.7 56.2-42.7.1-32.9-45.5-34.7-45.2-49.5.1-4.5 4.4-9.2 13.7-10.4 4.6-.6 17.4-1.1 31.8 5.6l5.7-26.4C283.5 2.7 273.5 0 261.1 0c-31.9 0-54.4 17-54.5 41.2M345.8 2.3c-6.2 0-11.4 3.6-13.7 9.2L283.6 127h33.9l6.7-18.6h41.4l3.9 18.6h29.9l-26-124.8h-27.6zm4.7 33.7l9.8 46.8h-26.8l17-46.8zm-185-33.7L138.8 127h32.3L197.8 2.3h-32.3zm-47.7 0L84.2 87.2 70.6 15C69 6.9 62.7 2.3 55.7 2.3H.8L0 5.9c11.3 2.4 24.1 6.4 31.8 10.6 4.7 2.6 6.1 4.8 7.7 11L65.2 127h34.1L151.6 2.3h-33.8z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVisa);\nexport default __webpack_public_path__ + \"static/media/visa.3facae38d2a8c3f188ffd5b2c5ed1447.svg\";\nexport { ForwardRef as ReactComponent };","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport {\n BillingAddressEntity,\n EntitySetName,\n IBillingPricingEntity,\n ICompanyEntity,\n IModuleEntity,\n ISubscriptionEntity,\n SubscriptionEntity,\n TenantEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n BillingModuleTypeCode,\n CompanyStateCode,\n PurchaseStatusCode,\n SubscriptionStatusCode,\n SubscriptionTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport customFetch, { getDefaultPostParams } from \"@utils/customFetch\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\n\nimport { REST_API_URL } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../model/Model\";\nimport otherSvgPath from \"../../../svg/cardProviders/creditCard.svg\";\nimport masterCardSvgPath from \"../../../svg/cardProviders/mastercard.svg\";\nimport visaSvgPath from \"../../../svg/cardProviders/visa.svg\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { MainLocalSettings, VariantId } from \"../../../views/main/Main.utils\";\n\nexport const GO_PAY_URL = `${REST_API_URL}/GoPay`;\nexport const GET_CARD_URL = `${GO_PAY_URL}/GetCreditCard`;\nexport const REMOVE_CARD_URL = `${GO_PAY_URL}/RemoveCreditCard`;\nexport const ADD_CARD_URL = `${GO_PAY_URL}/AddCreditCard`;\nexport const CREATE_MISSING_PAYMENT_URL = `${GO_PAY_URL}/CreateMissingPayment`;\nexport const SUBSCRIPTION_MODULES_URL = `${REST_API_URL}/SubscriptionModules`;\nexport const TENANT_LIFECYCLE_URL = `${REST_API_URL}/TenantLifeCycle`;\nexport const GET_NEXT_INVOICE_URL = `${REST_API_URL}/Subscription/GetNextInvoice`;\n\nexport interface ICreditCard {\n Number: string;\n Brand: string;\n Email: string;\n Expiration: string;\n FirstName: string;\n LastName: string;\n}\n\nexport interface IPaymentState {\n State: string;\n Url: string;\n CreditCard: ICreditCard;\n\n}\n\nexport interface IModuleInfo {\n Module: IModuleEntity;\n BillingPricing: IBillingPricingEntity;\n IsActive: boolean;\n StorageCapacity: number;\n StorageCapacityIncrease: number;\n StorageUsage: number;\n}\n\nexport const contactFormatter = (firstName: string, lastName: string, email: string) => {\n return `${firstName} ${lastName} (${email})`;\n};\n\nexport const expirationFormatter = (expiration: string) => {\n if (!expiration) {\n return \"\";\n }\n\n return `${expiration.slice(2)}/${expiration.slice(0, 2)}`;\n};\n\nexport const loadSubscription = async (oData: OData): Promise => {\n const res = await oData.getEntitySetWrapper(EntitySetName.Subscriptions).query()\n .expand(SubscriptionEntity.PaymentMethod)\n .expand(SubscriptionEntity.RequestedPaymentMethod)\n .expand(SubscriptionEntity.Tenant, (q) => {\n q.expand(TenantEntity.BillingAddress,\n (qq) => {\n qq.expand(BillingAddressEntity.Country);\n })\n .expand(TenantEntity.BillingContacts)\n .expand(TenantEntity.VatStatus);\n })\n // todo co s timhle\n // .expand(SubscriptionEntity.CompanyItems, (q) => {\n // q.expand(CompanyItemEntity.Currency);\n // })\n // .expand(SubscriptionEntity.ModuleItems, (q) => {\n // q.expand(ModuleItemEntity.Currency).expand(ModuleItemEntity.Module);\n // })\n .expand(SubscriptionEntity.Invoices)\n .expand(SubscriptionEntity.Currency)\n .fetchData();\n\n return res.value?.[0];\n};\n\nenum CreditCardBrand {\n Visa = \"visa\",\n MasterCard = \"mastercard\",\n Other = \"other\"\n}\n\nconst getCreditCardBrand = (brand: string): CreditCardBrand => {\n const lowerCaseBrand = brand?.toLowerCase();\n\n switch (true) {\n case (lowerCaseBrand?.startsWith(\"visa\")):\n return CreditCardBrand.Visa;\n case (lowerCaseBrand?.startsWith(\"mastercard\")):\n return CreditCardBrand.MasterCard;\n default:\n return CreditCardBrand.Other;\n }\n};\n\nconst getCreditCardBrandSvg = (brand: CreditCardBrand) => {\n switch (true) {\n case (brand === CreditCardBrand.Visa):\n return visaSvgPath;\n case (brand === CreditCardBrand.MasterCard):\n return masterCardSvgPath;\n default:\n return otherSvgPath;\n }\n};\n\nexport const getActiveCompaniesSelectItems = (context: IAppContext) => {\n const companies = context.getData().companies as ICompanyEntity[];\n\n return companies.filter(company => company.StateCode === CompanyStateCode.Initialized).map((company): ISelectItem => {\n return {\n id: company.Id,\n label: company.Name,\n tabularData: [company.Name, company.LegalNumber]\n };\n });\n};\n\nexport const GIBIBYTE_IN_BYTES = Math.pow(1024, 3);\n\nexport const capacityValueFormatter = (value: number): number => {\n // values are in bytes, and we want to show Gibibytes instead of Gigabytes (1024/1000)\n // use 1 073 741 824 (1024^3) instead of 1 000 000 000\n return roundToDecimalPlaces(1, value / GIBIBYTE_IN_BYTES);\n};\n\n/** User has trial version and did not yet set his payment info\n * => we are waiting for him to pay. */\nexport const isNotYetPayedForSubscription = (subscription: ISubscriptionEntity): boolean => {\n return subscription.SubscriptionTypeCode === SubscriptionTypeCode.Standard\n && subscription.PurchaseStatusCode === PurchaseStatusCode.NotPurchased;\n};\n\nexport const isEduLicenceWaitingForConfirmation = (subscription: ISubscriptionEntity): boolean => {\n return subscription.SubscriptionTypeCode === SubscriptionTypeCode.EDU && subscription.SubscriptionStatusCode === SubscriptionStatusCode.AwaitsConfirmation;\n};\n\n/** How much time is left for the user to pay before the account gets suspended. */\nexport const getRemainingGracePeriodDays = (subscription: ISubscriptionEntity): number => {\n const remainingDays = getUtcDayjs(subscription.DateGracefulPeriodEnd).diff(getUtcDayjs(), \"day\");\n\n if (isNaN(remainingDays) || remainingDays < 0) {\n return 0;\n }\n\n return remainingDays;\n};\n\nexport const isInTrial = (subscription: ISubscriptionEntity): boolean => {\n const today = getUtcDayjs();\n const dateTrialEnd = subscription.DateTrialStart && subscription.TrialLength ? getUtcDayjs(subscription.DateTrialStart).add(subscription.TrialLength, \"days\") : null;\n\n if (!dateTrialEnd) {\n return false;\n }\n\n return today.isSameOrBefore(dateTrialEnd, \"days\");\n};\n\n/** How much time is left on the trial version */\nexport const getRemainingTrialPeriodDays = (subscription: ISubscriptionEntity): number => {\n const diff = getUtcDayjs(subscription.DateTrialStart).diff(getUtcDayjs(), \"day\");\n const remainingDays = subscription.TrialLength + diff;\n\n if (isNaN(remainingDays)) {\n return 0;\n }\n\n return remainingDays;\n};\n\nexport const isFreeSubscription = (subscription: ISubscriptionEntity): boolean => {\n return [SubscriptionTypeCode.Free, SubscriptionTypeCode.EDU].includes(subscription.SubscriptionTypeCode as SubscriptionTypeCode);\n};\n\nexport enum BackendCardAction {\n Add = \"Add\",\n Change = \"Change\"\n}\n\nexport const addOrUpdateCard = async (action?: BackendCardAction): Promise => {\n const res = await customFetch(ADD_CARD_URL, {\n ...getDefaultPostParams()\n });\n\n if (!res.ok) {\n return res;\n }\n\n const values = await res.json() as IPaymentState;\n\n window.location.assign(values.Url);\n\n return res;\n};\n\nexport const removeCard = async (): Promise => {\n const res = await customFetch(`${REMOVE_CARD_URL}`, {\n ...getDefaultPostParams()\n });\n\n return res;\n};\n\nexport const createMissingPayment = async (): Promise => {\n // run one time instant payment\n const res = await customFetch(CREATE_MISSING_PAYMENT_URL, {\n ...getDefaultPostParams()\n });\n\n if (!res.ok || res.status === 204) {\n return res;\n }\n\n const values = await res.json() as IPaymentState;\n\n window.location.assign(values.Url);\n\n return res;\n};\n\n/** Checks for both Cancelled and Expired.\n * Expired is similar to canceled, but caused but not paying for the subscription,\n * while Cancelled is result of user directly selecting the cancel action.*/\nexport const isSubscriptionCancelled = (subscription: ISubscriptionEntity): boolean => {\n return [SubscriptionStatusCode.Cancelled, SubscriptionStatusCode.Expired].includes(subscription?.SubscriptionStatusCode as SubscriptionStatusCode);\n};\n\nexport const cancelSubscription = async (): Promise => {\n return await fetch(`${TENANT_LIFECYCLE_URL}/Cancel`, {\n ...getDefaultPostParams()\n });\n};\n\nexport const restoreSubscription = async (): Promise => {\n return await fetch(`${TENANT_LIFECYCLE_URL}/Restore`, {\n ...getDefaultPostParams()\n });\n};\n\nexport const confirmSubscription = async (): Promise => {\n return await fetch(`${TENANT_LIFECYCLE_URL}/Confirm`, {\n ...getDefaultPostParams()\n });\n};\n\nexport const setSubscriptionCheckerSeen = (closedAt: Date): void => {\n MainLocalSettings.set(VariantId, { SubscriptionNotificationClosedAt: closedAt }, true);\n};\n\nexport interface IInvoiceBillingItem {\n Name: string;\n Price: number;\n Quantity: number;\n Days: number;\n EntityId?: number;\n BillingModuleType: {\n S5articleGuid: string;\n Name: string;\n Code: BillingModuleTypeCode;\n };\n}\n\nexport interface INextInvoiceData {\n Amount: number;\n AmountVat: number;\n AmountNet: number;\n DateMonthStart: string;\n Items: IInvoiceBillingItem[];\n}\n\n\nexport const getNextInvoiceData = async (): Promise => {\n const res = await fetch(GET_NEXT_INVOICE_URL);\n\n return await res.json() as INextInvoiceData;\n};\n\nexport function isRossumModuleActivated(storage: Model): boolean {\n const modulesInfo = storage.context.getData().modulesInfo;\n\n return !!modulesInfo?.find(module => module.Module?.Code === BillingModuleTypeCode.Rossum)?.IsActive;\n}","import { formatDateInterval } from \"@components/inputs/date/utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { createPath } from \"@odata/BindingContext\";\nimport { EntitySetName, IInvoiceEntity, InvoiceEntity, SubscriptionEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\n\nimport { Sort, TextAlign } from \"../../../../enums\";\nimport { TValue } from \"../../../../global.types\";\nimport CurrencyType from \"../../../../types/Currency\";\nimport { ISplitPageTableDef } from \"../../../../views/table/TableView.utils\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: \"billingPaymentHistorySpecialTable\",\n filterBarDef: [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n InvoiceEntity.DateStart,\n InvoiceEntity.DateEnd,\n InvoiceEntity.Amount\n ],\n filterDefinition: {\n [InvoiceEntity.DateStart]: {},\n [InvoiceEntity.DateEnd]: {},\n [InvoiceEntity.Amount]: {}\n },\n isValueHelp: true\n }\n\n ],\n columns: [\n InvoiceEntity.DateStart,\n InvoiceEntity.Amount\n ],\n columnDefinition: {\n [InvoiceEntity.DateStart]: {\n label: i18next.t(\"Subscriptions:Payments.Period\"),\n textAlign: TextAlign.Left,\n formatter: (val: TValue, args: IFormatOptions) => {\n const invoice = args.item as IInvoiceEntity;\n\n return formatDateInterval({\n from: invoice.DateStart,\n to: invoice.DateEnd\n });\n }\n },\n [InvoiceEntity.Amount]: {\n textAlign: TextAlign.Right,\n formatter: (val: TValue, args: IFormatOptions) => {\n const invoice = args.item as IInvoiceEntity;\n\n return CurrencyType.format(val, {\n currency: invoice.CurrencyCode\n });\n }\n }\n },\n additionalProperties: [\n { id: InvoiceEntity.DateEnd },\n { id: InvoiceEntity.FileMetadataId },\n { id: InvoiceEntity.CurrencyCode }\n ],\n title: i18next.t(\"Subscriptions:Payments.Title\"),\n initialSortBy: [{ id: InvoiceEntity.DateStart, sort: Sort.Asc }],\n preventStoreVariant: true\n };\n\n\n return {\n // special case - even though there is only one subscription for tenant, we still needs its id\n // to load table and filters => use callback\n entitySet: (args: IGetValueArgs): string => {\n const subscriptionId = args.context.getData().subscription.Id;\n\n return `${EntitySetName.Subscriptions}(${subscriptionId})/${SubscriptionEntity.Invoices}`;\n },\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Subscriptions\", \"Common\"];\nsetDefForTesting(createPath(EntitySetName.Subscriptions, SubscriptionEntity.Invoices), getDefinitions);\n","import { getAddressFields, PhoneNumberDef, SingleBusinessPartnerDef } from \"@components/smart/GeneralFieldDefinition\";\nimport { createPath } from \"@odata/BindingContext\";\nimport { BillingAddressEntity, BillingContactEntity, EntitySetName, TenantEntity } from \"@odata/GeneratedEntityTypes\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, GroupedField, ValidatorType } from \"../../../../enums\";\nimport { IFormDef } from \"../../../../views/formView/Form\";\n\n\nconst businessPartnerDependentFields = [\n {\n from: { id: \"LegalNumber\" },\n to: { id: \"LegalNumber\" }\n },\n {\n from: { id: \"Name\" },\n to: { id: \"BillingAddress/Name\" }\n },\n {\n from: { id: \"TaxNumber\" },\n to: { id: \"TaxNumber\" }\n },\n {\n from: { id: \"BillingAddress/Street\" },\n to: { id: \"BillingAddress/Street\" }\n },\n {\n from: { id: \"BillingAddress/City\" },\n to: { id: \"BillingAddress/City\" }\n },\n {\n from: { id: \"BillingAddress/Country\" },\n to: { id: \"BillingAddress/Country\" }\n },\n {\n from: { id: \"BillingAddress/PostalCode\" },\n to: { id: \"BillingAddress/PostalCode\" }\n }\n];\n\nconst businessPartnerDef = {\n ...SingleBusinessPartnerDef,\n fieldSettings: {\n ...SingleBusinessPartnerDef.fieldSettings,\n localDependentFields: businessPartnerDependentFields\n }\n};\n\nexport const getDefinition: IGetDefinition = (context: IAppContext): IDefinition => {\n const entitySet = EntitySetName.Tenants;\n const addressFields = getAddressFields(\"BillingAddress\");\n\n const form: IFormDef = {\n id: \"InvoicingSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n summary: [],\n fieldDefinition: {\n [createPath(TenantEntity.BillingAddress, BillingAddressEntity.Name)]: {\n ...businessPartnerDef,\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL\n },\n [TenantEntity.LegalNumber]: {\n ...businessPartnerDef,\n groupedField: GroupedField.MultiEnd,\n width: BasicInputSizes.S\n },\n [TenantEntity.TaxNumber]: {},\n [TenantEntity.PhoneNumber]: {\n ...PhoneNumberDef,\n isRequired: true\n },\n ...addressFields,\n [createPath(TenantEntity.BillingContacts, BillingContactEntity.Email)]: {\n width: BasicInputSizes.L,\n validator: {\n type: ValidatorType.Email\n }\n },\n [createPath(TenantEntity.BillingContacts, BillingContactEntity.FirstName)]: {},\n [createPath(TenantEntity.BillingContacts, BillingContactEntity.LastName)]: {}\n },\n groups: [\n {\n id: \"address\",\n rows: [\n [\n { id: createPath(TenantEntity.BillingAddress, BillingAddressEntity.Name) },\n { id: TenantEntity.LegalNumber },\n { id: TenantEntity.TaxNumber }\n ],\n [\n { id: createPath(TenantEntity.BillingAddress, BillingAddressEntity.Street) },\n { id: createPath(TenantEntity.BillingAddress, BillingAddressEntity.City) },\n { id: createPath(TenantEntity.BillingAddress, BillingAddressEntity.PostalCode) },\n { id: createPath(TenantEntity.BillingAddress, BillingAddressEntity.Country) }\n ],\n [\n { id: TenantEntity.PhoneNumber }\n ]\n ]\n },\n {\n id: \"BillingContacts\",\n title: i18next.t(\"Subscriptions:Invoicing.InvoiceRecipients\"),\n tooltip: i18next.t(\"Subscriptions:Invoicing.BillingContactsInfo\"),\n lineItems: {\n collection: TenantEntity.BillingContacts,\n order: \"Order\",\n canReorder: false,\n isGroupToggleable: true,\n isItemCloneable: false,\n columns: [\n { id: BillingContactEntity.FirstName },\n { id: BillingContactEntity.LastName },\n { id: BillingContactEntity.Email }\n ]\n }\n }\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinition.translationFiles = [\"Subscriptions\", \"Common\"];\nsetDefForTesting(\"InvoicingDef\", getDefinition);","import { StyledButtonGroup } from \"@components/button\";\nimport styled from \"styled-components/macro\";\n\nimport { T_PLAIN_big, T_PLAIN_small, T_PLAIN_small_hig, T_TITLE_2 } from \"../../../global.style\";\n\nexport const UserNameStyled = styled.span<{ isBold: boolean; isBig?: boolean; }>`\n margin-left: ${props => props.isBig ? 12 : 8}px;\n ${props => props.isBig ? T_TITLE_2 : props.isBold ? T_PLAIN_small_hig : T_PLAIN_small};\n`;\n\nexport const PermissionName = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nexport const PermissionsOverviewGrid = styled.div<{\n rows: number;\n columns: number;\n}>`\n width: 100%;\n display: grid;\n grid-template-columns: ${props => `repeat(${props.columns}, max-content)`};\n grid-template-rows: ${props => `repeat(${props.rows}, 1fr)`};\n grid-auto-flow: column;\n ${T_PLAIN_big};\n row-gap: 17px;\n column-gap: 24px;\n margin-top: -3px;\n\n & > div {\n display: flex;\n min-width: 150px;\n max-width: 300px;\n align-items: flex-start;\n\n & > span,\n & > ${PermissionName} > span {\n margin-top: 2px;\n }\n\n & > svg {\n margin-right: 10px;\n }\n }\n`;\n\nexport const AgendasSpan = styled.div`\n color: ${props => props.theme.C_ACT_main};\n cursor: pointer;\n`;\n\nexport const CompanyRolesListStyled = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 100%;\n\n & > ${StyledButtonGroup} {\n margin: 20px 0 34px 0;\n }\n`;\n\nexport const CompanyNameWithAvatar = styled.div`\n text-transform: uppercase;\n display: flex;\n align-items: center;\n`;","import Dialog from \"@components/dialog\";\nimport Field from \"@components/inputs/field\";\nimport FieldsWrapper from \"@components/inputs/field/FieldsWrapper\";\nimport { IMultiSelectionChangeArgs, MultiSelect } from \"@components/inputs/select/MultiSelect\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ISmartODataTableAPI } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { EntitySetName, ICompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BasicInputSizes } from \"../../../enums\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport ConfirmationButtons from \"../../../views/table/ConfirmationButtons\";\nimport { IUserTableCustomData } from \"./UsersTableView\";\n\ninterface IProps extends WithOData, WithTranslation {\n storage: TableStorage;\n onClose: () => void;\n onConfirm: () => Promise;\n}\n\ninterface IState {\n companyItems: ISelectItem[];\n value: number[];\n busy: boolean;\n}\n\nclass SelectCompanyDialog extends React.Component {\n state: IState = {\n companyItems: [],\n value: [],\n busy: false\n };\n\n async componentDidMount(): Promise {\n const res = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.Companies).query().fetchData();\n const companies = res.value;\n const companyItems = companies.map(company => {\n return {\n id: company.Id,\n label: company.Name\n };\n });\n this.setState({ companyItems });\n }\n\n handleChange = (args: IMultiSelectionChangeArgs) => {\n const value = args.value as number[];\n this.props.storage.setCustomData({\n selectedCompaniesIds: value\n });\n this.setState({ value });\n };\n\n handleConfirm = async () => {\n this.setState({ busy: true });\n await this.props.onConfirm();\n this.setState({ busy: false });\n }\n\n render() {\n return (\n \n \n }>\n \n \n \n \n \n \n\n );\n }\n}\n\n\n\nexport default withOData(withTranslation([\"Users\"])(SelectCompanyDialog));\n","import { AlertAction } from \"@components/alert/Alert\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SmartTable } from \"@components/smart/smartTable\";\nimport { TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IActionRendererArgs } from \"@components/table\";\nimport { ActionCheckBoxStyled } from \"@components/table/Table.styles\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport BindingContext, { createBindingContext } from \"@odata/BindingContext\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { updateEntity } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n ICompanyRoleEntity,\n IUserCompanyRoleEntity,\n IUserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { isBatchResultOk } from \"@odata/OData\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport memoizeOne, { IMemoized } from \"@utils/memoizeOne\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport { BreadCrumbProvider } from \"../../../components/breadCrumb\";\nimport { ActionState, Status, ToolbarItemType } from \"../../../enums\";\nimport { ITableStorageDefaultCustomData } from \"../../../model/TableStorage\";\nimport { getAlertFromError } from \"../../../views/formView/Form.utils\";\nimport TableView from \"../../../views/table\";\nimport {\n ICustomButtonDefArgs,\n TableActionOrder,\n TableButtonsAction,\n TableButtonsActionType\n} from \"../../../views/table/TableToolbar.utils\";\nimport { IHandleCustomActionArgs, ITableViewBaseProps } from \"../../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../../views/table/TableView.render.utils\";\nimport { TableWrapper } from \"../../../views/table/TableView.styles\";\nimport SelectCompanyDialog from \"./SelectCompanyDialog\";\nimport { CustomerCompanyRoleId } from \"./Users.utils\";\nimport { TRecordAny } from \"../../../global.types\";\n\nexport interface IUserTableCustomData extends ITableStorageDefaultCustomData {\n roleItems?: ISelectItem[];\n roleToAddId?: number;\n selectedCompaniesIds?: number[];\n selectCompanyDialogOpened?: boolean;\n}\n\ninterface IProps extends ITableViewBaseProps {\n customFooter?: ReactElement;\n customHeader?: ReactElement;\n}\n\nconst MASS_ADD_ROLE_ACTION = \"massAddRole\";\n\nclass UsersTableView extends TableView {\n\n constructor(props: IProps) {\n super(props);\n\n this.getConfirmText = this.getConfirmText.bind(this);\n this.getToolbarButtons = this.getToolbarButtons.bind(this);\n this.getCustomButtonDef = this.getCustomButtonDef.bind(this);\n this.renderSmartHeader = this.renderSmartHeader.bind(this);\n this.getTableSharedProps = this.getTableSharedProps.bind(this);\n this.render = this.render.bind(this);\n }\n\n componentDidMount() {\n this.loadRoles().then(() => this.forceUpdate());\n super.componentDidMount();\n }\n\n loadRoles = async (): Promise => {\n try {\n const query = this.props.storage.oData.getEntitySetWrapper(EntitySetName.CompanyRoles).query();\n\n if (this.isAddingNewCompany) {\n query.filter(`Id ne ${CustomerCompanyRoleId}`);\n }\n\n const res = await query.fetchData();\n\n const roles = res.value;\n const roleItems = roles.map(role => {\n return {\n id: `${MASS_ADD_ROLE_ACTION}_${role.Id}`,\n label: role.CompanyRoleName,\n additionalData: role\n };\n });\n\n this.props.storage.setCustomData({\n roleItems\n });\n } catch (e) {\n logger.error(e.toString());\n }\n };\n\n get isAddingNewCompany(): boolean {\n return this.context.getAddingNewCompany();\n }\n\n getCustomButtonDef(type: TableButtonsActionType, args: ICustomButtonDefArgs): IToolbarItem {\n if (type === MASS_ADD_ROLE_ACTION) {\n const roleItems = this.props.storage.getCustomData().roleItems;\n const isActive = this.getTableAction()?.startsWith(MASS_ADD_ROLE_ACTION);\n const isAnotherActionActive = this.isTableAction() && !isActive;\n const isDisabled = isAnotherActionActive || args?.isDisabled;\n\n return {\n id: MASS_ADD_ROLE_ACTION,\n itemType: ToolbarItemType.IconSelect,\n iconName: \"AddUserRole\",\n label: this.props.storage.t(\"Users:AssignRole\"),\n order: TableActionOrder.Remove + 1,\n isActive,\n isDisabled,\n itemProps: {\n isTransparent: true,\n headerText: i18next.t(\"Users:AssignRole\"),\n selectProps: {\n isActive,\n isDisabled: !roleItems?.length || isDisabled\n },\n items: roleItems\n }\n };\n }\n return super.getCustomButtonDef(type, args);\n }\n\n getInitialActiveRows = memoizeOne((): BindingContext[] => {\n const rows = Object.values(this.props.storage.tableAPI?.getState().rows ?? []);\n const roleToAddId = this.props.storage.getCustomData().roleToAddId;\n // rows that already have the selected role\n return rows.filter(row => {\n return row?.customData?.entity.CompanyRoles?.some((role: IUserCompanyRoleEntity) => {\n // todo: how this works? UsersTableView is on Tenant level, no company is selected -> getCompanyId() returns null ???\n return role.CompanyRole?.Id === roleToAddId && role.Company.Id === this.context.getCompanyId();\n });\n }).map(row => row.id as BindingContext);\n }, () => [this.props.storage.getCustomData().roleToAddId]);\n\n getRowAction: IMemoized<[], TCustomRowAction> = memoizeOne((): TCustomRowAction => {\n if (!this.isTableAction()) {\n return null;\n }\n\n let render: (args: IActionRendererArgs) => React.ReactNode = null;\n\n if (this.getTableAction()?.startsWith(MASS_ADD_ROLE_ACTION) && this.isAddingNewCompany) {\n render = (args) => {\n const isCheckedDisabled = args.actionState === ActionState.Disabled && this.props.storage.tableAPI?.getState().activeRows.has(args.rowId?.toString());\n return ;\n };\n }\n\n return {\n actionType: this.getRowActionType(),\n isRowWithoutAction: this.isRowWithoutAction,\n ...this.getCustomRowAction(),\n render\n };\n }, () => [this.getCustomRowAction(), this.getTableAction()]);\n\n getConfirmText(tableAction: TableButtonsAction | string): string | React.ReactElement {\n if (tableAction?.startsWith(MASS_ADD_ROLE_ACTION)) {\n const count = this.props.storage.tableAPI?.getState().activeRows.size ?? 0;\n return getConfirmationActionText(this.props.storage.t(\"Users:Assign\"), count);\n }\n return super.getConfirmText(tableAction);\n }\n\n handleCustomAction(action: string, args: IHandleCustomActionArgs = {}): void {\n if (action?.startsWith(MASS_ADD_ROLE_ACTION)) {\n const roleToAddId = parseInt(action.split(\"_\")[1]);\n this.props.storage.setCustomData({ roleToAddId });\n }\n super.handleCustomAction(action, args);\n }\n\n getToolbarButtons(): TableButtonsActionType[] {\n const buttons = super.getToolbarButtons();\n buttons.push(MASS_ADD_ROLE_ACTION);\n return buttons;\n }\n\n assignRolesToUsers = async (): Promise => {\n const storage = this.props.storage;\n const { roleToAddId, selectedCompaniesIds } = storage.getCustomData();\n const users = storage.tableAPI?.getState().activeRows;\n const rows = storage.tableAPI?.getState().rows;\n\n const batch = storage.oData.batch();\n\n const removedUsers = this.getInitialActiveRows().filter(bc => !users.has(bc.toString()));\n\n for (const user of users) {\n const userEntity = cloneDeep(rows[user]?.customData.entity) as IUserEntity;\n\n for (const companyId of selectedCompaniesIds) {\n const userRole = userEntity.CompanyRoles.find(role => role.Company.Id === companyId);\n if (userRole) {\n userRole.CompanyRole = {\n Id: roleToAddId,\n };\n } else {\n userEntity.CompanyRoles.push({\n Company: {\n Id: companyId\n },\n CompanyRole: {\n Id: roleToAddId\n }\n });\n }\n }\n\n updateEntity({\n batch,\n changesOnly: true,\n bindingContext: createBindingContext(EntitySetName.Users, storage.oData.getMetadata()).addKey(userEntity.Id),\n entity: userEntity,\n originalEntity: rows[user]?.customData.entity\n });\n }\n\n for (const user of removedUsers) {\n const userEntity = cloneDeep(rows[user.toString()]?.customData.entity) as IUserEntity;\n const userRole = userEntity.CompanyRoles.find(role => role.Company.Id === this.context.getCompanyId());\n if (userRole) {\n userEntity.CompanyRoles = userEntity.CompanyRoles.filter(role => role.Company.Id !== this.context.getCompanyId());\n }\n\n updateEntity({\n batch,\n changesOnly: true,\n bindingContext: createBindingContext(EntitySetName.Users, storage.oData.getMetadata()).addKey(userEntity.Id),\n entity: userEntity,\n originalEntity: rows[user.toString()]?.customData.entity\n });\n }\n\n let errors: string[] = [];\n if (!batch.isEmpty()) {\n const batchResponse = await batch.execute();\n\n for (const res of batchResponse) {\n if (!isBatchResultOk(res)) {\n if (res.body instanceof ODataError || typeof res.body === \"string\") {\n const resSubtitle = getAlertFromError(res.body).subTitle as string[];\n const entityReference = res.body._validationMessages?.[0]?.entity;\n if (entityReference.entityType === EntityTypeName.User && entityReference.id) {\n const bc = createBindingContext(EntitySetName.Users, storage.oData.getMetadata()).addKey(entityReference.id);\n const userEntity = rows[bc.toString()]?.customData?.entity as IUserEntity;\n if (!isObjectEmpty(userEntity)) {\n errors.push(`${userEntity.FirstName} ${userEntity.LastName} - ${resSubtitle}`);\n }\n } else {\n errors = [...errors, ...resSubtitle];\n }\n }\n }\n }\n }\n\n if (errors.length) {\n storage.data.alert = {\n action: AlertAction.Close,\n status: Status.Error,\n useFade: false,\n title: storage.t(\"Users:AssignRoleFailed\"),\n subTitle: errors?.join(\"\\n\")\n };\n } else {\n storage.data.alert = {\n status: Status.Success,\n title: storage.t(\"Components:Table.UpdateOk\"),\n subTitle: storage.t(\"Users:AssignRoleSuccess\"),\n useFade: true\n };\n }\n\n await this.handleCloseSelectCompanyDialog();\n };\n\n handleToolbarConfirm = async (): Promise => {\n const tableAction = this.getTableAction();\n if (tableAction.startsWith(MASS_ADD_ROLE_ACTION)) {\n this.setState({\n isTableActionInProgress: true\n });\n this.props.storage.tableAPI.setState({ loaded: false });\n if (this.context.getAddingNewCompany()) {\n this.props.storage.setCustomData({\n selectedCompaniesIds: [this.context.getCompanyId()]\n });\n await this.assignRolesToUsers();\n } else {\n this.props.storage.setCustomData({ selectCompanyDialogOpened: true });\n }\n this.setState({\n isTableActionInProgress: false\n });\n await this.props.storage.tableAPI.reloadTable();\n } else {\n await super.handleToolbarConfirm();\n }\n };\n\n handleCloseSelectCompanyDialog = async (): Promise => {\n this.props.storage.setCustomData({ selectCompanyDialogOpened: false });\n await this.setTableAction(null);\n this.forceUpdate();\n };\n\n renderSmartHeader(): React.ReactNode {\n return this.props.customHeader ?? super.renderSmartHeader();\n }\n\n renderCustomFooter = (): ReactElement => {\n return this.props.customFooter;\n };\n\n renderSelectCompanyDialog = (): ReactElement => {\n if (!this.props.storage.getCustomData().selectCompanyDialogOpened) {\n return null;\n }\n\n return (\n \n );\n };\n\n renderTable(): React.ReactNode {\n return (<>\n \n \n \n {this.renderCustomFooter()}\n );\n }\n\n renderBreadCrumbs(): React.ReactNode {\n return this.isAddingNewCompany ? (\n \n ) : super.renderBreadCrumbs();\n }\n\n getViewProps(): TRecordAny {\n return this.isAddingNewCompany ? { style: { paddingBottom: 0 }} : {};\n }\n\n renderDefaultDialogs(): React.ReactElement {\n return (<>\n {super.renderDefaultDialogs()}\n {this.renderSelectCompanyDialog()}\n );\n }\n}\n\nexport default UsersTableView;","import { withOData } from \"@odata/withOData\";\nimport { ReactElement } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Page, { IPageParams, IProps } from \"../../Page\";\nimport { getDefinitions } from \"./UsersDef\";\nimport UsersTableView from \"./UsersTableView\";\n\nexport interface IUsersProps extends IProps {\n customFooter?: ReactElement;\n customHeader?: ReactElement;\n hideBusyIndicator?: boolean;\n onTableActionChange?: (action: string) => void;\n onTableLoad?: () => void;\n}\n\nclass Users extends Page {\n static defaultProps = {\n getDef: getDefinitions,\n tableView: UsersTableView\n };\n\n getMandatoryProps() {\n return {\n ...super.getMandatoryProps(),\n onTableActionChange: this.props.onTableActionChange,\n tableViewProps: {\n customFooter: this.props.customFooter,\n customHeader: this.props.customHeader,\n hideBusyIndicator: this.props.hideBusyIndicator,\n onTableLoad: this.props.onTableLoad\n }\n };\n }\n}\n\nexport default withRouter(withTranslation(getDefinitions.translationFiles)(withOData(Users)));","import React from \"react\";\nimport { ICompanyPermissionEntity, IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { TRecordString } from \"../../../global.types\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { UserStatusCode } from \"@odata/GeneratedEnums\";\nimport { DefaultTheme } from \"styled-components\";\nimport { IGetValueArgs, TGetValueFn } from \"@components/smart/FieldInfo\";\nimport UserInitial from \"../../../components/token/UserInitial\";\nimport { cloneDeep } from \"lodash\";\nimport { initials } from \"@utils/string\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport const CompaniesPath = \"##companies##\";\nexport const CompanyRolesPermissionsOverviewPath = BindingContext.localContext(\"CompanyRolesPermissionsOverview\");\nexport const RoleIdPath = \"##roleId##\";\nexport const GeneralRolesPath = BindingContext.localContext(\"GeneralRoles\");\nexport const CustomerRolesPath = BindingContext.localContext(\"CustomerRoles\");\nexport const GeneralRolePermissionsOverviewPath = BindingContext.localContext(\"GeneralRolePermissionsOverview\");\n\nexport const COMPANY_ROLE_LINES_PATH = \"##companyRoleLines##\";\n\nexport const OwnerGeneralRoleId = -1;\nexport const CustomerCompanyRoleId = -2;\nexport const CustomerGeneralRoleId = -3;\nexport const invitationInfoPath = BindingContext.localContext(\"InvitationInfo\");\nexport const ownerRoleConfirmInfoPath = BindingContext.localContext(\"OwnerRoleConfirmInfo\");\nexport const activePath = BindingContext.localContext(\"Active\");\n\ninterface ICompanyRoleLineItem {\n [RoleIdPath]: number;\n [CompaniesPath]: number[];\n}\n\nexport interface IUserEntityExtended extends IUserEntity {\n [COMPANY_ROLE_LINES_PATH]: ICompanyRoleLineItem[]\n}\n\nexport interface IPermissionsWithCompanies extends ICompanyPermissionEntity {\n companies: number[];\n}\n\nexport interface IPermissionItemProps {\n iconName: string;\n agendas: string;\n permission: IPermissionsWithCompanies;\n allCompanies: TRecordString;\n}\n\nexport interface IUsersFormCustomData extends IFormStorageDefaultCustomData {\n companyRolesSelectItems?: ISelectItem[];\n permissions: IPermissionsWithCompanies[];\n}\n\nexport type TUsersFormStorage = FormStorage;\n\nexport function isEntityOwner(context: IAppContext, entity: IEntity): boolean {\n return !entity?.CreatedBy?.Id || entity?.CreatedBy?.Id === context.getData()?.userSettings?.Id;\n}\n\n/** According to spec, user initials should always be just two letters, even if user has multiple names. */\nexport const getUserNameInitials = (user: IUserEntity): string => {\n if (!user) {\n return \"\";\n }\n\n return initials(`${user.FirstName} ${user.LastName}`);\n};\n\nexport function isAgendaCustomer(context: IAppContext, user: IUserEntity): boolean {\n const companyId = context.getCompanyId();\n if (!companyId) {\n return false;\n }\n const currentRole = user?.CompanyRoles?.find(role => role.Company?.Id === companyId);\n return currentRole?.CompanyRole?.Id === CustomerCompanyRoleId;\n}\n\nexport const currentUserIsCustomer = memoizeOne((context: IAppContext): boolean => {\n return isAgendaCustomer(context, context.getData().userSettings);\n});\n\nexport interface IEmailInfoDetail {\n Email: string;\n DateEmailSent: Date;\n}\n\nexport const getUserStatusColor = (status: UserStatusCode): keyof DefaultTheme => {\n switch (status) {\n case UserStatusCode.Active:\n return \"C_SEM_text_good\";\n case UserStatusCode.Invited:\n case UserStatusCode.RoleAcceptancePending:\n return \"C_SEM_text_warning\";\n default:\n return \"C_TEXT_primary\";\n }\n};\n\nexport interface INamedPerson {\n FirstName?: string;\n LastName?: string;\n}\n\nexport const universalPersonNameFormatter = (person: INamedPerson): string => {\n const { FirstName, LastName } = person ?? {};\n const name = [FirstName ?? \"\", LastName ?? \"\"].join(\" \").trim();\n\n return name;\n};\n\nconst userInitialStyles: React.CSSProperties = { marginRight: \"8px\", position: \"relative\", top: \"-1px\" };\n\nexport function transformUserSelectItems(items: ISelectItem[], args: IGetValueArgs): ISelectItem[] {\n return items.map(item => {\n const person = item.additionalData as INamedPerson;\n const name = universalPersonNameFormatter(person);\n const shortCut = getUserNameInitials(person);\n\n return {\n ...item,\n itemContent: ()\n };\n });\n}\n\nexport const isUserOwner = (user: IUserEntity): boolean => {\n return user?.GeneralRoles?.[0]?.GeneralRole.Id === OwnerGeneralRoleId;\n};\n\nexport const isUserCustomer = (user: IUserEntity): boolean => {\n return user?.GeneralRoles?.[0]?.GeneralRole.Id === CustomerGeneralRoleId;\n};\n\nexport const isCustomerGeneralRole: TGetValueFn = (args) => {\n const { storage } = args;\n const generalRole = storage.data.entity?.GeneralRoles?.[0]?.GeneralRole?.Id;\n return generalRole === CustomerGeneralRoleId;\n};\n\nexport function getCompanyRoleSelectItems(storage: TUsersFormStorage): ISelectItem[] {\n const { companyRolesSelectItems } = storage.getCustomData();\n const isCustomer = isCustomerGeneralRole({ storage });\n\n const items = (cloneDeep(companyRolesSelectItems) ?? [])\n .filter(item => isCustomer ? item.id === CustomerCompanyRoleId : item.id !== CustomerCompanyRoleId);\n\n const lines = storage.getValueByPath(COMPANY_ROLE_LINES_PATH);\n if (lines?.length) {\n // disable used items, so they can't be selected again\n for (const line of storage.getValueByPath(COMPANY_ROLE_LINES_PATH)) {\n const item = items.find(item => item.id === line[RoleIdPath]);\n if (item) {\n item.isDisabled = true;\n }\n }\n }\n return items;\n}","import ColumnAutoSizer, { IColumnAutoSizerChildren } from \"@components/columnAutoSizer\";\nimport { getIcon } from \"@components/icon\";\nimport { IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport React, { Component, PureComponent } from \"react\";\n\nimport Tokenizer from \"../../../components/token/Tokenizer\";\nimport Tooltip from \"../../../components/tooltip/Tooltip\";\nimport { IconSize } from \"../../../enums\";\nimport { TRecordString } from \"../../../global.types\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { AgendasSpan, CompanyRolesListStyled, PermissionName, PermissionsOverviewGrid } from \"./Users.styles\";\nimport { IPermissionItemProps, IUsersFormCustomData } from \"./Users.utils\";\n\ninterface IProps {\n storage: FormStorage;\n}\n\nclass CompanyPermissionItem extends PureComponent {\n getTooltipText = () => {\n const tokens = this.props.permission.companies.map((id) => ({\n id: id.toString(),\n title: this.props.allCompanies[id]\n }));\n\n return ;\n };\n\n render() {\n const Icon = getIcon(this.props.iconName);\n return
    \n \n \n {this.props.permission.Name}\n \n {(ref) =>\n \n {this.props.agendas}\n }\n \n \n
    ;\n }\n}\n\nclass CompanyRolesList extends Component {\n mapAllCompanies = memoizeOne((): TRecordString => {\n const result: TRecordString = {};\n this.props.storage.context.getData().companies?.forEach((c) => {\n result[c.Id] = c.Name;\n });\n return result;\n });\n\n render() {\n const allCompanies = this.mapAllCompanies();\n const permissions = this.props.storage.getCustomData().permissions ?? [];\n return \n {!!permissions.length &&\n \n {(args: IColumnAutoSizerChildren) => {\n return \n {permissions.sort((a, b) => a.Name.localeCompare(b.Name)).map(permission => {\n const iconName = permission.companies?.length ? \"StatusYes\" : \"StatusNo\";\n const agendas = permission.companies?.length ? this.props.storage.t(\"Users:Agendas\", { count: permission.companies.length }) : \"\";\n return ;\n })}\n ;\n }}\n }\n ;\n }\n}\n\nexport default CompanyRolesList;","import ColumnAutoSizer, { IColumnAutoSizerChildren } from \"@components/columnAutoSizer\";\nimport { getIcon } from \"@components/icon\";\nimport {\n EntitySetName,\n IGeneralPermissionEntity,\n IGeneralRoleEntity,\n IGeneralRolePermissionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport React, { Component } from \"react\";\n\nimport { IconSize } from \"../../../enums\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { PermissionsOverviewGrid } from \"./Users.styles\";\n\ninterface IProps {\n storage: FormStorage;\n}\n\nclass PermissionsOverview extends Component {\n allPermissions: IGeneralPermissionEntity[];\n\n getAllPermissions = memoizeOne(async (): Promise => {\n const permissions = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.GeneralPermissions)\n .query()\n .fetchData();\n return permissions.value;\n });\n\n getRolePermissions = (generalRole: IGeneralRoleEntity): string[] => {\n return generalRole?.GeneralRolePermissions?.filter((p: IGeneralRolePermissionEntity) => p.IsEnabled)\n .map((p: IGeneralRolePermissionEntity) => p.PermissionCode);\n };\n\n componentDidMount = async (): Promise => {\n this.allPermissions = await this.getAllPermissions();\n this.forceUpdate();\n };\n\n render() {\n const selectedCodes = this.getRolePermissions(this.props.storage.data.entity?.GeneralRoles?.[0]?.GeneralRole);\n\n if (!selectedCodes || !this.allPermissions?.length) {\n return null;\n }\n\n return \n {(args: IColumnAutoSizerChildren) => {\n return \n {this.allPermissions?.sort((a, b) => a.Name.localeCompare(b.Name)).map(permission => {\n const iconName = selectedCodes?.includes(permission.Code) ? \"StatusYes\" : \"StatusNo\";\n const Icon = getIcon(iconName);\n return
    \n \n {permission.Name}\n
    ;\n })}\n ;\n }}\n
    ;\n }\n}\n\nexport default PermissionsOverview;","import { CloseIcon } from \"@components/icon\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IGetSmartHeaderCustomInfo } from \"@components/smart/smartHeader/SmartHeader.utils\";\nimport { ODataError } from \"@odata/Data.types\";\nimport {\n CompanyPermissionEntity,\n CompanyRoleEntity,\n CompanyRolePermissionEntity,\n EntitySetName,\n GeneralRoleEntity,\n ICompanyEntity,\n ICompanyRoleEntity,\n ICompanyRolePermissionEntity,\n IGeneralRoleEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { FeatureCode, LanguageCode, TimeZoneCode, UserStatusCode } from \"@odata/GeneratedEnums\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { Button, ButtonGroup } from \"../../../components/button\";\nimport SmartFormDeleteButton from \"../../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\nimport { NEW_ITEM_DETAIL, REST_API_URL } from \"../../../constants\";\nimport { WithAuthContext, withAuthContext } from \"../../../contexts/authContext/withAuthContext\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { Status } from \"../../../enums\";\nimport { AwaitedArray } from \"../../../global.types\";\nimport BindingContext, { IEntity, TEntityKey } from \"../../../odata/BindingContext\";\nimport DateType, { DisplayFormat, getUtcDate } from \"../../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport { getAlertFromError } from \"../../../views/formView/Form.utils\";\nimport { FormStorage, IContextInitArgs } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n activePath,\n CompaniesPath,\n COMPANY_ROLE_LINES_PATH,\n CustomerGeneralRoleId,\n GeneralRolesPath,\n getCompanyRoleSelectItems,\n IEmailInfoDetail,\n invitationInfoPath,\n IPermissionsWithCompanies,\n IUserEntityExtended,\n IUsersFormCustomData,\n ownerRoleConfirmInfoPath,\n RoleIdPath\n} from \"./Users.utils\";\nimport { hasCompanies } from \"./UsersDef\";\n\nconst GET_INVITATION_INFO_URL = `${REST_API_URL}/invitation/Detailforuser`;\nconst RESEND_INVITATION_INFO_URL = `${REST_API_URL}/invitation/UpsertInvitation`;\nconst GET_OWNER_CONFIRM_INFO_URL = `${REST_API_URL}/ownerroledeferredupdater/details`;\nconst RESEND_OWNER_CONFIRM_INFO_URL = `${REST_API_URL}/ownerroledeferredupdater/resendEmail`;\nconst CANCEL_PENDING_OWNER_CONFIRM_URL = `${REST_API_URL}/ownerroledeferredupdater/cancelpendingupdate`;\n\nclass UsersFormView extends FormViewForExtend & WithAuthContext> {\n get shouldShowBreadCrumbs(): boolean {\n return !this.props.formProps?.hideBreadcrumbs && !this.props.storage.context.getAddingNewCompany();\n }\n\n getAdditionalLoadPromise = (args: IContextInitArgs) => {\n const id = args.bindingContext.getKey();\n return [\n this.getCompanyRoles(),\n this.getInvitationInfo(id),\n this.getOwnerRoleConfirmationInfo(id)\n ];\n };\n\n getAdditionalResults(): AwaitedArray> {\n return this.props.storage.data.additionalResults;\n }\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n\n if (storage.data.bindingContext.isNew()) {\n const res = await storage.oData.getEntitySetWrapper(EntitySetName.GeneralRoles)\n .query()\n .filter(`${GeneralRoleEntity.IsDefaultRole} eq true`)\n .expand(GeneralRoleEntity.GeneralRolePermissions)\n .fetchData();\n\n if (res.value) {\n const [defaultRole] = res.value;\n this.entity.GeneralRoles = [{ GeneralRole: defaultRole }];\n }\n } else {\n const invitation = this.getAdditionalResults()[1];\n const ownerRoleConfirm = this.getAdditionalResults()[2];\n\n if (invitation && !isObjectEmpty(invitation)) {\n storage.setValueByPath(invitationInfoPath, invitation);\n storage.refresh();\n } else if (ownerRoleConfirm && !isObjectEmpty(ownerRoleConfirm)) {\n storage.setValueByPath(ownerRoleConfirmInfoPath, ownerRoleConfirm);\n storage.refresh();\n }\n\n storage.setValueByPath(activePath, this.entity.StatusCode === UserStatusCode.Active);\n this.setSavedCompanyRoles();\n }\n\n if (!this.entity?.CompanyRoles?.length && hasCompanies({ storage })) {\n addNewLineItem(storage as unknown as FormStorage, COMPANY_ROLE_LINES_PATH);\n }\n\n this.recalculatePermissions();\n\n storage.setValueByPath(GeneralRolesPath, storage.data.entity?.GeneralRoles?.[0]?.GeneralRole?.Id);\n return super.onAfterLoad();\n };\n\n getInvitationInfo = async (userId: TEntityKey): Promise => {\n if (!userId) {\n return null;\n }\n\n const res = await customFetch(`${GET_INVITATION_INFO_URL}/${userId}`);\n\n if (res.ok && res.status !== 204) {\n const emailInfo = await res.json();\n emailInfo.DateEmailSent = getUtcDate(emailInfo.DateEmailSent);\n\n return emailInfo as IEmailInfoDetail;\n }\n\n return null;\n };\n\n getOwnerRoleConfirmationInfo = async (userId: TEntityKey): Promise => {\n if (!userId || userId === NEW_ITEM_DETAIL) {\n return null;\n }\n\n const res = await customFetch(`${GET_OWNER_CONFIRM_INFO_URL}/${userId}`);\n\n if (res.ok && res.status !== 204) {\n const emailInfo = await res.json();\n emailInfo.DateEmailSent = getUtcDate(emailInfo.DateEmailSent);\n\n return emailInfo as IEmailInfoDetail;\n }\n\n return null;\n };\n\n getAllCompanyRolePermissions(companyRoleId: number) {\n const { companyRolesSelectItems } = this.props.storage.getCustomData();\n const crp = companyRolesSelectItems?.find(role => role.id === companyRoleId);\n return crp.additionalData.CompanyRolePermissions.filter((permission: ICompanyRolePermissionEntity) => {\n return isNotDefined(permission.CompanyPermission.FeatureCode)\n || this.props.storage.context.isFeatureSwitchEnabled(permission.CompanyPermission.FeatureCode as FeatureCode);\n });\n }\n\n createCompanyRoleLine = (companyRoleId: number, companyIds: number[]): IEntity => {\n return BindingContext.createNewEntity(companyRoleId, {\n [RoleIdPath]: companyRoleId,\n [CompaniesPath]: companyIds.map(Id => ({ Id }))\n });\n }\n\n setSavedCompanyRoles = (): void => {\n const companyRoleLines: IEntity[] = [];\n this.entity?.CompanyRoles?.forEach((role) => {\n const companyRoleId = role.CompanyRole.Id;\n const companyId = role.Company.Id;\n const line = companyRoleLines.find((r) => r[RoleIdPath] === companyRoleId);\n if (line) {\n line[CompaniesPath] = [...line[CompaniesPath], { Id: companyId }];\n } else {\n companyRoleLines.push(this.createCompanyRoleLine(companyRoleId, [companyId]));\n }\n });\n this.props.storage.setValueByPath(COMPANY_ROLE_LINES_PATH, companyRoleLines);\n };\n\n getCompanyRoles = async (): Promise => {\n const items: ISelectItem[] = [];\n const companyRoles = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.CompanyRoles)\n .query()\n .select(CompanyRoleEntity.Id, CompanyRoleEntity.CompanyRoleName)\n .expand(CompanyRoleEntity.CompanyRolePermissions, (query => query.select(CompanyRolePermissionEntity.Id, CompanyRolePermissionEntity.IsEnabled)\n .expand(CompanyRolePermissionEntity.CompanyPermission, (q => q.select(CompanyPermissionEntity.Name, CompanyPermissionEntity.Code, CompanyPermissionEntity.FeatureCode)))))\n .fetchData();\n\n companyRoles?.value?.forEach((role: ICompanyRoleEntity) => {\n items.push({\n label: role.CompanyRoleName,\n id: role.Id,\n additionalData: {\n CompanyRolePermissions: role.CompanyRolePermissions\n }\n });\n });\n this.props.storage.setCustomData({ companyRolesSelectItems: items });\n };\n\n getDefaultCompanyRoleLine() {\n const items = getCompanyRoleSelectItems(this.props.storage);\n const companyRoleId = items?.find(item => !item.isDisabled)?.id;\n return this.createCompanyRoleLine(companyRoleId as number, []);\n }\n\n handleGeneralRoleChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === GeneralRolesPath && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const previousRole = this.entity.GeneralRoles?.[0]?.GeneralRole?.Id;\n\n this.entity.GeneralRoles = [{ GeneralRole: { ...e.additionalData } }];\n\n if ((e.value === CustomerGeneralRoleId && previousRole !== CustomerGeneralRoleId)\n || (e.value !== CustomerGeneralRoleId && previousRole === CustomerGeneralRoleId)) {\n const companyRoleLine = this.getDefaultCompanyRoleLine();\n this.props.storage.setValueByPath(COMPANY_ROLE_LINES_PATH, [companyRoleLine]);\n this.recalculatePermissions();\n }\n\n // storage.setDefaultValue(createPath(, RoleIdPath));\n storage.refreshGroupByKey(\"systemRoles\");\n }\n };\n\n recalculatePermissions = (): void => {\n const permissions: IPermissionsWithCompanies[] = [];\n\n const companyRoles = this.props.storage.getValueByPath(COMPANY_ROLE_LINES_PATH);\n\n companyRoles?.forEach((companyRoleLine: IEntity) => {\n if (companyRoleLine[CompaniesPath]?.length) {\n const companyRoleId = companyRoleLine[RoleIdPath];\n const allPermissions = this.getAllCompanyRolePermissions(companyRoleId);\n\n allPermissions?.forEach((p: ICompanyRolePermissionEntity) => {\n const permission = permissions.find((perm => perm.Code === p.CompanyPermission.Code));\n if (!permission) {\n permissions.push({\n Code: p.CompanyPermission.Code,\n Name: p.CompanyPermission.Name,\n companies: p.IsEnabled ? companyRoleLine[CompaniesPath].map((c: ICompanyEntity) => c.Id) : []\n });\n } else if (p.IsEnabled) {\n companyRoleLine[CompaniesPath].forEach((c: ICompanyEntity) => {\n if (!permission.companies.includes(c.Id)) {\n permission.companies.push(c.Id);\n }\n });\n }\n });\n }\n });\n this.props.storage.setCustomData({ permissions });\n this.props.storage.refresh();\n };\n\n handleActiveChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === activePath) {\n this.props.storage.setValueByPath(UserEntity.StatusCode, e.value ? UserStatusCode.Active : UserStatusCode.Inactive);\n }\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n this.handleGeneralRoleChange(e);\n this.handleActiveChange(e);\n this.props.storage.handleChange(e);\n this.forceUpdate();\n };\n\n onBeforeSave = (): IUserEntityExtended => {\n const entity = cloneDeep(this.entity);\n if (this.props.storage.data.bindingContext.isNew()) {\n entity.LanguageCode = LanguageCode.Czech;\n entity.TimeZoneCode = TimeZoneCode.UTC_1CentralEuropeanTime_Prague;\n }\n\n entity.CompanyRoles = [];\n const { origEntity } = this.props.storage.data;\n this.props.storage.getValueByPath(COMPANY_ROLE_LINES_PATH)?.forEach((line: IEntity) => {\n line[CompaniesPath]?.forEach((company: ICompanyEntity) => {\n // find the original role Id, so we can create correct PATCH request with only changes\n const origCompanyRole = origEntity.CompanyRoles?.find(origRole =>\n origRole.Company?.Id === company.Id && origRole.CompanyRole?.Id === line[RoleIdPath]);\n\n entity.CompanyRoles.push({\n Id: origCompanyRole?.Id,\n Company: { Id: company.Id },\n CompanyRole: { Id: line[RoleIdPath] }\n });\n });\n });\n\n return entity;\n };\n\n handleLineItemsAction = async (args: ISmartFastEntriesActionEvent) => {\n this.props.storage.handleLineItemsAction(args);\n if (args.actionType === ActionType.Remove) {\n this.recalculatePermissions();\n }\n this.props.storage.refresh();\n };\n\n handleLineItemsChange = (e: ISmartFieldChange) => {\n this.props.storage.handleLineItemsChange(e);\n this.recalculatePermissions();\n this.props.storage.refresh();\n };\n\n removeEmptyLines = (): void => {\n const companyRoleLines: IEntity[] = this.props.storage.getValueByPath(COMPANY_ROLE_LINES_PATH);\n this.props.storage.setValueByPath(COMPANY_ROLE_LINES_PATH, companyRoleLines?.filter(line => !!line[RoleIdPath] && line[CompaniesPath]?.length) ?? []);\n };\n\n handleCancelPendingRoleConfirm = async () => {\n await customFetch(`${CANCEL_PENDING_OWNER_CONFIRM_URL}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(this.entity.Id)\n });\n\n\n await this.props.storage.reload();\n this.props.onAfterSave?.(true);\n };\n\n getCustomHeaderInfo = (): IGetSmartHeaderCustomInfo => {\n const invitation = this.props.storage.getValueByPath(invitationInfoPath) as IEmailInfoDetail;\n const roleConfirm = this.props.storage.getValueByPath(ownerRoleConfirmInfoPath) as IEmailInfoDetail;\n\n\n if (invitation) {\n return {\n infoTooltip: null,\n infoText: this.props.storage.t(\"Users:InvitationSent\", {\n email: invitation.Email,\n date: DateType.localFormat(invitation.DateEmailSent),\n time: DateType.localFormat(invitation.DateEmailSent, DisplayFormat.TimeShort)\n }).toString()\n };\n } else if (this.entity.StatusCode === UserStatusCode.RoleAcceptancePending && roleConfirm) {\n const text = this.props.storage.t(\"Users:OwnerRoleConfirmationSent\", {\n email: roleConfirm.Email,\n date: DateType.localFormat(roleConfirm.DateEmailSent),\n time: DateType.localFormat(roleConfirm.DateEmailSent, DisplayFormat.TimeShort)\n }).toString();\n\n return {\n infoTooltip: null,\n infoText: (\n
    \n {text}\n \n
    \n )\n };\n } else {\n return null;\n }\n };\n\n resendInvitation = async (): Promise => {\n const res = await customFetch(RESEND_INVITATION_INFO_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n TenantUserId: this.entity.Id\n })\n });\n\n if (res.ok) {\n const invitation = await this.getInvitationInfo(this.entity.Id);\n const alert = {\n status: Status.Success,\n title: this.props.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.props.storage.t(\"Users:ResendInvitationSuccess\")\n };\n this.props.storage.setFormAlert(alert);\n this.props.storage.setValueByPath(invitationInfoPath, invitation);\n this.props.storage.refresh();\n } else {\n const error: ODataError = await parseResponse(res);\n this.props.storage.setFormAlert(getAlertFromError(error));\n }\n };\n\n resendOwnerConfirm = async (): Promise => {\n const res = await customFetch(RESEND_OWNER_CONFIRM_INFO_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify(this.entity.Id)\n });\n\n if (res.ok) {\n const ownerRoleConfirm = await this.getOwnerRoleConfirmationInfo(this.entity.Id);\n const alert = {\n status: Status.Success,\n title: this.props.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.props.storage.t(\"Users:ResendInvitationSuccess\")\n };\n this.props.storage.setFormAlert(alert);\n this.props.storage.setValueByPath(ownerRoleConfirmInfoPath, ownerRoleConfirm);\n this.props.storage.refresh();\n } else {\n const error: ODataError = await parseResponse(res);\n this.props.storage.setFormAlert(getAlertFromError(error));\n }\n };\n\n renderButtons(): React.ReactElement {\n const isFormReadOnly = this.props.storage.isReadOnly;\n\n return (\n \n \n {this.isDeletable &&\n \n }\n {!!this.props.storage.getValueByPath(invitationInfoPath) &&\n \n }\n {!!this.props.storage.getValueByPath(ownerRoleConfirmInfoPath) &&\n \n }\n {!isFormReadOnly &&\n \n }\n \n );\n }\n\n async save() {\n const result = await super.save();\n if (!result) {\n return result;\n }\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n if (result && result.data?.Id === this.props.authContext.userId) {\n // if the current user has been changed, its permissions could have been edited\n // remove if BE actually fires WebSocketMessageTypeCode.SessionInvalidated\n // but it doesn't seem to happen now\n await this.props.permissionContext.refreshUserPermissions();\n }\n\n this.onAfterSave(isNew, false);\n this.forceUpdate(this.scrollPageDown);\n\n return result;\n }\n}\n\nexport default withAuthContext(withPermissionContext(UsersFormView));","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ifAny, IFieldDefFn, IGetValueArgs, TGetValueFn } from \"@components/smart/FieldInfo\";\nimport { PhoneNumberDef, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport SmartTableManager from \"@components/smart/smartTable/SmartTableManager\";\nimport { ICellValueObject } from \"@components/table\";\nimport {\n CompanyRoleEntity,\n EntitySetName,\n EntityTypeName,\n GeneralRoleEntity,\n GeneralRolePermissionEntity,\n ICompanyEntity,\n IUserEntity,\n IUserStatusEntity,\n UserCompanyRoleEntity,\n UserEntity,\n UserGeneralRoleEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { UserStatusCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport DrillDownLink from \"../../../components/drillDown\";\nimport UserInitial from \"../../../components/token/UserInitial\";\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, LabelStatus, Sort, ValidatorType } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport { ROUTE_USERS } from \"../../../routes\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport CompanyRolesList from \"./CompanyRolesList\";\nimport PermissionsOverview from \"./PermissionsOverview\";\nimport { UserNameStyled } from \"./Users.styles\";\nimport {\n activePath,\n CompaniesPath,\n COMPANY_ROLE_LINES_PATH,\n CompanyRolesPermissionsOverviewPath,\n CustomerGeneralRoleId,\n CustomerRolesPath,\n GeneralRolePermissionsOverviewPath,\n GeneralRolesPath,\n getCompanyRoleSelectItems,\n getUserNameInitials,\n getUserStatusColor,\n isUserOwner,\n IUsersFormCustomData,\n RoleIdPath,\n TUsersFormStorage,\n universalPersonNameFormatter\n} from \"./Users.utils\";\nimport UsersFormView from \"./UsersFormView\";\n\n\ninterface IUserNameWithAvatarFormatterOptions {\n isBold?: boolean;\n withLink?: boolean;\n isBig?: boolean;\n suffix?: string;\n isInTable?: boolean;\n}\n\nexport const userNameWithAvatarTableFormatter = (val: TValue, args?: IFormatOptions): (ICellValueObject | string) => {\n return userNameWithAvatarFormatter(val, args, { isInTable: true });\n};\n\nexport const userNameWithAvatarFormatter = (val: TValue, args?: IFormatOptions,\n {\n isBold = true,\n withLink = false,\n isBig,\n suffix = \"\",\n isInTable = false\n }: IUserNameWithAvatarFormatterOptions = {\n isBold: true,\n withLink: false,\n suffix: \"\",\n isInTable: false\n }): (ICellValueObject | string) => {\n if (!val) {\n return \"\";\n }\n\n const user = args.entity as IUserEntity;\n const name = universalPersonNameFormatter(user);\n const shortCut = getUserNameInitials(user);\n const style: React.CSSProperties = {};\n\n if (isInTable && user.StatusCode === UserStatusCode.Inactive) {\n style.opacity = 0.5;\n }\n\n const content = (<>\n \n {name}{suffix}\n );\n\n const value = withLink\n ? \n {content}\n \n : content;\n\n return {\n value,\n tooltip: `${name}${suffix}`\n };\n};\n\nexport function hasCompanies({ storage }: IGetValueArgs): boolean {\n return !!storage.context.getData().companies?.length;\n}\n\nfunction generalRoleNameFormatter(val: TValue, args: IFormatOptions): string {\n return (args.entity as IUserEntity).GeneralRoles?.[0]?.GeneralRole?.GeneralRoleName;\n}\n\nconst isCompanyRolesDisabled: TGetValueFn = (args) => {\n return !!(args.storage as FormStorage).getBackendDisabledFieldMetadata(args.storage.data.bindingContext.navigate(UserEntity.CompanyRoles));\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n UserEntity.FirstName,\n UserEntity.LastName,\n UserEntity.Email,\n UserEntity.Status,\n // UserEntity.GeneralRoles\n ],\n filterDefinition: {\n FirstName: {},\n LastName: {},\n Email: {},\n ...withDisplayName(UserEntity.Status),\n // TODO: https://solitea-cz.atlassian.net/browse/DEV-31190\n // [UserEntity.GeneralRoles]: {\n // fieldSettings: {\n // displayName: `${UserGeneralRoleEntity.GeneralRole}/${GeneralRoleEntity.GeneralRoleName}`\n // },\n // filter: {\n // buildFilter: (item: IChangedFilter): IFilterQuery | string => {\n // return {\n // query: `${UserEntity.GeneralRoles}/any(x: startswith(x/${UserGeneralRoleEntity.GeneralRole}/${GeneralRoleEntity.GeneralRoleName},'${item.value}'))`\n // };\n // }\n // }\n // }\n },\n isValueHelp: true\n }];\n\n const table: ISplitPageTableDef = {\n filter: (args: IGetValueArgs) => {\n const filters = [\"Id gt 0\"];\n if (!!args.storage.context.getAddingNewCompany()) {\n filters.push(`${UserEntity.GeneralRoles}/all(x: x/${UserGeneralRoleEntity.GeneralRole}/Id ne ${CustomerGeneralRoleId})`);\n }\n return filters.join(\" AND \");\n },\n additionalProperties: [{\n id: UserEntity.CompanyRoles,\n additionalProperties: [{\n id: UserCompanyRoleEntity.CompanyRole\n }, {\n id: UserCompanyRoleEntity.Company\n }]\n }],\n filterBarDef,\n id: `${EntityTypeName.User}Table`,\n columns: [\n UserEntity.FirstName,\n GeneralRolesPath,\n UserEntity.Email,\n UserEntity.Status,\n CustomerRolesPath\n ],\n columnDefinition: {\n FirstName: {\n label: i18next.t(\"Users:User\"),\n width: BasicInputSizes.L,\n formatter: userNameWithAvatarTableFormatter,\n additionalProperties: [{ id: `/${UserEntity.LastName}` }]\n },\n Email: {},\n [GeneralRolesPath]: {\n label: i18next.t(\"Users:SystemRole\"),\n fieldSettings: {\n disableSort: true\n },\n additionalProperties: [{\n id: `${UserEntity.GeneralRoles}/${UserGeneralRoleEntity.GeneralRole}/${GeneralRoleEntity.GeneralRoleName}`\n }],\n formatter: generalRoleNameFormatter\n },\n [CustomerRolesPath]: {\n isVisible: !!context.getCompanyId(),\n label: i18next.t(\"Users:AgendaRoles\"),\n fieldSettings: {\n disableSort: true\n },\n additionalProperties: [{\n id: `${UserEntity.CompanyRoles}/${UserCompanyRoleEntity.CompanyRole}/${CompanyRoleEntity.CompanyRoleName}`\n }],\n formatter: (val: TValue, args: IFormatOptions) => {\n const currentCompanyId = args.storage.context.getCompanyId();\n const roles = (args.entity as IUserEntity).CompanyRoles\n ?.filter(role => role.Company?.Id === currentCompanyId)\n ?.map(role => role.CompanyRole?.CompanyRoleName) ?? [];\n return roles.join(\", \");\n }\n },\n [UserEntity.Status]: {\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: (val, args) => {\n const entity = args.entity as IUserEntity;\n const title = entity.StatusCode !== UserStatusCode.RoleAcceptancePending ? val as string : i18next.t(\"Users:Form.InvitedToRoleOwner\");\n const color: keyof DefaultTheme = getUserStatusColor(entity.StatusCode as UserStatusCode);\n\n const colorWrapper = {title} ;\n\n return { tooltip: title, value: colorWrapper };\n }\n }\n },\n title: i18next.t(\"Users:Title\"),\n initialSortBy: [{ id: UserEntity.FirstName, sort: Sort.Asc }]\n };\n\n const summary: ISummaryItem[] = [\n { id: UserEntity.Name },\n {\n id: \"Status\",\n label: i18next.t(\"Users:Form.Status\"),\n formatter: (val: TValue) => {\n if (val) {\n const status = val as IUserStatusEntity;\n return status.Code !== UserStatusCode.RoleAcceptancePending ? status.Name : i18next.t(\"Users:Form.InvitedToRoleOwner\");\n }\n return DASH_CHARACTER;\n },\n colorFormatter: (val: TValue) => {\n const status = val as IUserStatusEntity;\n return getUserStatusColor(status?.Code as UserStatusCode);\n }\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.User}Form`,\n summary,\n title: i18next.t(\"Users:User\"),\n translationFiles: getDefinitions.translationFiles,\n formControl: UsersFormView,\n isDeletable: true,\n additionalProperties: [{\n id: UserEntity.StatusCode\n }, {\n id: UserEntity.GeneralRoles,\n additionalProperties: [{\n id: UserGeneralRoleEntity.GeneralRole,\n additionalProperties: [{ id: GeneralRoleEntity.GeneralRoleName }, {\n id: GeneralRoleEntity.GeneralRolePermissions,\n additionalProperties: [\n { id: GeneralRolePermissionEntity.PermissionCode },\n { id: GeneralRolePermissionEntity.IsEnabled }\n ]\n }]\n }]\n }, {\n id: UserEntity.CompanyRoles,\n additionalProperties: [{\n id: UserCompanyRoleEntity.CompanyRole,\n additionalProperties: [{ id: CompanyRoleEntity.CompanyRolePermissions }]\n }, {\n id: UserCompanyRoleEntity.Company\n }]\n }],\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Users:NewUser\"), storage.data.entity?.Name),\n fieldDefinition: {\n \"FirstName\": {},\n \"LastName\": {},\n \"Email\": {\n width: BasicInputSizes.L,\n validator: {\n type: ValidatorType.Email\n }\n },\n \"PhoneNumber\": {\n ...PhoneNumberDef\n },\n [activePath]: {\n type: FieldType.Switch,\n label: i18next.t(\"Common:General.Active\"),\n isVisible: (args: IGetValueArgs) => {\n const entity = args.storage.data.entity as IUserEntity;\n return [UserStatusCode.Inactive, UserStatusCode.Active].includes(entity.StatusCode as UserStatusCode);\n },\n isDisabled: (args: IGetValueArgs) => {\n const entity = args.storage.data.entity as IUserEntity;\n const isOwner = isUserOwner(entity);\n const table = SmartTableManager.getTable(\"UsersTable\");\n const ownersList = table?.getState()?.rows && Object.values(table.getState().rows).filter(row => {\n return row.customData?.entity && isUserOwner(row.customData.entity);\n });\n\n return isOwner && ownersList?.length === 1;\n }\n },\n [GeneralRolesPath]: {\n label: i18next.t(\"Users:Role\"),\n isRequired: true,\n type: FieldType.ComboBox,\n fieldSettings: {\n entitySet: EntitySetName.GeneralRoles,\n displayName: GeneralRoleEntity.GeneralRoleName,\n additionalProperties: [{ id: GeneralRoleEntity.GeneralRoleName }, {\n id: GeneralRoleEntity.GeneralRolePermissions,\n additionalProperties: [\n { id: GeneralRolePermissionEntity.PermissionCode },\n { id: GeneralRolePermissionEntity.IsEnabled }\n ]\n }],\n itemsForRender: (items, args) => {\n return items?.map(item => {\n if (item.id === -1 && args.storage.context.getData().userSettings?.GeneralRoles?.[0]?.GeneralRole.Id !== -1) {\n item.isDisabled = true;\n }\n return item;\n });\n }\n },\n formatter: generalRoleNameFormatter,\n isDisabled: (args) => {\n const isDisabled = !!(args.storage as FormStorage).getBackendDisabledFieldMetadata(args.storage.data.bindingContext.navigate(UserEntity.GeneralRoles));\n\n return isDisabled || (args.storage.getValueByPath(\"GeneralRoles\")?.[0]?.GeneralRole.Id === -1 &&\n args.storage.context.getData().userSettings?.GeneralRoles?.[0]?.GeneralRole.Id !== -1);\n },\n affectedFields: [{ id: GeneralRolePermissionsOverviewPath }, { id: CompanyRolesPermissionsOverviewPath }]\n },\n [GeneralRolePermissionsOverviewPath]: {\n type: FieldType.Custom,\n label: i18next.t(\"Users:Form.GeneralRolesList\"),\n labelStatus: LabelStatus.Removed,\n // isVisible: not(isCustomerGeneralRole),\n render: (args: IFieldDefFn) => {\n const hasRole = !!args.storage.data.entity?.GeneralRoles?.[0];\n return (<>\n {hasRole && }\n );\n }\n },\n [CompanyRolesPermissionsOverviewPath]: {\n type: FieldType.Custom,\n label: i18next.t(\"Users:Form.CompanyRolesList\"),\n labelStatus: LabelStatus.Removed,\n isVisible: (args: IGetValueArgs) => {\n const companyRoleLines = args.storage.getValueByPath(COMPANY_ROLE_LINES_PATH);\n return !!companyRoleLines?.some((line: IEntity) => {\n return !!line[CompaniesPath]?.length;\n });\n },\n render: (args: IFieldDefFn) => {\n return (\n }/>);\n }\n },\n [createPath(COMPANY_ROLE_LINES_PATH, RoleIdPath)]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Users:Role\"),\n isRequired: true,\n isCollectionField: true,\n width: BasicInputSizes.M,\n defaultValue: (args: IGetValueArgs) => {\n return getCompanyRoleSelectItems(args.storage as TUsersFormStorage)\n .find(item => !item.isDisabled)?.id;\n },\n fieldSettings: {\n items: [],\n itemsForRender: (origItems, args: IGetValueArgs) => {\n return getCompanyRoleSelectItems(args.storage as TUsersFormStorage);\n }\n },\n isDisabled: ifAny(isCompanyRolesDisabled, (args: IGetValueArgs) => {\n return getCompanyRoleSelectItems(args.storage as TUsersFormStorage)?.length <= 1;\n })\n },\n [createPath(COMPANY_ROLE_LINES_PATH, CompaniesPath)]: {\n type: FieldType.MultiSelect,\n label: i18next.t(\"Users:ForAgenda\"),\n isRequired: true,\n isCollectionField: true,\n width: BasicInputSizes.XL,\n isDisabled: (args: IGetValueArgs) => {\n const isDisabled = isCompanyRolesDisabled(args);\n const bc = args.bindingContext.getParent().navigate(RoleIdPath);\n return isDisabled || !args.storage.getValue(bc);\n },\n fieldSettings: {\n keyPath: \"Id\",\n items: [],\n itemsForRender: (origItems, args: IGetValueArgs) => {\n const companies = args.storage.context.getData().companies;\n const items: ISelectItem[] = [];\n const usedCompaniesIds = args.storage.getValueByPath(COMPANY_ROLE_LINES_PATH)?.reduce((usedIds: number[], line: IEntity) => {\n if (line[BindingContext.NEW_ENTITY_ID_PROP] === args.bindingContext.getParent().getKey()) {\n return usedIds; // don't disable selected item\n }\n const lineCompanies = line[CompaniesPath]?.map((c: ICompanyEntity) => c.Id) ?? [];\n return [...usedIds, ...lineCompanies];\n }, []) ?? [];\n companies?.forEach((company: ICompanyEntity) => {\n items.push({\n label: company.Name,\n id: company.Id,\n isDisabled: usedCompaniesIds.includes(company.Id)\n });\n });\n return items;\n }\n }\n }\n },\n groups: [{\n id: \"general\",\n rows: [\n [{ id: UserEntity.FirstName }, { id: UserEntity.LastName }, { id: UserEntity.Email }, { id: UserEntity.PhoneNumber }, { id: activePath }]\n ]\n }, {\n id: \"systemRoles\",\n title: i18next.t(\"Users:SystemRole\"),\n rows: [[{ id: GeneralRolesPath }]]\n }, {\n id: \"systemPermissions\",\n title: i18next.t(\"Users:SystemPermissions\"),\n rows: [[{ id: GeneralRolePermissionsOverviewPath }]],\n customizationData: {\n isLocked: true\n }\n }, {\n id: COMPANY_ROLE_LINES_PATH,\n title: i18next.t(\"Users:AgendaRoles\"),\n isVisible: hasCompanies,\n lineItems: {\n collection: COMPANY_ROLE_LINES_PATH,\n order: null,\n columns: [{ id: RoleIdPath }, { id: CompaniesPath }],\n isTheOnlyItemRemovable: true,\n canReorder: false,\n isItemCloneable: false,\n isDisabled: isCompanyRolesDisabled,\n isAddDisabled: (args: IGetValueArgs) => {\n const { storage } = args;\n const items = getCompanyRoleSelectItems(storage as TUsersFormStorage);\n const rows = storage.getValueByPath(COMPANY_ROLE_LINES_PATH);\n return (rows?.length ?? 0) === items?.length;\n }\n }\n }, {\n id: \"companyRolesOverview\",\n title: i18next.t(\"Users:CompanyPermissions\"),\n isVisible: hasCompanies,\n rows: [[{ id: CompanyRolesPermissionsOverviewPath }]],\n customizationData: {\n isLocked: true\n }\n }]\n };\n\n return {\n entitySet: EntitySetName.Users,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Users\"];\nsetDefByEntityType(EntityTypeName.User, getDefinitions);","import { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\n\nexport const VatRuleTranslationFiles = [\n \"Vats\",\n getEnumNameSpaceName(EntityTypeName.VatReverseCharge)\n];","import { ISelectItem, TSelectItemId } from \"@components/inputs/select/Select.types\";\nimport {\n IAffectedField,\n ifAll,\n ifAny,\n IFieldDef,\n IGetValueArgs,\n isFieldDisabled,\n isVisible,\n isVisibleByPath,\n not\n} from \"@components/smart/FieldInfo\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IDependentFieldDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport {\n fetchItemsByInfo,\n getRenderedItemsByInfo,\n invalidateItems\n} from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { filterPercentFormatter } from \"@components/smart/smartValueHelper/ValueHelper.utils\";\nimport { isInVatPayerVariantContext } from \"@components/variantSelector/VariantOdata\";\nimport { getBoundValue, getNestedValue, setNestedValue } from \"@odata/Data.utils\";\nimport {\n BusinessPartnerEntity,\n DocumentCbaCategoryEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemEntity,\n DocumentVatClassificationEntity,\n DocumentVatClassificationSelectionEntity,\n EntitySetName,\n EntityTypeName,\n FlattenAccountEntity,\n ICbaCategoryEntity,\n ICountryEntity,\n IDocumentBusinessPartnerEntity,\n IDocumentEntity,\n IDocumentVatClassificationEntity,\n IDocumentVatClassificationSelectionEntity,\n IInvoiceReceivedEntity,\n IRegularDocumentItemEntity,\n IVatClassificationEntity,\n IVatEntity,\n IVatStatusEntity,\n VatClassificationEntity,\n VatStatementSectionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountCategoryCode,\n AccountTypeCode,\n CbaCategoryTaxImpactCode,\n CountryClassificationCode,\n CountryCode,\n DocumentTypeCode,\n PayableReceivableTypeCode,\n SelectionCode,\n TaxApplicabilityCode,\n VatControlStatementSectionCode,\n VatDeductionTypeCode,\n VatReverseChargeCode,\n VatStatementSectionCategoryCode,\n VatStatementSectionCode,\n VatStatusCode,\n VatViesCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { formatBooleanValue, IFormatOptions } from \"@odata/OData.utils\";\nimport {\n isAccountAssignmentCompanyValue,\n isCashBasisAccountingCompany,\n isIdentifiedPersonCompany,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { formatPercent, isDefined, isObjectEmpty, sortCompareFn } from \"@utils/general\";\nimport { compareString } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport { TestContext, ValidationError } from \"yup\";\n\nimport { AppMode } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FastEntryInputSizes, FieldType, NavigationSource, ValidatorType } from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport NumberType from \"../../../types/Number\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getSingleAccountFieldDef } from \"../../accountAssignment/AccountAssignment.utils\";\nimport {\n CASH_BASIS_ACCOUNTING_GROUP_ID,\n getCBAItemCategory,\n getDefaultPercetageFromImpactCode\n} from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { getCompanyUseVatReducedDeduction } from \"../../companies/Company.utils\";\nimport {\n isIssued,\n isNotSavedDocument,\n isReceived,\n shouldFieldBeVisibleForIdentifiedPerson,\n VAT_ASSIGNMENT_GROUP_ID\n} from \"../../documents/Document.utils\";\nimport { TFieldDefinition, TFieldsDefinition } from \"../../PageUtils\";\n\n// Limit in CZK for simplified tax documents. NumberTheirs is mandatory for documents between VatPayers.\nexport const SimplifiedTaxDocumentLimit = 10000;\n\ninterface IGetVatRowFieldsArgs {\n prefix?: string;\n isDocumentItem?: boolean;\n addNonTaxAccount?: boolean;\n isVatRule?: boolean;\n}\n\n// todo how to check correct format with TLocalContext\nexport const SAVED_VATS_PATH = \"##SavedVats##\";\nexport const ITEMS_VAT_DEDUCTION_PATH = \"##ItemsVatDeduction##\";\nexport const VAT_REVERSE_CHARGE_SELECT_PATH = \"##VatReverseChargeSelect##\";\nexport const VAT_CLASSIFICATION_PATH = `${DocumentEntity.VatClassificationSelection}/${DocumentVatClassificationSelectionEntity.VatClassification}`;\nexport const AUTOMATED_VAT_INCLUSION_MODE_PATH = `${VAT_CLASSIFICATION_PATH}/${VatClassificationEntity.IsInAutomatedVatInclusionMode}`;\nexport const DOCUMENT_REVERSE_CHARGE_PATH = `${VAT_CLASSIFICATION_PATH}/${VatClassificationEntity.VatReverseCharge}`;\n\nexport const BaseConditionsPlaceholderPath = BindingContext.localContext(\"BaseConditionsPlaceholder\");\n\n// only available VatControlStatementCode for automated VAT inclusion\nexport const AutomatedVatInclusionModeEUControlStatementCode = VatControlStatementSectionCode.A_2;\nexport const AutomatedVatInclusionModeNonEUControlStatementCode = VatControlStatementSectionCode.A_2;\nexport const NotIncludedInVatControlStatementCode = VatControlStatementSectionCode.CZ_2016_N;\n\nexport const VatReducedDeductionCodes = [\n VatDeductionTypeCode.Reduced,\n VatDeductionTypeCode.ReducedAndProportional\n];\n\nexport interface IVatClassificationExtendedEntity extends IVatClassificationEntity {\n [SAVED_VATS_PATH]?: string;\n [VAT_REVERSE_CHARGE_SELECT_PATH]?: string;\n [ITEMS_VAT_DEDUCTION_PATH]?: string;\n}\n\nexport const VatSelectionFields = [\n VatClassificationEntity.VatReverseCharge, VatClassificationEntity.VatStatementSection, VatClassificationEntity.VatControlStatementSection,\n /* DEV-15519 VatClassificationEntity.VatOss,*/ VatClassificationEntity.VatVies, VatClassificationEntity.IsInAutomatedVatInclusionMode, VAT_REVERSE_CHARGE_SELECT_PATH,\n VatClassificationEntity.VatDeductionType, VatClassificationEntity.VatProportionalDeduction, DocumentVatClassificationEntity.NonTaxAccount\n];\n\nexport function isReducedDeduction(code: TValue): boolean {\n return VatReducedDeductionCodes.includes(code as VatDeductionTypeCode);\n}\n\nexport const invalidateSavedVats = (storage: FormStorage, collectionName = \"Items\"): void => {\n const vatBc = storage.data.bindingContext.navigate(SAVED_VATS_PATH);\n const bcs = [vatBc];\n\n for (const item of storage.data.entity[collectionName] || []) {\n const itemBc = storage.data.bindingContext.navigate(`${collectionName}(${item.Id})/${SAVED_VATS_PATH}`);\n bcs.push(itemBc);\n }\n\n invalidateItems(bcs, storage);\n};\n\nexport const getNonTaxAccountFilter = (): string => `${FlattenAccountEntity.TaxApplicabilityCode} eq '${TaxApplicabilityCode.NotTaxApplicable}' AND ${FlattenAccountEntity.CategoryCode} eq '${AccountCategoryCode.IncomeStatement}' AND ${FlattenAccountEntity.TypeCode} eq '${AccountTypeCode.Expense}'`;\n\ntype TDocumentAmountProp =\n DocumentItemEntity.Amount\n | DocumentItemEntity.AmountVat\n | DocumentItemEntity.AmountNet\n | DocumentItemEntity.TransactionAmount\n | DocumentItemEntity.TransactionAmountVat\n | DocumentItemEntity.TransactionAmountNet;\ntype TBaseDocumentEntityWithItems = IDocumentEntity & { Items?: IRegularDocumentItemEntity[] };\n\nfunction getDocumentItemsSummaryAmount(entity: T, prop: TDocumentAmountProp = DocumentItemEntity.TransactionAmountNet, itemsProp: keyof T = \"Items\"): number {\n let sum = 0;\n const Items = entity[itemsProp] as unknown as IRegularDocumentItemEntity[];\n const useTransactionCurrency = prop.includes(\"Transaction\");\n const sumProp = (!useTransactionCurrency ? `Transaction${prop}` : prop) as keyof IRegularDocumentItemEntity;\n const rate = entity.ExchangeRatePerUnit ?? 1;\n\n Items?.forEach((item) => {\n const itemAmount = item[sumProp] as number;\n if (NumberType.isValid(itemAmount)) {\n sum += itemAmount;\n }\n });\n return useTransactionCurrency ? sum : sum * rate;\n}\n\nconst VatControlStatementRulesWithoutMandatoryNumberTheirs = [VatControlStatementSectionCode.CZ_2016_N, VatControlStatementSectionCode.B_3];\nconst VatControlStatementRulesWithMandatoryNumberTheirs = [VatControlStatementSectionCode.B_2];\nconst DefaultVatRuleIds: TSelectItemId[] = [-1, -2, -4];\n\nexport function isDefaultVatRule(item: ISelectItem): boolean {\n return DefaultVatRuleIds.includes(item?.id);\n}\n\n/**\n * Finds default vatRule from items. If businessPartnerDefault is set, it is used as a default value (if available in items).\n * @param items\n * @param businessPartnerDefault\n */\nexport function getDefaultVatRuleFromItems(items: ISelectItem[], businessPartnerDefault: IVatClassificationEntity): ISelectItem {\n let res: ISelectItem = null;\n if (businessPartnerDefault) {\n res = items?.find(item => item.id === businessPartnerDefault.Id);\n }\n return res ?? items?.find(item => isDefaultVatRule(item));\n}\n\nexport function hasNumberTheirsAndVatIdConditions(args: IGetValueArgs): boolean {\n const { storage } = args;\n const entity = storage.getEntity();\n\n const isVatPayer = [VatStatusCode.VATRegistered, VatStatusCode.IdentifiedPerson].includes(entity.BusinessPartner?.VatStatusCode as VatStatusCode);\n const isVatConfigured = (entity.VatClassificationSelection?.Selection?.Code && entity.VatClassificationSelection?.Selection?.Code !== SelectionCode.None);\n const { VatControlStatementSectionCode: vatControlStatementSectionCode } = entity.VatClassificationSelection?.VatClassification ?? {};\n const isVatControlStatementMandatoryException = VatControlStatementSectionCode && VatControlStatementRulesWithoutMandatoryNumberTheirs.includes(vatControlStatementSectionCode as VatControlStatementSectionCode);\n const isVatControlStatementMandatory = VatControlStatementSectionCode && VatControlStatementRulesWithMandatoryNumberTheirs.includes(vatControlStatementSectionCode as VatControlStatementSectionCode);\n const amount = getDocumentItemsSummaryAmount(entity, DocumentItemEntity.Amount);\n\n return (isVatControlStatementMandatory || Math.abs(amount) >= SimplifiedTaxDocumentLimit) && isVatPayer && isVatConfigured && !isVatControlStatementMandatoryException;\n}\n\nexport const isNumberTheirsAndVatIdMandatory = ifAll(hasNumberTheirsAndVatIdConditions, isEeaRule);\n\nexport const getVatRowFields = (args?: IGetVatRowFieldsArgs): IFieldDef[] => {\n return [].concat(...getVatGroupRowsDef(args));\n};\n\nexport function getVatGroupRowsDef(args?: IGetVatRowFieldsArgs): (IFieldDef[])[] {\n const rows: (IFieldDef[])[] = [];\n const prefix = args?.prefix ?? \"\";\n\n const _addRow = (...args: IFieldDef[]) => {\n const defs = args.filter(item => !!item);\n if (defs.length) {\n rows.push(defs);\n }\n };\n\n if (!args?.isDocumentItem) {\n _addRow(\n { id: `${prefix}IsInAutomatedVatInclusionMode` },\n { id: `${prefix}VatReverseCharge` }\n );\n _addRow({ id: args?.isDocumentItem ? `${prefix}${VAT_REVERSE_CHARGE_SELECT_PATH}` : VAT_REVERSE_CHARGE_SELECT_PATH });\n _addRow(\n { id: `${prefix}VatStatementSection` },\n args?.isVatRule && { id: BaseConditionsPlaceholderPath },\n !args?.isDocumentItem && { id: `${prefix}VatControlStatementSection` },\n // DEV-15519 { id: `${prefix}VatOss` },\n { id: `${prefix}VatVies` }\n );\n }\n\n _addRow(!args?.isDocumentItem && { id: `${prefix}VatDeductionType` },\n { id: `${prefix}VatProportionalDeduction` },\n args?.addNonTaxAccount && { id: `${prefix}NonTaxAccount` }\n );\n\n return rows;\n}\n\n/**\n * Corrects selection code -> values from savedPath select can be rule ids. In this case it should be\n * converted to \"SelectionCode.Copy\"\n * @param val\n */\nexport function correctSelectionCode(val: unknown): SelectionCode {\n if (val && !SelectionCode[val as SelectionCode]) {\n return SelectionCode.Copy;\n }\n return val as SelectionCode;\n}\n\nfunction getSavedVatsCode(args: IGetValueArgs): SelectionCode {\n // Items bindingContext for lineItems, otherwise data.bindingContext for saved vats on document level or\n // when used on VatClassifications form\n const { collectionBindingContext } = args.bindingContext?.splitByCollectionPath() ?? {};\n const rootBc = collectionBindingContext ?? args.storage.data.bindingContext;\n\n const savedVats = rootBc.navigate(SAVED_VATS_PATH);\n const val = args.storage.getValue(savedVats);\n return correctSelectionCode(val);\n}\n\nfunction hasVatClassification(args: IGetValueArgs): boolean {\n const code = getSavedVatsCode(args);\n return code && code !== SelectionCode.None && code !== SelectionCode.Default;\n}\n\n/**\n * Only for documentFormView -> for internal documents, we show all possibilities\n * @param storage\n */\nfunction isInternalDocument({ storage }: IGetValueArgs): boolean {\n const entity = storage.data.entity;\n return entity?.DocumentTypeCode === DocumentTypeCode.InternalDocument;\n}\n\n/**\n * Receivable flag for document or Vat entity\n * @param args\n */\nfunction isReceivedType({ storage, item, data }: IGetValueArgs): boolean {\n const entity = item?.additionalData ?? data ?? storage.data.entity;\n if (entity.DocumentTypeCode) {\n return isReceived(entity.DocumentTypeCode);\n }\n return entity.PayableReceivableTypeCode === PayableReceivableTypeCode.Payable;\n}\n\n/**\n * Issued flag for document or Vat entity\n * @param args\n */\nfunction isIssuedType({ storage, item }: IGetValueArgs): boolean {\n const entity = item?.additionalData ?? storage.data.entity;\n if (entity.DocumentTypeCode) {\n return isIssued(entity.DocumentTypeCode);\n }\n return entity.PayableReceivableTypeCode === PayableReceivableTypeCode.Receivable;\n}\n\nfunction getCountry({ storage, data }: IGetValueArgs): ICountryEntity {\n const entity = data ?? storage.data.entity;\n return entity.BusinessPartner?.Country ?? entity.Country ?? {\n Code: CountryCode.CzechRepublic,\n IsEuMember: true,\n IsEEA: true\n };\n}\n\nexport function isAgendaDomesticRule(args: IGetValueArgs): boolean {\n const entity = args.data ?? args.storage.data.entity;\n if (args.storage?.data?.bindingContext.getEntityType().getName() === EntityTypeName.VatClassification) {\n return (entity as IVatClassificationEntity).CountryClassificationCode === CountryClassificationCode.Domestic;\n }\n return getCountry(args)?.Code === CountryCode.CzechRepublic;\n}\n\nexport function isEeaRule(args: IGetValueArgs): boolean {\n const { entity, bindingContext } = args.storage.data;\n if (bindingContext.getEntityType().getName() === EntityTypeName.VatClassification) {\n return (entity as IVatClassificationEntity).CountryClassificationCode === CountryClassificationCode.EuropeanUnion;\n }\n return getCountry(args)?.IsEEA !== false;\n}\n\n// countries outside EEA region\nexport function isThirdWorldsRule(args: IGetValueArgs): boolean {\n return !isEeaRule(args);\n}\n\nexport const isEuRuleExceptAgendaDomestic = ifAll(isEeaRule, not(isAgendaDomesticRule));\n\nexport function isVatRegisteredEntity({ storage }: IGetValueArgs): boolean {\n const { entity, bindingContext } = storage.data;\n if (bindingContext.getEntityType().getName() === EntityTypeName.VatClassification) {\n return !!(entity as IVatClassificationEntity).IsVatRegistered;\n }\n return [VatStatusCode.VATRegistered, VatStatusCode.IdentifiedPerson].includes(entity.BusinessPartner?.VatStatusCode);\n}\n\nfunction isUnknownOrVatRegisteredEntity({ storage }: IGetValueArgs): boolean {\n const { entity, bindingContext } = storage.data;\n if (bindingContext.getEntityType().getName() === EntityTypeName.VatClassification) {\n return !!(entity as IVatClassificationEntity).IsVatRegistered;\n }\n return VatStatusCode.NotVATRegistered !== entity.BusinessPartner?.VatStatusCode;\n}\n\nfunction isIdentifiedPersonCallback({ storage }: IGetValueArgs): boolean {\n return isIdentifiedPersonCompany(storage.context);\n}\n\nexport function isCba({ context, storage }: IGetValueArgs): boolean {\n return isCashBasisAccountingCompany(context ?? storage?.context);\n}\n\nexport function isAssetAcquisition({ context, storage }: IGetValueArgs): boolean {\n const entity: IDocumentEntity = storage.data.entity;\n return entity.CbaCategory?.IsAssetAcquisition === true;\n}\n\nexport function isProportionalDeduction(code: TValue): boolean {\n return [VatDeductionTypeCode.Proportional, VatDeductionTypeCode.ReducedAndProportional].includes(code as VatDeductionTypeCode);\n}\n\nexport function hasVatProportionalDeduction({ storage, bindingContext }: IGetValueArgs): boolean {\n const { bindingContext: dataBindingContext } = storage.data;\n const isVatRuleForm = dataBindingContext.getEntityType().getName() === EntityTypeName.VatClassification;\n const rootBc = isVatRuleForm ? dataBindingContext : bindingContext.getParent();\n const bc = rootBc.navigate(VatClassificationEntity.VatDeductionType);\n const code = storage.getValue(bc, { useDirectValue: false });\n return isProportionalDeduction(code);\n}\n\nexport function hasReverseCharge(args: IGetValueArgs): boolean {\n const { storage } = args;\n const { bindingContext } = storage.data;\n const isVatRuleForm = bindingContext.getEntityType().getName() === EntityTypeName.VatClassification;\n const rootBc = isVatRuleForm ? bindingContext : bindingContext.navigate(VAT_CLASSIFICATION_PATH);\n const bc = rootBc.navigate(VatClassificationEntity.VatReverseCharge);\n const _isVisible = isReverseChargeVisible(args);\n const value = storage.getValue(bc, { useDirectValue: false });\n return _isVisible && value && value !== VatReverseChargeCode.Ne;\n}\n\nexport function isInAutomatedVatInclusionMode(args: IGetValueArgs): boolean {\n const { storage } = args;\n const { bindingContext } = storage.data;\n const isVatClassification = bindingContext.getEntityType().getName() === EntityTypeName.VatClassification;\n const path = isVatClassification ? VatClassificationEntity.IsInAutomatedVatInclusionMode : AUTOMATED_VAT_INCLUSION_MODE_PATH;\n const fieldBc = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(fieldBc);\n const _isVisible = isVisible({ storage, bindingContext: fieldBc, info });\n return _isVisible && storage.getValue(fieldBc);\n}\n\nexport function isDocumentReverseCharged(args: IGetValueArgs): boolean {\n const { storage } = args;\n const bindingContext = storage.data.bindingContext.navigate(DOCUMENT_REVERSE_CHARGE_PATH);\n const info = storage.getInfo(bindingContext);\n const _isVisible = isVisible({ storage, bindingContext, info });\n const reverseCharge = storage.getValue(bindingContext, { useDirectValue: false });\n return _isVisible && reverseCharge && reverseCharge !== VatReverseChargeCode.Ne;\n}\n\nfunction hasVatRule(args: IGetValueArgs): boolean {\n const code = getSavedVatsCode(args);\n return code !== SelectionCode.None;\n}\n\nexport const getAdditionalSavedVatsItems = (addDefault: boolean, addNone = true, addOwn = true): ISelectItem[] => {\n const additionalItems: ISelectItem[] = [];\n if (addNone) {\n additionalItems.push({\n id: SelectionCode.None,\n label: i18next.t(\"Document:Vat.None\"),\n groupId: \"Default\",\n additionalData: { SelectionCode: SelectionCode.None }\n });\n }\n if (addOwn) {\n additionalItems.push({\n id: SelectionCode.Own,\n label: i18next.t(\"Document:AccountAssignment.Own\"),\n groupId: \"Default\",\n additionalData: { SelectionCode: SelectionCode.Own }\n });\n }\n\n if (addDefault) {\n additionalItems.unshift({\n id: SelectionCode.Default,\n label: i18next.t(\"Document:AccountAssignment.Default\"),\n groupId: \"Default\",\n additionalData: { SelectionCode: SelectionCode.Default }\n });\n }\n\n return additionalItems;\n};\n\nconst isReverseChargeSelectVisible = ifAll(isVatRegisteredEntity, isAgendaDomesticRule, ifAny(isIssuedType, isReceivedType));\nconst isReverseChargeVisible = ifAny(isReverseChargeSelectVisible, ifAll(isIssuedType, isVatRegisteredEntity, isEeaRule));\n\nconst statementSectionRowProps = [\n VatStatementSectionEntity.StandardVatRateRow,\n VatStatementSectionEntity.ReducedVatRateRow,\n VatStatementSectionEntity.AdditionalStandardVatRateRow,\n VatStatementSectionEntity.AdditionalReducedVatRateRow\n];\n\nfunction getUniqValuesJoined(propNames: (keyof T)[], entity: T): string {\n return propNames.reduce((result, propName) => {\n const current = entity?.[propName];\n if (isDefined(current) && !result.includes(current)) {\n result.push(current);\n }\n return result;\n }, []).join(\", \");\n}\n\nfunction vatReverseChangeCodeFormatter(value: TValue): string {\n return value ? i18next.t(\"Vats:Form.VatReverseChangeCodeDescription\", { code: value }) : \"\";\n}\n\nfunction _getDefPropAsInt(entity: T, props: (keyof T)[]) {\n const definedProp = props.find(prop => isDefined(entity[prop]));\n return definedProp ? parseInt(entity[definedProp].toString()) : 0;\n}\n\nfunction getAffectedFieldsByType(type: PayableReceivableTypeCode, isLineItem: boolean): IAffectedField[] {\n const affectedFields: IAffectedField[] = [];\n if (!isLineItem) {\n if (type !== PayableReceivableTypeCode.InternalDocument) {\n affectedFields.push({ id: \"BusinessPartner/TaxNumber\" });\n }\n if (type === PayableReceivableTypeCode.Payable) {\n affectedFields.push({ id: \"NumberTheirs\" });\n }\n }\n return affectedFields;\n}\n\nconst isVatRegisteredCompanyForDateFn = (type: PayableReceivableTypeCode) => {\n return (args: IGetValueArgs) => {\n if (args.context.getAppMode() === AppMode.OrganizationSettings) {\n // VatRules configuration is not related to any company, so we behave as it is always VAT payer\n return true;\n }\n if (type === PayableReceivableTypeCode.InternalDocument) {\n // what should be the behavior on internal document?\n return false;\n }\n\n const datePath = type === PayableReceivableTypeCode.Payable ? DocumentDraftEntity.DateVatDeduction : DocumentDraftEntity.DateTaxableSupply;\n\n return isVatRegisteredCompany(args.context, args.storage.data.entity[datePath]) === true;\n };\n};\n\n/**\n * Validates item in context of valid combination of VatDeductionType and CBA Category settings.\n * Expects LineItem's BindingContext in args\n * @param args\n * @constructor\n */\nfunction proportionalDeductionForCBAValidator(args: IGetValueArgs, testContext: TestContext): boolean | ValidationError {\n const { bindingContext, storage } = args;\n if (isCba(args)) {\n // cash basis account\n const proportionalDeductionBc = bindingContext\n .navigate(DocumentItemEntity.VatClassificationSelection)\n .navigate(DocumentVatClassificationSelectionEntity.VatClassification)\n .navigate(DocumentVatClassificationEntity.VatProportionalDeduction);\n if (hasVatProportionalDeduction({ ...args, bindingContext: proportionalDeductionBc })) {\n const settings = getCBAItemCategory(storage as FormStorage, bindingContext);\n const proportionalDeduction = storage.getValue(proportionalDeductionBc);\n // AssetAcquisition has zero impact on tax, but can apply up to 100 percent of VAT\n const maxPercentage = settings.IsAssetAcquisition ? 100 : settings.TaxPercentage;\n if (proportionalDeduction > maxPercentage) {\n return new ValidationError(i18next.t(\"Vats:Form.CantUseHigherDeductionThanCbaTaxPercentageError\", { max: settings.TaxPercentage }), false, testContext.path);\n }\n }\n }\n return true;\n}\n\nexport const hasBaseConditionsFilled = (args: IGetValueArgs): boolean => {\n const entity = args.storage.data.entity as IVatClassificationEntity;\n return isDefined(entity.IsVatRegistered) && isDefined(entity.CountryClassificationCode) && isDefined(entity.PayableReceivableTypeCode);\n};\n\nconst identifiedPersonReceivedDocAllowedVatStatementSections = [\n VatStatementSectionCode.CZ_2011_3_4_IP,\n VatStatementSectionCode.CZ_2011_5_6_IP\n];\n\nexport function getVatFieldsDef(isDocument: boolean, type: PayableReceivableTypeCode = null, prefix = \"\"): TFieldsDefinition {\n\n const _isInternalDocument = type === PayableReceivableTypeCode.InternalDocument;\n const isItem = prefix.startsWith(\"Items/\");\n // default flags according to definition type (document form vs. Vat rules form)\n const isRequired = isDocument ? (isItem ? false : hasVatClassification) : true;\n const isVisible = isDocument ? hasVatRule : hasBaseConditionsFilled;\n\n if (_isInternalDocument) {\n // isRequired = false;\n // there is no Vat Section on Internal documents\n return {};\n }\n const removeFromCustomization = {\n useForCustomization: false\n };\n\n const affectedFields = isDocument ? getAffectedFieldsByType(type, isItem) : [];\n\n const def: TFieldsDefinition = {\n [`${prefix}VatReverseCharge`]: {\n customizationData: {\n ...(isItem || _isInternalDocument ? removeFromCustomization : {}),\n isRequired: !_isInternalDocument\n },\n label: i18next.t(\"Vats:Form.VatReverseCharge\"),\n type: FieldType.Switch,\n affectedFields: [{ id: VAT_REVERSE_CHARGE_SELECT_PATH }, { id: `${prefix}VatStatementSection` }],\n defaultValue: (args) => {\n const withReverseCharge = isVatRegisteredEntity(args) && isEuRuleExceptAgendaDomestic(args);\n return withReverseCharge ? VatReverseChargeCode.Ano : VatReverseChargeCode.Ne;\n },\n formatter: (val: TValue) => {\n return val && val !== VatReverseChargeCode.Ne;\n },\n isVisible: _isInternalDocument ? false : ifAll(isVisible, isReverseChargeVisible),\n isDisabled: (args: IGetValueArgs) => {\n return isIdentifiedPersonCompany(args.context);\n }\n },\n [isItem ? `${prefix}${VAT_REVERSE_CHARGE_SELECT_PATH}` : VAT_REVERSE_CHARGE_SELECT_PATH]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Vats:Form.VatReverseChargeCode\"),\n fieldSettings: {\n displayName: \"Name\",\n entitySet: \"VatReverseCharges\",\n transformFetchedItems: (items: ISelectItem[]) =>\n // sorts items by Code, but numerically\n items.sort((a, b) => sortCompareFn(parseInt(a.id as string), parseInt(b.id as string))),\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n formatter: (val: TValue, args?: IFormatOptions): string => {\n const isSet = val && ![VatReverseChargeCode.Ano, VatReverseChargeCode.Ne].includes(val as VatReverseChargeCode);\n return isSet ? args.item?.Name ?? args.entity.VatReverseCharge?.Name : \"\";\n },\n width: BasicInputSizes.XL,\n filter: {\n select: `not(Code in ('${VatReverseChargeCode.Ano}','${VatReverseChargeCode.Ne}'))`\n },\n isRequired,\n isVisible: _isInternalDocument ? false : ifAll(isVisible, isReverseChargeSelectVisible, hasReverseCharge),\n columns: [\n { id: \"Name\" },\n {\n id: \"Code\",\n formatter: vatReverseChangeCodeFormatter\n }\n ],\n customizationData: (isItem || _isInternalDocument ? removeFromCustomization : undefined)\n },\n [`${prefix}VatStatementSection`]: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Description\",\n transformFetchedItems: (items) =>\n items.sort((a, b) => {\n return sortCompareFn(_getDefPropAsInt(a.additionalData, statementSectionRowProps), _getDefPropAsInt(b.additionalData, statementSectionRowProps));\n }),\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n if (isInternalDocument(args)) {\n return items;\n }\n const _isReceived = isReceivedType(args);\n const _isReverseCharged = hasReverseCharge(args);\n const _isInAutomatedVatInclusionMode = isInAutomatedVatInclusionMode(args);\n return (items || []).filter(item => {\n if (isIdentifiedPersonCompany(args.context)) {\n // for identified person, let every item pass and filter them out in the second round of filtering\n return true;\n }\n\n const code = item.additionalData?.VatStatementSectionCategoryCode;\n if (!_isReceived) {\n return code === VatStatementSectionCategoryCode.DocumentIssued;\n }\n if (_isReverseCharged) {\n return code === VatStatementSectionCategoryCode.DocumentReceivedInReverseChargeMode;\n }\n if (_isInAutomatedVatInclusionMode) {\n return code === VatStatementSectionCategoryCode.DocumentReceivedInAutomatedVATInclusionMode;\n }\n\n return code === VatStatementSectionCategoryCode.DocumentReceived;\n }).filter(item => {\n if (isIdentifiedPersonCompany(args.context)) {\n const allowedItems: VatStatementSectionCode[] = [];\n\n if (isEuRuleExceptAgendaDomestic(args)) {\n if (isReceivedType(args)) {\n allowedItems.push(\n ...identifiedPersonReceivedDocAllowedVatStatementSections\n );\n } else {\n allowedItems.push(\n VatStatementSectionCode.CZ_2011_21\n );\n }\n\n } else if (isThirdWorldsRule(args)) {\n allowedItems.push(VatStatementSectionCode.CZ_2011_12_13_IP);\n }\n\n return allowedItems.includes(item.id as VatStatementSectionCode);\n }\n\n return true;\n });\n },\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n defaultValue: (args: IGetValueArgs) => {\n if (isIdentifiedPersonCompany(args.context)) {\n if (isIssuedType(args) && isEuRuleExceptAgendaDomestic(args)) {\n return VatStatementSectionCode.CZ_2011_21;\n } else if (isReceivedType(args) && isThirdWorldsRule(args)) {\n return VatStatementSectionCode.CZ_2011_12_13_IP;\n }\n }\n\n return null;\n },\n isDisabled: (args: IGetValueArgs) => {\n if (isIdentifiedPersonCompany(args.context)) {\n if (isIssuedType(args) && isEuRuleExceptAgendaDomestic(args)) {\n return true;\n }\n\n if (isReceivedType(args) && isThirdWorldsRule(args)) {\n return true;\n }\n }\n\n return false;\n },\n columns: [\n {\n id: \"Description\",\n additionalProperties: [{ id: \"VatStatementSectionCategoryCode\" }]\n }, {\n id: BindingContext.localContext(\"Row\"),\n additionalProperties: statementSectionRowProps.map((id) => ({ id })),\n formatter: (val: TValue, args?: IFormatOptions): string => {\n const rowNums = getUniqValuesJoined(statementSectionRowProps, args?.item);\n return i18next.t(\"Vats:Form.VatStatementSectionDescription\", { rowNums }).toString();\n }\n }\n ],\n width: BasicInputSizes.XL,\n isRequired,\n isVisible: isVisible,\n customizationData: (isItem ? removeFromCustomization : isDocument ? {} : { dependents: [BaseConditionsPlaceholderPath] })\n },\n [`${prefix}VatControlStatementSection`]: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n transformFetchedItems: (items) =>\n items\n .sort((a, b) => compareString(a.additionalData.Name, b.additionalData.Name)),\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n if (isInternalDocument(args)) {\n return items;\n }\n const _automatedVatInclusionMode = isInAutomatedVatInclusionMode(args);\n const _allowedIds: TSelectItemId[] = [];\n if (_automatedVatInclusionMode) {\n _allowedIds.push(isEeaRule(args) ? AutomatedVatInclusionModeEUControlStatementCode : AutomatedVatInclusionModeNonEUControlStatementCode);\n }\n if (isIdentifiedPersonCompany(args.context)) {\n _allowedIds.push(NotIncludedInVatControlStatementCode);\n }\n return (items || []).filter(item => {\n // in automatedVatinclusionMode, only AR items are visible regardless document type\n if (_allowedIds.length) {\n // Automated Vat Inclusion Mode has only one possible item\n return _allowedIds.includes(item.id);\n }\n // types has to match\n return isReceivedType({ item }) === isReceivedType(args) || isIssuedType({ item }) === isIssuedType(args);\n });\n },\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n defaultValue: (args: IGetValueArgs) => {\n if (isIdentifiedPersonCompany(args.context)) {\n // no control statement for identified person\n return NotIncludedInVatControlStatementCode;\n }\n\n if (isInAutomatedVatInclusionMode(args)) {\n return isEeaRule(args) ? AutomatedVatInclusionModeEUControlStatementCode\n : AutomatedVatInclusionModeNonEUControlStatementCode;\n }\n return null;\n },\n columns: [\n {\n id: \"Name\",\n formatter: (val: TValue, args?: IFormatOptions): string => getControlSectionName(args.item?.Name)\n },\n {\n id: \"Description\",\n additionalProperties: [{ id: \"PayableReceivableTypeCode\" }]\n }\n ],\n affectedFields,\n isDisabled: (args: IGetValueArgs) => {\n if (isInAutomatedVatInclusionMode(args)) {\n return true;\n }\n\n if (isIdentifiedPersonCompany(args.context)) {\n if (isIssuedType(args) && isEuRuleExceptAgendaDomestic(args)) {\n return true;\n }\n\n if (isReceivedType(args)) {\n return true;\n }\n }\n\n return false;\n },\n isRequired: isItem ? false : isRequired,\n isVisible: isVisible,\n customizationData: (isItem ? removeFromCustomization : {})\n },\n [`${prefix}VatDeductionType`]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.M,\n label: i18next.t(\"Vats:Form.DeductionAdjustment\"),\n fieldSettings: {\n displayName: \"Name\",\n noRecordText: i18next.t(\"Vats:Form.WithoutDeductionAdjustment\"),\n transformFetchedItems: (items: ISelectItem[], args: IGetValueArgs) => {\n if (!items) {\n return [];\n }\n const hasReducedDeduction = getCompanyUseVatReducedDeduction(args.storage.context);\n if (!hasReducedDeduction) {\n items = items.filter(item => !isReducedDeduction(item.id));\n }\n return items;\n }\n },\n isVisible: isItem || _isInternalDocument ? false : ifAll(isVisible, isReceivedType, isUnknownOrVatRegisteredEntity),\n clearIfInvisible: false,\n customizationData: (isItem || _isInternalDocument ? removeFromCustomization : {}),\n affectedFields: [{ id: `${prefix}VatProportionalDeduction` }]\n },\n [`${prefix}VatProportionalDeduction`]: {\n type: FieldType.NumberInput,\n width: BasicInputSizes.M,\n label: i18next.t(\"Vats:Form.VatProportionalDeduction\"),\n isRequired: hasVatProportionalDeduction,\n defaultValue: (args: IGetValueArgs) => {\n if (isCba(args)) {\n const { CbaCategory } = args.storage.data.entity as IDocumentEntity;\n if (CbaCategory?.TaxImpact?.Code === CbaCategoryTaxImpactCode.Partial) {\n return CbaCategory?.TaxPercentage ?? 100;\n }\n }\n return null;\n },\n fieldSettings: {\n unit: \"%\",\n showSteppers: true,\n min: 0,\n max: 100\n },\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n max: 100\n }\n },\n isVisible: (_isInternalDocument) ? false : hasVatProportionalDeduction,\n customizationData: (isItem || _isInternalDocument ? removeFromCustomization : {})\n },\n // DEV-15519 [`${prefix}VatOss`]: {\n // isRequired,\n // type: FieldType.ComboBox,\n // fieldSettings: {\n // displayName: \"Name\"\n // },\n // isVisible: _isInternalDocument ? false : ifAll(isVisible, isIssuedType, not(isVatRegistered), isEuRuleExceptAgendaDomestic),\n // customizationData: (isItem || _isInternalDocument ? removeFromCustomization : {})\n // },\n [`${prefix}VatVies`]: {\n isRequired,\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n columns: [\n { id: \"Name\" },\n { id: \"Description\" }\n ],\n isVisible: _isInternalDocument ? isVisible : ifAll(isVisible, isIssuedType, isEuRuleExceptAgendaDomestic, isVatRegisteredEntity),\n customizationData: (isItem ? removeFromCustomization : {}),\n defaultValue: (args: IGetValueArgs) => {\n if (isIdentifiedPersonCompany(args.context) && isIssuedType(args) && isEuRuleExceptAgendaDomestic(args)) {\n return VatViesCode.Kód3;\n }\n\n return null;\n },\n isDisabled: (args: IGetValueArgs) => {\n return isIdentifiedPersonCompany(args.context) && isIssuedType(args) && isEuRuleExceptAgendaDomestic(args);\n }\n },\n [`${prefix}IsInAutomatedVatInclusionMode`]: {\n isRequired,\n customizationData: {\n ...(isItem || _isInternalDocument ? removeFromCustomization : {}),\n isRequired: !_isInternalDocument\n },\n type: FieldType.Switch,\n defaultValue: true,\n isVisible: _isInternalDocument ? false : ifAll(isVisible, isReceivedType, not(isAgendaDomesticRule), isVatRegisteredEntity),\n affectedFields: [{ id: `${prefix}VatStatementSection` }],\n isDisabled: (args: IGetValueArgs) => {\n return isIdentifiedPersonCompany(args.context);\n }\n }\n };\n\n if (isDocument && !isItem) {\n def[`${prefix}VatDeductionType`].affectedFields.push({ id: createPath(\"Items\", ITEMS_VAT_DEDUCTION_PATH) });\n if (!def[`${prefix}VatProportionalDeduction`].affectedFields) {\n def[`${prefix}VatProportionalDeduction`].affectedFields = [];\n }\n def[`${prefix}VatProportionalDeduction`].affectedFields.push({ id: createPath(\"Items\", ITEMS_VAT_DEDUCTION_PATH) });\n }\n\n const addNonTaxAccount = isDocument && type === PayableReceivableTypeCode.Payable;\n if (addNonTaxAccount) {\n def[`${prefix}VatDeductionType`].affectedFields.push({ id: `${prefix}NonTaxAccount` });\n def[`${prefix}NonTaxAccount`] = {\n ...getSingleAccountFieldDef(),\n filter: {\n select: getNonTaxAccountFilter()\n },\n label: i18next.t(\"Vats:Form.NonTaxAccountNumber\"),\n isRequired: hasVatProportionalDeduction,\n isVisible: ifAll(hasVatProportionalDeduction, isAccountAssignmentCompanyValue, isReceivedType),\n customizationData: (isItem || _isInternalDocument ? removeFromCustomization : {})\n };\n }\n\n return def;\n}\n\nfunction vatClassificationComparisonFunction(origEntity: TRecordAny, entity: TRecordAny, bc: BindingContext): boolean {\n const parentBc = bc.getParent();\n const vc = getBoundValue({\n bindingContext: parentBc.navigate(\"VatClassificationSelection\"),\n data: entity,\n dataBindingContext: bc.getRootParent()\n }) as IDocumentVatClassificationSelectionEntity;\n const ovc = getBoundValue({\n bindingContext: parentBc.navigate(\"VatClassificationSelection\"),\n data: origEntity,\n dataBindingContext: bc.getRootParent()\n }) as IDocumentVatClassificationSelectionEntity;\n\n if (vc?.SelectionCode === SelectionCode.None && ovc?.SelectionCode === SelectionCode.None) {\n return true;\n }\n\n return vc?.SelectionCode === ovc?.SelectionCode &&\n vc?.VatClassification?.VatControlStatementSectionCode === ovc?.VatClassification?.VatControlStatementSectionCode &&\n vc?.VatClassification?.VatDeductionTypeCode === ovc?.VatClassification?.VatDeductionTypeCode &&\n vc?.VatClassification?.VatProportionalDeduction === ovc?.VatClassification?.VatProportionalDeduction &&\n vc?.VatClassification?.NonTaxAccount?.Id === ovc?.VatClassification?.NonTaxAccount?.Id &&\n vc?.VatClassification?.VatReverseChargeCode === ovc?.VatClassification?.VatReverseChargeCode &&\n // DEV-15519 vc?.VatClassification?.VatOssCode === ovc?.VatClassification?.VatOssCode &&\n vc?.VatClassification?.VatStatementSectionCode === ovc?.VatClassification?.VatStatementSectionCode &&\n vc?.VatClassification?.VatViesCode === ovc?.VatClassification?.VatViesCode;\n}\n\n// definition for ITEMS_VAT_DEDUCTION_PATH field\nexport function getItemsDeductionDef(type: PayableReceivableTypeCode): TFieldDefinition {\n const affectedFields = getAffectedFieldsByType(type, true);\n\n return {\n type: FieldType.ComboBox,\n width: FastEntryInputSizes.M,\n label: i18next.t(\"Vats:Form.VatDeductionAdjustment\"),\n isVisible: (args: IGetValueArgs) => {\n if (!isReceivedType(args)) {\n return false;\n }\n\n return shouldFieldBeVisibleForIdentifiedPerson(args);\n },\n // set default value, so that the field can be removed in variant configuration\n // real default value is handled dynamically in onAfterLoad\n defaultValue: null,\n comparisonFunction: vatClassificationComparisonFunction,\n backendPath: \"VatClassificationSelection\",\n affectedFields,\n fieldSettings: {\n isEnum: true,\n additionalItems: getAdditionalSavedVatsItems(true, false, false),\n entitySet: EntitySetName.VatDeductionTypes,\n displayName: \"Name\",\n noRecordText: i18next.t(\"Vats:Form.WithoutDeductionAdjustment\"),\n preventNoRecordDefaultStyle: true,\n transformFetchedItems: (items: ISelectItem[], args: IGetValueArgs) => {\n if (!items) {\n return [];\n }\n const hasReducedDeduction = getCompanyUseVatReducedDeduction(args.storage.context);\n if (!hasReducedDeduction) {\n items = items.filter(item => !isReducedDeduction(item.id));\n }\n return items\n .map(item => ({\n ...item,\n additionalData: { ...item.additionalData, SelectionCode: SelectionCode.Own }\n }));\n },\n getCustomTabularData(val: TValue, args: IFormatOptions): string[] {\n if (isProportionalDeduction(val)) {\n const { storage, bindingContext } = args;\n const bc = bindingContext.getParent().navigate(\"VatClassificationSelection/VatClassification/VatProportionalDeduction\");\n const percentage = storage.getValue(bc);\n\n return [`${percentage}%`];\n }\n return null;\n }\n },\n additionalProperties: [\n { id: \"VatClassificationSelection/VatClassification/IsInAutomatedVatInclusionMode\" },\n { id: \"VatClassificationSelection/VatClassification/VatControlStatementSection/Code\" },\n // DEV-15519 { id: \"VatClassificationSelection/VatClassification/VatOss/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatDeductionType/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatProportionalDeduction\" },\n { id: \"VatClassificationSelection/VatClassification/NonTaxAccount/Number\" },\n { id: \"VatClassificationSelection/VatClassification/NonTaxAccount/Name\" },\n { id: \"VatClassificationSelection/VatClassification/VatReverseCharge/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatStatementSection/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatVies/Code\" },\n { id: \"VatClassificationSelection/VatClassification/Name\" },\n { id: \"VatClassificationSelection/VatClassification/ChartOfAccounts\" }\n ],\n formatter: (val: TValue, args: IFormatOptions): string => {\n const { item, storage } = args;\n const noRecord = i18next.t(\"Vats:Form.WithoutDeductionAdjustment\");\n const defaultSelection = i18next.t(\"Document:AccountAssignment.Default\");\n if (val === SelectionCode.Default) {\n const vatClassPath = createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification);\n const defaultDeduction = storage.getValueByPath(createPath(vatClassPath, DocumentVatClassificationEntity.VatDeductionType));\n if (!defaultDeduction?.Name) {\n return defaultSelection;\n }\n let defaultLabel = defaultDeduction.Name;\n if (isProportionalDeduction(defaultDeduction?.Code)) {\n const percentage = storage.getValueByPath(createPath(vatClassPath, DocumentVatClassificationEntity.VatProportionalDeduction));\n if (NumberType.isValid(percentage)) {\n defaultLabel += ` | ${percentage}%`;\n }\n }\n return `(${defaultSelection}) ${defaultLabel}`;\n }\n return item?.label ?? val ? getEnumDisplayValue(EntityTypeName.VatDeductionType, val as VatDeductionTypeCode) : noRecord;\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs, testContext): boolean | ValidationError => {\n const { storage, bindingContext } = args;\n const entity = storage.data.entity;\n\n if (isReducedDeduction(value) && !getCompanyUseVatReducedDeduction(storage.context)) {\n return new ValidationError(i18next.t(\"Vats:Form.CantUseReducedDeductionError\"), false, testContext.path);\n }\n\n const accountBc = bindingContext.getParent().navigate(\"VatClassificationSelection/VatClassification/NonTaxAccount\");\n if (isProportionalDeduction(value) && !storage.getValue(accountBc, { useDirectValue: false })) {\n return new ValidationError(i18next.t(\"Vats:Form.InvalidAccountValue\"), false, testContext.path);\n }\n\n // in this case field is not even available on form\n if (entity.DocumentTypeCode === DocumentTypeCode.ProformaInvoiceReceived && !entity.IsTaxDocument) {\n return true;\n }\n\n // we don't allow combination of custom setting on item level and \"None\" setting on default rule,\n // because there would be missing setting for VatStatementSection and VatControlStatementSection\n if (isVatRegisteredCompanyForDateFn(type) && storage.getValueByPath(SAVED_VATS_PATH) === SelectionCode.None && value !== SelectionCode.Default) {\n return new ValidationError(i18next.t(\"Vats:Form.CantUseCustomRuleWithNoRuleOnDocumentLevelError\"), false, testContext.path);\n }\n\n // otherwise it's valid\n return true;\n }\n }\n },\n columns: [{\n id: \"Name\",\n additionalProperties: []\n }]\n };\n}\n\n// definition for SAVED_VATS_PATH field\nexport function getGeneralSavedVats(type: PayableReceivableTypeCode, isLineItem?: boolean, addNonTaxAccount = false): TFieldDefinition {\n const affectedFields = getAffectedFieldsByType(type, isLineItem);\n\n const fieldDef: TFieldDefinition = {\n type: FieldType.ComboBox,\n width: isLineItem ? FastEntryInputSizes.M : BasicInputSizes.XL,\n label: i18next.t(\"Document:Form.VatDefault\"),\n isRequired: (args: IGetValueArgs): boolean => {\n if (isLineItem || type === PayableReceivableTypeCode.InternalDocument) {\n return false;\n }\n\n if (isIdentifiedPersonCompany(args.storage.context)) {\n // for identified person, this field should be required only when visible\n // => visibility is driven by its group visibility\n const vatGroupDefinition = (args.storage as FormStorage).data.definition.groups.find(def => def.id === VAT_ASSIGNMENT_GROUP_ID);\n const { tooltip, ...info } = vatGroupDefinition;\n\n return isVisible({ info, storage: args.storage, context: args.storage.context });\n }\n\n return isVatRegisteredCompanyForDateFn(type)(args);\n },\n customizationData: {\n isRequired: isInVatPayerVariantContext\n },\n // set default value, so that the field can be removed in variant configuration\n // real default value is handled dynamically in onAfterLoad\n defaultValue: null,\n comparisonFunction: vatClassificationComparisonFunction,\n backendPath: \"VatClassificationSelection\",\n affectedFields: [\n ...affectedFields,\n { id: `Items/${ITEMS_VAT_DEDUCTION_PATH}`, revalidate: true }\n ],\n fieldSettings: {\n additionalItems: getAdditionalSavedVatsItems(isLineItem),\n entitySet: \"VatClassifications\",\n displayName: \"Name\",\n transformFetchedItems: (items, args: IGetValueArgs) => {\n if (isIdentifiedPersonCompany(args.storage.context)) {\n // identified person only use special Own cases\n // or these two rules for received documents\n const isReceived = isReceivedType(args);\n if (isReceived) {\n return items.filter(item => {\n const data = item.additionalData as IVatClassificationEntity;\n return identifiedPersonReceivedDocAllowedVatStatementSections.includes(data?.VatStatementSectionCode as VatStatementSectionCode);\n });\n } else {\n return [];\n }\n }\n\n return (items || []).map(item => ({\n ...item,\n additionalData: { ...item.additionalData, SelectionCode: SelectionCode.Copy }\n }));\n },\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n if (isInternalDocument(args)) {\n return items;\n }\n\n const entity = args.storage.data.entity as IDocumentEntity;\n\n return (items || []).filter(item => isVatItemMatchingEntity(entity.BusinessPartner.VatStatus, entity.BusinessPartner.Country, item));\n }\n },\n additionalProperties: [\n { id: \"VatClassificationSelection/VatClassification/IsInAutomatedVatInclusionMode\" },\n { id: \"VatClassificationSelection/VatClassification/VatControlStatementSection/Code\" },\n // DEV-15519 { id: \"VatClassificationSelection/VatClassification/VatOss/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatDeductionType/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatProportionalDeduction\" },\n { id: \"VatClassificationSelection/VatClassification/NonTaxAccount/Number\" },\n { id: \"VatClassificationSelection/VatClassification/NonTaxAccount/Name\" },\n { id: \"VatClassificationSelection/VatClassification/VatReverseCharge/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatStatementSection/Code\" },\n { id: \"VatClassificationSelection/VatClassification/VatVies/Code\" },\n { id: \"VatClassificationSelection/VatClassification/Name\" },\n { id: \"VatClassificationSelection/VatClassification/ChartOfAccounts\" }\n ],\n collapsedRows: getVatGroupRowsDef({\n prefix: \"VatClassificationSelection/VatClassification/\",\n addNonTaxAccount\n }),\n columns: [{\n id: \"Name\",\n additionalProperties: [\n { id: \"IsInAutomatedVatInclusionMode\" }, { id: \"CountryClassificationCode\" }, { id: \"IsVatRegistered\" },\n { id: \"VatReverseCharge\" }, { id: \"VatStatementSection\" }, { id: \"VatControlStatementSection\" },\n /* DEV-15519 { id: \"VatOss\" },*/ { id: \"VatVies\" }, { id: \"VatStatementSection\" },\n { id: \"VatDeductionType\" }, { id: \"VatProportionalDeduction\" }, { id: \"NonTaxAccountNumber\" }, { id: \"NonTaxAccountName\" }\n ]\n }]\n };\n\n if (type !== PayableReceivableTypeCode.InternalDocument) {\n fieldDef.filter = {\n select: `PayableReceivableTypeCode eq '${type}'`\n };\n }\n\n if (!isLineItem) {\n fieldDef.fieldSettings.noRecordText = i18next.t(\"Common:Select.NoRecord\");\n } else {\n // DEV-11162 we don't want to see vat rules on line items, just \"own\" or \"default\"\n fieldDef.fieldSettings.items = [];\n fieldDef.fieldSettings.dontDisplayNoDataFound = true;\n }\n\n return fieldDef;\n}\n\ninterface IGetTableDefOptions {\n isIssued?: boolean;\n isReceived?: boolean;\n isVatRule?: boolean;\n}\n\nexport function getVatTableColumnsDef(opts: IGetTableDefOptions): TFieldsDefinition {\n const { isIssued, isReceived, isVatRule } = opts;\n if (!isIssued && !isReceived && !isVatRule) {\n // Internal document -> no vat related column...\n return {};\n }\n const BaseEntity = isVatRule ? VatClassificationEntity : DocumentVatClassificationEntity;\n const _getPath = (path: string): string =>\n isVatRule ? path : createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification, path);\n return {\n [_getPath(BaseEntity.VatReverseCharge)]: {\n formatter: (val: TValue, { entity }: IFormatOptions) => {\n const { VatReverseCharge } = entity;\n if (!VatReverseCharge?.Code || [VatReverseChargeCode.Ne, VatReverseChargeCode.Ano].includes(VatReverseCharge?.Code as VatReverseChargeCode)) {\n return \"\";\n }\n return VatReverseCharge.Name;\n }\n },\n ...withDisplayName(_getPath(BaseEntity.VatStatementSection), \"Description\"),\n ...withDisplayName(_getPath(BaseEntity.VatControlStatementSection), \"Description\"),\n // DEV-15519 ...withDisplayName(_getPath(BaseEntity.VatOss), \"Name\"),\n ...(!isReceived ? withDisplayName(_getPath(BaseEntity.VatVies), \"Description\") : {}),\n // further fields are visible on Received or Internal documents, VatRules\n ...(!isIssued ? {\n [_getPath(BaseEntity.VatProportionalDeduction)]: {\n formatter: (val: TValue) => formatPercent(val)\n },\n [_getPath(BaseEntity.IsInAutomatedVatInclusionMode)]: {\n formatter: (val: TValue, { entity, storage }: IFormatOptions) => {\n const isInternalDocument = !isIssued && !isReceived && !isVatRule;\n const args: IGetValueArgs = {\n data: entity,\n storage\n };\n // todo: change the field to NULLABLE on BE and then just format the value null/true/false and don't check visibility from additional data\n if (isInternalDocument || !(isReceived || isReceivedType(args)) || isAgendaDomesticRule(args)) {\n return \"\";\n }\n return formatBooleanValue(!!val);\n },\n additionalProperties: [isVatRule ? { id: `/${_getPath(VatClassificationEntity.PayableReceivableType)}` } : { id: \"/BusinessPartner/Country/IsEEA\" }]\n }\n } : {})\n };\n}\n\nfunction getControlSectionName(name: string): string {\n if (name === \"-\") {\n return name;\n }\n return i18next.t(\"Vats:Form.VatControlStatementSectionDescription\", { sections: name }).toString();\n}\n\nexport function getVatTableFilterDefs(opts: IGetTableDefOptions): Record {\n const { isReceived, isIssued, isVatRule } = opts;\n if (!isReceived && !isIssued && !isVatRule) {\n // Internal document -> no vat related column...\n return {};\n }\n const BaseEntity = isVatRule ? VatClassificationEntity : DocumentVatClassificationEntity;\n const _getPath = (path: string): string =>\n isVatRule ? path : createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification, path);\n return {\n ...withDisplayName(_getPath(BaseEntity.VatReverseCharge), \"Name\"),\n ...withDisplayName(_getPath(BaseEntity.VatStatementSection), {\n fieldSettings: {\n displayName: \"Name\"\n },\n additionalProperties: [{ id: \"Description\" }],\n formatter: (val: TValue, opts: IFormatOptions): string => {\n const { entity } = opts;\n const section = entity?.Description ? entity : entity.VatClassificationSelection?.VatClassification?.VatStatementSection;\n if (section?.Description || section?.Name) {\n return [section.Name, section.Description].filter(Boolean).join(\" - \");\n }\n return opts.placeholder;\n }\n }),\n ...withDisplayName(_getPath(BaseEntity.VatControlStatementSection), {\n fieldSettings: {\n displayName: \"Name\"\n },\n additionalProperties: [{ id: \"Description\" }],\n formatter: (val: TValue, opts: IFormatOptions): string => {\n const { entity } = opts;\n const section = entity?.Name ? entity : entity?.VatClassificationSelection?.VatClassification?.VatControlStatementSection;\n if (section?.Description || section?.Name) {\n return [section.Name, section.Description].filter(Boolean).join(\" - \");\n }\n return opts.placeholder;\n }\n }),\n // DEV-15519 ...withDisplayName(_getPath(BaseEntity.VatOss), \"Name\"),\n ...(!isReceived ? withDisplayName(_getPath(BaseEntity.VatVies), {\n fieldSettings: {\n displayName: \"Name\"\n },\n additionalProperties: [{ id: \"Description\" }],\n formatter: (val: TValue, opts: IFormatOptions): string => {\n const { entity } = opts;\n const section = entity?.Name ? entity : entity?.VatClassificationSelection?.VatClassification?.VatVies;\n if (section?.Description || section?.Name) {\n return [section.Name, section.Description].filter(Boolean).join(\" - \");\n }\n return opts.placeholder;\n }\n }) : {}),\n // further fields are visible on Received or Internal documents, VatRules\n ...(!isIssued ? {\n [_getPath(BaseEntity.VatProportionalDeduction)]: {\n formatter: filterPercentFormatter\n },\n [_getPath(BaseEntity.IsInAutomatedVatInclusionMode)]: {}\n } : {})\n };\n}\n\nexport function getClassificationCodeFromCountry(country: ICountryEntity): CountryClassificationCode {\n switch (true) {\n // keep at the beginning because of priority\n // todo: match with agenda country instead\n case !country || country?.Code === CountryCode.CzechRepublic:\n return CountryClassificationCode.Domestic;\n case country?.IsEEA:\n return CountryClassificationCode.EuropeanUnion;\n default:\n return CountryClassificationCode.OutsideTheEuropeanUnion;\n }\n}\n\n/**\n * Filters vats with same flags as selected businessPartner\n */\nexport function isVatItemMatchingEntity(vatStatus: IVatStatusEntity, country: ICountryEntity, item: ISelectItem): boolean {\n if (!item?.additionalData) {\n return false;\n }\n\n // if VatStatus is not set, we assume BP is VatPayer (e.g. receipt without BusinessPartner)\n if (vatStatus && [VatStatusCode.VATRegistered, VatStatusCode.IdentifiedPerson].includes(vatStatus?.Code as VatStatusCode) !== item.additionalData.IsVatRegistered) {\n return false;\n }\n\n const docCode = getClassificationCodeFromCountry(country);\n const code = (item.additionalData as IVatClassificationEntity).CountryClassificationCode;\n\n return code === docCode;\n}\n\nfunction findMatchingItem(storage: FormStorage, vats: ISelectItem[], vat: IEntity): ISelectItem {\n const fields = [\n \"IsInAutomatedVatInclusionMode\", \"VatControlStatementSection/Code\", /* DEV-15519 \"VatOss/Code\",*/\n \"VatDeductionType/Code\", \"VatProportionalDeduction\", \"NonTaxAccount\",\n \"VatReverseCharge/Code\", \"VatStatementSection/Code\", \"VatVies/Code\", \"Name\"\n ];\n const baseBc = storage.data.bindingContext.navigate(\"VatClassificationSelection/VatClassification\");\n // get only visible values, so we ignore hidden fields with default value, etc...\n const visibleFields = fields.filter(id => {\n const bindingContext = baseBc.navigate(id);\n const info = storage.getInfo(bindingContext);\n return isVisible({ storage, bindingContext, info });\n });\n return vats.find((vatItem: ISelectItem) => {\n const vat1 = vatItem.additionalData as IVatClassificationEntity;\n for (const path of visibleFields) {\n if (path === \"NonTaxAccount\") {\n // special check for nonTaxAccount\n if (vat.NonTaxAccount?.Number !== vat1.NonTaxAccountNumber || vat.NonTaxAccount?.Name !== vat1.NonTaxAccountName) {\n return false;\n }\n } else {\n let defaultValue;\n if (path === \"VatReverseCharge/Code\") {\n defaultValue = VatReverseChargeCode.Ne;\n }\n const val = getNestedValue(path, vat) ?? defaultValue;\n const val1 = getNestedValue(path, vat1) ?? defaultValue;\n if (val !== val1) {\n return false;\n }\n }\n }\n\n return true;\n });\n}\n\nexport const loadSavedVats = (storage: FormStorage): Promise => {\n const info = storage.getInfo(storage.data.bindingContext.navigate(SAVED_VATS_PATH));\n if (info) {\n return fetchItemsByInfo(storage, info);\n }\n\n return null;\n};\n\nexport const correctVatIds = async (storage: FormStorage): Promise => {\n let vats = await loadSavedVats(storage);\n\n if (vats) {\n const entity = storage.data.entity as IDocumentEntity;\n\n vats = vats.filter(item => isVatItemMatchingEntity(entity.BusinessPartner.VatStatus, entity.BusinessPartner.Country, item));\n correctVatId(storage, vats, storage.data.entity);\n\n for (const item of (storage.data.entity.Items || [])) {\n // correctVatId(storage, vats, item);\n correctVatDeduction(item);\n }\n }\n};\n\nexport function correctVatId(storage: FormStorage, vats: ISelectItem[], data: IEntity, isInit = true): void {\n const code = data.VatClassificationSelection?.Selection?.Code ?? data.VatClassificationSelection?.SelectionCode;\n\n const vatCodeValue = data.VatClassificationSelection?.VatClassification?.VatReverseCharge?.Code;\n if (vatCodeValue && isInit) {\n setNestedValue(vatCodeValue, VAT_REVERSE_CHARGE_SELECT_PATH, data);\n }\n\n if ([SelectionCode.Own, SelectionCode.Default, SelectionCode.None].includes(code)) {\n data[SAVED_VATS_PATH] = code;\n }\n\n if ([SelectionCode.Copy, SelectionCode.Own].includes(code)) {\n const entity = data.VatClassificationSelection?.VatClassification;\n const matchingSelectItem = findMatchingItem(storage, vats, entity);\n if (matchingSelectItem) {\n data[SAVED_VATS_PATH] = matchingSelectItem.id;\n data.VatClassificationSelection.SelectionCode = SelectionCode.Copy;\n } else {\n data[SAVED_VATS_PATH] = SelectionCode.Own;\n data.VatClassificationSelection.SelectionCode = SelectionCode.Own;\n }\n }\n}\n\nexport function correctVatDeduction(data: IEntity): void {\n const code = data.VatClassificationSelection?.Selection?.Code ?? data.VatClassificationSelection?.SelectionCode;\n const VatClassification = (data.VatClassificationSelection?.VatClassification ?? {}) as IDocumentVatClassificationEntity;\n\n data[ITEMS_VAT_DEDUCTION_PATH] = code === SelectionCode.Own ? VatClassification.VatDeductionType?.Code\n : SelectionCode.Default;\n}\n\nexport function isVatRuleSame(r1: IDocumentVatClassificationSelectionEntity, r2: IDocumentVatClassificationSelectionEntity): boolean {\n const { VatClassification: v1 } = r1 ?? {},\n { VatClassification: v2 } = r2 ?? {};\n // todo: Name + Note ??\n if (v1 && v2) {\n return v1.IsInAutomatedVatInclusionMode === v2.IsInAutomatedVatInclusionMode &&\n v1.VatControlStatementSectionCode === v2.VatControlStatementSectionCode &&\n v1.VatDeductionTypeCode === v2.VatDeductionTypeCode &&\n v1.VatOssCode === v2.VatOssCode &&\n v1.VatProportionalDeduction === v2.VatProportionalDeduction &&\n v1.NonTaxAccount?.Number === v2.NonTaxAccount?.Number;\n }\n return (r1?.Selection?.Code ?? r1?.SelectionCode) === (r2?.Selection?.Code ?? r2?.SelectionCode);\n}\n\nexport const getSelectionCodeDependentField = (navigateFrom = NavigationSource.Parent): IDependentFieldDef => {\n return {\n from: { id: \"SelectionCode\" },\n to: { id: \"VatClassificationSelection/Selection/Code\" },\n navigateFrom\n };\n};\n\nexport function getVatDependentFields(navigateFrom = NavigationSource.Parent): IDependentFieldDef[] {\n const prefix = \"VatClassificationSelection/VatClassification/\";\n\n return [\n getSelectionCodeDependentField(navigateFrom),\n {\n from: { id: \"VatReverseCharge\" },\n to: { id: `${prefix}VatReverseCharge` },\n navigateFrom\n }, {\n from: { id: \"VatReverseCharge/Code\" },\n to: { id: VAT_REVERSE_CHARGE_SELECT_PATH },\n navigateFrom\n }, {\n from: { id: \"VatStatementSection/Code\" },\n to: { id: `${prefix}VatStatementSection` },\n navigateFrom\n }, {\n from: { id: \"VatControlStatementSection/Code\" },\n to: { id: `${prefix}VatControlStatementSection` },\n navigateFrom\n }, {\n from: { id: \"VatDeductionTypeCode\" },\n to: { id: `${prefix}VatDeductionType` },\n navigateFrom\n }, {\n from: { id: \"VatProportionalDeduction\" },\n to: { id: `${prefix}VatProportionalDeduction` },\n navigateFrom\n }, {\n // DEV-15519 from: { id: \"VatOss\" },\n // to: { id: `${prefix}VatOss` },\n // navigateFrom\n // }, {\n from: { id: \"VatVies\" },\n to: { id: `${prefix}VatVies` },\n navigateFrom\n }, {\n from: { id: \"VatStatementSection\" },\n to: { id: `${prefix}VatStatementSection` },\n navigateFrom\n }, {\n from: { id: \"IsInAutomatedVatInclusionMode\" },\n to: { id: `${prefix}IsInAutomatedVatInclusionMode` },\n navigateFrom\n }, {\n from: { id: \"Name\" },\n to: { id: `${prefix}Name` },\n navigateFrom\n }];\n}\n\nexport interface IVatConfigOptions {\n isInAutomatedVatInclusionMode: boolean;\n isInAutomatedVatInclusionModeVisible: boolean;\n isReverseChargeVisible: boolean;\n defaultVatRate: number;\n isReverseCharged: boolean;\n}\n\nexport function getVatConfigOptions(storage: FormStorage, documentTypeCode: DocumentTypeCode): IVatConfigOptions {\n const defaultVatRate = documentTypeCode !== DocumentTypeCode.InternalDocument &&\n storage.getDefaultValue(storage.data.bindingContext.navigate(\"Items/Vat\"))?.Rate;\n\n const isInAutomatedVatInclusionModeVisible = isVisibleByPath(storage, AUTOMATED_VAT_INCLUSION_MODE_PATH);\n const isReverseChargeVisible = isVisibleByPath(storage, DOCUMENT_REVERSE_CHARGE_PATH);\n const isReverseCharged = isDocumentReverseCharged({ storage });\n\n return {\n isInAutomatedVatInclusionMode: isInAutomatedVatInclusionModeVisible && isInAutomatedVatInclusionMode({ storage }),\n isInAutomatedVatInclusionModeVisible,\n defaultVatRate,\n isReverseChargeVisible,\n isReverseCharged\n };\n}\n\nfunction processVatClassificationFields(storage: FormStorage, rootBc: BindingContext, callback: (bc: BindingContext) => void) {\n const fields = getVatRowFields({\n prefix: `${VAT_CLASSIFICATION_PATH}/`,\n addNonTaxAccount: true\n });\n\n for (const field of fields) {\n const bc = rootBc.navigate(field.id);\n\n callback(bc);\n }\n}\n\nexport function clearVatClassificationFields(storage: FormStorage, rootBc: BindingContext = storage.data.bindingContext, initiateValues?: boolean): void {\n processVatClassificationFields(storage, rootBc, (bc: BindingContext) => {\n storage.clearValue(bc);\n storage.addActiveField(bc);\n if (initiateValues) {\n storage.setDefaultValueByPath(bc.getNavigationPath());\n }\n });\n}\n\nexport function setVatClassificationFieldsDefaultValues(storage: FormStorage, rootBc: BindingContext = storage.data.bindingContext): void {\n processVatClassificationFields(storage, rootBc, (bc: BindingContext) => {\n storage.setDefaultValueByPath(bc.getNavigationPath());\n });\n}\n\ninterface IHandleCbaCategoryChange {\n storage: FormStorage;\n e: ISmartFieldChange;\n documentTypeCode: DocumentTypeCode;\n}\n\n// when Vat master field has changed, corrects Vat Rule field value\n// - preselects system rule if empty and if the entity is new\n// - clear value if selected rule is not in the list anymore\nexport const handleCbaCategoryChange = ({ storage, e, documentTypeCode }: IHandleCbaCategoryChange): void => {\n const dataBc = storage.data.bindingContext;\n\n if (e.bindingContext.getParent().getPath() === DocumentEntity.CbaCategory) {\n const path = e.bindingContext.getPath();\n\n const taxPercentagePath = createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxPercentage);\n const isAssetAcquisitionPath = createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.IsAssetAcquisition);\n const taxImpactPath = createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxImpact);\n\n const isCategoryChange = path === DocumentCbaCategoryEntity.Category;\n const cbaCategory: Partial = isCategoryChange ? e.additionalData : null;\n if (isCategoryChange) {\n if (!isObjectEmpty(cbaCategory)) {\n storage.setValueByPath(taxPercentagePath, cbaCategory.TaxPercentage);\n storage.setValueByPath(taxImpactPath, cbaCategory.TaxImpact);\n storage.setValueByPath(isAssetAcquisitionPath, cbaCategory.IsAssetAcquisition);\n }\n }\n\n const isTaxImpactChange = e.bindingContext.getNavigationPath() === createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxImpact);\n\n if (isTaxImpactChange) {\n storage.setValueByPath(taxPercentagePath, getDefaultPercetageFromImpactCode(e.value as CbaCategoryTaxImpactCode));\n storage.setValueByPath(isAssetAcquisitionPath, false);\n }\n\n storage.addActiveGroupByKey(\"Items\"); // to refresh category name and percentage in current value on item cba category selection\n storage.addActiveGroupByKey(CASH_BASIS_ACCOUNTING_GROUP_ID);\n const isVatModified = storage.isDirty(dataBc.navigate(DocumentEntity.VatClassificationSelection))\n || storage.isDirty(dataBc.navigate(SAVED_VATS_PATH));\n\n if (dataBc.isNew() && !isVatModified && documentTypeCode !== DocumentTypeCode.InternalDocument) {\n // default VatRule for new entities\n const taxImpactCode = storage.getValueByPath(taxImpactPath)?.Code;\n const vatAssignmentGroupId = getVatAssignmentGroupId(storage);\n const isReceivedDocumentFromNonVatPayer = isReceived(documentTypeCode) && storage.data.entity?.BusinessPartner?.VatStatusCode === VatStatusCode.NotVATRegistered;\n\n if (!isReceivedDocumentFromNonVatPayer && (taxImpactCode === CbaCategoryTaxImpactCode.Partial || path === DocumentCbaCategoryEntity.TaxPercentage)) {\n correctVatSelectionFields({\n storage,\n documentTypeCode\n })\n .then(() => {\n // partial -> percentage is changed -> synchronize with the VatRule\n const deductionTypePath = createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification, DocumentVatClassificationEntity.VatDeductionType);\n\n // change default Vat Rule according to Evidence category\n storage.setValueByPath(deductionTypePath, VatDeductionTypeCode.Proportional, true);\n storage.setDefaultValueByPath(\"VatClassificationSelection/VatClassification/VatProportionalDeduction\");\n correctDataAfterVatChildrenChangeOnDocument(storage);\n storage.refreshGroupByKey(vatAssignmentGroupId);\n });\n } else if (taxImpactCode === CbaCategoryTaxImpactCode.Nontax && !storage.getValueByPath(isAssetAcquisitionPath)) {\n const savedVatsBc = storage.data.bindingContext.navigate(SAVED_VATS_PATH);\n\n // update selectionCode to own if children changes\n storage.setValue(savedVatsBc, SelectionCode.None);\n storage.clearValueByPath(createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification));\n } else {\n // back to \"Tuzemske plneni\"\n correctVatSelectionFields({\n storage,\n documentTypeCode\n });\n }\n\n storage.addActiveGroupByKey(vatAssignmentGroupId);\n }\n }\n};\n\nexport const getVatAssignmentGroupId = memoizeOne((storage: FormStorage) => {\n const { data } = storage;\n const groups = storage.getLocalStorageVariant() ?? data.variants?.currentVariant?.formGroups ?? data.definition.groups;\n const vatsGroup = groups?.find(group =>\n !!group.rows?.find(row => !!row.find(itemDef => itemDef.id === SAVED_VATS_PATH)));\n return vatsGroup?.id ?? VAT_ASSIGNMENT_GROUP_ID;\n}, (storage: FormStorage) => [storage.data.variants?.currentVariant?.formGroups, storage.getLocalStorageVariant()]);\n\nexport const correctDataAfterVatChildrenChangeOnDocument = (storage: FormStorage): void => {\n const { bindingContext } = storage.data;\n const savedVatsBc = bindingContext.navigate(SAVED_VATS_PATH);\n\n // update selectionCode to own if children changes\n storage.setValue(savedVatsBc, SelectionCode.Own);\n\n // We copy name and compare it to match with exact rule (two rules might have same values),\n // however if user changes any of the children manually, we break the relation and there will be always \"Own\"\n storage.clearValue(bindingContext.navigate(\"VatClassificationSelection/VatClassification/Name\"));\n storage.clearAdditionalFieldData(savedVatsBc);\n};\n\ninterface ICorrectVatSelectionFields {\n storage: FormStorage;\n documentTypeCode: DocumentTypeCode;\n forceDefaultValue?: boolean;\n}\n\nexport function getDefaultPropName(documentTypeCode: DocumentTypeCode): BusinessPartnerEntity.ReceivedDocumentDefault | BusinessPartnerEntity.IssuedDocumentDefault {\n return isReceived(documentTypeCode) ? BusinessPartnerEntity.ReceivedDocumentDefault : BusinessPartnerEntity.IssuedDocumentDefault;\n}\n\nexport function getDefaultVatRuleFromBP(documentBusinessPartner: IDocumentBusinessPartnerEntity, documentTypeCode: DocumentTypeCode): IVatClassificationEntity {\n return documentBusinessPartner.BusinessPartner?.[getDefaultPropName(documentTypeCode)]?.VatClassification;\n}\n\n// - clear ControlStatement and Statement select if their values are not present anymore\nexport const correctVatSelectionFields = async ({\n storage,\n documentTypeCode,\n forceDefaultValue\n }: ICorrectVatSelectionFields): Promise => {\n const { bindingContext, entity } = storage.data;\n const bc = bindingContext.navigate(SAVED_VATS_PATH);\n const isDisabled = isFieldDisabled(storage.getInfo(bc), storage, bc);\n const isDirty = storage.isDirty(bc);\n const isNotSaved = isNotSavedDocument(storage);\n const valueIsNotSet = !storage.getValue(bc, { useDirectValue: false });\n const shouldDefaultValue = (isNotSaved || valueIsNotSet || forceDefaultValue) && !isDisabled && !isDirty;\n\n const isReceivedDocumentFromNonVatPayer = isReceived(documentTypeCode) && storage.data.entity?.BusinessPartner?.VatStatusCode === VatStatusCode.NotVATRegistered;\n const BPDefaultVatRule = getDefaultVatRuleFromBP(entity.BusinessPartner, documentTypeCode);\n const shouldClearVatSelection = shouldDefaultValue && isObjectEmpty(BPDefaultVatRule) && isReceivedDocumentFromNonVatPayer;\n\n\n if (!isVisibleByPath(storage, SAVED_VATS_PATH)) {\n return;\n }\n\n const savedVatsInfo = storage.getInfo(storage.data.bindingContext.navigate(SAVED_VATS_PATH));\n const ownItem = savedVatsInfo.fieldSettings?.additionalItems?.find(item => item.id === SelectionCode.Own);\n const isIdentifiedPerson = isIdentifiedPersonCompany(storage.context);\n const isIssued = isIssuedType({ storage });\n\n if (ownItem) {\n ownItem.label = storage.t(`Document:AccountAssignment.${isIdentifiedPerson && isIssued ? \"IdentifiedPersonIssuedCase\" : \"Own\"}`);\n }\n\n if (!isVatRegisteredCompany(storage.context) && !storage.getCustomData().isCopy) {\n let savedVatValue: string;\n\n if (isIdentifiedPerson) {\n if (isIssued) {\n savedVatValue = isEuRuleExceptAgendaDomestic({\n storage,\n data: storage.data.entity,\n bindingContext: storage.data.bindingContext\n }) ? SelectionCode.Own : SelectionCode.None;\n } else {\n savedVatValue = null;\n }\n } else {\n // set empty as default value when vat is not supposed to be used\n savedVatValue = SelectionCode.None;\n }\n\n storage.setValue(bindingContext.navigate(SAVED_VATS_PATH), savedVatValue);\n\n if (isIdentifiedPerson) {\n setVatClassificationFieldsDefaultValues(storage);\n }\n\n return;\n }\n\n const _getValueAndItemsFromBc = async (bc: BindingContext): Promise<{\n value?: TValue;\n items?: ISelectItem[]\n }> => {\n const info = storage.getInfo(bc);\n if (!info) {\n return {};\n }\n const value = storage.getValue(bc, { useDirectValue: false });\n const items = await getRenderedItemsByInfo(storage, info, bc);\n return { value, items };\n };\n\n const _hasInvalidValue = (value: TValue, items: ISelectItem[]) => value && !items.find(item => item.id === value);\n\n const _clearValueIfInvalid = async (bc: BindingContext): Promise => {\n const { value, items } = await _getValueAndItemsFromBc(bc);\n if (_hasInvalidValue(value, items)) {\n storage.clearValue(bc);\n }\n };\n\n const _check = async (rootBc: BindingContext) => {\n const savedVatsBc = rootBc.navigate(SAVED_VATS_PATH);\n const { value, items } = await _getValueAndItemsFromBc(savedVatsBc);\n const hasInvalidValue = _hasInvalidValue(value, items);\n const defaultRule = getDefaultVatRuleFromItems(items, BPDefaultVatRule);\n if (shouldClearVatSelection) {\n storage.setValue(savedVatsBc, SelectionCode.None);\n clearVatClassificationFields(storage, rootBc, false);\n } else if (defaultRule && (shouldDefaultValue || hasInvalidValue)) {\n // preselect system rule\n storage.setValue(savedVatsBc, defaultRule.id);\n storage.processDependentField(getVatDependentFields(), defaultRule.additionalData, savedVatsBc);\n storage.refreshGroupByKey(getVatAssignmentGroupId(storage));\n } else if (hasInvalidValue) {\n storage.clearValue(savedVatsBc);\n clearVatClassificationFields(storage, rootBc, true);\n } else if (value === SelectionCode.Own) {\n const promises = [VatClassificationEntity.VatControlStatementSection, VatClassificationEntity.VatStatementSection]\n .map(path => _clearValueIfInvalid(rootBc.navigate(`${VAT_CLASSIFICATION_PATH}/${path}`)));\n await Promise.all(promises);\n }\n // force to filter items in itemFactory, so they are correctly displayed in select\n storage.addActiveField(savedVatsBc);\n };\n\n const allChecks = [_check(bindingContext)];\n\n for (const item of bindingContext.iterateNavigation(\"Items\", entity?.Items ?? [])) {\n allChecks.push(_check(item.bindingContext));\n }\n\n await Promise.all(allChecks);\n};\n","import styled from \"styled-components/macro\";\nimport { AnimationSize, MouseAnim } from \"../../../animations/Animations\";\n\n\nexport const EmptyBaseConditionsPlaceholder = styled.div`\n margin: 0 auto !important;\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const MouseAnimStyled = styled(MouseAnim)`\n width: ${AnimationSize.S}px;\n height: ${AnimationSize.S}px;\n`;","import { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { cloneDeep } from \"lodash\";\nimport {\n isInAutomatedVatInclusionMode,\n IVatClassificationExtendedEntity,\n VAT_REVERSE_CHARGE_SELECT_PATH\n} from \"./VatRules.utils\";\nimport { isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport { VatReverseChargeCode } from \"@odata/GeneratedEnums\";\nimport { VatClassificationEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ICachedFieldState } from \"@odata/Data.utils\";\nimport { NonTaxAccountPath } from \"./VatRulesDef\";\n\ninterface IProps extends IFormViewProps {}\n\nclass VatRulesFormView extends FormViewForExtend {\n static defaultProps = {\n title: \"FormTitle\"\n };\n\n onAfterLoad = async () => {\n\n this.entity[VAT_REVERSE_CHARGE_SELECT_PATH] = this.entity.VatReverseCharge?.Code;\n // local context for nonTaxAccount has to have some id so validation and select works properly, but it\n // should not be linked to existing accounts (eg. you have account with id 4, you change his name, but you still\n // want to display old name here until you chose again from select items)\n this.props.storage.setValueByPath(NonTaxAccountPath, BindingContext.NEW_ENTITY_ID_PROP);\n return super.onAfterLoad();\n };\n\n handleFieldStateChange(bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState) {\n super.handleFieldStateChange(bc, state, prevState);\n const path = bc.getPath();\n if (path === VatClassificationEntity.VatReverseCharge && !state.isVisible) {\n // clear reverse-charge value when field became invisible, so further calculations are correct\n this.props.storage.clearValueByPath(VatClassificationEntity.VatReverseCharge);\n }\n }\n\n handleChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath();\n\n // original value before handle change\n const wasVisible = isVisibleByPath(storage, VatClassificationEntity.IsInAutomatedVatInclusionMode);\n const wasInVatAutomatedInclusionMode = wasVisible && isInAutomatedVatInclusionMode({ storage });\n\n if (path === VAT_REVERSE_CHARGE_SELECT_PATH && e.triggerAdditionalTasks) {\n storage.setValueByPath(VatClassificationEntity.VatReverseCharge, e.value);\n }\n\n storage.handleChange(e);\n\n this.handleAccountChange(e);\n\n if (e.bindingContext.getPath() === VatClassificationEntity.VatReverseCharge) {\n storage.clearAndSetValueByPath(VatClassificationEntity.VatReverseCharge, e.value ? VatReverseChargeCode.Ano : VatReverseChargeCode.Ne);\n storage.clearAndSetValueByPath(VAT_REVERSE_CHARGE_SELECT_PATH, null);\n }\n\n if ((VatClassificationEntity.CountryClassification === path && e.triggerAdditionalTasks) || VatClassificationEntity.IsVatRegistered === path) {\n const reverseChargePath = VatClassificationEntity.VatReverseCharge;\n const rcBc = storage.data.bindingContext.navigate(reverseChargePath);\n\n if (!storage.isDirty(rcBc)) {\n storage.setDefaultValueByPath(reverseChargePath);\n }\n }\n\n if (([VatClassificationEntity.PayableReceivableType, VatClassificationEntity.CountryClassification].includes(path as VatClassificationEntity) && e.triggerAdditionalTasks) ||\n VatClassificationEntity.IsVatRegistered === path) {\n // These fields changes their values according to CountryClassification and document type -> clear their values if changed\n\n // Vat statement has no default value, so we clear it directly ...\n storage.clearValueByPath(VatClassificationEntity.VatStatementSection);\n // ... however there is default value for VatControlStatementSection\n storage.setDefaultValueByPath(VatClassificationEntity.VatControlStatementSection);\n }\n\n const isVisible = isVisibleByPath(storage, VatClassificationEntity.IsInAutomatedVatInclusionMode);\n if (!wasVisible && isVisible) {\n // set default value manually here as we need to trigger additional calculations according to it\n storage.setDefaultValueByPath(VatClassificationEntity.IsInAutomatedVatInclusionMode);\n }\n const isInVatAutomatedInclusionMode = isVisible && isInAutomatedVatInclusionMode({ storage });\n if (isInVatAutomatedInclusionMode !== wasInVatAutomatedInclusionMode) {\n storage.setDefaultValueByPath(VatClassificationEntity.VatControlStatementSection);\n }\n\n storage.refreshFields();\n };\n\n handleAccountChange = (e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n\n if (path !== NonTaxAccountPath) {\n return;\n }\n\n const cleanPath = BindingContext.cleanLocalContext(path);\n const { Name, Number } = e.additionalData ?? {};\n\n this.props.storage.setValueByPath(`${cleanPath}Name`, Name);\n this.props.storage.setValueByPath(`${cleanPath}Number`, Number);\n };\n\n onBeforeSave = (): IEntity => {\n const { storage } = this.props;\n\n const entity = cloneDeep(this.entity);\n\n if (!isVisibleByPath(storage, VatClassificationEntity.IsInAutomatedVatInclusionMode)) {\n entity.IsInAutomatedVatInclusionMode = false;\n }\n\n const isReverseChargeVisible = isVisibleByPath(storage, VatClassificationEntity.VatReverseCharge);\n if (isReverseChargeVisible && !entity.VatReverseChargeCode) {\n entity.VatReverseChargeCode = VatReverseChargeCode.Ne;\n } else if (!isReverseChargeVisible) {\n entity.VatReverseChargeCode = null;\n }\n\n return entity;\n };\n}\n\nexport default withPermissionContext(VatRulesFormView);\n","import { not } from \"@components/smart/FieldInfo\";\nimport { isSystemEntity, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n EntitySetName,\n EntityTypeName,\n PayableReceivableTypeEntity,\n VatClassificationEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PayableReceivableTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n getAccountComparisonFunction,\n getAccountFormatter\n} from \"@pages/accountAssignment/AccountAssignment.utils.shared\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { Trans } from \"react-i18next\";\n\nimport { BasicInputSizes, FieldType, Sort } from \"../../../enums\";\nimport { NoDataText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { flattenAccountsDef } from \"../../accountAssignment/AccountAssignmentDef\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { VatRuleTranslationFiles } from \"./VatRules.consts\";\nimport { EmptyBaseConditionsPlaceholder, MouseAnimStyled } from \"./VatRules.styles\";\nimport {\n BaseConditionsPlaceholderPath,\n getNonTaxAccountFilter,\n getVatFieldsDef,\n getVatGroupRowsDef,\n getVatRowFields,\n getVatTableColumnsDef,\n getVatTableFilterDefs,\n hasBaseConditionsFilled,\n hasVatProportionalDeduction\n} from \"./VatRules.utils\";\nimport VatRulesFormView from \"./VatRulesFormView\";\n\n\nexport const NonTaxAccountPath = BindingContext.localContext(\"NonTaxAccount\");\n\nconst IsVatRegisteredFormatter = (val: TValue) => {\n return i18next.t(`Vats:Form.${ val ? \"IsVat\" : \"IsVatNot\"}`).toString();\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n VatClassificationEntity.Name,\n VatClassificationEntity.PayableReceivableType,\n VatClassificationEntity.IsVatRegistered,\n VatClassificationEntity.CountryClassification\n ],\n filterDefinition: {\n Name: {},\n PayableReceivableType: {\n fieldSettings: {\n displayName: PayableReceivableTypeEntity.Name\n }\n },\n IsVatRegistered: {\n formatter: IsVatRegisteredFormatter\n },\n ...withDisplayName(VatClassificationEntity.CountryClassification),\n ...getVatTableFilterDefs({ isVatRule: true })\n },\n isValueHelp: true,\n allowCustomFilters: true\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.VatClassification}Table`,\n columns: [\n VatClassificationEntity.Name,\n VatClassificationEntity.PayableReceivableType,\n VatClassificationEntity.IsVatRegistered,\n VatClassificationEntity.CountryClassification\n ],\n columnDefinition: {\n Name: {},\n ...withDisplayName(VatClassificationEntity.PayableReceivableType, \"Name\"),\n IsVatRegistered: {\n formatter: IsVatRegisteredFormatter\n },\n ...withDisplayName(VatClassificationEntity.CountryClassification, \"Name\"),\n ...getVatTableColumnsDef({ isVatRule: true })\n },\n title: i18next.t(\"Vats:Title\"),\n initialSortBy: [{ id: \"Name\", sort: Sort.Asc }]\n };\n\n const affectedFields = [...getVatRowFields(), { id: BaseConditionsPlaceholderPath }];\n\n const form: IFormDef = {\n id: `${EntityTypeName.VatClassification}Form`,\n translationFiles: getDefinitions.translationFiles,\n formControl: VatRulesFormView,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Vats:NewRule\"), storage.data.entity?.Name),\n isReadOnly: isSystemEntity,\n additionalProperties: [\n { id: \"NonTaxAccountNumber\" },\n { id: \"NonTaxAccountName\" }\n ],\n fieldDefinition: {\n Name: {\n isRequired: true,\n width: BasicInputSizes.XL\n },\n PayableReceivableType: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n },\n filter: {\n select: `Code ne '${PayableReceivableTypeCode.InternalDocument}'`\n },\n affectedFields\n },\n IsVatRegistered: {\n type: FieldType.ComboBox,\n defaultValue: true,\n affectedFields,\n fieldSettings: {\n items: [{\n id: true,\n label: i18next.t(\"Vats:Form.IsVat\")\n }, {\n id: false,\n label: i18next.t(\"Vats:Form.IsVatNot\")\n }]\n }\n },\n CountryClassification: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n },\n affectedFields\n },\n ...getVatFieldsDef(false),\n [BaseConditionsPlaceholderPath]: {\n type: FieldType.Custom,\n // custom field that renders a placeholder in case base conditions are not filled at all,\n // and therefore we don't know which type of the rule it is\n // vatFields are not visible in this case, placeholder is visible instead\n isVisible: not(hasBaseConditionsFilled),\n render: () => {\n return (\n \n \n Zatím tu nic není,
    nejdříve zadej vstupní podmínky...\n
    \n
    \n \n
    );\n }\n },\n [NonTaxAccountPath]: {\n ...flattenAccountsDef,\n label: i18next.t(\"Vats:Form.NonTaxAccountNumber\"),\n isRequired: hasVatProportionalDeduction,\n isVisible: hasVatProportionalDeduction,\n comparisonFunction: getAccountComparisonFunction(\"NonTaxAccount\"),\n formatter: getAccountFormatter(\"NonTaxAccount\"),\n fieldSettings: {\n ...flattenAccountsDef.fieldSettings,\n },\n filter: {\n select: getNonTaxAccountFilter()\n }\n },\n },\n groups: [{\n id: \"general\",\n rows: [[{ id: VatClassificationEntity.Name }]]\n }, {\n id: \"Condition\",\n title: i18next.t(\"Vats:Form.Conditions\"),\n rows: [[{ id: VatClassificationEntity.PayableReceivableType }, { id: VatClassificationEntity.IsVatRegistered }, { id: VatClassificationEntity.CountryClassification }]]\n }, {\n id: \"Rule\",\n title: i18next.t(\"Vats:Form.Rule\"),\n rows: getVatGroupRowsDef({ isVatRule: true })\n }]\n };\n\n // Add local context path for NonTaxAccount to the def\n const ruleGroup = form.groups.find(g => g.id === \"Rule\");\n ruleGroup.rows[ruleGroup.rows.length - 1].push({ id: NonTaxAccountPath });\n form.fieldDefinition.VatDeductionType.affectedFields.push({ id: NonTaxAccountPath });\n\n return {\n entitySet: EntitySetName.VatClassifications,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = VatRuleTranslationFiles;\nsetDefByEntityType(EntityTypeName.VatClassification, getDefinitions);","import React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { ColoredText } from \"../../global.style\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport i18next from \"i18next\";\nimport { ITabData } from \"@components/tabs\";\nimport { AssetItemTypeCode, AssetStatusCode, FiscalYearStatusCode } from \"@odata/GeneratedEnums\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport { ASSET_API_URL } from \"../../constants\";\nimport { Status } from \"../../enums\";\nimport { IAlertProps } from \"@components/alert/Alert\";\nimport {\n AssetEntity,\n AssetItemEntity,\n DocumentItemEntity,\n EntitySetName,\n IAccountingDepreciationPolicyItemEntity,\n IAssetEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { Dayjs } from \"dayjs\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction } from \"../documents/Document.utils\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport { SECONDARY_FILTERS_ALL } from \"../../views/table/TableView.utils\";\nimport { ValidationError } from \"yup\";\nimport DateType, { getUtcDayjs } from \"../../types/Date\";\nimport { ODataError, parseResponse } from \"@odata/ODataParser\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { isDefined } from \"@utils/general\";\nimport { getSortedFYs } from \"../fiscalYear/FiscalYear.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isBatchResultOk, OData } from \"@odata/OData\";\nimport { cloneDeep } from \"lodash\";\nimport { setBoundValue, updateEntity } from \"@odata/Data.utils\";\n\nexport const getStatusColor = (StatusCode: AssetStatusCode): keyof DefaultTheme => {\n let color: keyof DefaultTheme;\n\n switch (StatusCode) {\n case AssetStatusCode.InUse:\n color = \"C_SEM_text_good\";\n break;\n case AssetStatusCode.Created:\n color = \"C_SEM_text_bad\";\n break;\n default:\n color = \"C_TEXT_primary\";\n break;\n }\n\n return color;\n};\n\nexport const statusFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions): TCellValue => {\n const title = val as string;\n const color: keyof DefaultTheme = getStatusColor(args.entity.Status?.Code);\n\n const colorWrapper = {val} ;\n\n return { tooltip: title, value: colorWrapper };\n};\n\nexport interface IAssetFormCustomData extends IFormStorageDefaultCustomData {\n isSimplified?: boolean;\n}\n\n/**\n * Simplified view to be used when creating single minor asset with\n * @param storage\n */\nexport const isFullForm = ({ storage }: IGetValueArgs): boolean => {\n const st = storage as FormStorage;\n\n return !st.getCustomData().isSimplified;\n};\n\nexport const getAssetTabs = (): ITabData[] => [\n {\n id: SECONDARY_FILTERS_ALL,\n title: i18next.t(\"MinorAsset:Status.All\")\n }, {\n id: AssetStatusCode.Created,\n title: i18next.t(\"MinorAsset:Status.CRE\")\n }, {\n id: AssetStatusCode.InUse,\n title: i18next.t(\"MinorAsset:Status.USE\")\n }, {\n id: AssetStatusCode.Disposed,\n title: i18next.t(\"MinorAsset:Status.DIS\")\n }\n];\n\nexport const getAsset = (args: IGetValueArgs, prop: \"entity\" | \"origEntity\" = \"entity\"): IAssetEntity => {\n const formStorage = args.storage as FormStorage;\n if (isDefined(args.data) && (prop === \"entity\" || !isDefined(formStorage.data[prop]))) {\n return args.data as IAssetEntity;\n }\n return formStorage.data[prop] as IAssetEntity;\n};\n\nexport function getMaxTransactionDateOfItemType(args: IGetValueArgs, types?: AssetItemTypeCode[]): Dayjs {\n const asset = getAsset(args);\n let maxDateTransaction: Dayjs;\n (asset.Items || []).forEach(item => {\n if (types && !types.includes(item.ItemType?.Code as AssetItemTypeCode)) {\n return; // skip this item\n }\n if (!maxDateTransaction || maxDateTransaction.isBefore(item.DateOfTransaction)) {\n maxDateTransaction = getUtcDayjs(item.DateOfTransaction);\n }\n });\n return maxDateTransaction;\n}\n\nexport function getInActiveFYValidation(value: TValue, args: IGetValueArgs): ValidationError | boolean {\n if (!isInActiveFY(value, args)) {\n const translation = i18next.t(`FixedAsset:Validation.${isCashBasisAccountingCompany(args.storage.context) ? \"ActiveYear\" : \"ActiveFY\"}`);\n return new ValidationError(translation, false, args.bindingContext.getNavigationPath(true));\n }\n return true;\n}\n\nexport function getBeforeFirstFiscalYearValidation(value: TValue, args: IGetValueArgs): ValidationError | boolean {\n const sortedFYs = getSortedFYs(args.context ?? args.storage?.context);\n const firstFY = sortedFYs[0];\n if (getUtcDayjs(value as Date).isSameOrAfter(firstFY.DateStart, \"date\")) {\n // error\n const opts = {\n date: DateType.format(getUtcDayjs(firstFY.DateStart).subtract(1, \"day\"))\n };\n return new ValidationError(i18next.t(\"FixedAsset:Validation.OldAssetNotEnoughOld\", opts), false, args.bindingContext.getNavigationPath(true));\n }\n return true;\n}\n\nexport function getSameOrLaterItemOfTypeValidation(value: TValue, args: IGetValueArgs, types?: AssetItemTypeCode[]): ValidationError | boolean {\n const maxTransactionDate = getMaxTransactionDateOfItemType(args, types);\n if (maxTransactionDate && !maxTransactionDate.isSameOrBefore(value as Date, \"day\")) {\n // error\n const opts = {\n date: DateType.format(maxTransactionDate)\n };\n return new ValidationError(i18next.t(\"FixedAsset:Validation.LastAssetItem\", opts), false, args.bindingContext.getNavigationPath(true));\n }\n return true;\n}\n\n\nexport function getDateRequestedLastDepreciationValidation(value: TValue, args: IGetValueArgs, types?: AssetItemTypeCode[]): ValidationError | boolean {\n const minDate = getUtcDayjs(args.storage.data.entity.DateFirstPutInUse);\n if (minDate && !minDate.isBefore(value as Date, \"month\")) {\n // error\n const opts = {\n date: DateType.format(minDate)\n };\n return new ValidationError(i18next.t(\"FixedAsset:Validation.MinLastDepreciationDate\", opts), false, args.bindingContext.getNavigationPath(true));\n }\n return true;\n}\n\nexport function getValidationResult(...args: (ValidationError | boolean)[]): ValidationError | boolean {\n return args.find(result => result !== true) ?? true;\n}\n\nexport function fetchAccountingDepreciationPolicyItems(storage: FormStorage): Promise {\n const bc = storage.data.bindingContext.navigate(\"AccountingDepreciationPolicy/Items\");\n\n const query = storage.oData.fromPath(bc.getFullPath(false))\n .query()\n .select(\"Id\", \"DateDepreciation\", \"Order\", \"AccumulatedDepreciation\", \"CalculatedExpense\", \"EndValue\")\n .orderBy(\"Order\");\n\n return query.fetchData()\n .then(result => result?.value);\n}\n\nexport function getLastDepreciationBeforeDate(items: IAccountingDepreciationPolicyItemEntity[], date: Date | Dayjs): IAccountingDepreciationPolicyItemEntity {\n const limitDayjs = getUtcDayjs(date);\n let lastPolicy: IAccountingDepreciationPolicyItemEntity;\n items.forEach(item => {\n if ((!lastPolicy || getUtcDayjs(lastPolicy.DateDepreciation).isBefore(item.DateDepreciation, \"day\"))\n && limitDayjs.isSameOrAfter(item.DateDepreciation, \"day\")) {\n lastPolicy = item;\n }\n });\n return lastPolicy;\n}\n\nexport function isInActiveFY(value: TValue, args: IGetValueArgs): boolean {\n const { fiscalYear } = getFiscalDataCorrespondingToDateAccountingTransaction(args.storage as FormStorage, value as Date);\n return [FiscalYearStatusCode.Active].includes(fiscalYear?.StatusCode as FiscalYearStatusCode);\n}\n\nexport interface IReturnValue {\n alert: IAlertProps;\n data: IAssetEntity;\n}\n\nexport async function fetchDataAndParseError(url: string, postData: TRecordAny): Promise {\n const response = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify(postData)\n });\n\n const body = await parseResponse(response);\n if (!response.ok) {\n throw body;\n }\n return body;\n}\n\nexport async function processAssetRequest(url: string, postData: TRecordAny, subTitle?: string): Promise {\n let alert: IAlertProps;\n let data: IAssetEntity;\n\n try {\n data = await fetchDataAndParseError(url, postData) as IAssetEntity;\n alert = {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle\n };\n } catch (e) {\n alert = getAlertFromError(e);\n }\n return { alert, data };\n}\n\nexport function pairDocumentItemsWithAsset(entryIds: number[], AssetId: string | number): Promise {\n const data = {\n DocumentItemIds: entryIds,\n AssetId\n };\n\n return processAssetRequest(`${ASSET_API_URL}/${AssetItemTypeCode.Acquisition}`, data, i18next.t(\"FixedAsset:Unorganized.AssetPaired\"));\n}\n\n/**\n * Load current asset items, remove the ones that has same DocumentItems as entryIds and save the asset\n * @param oData\n * @param entryIds\n * @param assetBc\n */\nexport async function unpairDocumentItemsFromAsset(oData: OData, entryIds: number[], assetBc: BindingContext): Promise {\n const assetId = assetBc.getKey();\n\n try {\n const result = await oData.getEntitySetWrapper(EntitySetName.Assets).query(assetId)\n .expand(AssetEntity.Items, (query) =>\n query.select(AssetItemEntity.Id).expand(AssetItemEntity.DocumentItem, (subQuery) => subQuery.select(DocumentItemEntity.Id)))\n .fetchData();\n\n const originalAsset = result.value;\n const newAsset = cloneDeep(originalAsset);\n newAsset.Items = newAsset.Items?.filter(item => !entryIds.includes(item.DocumentItem?.Id));\n\n const batch = oData.batch();\n batch.beginAtomicityGroup(\"updateAsset\");\n\n updateEntity({\n entity: newAsset,\n originalEntity: originalAsset,\n bindingContext: assetBc,\n batch,\n changesOnly: true,\n });\n\n await batch.execute();\n } catch (e) {\n return {\n alert: getAlertFromError(e),\n data: null\n };\n }\n\n return {\n alert: {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: i18next.t(\"FixedAsset:Unorganized.AssetUnpaired\")\n },\n data: null\n };\n}\n\n/**\n * Update asset with new values and save\n * @param storage\n * @param bc\n * @param value\n * @returns\n */\nexport async function updateAssetPartially(storage: FormStorage, bc: BindingContext, value: TValue): Promise {\n const { oData, data: { bindingContext, origEntity }} = storage;\n\n const entity = {\n ...cloneDeep(origEntity),\n } as IAssetEntity;\n\n setBoundValue({\n data: entity,\n bindingContext: bc,\n newValue: value,\n dataBindingContext: bindingContext,\n preventCloning: true\n });\n\n const batch = oData.batch();\n batch.beginAtomicityGroup(\"updateAsset\");\n\n updateEntity({\n entity,\n originalEntity: origEntity,\n bindingContext,\n batch,\n changesOnly: true,\n });\n\n try {\n const result = await batch.execute();\n if (!isBatchResultOk(result[0])) {\n return result[0].body as ODataError;\n }\n } catch (e) {\n return false;\n }\n\n return true;\n}\n\ninterface IAddAssetItem {\n DocumentItemIds: number[];\n Name: string;\n Labels?: { LabelHierarchyId: number; LabelId: number }[];\n NumberOurs?: string;\n NumberRangeId?: number;\n}\n\nexport async function createAssetFromEntries(entryIds: number[], Asset: Partial): Promise {\n const data: IAddAssetItem = {\n DocumentItemIds: entryIds,\n Name: Asset.Name\n };\n\n data.Labels = Asset.Labels?.map(Label => ({\n LabelHierarchyId: Label.LabelHierarchy.Id,\n LabelId: Label.Label.Id\n })) ?? [];\n if (Asset.NumberRange?.Id) {\n data.NumberRangeId = Asset.NumberRange.Id;\n } else {\n data.NumberOurs = Asset.NumberOurs;\n }\n\n return processAssetRequest(`${ASSET_API_URL}/${AssetItemTypeCode.Acquisition}`, data, i18next.t(\"FixedAsset:Unorganized.AssetCreated\"));\n}","import { IconButton } from \"@components/button\";\nimport { HotspotViewIds } from \"@components/hotspots/HotspotViewIds\";\nimport { ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IActionRendererArgs, IRowAction, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport React from \"react\";\n\nimport { AddToFilledIcon, AddToIcon, IProps as IIconProps } from \"../../components/icon\";\nimport { IProps as ISmartTableProps, SmartTable } from \"../../components/smart/smartTable/SmartTable\";\nimport { ActionState, IconSize, RowAction } from \"../../enums\";\nimport { EmptyObject } from \"../../global.types\";\nimport { ModelEvent } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../views/table/TableToolbar.utils\";\nimport TableView, { IHandleCustomActionArgs, ITableViewBaseProps } from \"../../views/table/TableView\";\nimport { TableWrapper } from \"../../views/table/TableView.styles\";\nimport { createCustomTableToolbarItem } from \"../../views/table/TableView.utils\";\nimport View from \"../../views/View\";\n\nexport interface IPairingAssetTableViewProps extends ITableViewBaseProps {\n selectedItem?: BindingContext;\n onClose?: () => void;\n}\n\nexport const PAIR_ACTION_ID = \"PairAction\";\n\nexport default abstract class PairingWithAssetTableView

    extends TableView

    {\n\n _selectedItem: BindingContext;\n\n constructor(props: P) {\n super(props);\n\n this.handleCustomAction = this.handleCustomAction.bind(this);\n\n this._selectedItem = props.selectedItem;\n this.handleCustomAction(PAIR_ACTION_ID, { update: false });\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.props.formStorage?.emitter.on(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n this.props.formStorage?.emitter.on(ModelEvent.AfterLoad, this.handleLineItemsAction);\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (prevProps.formStorage !== this.props.formStorage) {\n prevProps.formStorage?.emitter.off(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n this.props.formStorage?.emitter.on(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n prevProps.formStorage?.emitter.off(ModelEvent.LineItemsAction, this.handleLineItemsAction);\n this.props.formStorage?.emitter.on(ModelEvent.LineItemsAction, this.handleLineItemsAction);\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.props.formStorage?.emitter.off(ModelEvent.LineItemsAction, this.handleLineItemsAction);\n this.props.formStorage?.emitter.off(ModelEvent.AfterLoad, this.handleFormAfterLoad);\n }\n\n /**\n * Subscribed to event after formStorage->lineItem action -> delete saved item and switch to original pairing state\n * @param args\n */\n async handleLineItemsAction(args: ISmartFastEntriesActionEvent): Promise {\n /* No action by default */\n }\n\n handleFormAfterLoad(): void {\n /* No action by default */\n }\n\n abstract renderHeader(): React.ReactElement;\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [\n TableButtonsAction.Settings\n ];\n }\n\n get customToolbarItems(): IToolbarItem[] {\n return [this.createToolbarItem(PAIR_ACTION_ID, \"AddTo\", this.getConfirmText() as string)];\n }\n\n createToolbarItem(id: string, iconName: string, label: string, forceDisabled = false): IToolbarItem {\n const action = this.getTableAction();\n\n return createCustomTableToolbarItem({\n tableAction: action,\n id,\n iconName,\n label,\n forceDisabled\n });\n }\n\n getConfirmText = (): string | React.ReactElement => this.props.storage.t(\"MinorAsset:PairingTableView.Complete\");\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n this.setTableAction(action, true, false);\n if (update) {\n this.forceUpdate();\n }\n }\n\n getTableSharedProps(): ISmartTableProps & { key: string } {\n const props = super.getTableSharedProps();\n props.keepActiveRowsOnFilterChange = true;\n return props;\n }\n\n getIcon = (isActive: boolean) => isActive ? AddToFilledIcon : AddToIcon;\n\n getCustomRowAction = memoizeOne((): TCustomRowAction => {\n return {\n actionType: RowAction.Custom,\n isSingleSelect: true,\n render: (args: IActionRendererArgs) => {\n const isActive = args.actionState === ActionState.Active;\n const Icon = this.getIcon(isActive);\n return (\n \n \n \n );\n }\n };\n });\n\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n if (rowAction) {\n return null;\n }\n\n return (id.toString() === this._selectedItem?.toString()) && this.getIcon(true);\n };\n\n render() {\n return (\n <>\n \n {this.renderHeader()}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderToolbar()}\n \n \n \n {this.renderCustomizationDialog()}\n \n \n );\n }\n}\n","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString, isDateBetween, maxDate } from \"@components/inputs/date/utils\";\nimport { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { TCellValue } from \"@components/table\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport {\n AssetItemEntity,\n EntitySetName,\n IAssetEntity,\n IAssetValueEntity,\n IDepreciationSettingEntity,\n IEntityBase,\n IFiscalYearEntity,\n IPaymentDocumentItemEntity,\n ITaxDepreciationCoefficientEntity,\n ITaxDepreciationPolicyEntity,\n ITaxPriceLimitEntity,\n TaxDepreciationCategoryEntity,\n TaxDepreciationCoefficientEntity,\n TaxPriceLimitEntity,\n UnorganizedAssetEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AssetDisposalTypeCode,\n AssetItemTypeCode,\n AssetTypeCode,\n CbaAssetDisposalTypeCode,\n DepreciationSettingTypeCode,\n DepreciationTypeCode,\n LanguageCode\n} from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { formatValue, IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport { getFiscalYearByDate, getOldestActiveFY } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport FileStorage from \"@utils/FileStorage\";\nimport { getValue, isDefined } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport { saveAs } from \"file-saver\";\nimport i18next from \"i18next\";\n\nimport { ASSET_API_URL, ASSET_TO_EXPENSE_API_URL, EMPTY_VALUE, REST_API_URL } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort, ValueType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { IFilterQuery } from \"../../../model/TableStorage\";\nimport BindingContext, { IEntity, TEntityKey } from \"../../../odata/BindingContext\";\nimport { ROUTE_FIXED_ASSET } from \"../../../routes\";\nimport DateType, { getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { getCompanyCountryCode } from \"../../companies/Company.utils\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { fetchDataAndParseError, getAsset } from \"../Asset.utils\";\nimport { compareString } from \"@utils/string\";\n\nexport const DateFirstPutInUsePath = \"DateFirstPutInUse\";\nexport const DisposalAccountPath = BindingContext.localContext(\"DisposalAccount\");\nexport const DisposalDatePath = BindingContext.localContext(\"DisposalDate\");\nexport const DisposalReasonPath = BindingContext.localContext(\"Reason\");\nexport const DamageCompensationAmountPath = BindingContext.localContext(\"DamageCompensationAmount\");\n\nexport const FIXED_ASSET_MASS_PDF_ACTION_ID = \"FixedAssetMassPdfExportAction\";\n\nexport enum Validity {\n SingleYear = \"SingleYear\",\n LongTerm = \"LongTerm\"\n}\n\nexport type TRootAssetItems = Record;\n\nexport enum FixedAssetFormViewAction {\n Tax = \"ShowTaxDepreciationPolicy\",\n Accounting = \"ShowAccountingDepreciationPolicy\",\n AddFromUnsorted = \"AddFromUnsorted\",\n ChangePrice = \"ChangePrice\",\n Discard = \"Discard\",\n Interrupt = \"Interrupt\",\n CancelInterrupt = \"CancelInterrupt\",\n PartialDepreciationSettings = \"PartialDepreciationSettings\",\n CancelPartialDepreciationSettings = \"CancelPartialDepreciationSettings\",\n AssetCardPdfExport = \"AssetCardPdfExport\"\n}\n\nexport interface IFixedAssetCustomData extends IFormStorageDefaultCustomData {\n entityBeforeAction?: IAssetEntity;\n FixedAssetFormViewAction?: FixedAssetFormViewAction;\n AssetValueLimit?: number;\n AssetItemTypeCode?: AssetItemTypeCode;\n rootItems?: TRootAssetItems;\n coefficients?: ITaxDepreciationCoefficientEntity[];\n}\n\nexport interface IFixedAssetDisposalCustomData extends IFormStorageDefaultCustomData {\n assetStorage?: FormStorage;\n}\n\n/**\n * Function returns data for TaxDepreciationPolicy selects - Type, Category and first year of increase\n * @param storage\n */\nexport async function getTaxDepreciationCoefficients(storage: FormStorage): Promise {\n const { oData } = storage;\n\n const res = await oData.getEntitySetWrapper(EntitySetName.TaxDepreciationCoefficients).query()\n .select(TaxDepreciationCoefficientEntity.Code, TaxDepreciationCoefficientEntity.Name, TaxDepreciationCoefficientEntity.FirstYearValueIncrease,\n TaxDepreciationCoefficientEntity.IsMonthly, TaxDepreciationCoefficientEntity.CanBeInterrupted, TaxDepreciationCoefficientEntity.CanBeImproved,\n TaxDepreciationCoefficientEntity.TaxDepreciationCategoryCode)\n .expand(TaxDepreciationCoefficientEntity.DepreciationType)\n .expand(TaxDepreciationCoefficientEntity.TaxDepreciationCategory, (query) =>\n query.select(TaxDepreciationCategoryEntity.Code, TaxDepreciationCategoryEntity.Name, TaxDepreciationCategoryEntity.DateValidFrom,\n TaxDepreciationCategoryEntity.DateValidTo, TaxDepreciationCategoryEntity.YearsOfDepreciation))\n .fetchData();\n\n return res?.value || [];\n}\n\nexport const getTaxDepreciationCoefficientsMemoized = memoizeOne(getTaxDepreciationCoefficients);\n\n\n/**\n * Function returns data for TaxDepreciationPolicy selects - Type, Category and first year of increase\n * @param storage\n */\nexport async function getTaxPriceLimits(storage: FormStorage): Promise {\n const { oData } = storage;\n\n const res = await oData.getEntitySetWrapper(EntitySetName.TaxPriceLimits).query()\n .select(TaxPriceLimitEntity.Name, TaxPriceLimitEntity.ShortName, TaxPriceLimitEntity.DateValidFrom,\n TaxPriceLimitEntity.DateValidTo, TaxPriceLimitEntity.Code, TaxPriceLimitEntity.TaxDepreciationCategoryCode)\n .fetchData();\n\n return res?.value || [];\n}\n\nexport const getTaxPriceLimitsMemoized = memoizeOne(getTaxPriceLimits);\n\nexport interface IGetTaxDepreciationReturnValue {\n coefficients: ITaxDepreciationCoefficientEntity[];\n Types: DepreciationTypeCode[];\n Categories: ISelectItem[];\n FirstYearValues: ISelectItem[];\n}\n\nexport function getTaxDepreciationPolicyLocalCategoryId(policy: Partial): string {\n return policy.TaxPriceLimitCode ?? policy.TaxPriceLimit?.Code ?? policy.Coefficient?.TaxDepreciationCategoryCode ?? policy.Coefficient?.TaxDepreciationCategory?.Code;\n}\n\nexport async function getTaxDepreciationSelectItems(storage: FormStorage, type: DepreciationTypeCode, category: string, date: Date): Promise {\n const [coefficients, taxLimits] = await Promise.all([getTaxDepreciationCoefficientsMemoized(storage), getTaxPriceLimitsMemoized(storage)]);\n\n const Types = new Set();\n const Categories = new Map();\n const FirstYearValues = new Map();\n\n let categoryId = category;\n\n const _addCategoryItem = (coeff: ITaxDepreciationCoefficientEntity, TaxPriceLimit: ITaxPriceLimitEntity = null) => {\n // Create ISelectItem from TaxDepreciationCategory\n const { Name, YearsOfDepreciation } = coeff.TaxDepreciationCategory;\n const id = getTaxDepreciationPolicyLocalCategoryId({ TaxPriceLimit, Coefficient: coeff });\n const label = TaxPriceLimit?.ShortName ? `${Name} (${TaxPriceLimit.ShortName})` : Name;\n const hasFixedYearsOfDepreciation = YearsOfDepreciation > 0;\n const cat: ISelectItem = {\n id,\n label,\n tabularData: [\n label,\n hasFixedYearsOfDepreciation ? i18next.t(\"FixedAsset:Form.YearsCnt\", { count: YearsOfDepreciation }) : null\n ].filter(isDefined),\n groupId: hasFixedYearsOfDepreciation ? \"NoYears\" : SelectGroups.Default,\n additionalData: {\n YearsOfDepreciation,\n Coefficient: coeff,\n TaxPriceLimitCode: TaxPriceLimit?.Code\n }\n };\n Categories.set(cat.id, cat);\n if (!categoryId) {\n // if category is not set, we will match firstYearValues to the first category\n categoryId = id;\n }\n\n if (id === categoryId) {\n // Create ISelectItem from TaxDepreciationCoefficient\n const inc = coeff.FirstYearValueIncrease;\n const fyv: ISelectItem = {\n id: inc ?? EMPTY_VALUE,\n label: inc ? `${inc} %` : i18next.t(\"Common:Select.NoRecord\"),\n groupId: inc ? \"data\" : \"default\",\n additionalData: {\n isNoRecord: true\n }\n };\n FirstYearValues.set(fyv.id as number, fyv);\n }\n };\n\n const _isValid = ({ DateValidFrom, DateValidTo }: { DateValidFrom?: Date; DateValidTo?: Date }, current: Dayjs): boolean =>\n !current || (current.isSameOrAfter(DateValidFrom, \"date\") && (!DateValidTo || current.isSameOrBefore(DateValidTo, \"date\")));\n\n const current = date && DateType.isValid(date) ? getUtcDayjs(date) : null;\n const filteredLimits = taxLimits.filter(limit => _isValid(limit, current));\n\n coefficients.forEach(coeff => {\n const Type = coeff.DepreciationType?.Code as DepreciationTypeCode;\n Types.add(Type);\n\n if (Type === type && _isValid(coeff.TaxDepreciationCategory, current)) {\n const { Code } = coeff.TaxDepreciationCategory;\n\n _addCategoryItem(coeff);\n\n const categoryLimits = filteredLimits.filter(limit => limit.TaxDepreciationCategoryCode === Code);\n categoryLimits.forEach(taxLimit => {\n _addCategoryItem(coeff, taxLimit);\n });\n }\n });\n \n const sortedCategories = [...Categories.values()]\n .sort((a, b) => compareString(a.label, b.label));\n\n return {\n coefficients,\n Types: [...Types.values()],\n Categories: sortedCategories,\n FirstYearValues: [...FirstYearValues.values()]\n };\n}\n\nfunction firstCollectionItemValueFormatter(path: string) {\n return (val: TValue, args?: IFormatOptions): TCellValue => {\n const item = args.entity.Items?.[0];\n if (!item) {\n return null;\n }\n args.bindingContext = args.bindingContext.addKey(item);\n const value = getNestedValue(path, item);\n const infoWithoutFormatter = { ...args.info };\n delete infoWithoutFormatter.formatter;\n /**\n * todo: formatValue took Currency from entity in options, which is probably wrong\n * -> it should consider binding context. Correct this later in formatValue (may break a lot of things)\n **/\n return formatValue(value, infoWithoutFormatter, { ...args, entity: item });\n };\n}\n\n/**\n * Adds asset definitions to document definition\n * @param definition\n * @param pathToDocFromAssetItem\n */\nexport function addAssetDef(definition: IDefinition, pathToDocFromAssetItem?: string): void {\n const entitySet = getValue(definition.entitySet) as EntitySetName;\n // Payment documents has to be linked with assets through their items\n const isPaymentDocument = [EntitySetName.CashReceiptsIssued, EntitySetName.CashReceiptsReceived, EntitySetName.BankTransactions].includes(entitySet);\n\n const filterPath = pathToDocFromAssetItem ?? AssetItemEntity.Document;\n const fixedAssetTab: IFormGroupDef = {\n id: \"Asset\",\n title: i18next.t(\"Document:FormTab.Asset\"),\n table: {\n id: `asset_${definition.entitySet}`,\n entitySet: EntitySetName.Assets,\n filter: ({ storage }): IFilterQuery => {\n const { entity } = storage.data ?? {};\n if (isPaymentDocument && !entity?.Items?.some((item: IPaymentDocumentItemEntity) => !!item.LinkedDocument?.Id)) {\n // in case there is none linked doc, we have to return empty array as in() or in(null) fails\n return {\n query: \"Id eq null\"\n };\n }\n const ids = isPaymentDocument ? entity?.Items?.map((item: IPaymentDocumentItemEntity) => item.LinkedDocument?.Id).filter((id: TEntityKey) => !!id) : entity?.Id;\n const formattedIds = transformToODataString(ids, ValueType.Number);\n return {\n query: `Items/any(x: x/${filterPath}/Id in (${formattedIds}))`,\n collectionQueries: {\n Items: { query: `${filterPath}/Id in (${formattedIds})` }\n }\n };\n },\n initialSortBy: [{\n id: \"NumberOurs\",\n sort: Sort.Asc\n }],\n columns: [\n {\n id: \"Items/DocumentItem/Order\",\n label: i18next.t(\"FixedAsset:DocumentTable.Order\"),\n formatter: firstCollectionItemValueFormatter(\"DocumentItem/Order\")\n }, {\n id: \"NumberOurs\",\n label: i18next.t(\"FixedAsset:DocumentTable.NumberOurs\"),\n formatter: (val: TValue, args: IFormatOptions): TCellValue => {\n if (!args.entity?.Id) {\n return args.entity?.NumberOurs;\n }\n\n return getTableIntentLink(val as string, {\n route: `${ROUTE_FIXED_ASSET}/${args.entity.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n }\n }, {\n id: \"Name\",\n label: i18next.t(\"FixedAsset:DocumentTable.Name\")\n }, {\n id: \"Items/ItemType/Name\",\n label: i18next.t(\"FixedAsset:DocumentTable.Type\"),\n formatter: firstCollectionItemValueFormatter(\"ItemType/Name\")\n }, {\n id: \"Items/Amount\",\n label: i18next.t(\"FixedAsset:DocumentTable.Amount\"),\n formatter: (val: TValue, args?: IFormatOptions): TCellValue => {\n const items = args.entity.Items;\n if (!items?.length) {\n return null;\n }\n const infoWithoutFormatter = { ...args.info };\n delete infoWithoutFormatter.formatter;\n args.bindingContext = args.bindingContext.addKey(items[0].Id);\n let value = 0;\n for (const item of items) {\n value += getNestedValue(\"Amount\", item) ?? 0;\n }\n return formatValue(value, infoWithoutFormatter, { ...args, entity: items[0] });\n }\n }\n ]\n }\n };\n // Add fixed asset tab to the def\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n tabsGroup.tabs.splice(2, 0, fixedAssetTab);\n}\n\nexport const AssetTranslations = [\"FixedAsset\", \"MinorAsset\", \"Document\", \"Components\"];\n\ninterface IAccrualDisposalParameters {\n AssetId: number;\n Date: string;\n AccrualDisposalParameters?: IDisposeAssetRequestData;\n CbaDisposalParameters?: ICbaDisposalParameters;\n}\n\ninterface IDisposeAssetRequestData {\n AssetDisposalTypeCode?: AssetDisposalTypeCode;\n DisposalAccountId?: number;\n}\n\ninterface ICbaDisposalParameters {\n DamageCompensationAmount?: number;\n CbaDisposalTypeCode: AssetDisposalTypeCode;\n}\n\nexport function disposeAsset(storage: FormStorage, AssetId: number): Promise {\n const params: IAccrualDisposalParameters = {\n AssetId,\n Date: formatDateToDateString(storage.getValueByPath(DisposalDatePath))\n };\n\n if (isAccountAssignmentCompany(storage.context)) {\n params.AccrualDisposalParameters = {\n AssetDisposalTypeCode: storage.getValueByPath(DisposalReasonPath),\n DisposalAccountId: storage.getValueByPath(DisposalAccountPath)\n };\n } else {\n params.CbaDisposalParameters = {\n CbaDisposalTypeCode: storage.getValueByPath(\"Reason\")\n };\n\n if (storage.getValueByPath(\"Reason\") === CbaAssetDisposalTypeCode.OtherDamage) {\n params.CbaDisposalParameters.DamageCompensationAmount = storage.getValueByPath(\"DamageCompensationAmount\");\n }\n }\n\n return fetchDataAndParseError(`${ASSET_API_URL}/${AssetItemTypeCode.Disposal}`, params);\n}\n\ninterface IChangeAssetPriceData {\n AssetId: TEntityKey;\n DocumentItemIds?: number[];\n Date: string;\n}\n\nexport function changeAssetPrice(type: AssetItemTypeCode, storage: FormStorage, entryIds: number[], AssetId: TEntityKey): Promise {\n const data: IChangeAssetPriceData = {\n DocumentItemIds: entryIds,\n AssetId,\n Date: formatDateToDateString(storage.getValueByPath(\"Date\"))\n };\n\n return fetchDataAndParseError(`${ASSET_API_URL}/${type}`, data);\n}\n\ninterface IAddToCostsData {\n DocumentItemIds: number[];\n AccountId: number;\n Date: string;\n}\n\nexport function addToCosts(DocumentItemIds: number[], AccountId: number, date: Date): Promise {\n const data: IAddToCostsData = {\n DocumentItemIds,\n AccountId,\n Date: formatDateToDateString(date)\n };\n\n return fetchDataAndParseError(ASSET_TO_EXPENSE_API_URL, data);\n}\n\nconst getLowPriceAssetValuesMemoized = memoizeOne(async (storage: Model) => {\n const query = storage.oData.getEntitySetWrapper(EntitySetName.AssetValues)\n .query()\n .filter(`CountryCode eq '${getCompanyCountryCode(storage.context)}'`)\n .select(\"Code\", \"Name\", \"minValue\", \"DateValidFrom\", \"DateValidTo\")\n .orderBy(\"DateValidFrom\");\n\n const result = await query.fetchData();\n return result.value;\n}, (storage: Model) => {\n return [getCompanyCountryCode(storage.context)];\n});\n\n\nexport const getLowPriceAssetLimit = async (storage: FormStorage, date: Date): Promise => {\n const assetValues = await getLowPriceAssetValuesMemoized(storage);\n const searchDay = getUtcDayjs(date);\n const matchedValue = assetValues.find(val => {\n const from = val.DateValidFrom ?? searchDay;\n const to = val.DateValidTo ?? searchDay;\n return searchDay.isBetween(from, to, \"day\", \"[]\");\n });\n const limit = matchedValue?.MinValue ?? 0;\n storage.setCustomData({ AssetValueLimit: limit });\n return limit;\n};\n\nexport const getLowPriceAssetLimitSync = (storage: FormStorage): number => {\n return storage.getCustomData().AssetValueLimit;\n};\n\ninterface IAssetCounts {\n [AssetTypeCode.Tangible]?: number;\n [AssetTypeCode.Intangible]?: number;\n}\n\ninterface IGetAssetCountOptions {\n from?: Date;\n to?: Date;\n}\n\ninterface IGetAssetCountResult extends IEntityBase {\n AssetTypeCode: AssetTypeCode;\n}\n\nexport async function getUnorganizedAssetCounts(oData: OData, opts: IGetAssetCountOptions): Promise {\n const filters: string[] = [];\n if (opts.from) {\n filters.push(`${UnorganizedAssetEntity.EntryDate} ge ${transformToODataString(opts.from, ValueType.Date)}`);\n }\n if (opts.to) {\n filters.push(`${UnorganizedAssetEntity.EntryDate} le ${transformToODataString(opts.to, ValueType.Date)}`);\n }\n\n const filter = filters.join(\" and \");\n const query = oData.getEntitySetWrapper(EntitySetName.UnorganizedAssets).query()\n .filter(filter)\n .groupBy(UnorganizedAssetEntity.AssetTypeCode)\n .aggregate(\"$count as @odata.count\");\n\n const result = await query.fetchData();\n\n const counts: IAssetCounts = {};\n\n result.value.forEach(val => {\n counts[val.AssetTypeCode] = val._metadata[\"\"].count ?? 0;\n });\n\n return counts;\n}\n\nexport const exportAssetCard = async (ids: string[], context: IAppContext, showFutureTaxDepreciationPolicy: boolean, showFutureTaxAccountingPolicy: boolean): Promise => {\n const pdfUrl = `${REST_API_URL}/AssetCardPdfExport/${showFutureTaxDepreciationPolicy}/${showFutureTaxAccountingPolicy}?languageCode=${LanguageCode.Czech}&${ids.map(id => `assetIds=${id}`).join(\"&\")}&CompanyId=${context.getCompanyId()}`;\n\n const file = await FileStorage.get(null, {\n url: pdfUrl\n });\n\n saveAs(file);\n};\n\nexport function getFirstActiveFiscalYearOfAssetInUse(storage: FormStorage): Pick {\n const putInUseDate = storage.getValueByPath(DateFirstPutInUsePath);\n const firstActiveFY = getOldestActiveFY(storage.context);\n const DateStart = maxDate(firstActiveFY?.DateStart ?? getUtcDate(), putInUseDate);\n const { DateEnd } = getFiscalYearByDate(storage.context, DateStart) ?? {};\n return { DateStart, DateEnd };\n}\n\nexport function getDepreciationSettings(storage: FormStorage, forDate: Date, type?: DepreciationSettingTypeCode): IDepreciationSettingEntity {\n const settings = getAsset({ storage })?.TaxDepreciationPolicy?.DepreciationSettings;\n return settings?.find(item => isDateBetween(item.DateValidFrom, item.DateValidTo, forDate) && (!type || item.DepreciationSettingTypeCode === type));\n}\n\nexport function getActualDepreciationSettings(storage: FormStorage, type?: DepreciationSettingTypeCode): IDepreciationSettingEntity {\n const { DateStart } = getFirstActiveFiscalYearOfAssetInUse(storage);\n return getDepreciationSettings(storage, DateStart, type);\n}\n\nexport const isInterrupted = (args: IGetValueArgs) => {\n return getActualDepreciationSettings(args.storage as FormStorage)?.DepreciationSettingTypeCode === DepreciationSettingTypeCode.Interrupted;\n};","import { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport i18next from \"i18next\";\nimport { ValidationError } from \"yup\";\n\nimport { FieldType, ValidatorType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { defaultDateFromActiveFiscalYear } from \"../../../views/formView/Form.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../../documents/DocumentDef\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\n\n\nexport function getChangePriceDefFactory(changePriceDateValidator: (value: TValue, args: IGetValueArgs) => boolean | ValidationError): IGetDefinition {\n\n const getDefinition: IGetDefinition = (): IDefinition => {\n\n const form: IFormDef = {\n id: \"FixedAssetChangePriceSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n [BindingContext.localContext(\"Date\")]: {\n type: FieldType.Date,\n label: i18next.t(\"FixedAsset:ChangePrice.Date\"),\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n isRequired: true,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: changePriceDateValidator,\n }\n },\n defaultValue: defaultDateFromActiveFiscalYear\n }\n },\n groups: [\n {\n id: \"Common\",\n showGroupDivider: false,\n rows: [\n [{ id: BindingContext.localContext(\"Date\") }]\n ]\n }\n ]\n };\n\n return {\n form\n };\n };\n\n getDefinition.translationFiles = [\"FixedAsset\", \"Common\"];\n // we don't add this definition even for testing as it is used with\n // no entity set and localContext, there is nothing to test against\n\n return getDefinition;\n}\n","import DialogFormView, { IDialogFormViewProps } from \"../../../views/formView/DialogFormView\";\nimport { IFormStorageSaveResult, IGetCorrectErrorBc } from \"../../../views/formView/FormStorage\";\nimport { DisposalAccountPath, DisposalDatePath, disposeAsset, IFixedAssetDisposalCustomData } from \"./FixedAsset.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction } from \"../../documents/Document.utils\";\nimport BindingContext, { TEntityKey } from \"../../../odata/BindingContext\";\nimport { fetchAccountingDepreciationPolicyItems, getLastDepreciationBeforeDate } from \"../Asset.utils\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport Currency from \"../../../types/Currency\";\nimport { IAssetEntity } from \"@odata/GeneratedEntityTypes\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { fetchSelectItems } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { forEachKey } from \"@utils/general\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { Dayjs } from \"dayjs\";\nimport { reloadAccounts } from \"../../accountAssignment/Account.utils\";\n\nexport interface IFixedAssetDisposalDialogEntity extends IAssetEntity {\n AssetId?: TEntityKey;\n}\n\nclass FixedAssetDisposalDialogFormView extends DialogFormView> {\n static contextType = AppContext;\n _lastDisposalDate: Date | Dayjs;\n\n onAfterLoad = async () => {\n\n this._lastDisposalDate = this.props.storage.getValueByPath(\"DisposalDate\");\n if (!isCashBasisAccountingCompany(this.props.storage.context)) {\n await this.updateDisposalAccountInfo();\n await this.setDefaultDisposalAccount();\n }\n\n return super.onAfterLoad();\n };\n\n handleDisposalDateOrReasonChange = async (e: ISmartFieldChange): Promise => {\n const eventPath = e.bindingContext.getPath();\n if ([\"Reason\", \"DisposalDate\"].some(path => eventPath === BindingContext.localContext(path)) && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const DisposalDate = storage.getValueByPath(DisposalDatePath) as Dayjs;\n const previousFiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, this._lastDisposalDate);\n const { fiscalYear } = getFiscalDataCorrespondingToDateAccountingTransaction(storage, DisposalDate);\n this._lastDisposalDate = DisposalDate;\n const promises = [];\n\n const reasonHasChanged = eventPath.includes(\"Reason\");\n const hasChanged = previousFiscalData?.fiscalYear?.Id !== fiscalYear?.Id || reasonHasChanged;\n\n if (isAccountAssignmentCompany(storage.context)) {\n if (hasChanged) {\n promises.push(reloadAccounts(storage, !!fiscalYear, DisposalAccountPath));\n }\n if (!reasonHasChanged) {\n promises.push(this.updateDisposalAccountInfo());\n }\n }\n\n if (promises.length) {\n storage.setBusy(true);\n await Promise.all(promises);\n storage.setBusy(false);\n }\n storage.refresh();\n }\n };\n\n fetchAccountingDepreciationPolicyItemsMemoized = memoizeOne(fetchAccountingDepreciationPolicyItems);\n\n updateDisposalAccountInfo = async (): Promise => {\n const { storage } = this.props;\n const assetStorage = storage.getCustomData().assetStorage;\n const info = storage.getInfo(storage.data.bindingContext.navigate(DisposalAccountPath));\n\n const items = await this.fetchAccountingDepreciationPolicyItemsMemoized(assetStorage);\n\n const disposalDate = storage.getValueByPath(DisposalDatePath) as Dayjs;\n const lastPolicyItem = getLastDepreciationBeforeDate(items, disposalDate);\n const currency = assetStorage.data.entity.Currency?.Code;\n\n info.tooltip = (lastPolicyItem && lastPolicyItem.EndValue > 0) ? Currency.format(lastPolicyItem.EndValue, { currency }) : null;\n info.isDisabled = !info.tooltip;\n info.isRequired = !!info.tooltip;\n\n // refresh field to show correct tooltip\n storage.addActiveField(info.bindingContext);\n storage.refreshFields();\n };\n\n setDefaultDisposalAccount = async (): Promise => {\n const { storage } = this.props;\n const bc = storage.data.bindingContext.navigate(DisposalAccountPath);\n const fieldInfo = storage.getInfo(bc);\n // if not visible, we don't need to load items...\n if (!fieldInfo.isDisabled) {\n const items = await fetchSelectItems({\n fieldInfo,\n oData: storage.oData,\n appContext: this.context,\n storage\n });\n fieldInfo.fieldSettings.items = items;\n if (items?.length === 1) {\n const item = items[0];\n forEachKey(item.additionalData, (key) => {\n const val = item.additionalData[key];\n if (key === \"Id\") {\n storage.setValue(bc, val);\n } else {\n storage.setValueByPath(`${DisposalAccountPath}_${key}`, val);\n }\n });\n } else {\n storage.clearAndSetValue(bc, null);\n }\n storage.refresh();\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n this.handleDisposalDateOrReasonChange(e);\n }\n\n getCorrectErrorBc = (args: IGetCorrectErrorBc): BindingContext => {\n const path = args.matchedBindingContext.getPath();\n const { bindingContext } = this.props.storage.data;\n if (path === BindingContext.localContext(\"Date\")) {\n // BE validates Date field, but locally we have DisposalDate\n return bindingContext.navigate(DisposalDatePath);\n }\n\n return args.matchedBindingContext;\n };\n\n save = async (): Promise => {\n const { storage } = this.props;\n if (await storage.validate(true)) {\n this.forceUpdate();\n return null;\n }\n\n const { bindingContext, entity, origEntity } = storage.data;\n\n storage.setBusy();\n this.forceUpdate();\n\n try {\n await disposeAsset(storage, origEntity.AssetId as number);\n } catch (error) {\n await storage.handleOdataError({\n error,\n bindingContext,\n getCorrectErrorBc: this.getCorrectErrorBc,\n fieldValidationWithoutErrorAlert: true\n });\n storage.setBusy(false);\n this.forceUpdate();\n return null;\n }\n\n return {\n bindingContext,\n data: entity\n };\n };\n}\n\nexport default withPermissionContext(FixedAssetDisposalDialogFormView);","import styled from \"styled-components/macro\";\n\n\nexport const HeaderWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n`;\n\nexport const ToggleWrapper = styled.div`\n // visual alignment with read-only list\n margin-bottom: 14px;\n`;\n","import { IColumn, IRow, TId } from \"@components/table\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { createToolbarItem } from \"@components/toolbar/Toolbar.utils\";\nimport { IAccountingDepreciationPolicyItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SimpleTable from \"../../../components/simpleTable\";\nimport { RowType, Status, TextAlign, ToolbarItemType } from \"../../../enums\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport { TableButtonsAction } from \"../../../views/table/TableToolbar.utils\";\nimport { HeaderWrapper, ToggleWrapper } from \"./AccountingDepreciationPolicyTable.styles\";\n\n\ninterface IProps {\n header: React.ReactElement;\n data: IAccountingDepreciationPolicyItemEntity[];\n disableBeforeDate: Date;\n currency: string;\n}\n\nexport const AccountingDepreciationPolicyTable: React.FunctionComponent = (props) => {\n const { t } = useTranslation([\"FixedAsset\", \"Components\"]);\n\n const columns: IColumn[] = [\n { id: \"period\", label: `${t(\"FixedAsset:DepreciationTable.Period\")}:` },\n { id: \"depreciation\", label: `${t(\"FixedAsset:DepreciationTable.Depreciation\")}:`, textAlign: TextAlign.Right },\n { id: \"balance\", label: `${t(\"FixedAsset:DepreciationTable.Balance\")}:`, textAlign: TextAlign.Right },\n {\n id: \"depreciated\",\n label: `${t(\"FixedAsset:DepreciationTable.AccountingDepreciated\")}:`,\n textAlign: TextAlign.Right\n },\n ];\n const { currency, disableBeforeDate, data } = props;\n\n const defaultOpened = [`${getUtcDayjs().year()}`];\n const [openedGroups, setOpenedGroup] = useState(defaultOpened ?? []);\n\n const rows: IRow[] = useMemo(() => {\n const today = getUtcDayjs();\n const itemsByYears: Record = {};\n let closest;\n const ret = [];\n\n for (const item of data) {\n const curr = getUtcDayjs(item.DateDepreciation);\n const year = curr.year();\n\n if (!itemsByYears[year]) {\n itemsByYears[year] = [];\n }\n\n itemsByYears[year].push(item);\n\n if (today.isSame(curr, \"month\")) {\n closest = item.Order;\n }\n }\n\n const disabledDate = getUtcDayjs(disableBeforeDate);\n\n for (const year of Object.keys(itemsByYears)) {\n const childRows: IRow[] = [];\n\n for (const item of itemsByYears[year]) {\n childRows.push({\n id: item.Order,\n values: {\n period: DateType.format(item.DateDepreciation),\n depreciation: formatCurrency(item.CalculatedExpense, currency),\n balance: formatCurrency(item.EndValue, currency),\n depreciated: formatCurrency(item.AccumulatedDepreciation, currency)\n },\n statusHighlight: item.Order === closest ? Status.Success : undefined,\n isDisabled: disableBeforeDate && disabledDate.diff(item.DateDepreciation) >= 0\n });\n }\n\n ret.push({\n id: year,\n values: { period: year },\n type: RowType.Group,\n rows: childRows,\n open: openedGroups.includes(`${year}`)\n });\n }\n\n return ret;\n }, [data, disableBeforeDate, currency, openedGroups]);\n\n // Toggle All functionality\n const handleGroupToggle = useCallback((id: TId) => {\n const stringId = id.toString();\n if (openedGroups.includes(stringId)) {\n setOpenedGroup([...openedGroups.filter(item => item !== stringId)]);\n } else {\n setOpenedGroup([...openedGroups, stringId]);\n }\n }, [openedGroups, setOpenedGroup]);\n\n // todo: better solution?\n const filteredGroups = openedGroups.filter(group => rows.find(row => row.id === group));\n const isExpandable = filteredGroups.length !== rows.length;\n\n const handleToggleAll = useCallback(() => {\n if (isExpandable) {\n setOpenedGroup(rows.map(row => row.id.toString()));\n } else {\n // All rows are opened -> collapse all\n setOpenedGroup([]);\n }\n }, [isExpandable, setOpenedGroup, rows]);\n\n const expandCollapseAll: IToolbarItem = {\n id: TableButtonsAction.ExpandCollapseAll,\n itemType: ToolbarItemType.Icon,\n label: t(`Components:Table.${isExpandable ? \"OpenAll\" : \"CloseAll\"}`),\n iconName: isExpandable ? \"ExpandAll\" : \"CollapseAll\"\n };\n\n return (<>\n \n {props.header}\n {!!rows.length && {createToolbarItem(expandCollapseAll, handleToggleAll)}}\n \n \n );\n};","import { EMPTY_DASH } from \"@components/readOnlyList/ReadOnlyList\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { IFiscalYearEntity, ITaxDepreciationPolicyItemEntity, ITaxPriceLimitEntity } from \"@odata/GeneratedEntityTypes\";\nimport { isDefined } from \"@utils/general\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SimpleTable from \"../../../components/simpleTable/SimpleTable\";\nimport { RowType, Status, TextAlign } from \"../../../enums\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport { getUtcDayjs } from \"../../../types/Date\";\n\nexport interface ITaxDepreciationPolicyItemEntityExtended extends ITaxDepreciationPolicyItemEntity {\n FiscalYear: IFiscalYearEntity;\n}\n\ninterface IFiscalYearEntityExtended extends IFiscalYearEntity {\n isFakeOne?: boolean;\n}\n\ninterface IProps {\n header?: React.ReactElement;\n data: ITaxDepreciationPolicyItemEntityExtended[];\n FYs: IFiscalYearEntity[];\n putInUseDate: Date;\n currentFY: IFiscalYearEntity;\n disableBeforeDate: Date;\n currency: string;\n TaxPriceLimits?: ITaxPriceLimitEntity[];\n}\n\nexport const TaxDepreciationPolicyTable: React.FunctionComponent = (props) => {\n const { t } = useTranslation([\"FixedAsset\"]);\n const reductionId = \"reduction\";\n const usedExpenseId = \"usedExpense\";\n const partialExpenseId = \"partialExpense\";\n const commonExpenseSumId = \"depreciated\";\n const usedExpenseSumId = \"usedExpenseSum\";\n\n let columns: IColumn[] = [\n { id: \"year\", label: `${t(\"FixedAsset:DepreciationTable.Year\")}:` },\n { id: \"depreciation\", label: `${t(\"FixedAsset:DepreciationTable.CommonDepreciation\")}:`, textAlign: TextAlign.Right },\n { id: reductionId, label: `${t(\"FixedAsset:DepreciationTable.ReductionRate\")}:`, textAlign: TextAlign.Right },\n { id: usedExpenseId, label: `${t(\"FixedAsset:DepreciationTable.UsedExpense\")}:`, textAlign: TextAlign.Right },\n { id: partialExpenseId, label: `${t(\"FixedAsset:DepreciationTable.PartialExpense\")}:`, textAlign: TextAlign.Right },\n { id: \"balance\", label: `${t(\"FixedAsset:DepreciationTable.Balance\")}:`, textAlign: TextAlign.Right },\n {\n id: commonExpenseSumId,\n label: `${t(\"FixedAsset:DepreciationTable.CommonDepreciationSum\")}:`,\n textAlign: TextAlign.Right\n },\n {\n id: usedExpenseSumId,\n label: `${t(\"FixedAsset:DepreciationTable.UsedExpenseSum\")}:`,\n textAlign: TextAlign.Right\n },\n ];\n\n const _createDayjs = (date: Date) => date && getUtcDayjs(date);\n\n const rows: IRow[] = [];\n const { currency, currentFY: highlightedFY, disableBeforeDate, data, TaxPriceLimits, FYs } = props;\n const disabledDate = _createDayjs(disableBeforeDate);\n let showReductionRate = false;\n let showLimitedExpenses = false;\n let showPartialExpense = false;\n\n if (data?.length > 0) {\n // process data, prepare rows to be shown\n let id = 1;\n\n const _addMergedRow = (text: string): void => {\n rows.push({\n id: id++,\n values: {},\n type: RowType.Merged,\n isDivider: true,\n content: ({text})\n });\n };\n\n const _addInterruptionRow = (interruptedYears: IFiscalYearEntity[], hasNextRow?: boolean) => {\n const from = parseInt(interruptedYears[0].Number);\n const to = interruptedYears?.length > 1 ? parseInt(interruptedYears[interruptedYears.length - 1].Number) : null;\n // Adds row with info about interruption\n const key = !hasNextRow ? \"InterruptedFrom\" : (to ? \"InterruptedBetween\" : \"InterruptedIn\");\n _addMergedRow(t(`FixedAsset:DepreciationTable.${key}`, { year: from, toYear: to }));\n };\n\n const _addRegularRow = (item: ITaxDepreciationPolicyItemEntityExtended, FY?: IFiscalYearEntity) => {\n const year = FY?.Number ?? \"\";\n const TaxLimit = item.TaxPriceLimitCode && TaxPriceLimits?.find(tpl => tpl.Code === item.TaxPriceLimitCode);\n const ReductionRate = item.ReductionRate ? `${item.ReductionRate} %` : null;\n const reduction = [TaxLimit?.ShortName, ReductionRate].filter(isDefined).join(\", \");\n rows.push({\n id: id++,\n values: {\n year,\n depreciation: formatCurrency(item.CalculatedExpense, currency),\n [reductionId]: reduction ? reduction : EMPTY_DASH,\n [usedExpenseId]: formatCurrency(item.DepreciationExpense, currency),\n [partialExpenseId]: item.PartialExpense ? formatCurrency(item.PartialExpense, currency) : EMPTY_DASH,\n balance: formatCurrency(item.EndValue, currency),\n [commonExpenseSumId]: formatCurrency(item.AccumulatedDepreciation, currency),\n [usedExpenseSumId]: formatCurrency(item.AccumulatedDepreciationExpense, currency),\n },\n type: RowType.Value,\n isDisabled: !!(FY?.DateStart && disabledDate?.isSameOrAfter(_createDayjs(FY?.DateStart), \"day\")),\n statusHighlight: year === highlightedFY?.Number ? Status.Success : null\n });\n };\n\n // creates fake FY before/after the given one (+/- diff years)\n const _createFakeFY = (FY: IFiscalYearEntity, diff: number): IFiscalYearEntityExtended => {\n const baseProp = diff > 0 ? \"DateEnd\" : \"DateStart\";\n const secondProp = diff > 0 ? \"DateStart\" : \"DateEnd\";\n const baseDate = getUtcDayjs(FY?.[baseProp]);\n const plusMinusOne = diff / Math.abs(diff); // make from any numeric diff 1 or -1 based on sign\n const invPlusMinusOne = plusMinusOne * -1;\n return {\n [baseProp]: baseDate.add(diff, \"year\").toDate(),\n [secondProp]: baseDate.add(diff + invPlusMinusOne, \"year\").add(plusMinusOne, \"day\").toDate(),\n Number: (parseInt(FY.Number) + diff).toString(),\n isFakeOne: true\n };\n };\n\n const _getFYidx = (date: Date): number => FYs.findIndex(fy => getUtcDayjs(fy.DateStart).isSameOrBefore(date, \"day\") && getUtcDayjs(fy.DateEnd).isSameOrAfter(date, \"day\"));\n const _isDateSameOrBeforeFY = (date: Date, FY: IFiscalYearEntity): boolean => date && getUtcDayjs(date).isSameOrBefore(getUtcDayjs(FY.DateEnd), \"day\");\n\n // find FY according to putInUseDate or take first one for imported asset (putInUseDate is before the first FY)\n let currFYIdx = Math.max(_getFYidx(props.putInUseDate), 0);\n let lastFY: IFiscalYearEntityExtended = null;\n let currFY: IFiscalYearEntityExtended = FYs[currFYIdx];\n\n let interruptionYears: IFiscalYearEntity[] = [];\n let dataIdx = 0;\n let interruptedFromAdded = false;\n\n const _nextFY = (diff = 1) => {\n lastFY = currFY;\n currFYIdx += diff;\n currFY = FYs[currFYIdx];\n if (!currFY) {\n currFY = _createFakeFY(lastFY, diff);\n }\n };\n\n while (dataIdx < data.length) {\n const dataItem = data[dataIdx];\n\n const { DateDepreciation } = dataItem;\n\n // check general conditions to show columns\n showLimitedExpenses = showLimitedExpenses || !!(dataItem.TaxPriceLimitCode || dataItem.ReductionRate);\n showReductionRate = showReductionRate || !!dataItem.ReductionRate || showLimitedExpenses; // if expenses are limited, always show why\n showPartialExpense = showPartialExpense || !!dataItem.PartialExpense;\n\n if (!DateDepreciation) {\n if (!interruptedFromAdded) {\n interruptedFromAdded = true;\n _addInterruptionRow([currFY], false);\n }\n // if DateDepreciation is not set, the asset is interrupted and we show just row without FY info\n _addRegularRow(dataItem, null);\n dataIdx++;\n continue;\n }\n\n // if DateDepreciation is different than FY, there is some interruption in the data -> add interruption year and continue with next FY;\n if (!_isDateSameOrBeforeFY(DateDepreciation, currFY)) {\n interruptionYears.push(currFY);\n // continue with next FY...\n _nextFY();\n continue;\n }\n\n // in case we collect some interruption years in previous cycles, create interruption row and continue with regular row\n if (interruptionYears.length > 0) {\n // first matched data row after interruption -> add interruption row\n _addInterruptionRow(interruptionYears, true);\n interruptionYears = [];\n }\n\n const shouldSkipPartialExpenseRow = currFY.isFakeOne && dataItem.PartialExpense && getUtcDayjs(DateDepreciation).diff(getUtcDayjs(), \"years\") > 5;\n const diffToLastRow = data.length - dataIdx - 1;\n const isLastRow = diffToLastRow === 0;\n if (shouldSkipPartialExpenseRow && !isLastRow) {\n // add row with partial expense info and move to the last data row\n _addMergedRow(t(\"FixedAsset:DepreciationTable.PartialExpenseUntilEnd\", { amount: formatCurrency(dataItem.PartialExpense, currency) }));\n } else {\n // create regular row and move to next data row and FY\n _addRegularRow(dataItem, currFY);\n }\n const diff = shouldSkipPartialExpenseRow && !isLastRow ? diffToLastRow : 1;\n dataIdx += diff;\n _nextFY(diff);\n }\n }\n\n columns = columns.filter(c => {\n switch(c.id) {\n case reductionId:\n return showReductionRate;\n case usedExpenseId:\n return showLimitedExpenses;\n case partialExpenseId:\n return showPartialExpense;\n // summaries: If no special conditions, only commonExpense is visible.\n // If limited expenses, both are visible.\n // If partial expenses, only used is visible\n case commonExpenseSumId:\n return !showPartialExpense || showLimitedExpenses;\n case usedExpenseSumId:\n return showPartialExpense || showLimitedExpenses;\n default:\n return true;\n }\n });\n\n return (<>\n {props.header}\n \n );\n};","import { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { parseDateFields } from \"@odata/Data.utils\";\nimport {\n AssetEntity,\n IAccountingDepreciationPolicyItemEntity,\n IAssetEntity,\n ITaxPriceLimitEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AssetStatusCode, DepreciationPolicyTypeCode, DepreciationTypeCode } from \"@odata/GeneratedEnums\";\nimport { getTaxPriceLimitsMemoized } from \"@pages/asset/fixedAsset/FixedAsset.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { sortCompareFn } from \"@utils/general\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport { Button } from \"../../../components/button\";\nimport Dialog from \"../../../components/dialog\";\nimport ReadOnlyList, { EMPTY_DASH } from \"../../../components/readOnlyList/ReadOnlyList\";\nimport { ASSET_API_URL } from \"../../../constants\";\nimport { TRecordAny } from \"../../../global.types\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport {\n getFiscalYearByDate,\n getNewestInactiveFY,\n getSortedFYs,\n isFiscalYearUsed\n} from \"../../fiscalYear/FiscalYear.utils\";\nimport { fetchAccountingDepreciationPolicyItems } from \"../Asset.utils\";\nimport { AccountingDepreciationPolicyTable } from \"./AccountingDepreciationPolicyTable\";\nimport {\n getAssetCurrency,\n isCategoryWithFlexibleAccountingDepreciation,\n isCategoryWithFlexibleTaxDepreciation,\n isImportedAsset\n} from \"./FixedAssetDef\";\nimport { ITaxDepreciationPolicyItemEntityExtended, TaxDepreciationPolicyTable } from \"./TaxDepreciationPolicyTable\";\nimport { isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport Alert from \"@components/alert\";\nimport { Status } from \"../../../enums\";\n\n\ninterface IProps {\n storage: FormStorage;\n type: DepreciationPolicyTypeCode;\n onClose: () => void;\n}\n\ninterface IState {\n loaded: boolean;\n data?: TRecordAny;\n TaxPriceLimits?: ITaxPriceLimitEntity[];\n}\n\ninterface IFetchDeprecationPolicyData {\n Id?: number;\n AssetValue: number;\n DateFrom: string;\n // Accounting deprecation policy\n DepreciationTypeCode?: DepreciationTypeCode;\n DateRequestedLastAccountingDepreciation?: string;\n UsefulLife?: number;\n // Tax deprecation policy\n CoefficientCode?: string;\n TaxPriceLimitCode?: string;\n ReductionRate?: number;\n DateRequestedLastTaxDepreciation?: string;\n // ImportedAsset fields\n IsImportedAsset?: boolean;\n ImportedAssetPrice?: number;\n RemainingAccountingPrice?: number;\n RemainingTaxPrice?: number;\n RemainingTaxYears?: number;\n IsImproved?: boolean;\n}\n\nexport default class PolicyDepreciationDialog extends React.Component {\n // default state\n state: IState = {\n loaded: false\n };\n\n get dialogTitle(): string {\n return this.props.storage.t(`FixedAsset:Form.${this.isTaxRelated ? \"TaxDepreciationPolicy\" : \"AccountingDepreciationPolicy\"}`);\n }\n\n get isTaxRelated(): boolean {\n return this.props.type === DepreciationPolicyTypeCode.TaxDepreciation;\n }\n\n componentDidMount() {\n this.init();\n }\n\n getData(): Promise {\n if (this.props.storage.isDirty()) {\n // shows data according to latest changes in the form\n return this.fetchRestData();\n } else if (this.isTaxRelated) {\n // uses data from entity (data are loaded with the main form\n return Promise.resolve(this.setDataFromEntity());\n } else if (!isCashBasisAccountingCompany(this.props.storage.context)) {\n // load data for AccountingDepreciationPolicy/Items from oData endpoint\n return this.fetchAccountingDepreciationItems();\n }\n return null;\n }\n\n async init(): Promise {\n const [data, TaxPriceLimits] = await Promise.all([this.getData(), this.isTaxRelated && getTaxPriceLimitsMemoized(this.props.storage)]);\n this.setState({ loaded: true, data, TaxPriceLimits });\n }\n\n enhanceTaxDepreciationPolicyItems(items: ITaxDepreciationPolicyItemEntityExtended[]): ITaxDepreciationPolicyItemEntityExtended[] {\n const { storage } = this.props;\n\n return items.reduce((filteredItems, item, idx) => {\n if (item.IsForReportOnly !== true) {\n filteredItems.push({\n ...item,\n FiscalYear: item.DateDepreciation && getFiscalYearByDate(storage.context, item.DateDepreciation)\n });\n }\n return filteredItems;\n }, []);\n }\n\n async fetchRestData(): Promise {\n const { storage } = this.props;\n const entity = storage.data.entity as IAssetEntity;\n const isImported = isImportedAsset({ storage });\n const isFlexibleTaxDepreciation = isCategoryWithFlexibleTaxDepreciation({ storage });\n const isFlexibleAccDepreciation = isCategoryWithFlexibleAccountingDepreciation({ storage });\n\n const data: IFetchDeprecationPolicyData = {\n AssetValue: entity.CalculatedPrice ?? 0,\n DateFrom: formatDateToDateString(entity.DateFirstPutInUse),\n IsImportedAsset: isImported\n };\n if (entity.Status?.Code !== AssetStatusCode.Created) {\n data.Id = entity.Id;\n }\n if (isImported) {\n data.ImportedAssetPrice = entity.ImportedAssetPrice;\n }\n if (this.isTaxRelated) {\n data.CoefficientCode = entity.TaxDepreciationPolicy.Coefficient?.Code ?? null;\n data.ReductionRate = entity.TaxDepreciationPolicy.ReductionRate ?? 0;\n data.TaxPriceLimitCode = entity.TaxDepreciationPolicy.TaxPriceLimitCode ?? entity.TaxDepreciationPolicy.TaxPriceLimit?.Code ?? null;\n if (isFlexibleTaxDepreciation) {\n data.DateRequestedLastTaxDepreciation = formatDateToDateString(entity.TaxDepreciationPolicy.DateRequestedLastDepreciation);\n }\n if (isImported) {\n data.RemainingTaxPrice = entity.RemainingTaxPrice;\n if (isVisibleByPath(storage, AssetEntity.RemainingTaxYears)) {\n data.RemainingTaxYears = entity.RemainingTaxYears ?? 0;\n }\n data.IsImproved = !!entity.IsImproved;\n }\n } else {\n data.DepreciationTypeCode = entity.AccountingDepreciationPolicy?.DepreciationType?.Code as DepreciationTypeCode;\n if (isFlexibleAccDepreciation) {\n data.DateRequestedLastAccountingDepreciation = formatDateToDateString(entity.AccountingDepreciationPolicy.DateRequestedLastDepreciation);\n } else {\n data.UsefulLife = entity.AccountingDepreciationPolicy?.UsefulLife;\n }\n if (isImported) {\n data.RemainingAccountingPrice = entity.RemainingAccountingPrice;\n }\n }\n\n const result = await customFetch(`${ASSET_API_URL}/policy/${this.props.type}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(data)\n });\n\n if (result.ok) {\n let data = await result.json();\n parseDateFields(data);\n\n data = data.sort((a: ITaxDepreciationPolicyItemEntityExtended, b: ITaxDepreciationPolicyItemEntityExtended) =>\n sortCompareFn(a.Order, b.Order));\n\n if (this.isTaxRelated) {\n data = this.enhanceTaxDepreciationPolicyItems(data);\n }\n\n return data;\n }\n return null;\n }\n\n async fetchAccountingDepreciationItems(): Promise {\n return fetchAccountingDepreciationPolicyItems(this.props.storage);\n }\n\n setDataFromEntity(): ITaxDepreciationPolicyItemEntityExtended[] {\n const { storage } = this.props;\n const entity = storage.data.entity as IAssetEntity;\n const items = ((this.isTaxRelated ? entity.TaxDepreciationPolicy.Items : entity.AccountingDepreciationPolicy.Items) ?? []) as ITaxDepreciationPolicyItemEntityExtended[];\n return this.enhanceTaxDepreciationPolicyItems(items)\n .sort((a: IEntity, b: IEntity) => sortCompareFn(parseInt(a.Order), parseInt(b.Order)));\n }\n\n getHeaderData = (): IReadOnlyListItem[] => {\n const { storage } = this.props;\n const { data } = this.state;\n\n const first = data[0];\n const last = data[data.length - 1];\n\n const headerData: IReadOnlyListItem[] = [];\n headerData.push({\n label: storage.t(\"FixedAsset:DepreciationTable.FirstDepreciation\"),\n value: first?.DateDepreciation ? DateType.format(getUtcDayjs(first.DateDepreciation)): EMPTY_DASH\n });\n headerData.push({\n label: storage.t(\"FixedAsset:DepreciationTable.LastDepreciation\"),\n value: last?.DateDepreciation ? DateType.format(getUtcDayjs(last.DateDepreciation)) : EMPTY_DASH\n });\n if (!this.isTaxRelated) {\n const md = (storage.data.entity as IAssetEntity).DepreciationAccount?.Number;\n const d = (storage.data.entity as IAssetEntity).AccumulatedDepreciationsAccount?.Number;\n const shortName = md && d && `${md}/${d}`;\n if (shortName) {\n headerData.push({\n label: storage.t(\"FixedAsset:DepreciationTable.AccountAssignment\"),\n value: shortName\n });\n }\n }\n return headerData;\n };\n\n renderConfirmationButtons(): React.ReactElement {\n return (\n \n );\n }\n\n renderError(): React.ReactElement {\n const { storage } = this.props;\n return (\n \n );\n }\n\n renderContent(): React.ReactElement {\n const { context, data } = this.props.storage;\n if (!this.state.data) {\n // no data loaded -> show error. BE most likely failed to return data with unexpected error\n return this.renderError();\n }\n const asset = data.entity as IAssetEntity;\n const currency = getAssetCurrency(asset, context);\n const openedFYStartDate = getNewestInactiveFY(context)?.DateEnd;\n\n if (this.isTaxRelated) {\n const FYs = getSortedFYs(context)\n .filter(isFiscalYearUsed);\n const currentFY = getFiscalYearByDate(context, getUtcDayjs());\n return (\n }\n currency={currency}\n FYs={FYs}\n putInUseDate={asset.DateFirstPutInUse}\n TaxPriceLimits={this.state.TaxPriceLimits}\n currentFY={currentFY}\n disableBeforeDate={openedFYStartDate}\n data={this.state.data as ITaxDepreciationPolicyItemEntityExtended[]}/>\n );\n }\n\n return (\n }\n currency={currency}\n disableBeforeDate={openedFYStartDate}\n data={this.state.data as IAccountingDepreciationPolicyItemEntity[]}/>\n );\n }\n\n render() {\n return (\n

    \n {this.state.loaded ? this.renderContent() : }\n \n );\n }\n}","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { WithPromisedComponent, withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\nimport { isSameDay } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs, isFieldDisabled, isVisible, isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { ISmartFormGroupActionEvent } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { fetchSelectItems } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { getBoundValue, setBoundValue, setDirtyFlag } from \"@odata/Data.utils\";\nimport {\n AccountingDepreciationPolicyEntity,\n AssetEntity,\n EntityTypeName,\n IAssetEntity,\n IAssetItemEntity,\n IDepreciationSettingEntity,\n TaxDepreciationCategoryEntity,\n TaxDepreciationCoefficientEntity,\n TaxDepreciationPolicyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AssetItemTypeCode,\n AssetStatusCode,\n AssetTypeCode,\n DepreciationPolicyTypeCode,\n DepreciationSettingTypeCode,\n DepreciationTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { getCurrentRangeIndex, TTemporal } from \"@odata/TemporalUtils\";\nimport { updateAssetPartially } from \"@pages/asset/Asset.utils\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction } from \"@pages/documents/Document.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isDefined } from \"@utils/general\";\nimport { startsWith } from \"@utils/string\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { Trans } from \"react-i18next\";\n\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport Dialog from \"../../../components/dialog\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { FormMode } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext, { createBindingContext, createPath } from \"../../../odata/BindingContext\";\nimport DateType, { DATE_MAX, getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport PlugAndPlayForm from \"../../../views/formView/PlugAndPlayForm\";\nimport TemporalFormDialog from \"../../../views/formView/TemporalFormDialog\";\nimport { ITableDef } from \"../../../views/table/TableView.utils\";\nimport { reloadAccounts } from \"../../accountAssignment/Account.utils\";\nimport { getCurrentCoAId } from \"../../accountAssignment/AccountAssignment.utils\";\nimport DialogPage from \"../../DialogPage\";\nimport { getFiscalYearByChartOfAccount, getOldestActiveFY, getSortedFYs } from \"../../fiscalYear/FiscalYear.utils\";\nimport { setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport { getDefinitionsFactory } from \"../unorganizedAsset/UnorganizedAssetDef\";\nimport UnorganizedAssetTableView from \"../unorganizedAsset/UnorganizedAssetTableView\";\nimport {\n DateFirstPutInUsePath,\n FixedAssetFormViewAction,\n getFirstActiveFiscalYearOfAssetInUse,\n getLowPriceAssetLimit,\n getTaxDepreciationPolicyLocalCategoryId,\n getTaxDepreciationSelectItems,\n IFixedAssetCustomData,\n TRootAssetItems,\n Validity\n} from \"./FixedAsset.utils\";\nimport {\n AccountingDepreciationPolicyGroup,\n AccountingDepreciationPolicyTypePath,\n AccountingRequestedLastDepreciationPath,\n canBeDepreciated,\n DepreciationSettingsValidityLocalPath,\n DepreciationValueLocalPath,\n FixedAssetEditableWindowActionFinish,\n FixedAssetFormViewActionStorageKey,\n getCalculatedPrice,\n getTaxDepreciationCoefficient,\n hasAcceleratedTaxDepreciation,\n hasTaxDepreciation,\n INTANGIBLE_ACCOUNT_PREFIX,\n INTANGIBLE_DEPRECIATION_ACCOUNT_PREFIX,\n isCategoryWithFlexibleAccountingDepreciation,\n isCategoryWithFlexibleTaxDepreciation,\n isFVE30bTaxCategory,\n isImportedAsset,\n isImportedAssetEntity,\n isImportedAssetInCreatedState,\n isInCreatedState,\n isNotInCreatedState,\n TANGIBLE_ACCOUNT_PREFIX,\n TANGIBLE_DEPRECIATION_ACCOUNT_PREFIX,\n TaxDepreciationCategoryCodePath,\n TaxDepreciationPolicyFirstYearValueIncreasePath,\n TaxDepreciationPolicyGroup,\n TaxDepreciationPolicyLocalCategoryPath,\n TaxDepreciationPolicyTypePath,\n TaxRequestedLastDepreciationPath\n} from \"./FixedAssetDef\";\nimport { getDefinition as getDiscardDefinition } from \"./FixedAssetDisposalDef\";\nimport FixedAssetDisposalDialogFormView from \"./FixedAssetDisposalDialogFormView\";\nimport FixedAssetMassPdfExportDialog from \"./FixedAssetMassPdfExportDialog\";\nimport PolicyDepreciationDialog from \"./PolicyDepreciationDialog\";\nimport { getAlertFromError } from \"../../../views/formView/Form.utils\";\nimport { isODataError } from \"@odata/Data.types\";\n\ninterface IProps extends IFormViewProps, WithConfirmationDialog, WithPromisedComponent {\n}\n\nenum AssetDialogType {\n None,\n PolicyDepreciation,\n PartialDepreciation,\n Interrupt,\n UnsortedAsset,\n Discard\n}\n\ninterface IState {\n dialogType?: AssetDialogType;\n policyDialogType?: DepreciationPolicyTypeCode;\n}\n\nconst _30bDefaultMonths = 240;\n\nclass FixedAssetFormView extends FormViewForExtend {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n title: \"FixedAsset:FormTitle\"\n };\n\n state: IState = {\n dialogType: null\n };\n _lastDatePutInUse: Date;\n\n componentDidMount() {\n super.componentDidMount();\n this.registerHeader();\n\n this.props.storage.emitter.on(FixedAssetEditableWindowActionFinish, this.handleEditableWindowActionFinish);\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n this.registerHeader();\n }\n\n\n shouldComponentUpdate(nextProps: Readonly, nextState: Readonly): boolean {\n // this form is updated only directly using force update\n return this.state.dialogType !== nextState.dialogType\n || this.state.policyDialogType !== nextState.policyDialogType;\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n this.props.storage.emitter.off(FixedAssetEditableWindowActionFinish, this.handleEditableWindowActionFinish);\n }\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const numberOursBc = this.props.storage.data.bindingContext.navigate(\"NumberOurs\");\n this.props.storage.addCustomRef(this._refHeader.current, numberOursBc);\n }\n };\n\n get hasAccounting(): boolean {\n return isAccountAssignmentCompany(this.context);\n }\n\n get isCbaCompany(): boolean {\n return isCashBasisAccountingCompany(this.context);\n }\n\n get defaultDateFirstPutInUse(): Date {\n const { storage } = this.props;\n if (isImportedAssetEntity(storage.data.entity)) {\n // default date for imported asset is a day before first fiscalYear\n const firstFY = getSortedFYs(storage?.context)?.[0];\n if (firstFY) {\n return getUtcDayjs(firstFY.DateStart).subtract(1, \"day\").toDate();\n }\n }\n return getUtcDate();\n }\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n const promises: Promise[] = [];\n const isNew = storage.data.bindingContext.isNew();\n\n\n if (!isAuditTrail) {\n if (!storage.data.entity.NumberOurs) {\n promises.push(setMatchingNumberRange(storage, true));\n }\n\n const { DateFirstPutInUse } = storage.data.entity;\n if (!this._lastDatePutInUse || (isNew && isImportedAsset({ storage }))) {\n // first time onAfterLoad is called\n if (isImportedAssetInCreatedState({ storage })) {\n // set isInUse for old assets\n await this.correctFormDataAfterIsInUseChange(true);\n await this.updateLowPriceAssetFlag();\n } else {\n promises.push(getLowPriceAssetLimit(storage, DateFirstPutInUse));\n }\n this._lastDatePutInUse = DateFirstPutInUse ?? this.defaultDateFirstPutInUse;\n } else if (DateFirstPutInUse) {\n // user is switching between rows in table, DatePutInUse may change, so we have to refresh\n // the form onAfterLoad (reloadAccounts). On the first load, _lastDatePutInUse will be same\n // as DateFirstPutInUse, so there won't be any account reload\n promises.push(this.refreshFormAfterDatePutInUseChange());\n }\n\n if (!storage.data.entity.IsInUse) {\n this.clearAccountsData();\n }\n if (isNew && isCashBasisAccountingCompany(this.context) && isImportedAsset({ storage })) {\n const typeBc = storage.data.bindingContext.navigate(\"Type\");\n storage.setValue(typeBc, AssetTypeCode.Tangible);\n storage.correctEnumValue(typeBc, AssetTypeCode.Tangible);\n }\n }\n /**\n * always updates taxDeprecationSelects\n * - if not in use, we would like to prepare default data, so there is no delay when \"putInUse\" is toggled\n * - if already in use, the data has to be there, so user can change them\n */\n if (!isNew) {\n // set local contexts from entity\n this.initTaxDepreciationLocalContexts();\n this.processAssetItems();\n }\n promises.push(this.updateTaxDepreciationSelects(!isAuditTrail));\n\n await Promise.all(promises);\n\n // refresh whole form, we need to update groups visibility + button states\n this.forceUpdate();\n return super.onAfterLoad();\n };\n\n onBeforeSave = (): IAssetEntity => {\n const { storage } = this.props;\n const { bindingContext, entity, origEntity } = storage.data;\n const data: IAssetEntity = cloneDeep(entity);\n\n if (bindingContext.isNew()) {\n setBoundValue({\n bindingContext: bindingContext.navigate(\"Company/Id\"),\n data,\n newValue: storage.context.getCompany().Id,\n dataBindingContext: bindingContext,\n preventCloning: true\n });\n data.Currency = { Code: storage.context.getDefaultCurrency() };\n }\n\n const canBeTaxDepreciated = hasTaxDepreciation({ storage });\n const canBeAccountingDepreciated = canBeDepreciated({ storage });\n const isFlexibleTaxDepreciationAsset = isCategoryWithFlexibleTaxDepreciation({ storage });\n const isFlexibleAccDepreciationAsset = isCategoryWithFlexibleAccountingDepreciation({ storage });\n\n if (!data.Items?.length && this.isCbaCompany && this.entity.Type?.Code === AssetTypeCode.Intangible) {\n const item: IAssetItemEntity = {\n ItemTypeCode: AssetItemTypeCode.PutInUse,\n Amount: data.CalculatedPrice,\n CurrencyCode: getCompanyCurrency(storage.context),\n DateOfTransaction: data.DateFirstPutInUse\n };\n data.Items = [item];\n }\n\n if (!isFlexibleTaxDepreciationAsset && data.TaxDepreciationPolicy?.DateRequestedLastDepreciation) {\n data.TaxDepreciationPolicy.DateRequestedLastDepreciation = null;\n }\n\n if (this.hasAccounting) {\n if (isFlexibleAccDepreciationAsset) {\n data.AccountingDepreciationPolicy.UsefulLife = null;\n } else if (data.AccountingDepreciationPolicy) {\n data.AccountingDepreciationPolicy.DateRequestedLastDepreciation = null;\n }\n } else {\n // remove possible default values on CBA company\n delete data.AccountingDepreciationPolicy;\n }\n\n if (!data.IsImportedAsset && origEntity.IsInUse && !data.IsInUse) {\n // user removed \"PutInUse\" item and asset is saved immediately - we don't want to remove policy object,\n // they are removed on BE later -> DEV-20166\n return data;\n }\n\n // last Acquisition item was removed -> cancel IsInUse\n if (!data.IsImportedAsset && !data.Items?.length && !(this.isCbaCompany && this.entity.Type?.Code === AssetTypeCode.Intangible)) {\n data.IsInUse = false;\n }\n\n const isImportedAssetInCreatedState = data.IsImportedAsset && isInCreatedState({ storage });\n\n if (isImportedAssetInCreatedState && !isVisibleByPath(storage, AssetEntity.RemainingTaxPrice)) {\n data.RemainingTaxPrice = entity.RemainingTaxPrice = 0;\n }\n\n if (isImportedAssetInCreatedState && !isVisibleByPath(storage, AssetEntity.RemainingAccountingPrice)) {\n data.RemainingAccountingPrice = entity.RemainingAccountingPrice = 0;\n }\n\n if ((data.IsImportedAsset && !hasAcceleratedTaxDepreciation({ storage })) || data.RemainingTaxPrice === 0) {\n data.RemainingTaxYears = entity.RemainingTaxYears = 0;\n }\n\n if (data.IsInUse) {\n // update coefficient according to latest selection in localContext fields\n if (canBeTaxDepreciated) {\n this.updateTaxDepreciationCoefficient(data);\n }\n if (!data.ChartOfAccounts?.Id && this.hasAccounting) {\n data.ChartOfAccounts = {\n Id: getCurrentCoAId({ storage }, {\n datePath: \"DateFirstPutInUse\",\n fallbackToActiveChOA: false\n })\n };\n }\n } else {\n // remove possible default values\n if (origEntity.InUseAccount) {\n data.InUseAccount = entity.InUseAccount = null;\n } else {\n delete data.InUseAccount;\n delete entity.InUseAccount;\n }\n\n data.Items = data.Items?.filter((item: IAssetItemEntity) => item.ItemType?.Code === AssetItemTypeCode.Acquisition);\n }\n\n if (!canBeTaxDepreciated || !data.IsInUse) {\n if (origEntity.TaxDepreciationPolicy) {\n data.TaxDepreciationPolicy = entity.TaxDepreciationPolicy = null;\n } else {\n delete data.TaxDepreciationPolicy;\n delete entity.TaxDepreciationPolicy;\n }\n }\n\n if (!canBeAccountingDepreciated || !data.IsInUse || !this.hasAccounting) {\n // todo: fix this in Data.utils\n if (origEntity.AccountingDepreciationPolicy) {\n data.AccountingDepreciationPolicy = entity.AccountingDepreciationPolicy = null;\n } else {\n delete data.AccountingDepreciationPolicy;\n delete entity.AccountingDepreciationPolicy;\n }\n if (origEntity.DepreciationAccount) {\n data.DepreciationAccount = entity.DepreciationAccount = null;\n } else {\n delete data.DepreciationAccount;\n delete entity.DepreciationAccount;\n }\n if (origEntity.AccumulatedDepreciationsAccount) {\n data.AccumulatedDepreciationsAccount = null;\n entity.AccumulatedDepreciationsAccount = null;\n } else {\n delete data.AccumulatedDepreciationsAccount;\n delete entity.AccumulatedDepreciationsAccount;\n }\n }\n\n if (isDefined(data.TaxDepreciationPolicy) && !data.TaxDepreciationPolicy?.ReductionRate) {\n data.TaxDepreciationPolicy = {\n ...data.TaxDepreciationPolicy,\n ReductionRate: 0\n };\n }\n\n return data;\n };\n\n async updateTaxDepreciationSelects(setInitialValue = true): Promise {\n const { storage } = this.props;\n if (!hasTaxDepreciation({ storage })) {\n this.updateUsefulLife(3);\n return;\n }\n\n const firstPutInUse = storage.getValueByPath(DateFirstPutInUsePath) ?? this.defaultDateFirstPutInUse;\n const type = storage.getValueByPath(TaxDepreciationPolicyTypePath) ?? DepreciationTypeCode.Linear;\n const localCategoryId = storage.getValueByPath(TaxDepreciationPolicyLocalCategoryPath);\n const firstYear = storage.getValueByPath(TaxDepreciationPolicyFirstYearValueIncreasePath);\n\n const {\n coefficients,\n Categories,\n FirstYearValues\n } = await getTaxDepreciationSelectItems(storage, type, localCategoryId, firstPutInUse);\n storage.setCustomData({ coefficients });\n\n const _updateItemsAndValue = (path: string, items: ISelectItem[], originalValue: TValue): TValue => {\n const bc = storage.data.bindingContext.navigate(path);\n const info = storage.getInfo(bc);\n info.fieldSettings = {\n ...info.fieldSettings,\n items\n };\n\n if (setInitialValue && !items.find(item => item.id === originalValue)) {\n const firstItem = items[0];\n const newValue = firstItem?.id ?? null;\n storage.clearAndSetValue(bc, newValue);\n if (firstItem && info?.fieldSettings?.localDependentFields?.length > 0) {\n storage.processDependentField(info.fieldSettings.localDependentFields, firstItem.additionalData, bc);\n }\n return newValue;\n }\n\n storage.addActiveField(bc);\n return originalValue;\n };\n\n const newLocalCategoryId = _updateItemsAndValue(TaxDepreciationPolicyLocalCategoryPath, Categories, localCategoryId) as string;\n let firstYearValueSelectItems = FirstYearValues;\n if (newLocalCategoryId !== localCategoryId) {\n // active category has changed, we need to recalculate related first year values\n firstYearValueSelectItems = (await getTaxDepreciationSelectItems(storage, type, newLocalCategoryId, firstPutInUse)).FirstYearValues;\n }\n _updateItemsAndValue(TaxDepreciationPolicyFirstYearValueIncreasePath, firstYearValueSelectItems, firstYear);\n if (setInitialValue) {\n // Sets default usefulLife if not set already\n this.updateUsefulLife(Categories[0]?.additionalData?.YearsOfDepreciation);\n }\n }\n\n updateUsefulLife(YearsOfDepreciation: number, force = false): void {\n // change UsefulLife when user changes manually Category select\n if ((force || !this.props.storage.getValueByPath(\"AccountingDepreciationPolicy/UsefulLife\")) && YearsOfDepreciation > 0) {\n this.props.storage.clearAndSetValueByPath(\"AccountingDepreciationPolicy/UsefulLife\", YearsOfDepreciation);\n }\n }\n\n updateTaxDepreciationCoefficient(data: IAssetEntity): void {\n const { storage } = this.props;\n const { bindingContext } = storage.data;\n\n const coeff = getTaxDepreciationCoefficient(storage);\n\n setBoundValue({\n bindingContext: bindingContext.navigate(\"TaxDepreciationPolicy/Coefficient\"),\n data,\n newValue: coeff ?? null,\n dataBindingContext: bindingContext,\n preventCloning: true\n });\n setBoundValue({\n bindingContext: bindingContext.navigate(\"TaxDepreciationPolicy/CoefficientCode\"),\n data,\n newValue: coeff?.Code ?? null,\n dataBindingContext: bindingContext,\n preventCloning: true\n });\n }\n\n initTaxDepreciationLocalContexts(): void {\n const { storage } = this.props;\n const asset = storage.data.entity as IAssetEntity;\n\n storage.setValueByPath(TaxDepreciationPolicyTypePath, asset.TaxDepreciationPolicy?.Coefficient?.DepreciationTypeCode);\n storage.setValueByPath(TaxDepreciationPolicyLocalCategoryPath, getTaxDepreciationPolicyLocalCategoryId(asset.TaxDepreciationPolicy));\n storage.setValueByPath(TaxDepreciationPolicyFirstYearValueIncreasePath, asset.TaxDepreciationPolicy?.Coefficient?.FirstYearValueIncrease);\n }\n\n async updateLowPriceAssetFlag(): Promise {\n const { storage } = this.props;\n const dateFirstPutInUse = storage.getValueByPath(\"DateFirstPutInUse\");\n const limit = await getLowPriceAssetLimit(storage, dateFirstPutInUse);\n const price = getCalculatedPrice(storage.data.entity);\n storage.setValueByPath(\"IsLowPriceAsset\", isDefined(price) && price <= limit);\n }\n\n updateCanBeDepreciatedFlag(skipUpdateOfTaxDepreciationSelects = false): void {\n const { storage } = this.props;\n const inUseAccountNumber = storage.getValueByPath(\"InUseAccount/Number\") || \"\";\n const canBeDepraciated = !inUseAccountNumber.startsWith(\"03\");\n storage.setValueByPath(\"CanBeDepreciated\", canBeDepraciated);\n if (canBeDepraciated && !skipUpdateOfTaxDepreciationSelects) {\n // set initial values to selects related to depreciation\n this.updateTaxDepreciationSelects(true);\n }\n }\n\n // process asset items - find related items according to documentItem, so remove icon can be hidden for them\n processAssetItems() {\n const { storage } = this.props;\n const { Items } = storage.data.entity;\n const processedItems: IAssetItemEntity[] = [];\n const rootItems: TRootAssetItems = {};\n Items?.sort((a, b) => b.Order - a.Order).forEach(item => {\n const foundRelated = item.DocumentItem?.Id && processedItems.find(i => i.Document?.Id === item.Document?.Id && i.DocumentItem?.Id === item.DocumentItem?.Id);\n if (!foundRelated) {\n // if no related items found, current item is rootItem\n rootItems[item.Id] = [];\n processedItems.push(item);\n } else {\n rootItems[foundRelated.Id].push(item.Id);\n }\n });\n storage.setCustomData({ rootItems });\n }\n\n updateAssetType(): void {\n const { storage } = this.props;\n const inUseAccountNumber = storage.getValueByPath(\"InUseAccount/Number\") || \"\";\n const isIntangible = inUseAccountNumber.startsWith(INTANGIBLE_ACCOUNT_PREFIX);\n const typeBc = storage.data.bindingContext.navigate(\"Type\");\n const newValue = isIntangible ? AssetTypeCode.Intangible : AssetTypeCode.Tangible;\n storage.setValue(typeBc, newValue);\n storage.correctEnumValue(typeBc, newValue);\n storage.refresh();\n }\n\n getDepreciationTypeFromAction(action: FixedAssetFormViewAction): DepreciationPolicyTypeCode {\n switch (action) {\n case FixedAssetFormViewAction.Tax:\n return DepreciationPolicyTypeCode.TaxDepreciation;\n case FixedAssetFormViewAction.Accounting:\n return DepreciationPolicyTypeCode.AccountingDepreciation;\n default:\n return null;\n }\n }\n\n recalculateFormAfterInUseAccountChange() {\n const { storage } = this.props;\n if (isImportedAssetInCreatedState({ storage })) {\n this.updateAssetType();\n }\n this.updateCanBeDepreciatedFlag();\n\n return this.defaultEmptyValuesIfVisible();\n }\n\n async defaultEmptyValuesIfVisible() {\n const { storage } = this.props;\n\n if (!storage.getValueByPath(TaxDepreciationPolicyTypePath) && isVisibleByPath(storage, TaxDepreciationPolicyTypePath)) {\n storage.setDefaultValueByPath(TaxDepreciationPolicyTypePath);\n await this.updateTaxDepreciationSelects(true);\n }\n if (this.hasAccounting) {\n if (!storage.getValueByPath(AccountingDepreciationPolicyTypePath) && isVisibleByPath(storage, AccountingDepreciationPolicyTypePath)) {\n storage.setDefaultValueByPath(AccountingDepreciationPolicyTypePath);\n }\n if (!storage.getValueByPath(AssetEntity.DepreciationAccount, { useDirectValue: false }) && isVisibleByPath(storage, AssetEntity.DepreciationAccount)) {\n await this.setDefaultDeprecationAccount();\n }\n }\n }\n\n getFirstAvailableFiscalYearDateStart() {\n return getFirstActiveFiscalYearOfAssetInUse(this.props.storage)?.DateStart;\n }\n\n async handleCustomHeaderAction(actionId: string): Promise {\n const { storage } = this.props;\n\n switch (true) {\n case [AssetItemTypeCode.TechnicalImprovement, AssetItemTypeCode.IncreaseOfPrice, AssetItemTypeCode.ReductionOfPrice].includes(actionId as AssetItemTypeCode):\n storage.setCustomData({\n FixedAssetFormViewAction: FixedAssetFormViewAction.ChangePrice,\n AssetItemTypeCode: actionId as AssetItemTypeCode\n });\n this.setState({ dialogType: AssetDialogType.UnsortedAsset });\n break;\n case actionId === FixedAssetFormViewAction.Discard:\n this.setState({ dialogType: AssetDialogType.Discard });\n break;\n case [FixedAssetFormViewAction.CancelPartialDepreciationSettings, FixedAssetFormViewAction.CancelInterrupt].includes(actionId as FixedAssetFormViewAction):\n const isInterrupt = FixedAssetFormViewAction.CancelInterrupt === actionId;\n // const { DateValidFrom, PartialExpense } = this.getCurrentDepreciationSettingsInfo();\n const dateFrom = this.getFirstAvailableFiscalYearDateStart();\n\n this.props.confirmationDialog.open({\n content: (\n \n }}/>\n ),\n onConfirm: this.handleDepreciationSettingCancel.bind(this, dateFrom),\n });\n break;\n case [FixedAssetFormViewAction.PartialDepreciationSettings, FixedAssetFormViewAction.Interrupt].includes(actionId as FixedAssetFormViewAction):\n const isPartialDep = actionId === FixedAssetFormViewAction.PartialDepreciationSettings;\n if (isPartialDep) {\n this.props.storage.setValueByPath(DepreciationValueLocalPath, this.getCurrentDepreciationSettingsInfo()?.PartialExpense);\n }\n this.props.storage.setValueByPath(DepreciationSettingsValidityLocalPath, Validity.SingleYear);\n this.setState({ dialogType: isPartialDep ? AssetDialogType.PartialDepreciation : AssetDialogType.Interrupt });\n break;\n case actionId === FixedAssetFormViewAction.AssetCardPdfExport:\n this.props.promisedComponent.openComponent((onFinish) => {\n return (\n \n );\n });\n break;\n }\n\n return super.handleCustomHeaderAction(actionId);\n }\n\n handleGroupAction = (args: ISmartFormGroupActionEvent) => {\n switch (args.id) {\n case FixedAssetFormViewAction.Tax:\n case FixedAssetFormViewAction.Accounting:\n const { storage } = this.props;\n this.updateTaxDepreciationCoefficient(storage.data.entity);\n this.setState({\n dialogType: AssetDialogType.PolicyDepreciation,\n policyDialogType: this.getDepreciationTypeFromAction(args.id)\n });\n break;\n case FixedAssetFormViewAction.AddFromUnsorted:\n this.props.storage.setCustomData({ [FixedAssetFormViewActionStorageKey]: args.id });\n this.setState({ dialogType: AssetDialogType.UnsortedAsset });\n break;\n }\n };\n\n handleInUseAccountChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === \"InUseAccount\" && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const { fiscalYear } = this.getFiscalDataCorrespondingToDateAccountingTransaction();\n\n await this.recalculateFormAfterInUseAccountChange();\n\n storage.setBusy(true);\n await reloadAccounts(storage, !!fiscalYear, \"AccumulatedDepreciationsAccount\");\n storage.setBusy(false);\n }\n };\n\n handleAccumulatedDepreciationAccountChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"AccumulatedDepreciationsAccount\" && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const { Number } = e.additionalData;\n const inUseAccountBc = storage.data.bindingContext.navigate(\"InUseAccount\");\n const currentInUseAccountNumber = storage.getValue(inUseAccountBc.navigate(\"Number\"));\n\n const _matches = (n1: string, n2: string) => n1?.[2] === n2?.[2];\n\n if (!_matches(currentInUseAccountNumber, Number) && canBeDepreciated({ storage })) {\n let prefix: string[] = null;\n if (startsWith(Number, INTANGIBLE_DEPRECIATION_ACCOUNT_PREFIX)) {\n prefix = [INTANGIBLE_ACCOUNT_PREFIX];\n } else if (startsWith(Number, TANGIBLE_DEPRECIATION_ACCOUNT_PREFIX)) {\n prefix = TANGIBLE_ACCOUNT_PREFIX;\n }\n const info = storage.getInfo(inUseAccountBc);\n const item = info.fieldSettings.items?.find(i => {\n const num = i.additionalData.Number;\n return (!prefix || prefix.some(p => startsWith(num, p))) && _matches(i.additionalData.Number, Number);\n });\n\n if (item) {\n storage.clearAndSetValue(inUseAccountBc, item.id);\n storage.clearAndSetValue(inUseAccountBc.navigate(\"Number\"), item.additionalData.Number);\n storage.clearAndSetValue(inUseAccountBc.navigate(\"Name\"), item.additionalData.Name);\n\n this.recalculateFormAfterInUseAccountChange();\n }\n }\n }\n };\n\n getFiscalDataCorrespondingToDateAccountingTransaction() {\n const { storage } = this.props;\n const asset = storage.data.entity as IAssetEntity;\n let { DateFirstPutInUse } = asset;\n const previousFiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, this._lastDatePutInUse);\n let { fiscalYear } = getFiscalDataCorrespondingToDateAccountingTransaction(storage, DateFirstPutInUse);\n let hasChanged = previousFiscalData.fiscalYear?.Id !== fiscalYear?.Id;\n\n if (isImportedAsset({ storage }) && !fiscalYear) {\n const { ChartOfAccounts } = asset;\n if (isNotInCreatedState({ storage }) && ChartOfAccounts?.Id) {\n fiscalYear = getFiscalYearByChartOfAccount(storage.context, ChartOfAccounts.Id);\n } else {\n fiscalYear = getOldestActiveFY(storage.context);\n }\n if (getUtcDayjs(DateFirstPutInUse).isBefore(fiscalYear.DateStart)) {\n DateFirstPutInUse = fiscalYear.DateStart;\n }\n // force reload the accounts for imported asset\n hasChanged = true;\n }\n this._lastDatePutInUse = DateFirstPutInUse;\n\n return { fiscalYear, hasChanged };\n }\n\n refreshFormAfterDatePutInUseChange = async (): Promise => {\n const { storage } = this.props;\n const { hasChanged, fiscalYear } = this.getFiscalDataCorrespondingToDateAccountingTransaction();\n\n if (this.hasAccounting && hasChanged) {\n // set value, so InUseAccount can read the data of its parent during save and during account reloading\n storage.setValueByPath(\"ChartOfAccounts\", fiscalYear?.ChartOfAccounts?.Id);\n // we can't let user save the form before the values are changed => busy indicator\n storage.setBusy(true);\n await Promise.all([\n reloadAccounts(storage, !!fiscalYear, \"InUseAccount\"),\n reloadAccounts(storage, !!fiscalYear, \"DepreciationAccount\"),\n this.updateLowPriceAssetFlag()\n ]);\n // AccumulatedDepreciationsAccount depends on InUseAccount\n await reloadAccounts(storage, !!fiscalYear, \"AccumulatedDepreciationsAccount\");\n storage.setBusy(false);\n storage.refresh(true);\n } else {\n // lowPriceAssetFlag is not related to FY change - update this anyway\n await this.updateLowPriceAssetFlag();\n storage.refresh(true);\n }\n };\n\n setDefaultDeprecationAccount = async (): Promise => {\n const { storage } = this.props;\n const bc = storage.data.bindingContext.navigate(AssetEntity.DepreciationAccount);\n const fieldInfo = storage.getInfo(bc);\n const items = await fetchSelectItems({\n fieldInfo,\n oData: storage.oData,\n appContext: this.context,\n storage\n });\n fieldInfo.fieldSettings.items = items;\n storage.clearAndSetValue(bc, items?.[0]?.additionalData ?? null);\n storage.refresh();\n };\n\n handleIsInUseChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === AssetEntity.IsInUse) {\n await this.correctFormDataAfterIsInUseChange(!!e.value);\n\n // update whole form as we show entire groups when IsInUse switch is toggled\n this.forceUpdate();\n }\n };\n\n handleRemainingTaxPriceChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"RemainingTaxPrice\") {\n const { storage } = this.props;\n const bc = storage.data.bindingContext.navigate(AssetEntity.RemainingTaxYears);\n if (storage.getValue(bc)) {\n storage.validateFieldSync(bc);\n }\n }\n };\n\n handleReductionRateChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"ReductionRate\") {\n // to refresh header actions\n this.props.storage.refresh(true);\n }\n };\n\n clearAccountsData() {\n if (!this.hasAccounting) {\n return;\n }\n\n const { storage } = this.props;\n const { bindingContext } = storage.data;\n [\"InUseAccount\", \"AccumulatedDepreciationsAccount\", \"DepreciationAccount\"]\n .forEach(path => {\n const bc = bindingContext.navigate(path);\n storage.clearAndSetValue(bc, null);\n const info = storage.getInfo(bc);\n delete info.fieldSettings.items;\n });\n }\n\n async correctFormDataAfterIsInUseChange(isInUse: boolean): Promise {\n const { storage } = this.props;\n\n if (isInUse) {\n // Start using the asset\n storage.setValueByPath(DateFirstPutInUsePath, this.defaultDateFirstPutInUse);\n storage.setDefaultValueByPath(TaxDepreciationPolicyTypePath);\n this.updateCanBeDepreciatedFlag(true);\n if (this.hasAccounting) {\n storage.setDefaultValueByPath(AccountingDepreciationPolicyTypePath);\n await this.setDefaultDeprecationAccount();\n }\n await this.refreshFormAfterDatePutInUseChange();\n // depends on previous, needs to be separated\n await this.updateTaxDepreciationSelects(true);\n } else {\n // stop using the asset:\n // -> remove line item\n // -> clear data\n storage.clearAndSetValueByPath(DateFirstPutInUsePath, null);\n storage.clearAndSetValueByPath(\"ChartOfAccounts\", null);\n storage.clearAndSetValueByPath(TaxDepreciationPolicyLocalCategoryPath, null);\n storage.clearAndSetValueByPath(TaxDepreciationPolicyTypePath, null);\n storage.clearAndSetValueByPath(TaxDepreciationPolicyFirstYearValueIncreasePath, null);\n storage.clearAndSetValueByPath(\"TaxDepreciationPolicy\", null);\n storage.clearAndSetValueByPath(\"AccountingDepreciationPolicy\", null);\n this.clearAccountsData();\n }\n }\n\n storeChangedDataBeforeAction() {\n const { storage } = this.props;\n storage.setCustomData({\n entityBeforeAction: cloneDeep(storage.data.entity)\n });\n }\n\n async restoreChangedDataAfterAction() {\n const { storage } = this.props;\n const dataBindingContext = storage.data.bindingContext;\n const entityBeforeAction = storage.getCustomData().entityBeforeAction;\n\n const copyField = (fieldPath: string) => {\n const bindingContext = dataBindingContext.navigate(fieldPath);\n const info = storage.getInfo(bindingContext);\n const args: IGetValueArgs = {\n data: storage.data.entity,\n storage, info, bindingContext\n };\n const origValue = getBoundValue({\n bindingContext, dataBindingContext,\n data: entityBeforeAction\n });\n if (isDefined(origValue) && isVisible(args) && !isFieldDisabled(info, storage, bindingContext)) {\n setBoundValue({\n bindingContext, dataBindingContext,\n data: storage.data.entity,\n newValue: origValue,\n preventCloning: true\n });\n storage.correctEnumValue(bindingContext, origValue, storage.data.entity);\n setDirtyFlag(storage, bindingContext);\n }\n };\n\n /**\n * Fields, which are kept and restored during actions, when we need to save/reload whole entity,\n * but without user's current changes\n */\n const basicFields = [\n AssetEntity.Note, AssetEntity.Name, AssetEntity.Labels,\n AssetEntity.IsInUse, AssetEntity.DateFirstPutInUse, AssetEntity.InUseAccount,\n createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.TaxPriceLimitCode),\n TaxDepreciationCategoryCodePath,\n createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.Coefficient, TaxDepreciationCoefficientEntity.TaxDepreciationCategory, TaxDepreciationCategoryEntity.YearsOfDepreciation),\n ];\n const additionalFields = [\n \"DepreciationAccount\", \"AccumulatedDepreciationsAccount\",\n TaxDepreciationPolicyTypePath, TaxDepreciationPolicyLocalCategoryPath, TaxDepreciationPolicyFirstYearValueIncreasePath,\n \"TaxDepreciationPolicy/ReductionRate\", TaxRequestedLastDepreciationPath,\n AccountingDepreciationPolicyTypePath, \"AccountingDepreciationPolicy/UsefulLife\",\n AccountingRequestedLastDepreciationPath,\n ];\n\n basicFields.forEach(copyField);\n\n this.updateCanBeDepreciatedFlag(true);\n await this.updateLowPriceAssetFlag();\n additionalFields.forEach(copyField);\n await this.updateTaxDepreciationSelects(true);\n this.updateTaxDepreciationCoefficient(storage.data.entity);\n // clear data\n storage.setCustomData({ entityBeforeAction: null });\n }\n\n _lastValidPutInUseDate: Date = null;\n handleDateFirstPutInUseChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === DateFirstPutInUsePath) {\n const { storage } = this.props;\n\n if (e.triggerAdditionalTasks) {\n await Promise.all([\n this.updateTaxDepreciationSelects(),\n this.refreshFormAfterDatePutInUseChange()\n ]);\n\n const _is30bCat = isFVE30bTaxCategory({ storage });\n const lastDepValue = getUtcDayjs(storage.getValueByPath(TaxRequestedLastDepreciationPath));\n const prevPutInUse = getUtcDayjs(this._lastValidPutInUseDate ?? e.previousValue as Date);\n if (_is30bCat && (!storage.data.entity.TaxDepreciationPolicy.DateRequestedLastDepreciation || lastDepValue.diff(prevPutInUse, \"month\") === _30bDefaultMonths)) {\n const lastDep = getUtcDayjs(e.value as Date).add(_30bDefaultMonths, \"months\").endOf(\"month\").toDate();\n const prevValue = storage.getValueByPath(TaxRequestedLastDepreciationPath);\n storage.clearAndSetValueByPath(TaxRequestedLastDepreciationPath, lastDep);\n this.defaultAccountingUsefulLifeFromRequestedLastDepreciation(lastDep, prevValue, true);\n }\n\n storage.addActiveField(storage.data.bindingContext.navigate(TaxDepreciationPolicyLocalCategoryPath), { revalidate: true });\n storage.refreshFields(true);\n storage.refreshGroupByKey(TaxDepreciationPolicyGroup);\n }\n\n if (DateType.isValid(e.value as Date)) {\n this._lastValidPutInUseDate = e.value as Date;\n } else if (DateType.isValid(e.previousValue as Date)) {\n this._lastValidPutInUseDate = e.previousValue as Date;\n }\n }\n };\n\n handleTaxDepreciationPolicyTypeChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === TaxDepreciationPolicyTypePath) {\n const { storage } = this.props;\n await this.updateTaxDepreciationSelects();\n storage.addActiveField(this.props.storage.data.bindingContext.navigate(\"RemainingTaxYears\"));\n\n storage.refresh(true);\n }\n };\n\n handleAccountingDepreciationPolicyTypeChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getNavigationPath() === AccountingDepreciationPolicyTypePath) {\n const { storage } = this.props;\n const taxDateBc = storage.data.bindingContext\n .navigate(AssetEntity.TaxDepreciationPolicy)\n .navigate(TaxDepreciationPolicyEntity.DateRequestedLastDepreciation);\n const requestedLastDepreciation = storage.getValue(taxDateBc);\n const force = (e.previousValue === DepreciationTypeCode.TimeDependent || e.value === DepreciationTypeCode.TimeDependent) && e.previousValue !== e.value;\n\n this.defaultAccountingUsefulLifeFromRequestedLastDepreciation(requestedLastDepreciation, requestedLastDepreciation, force);\n storage.addActiveGroupByKey(AccountingDepreciationPolicyGroup);\n }\n };\n\n defaultAccountingUsefulLifeFromRequestedLastDepreciation = (value: Date, prevValue: Date, force = false) => {\n const { storage } = this.props;\n const { bindingContext, entity } = storage.data;\n const isFlexibleAccDepreciation = isCategoryWithFlexibleAccountingDepreciation({ storage });\n const accBc = bindingContext\n .navigate(AssetEntity.AccountingDepreciationPolicy);\n\n if (isFlexibleAccDepreciation) {\n const { DateRequestedLastDepreciation } = entity.AccountingDepreciationPolicy;\n if (force || !DateRequestedLastDepreciation || isSameDay(prevValue, DateRequestedLastDepreciation)) {\n storage.setValue(accBc.navigate(AccountingDepreciationPolicyEntity.DateRequestedLastDepreciation), value);\n }\n } else {\n const usefulLifeBc = accBc\n .navigate(AccountingDepreciationPolicyEntity.UsefulLife);\n\n const firstPutInUse = storage.getValueByPath(DateFirstPutInUsePath);\n const _calc = (d: Date) =>\n Math.ceil(getUtcDayjs(d).diff(getUtcDayjs(firstPutInUse).endOf(\"month\"), \"year\", true));\n\n const calculatedUsefulLife = _calc(value);\n const currValue = storage.getValue(usefulLifeBc);\n if (calculatedUsefulLife > 0 && (force || !currValue || currValue === _calc(prevValue))) {\n storage.setValue(usefulLifeBc, calculatedUsefulLife);\n storage.addActiveGroupByKey(AccountingDepreciationPolicyGroup);\n }\n }\n };\n\n handleTaxDepreciationRequestedLastDepreciationChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getNavigationPath() === TaxRequestedLastDepreciationPath && e.triggerAdditionalTasks) {\n this.defaultAccountingUsefulLifeFromRequestedLastDepreciation(e.value as Date, e.previousValue as Date);\n\n // refresh also tax group to enable depreciation button\n this.props.storage.refreshGroupByKey(TaxDepreciationPolicyGroup);\n this.props.storage.refreshGroupByKey(AccountingDepreciationPolicyGroup);\n }\n };\n\n handleAccountingDepreciationRequestedLastDepreciationChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getNavigationPath() === AccountingRequestedLastDepreciationPath && e.triggerAdditionalTasks) {\n this.props.storage.refreshGroupByKey(AccountingDepreciationPolicyGroup);\n }\n };\n\n handleTaxDepreciationPolicyCategoryChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === TaxDepreciationPolicyLocalCategoryPath && e.triggerAdditionalTasks) {\n await this.updateTaxDepreciationSelects();\n if (e.additionalData.YearsOfDepreciation) {\n this.updateUsefulLife(e.additionalData.YearsOfDepreciation, true);\n }\n\n const { storage } = this.props;\n const _is30bCat = isFVE30bTaxCategory({ storage });\n const date = getUtcDayjs(storage.getValueByPath(DateFirstPutInUsePath));\n if (_is30bCat && !storage.data.entity.TaxDepreciationPolicy.DateRequestedLastDepreciation) {\n const lastDep = date.add(_30bDefaultMonths, \"months\").endOf(\"month\").toDate();\n const prevValue = storage.getValueByPath(TaxRequestedLastDepreciationPath);\n storage.clearAndSetValueByPath(TaxRequestedLastDepreciationPath, lastDep);\n this.defaultAccountingUsefulLifeFromRequestedLastDepreciation(lastDep, prevValue, true);\n }\n storage.addActiveGroupByKey(TaxDepreciationPolicyGroup);\n }\n };\n\n handleTypeChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === AssetEntity.Type && this.isCbaCompany) {\n // needed to update visibility of action button\n this.entity.IsInUse = e.value === AssetTypeCode.Intangible;\n this.forceUpdate();\n }\n };\n\n refreshAddFromUnsortedButton(e: ISmartFieldChange) {\n if (this.props.storage.data.bindingContext.isNew() && [\"NumberOurs\", \"Name\"].includes(e.bindingContext.getPath())) {\n // Rerender form to refresh groups buttons (disabled flag)\n this.props.storage.refreshGroupByKey(\"Items\");\n }\n }\n\n async handleBlur(args: ISmartFieldBlur): Promise {\n await super.handleBlur(args);\n const path = args.bindingContext.getPath() as AssetEntity | string;\n\n if (path === \"UsefulLife\") {\n this.props.storage.refreshGroupByKey(AccountingDepreciationPolicyGroup);\n }\n if (path === AssetEntity.ImportedAssetPrice) {\n await this.updateLowPriceAssetFlag();\n await this.defaultEmptyValuesIfVisible();\n }\n if ([AssetEntity.RemainingTaxPrice, AssetEntity.RemainingTaxYears, AssetEntity.RemainingAccountingPrice, AssetEntity.ImportedAssetPrice].includes(path as AssetEntity)) {\n this.props.storage.refresh();\n }\n }\n\n async handleChange(e: ISmartFieldChange): Promise {\n this.handleTypeChange(e);\n\n super.handleChange(e);\n // ^^^ calling super will refresh fields before async handler, so dateFields work correctly\n await Promise.all([\n this.handleIsInUseChange(e),\n this.handleDateFirstPutInUseChange(e),\n this.handleInUseAccountChange(e),\n this.handleTaxDepreciationPolicyTypeChange(e),\n this.handleTaxDepreciationPolicyCategoryChange(e)\n ]);\n this.handleAccumulatedDepreciationAccountChange(e);\n this.handleRemainingTaxPriceChange(e);\n this.handleReductionRateChange(e);\n this.handleTaxDepreciationRequestedLastDepreciationChange(e);\n this.handleAccountingDepreciationRequestedLastDepreciationChange(e);\n this.handleAccountingDepreciationPolicyTypeChange(e);\n\n this.refreshAddFromUnsortedButton(e);\n this.props.storage.refreshFields();\n }\n\n handleLineItemsAction = async (args: ISmartFastEntriesActionEvent) => {\n const { storage } = this.props;\n\n const _defaultHandler = () => {\n storage.handleLineItemsAction(args);\n storage.refresh();\n };\n if (args.actionType !== ActionType.Remove) {\n _defaultHandler();\n return;\n }\n\n const _confirmDialog = (messageKey: string) => {\n const content = (<>\n {storage.t(`FixedAsset:Form.${messageKey}`)}

    \n {storage.t(\"Common:Confirmations.ConfirmContinue\")}\n );\n return this.props.confirmationDialog\n .open({\n content\n });\n };\n\n const _saveFormAndRestoreChanges = async () => {\n this.storeChangedDataBeforeAction();\n // await resetData so that onAfterLoad is properly called and all the data are set\n await storage.resetData();\n _defaultHandler();\n this.save()\n .then(() => this.restoreChangedDataAfterAction())\n .then(() => storage.refresh(true));\n };\n\n // We handle here only remove action - differently for several item types\n const [item] = args.affectedItems;\n let isConfirmed: boolean;\n switch (item.ItemType?.Code) {\n case AssetItemTypeCode.ImportOfOldAsset:\n _defaultHandler();\n this.recreateOldImportedAsset();\n break;\n\n case AssetItemTypeCode.PutInUse:\n isConfirmed = await _confirmDialog(\"CancelPutInUseConfirm\");\n if (isConfirmed) {\n this.cancelPutInUseAndSave();\n }\n break;\n\n case AssetItemTypeCode.Disposal:\n case AssetItemTypeCode.ReductionOfPrice:\n case AssetItemTypeCode.IncreaseOfPrice:\n case AssetItemTypeCode.TechnicalImprovement:\n isConfirmed = await _confirmDialog(item.ItemType?.Code === AssetItemTypeCode.Disposal ? \"CancelDisposalConfirm\" : \"CancelChangePriceConfirm\");\n if (isConfirmed) {\n _saveFormAndRestoreChanges();\n }\n break;\n\n case AssetItemTypeCode.Acquisition:\n // remove similar items\n const { rootItems } = storage.getCustomData();\n const related = rootItems[item.Id];\n args.items = args.items.filter(i => !related.includes(i.Id));\n // save\n _saveFormAndRestoreChanges();\n break;\n default:\n // no action\n }\n };\n\n // When user finishes adding from unsorted action in editable window (or changing price), FormView is notified\n // by emitting event, so we can reload it.\n handleEditableWindowActionFinish = async (newEntity?: IAssetEntity) => {\n const { storage } = this.props;\n this.storeChangedDataBeforeAction();\n const customData = storage.data.customData;\n if (newEntity) {\n const bindingContext = createBindingContext(storage.data.bindingContext.getFullPath(), storage.oData.getMetadata()).removeKey().addKey(newEntity.Id);\n storage.store({ bindingContext });\n }\n this.onAfterSave(!!newEntity, false);\n await storage.loadDataAfterSave();\n // keep custom data as we need them in editable window (e.g. action type, etc...)\n storage.setCustomData(customData);\n await this.restoreChangedDataAfterAction();\n };\n\n recreateOldImportedAsset = async () => {\n const { storage } = this.props;\n storage.setValueByPath(AssetEntity.Status, AssetStatusCode.Created);\n storage.setValueByPath(AssetEntity.DateForUsefulLife, null);\n\n this.forceUpdate();\n };\n\n cancelPutInUseAndSave = async () => {\n const { storage } = this.props;\n // set-up the storage\n storage.setValueByPath(AssetEntity.IsInUse, false);\n // save the form\n const isSaved = await this.save();\n\n if (!isSaved) {\n // revert value - Error from BE will be displayed automatically\n storage.setValueByPath(AssetEntity.IsInUse, true);\n this.forceUpdate();\n } else {\n await this.correctFormDataAfterIsInUseChange(false);\n }\n };\n\n handleDialogClose = () => {\n this.setState({ dialogType: null });\n };\n\n renderPolicyDeprecationDialog() {\n return (\n \n );\n }\n\n handleUnsortedAssetDialogClose = () => {\n this.processAssetItems();\n this.handleDialogClose();\n };\n\n renderUnsortedAssetDialog() {\n const { FixedAssetFormViewAction: key, AssetItemTypeCode } = this.props.storage.getCustomData();\n const isChangePrice = key === FixedAssetFormViewAction.ChangePrice;\n const prefix = isChangePrice ? \"ChangePrice\" : \"AddFromUnsorted\";\n const id: ITableDef[\"id\"] = `${prefix}::${EntityTypeName.UnorganizedAsset}SpecialTable`;\n return (\n \n \n \n );\n }\n\n handleDiscardDialogConfirm = () => {\n this.props.storage.loadDataAfterSave()\n .then(() => this.forceUpdate());\n this.onAfterSave(false, false);\n // we want to close the dialog without waiting on form refresh\n this.handleDialogClose();\n };\n\n // returns info about last partial depreciation\n getCurrentDepreciationSettingsInfo(): IDepreciationSettingEntity {\n const currentDate = this.getFirstAvailableFiscalYearDateStart();\n const { DepreciationSettings } = this.entity.TaxDepreciationPolicy;\n return DepreciationSettings[getCurrentRangeIndex(DepreciationSettings as TTemporal[], currentDate)];\n }\n\n async saveDepreciationSettings(newData: IDepreciationSettingEntity[]): Promise {\n const { storage } = this.props;\n const bc = storage.data.bindingContext\n .navigate(AssetEntity.TaxDepreciationPolicy)\n .navigate(TaxDepreciationPolicyEntity.DepreciationSettings);\n\n const ret = await updateAssetPartially(storage, bc, newData);\n\n await this.handleEditableWindowActionFinish();\n if (isODataError(ret)) {\n storage.setFormAlert(getAlertFromError(ret));\n }\n }\n\n async createNewDepreciationSettings(type = DepreciationSettingTypeCode.Partial): Promise {\n const { storage } = this.props;\n storage.setBusy(true);\n\n const { DateStart, DateEnd } = getFirstActiveFiscalYearOfAssetInUse(storage) ?? {};\n const { TaxDepreciationPolicy } = this.entity;\n if (!TaxDepreciationPolicy.DepreciationSettings) {\n TaxDepreciationPolicy.DepreciationSettings = [];\n }\n // filter out all rows after the new one - in case some settings was configured in the future\n const currentDayjs = getUtcDayjs(DateStart);\n TaxDepreciationPolicy.DepreciationSettings = TaxDepreciationPolicy.DepreciationSettings\n .filter(item => currentDayjs.isAfter(getUtcDayjs(item.DateValidFrom), \"day\"));\n\n const expense = type === DepreciationSettingTypeCode.Partial ? storage.getValueByPath(DepreciationValueLocalPath) : null;\n const validTo = storage.getValueByPath(DepreciationSettingsValidityLocalPath) === Validity.LongTerm ? DATE_MAX : DateEnd;\n const defaultData: IDepreciationSettingEntity = {\n DateValidFrom: DateStart,\n DateValidTo: validTo,\n PartialExpense: expense,\n DepreciationSettingTypeCode: type\n };\n const newSettings = BindingContext.createNewEntity(1, defaultData);\n TaxDepreciationPolicy.DepreciationSettings.push(newSettings);\n\n await this.saveDepreciationSettings(TaxDepreciationPolicy.DepreciationSettings);\n\n storage.setBusy(false);\n }\n\n handleDepreciationSettingCancel = async (dateFrom: Date) => {\n let currentRow: IDepreciationSettingEntity | false = null;\n const { TaxDepreciationPolicy } = this.entity;\n while (currentRow === null) {\n const lastRow = this.getCurrentDepreciationSettingsInfo();\n if (!lastRow) {\n // in case there is no remaining rows to update, we just set false to break the loop\n currentRow = false;\n } else if (getUtcDayjs(lastRow.DateValidFrom).isSameOrAfter(dateFrom)) {\n // last row is in the future, it should not be there at all\n TaxDepreciationPolicy.DepreciationSettings =\n TaxDepreciationPolicy.DepreciationSettings.filter(row => row !== lastRow);\n } else {\n currentRow = lastRow;\n }\n }\n if (currentRow !== false) {\n currentRow.DateValidTo = getUtcDayjs(dateFrom).subtract(1, \"day\").toDate();\n }\n\n await this.saveDepreciationSettings(TaxDepreciationPolicy.DepreciationSettings);\n };\n\n handleDepreciationSettingDialogClose = async (type: DepreciationSettingTypeCode, isConfirmed: boolean) => {\n this.handleDialogClose();\n if (isConfirmed) {\n await this.createNewDepreciationSettings(type);\n }\n };\n\n renderNewDepreciationSettingDialog(isInterrupt: boolean) {\n const { storage } = this.props;\n const type = isInterrupt ? DepreciationSettingTypeCode.Interrupted : DepreciationSettingTypeCode.Partial;\n const row = isInterrupt ? [] : [DepreciationValueLocalPath];\n row.push(DepreciationSettingsValidityLocalPath);\n\n return (\n \n );\n }\n\n renderDiscardDialog() {\n const { storage } = this.props;\n\n const initialData = {\n origEntity: {\n AssetId: this.props.storage.data.bindingContext.getKey()\n },\n customData: {\n assetStorage: storage\n }\n };\n // use local context, there is no real entity\n const bindingContext = createBindingContext(BindingContext.localContext(\"AssetDisposal\"), storage.oData.metadata);\n return (\n \n );\n }\n\n renderDialog() {\n switch (this.state?.dialogType) {\n case AssetDialogType.PolicyDepreciation:\n return this.renderPolicyDeprecationDialog();\n case AssetDialogType.UnsortedAsset:\n return this.renderUnsortedAssetDialog();\n case AssetDialogType.Discard:\n return this.renderDiscardDialog();\n case AssetDialogType.PartialDepreciation:\n case AssetDialogType.Interrupt:\n return this.renderNewDepreciationSettingDialog(this.state.dialogType === AssetDialogType.Interrupt);\n default:\n return null;\n }\n }\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (\n <>\n {this.renderForm()}\n {this.renderDialog()}\n \n );\n }\n}\n\nexport default withPromisedComponent(withPermissionContext(withConfirmationDialog(FixedAssetFormView)));","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { SearchSmallIcon } from \"@components/icon\";\nimport { isValidDate } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport {\n getInfoByPath,\n ifAll,\n ifAny,\n IGetValueArgs,\n isVisibleByPath,\n not,\n TValidatorFnResult\n} from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n getLabelsDef,\n getLabelsFilterDef,\n LabelsTableColumnDef,\n NoteFieldDef,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { filterPercentFormatter } from \"@components/smart/smartValueHelper/ValueHelper.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n AccountingDepreciationPolicyEntity,\n AssetEntity,\n DepreciationSettingEntity,\n EntitySetName,\n EntityTypeName,\n IAssetEntity,\n IAssetItemEntity,\n IAssetStatusEntity,\n IAssetTypeEntity,\n IDepreciationPolicyItemEntity,\n IDocumentEntity,\n IFiscalYearEntity,\n ITaxDepreciationCoefficientEntity,\n ITaxDepreciationPolicyItemEntity,\n TaxDepreciationCoefficientEntity,\n TaxDepreciationPolicyEntity,\n TaxDepreciationPolicyItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AssetItemTypeCode,\n AssetStatusCode,\n AssetTypeCode,\n DepreciationSettingTypeCode,\n DepreciationTypeCode,\n DocumentTypeCode,\n TaxDepreciationCategoryCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { FormattingTarget, IFormatOptions, isEmptyValue } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert, isNotDefined, sortCompareFn } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { ValidationError } from \"yup\";\n\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n FieldType,\n FormMode,\n GroupedField,\n LabelStatus,\n QueryParam,\n Sort,\n Status,\n TextAlign,\n ValidatorType\n} from \"../../../enums\";\nimport { getSemanticTextColorName } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport { getCorrectValidationArgs } from \"../../../model/Validator\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport CurrencyType, { formatCurrency, formatCurrencyVariableDecimals } from \"../../../types/Currency\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { isFormReadOnly, isRequiredOnlyInTemporalDialog } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { getSingleAccountFieldDef } from \"../../accountAssignment/AccountAssignment.utils\";\nimport {\n getCurrencyUnit,\n getFiscalDataCorrespondingToDateAccountingTransaction,\n readOnlyCurrencyItemFormatter\n} from \"../../documents/Document.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../../documents/DocumentDef\";\nimport {\n getFiscalYearByChartOfAccount,\n getFiscalYearByDate,\n getOldestActiveFY,\n getSortedFYs,\n hasClosedFY,\n isFiscalYearActive,\n isFiscalYearClosed\n} from \"../../fiscalYear/FiscalYear.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport {\n getAsset,\n getAssetTabs,\n getBeforeFirstFiscalYearValidation,\n getDateRequestedLastDepreciationValidation,\n getInActiveFYValidation,\n getSameOrLaterItemOfTypeValidation,\n getStatusColor,\n getValidationResult,\n statusFormatter\n} from \"../Asset.utils\";\nimport {\n AssetTranslations,\n FixedAssetFormViewAction,\n getActualDepreciationSettings,\n getLowPriceAssetLimitSync,\n getTaxDepreciationPolicyLocalCategoryId,\n IFixedAssetCustomData,\n isInterrupted,\n Validity\n} from \"./FixedAsset.utils\";\nimport FixedAssetFormView from \"./FixedAssetFormView\";\n\nexport const TaxDepreciationPolicyGroup = \"TaxDepreciationPolicy\";\nexport const AccountingDepreciationPolicyGroup = \"AccountingDepreciationPolicy\";\n\nexport const TaxDepreciationPolicyTypePath = BindingContext.localContext(\"TaxDepreciationPolicyDepreciationType\");\nexport const TaxDepreciationPolicyLocalCategoryPath = BindingContext.localContext(\"TaxDepreciationPolicyCategory\");\nexport const TaxDepreciationPolicyFirstYearValueIncreasePath = BindingContext.localContext(\"TaxDepreciationPolicyFirstYearValueIncrease\");\nexport const DepreciationValueLocalPath = BindingContext.localContext(\"DepreciationValue\");\nexport const DepreciationSettingsValidityLocalPath = BindingContext.localContext(\"DepreciationSettingValidity\");\n\nexport const AccountingRequestedLastDepreciationPath = createPath(AssetEntity.AccountingDepreciationPolicy, AccountingDepreciationPolicyEntity.DateRequestedLastDepreciation);\nexport const TaxRequestedLastDepreciationPath = createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.DateRequestedLastDepreciation);\nexport const TaxDepreciationCategoryCodePath = createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.Coefficient, TaxDepreciationCoefficientEntity.TaxDepreciationCategoryCode);\n\nexport const AccountingDepreciationPolicyTypePath = \"AccountingDepreciationPolicy/DepreciationType\";\n\nexport const FixedAssetFormViewActionStorageKey = \"FixedAssetFormViewAction\";\nexport const FixedAssetEditableWindowActionFinish = \"EventFixedAssetEditableWindowActionFinish\";\n\nexport const INTANGIBLE_ACCOUNT_PREFIX = \"01\";\nexport const TANGIBLE_ACCOUNT_PREFIX = [\"02\", \"03\"];\nexport const INTANGIBLE_DEPRECIATION_ACCOUNT_PREFIX = \"07\";\nexport const TANGIBLE_DEPRECIATION_ACCOUNT_PREFIX = \"08\";\n\nconst IsInUseGroupId = \"IsInUse\";\n\nexport enum FixedAssetType {\n RegularAsset = \"RegularAsset\",\n ImportedAsset = \"ImportedAsset\"\n}\n\nexport const isInUse = (args: IGetValueArgs): boolean => {\n return !!getAsset(args)?.IsInUse;\n};\n\nexport const hasEmptyItems = (args: IGetValueArgs): boolean => {\n return !getAsset(args)?.Items?.length;\n};\n\nexport const isIntangible = (args: IGetValueArgs): boolean => {\n return getAsset(args)?.Type?.Code === AssetTypeCode.Intangible;\n};\n\nexport const isTangible = (args: IGetValueArgs): boolean => {\n return getAsset(args)?.Type?.Code === AssetTypeCode.Tangible;\n};\n\nexport const isDisposed = (args: IGetValueArgs): boolean => {\n return hasItemType(AssetItemTypeCode.Disposal)(args);\n};\n\nexport const hasItemType = (itemType: AssetItemTypeCode): ((args: IGetValueArgs) => boolean) => {\n return (args: IGetValueArgs) => !!getAsset(args)?.Items?.find(item => item.ItemType?.Code === itemType);\n};\n\nexport const isAssetUsedInClosedFy = (args: IGetValueArgs): boolean => {\n const asset = getAsset(args, \"origEntity\");\n if (!asset?.DateFirstPutInUse) {\n return false;\n }\n let fiscalYear: IFiscalYearEntity;\n if (asset.ChartOfAccounts?.Id) {\n fiscalYear = getFiscalYearByChartOfAccount(args.storage.context, asset.ChartOfAccounts?.Id);\n } else {\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(args.storage as FormStorage, asset.DateFirstPutInUse);\n fiscalYear = fiscalData.fiscalYear;\n }\n\n return isFiscalYearClosed(fiscalYear);\n};\n\nexport const isInSecondAndNextTaxPeriod = (args: IGetValueArgs): boolean => {\n const asset = getAsset(args);\n const firstTaxDepreciationItem = asset.TaxDepreciationPolicy?.Items?.find(item => item.Order === 1);\n if (firstTaxDepreciationItem?.DateDepreciation) {\n return !isFiscalYearActive(getFiscalYearByDate(args.context, firstTaxDepreciationItem.DateDepreciation));\n }\n return false;\n};\n\nconst isLastDepreciationInClosedFY = (args: IGetValueArgs, items: IDepreciationPolicyItemEntity[], isTaxExpense?: boolean): boolean => {\n // sort descendent, so we take the real last depreciation (even when technically improved, there might be more than one depreciation with zero end value)\n const lastItem = items\n ?.filter(item => item.EndValue === 0 && (!isTaxExpense || (item as ITaxDepreciationPolicyItemEntity).DepreciationExpense !== 0))\n .sort((a, b) => sortCompareFn(a.Order, b.Order, Sort.Desc))\n ?.[0]; // last depreciation with zero end value\n if (!lastItem) {\n // when there is no lastItem (e.g. for imported asset, we can't decide if last depreciation is in closed FY)\n // => undefined, caller has to decide by another criteria\n return undefined;\n }\n const FY = lastItem.DateDepreciation && getFiscalYearByDate(args.storage.context, lastItem.DateDepreciation);\n // if FY is not defined (it means asset is interrupted or there is still no FY generated for\n // the date of last depreciation, then it's not in closed FY), otherwise if we know FY, we can check if it's closed\n return FY ? isFiscalYearClosed(FY) : false;\n};\n\nexport const isAccountingDepreciated = (args: IGetValueArgs): boolean => {\n const asset = getAsset(args);\n if (isImportedAssetInUse(args) && asset.RemainingAccountingPrice === 0) {\n return true;\n }\n return isNotInCreatedState(args) &&\n isFiscalYearClosed(getFiscalYearByDate(args.context, asset.AccountingDepreciationPolicy?.DateLastDepreciation));\n};\n\nexport const isTaxDepreciated = (args: IGetValueArgs): boolean => {\n const asset = getAsset(args);\n if (isInCreatedState(args)) {\n // asset in created state can't be depreciated\n return false;\n }\n const _isLastDepInClosedFY = isLastDepreciationInClosedFY(args, asset.TaxDepreciationPolicy?.Items, true);\n if (isNotDefined(_isLastDepInClosedFY)) {\n // when the previous check is not defined, it means that there is no depreciation in Evala yet\n return isImportedAssetInUse(args) && asset.RemainingTaxPrice === 0;\n }\n return _isLastDepInClosedFY;\n};\n\nexport const isCategoryWithFlexibleTaxDepreciation = (args: IGetValueArgs): boolean => {\n const YearsOfDepreciation = args.storage.getValueByPath(\"TaxDepreciationPolicy/Coefficient/TaxDepreciationCategory/YearsOfDepreciation\");\n return YearsOfDepreciation === 0;\n};\n\nexport const isFVE30bTaxCategory = (args: IGetValueArgs): boolean => {\n const category = getTaxDepreciationCategoryCode(args.storage as FormStorage);\n return category === TaxDepreciationCategoryCode.C30b_CZ_20;\n};\n\nexport const isCategoryWithFlexibleAccountingDepreciation = (args: IGetValueArgs): boolean => {\n const { storage } = args;\n const bc = storage.data.bindingContext\n .navigate(AssetEntity.AccountingDepreciationPolicy)\n .navigate(AccountingDepreciationPolicyEntity.DepreciationTypeCode);\n const type = storage.getValue(bc);\n return type === DepreciationTypeCode.TimeDependent;\n};\n\nexport const canBeDepreciated = (args: IGetValueArgs): boolean => {\n const asset = getAsset(args);\n return asset.CanBeDepreciated !== false;\n};\n\nconst isDepreciatedMinorAsset = (args: IGetValueArgs): boolean => getAsset(args).IsLowPriceAsset;\n\nexport const hasTaxDepreciation = (args: IGetValueArgs): boolean => !isIntangible(args) && !isDepreciatedMinorAsset(args) && canBeDepreciated(args);\n\nexport const isTaxDepreciationTypeChanged = ({ storage }: IGetValueArgs): boolean => {\n const { origEntity } = (storage as FormStorage).data;\n const currentVal = storage.getValueByPath(TaxDepreciationPolicyTypePath);\n const savedVal = origEntity?.TaxDepreciationPolicy?.Coefficient?.DepreciationTypeCode;\n return currentVal !== savedVal;\n};\n\n/**\n * ---- Import Old Asset functionality ----\n */\nexport const ADD_IMPORTED_ASSET_ACTION_ID = \"AddOldImportedAsset\";\nexport const isImportedAssetEntity = (asset: IAssetEntity): boolean => !!asset?.IsImportedAsset;\nexport const isImportedAsset = (args: IGetValueArgs): boolean => isImportedAssetEntity(getAsset(args));\n\nexport const isAssetEntityInCreatedState = (asset: IAssetEntity): boolean =>\n !asset?.StatusCode || asset?.StatusCode === AssetStatusCode.Created;\nexport const isInCreatedState = (args: IGetValueArgs): boolean => isAssetEntityInCreatedState(getAsset(args));\nexport const isNotInCreatedState = not(isInCreatedState);\n\nexport const isImportedAssetInCreatedState = ifAll(isImportedAsset, isInCreatedState);\nconst isImportedAssetInUse = ifAll(isImportedAsset, isNotInCreatedState);\n\nexport const hasLinearTaxDepreciation = ({ storage }: IGetValueArgs): boolean => {\n return storage.getValueByPath(TaxDepreciationPolicyTypePath) === DepreciationTypeCode.Linear;\n};\n\nexport const hasAcceleratedTaxDepreciation = ({ storage }: IGetValueArgs): boolean => {\n return storage.getValueByPath(TaxDepreciationPolicyTypePath) === DepreciationTypeCode.Accelerated;\n};\n\nexport const hasTaxCoefficientLimit = ({ storage }: IGetValueArgs): boolean => {\n const bc = storage.data.bindingContext\n .navigate(AssetEntity.TaxDepreciationPolicy)\n .navigate(TaxDepreciationPolicyEntity.TaxPriceLimitCode);\n return !!storage.getValue(bc);\n};\n\nconst hasReductionRate = ({ storage }: IGetValueArgs): boolean => {\n const bc = storage.data.bindingContext\n .navigate(AssetEntity.TaxDepreciationPolicy)\n .navigate(TaxDepreciationPolicyEntity.ReductionRate);\n return !!storage.getValue(bc);\n};\n\nexport function getCalculatedPrice(asset: IAssetEntity): number {\n if (isImportedAssetEntity(asset) && isAssetEntityInCreatedState(asset)) {\n return asset.ImportedAssetPrice;\n }\n return asset.CalculatedPrice;\n}\n\nexport function getTaxDepreciationCategoryCode(storage: FormStorage): TaxDepreciationCategoryCode {\n return storage.getValueByPath(createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.Coefficient, TaxDepreciationCoefficientEntity.TaxDepreciationCategoryCode));\n}\n\nexport function getTaxDepreciationCoefficient(storage: FormStorage): ITaxDepreciationCoefficientEntity {\n const type = storage.getValueByPath(TaxDepreciationPolicyTypePath);\n const category = getTaxDepreciationCategoryCode(storage);\n const localCategoryId = storage.getValueByPath(TaxDepreciationPolicyLocalCategoryPath);\n let firstYearValue = storage.getValueByPath(TaxDepreciationPolicyFirstYearValueIncreasePath);\n\n if (isEmptyValue(firstYearValue)) {\n firstYearValue = null;\n }\n\n return storage.getCustomData()?.coefficients?.find(c =>\n c.DepreciationType.Code === type && firstYearValue === c.FirstYearValueIncrease &&\n (category ? c.TaxDepreciationCategory.Code === category : localCategoryId === getTaxDepreciationPolicyLocalCategoryId({ Coefficient: c })));\n}\n\nexport function isMonthlyCalculationCoefficient({ storage }: IGetValueArgs): boolean {\n const coeff = getTaxDepreciationCoefficient(storage as FormStorage);\n return !!coeff?.IsMonthly;\n}\n\nexport function canCoefficientBeImproved({ storage }: IGetValueArgs): boolean {\n const coeff = getTaxDepreciationCoefficient(storage as FormStorage);\n return !!coeff?.CanBeImproved;\n}\n\nexport function canCoefficientBeInterrupted({ storage }: IGetValueArgs): boolean {\n const coeff = getTaxDepreciationCoefficient(storage as FormStorage);\n return !!coeff?.CanBeInterrupted;\n}\n\n/**\n * Flag about imported asset for default value - from URL param as it's not in entity yet\n * @param args\n */\nfunction isImportedAssetForDefaultValue(args: IGetValueArgs) {\n if (hasClosedFY(args.context)) {\n return false;\n }\n return getQueryParameters()[QueryParam.Type] === FixedAssetType.ImportedAsset;\n}\n\nconst Preformatted = styled.span`\n white-space: pre;\n`;\n\nfunction getAccountingDepreciationPolicyGroupTooltip(storage: FormStorage): React.ReactElement {\n if (isDepreciatedMinorAsset({ storage })) {\n const limit = getLowPriceAssetLimitSync(storage);\n const formattedLimit = formatCurrency(limit, getCompanyCurrency(storage.context));\n return (\n {i18next.t(\"FixedAsset:Form.LowPriceAssetLimitTooltip\", { limit: formattedLimit })});\n }\n return null;\n}\n\nfunction getUsefulTooltip(args: IGetValueArgs): string {\n const entity = args.storage.getEntity();\n if (!entity.DateForUsefulLife) {\n return null;\n }\n const date = DateType.format(entity.DateForUsefulLife);\n return i18next.t(\"FixedAsset:Form.UsefulLifeFrom\", { date });\n}\n\nfunction getDepreciationTypeDef() {\n const items = [{\n id: DepreciationTypeCode.Linear,\n label: i18next.t(\"FixedAsset:DepreciationType.Linear\")\n }, {\n id: DepreciationTypeCode.Accelerated,\n label: i18next.t(\"FixedAsset:DepreciationType.Accelerated\")\n }, {\n id: DepreciationTypeCode.TimeDependent,\n label: i18next.t(\"FixedAsset:DepreciationType.TimeDependent\")\n }];\n return {\n type: FieldType.SegmentedButton,\n labelStatus: LabelStatus.Removed,\n isRequired: isInUse,\n defaultValue: DepreciationTypeCode.Linear,\n fieldSettings: {\n items\n }\n };\n}\n\nexport function getAssetCurrency(entity: IAssetEntity, context: IAppContext): string {\n return entity?.CurrencyCode ?? getCompanyCurrency(context);\n}\n\nexport function assetPriceFormatter(val: TValue, args: IFormatOptions): string {\n const formatterMethod = args.target === FormattingTarget.Summary ? formatCurrencyVariableDecimals : formatCurrency;\n return formatterMethod(val ?? 0, getAssetCurrency(args.entity, args.context ?? args.storage?.context));\n}\n\nfunction taxDepreciationCategoryValidator(storage: FormStorage, value?: TaxDepreciationCategoryCode): true | ValidationError {\n const entity = getAsset({ storage });\n const bindingContext = storage.data.bindingContext.navigate(TaxDepreciationPolicyLocalCategoryPath);\n // Special Tax Depreciation Category validation for COVID-19 coefficients, which can't be interrupted,\n // therefore we need to check in case of remaining price that there are some depreciations after first FY starts\n const categoryCode = (value ?? getTaxDepreciationCategoryCode(storage)) as TaxDepreciationCategoryCode;\n const coeffTypes = [TaxDepreciationCategoryCode.C2cv_CZ_20, TaxDepreciationCategoryCode.C1cv_CZ_20];\n if (coeffTypes.includes(categoryCode) && isImportedAssetEntity(entity) && entity.RemainingTaxPrice > 0) {\n const info = storage.getInfo(bindingContext);\n const { items } = info.fieldSettings;\n const coeff = items.find(i => i.id === categoryCode);\n const { YearsOfDepreciation } = coeff?.additionalData ?? {};\n\n const DateFirstPutInUse = getUtcDayjs(entity.DateFirstPutInUse);\n const sortedFYs = getSortedFYs(storage?.context);\n const firstFY = sortedFYs[0];\n const min = getUtcDayjs(firstFY.DateStart).diff(DateFirstPutInUse, \"years\", true);\n if (YearsOfDepreciation < min) {\n const path = bindingContext.getEntityPath(true);\n return new ValidationError(i18next.t(\"FixedAsset:Validation.MinTaxDepreciations\", { count: Math.ceil(min) }), categoryCode, path);\n }\n }\n return true;\n}\n\nfunction isAssetItemRemovable({ storage, item }: IGetValueArgs): boolean {\n const assetStorage = storage as FormStorage;\n // No rows are removable in read-only mode\n if (assetStorage.isReadOnly) {\n return false;\n }\n\n const _entityContainsType = (...types: AssetItemTypeCode[]): boolean => {\n const entity = storage.data.entity as IAssetEntity;\n return entity.Items.some(item => types.includes(item.ItemType?.Code as AssetItemTypeCode));\n };\n\n // Every item type has different condition\n const assetItem = (item as IAssetItemEntity);\n const type = assetItem.ItemType?.Code as AssetItemTypeCode;\n switch (type) {\n case AssetItemTypeCode.Acquisition:\n const { origEntity } = assetStorage.data;\n const { rootItems } = assetStorage.getCustomData();\n return !origEntity.IsInUse && !!rootItems[assetItem.Id];\n\n case AssetItemTypeCode.ImportOfOldAsset:\n case AssetItemTypeCode.PutInUse:\n // If there is Item of another type than Acquisition or PutInUse, we cannot remove\n const hasFurtherItems = _entityContainsType(AssetItemTypeCode.Disposal, AssetItemTypeCode.TechnicalImprovement,\n AssetItemTypeCode.IncreaseOfPrice, AssetItemTypeCode.ReductionOfPrice);\n const isInClosedFy = isAssetUsedInClosedFy({ storage });\n return !(hasFurtherItems || isInClosedFy);\n\n case AssetItemTypeCode.TechnicalImprovement:\n case AssetItemTypeCode.IncreaseOfPrice:\n case AssetItemTypeCode.ReductionOfPrice:\n const entity = storage.data.entity as IAssetEntity;\n const hasDisposalItemOrNewerOne = entity.Items\n .some(item => item.Order > assetItem.Order && [AssetItemTypeCode.Disposal, AssetItemTypeCode.TechnicalImprovement,\n AssetItemTypeCode.IncreaseOfPrice, AssetItemTypeCode.ReductionOfPrice].includes(item.ItemType?.Code as AssetItemTypeCode));\n const fyOfAssetItem = getFiscalDataCorrespondingToDateAccountingTransaction(storage as StorageModel, item.DateOfTransaction);\n const isImprovedInClosedFY = isFiscalYearClosed(fyOfAssetItem.fiscalYear);\n return !(hasDisposalItemOrNewerOne || isImprovedInClosedFY);\n\n case AssetItemTypeCode.Disposal:\n // If there is asset disposal item, it's always removable\n return true;\n\n default:\n return false;\n }\n}\n\nconst remainingPriceCustomValidator = (value: TValue, {\n storage,\n bindingContext\n}: IGetValueArgs): TValidatorFnResult => {\n const asset = getAsset({ storage });\n if (asset.ImportedAssetPrice < (value as number)) {\n const path = bindingContext.getEntityPath(true);\n return new ValidationError(i18next.t(`FixedAsset:Validation.${bindingContext.getPath(true)}`), value, path);\n }\n return true;\n};\n\nconst dateFirstPutInUseValidator = (value: TValue, args: IGetValueArgs) => {\n if (isImportedAsset(args)) {\n // the date must be before first FY, unless it should be added as normal asset\n return getBeforeFirstFiscalYearValidation(value, args);\n }\n if (isNotInCreatedState(args) || !value) {\n return true;\n }\n return getValidationResult(\n getInActiveFYValidation(value, args),\n getSameOrLaterItemOfTypeValidation(value, args)\n );\n};\n\n// basic visibility condition to all asset header actions (if asset in correct basic state to do any action\nconst isAssetActionable = (args: IGetValueArgs) => !isFormReadOnly(args) && isNotInCreatedState(args) && !isDisposed(args);\n\nconst hasPartialDepreciation = (args: IGetValueArgs) => {\n return getActualDepreciationSettings(args.storage as FormStorage)?.DepreciationSettingTypeCode === DepreciationSettingTypeCode.Partial;\n};\n\nexport const getDefinitionsFactory = (status?: AssetStatusCode, type?: AssetTypeCode, preventStoreVariant?: boolean): IGetDefinition => {\n const defaultFilters: string[] = [];\n if (status) {\n defaultFilters.push(`StatusCode eq '${status}'`);\n }\n if (type) {\n // show only related types or assets without type\n defaultFilters.push(`(TypeCode eq '${type}' OR Type eq null)`);\n }\n\n const getDefinitions: IGetDefinition = (context): IDefinition => {\n const isCbaCompany = isCashBasisAccountingCompany(context);\n const hasAccounting = isAccountAssignmentCompany(context);\n\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"Type\", \"NumberOurs\", \"Name\", \"Status\", \"CalculatedPrice\"\n ],\n filterDefinition: {\n NumberOurs: {},\n Name: {},\n ...withDisplayName(\"Status\"),\n CalculatedPrice: {},\n TaxBalance: {},\n DateDisposed: {},\n DateFirstPutInUse: {},\n Note: {},\n ...withDisplayName(\"Type\"),\n \"TaxDepreciationPolicy/ReductionRate\": {\n formatter: filterPercentFormatter\n },\n ...withDisplayName(\"TaxDepreciationPolicy/Coefficient/TaxDepreciationCategory\", {\n descriptionPath: AssetEntity.TaxDepreciationPolicy\n }),\n \"TaxDepreciationPolicy/Coefficient/FirstYearValueIncrease\": {\n label: i18next.t(\"FixedAsset:Form.FirstOwner\"),\n descriptionPath: AssetEntity.TaxDepreciationPolicy,\n fieldSettings: {\n isEnum: false\n },\n formatter: filterPercentFormatter\n },\n ...getLabelsFilterDef(\"Labels\"),\n ...getCommonFilterDefs()\n }\n }],\n preventStoreVariant,\n id: `${EntityTypeName.Asset}Table`,\n tabs: getAssetTabs(),\n tabsSettings: {\n filterFieldName: \"StatusCode\"\n },\n massEditableDef: {\n Note: { ...NoteFieldDef },\n Labels: getLabelsDef(\"FixedAsset\")\n },\n columns: [\n \"Type\", \"NumberOurs\", \"Name\", \"Status\", \"DateFirstPutInUse\", \"CalculatedPrice\", \"TaxBalance\"\n ],\n columnDefinition: {\n ...withDisplayName(\"Type\"),\n NumberOurs: {},\n Name: {},\n Note: {},\n ...withDisplayName(\"Status\", \"Name\", { formatter: statusFormatter }),\n CalculatedPrice: {},\n TaxBalance: {},\n ...LabelsTableColumnDef,\n DateDisposed: {},\n DateFirstPutInUse: {},\n \"TaxDepreciationPolicy/ReductionRate\": {},\n \"TaxDepreciationPolicy/Coefficient/TaxDepreciationCategory\": {\n fieldSettings: {\n displayName: \"Name\"\n },\n descriptionPath: AssetEntity.TaxDepreciationPolicy,\n additionalProperties: [{ id: \"YearsOfDepreciation\" }],\n formatter: (val: TValue, args?: IFormatOptions): TCellValue => {\n if (val) {\n const count = args.item.TaxDepreciationPolicy?.Coefficient?.TaxDepreciationCategory?.YearsOfDepreciation;\n return [val, i18next.t(\"FixedAsset:Form.YearsCnt\", { count })].join(\" | \");\n }\n return \"\";\n }\n },\n ...getCommonTableColumnsDefs(),\n // imported fixed asset\n IsImportedAsset: {}\n },\n additionalProperties: [{ id: \"StatusCode\" }],\n title: i18next.t(\"FixedAsset:Title\"),\n filter: defaultFilters.length ? defaultFilters.join(\" AND \") : undefined,\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n const summary: ISummaryItem[] = [\n {\n ...getNumberOursSummaryDef(\"FixedAsset\"),\n isReadOnly: isNotInCreatedState\n },\n {\n id: \"Status\",\n label: i18next.t(\"MinorAsset:Form.Status\"),\n additionalProperties: [{ id: \"Name\" }],\n formatter: (val: TValue) => {\n if (val) {\n const status = val as IAssetStatusEntity;\n return (status.Name ?? i18next.t(`MinorAsset:Status.${status?.Code}`).toString());\n }\n return DASH_CHARACTER;\n },\n colorFormatter: (val: TValue) => {\n const status = val as IAssetStatusEntity;\n return getStatusColor(status?.Code as AssetStatusCode);\n },\n defaultValue: AssetStatusCode.Created\n }, {\n id: \"Type\",\n label: i18next.t(\"FixedAsset:Form.Type\"),\n additionalProperties: [{ id: \"Name\" }],\n formatter: (val: TValue) => {\n if (val) {\n const type = val as IAssetTypeEntity;\n return type.Name ?? i18next.t(`FixedAsset:Type.${type?.Code}`).toString();\n }\n return DASH_CHARACTER;\n }\n }, {\n id: \"CalculatedPrice\",\n label: i18next.t(\"FixedAsset:Form.CalculatedPrice\"),\n formatter: assetPriceFormatter,\n isReadOnly: true,\n isRequired: false\n }, {\n id: \"TaxBalance\",\n label: i18next.t(\"FixedAsset:Form.TaxBalance\"),\n formatter: assetPriceFormatter,\n isVisible: ifAll(isNotInCreatedState, isTangible),\n isRequired: false\n }, {\n id: createPath(AssetEntity.TaxDepreciationPolicy, TaxDepreciationPolicyEntity.DepreciationSettings, DepreciationSettingEntity.DepreciationSettingTypeCode),\n label: i18next.t(\"FixedAsset:Form.ApplicationOfDepreciation\"),\n formatter: (val: TValue, args: IFormatOptions): string => {\n const _isInterrupted = isInterrupted({ storage: args.storage });\n const _hasPartialDepreciations = hasPartialDepreciation({ storage: args.storage });\n const key = _isInterrupted ? \"Interrupted\" : _hasPartialDepreciations ? \"PartialDepreciation\" : \"Normal\";\n return i18next.t(`FixedAsset:Form.${key}`);\n },\n colorFormatter: (val: TValue, args) => {\n const _isInterrupted = isInterrupted({ storage: args.storage });\n const _hasPartialDepreciations = hasPartialDepreciation({ storage: args.storage });\n return getSemanticTextColorName(_isInterrupted || _hasPartialDepreciations ? Status.Warning : Status.Success);\n },\n isVisible: isNotInCreatedState,\n isRequired: false\n }, {\n id: \"AccountingBalance\",\n label: i18next.t(\"FixedAsset:Form.AccountingBalance\"),\n formatter: assetPriceFormatter,\n isVisible: ifAll(isNotInCreatedState, !isCbaCompany),\n isRequired: false\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.Asset}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"FixedAsset:New\"), storage.data.entity?.NumberOurs),\n summary,\n isDeletable: true,\n files: AttachmentsDef,\n formControl: FixedAssetFormView,\n translationFiles: getDefinitions.translationFiles,\n customHeaderActions: [\n {\n id: AssetItemTypeCode.TechnicalImprovement,\n label: i18next.t(\"FixedAsset:Form.TechnicalImprovement\"),\n iconName: \"TechnicalImprovement\",\n isVisible: isAssetActionable,\n isDisabled: not(canCoefficientBeImproved)\n }, {\n id: AssetItemTypeCode.IncreaseOfPrice,\n label: i18next.t(\"FixedAsset:Form.IncreaseOfPrice\"),\n iconName: \"IncreaseOfPrice\",\n isVisible: isAssetActionable,\n isDisabled: not(canCoefficientBeImproved)\n }, {\n id: AssetItemTypeCode.ReductionOfPrice,\n label: i18next.t(\"FixedAsset:Form.ReductionOfPrice\"),\n iconName: \"ReductionOfPrice\",\n isVisible: isAssetActionable,\n isDisabled: not(canCoefficientBeImproved)\n }, {\n id: FixedAssetFormViewAction.Discard,\n label: i18next.t(\"FixedAsset:Form.Discard\"),\n iconName: \"Discard\",\n isVisible: isAssetActionable\n }, {\n id: FixedAssetFormViewAction.Interrupt,\n label: i18next.t(\"FixedAsset:Form.Interrupt\"),\n iconName: \"Interrupt\",\n isVisible: ifAll(isAssetActionable, not(isInterrupted)),\n isDisabled: ifAny(hasPartialDepreciation, not(canCoefficientBeInterrupted), isTaxDepreciationTypeChanged, isTaxDepreciated)\n }, {\n id: FixedAssetFormViewAction.CancelInterrupt,\n label: i18next.t(\"FixedAsset:Form.CancelInterrupt\"),\n iconName: \"Interrupt\",\n isVisible: ifAll(isAssetActionable, isInterrupted),\n isDisabled: isTaxDepreciated\n }, {\n id: FixedAssetFormViewAction.PartialDepreciationSettings,\n label: i18next.t(\"FixedAsset:Form.PartialDepreciationSettings\"),\n iconName: \"PartialDepreciation\",\n isVisible: ifAll(isAssetActionable, not(hasPartialDepreciation)),\n isDisabled: ifAny(isInterrupted, not(canCoefficientBeInterrupted), not(hasLinearTaxDepreciation), hasTaxCoefficientLimit, hasReductionRate, isTaxDepreciationTypeChanged, isTaxDepreciated)\n }, {\n id: FixedAssetFormViewAction.CancelPartialDepreciationSettings,\n label: i18next.t(\"FixedAsset:Form.CancelPartialDepreciationSettings\"),\n iconName: \"PartialDepreciation\",\n isVisible: ifAll(isAssetActionable, hasPartialDepreciation),\n isDisabled: isTaxDepreciated\n }, {\n id: FixedAssetFormViewAction.AssetCardPdfExport,\n label: i18next.t(\"FixedAsset:Form.PdfExport\"),\n iconName: \"ExportPdf\",\n isVisible: (args) => !args.storage.data.bindingContext.isNew()\n }\n ],\n additionalProperties: [\n { id: \"Company\" },\n { id: \"ChartOfAccounts\" },\n { id: \"DateForUsefulLife\" },\n { id: \"CanBeDepreciated\" },\n { id: \"IsLowPriceAsset\" },\n { id: AssetEntity.IsInUse },\n { id: \"IsImportedAsset\" },\n {\n id: \"TaxDepreciationPolicy\",\n additionalProperties: [\n {\n id: \"Items\",\n additionalProperties: [\n { id: TaxDepreciationPolicyItemEntity.DateDepreciation },\n { id: TaxDepreciationPolicyItemEntity.ReductionRate },\n { id: TaxDepreciationPolicyItemEntity.EndValue },\n { id: TaxDepreciationPolicyItemEntity.Order },\n { id: TaxDepreciationPolicyItemEntity.IsForReportOnly },\n { id: TaxDepreciationPolicyItemEntity.TaxPriceLimitCode },\n { id: TaxDepreciationPolicyItemEntity.CalculatedExpense },\n { id: TaxDepreciationPolicyItemEntity.DepreciationExpense },\n { id: TaxDepreciationPolicyItemEntity.PartialExpense },\n { id: TaxDepreciationPolicyItemEntity.AccumulatedDepreciation },\n { id: TaxDepreciationPolicyItemEntity.AccumulatedDepreciationExpense }\n ]\n },\n {\n id: \"Coefficient\",\n additionalProperties: [\n { id: TaxDepreciationCoefficientEntity.DepreciationTypeCode },\n { id: TaxDepreciationCoefficientEntity.FirstYearValueIncrease },\n { id: TaxDepreciationCoefficientEntity.TaxDepreciationCategoryCode },\n {\n id: TaxDepreciationCoefficientEntity.TaxDepreciationCategory,\n additionalProperties: [{ id: \"YearsOfDepreciation\" }]\n },\n { id: TaxDepreciationCoefficientEntity.IsMonthly },\n { id: TaxDepreciationCoefficientEntity.CanBeImproved },\n { id: TaxDepreciationCoefficientEntity.CanBeInterrupted }\n ]\n },\n { id: TaxDepreciationPolicyEntity.TaxPriceLimitCode },\n {\n id: TaxDepreciationPolicyEntity.DepreciationSettings,\n additionalProperties: [\n { id: DepreciationSettingEntity.PartialExpense },\n { id: DepreciationSettingEntity.DateValidFrom },\n { id: DepreciationSettingEntity.DateValidTo },\n { id: DepreciationSettingEntity.DepreciationSettingTypeCode }\n ]\n }\n ]\n },\n ...AttachmentsAdditionalProperties,\n ...NumberRangeAdditionalProperties\n ],\n groups: [{\n id: \"Note\",\n title: i18next.t(\"Common:General.Note\"),\n rows: [[{ id: \"Note\" }]]\n }, {\n id: \"Asset\",\n title: i18next.t(\"MinorAsset:Form.Asset\"),\n rows: [\n [{ id: \"Type\" }],\n [{ id: \"Name\" }, { id: \"Labels\" }]\n ]\n }, {\n id: IsInUseGroupId,\n title: (args) => i18next.t(`FixedAsset:Form.${isImportedAsset(args) ? \"Use\" : (isNotInCreatedState(args) ? \"InUse\" : \"PutInUse\")}`),\n togglePropPath: AssetEntity.IsInUse,\n rows: [\n [{ id: \"DateFirstPutInUse\" }],\n [{ id: \"ImportedAssetPrice\" }]\n ],\n customizationData: {\n dependents: [TaxDepreciationPolicyGroup],\n isLocked: true\n }\n }, {\n id: TaxDepreciationPolicyGroup,\n title: i18next.t(\"FixedAsset:Form.TaxDepreciationPolicy\"),\n showGroupDivider: false,\n rows: [\n [{ id: \"RemainingTaxPrice\" }, { id: \"RemainingTaxYears\" }, { id: \"UsedTaxLimit\" }, { id: \"IsImproved\" }],\n [{ id: TaxDepreciationPolicyTypePath }],\n [{ id: TaxDepreciationPolicyLocalCategoryPath }, { id: TaxRequestedLastDepreciationPath }, { id: TaxDepreciationPolicyFirstYearValueIncreasePath }, { id: \"TaxDepreciationPolicy/ReductionRate\" }]\n ],\n actions: [{\n id: FixedAssetFormViewAction.Tax,\n icon: ,\n title: i18next.t(\"FixedAsset:Form.ShowPlan\"),\n isDisabled: (args) => {\n const storage = args.storage as FormStorage;\n const asset = getAsset(args);\n const _isPartiallyDepreciated = hasPartialDepreciation(args);\n const _canCoeffBeInterrupted = canCoefficientBeInterrupted(args);\n const _isInterrupted = isInterrupted(args);\n const hasValidSettings = (!_isInterrupted || _canCoeffBeInterrupted) && (!_isPartiallyDepreciated || (_canCoeffBeInterrupted && !(asset.TaxDepreciationPolicy.ReductionRate > 0)));\n const isRemTaxPriceValid = !isVisibleByPath(storage, AssetEntity.RemainingTaxPrice) || !Number.isNaN(asset.RemainingTaxPrice);\n const isRemTaxYearsValid = !isVisibleByPath(storage, AssetEntity.RemainingTaxYears) || Number.isInteger(asset.RemainingTaxYears);\n const isDateFirstInUseValid = dateFirstPutInUseValidator(asset.DateFirstPutInUse, getCorrectValidationArgs(storage, getInfoByPath(storage, \"DateFirstPutInUse\"))) === true;\n const isFlexibleDepreciationValid = !isVisibleByPath(storage, TaxRequestedLastDepreciationPath) || isValidDate(asset.TaxDepreciationPolicy?.DateRequestedLastDepreciation);\n return !getCalculatedPrice(storage.data.entity) || !isRemTaxPriceValid || !isRemTaxYearsValid || !hasValidSettings\n || !isFlexibleDepreciationValid || !isDateFirstInUseValid || taxDepreciationCategoryValidator(storage) !== true;\n },\n isVisible: ifAll(isInUse, hasTaxDepreciation)\n }]\n }, {\n /**\n * Items are readonly - we just show items from BE with actions - user is able to remove some, etc.\n * they can be added only by actions - created from existing items from documents\n */\n id: \"Items\",\n title: i18next.t(\"MinorAsset:Form.Movements\"),\n isVisible: ifAny(not(isImportedAsset), isNotInCreatedState),\n lineItems: {\n collection: \"Items\",\n order: \"Order\",\n orderDirection: Sort.Desc,\n canReorder: false,\n showLineNumbers: false,\n // User cannot add manually lineItems, they are added by actions on BE\n isReadOnly: true,\n // Used for pairing dialog, where in read-only mode, we would like to show only some\n // rows (the newly added one) removable\n isItemRemovable: isAssetItemRemovable,\n isItemVisible: ({ item }) => {\n if (isCbaCompany && (item as IAssetItemEntity).ItemType?.Code === AssetItemTypeCode.TaxDepreciation) {\n return false;\n }\n return (item as IAssetItemEntity).ItemType?.Code !== AssetItemTypeCode.AccountingDepreciation;\n },\n columns: [{ id: \"ItemType\" }, { id: \"DateOfTransaction\" }, { id: \"Document\" }, { id: \"DocumentItem/Description\" }, { id: \"Amount\" }],\n additionalFields: [{ id: \"Order\" }, { id: \"DocumentItem\" }]\n },\n actions: [\n {\n id: FixedAssetFormViewAction.AddFromUnsorted,\n isTransparent: false,\n title: i18next.t(\"FixedAsset:Form.AddFromUnsorted\"),\n isVisible: not(ifAny(isFormReadOnly, isNotInCreatedState, isImportedAsset, ifAll(isIntangible, isCbaCompany))),\n isDisabled: ({ storage }) => {\n const { bindingContext, entity } = storage.data;\n return bindingContext.isNew() && (!entity.Name || !entity.NumberOurs);\n },\n disabledAlert: {\n status: Status.Warning,\n title: i18next.t(\"FixedAsset:Form.SaveRecordFirst\")\n }\n }\n ],\n actionsAlignment: TextAlign.Left\n }],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"MinorAsset\"),\n Note: {\n isConfirmable: true,\n type: FieldType.EditableText,\n labelStatus: LabelStatus.Removed\n },\n Name: {\n width: BasicInputSizes.XL,\n isDisabled: isDisposed\n },\n Type: {\n type: FieldType.SegmentedButton,\n labelStatus: LabelStatus.Removed,\n defaultValue: (args) => {\n if (isImportedAssetForDefaultValue(args)) {\n return null;\n }\n return AssetTypeCode.Tangible;\n },\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.AssetType)\n .sort((a, b) => b.id === AssetTypeCode.Tangible ? 1 : -1)\n },\n disabledText: i18next.t(\"Components:NotInBeta.Description\"),\n isDisabled: isCbaCompany,\n isVisible: ifAll(hasEmptyItems, not(isImportedAsset)),\n clearIfInvisible: false\n },\n Labels: getLabelsDef(\"FixedAsset\"),\n DateFirstPutInUse: {\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: dateFirstPutInUseValidator\n }\n },\n affectedFields: [\n { id: \"AccountingDepreciationPolicy/UsefulLife\", revalidate: true }\n ],\n isRequired: isInUse,\n isVisible: isInUse,\n isDisabled: isNotInCreatedState\n },\n IsInUse: {\n labelStatus: LabelStatus.Removed,\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n defaultValue: isImportedAssetForDefaultValue,\n isVisible: not(ifAny(isImportedAsset, ifAll(isIntangible, isCbaCompany))),\n clearIfInvisible: false,\n isDisabled: ifAny(isNotInCreatedState, not(hasItemType(AssetItemTypeCode.Acquisition))),\n customizationData: {\n useForCustomization: false\n }\n /* affectedFields: [{ id: \"DateFirstPutInUse\" }, { id: \"InUseAccount\" }]\n + we need to refresh DeprecationPolicy groups, whole form has to be refreshed,\n so we don't need to specify affectedFields at all */\n },\n [TaxDepreciationPolicyTypePath]: {\n ...getDepreciationTypeDef(),\n label: i18next.t(\"FixedAsset:Form.TaxDepreciationType\"), // variant mngmnt label\n isVisible: ifAll(hasTaxDepreciation, isInUse),\n isDisabled: ifAny(isInSecondAndNextTaxPeriod, isTaxDepreciated, isDisposed, isImportedAssetInUse, hasPartialDepreciation, isInterrupted)\n },\n [TaxDepreciationPolicyLocalCategoryPath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"FixedAsset:Form.TaxDepreciationCategory\"),\n isRequired: true,\n isVisible: ifAll(hasTaxDepreciation, isInUse),\n isDisabled: ifAny(isInSecondAndNextTaxPeriod, isTaxDepreciated, isDisposed, isImportedAssetInUse),\n fieldSettings: {\n shouldDisplayAdditionalColumns: true,\n showTabularHeader: true,\n items: [],\n localDependentFields: [{\n from: { id: \"TaxPriceLimitCode\" },\n to: { id: \"TaxDepreciationPolicy/TaxPriceLimitCode\" }\n }, {\n from: { id: \"Coefficient\" },\n to: { id: \"TaxDepreciationPolicy/Coefficient\" }\n }]\n },\n columns: [{\n id: \"Category\",\n label: i18next.t(\"FixedAsset:Form.Category\")\n }, {\n id: \"Years\",\n label: i18next.t(\"FixedAsset:Form.Years\")\n }],\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value, args) => {\n const { storage } = args;\n const _canCoeffBeInterrupted = canCoefficientBeInterrupted(args);\n if (!_canCoeffBeInterrupted) {\n if (isInterrupted(args)) {\n return new ValidationError(i18next.t(\"FixedAsset:Validation.NotApplicableWithInterruptedDepreciation\"), false, args.bindingContext.getPath(true));\n }\n if (hasPartialDepreciation(args)) {\n return new ValidationError(i18next.t(\"FixedAsset:Validation.NotApplicableWithPartialDepreciation\"), false, args.bindingContext.getPath(true));\n }\n }\n return taxDepreciationCategoryValidator(storage as FormStorage, value as TaxDepreciationCategoryCode);\n }\n }\n }\n },\n [TaxDepreciationPolicyFirstYearValueIncreasePath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"FixedAsset:Form.FirstOwner\"),\n fieldSettings: {\n items: []\n },\n isDisabled: ifAny(isInSecondAndNextTaxPeriod, isTaxDepreciated, isDisposed, isImportedAssetInUse),\n isVisible: ifAll(isInUse, hasTaxDepreciation, not(isCategoryWithFlexibleTaxDepreciation)),\n width: BasicInputSizes.S\n },\n [TaxRequestedLastDepreciationPath]: {\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value, args) => {\n if (!isCategoryWithFlexibleTaxDepreciation(args)) {\n return true;\n }\n return getDateRequestedLastDepreciationValidation(value, args);\n }\n }\n },\n isRequired: isCategoryWithFlexibleTaxDepreciation,\n isVisible: isCategoryWithFlexibleTaxDepreciation\n },\n \"TaxDepreciationPolicy/ReductionRate\": {\n type: FieldType.NumberInput,\n fieldSettings: {\n unit: \"%\",\n showSteppers: false,\n min: 0,\n max: 100\n },\n isRequired: false,\n validator: {\n type: ValidatorType.Integer,\n settings: {\n min: 0,\n max: 100,\n customValidator: (value, args) => {\n const numValue = typeof value === \"number\" ? value : 0;\n if (numValue > 0 && hasPartialDepreciation(args)) {\n return new ValidationError(i18next.t(\"FixedAsset:Validation.NotApplicableWithPartialDepreciation\"), false, args.bindingContext.getNavigationPath(true));\n }\n return true;\n }\n }\n },\n isDisabled: ifAny(isTaxDepreciated, isDisposed),\n isVisible: ifAll(isInUse, hasTaxDepreciation),\n width: BasicInputSizes.XS\n },\n [DepreciationValueLocalPath]: {\n type: FieldType.NumberInput,\n label: i18next.t(\"FixedAsset:Form.PartialDepreciationValue\"),\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n isRequired: isRequiredOnlyInTemporalDialog,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n excludeMin: true\n }\n },\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n }\n },\n [DepreciationSettingsValidityLocalPath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"FixedAsset:Form.Validity\"),\n fieldSettings: {\n itemsFactory: async (): Promise => {\n // ValiditySingleYear\n return [Validity.SingleYear, Validity.LongTerm].map((id) => ({\n id, label: i18next.t(`FixedAsset:Form.Validity${id}`)\n }));\n }\n },\n isRequired: isRequiredOnlyInTemporalDialog,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Items/ItemType\": {\n type: FieldType.ComboBox, // because of auditTrail view, mayBe temporary\n isRequired: false,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n \"Items/Document\": {\n textAlign: TextAlign.Left,\n isRequired: false,\n formatter: (val: TValue, args?: IFormatOptions) => {\n const { storage, item } = args;\n const isAuditTrail = (storage as FormStorage).formMode === FormMode.AuditTrail;\n\n if (isAuditTrail) {\n // format for input -> document number only (note: params are different when formatter\n // is called for table or input in form, todo: we may change this\n return (item as IDocumentEntity)?.NumberOurs;\n }\n const { Id, NumberOurs, DocumentTypeCode } = item?.Document ?? {};\n\n return Id ? getTableIntentLink(NumberOurs, {\n route: `${getRouteByDocumentType(DocumentTypeCode as DocumentTypeCode)}/${Id}`,\n context: args.storage.context,\n storage: args.storage\n }) : DASH_CHARACTER;\n },\n additionalProperties: [{ id: \"NumberOurs\" }, { id: \"DocumentTypeCode\" }]\n },\n \"Items/Amount\": {\n isRequired: false\n },\n \"Items/DocumentItem/Description\": {\n isRequired: false,\n formatter: (val: TValue, args?: IFormatOptions) => {\n const { item } = args;\n\n if (item?.ItemType?.Code === AssetItemTypeCode.Acquisition) {\n return val as string;\n }\n\n return DASH_CHARACTER;\n }\n },\n // optional fields\n DateDisposed: {\n isVisible: isDisposed,\n isDisabled: true\n },\n // imported old asset fields\n IsImportedAsset: {\n isVisible: false,\n clearIfInvisible: false,\n defaultValue: isImportedAssetForDefaultValue,\n customizationData: {\n useForCustomization: false\n }\n },\n ImportedAssetPrice: {\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n clearIfInvisible: false,\n isVisible: ifAll(isImportedAsset, isInCreatedState),\n isRequired: true,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n excludeMin: true\n }\n },\n affectedFields: [\n { id: \"RemainingAccountingPrice\", revalidate: true },\n { id: \"RemainingTaxPrice\", revalidate: true }\n ]\n },\n RemainingTaxPrice: {\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n clearIfInvisible: false,\n isVisible: ifAll(isInUse, hasTaxDepreciation, isImportedAsset, isInCreatedState),\n isRequired: true,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n customValidator: remainingPriceCustomValidator\n }\n },\n affectedFields: [\n { id: \"RemainingTaxYears\", revalidate: true },\n { id: TaxDepreciationPolicyLocalCategoryPath, revalidate: true }\n ]\n },\n UsedTaxLimit: {\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n clearIfInvisible: false,\n isVisible: ifAll(isInUse, hasTaxDepreciation, isImportedAsset, isInCreatedState, hasTaxCoefficientLimit),\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0\n }\n }\n },\n RemainingTaxYears: {\n clearIfInvisible: false,\n isVisible: ifAll(isInUse, hasTaxDepreciation, isImportedAsset, isInCreatedState, hasAcceleratedTaxDepreciation),\n isRequired: true,\n validator: {\n type: ValidatorType.Integer,\n settings: {\n min: 0,\n customValidator: (value, { storage, bindingContext }) => {\n const asset = getAsset({ storage });\n if (hasAcceleratedTaxDepreciation({ storage }) && ((asset.RemainingTaxPrice > 0) !== ((value as number) > 0))) {\n // RemainingTaxYears must correspond to RemainingTaxPrice - both must have value greater than one or both should be 0\n const path = bindingContext.getEntityPath(true);\n return new ValidationError(i18next.t(\"FixedAsset:Validation.RemainingTaxYears\"), value, path);\n }\n return true;\n }\n }\n }\n },\n IsImproved: {\n clearIfInvisible: false,\n isVisible: ifAll(isInUse, hasTaxDepreciation, isImportedAsset, isInCreatedState)\n }\n }\n };\n\n const itemsGroup = form.groups.find(g => g.id === \"Items\");\n const isInUseGroup = form.groups.find(g => g.id === IsInUseGroupId);\n if (hasAccounting) {\n table.filterBarDef[0].filterDefinition = {\n ...table.filterBarDef[0].filterDefinition,\n AccountingBalance: {},\n ...withDisplayName(\"InUseAccount\", \"Number\"),\n ...withDisplayName(\"DepreciationAccount\", \"Number\", {\n descriptionPath: AssetEntity.AccountingDepreciationPolicy\n }),\n ...withDisplayName(\"AccumulatedDepreciationsAccount\", \"Number\", {\n descriptionPath: AssetEntity.AccountingDepreciationPolicy\n }),\n \"AccountingDepreciationPolicy/UsefulLife\": {}\n };\n\n table.columns = [...table.columns, \"AccountingBalance\"];\n\n table.columnDefinition = {\n ...table.columnDefinition,\n AccountingBalance: {},\n ...withDisplayName(\"InUseAccount\", \"Number\"),\n ...withDisplayName(\"DepreciationAccount\", \"Number\", {\n descriptionPath: AssetEntity.AccountingDepreciationPolicy\n }),\n ...withDisplayName(\"AccumulatedDepreciationsAccount\", \"Number\", {\n descriptionPath: AssetEntity.AccountingDepreciationPolicy\n }),\n \"AccountingDepreciationPolicy/UsefulLife\": {}\n };\n\n form.additionalProperties = [\n ...form.additionalProperties,\n {\n id: \"AccountingDepreciationPolicy\",\n additionalProperties: [{ id: \"DateLastDepreciation\" }]\n }\n ];\n\n form.fieldDefinition = {\n ...form.fieldDefinition,\n InUseAccount: {\n ...getSingleAccountFieldDef({ datePath: AssetEntity.DateFirstPutInUse }),\n filter: {\n select: (args: IGetValueArgs) => {\n let filter: string;\n const intangible = `startsWith(Number,'${INTANGIBLE_ACCOUNT_PREFIX}')`;\n const tangible = TANGIBLE_ACCOUNT_PREFIX.map(p => `startsWith(Number,'${p}')`).join(\" OR \");\n\n if (isImportedAssetInCreatedState(args)) {\n // for new imported asset, we set asset type according to the selected account\n filter = [intangible, tangible].join(\" OR \");\n } else if (isIntangible(args)) {\n filter = intangible;\n } else {\n filter = tangible;\n }\n return `IsActive eq true AND (${filter})`;\n }\n },\n tooltipAfter: (args) => canBeDepreciated(args) ? undefined : i18next.t(\"FixedAsset:Form.NonDepreciatedAsset\"),\n width: BasicInputSizes.L,\n isRequired: isInUse,\n isVisible: isInUse,\n clearIfInvisible: false, // todo: remove when DEV-20166 is fixed\n isDisabled: isNotInCreatedState\n },\n DepreciationAccount: {\n ...getSingleAccountFieldDef({ datePath: AssetEntity.DateFirstPutInUse }),\n groupedField: GroupedField.MultiStart,\n filter: {\n select: () => `IsActive eq true AND startsWith(Number,'551')`\n },\n isRequired: ifAll(isInUse, canBeDepreciated),\n isVisible: ifAll(isInUse, canBeDepreciated),\n isDisabled: ifAny(isAssetUsedInClosedFy, isDisposed, isAccountingDepreciated, isImportedAssetInUse)\n },\n AccumulatedDepreciationsAccount: {\n ...getSingleAccountFieldDef({ datePath: AssetEntity.DateFirstPutInUse }),\n groupedField: GroupedField.MultiEnd,\n filter: {\n select: (args: IGetValueArgs) => {\n const InUseAccountNumber = (args.storage.data.entity as IAssetEntity).InUseAccount?.Number;\n const x = InUseAccountNumber?.[2] ?? \"\";\n let prefixes = [INTANGIBLE_DEPRECIATION_ACCOUNT_PREFIX, TANGIBLE_DEPRECIATION_ACCOUNT_PREFIX];\n if (isIntangible(args)) {\n prefixes = prefixes.filter(p => p === INTANGIBLE_DEPRECIATION_ACCOUNT_PREFIX);\n }\n if (isTangible(args)) {\n prefixes = prefixes.filter(p => p === TANGIBLE_DEPRECIATION_ACCOUNT_PREFIX);\n }\n return `IsActive eq true AND (${prefixes.map(p => `startsWith(Number,'${p}${x}')`).join(\" OR \")})`;\n }\n },\n isRequired: ifAll(isInUse, canBeDepreciated),\n isVisible: ifAll(isInUse, canBeDepreciated),\n isDisabled: ifAny(isAssetUsedInClosedFy, isDisposed, isAccountingDepreciated, isImportedAssetInUse)\n },\n RemainingAccountingPrice: {\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n clearIfInvisible: false,\n isVisible: ifAll(isInUse, canBeDepreciated, isImportedAsset, isInCreatedState),\n isRequired: true,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n customValidator: remainingPriceCustomValidator\n }\n },\n affectedFields: [\n { id: \"AccountingDepreciationPolicy/UsefulLife\", revalidate: true }\n ]\n },\n [AccountingDepreciationPolicyTypePath]: {\n ...getDepreciationTypeDef(),\n isDisabled: ifAny(isAccountingDepreciated, isDisposed),\n isVisible: ifAll(isInUse, canBeDepreciated)\n },\n \"AccountingDepreciationPolicy/UsefulLife\": {\n type: FieldType.NumberInput,\n fieldSettings: {\n placeholder: i18next.t(\"FixedAsset:Form.InYears\"),\n showSteppers: true,\n min: 0\n },\n validator: {\n type: ValidatorType.Integer,\n settings: {\n min: 0,\n customValidator: (value, { storage, bindingContext }) => {\n if (!isVisibleByPath(storage as FormStorage, \"AccountingDepreciationPolicy/UsefulLife\")) {\n return true;\n }\n const { DateStart } = getOldestActiveFY(storage.context);\n const origAsset = getAsset({ storage }, \"origEntity\");\n const entity = getAsset({ storage });\n const DateForUsefulLife = getUtcDayjs(entity.DateForUsefulLife ?? entity.DateFirstPutInUse);\n const _isImported = isImportedAssetEntity(entity);\n if (_isImported && entity.RemainingAccountingPrice === 0) {\n const sortedFYs = getSortedFYs(storage?.context);\n const firstFY = sortedFYs[0];\n const max = Math.ceil(getUtcDayjs(firstFY.DateStart).diff(DateForUsefulLife, \"years\", true));\n // Asset is already depreciated -> we check only maximum, minimum is not known\n if (value !== origAsset.AccountingDepreciationPolicy?.UsefulLife && (value as number) > max) {\n const path = bindingContext.getEntityPath(true);\n return new ValidationError(i18next.t(\"FixedAsset:Validation.MaxUsefulLife\", { count: max }), value, path);\n }\n return true;\n }\n const dateDiff = getUtcDayjs(DateStart).diff(DateForUsefulLife, \"years\", true);\n const isChanged = value !== origAsset.AccountingDepreciationPolicy?.UsefulLife || (_isImported && entity.RemainingAccountingPrice !== origAsset.RemainingAccountingPrice);\n if (isChanged && (value as number) <= dateDiff) {\n const path = bindingContext.getEntityPath(true);\n // we need to round up the number with added epsilon in case dateDiff is same\n // as value, it should suggest next higher\n const min = dateDiff === value ? dateDiff + 1 : Math.ceil(dateDiff);\n return new ValidationError(i18next.t(\"FixedAsset:Validation.MinUsefulLife\", { count: min }), value, path);\n }\n return true;\n }\n }\n },\n tooltip: getUsefulTooltip,\n isRequired: true,\n isDisabled: ifAny(isAccountingDepreciated, isDisposed),\n isVisible: ifAll(isInUse, canBeDepreciated, not(isCategoryWithFlexibleAccountingDepreciation)),\n width: BasicInputSizes.S,\n customizationData: {\n useForCustomization: false\n }\n },\n [AccountingRequestedLastDepreciationPath]: {\n isRequired: true,\n isDisabled: ifAny(isAccountingDepreciated, isDisposed),\n isVisible: ifAll(isInUse, canBeDepreciated, isCategoryWithFlexibleAccountingDepreciation),\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value, args) => {\n if (!isCategoryWithFlexibleAccountingDepreciation(args) || !isInUse(args)) {\n return true;\n }\n return getDateRequestedLastDepreciationValidation(value, args);\n }\n }\n },\n customizationData: {\n useForCustomization: false\n }\n },\n \"Items/DateOfTransaction\": {\n isRequired: false\n },\n \"Items/CreditAccount\": {\n fieldSettings: {\n placeholder: DASH_CHARACTER\n }\n },\n \"Items/DebitAccount\": {\n fieldSettings: {\n placeholder: DASH_CHARACTER\n }\n }\n };\n\n form.groups = arrayInsert(form.groups, {\n id: AccountingDepreciationPolicyGroup,\n title: i18next.t(\"FixedAsset:Form.AccountingDepreciationPolicy\"),\n tooltip: getAccountingDepreciationPolicyGroupTooltip,\n showGroupDivider: false,\n rows: [\n [{ id: \"RemainingAccountingPrice\" }],\n [{ id: AccountingDepreciationPolicyTypePath }],\n [\n { id: \"AccountingDepreciationPolicy/UsefulLife\" },\n { id: AccountingRequestedLastDepreciationPath },\n { id: \"DepreciationAccount\" },\n { id: \"AccumulatedDepreciationsAccount\" }\n ]\n ],\n actions: [{\n id: FixedAssetFormViewAction.Accounting,\n icon: ,\n title: i18next.t(\"FixedAsset:Form.ShowPlan\"),\n isDisabled: (args) => {\n const asset = getAsset(args);\n const storage = args.storage as FormStorage;\n const hasValidUsefulLife = !isVisibleByPath(storage, \"AccountingDepreciationPolicy/UsefulLife\") || Number.isInteger(asset.AccountingDepreciationPolicy?.UsefulLife);\n const isFlexibleDepreciationValid = !isVisibleByPath(storage, AccountingRequestedLastDepreciationPath) || isValidDate(asset.AccountingDepreciationPolicy?.DateRequestedLastDepreciation);\n return !hasValidUsefulLife\n || !getCalculatedPrice(asset)\n || !isFlexibleDepreciationValid\n || (isImportedAsset(args) && Number.isNaN(asset.RemainingAccountingPrice));\n },\n isVisible: ifAll(isInUse, canBeDepreciated)\n }]\n }, 4);\n\n itemsGroup.lineItems.columns = [\n ...itemsGroup.lineItems.columns,\n { id: \"DebitAccount\" },\n { id: \"CreditAccount\" }\n ];\n\n isInUseGroup.rows[0].push({ id: \"InUseAccount\" });\n isInUseGroup.customizationData.dependents.push(AccountingDepreciationPolicyGroup);\n }\n\n if (isCbaCompany) {\n form.fieldDefinition = {\n ...form.fieldDefinition,\n \"CalculatedPrice\": {\n isVisible: ifAll(isIntangible, isCbaCompany, isInUse, hasEmptyItems),\n isReadOnly: false,\n isRequired: true,\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n }\n }\n };\n\n isInUseGroup.rows[0].push({ id: \"CalculatedPrice\" });\n }\n\n return {\n entitySet: EntitySetName.Assets,\n table,\n form\n };\n };\n getDefinitions.translationFiles = AssetTranslations;\n\n return getDefinitions;\n};\nsetDefByEntityType(EntityTypeName.Asset, getDefinitionsFactory());","import { ifAny, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { AssetDisposalTypeCode, AssetItemTypeCode, CbaAssetDisposalTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType, NavigationSource, TextAlign, ValidatorType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport CurrencyType from \"../../../types/Currency\";\nimport { currencyScaleFormatter } from \"../../../types/Number\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { defaultDateFromActiveFiscalYear } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getSingleAccountFieldDef } from \"../../accountAssignment/AccountAssignment.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../../documents/DocumentDef\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { getInActiveFYValidation, getSameOrLaterItemOfTypeValidation, getValidationResult } from \"../Asset.utils\";\nimport {\n DamageCompensationAmountPath,\n DisposalAccountPath,\n DisposalDatePath,\n DisposalReasonPath,\n IFixedAssetDisposalCustomData\n} from \"./FixedAsset.utils\";\nimport { IFixedAssetDisposalDialogEntity } from \"./FixedAssetDisposalDialogFormView\";\n\nexport function getAccountPrefixByDisposalType(reason: AssetDisposalTypeCode): string {\n switch (reason) {\n case AssetDisposalTypeCode.Sold:\n return \"541\";\n case AssetDisposalTypeCode.Disposed:\n return \"551\";\n case AssetDisposalTypeCode.Damaged:\n return \"549\";\n case AssetDisposalTypeCode.TransferredFreeOfCharge:\n return \"543\";\n case AssetDisposalTypeCode.TransferredToPersonalUse:\n return \"491\";\n }\n}\n\nconst isOtherDamage = (args: IGetValueArgs) => {\n const reason = args.storage.getValueByPath(DisposalReasonPath) as CbaAssetDisposalTypeCode;\n return reason === CbaAssetDisposalTypeCode.OtherDamage;\n};\n\nexport const getDefinition: IGetDefinition = (context): IDefinition => {\n const hasAccounting = isAccountAssignmentCompany(context);\n const DisposalAccount = getSingleAccountFieldDef({ datePath: \"DisposalDate\" });\n DisposalAccount.fieldSettings.localDependentFields\n .forEach(ldf => {\n ldf.to = { id: BindingContext.localContext(`DisposalAccount_${ldf.to.id}`) };\n ldf.navigateFrom = NavigationSource.Parent;\n });\n\n const form: IFormDef = {\n id: \"FixedAssetDisposalSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n [DisposalDatePath]: {\n type: FieldType.Date,\n label: i18next.t(\"FixedAsset:Disposal.DisposalDate\"),\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n isRequired: true,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value, args) => {\n const storage = (args.storage as FormStorage).getCustomData().assetStorage;\n const argsWithAssetStorage = { ...args, storage };\n return getValidationResult(\n getInActiveFYValidation(value, args),\n getSameOrLaterItemOfTypeValidation(value, argsWithAssetStorage, [\n AssetItemTypeCode.TechnicalImprovement,\n AssetItemTypeCode.IncreaseOfPrice,\n AssetItemTypeCode.ReductionOfPrice,\n AssetItemTypeCode.PutInUse\n ])\n );\n }\n }\n },\n defaultValue: defaultDateFromActiveFiscalYear\n },\n [DisposalReasonPath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"FixedAsset:Disposal.Reason\"),\n fieldSettings: {\n items: getEnumSelectItems(hasAccounting ? EntityTypeName.AssetDisposalType : EntityTypeName.CbaAssetDisposalType)\n },\n isRequired: true,\n width: BasicInputSizes.L,\n defaultValue: hasAccounting ? AssetDisposalTypeCode.Disposed : CbaAssetDisposalTypeCode.PhysicalDisposal\n },\n [DamageCompensationAmountPath]: {\n type: FieldType.NumberInput,\n label: i18next.t(\"FixedAsset:Disposal.DamageCompensationAmount\"),\n textAlign: TextAlign.Right,\n isRequired: !hasAccounting,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0\n }\n },\n fieldSettings: {\n formatter: currencyScaleFormatter,\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n },\n isVisible: ifAny(hasAccounting, isOtherDamage)\n },\n [DisposalAccountPath]: {\n ...DisposalAccount,\n label: i18next.t(\"FixedAsset:Disposal.DisposalAccount\"),\n isRequired: true,\n filter: {\n select: (args: IGetValueArgs) => {\n const reason = args.storage.getValueByPath(DisposalReasonPath) as AssetDisposalTypeCode;\n const num = getAccountPrefixByDisposalType(reason);\n return `IsActive eq true AND startsWith(Number,'${num}')`;\n }\n },\n formatter: (val: TValue, args?: IFormatOptions): string => {\n const name = args.storage.getValueByPath(BindingContext.localContext(\"DisposalAccount_Name\"));\n const number = args.storage.getValueByPath(BindingContext.localContext(\"DisposalAccount_Number\"));\n return val ? `${number ?? \"\"} - ${name ?? \"\"}` : \"\";\n },\n width: BasicInputSizes.L\n }\n },\n groups: [\n {\n id: \"Common\",\n showGroupDivider: false,\n rows: [\n [{ id: DisposalDatePath }, { id: DisposalReasonPath }]\n ]\n }\n ]\n };\n\n form.groups[0].rows.push(hasAccounting ? [{ id: DisposalAccountPath }] : [{ id: DamageCompensationAmountPath }]);\n\n return {\n form\n };\n};\n\ngetDefinition.translationFiles = [\"FixedAsset\", \"Common\"];\n","import Dialog from \"@components/dialog\";\nimport Field from \"@components/inputs/field\";\nimport FieldsWrapper from \"@components/inputs/field/FieldsWrapper\";\nimport Switch from \"@components/inputs/switch\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { exportAssetCard } from \"@pages/asset/fixedAsset/FixedAsset.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext, IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { LabelStatus } from \"../../../enums\";\nimport ConfirmationButtons from \"../../../views/table/ConfirmationButtons\";\n\ninterface IProps {\n assetIds: string[];\n onConfirm: () => void;\n onClose: () => void;\n isMassAction?: boolean;\n}\n\ninterface IState {\n includeFutureTax: boolean;\n includeFutureAccounting: boolean;\n isBusy: boolean;\n}\n\nclass FixedAssetMassPdfExportDialog extends React.PureComponent {\n static contextType = AppContext;\n\n state: IState = {\n includeFutureTax: true,\n includeFutureAccounting: false,\n isBusy: false\n };\n\n handleConfirm = async (): Promise => {\n this.setState({\n isBusy: true\n });\n\n await exportAssetCard(this.props.assetIds, this.context, this.state.includeFutureTax, this.state.includeFutureAccounting);\n\n this.setState({\n isBusy: false\n });\n\n this.props.onConfirm();\n };\n\n handleCancel = (): void => {\n this.props.onClose();\n };\n\n render() {\n const context = this.context as IAppContext;\n\n return (\n }\n >\n \n \n this.setState({ includeFutureTax: checked })}\n type={SwitchType.YesNo}/>\n \n {!isCashBasisAccountingCompany(context) &&\n \n this.setState({ includeFutureAccounting: checked })}\n type={SwitchType.YesNo}/>\n \n }\n \n \n );\n }\n}\n\nexport default withTranslation([\"FixedAsset\"])(FixedAssetMassPdfExportDialog);","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { getInfoValue, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { addNewLineItem } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { ITabData } from \"@components/tabs\";\nimport { createBindingContext } from \"@odata/BindingContext\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n IMinorAssetEntity,\n IMinorAssetHistoryItemEntity,\n IMinorAssetItemEntity,\n IRegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode, CompanyPermissionCode, MinorAssetStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport dayjs from \"dayjs\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport { NEW_ITEM_DETAIL } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort, ValueType } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { ROUTE_MINOR_ASSET } from \"../../../routes\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport NumberType from \"../../../types/Number\";\nimport { addLineActionInfoValueCallback } from \"../../../views/formView/Form.utils\";\nimport { FormStorage, IFormModel } from \"../../../views/formView/FormStorage\";\nimport { SECONDARY_FILTERS_ALL } from \"../../../views/table/TableView.utils\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { getAdditionalLineItemActions, getDefinitions, MinorAssetAction } from \"./MinorAssetDef\";\n\nexport const MINOR_ASSET_FORM_TAB = \"MinorAsset\";\n\nconst isItemSelectable = (args: IGetValueArgs) => {\n // new Fast Entries are not selectable by default, so we don't have any other conditions for now\n return true;\n};\n\n/**\n * Returns minor asset status color\n * @param StatusCode\n */\nexport const getStatusColor = (StatusCode: MinorAssetStatusCode): keyof DefaultTheme => {\n let color: keyof DefaultTheme;\n\n switch (StatusCode) {\n case MinorAssetStatusCode.Active:\n color = \"C_SEM_text_good\";\n break;\n }\n\n return color;\n};\n\nexport const minorAssetStatusFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions): TCellValue => {\n const title = val as string;\n const color = getStatusColor(args.entity.Status?.Code);\n\n const colorWrapper = {val} ;\n\n return { tooltip: title, value: colorWrapper };\n};\n\nexport const getMinorAssetTabs = (): ITabData[] => [\n {\n id: SECONDARY_FILTERS_ALL,\n title: i18next.t(\"MinorAsset:Status.All\")\n }, {\n id: MinorAssetStatusCode.Active,\n title: getEnumDisplayValue(EntityTypeName.MinorAssetStatus, MinorAssetStatusCode.Active)\n }, {\n id: MinorAssetStatusCode.WithoutAssets,\n title: getEnumDisplayValue(EntityTypeName.MinorAssetStatus, MinorAssetStatusCode.WithoutAssets)\n }\n];\n\n/**\n * Adds minor asset definitions to document definition\n * @param definition\n * @param context\n * @param isReceivedDocument\n */\nexport function addMinorAssetDef(definition: IDefinition, context: IAppContext, isReceivedDocument = true): void {\n // Add LineItems actions for minor asset\n const itemsGroup = definition.form.groups.find(group => group.id === \"Items\");\n\n itemsGroup.lineItems.actions = itemsGroup.lineItems.actions ?? [];\n if (context.getCompanyPermissions().has(CompanyPermissionCode.Asset)) {\n itemsGroup.lineItems.actions.push(...getAdditionalLineItemActions(isReceivedDocument));\n }\n\n addLineActionInfoValueCallback(itemsGroup, \"isItemSelectable\", [MinorAssetAction.Create, MinorAssetAction.Pair], isItemSelectable);\n\n const minorAssetTab: IFormGroupDef = {\n id: MINOR_ASSET_FORM_TAB,\n title: i18next.t(\"Document:FormTab.MinorAsset\"),\n table: {\n id: `minorAsset_${definition.entitySet}`,\n entitySet: EntitySetName.MinorAssets,\n filter: ({ storage }) => (\n `Items/any(param: param/Document/Id eq ${storage.data?.entity?.Id})`\n ),\n initialSortBy: [{\n id: \"DateOfLastTransaction\",\n sort: Sort.Desc\n }],\n columns: [\n {\n id: \"NumberOurs\",\n formatter: (val: TValue, args: IFormatOptions): TCellValue => {\n if (!args.entity?.Id) {\n return args.entity?.NumberOurs;\n }\n\n return getTableIntentLink(val as string, {\n route: `${ROUTE_MINOR_ASSET}/${args.entity.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n }\n },\n { id: \"Description\" }\n ]\n }\n };\n // Add minor asset tab\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n tabsGroup.tabs.splice(2, 0, minorAssetTab);\n}\n\nexport function hasMinorAssetBound(oData: OData, DocumentItemIds: number[]): Promise {\n return oData.getEntitySetWrapper(EntitySetName.MinorAssets)\n .query()\n .filter(`Items/any(param: param/DocumentItem/Id in (${transformToODataString(DocumentItemIds, ValueType.Number)}))`)\n .top(1)\n .fetchData()\n .then(data => data.value.length > 0, () => false);\n}\n\nexport async function createMinorAssetStorage(docStorage: FormStorage, args: Partial, lineItemOnly: boolean, documentItems: Partial[]): Promise {\n // use clone in form storage - we can edit the form storage definition but still keep original values\n const definition = cloneDeep(getDefinitions(docStorage.context));\n definition.form.groups.forEach(grp => {\n if (grp.id === \"Items\") {\n grp.title = i18next.t(\"MinorAsset:Form.Acquisition\");\n grp.lineItems.isItemCloneable = false;\n grp.lineItems.isItemRemovable = false;\n grp.lineItems.canAdd = false;\n // simplified field list when creating / pairing minor asset from document form\n grp.lineItems.columns = [{ id: \"DateAcquired\" }, { id: \"Description\" }, { id: \"Quantity\" }, { id: \"Amount\" }, { id: \"Note\" }];\n delete grp.lineItems.actions;\n if (lineItemOnly) {\n grp.title = null;\n grp.lineItems.canReorder = false;\n }\n } else if (lineItemOnly) {\n grp.isVisible = false;\n }\n if (grp.id === \"Movements\") {\n grp.isVisible = false;\n }\n });\n\n const { oData, t, history, match, theme, context, data: { entity } } = docStorage;\n\n const formStorage = new FormStorage({\n oData, t, history, match, theme, context,\n id: definition.form.id,\n definition: definition.form,\n ...args\n });\n\n const bindingContext = createBindingContext(getInfoValue(definition, \"entitySet\"), oData.getMetadata())\n .addKey(NEW_ITEM_DETAIL, true);\n\n formStorage.init({\n ignoreVariants: true,\n bindingContext,\n onAfterLoad: () => {\n const entityType = docStorage.data.bindingContext.getEntityType();\n // create new items from selected document line items' data\n documentItems.forEach(docItem => {\n const item = addNewLineItem(formStorage, \"Items\");\n item.Document = {\n _metadata: {\n \"\": { type: `#${entityType.getFullName()}` }\n },\n Id: entity.Id,\n DocumentTypeCode: entity.DocumentTypeCode,\n NumberOurs: entity.NumberOurs\n };\n item.DocumentItem = {\n _metadata: {\n \"\": { type: `#${docStorage.data.bindingContext.navigate(\"Items\").getEntityType().getFullName()}` }\n },\n Id: docItem.Id\n };\n item.Quantity = docItem.Quantity;\n // Tax payer uses price without tax, the rest whole price including VAT.\n item.IsVatIncluded = !isVatRegisteredCompany(docStorage.context);\n item.Amount = item.IsVatIncluded ? docItem.Amount ?? docItem.TransactionAmount : docItem.AmountNet ?? docItem.TransactionAmountNet;\n item.CurrencyCode = getCompanyCurrency(context);\n item.DateAcquired = docStorage?.data.entity.DateAccountingTransaction;\n item.Description = docItem.Description;\n });\n\n // default minor asset name from item\n // formStorage.setValueByPath(\"Description\", documentItems[0].Description);\n }\n });\n\n return formStorage;\n}\n\n/**\n * Corrects minorAssetItems after user changes them -> e.g. generates new movements, recalculates prices, etc...\n * @param items\n * @param storage\n */\nexport function correctMinorAssetItems(items: IMinorAssetItemEntity[], storage: FormStorage): IMinorAssetItemEntity[] {\n const dataBindingContext = storage.data.bindingContext.navigate(\"Items\");\n const origItems = (storage.data.origEntity as IMinorAssetEntity).Items;\n return items.map(item => {\n const origItem = getBoundValue({\n bindingContext: dataBindingContext.addKey(item),\n data: origItems,\n dataBindingContext\n });\n return correctMinorAssetItemEntity(storage, item, origItem);\n });\n}\n\nconst defaultItem: IMinorAssetItemEntity = {\n Quantity: 0, Amount: 0\n};\n\nexport function correctMinorAssetItemEntity(storage: FormStorage, item: IMinorAssetItemEntity, origItem: IMinorAssetItemEntity = defaultItem): IMinorAssetItemEntity {\n const now = dayjs();\n if (!item.DateAcquired) {\n // add default if not present, todo: may be better handled on BE?\n item.DateAcquired = now.toDate();\n }\n if (!item.CurrencyCode) {\n item.CurrencyCode = storage.context.getDefaultCurrency();\n }\n if (item.Amount === origItem.Amount && item.Quantity === origItem.Quantity) {\n // no change -> return original item without recalculation (typically for disposed items)\n return item;\n }\n let origMovements: IMinorAssetHistoryItemEntity[] = item.Items ?? [];\n const newAmount = roundToDecimalPlaces(2, item.Quantity ? item.Amount / item.Quantity : origItem.Amount / origItem.Quantity);\n // in case single item is rounded, it will calculate exact amount for the whole asset\n item.Amount = roundToDecimalPlaces(2, newAmount * item.Quantity);\n\n origMovements = newAmount ? origMovements.map(movement => ({\n ...movement,\n Amount: roundToDecimalPlaces(2, newAmount * movement.Quantity)\n })) : origMovements;\n\n let newMovement: IMinorAssetHistoryItemEntity = null;\n // correct movements\n if (item.Quantity !== origItem.Quantity) {\n const quantity = item.Quantity - origItem.Quantity;\n newMovement = {\n Amount: roundToDecimalPlaces(2, Math.abs(newAmount * quantity)),\n DateOfTransaction: getUtcDate(),\n IsVatIncluded: item.IsVatIncluded,\n CurrencyCode: item.CurrencyCode,\n ItemTypeCode: quantity < 0 ? AssetItemTypeCode.Disposal : AssetItemTypeCode.Acquisition,\n Quantity: Math.abs(quantity)\n };\n }\n if (newMovement) {\n const sameMovementIdx = origMovements.findIndex(origItem =>\n origItem.ItemTypeCode === newMovement.ItemTypeCode && dayjs(origItem.DateOfTransaction).isSame(newMovement.DateOfTransaction, \"day\"));\n if (sameMovementIdx >= 0) {\n // if same movement already exists, we update it\n const sameMovement = origMovements[sameMovementIdx];\n sameMovement.Quantity += newMovement.Quantity;\n sameMovement.Amount = roundToDecimalPlaces(2, sameMovement.Amount + newMovement.Amount);\n newMovement = null;\n }\n }\n item.Items = [...origMovements, newMovement].filter(item => !!item);\n return item;\n}\n\nfunction handleLineItemQuantityChange(storage: FormStorage, args: ISmartFieldChange) {\n const { bindingContext } = args;\n const value = NumberType.parse(args.value as string);\n if (bindingContext.getPath() === \"Quantity\" && NumberType.isValid(value)) {\n // recalculates Amount according to quantity if possible. For new items, we calculate it from current values\n // if both values are set and valid. For saved items, we always use original entity to be consistent in all cases\n let origAmount: number, origQuantity: number;\n const itemBc = bindingContext.getParent();\n const amountBc = itemBc.navigate(\"Amount\");\n if (itemBc.isNew()) {\n origAmount = storage.getValue(amountBc);\n origQuantity = storage.getValue(bindingContext);\n } else {\n const shared = {\n dataBindingContext: storage.data.bindingContext,\n data: storage.data.origEntity\n };\n origAmount = storage.isDirty(amountBc) ? storage.getValue(amountBc)\n : getBoundValue({ ...shared, bindingContext: amountBc });\n origQuantity = getBoundValue({ ...shared, bindingContext });\n }\n // if both are set and valid numbers\n if (NumberType.isValid(origQuantity) && NumberType.isValid(origAmount) && origQuantity > 0) {\n const newAmount = roundToDecimalPlaces(2, value * origAmount / origQuantity);\n if (NumberType.isValid(newAmount)) {\n storage.setValue(amountBc, newAmount);\n }\n }\n }\n}\n\n/**\n * Common item change handle used in form and pairing table view\n * @param storage\n * @param args\n */\nexport function handleMinorAssetLineItemsChange(storage: FormStorage, args: ISmartFieldChange): void {\n // reads old data from storage, has to be called before actual change\n handleLineItemQuantityChange(storage, args);\n\n storage.handleLineItemsChange(args);\n storage.refreshFields();\n}\n","import React from \"react\";\n\nimport { IconSize } from \"../../../enums\";\nimport BindingContext, { createBindingContext } from \"../../../odata/BindingContext\";\nimport { PairIcon } from \"../../icon\";\nimport { ISmartSelectProps, SmartSelect } from \"../smartSelect\";\nimport SmartPairingSelectBase, { ISmartPairingSelectSharedProps } from \"./SmartPairingSelectBase\";\n\ninterface IProps extends ISmartSelectProps, ISmartPairingSelectSharedProps {\n\n}\n\n/** Combination of Select and Dialog to pick one document for pairing.\n * Hardcoded for documents, but could be changed to be used with anything. */\nexport default class SmartPairingSelect extends React.Component {\n getSelectedItems = (): BindingContext[] => {\n let selectedBc;\n\n if (this.props.value) {\n selectedBc = createBindingContext(this.props.fieldInfo.fieldSettings.entitySet as string, this.props.storage.oData.metadata).addKey(this.props.value as (string | number));\n }\n return selectedBc ? [selectedBc] : [];\n };\n\n renderSelect = (onIconClick: (e: React.MouseEvent) => void): React.ReactElement => {\n const { onPair, dialogTableViewProps, getDefinition, ...selectProps } = this.props;\n\n return (\n }\n onIconActivate={onIconClick}\n fieldInfo={this.props.fieldInfo}\n onKeyDown={this.props.onKeyDown}\n />\n );\n };\n\n render() {\n return (\n \n );\n }\n}","import { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { getInfoValue, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n getCommonTableColumnsDefs,\n getLabelsDef,\n getLabelsFilterDef,\n LabelsTableColumnDef,\n NoteFieldDef,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TSmartFormGroupAction } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { transformPairingSelectItems } from \"@components/smart/smartPairingSelect/SmartPairingSelect.utils\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n IDocumentEntity,\n IMinorAssetEntity,\n MinorAssetEntity,\n MinorAssetHistoryEntryEntity,\n MinorAssetHistoryItemEntity,\n MinorAssetItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode, DocumentTypeCode, MinorAssetStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport * as yup from \"yup\";\nimport { ValidationError } from \"yup\";\n\nimport Field from \"../../../components/inputs/field\";\nimport SmartPairingSelect from \"../../../components/smart/smartPairingSelect/SmartPairingSelect\";\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport {\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n LabelStatus,\n Sort,\n TextAlign,\n ValidatorType\n} from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { IStorageModelData } from \"../../../model/StorageModel\";\nimport { getCorrectValidationArgs } from \"../../../model/Validator\";\nimport { ValidationMessage } from \"../../../model/Validator.types\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport CurrencyType, { formatCurrency, formatCurrencyVariableDecimals } from \"../../../types/Currency\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport NumberType from \"../../../types/Number\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { isFullForm } from \"../Asset.utils\";\nimport { getMinorAssetTabs, getStatusColor, minorAssetStatusFormatter } from \"./MinorAsset.utils\";\nimport { getDefinitions as getPairDefinitions, getMinorAssetPairingFilter } from \"./MinorAssetDocumentPairDef\";\nimport MinorAssetFormView from \"./MinorAssetFormView\";\n\nexport enum MinorAssetAction {\n // keep also the suffix, it's used in common line items actions, so it should not clash with other actions\n Pair = \"PairMinorAsset\",\n Create = \"CreateMinorAsset\",\n Dispose = \"DisposeMinorAssetLineItem\"\n}\n\nexport function getDocumentTypeByPairingType(pairingType: AssetItemTypeCode): DocumentTypeCode[] {\n switch (pairingType) {\n case AssetItemTypeCode.Acquisition:\n return [\n DocumentTypeCode.InvoiceReceived,\n DocumentTypeCode.OtherLiability\n ];\n case AssetItemTypeCode.Disposal:\n return [\n DocumentTypeCode.InvoiceIssued,\n DocumentTypeCode.OtherReceivable\n ];\n default:\n return [] as DocumentTypeCode[];\n }\n}\n\nexport function getPairingTypeByDocumentType(docType: DocumentTypeCode): AssetItemTypeCode {\n return [AssetItemTypeCode.Acquisition, AssetItemTypeCode.Disposal]\n .find(key => getDocumentTypeByPairingType(key).includes(docType));\n}\n\n\nconst IS_ITEM_REMOVED_PATH = BindingContext.localContext(\"IS_ITEM_REMOVED\");\n\nexport function setItemIsRemoved(storage: FormStorage, bindingContext: BindingContext): void {\n storage.setValue(bindingContext.navigate(IS_ITEM_REMOVED_PATH), true);\n}\n\nfunction isItemRemoved({ storage, bindingContext }: IGetValueArgs): boolean {\n const quantityBc = bindingContext.navigate(\"Quantity\");\n const data = (storage as FormStorage).data.origEntity;\n const savedQuantity = getBoundValue({\n bindingContext: quantityBc,\n data,\n dataBindingContext: storage.data.bindingContext\n });\n return storage.getValue(bindingContext.navigate(IS_ITEM_REMOVED_PATH)) || savedQuantity === 0;\n}\n\nfunction getMinValueSchema(isInteger: boolean, min = 0, args: IGetValueArgs) {\n const fieldInfo = args.storage.getInfo(args.bindingContext);\n let schema = yup.number().required(ValidationMessage.Required).typeError(ValidationMessage.NotANumber);\n schema = schema.nullable();\n\n if (isInteger) {\n schema = schema.integer(ValidationMessage.Integer);\n }\n\n return schema.test(\"minimumValueOrRemoved\", \"\", function(this: yup.TestContext, value: TValue) {\n const { storage, bindingContext } = getCorrectValidationArgs(args.storage, fieldInfo, this.path);\n const isRemoved = isItemRemoved({\n storage,\n bindingContext: bindingContext.getParent()\n });\n if (!isRemoved && (value as number) < min) {\n const error = new ValidationError(ValidationMessage.SmallNumber, value, this.path);\n error.params = { min };\n return error;\n }\n return true;\n });\n}\n\nexport const getAdditionalLineItemActions = (isReceivedDocument: boolean): TSmartFormGroupAction[] => {\n return isReceivedDocument ? [\n {\n id: MinorAssetAction.Create,\n label: i18next.t(\"Document:Form.CreateMinorAsset\"),\n iconName: \"AddMinorAsset\",\n confirmLabel: i18next.t(\"Document:Form.CreateMinorAssetConfirm\"),\n ignoreTheme: true\n },\n {\n id: MinorAssetAction.Pair,\n label: i18next.t(\"Document:Form.PairMinorAsset\"),\n iconName: \"AddToMinorAsset\",\n confirmLabel: i18next.t(\"Document:Form.PairMinorAssetConfirm\"),\n ignoreTheme: true\n }\n ] : [\n // {\n // id: MinorAssetAction.Pair,\n // label: i18next.t(\"Document:Form.PairMinorAsset\"),\n // iconName: \"AddToMinorAsset\",\n // confirmLabel: i18next.t(\"Document:Form.PairMinorAssetConfirm\")\n // }\n ];\n};\n\nexport const getEditableWindowDefinition: IGetDefinition = (...args): IDefinition => {\n const def = getDefinitions(...args);\n def.table.preventStoreVariant = true;\n return def;\n};\n\nfunction isItemVisible(args: IGetValueArgs>): boolean {\n const { bindingContext, storage, item } = args;\n if (!bindingContext.isNew()) {\n const items = ((storage as FormStorage).data.origEntity as IMinorAssetEntity).Items;\n const origItem = items.find(i => i.Id === item.Id);\n return origItem?.Quantity > 0 && !isItemRemoved(args);\n }\n return true;\n}\n\nfunction isItemRemovable({ bindingContext }: IGetValueArgs): boolean {\n // only new items are removable, saved items have to be only disposed through menu\n return bindingContext.isNew();\n}\n\nfunction isItemSelectable({ bindingContext }: IGetValueArgs): boolean {\n // selectable items for disposal\n return !bindingContext.isNew();\n}\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"Description\", \"NumberOurs\", \"DateOfLastTransaction\"\n ],\n filterDefinition: {\n Description: {},\n NumberOurs: {},\n DateOfLastTransaction: {},\n ...withDisplayName(\"Status\"),\n Amount: {},\n Quantity: {},\n Note: {},\n ...getLabelsFilterDef(\"Labels\")\n }\n }],\n id: `${EntityTypeName.MinorAsset}Table`,\n tabs: getMinorAssetTabs(),\n tabsSettings: {\n filterFieldName: \"StatusCode\"\n },\n\n massEditableDef: {\n Description: {},\n Note: { ...NoteFieldDef },\n Labels: getLabelsDef(\"MinorAsset\")\n },\n columns: [\n \"NumberOurs\", \"Description\", \"Amount\", \"Status\", \"DateOfLastTransaction\"\n ],\n columnDefinition: {\n NumberOurs: {},\n Description: {},\n Quantity: {},\n Amount: {},\n DateOfLastTransaction: {},\n Note: {},\n Status: {\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: minorAssetStatusFormatter\n },\n ...LabelsTableColumnDef,\n ...getCommonTableColumnsDefs()\n },\n title: i18next.t(\"MinorAsset:Title\"),\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n const summary: ISummaryItem[] = [\n getNumberOursSummaryDef(\"MinorAsset\"),\n {\n label: i18next.t(\"MinorAsset:Form.Status\"),\n id: MinorAssetEntity.StatusCode,\n formatter: (val: TValue, data?: IEntity) => {\n return val ? getEnumDisplayValue(EntityTypeName.MinorAssetStatus, val as string) : DASH_CHARACTER;\n },\n colorFormatter: (val: TValue, data?: IEntity) => {\n return getStatusColor(val as MinorAssetStatusCode);\n },\n isVisible: isFullForm\n },\n {\n id: MinorAssetEntity.Amount,\n label: i18next.t(\"MinorAsset:Summary.Amount\"),\n textAlign: TextAlign.Right,\n formatter: (val: TValue, args: IFormatOptions) => {\n return val ? formatCurrencyVariableDecimals(val as number, args.entity[\"Currency\"][\"Code\"]) : DASH_CHARACTER;\n },\n isVisible: isFullForm\n },\n {\n id: MinorAssetEntity.Quantity,\n label: i18next.t(\"MinorAsset:Quantity\"),\n textAlign: TextAlign.Right,\n formatter: (val: TValue, args: IFormatOptions) => {\n return val ? NumberType.format(val as number, { maximumFractionDigits: 0 }) : DASH_CHARACTER;\n },\n isVisible: isFullForm\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.MinorAsset}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"MinorAsset:New\"), storage.data.entity?.NumberOurs),\n summary,\n files: AttachmentsDef,\n isDeletable: true,\n formControl: MinorAssetFormView,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [\n { id: \"Company\" },\n ...AttachmentsAdditionalProperties,\n ...NumberRangeAdditionalProperties,\n {\n id: MinorAssetEntity.Items,\n additionalProperties: [{\n id: MinorAssetItemEntity.Items,\n additionalProperties: [\n { id: MinorAssetHistoryItemEntity.Id },\n { id: MinorAssetHistoryItemEntity.ItemTypeCode },\n { id: MinorAssetHistoryItemEntity.DateCreated },\n { id: MinorAssetHistoryItemEntity.Amount },\n { id: MinorAssetHistoryItemEntity.Quantity },\n { id: MinorAssetHistoryItemEntity.DateOfTransaction },\n ]\n }]\n }\n ],\n groups: [{\n id: \"Note\",\n title: i18next.t(\"Common:General.Note\"),\n rows: [[{ id: \"Note\" }]]\n }, {\n id: \"Asset\",\n title: i18next.t(\"MinorAsset:Form.Asset\"),\n rows: [\n [{ id: \"Description\" }, { id: \"Labels\" }]\n ]\n }, {\n id: \"Items\",\n title: i18next.t(\"MinorAsset:Form.Items\"),\n lineItems: {\n collection: \"Items\",\n order: \"Order\",\n canReorder: false,\n isItemCloneable: true,\n showLineNumbers: false,\n isItemVisible,\n isItemRemovable,\n isItemSelectable,\n isTheOnlyItemRemovable: true,\n columns: [{ id: \"Description\" }, { id: \"Quantity\" }, { id: \"Amount\" }, { id: \"Document\" }],\n disableFieldsOnActiveAction: true,\n actions: [{\n id: MinorAssetAction.Dispose,\n isDisabled: (args) => args.storage.data.bindingContext.isNew(),\n label: i18next.t(\"MinorAsset:Form.DisposeMinorAssetItem\"),\n iconName: \"AssetDisposal\",\n confirmLabel: i18next.t(\"MinorAsset:Form.Dispose\"),\n ignoreTheme: true\n }]\n }\n }, {\n id: \"Movements\",\n title: i18next.t(\"MinorAsset:Form.Movements\"),\n isVisible: (args) => {\n return !!(args.storage as FormStorage).data.origEntity.Items?.length;\n },\n table: {\n id: \"MovementsTable\",\n columns: [\n {\n id: \"MinorAssetHistoryItem/ItemType\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n {\n id: \"MinorAssetHistoryItem/DateOfTransaction\"\n },\n {\n id: \"MinorAssetItem\",\n fieldSettings: {\n displayName: \"Description\"\n }\n },\n {\n id: \"MinorAssetHistoryItem/Quantity\",\n textAlign: TextAlign.Right\n },\n {\n id: \"MinorAssetHistoryItem/Amount\",\n textAlign: TextAlign.Right,\n formatter: (val: TValue, args: IFormatOptions) => {\n const currency = (args.storage.data.entity as IMinorAssetEntity).CurrencyCode ?? getCompanyCurrency(args.context);\n return formatCurrency((val as number) ?? 0, currency);\n }\n },\n { id: createPath(MinorAssetHistoryEntryEntity.MinorAssetItem, MinorAssetItemEntity.DateAcquired) }\n ],\n initialSortBy: [{ id: \"MinorAssetHistoryItem/DateCreated\", sort: Sort.Desc }],\n entitySet: EntitySetName.MinorAssetHistoryEntries,\n parentKey: \"MinorAsset/Id\",\n isSimplified: true\n }\n }],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"MinorAsset\"),\n Note: {\n isConfirmable: true,\n type: FieldType.EditableText,\n labelStatus: LabelStatus.Removed\n },\n Description: {\n width: BasicInputSizes.XL\n },\n Labels: getLabelsDef(\"MinorAsset\"),\n \"Items/Description\": {\n width: BasicInputSizes.L\n },\n \"Items/Quantity\": {\n width: FastEntryInputSizes.XS,\n fieldSettings: {\n min: 0,\n showSteppers: true\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: getMinValueSchema.bind(null, true, 0)\n }\n }\n },\n \"Items/Amount\": {\n width: FastEntryInputSizes.S,\n fieldSettings: {\n min: 1,\n unit: (args: IGetValueArgs): string => {\n const currencyCode = args.data?.Currency?.Code;\n return CurrencyType.getCurrencyUnit(currencyCode ?? \"CZK\");\n }\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: getMinValueSchema.bind(null, false, 0)\n }\n }\n },\n \"Items/Note\": {\n width: FastEntryInputSizes.XS,\n label: i18next.t(\"MinorAsset:Form.Note\")\n },\n \"Items/Document\": {\n type: FieldType.Custom,\n fieldSettings: {\n entitySet: EntitySetName.Documents,\n displayName: \"NumberOurs\",\n transformFetchedItems: transformPairingSelectItems,\n additionalProperties: [\n { id: \"DocumentTypeCode\" }\n ]\n },\n filter: {\n select: getMinorAssetPairingFilter\n },\n render: ({ storage, props, events }) => {\n const { info, name, parentProps } = props;\n const auditTrailData = props?.auditTrailData ?? props.storageData?.additionalFieldData?.auditTrailData;\n const headerData: IReadOnlyListItem[] = [{\n label: storage.t(\"MinorAsset:PairingTableView.Name\"),\n value: storage.data.entity.Description\n }];\n\n if (!props.info.fieldSettings.initialItems) {\n const value = storage.getValue(props.parentProps.bindingContext);\n if (value?.Id) {\n const preparedItem: ISelectItem = {\n id: value.Id,\n label: value.NumberOurs,\n additionalData: { ...value }\n };\n props.info.fieldSettings.initialItems = transformPairingSelectItems([preparedItem], { storage });\n }\n }\n\n const updatePairedDocument = (entity: IDocumentEntity) => {\n storage.clearAndSetValue(props.parentProps.bindingContext, entity ?? null);\n storage.clearAndSetValue(props.parentProps.bindingContext.getParent().navigate(\"DocumentItem\"), null);\n storage.refreshFields();\n };\n\n const handleSelectChange = (args: ISelectionChangeArgs) => {\n events.onSelectChange(args);\n if (args.triggerAdditionalTasks) {\n updatePairedDocument(args.additionalData);\n }\n };\n\n const handlePairing = (selected: BindingContext[], entities: IEntity[]) => {\n const entity = entities[0];\n\n updatePairedDocument(entity);\n };\n const labelStatus = getInfoValue(info, \"labelStatus\", { storage });\n return (\n \n \n \n );\n },\n additionalProperties: [{ id: \"/Items/DocumentItem\" }, { id: \"/Items/Document/DocumentTypeCode\" }]\n },\n \"Items/DateAcquired\": {\n defaultValue: () => getUtcDate()\n },\n \"Items/DateGuarantee\": {},\n \"Items/DateUsefulLife\": {}\n }\n };\n\n return {\n entitySet: EntitySetName.MinorAssets,\n table,\n form\n };\n};\ngetDefinitions.translationFiles = [\"MinorAsset\"];\ngetEditableWindowDefinition.translationFiles = getDefinitions.translationFiles;\nsetDefByEntityType(EntityTypeName.MinorAsset, getDefinitions);","import { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getCommonTableColumnsDefs, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode } from \"@odata/GeneratedEnums\";\nimport { transformToODataString } from \"@odata/OData.utils\";\n\nimport { Sort, ValueType } from \"../../../enums\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { getDocumentStatusColumnDefinition } from \"../../documents/DocumentCommonDefs\";\nimport { getDocumentStatusFilterDefinition } from \"../../documents/DocumentDef\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { StatusEntities } from \"../../reports/CommonDefs\";\nimport { getDocumentTypeByPairingType } from \"./MinorAssetDef\";\n\nexport const getMinorAssetPairingFilter = (args: IGetValueArgs): string => {\n const pairingType = AssetItemTypeCode.Acquisition;\n return `DocumentTypeCode in (${transformToODataString(getDocumentTypeByPairingType(pairingType), ValueType.String)})`;\n};\n\nexport const getDefinitions = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"DocumentType\",\n \"NumberOurs\",\n \"Amount\",\n \"BusinessPartner\"\n ],\n filterDefinition: {\n ...withDisplayName(\"DocumentType\"),\n NumberOurs: {},\n Amount: {},\n ...withDisplayName(\"BusinessPartner\"),\n ...getDocumentStatusFilterDefinition(StatusEntities),\n ...withDisplayName(\"Currency\", \"Code\"),\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {}\n\n }\n }];\n\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n preventStoreVariant: true,\n id: \"MinorAssetDocumentPairingSpecialTable\",\n columnDefinition: {\n NumberOurs: { id: \"NumberOurs\" },\n DateAccountingTransaction: { id: \"DateAccountingTransaction\" },\n DateDue: { id: \"DateDue\" },\n PaymentMethodCode: { id: \"PaymentMethodCode\" },\n SymbolVariable: { id: \"SymbolVariable\" },\n SymbolSpecific: { id: \"SymbolSpecific\" },\n SymbolConstant: { id: \"SymbolConstant\" },\n \"BankAccount/AccountNumber\": {},\n \"BankAccount/BankCode\": {},\n Amount: { id: \"Amount\" },\n Note: { id: \"Note\" },\n ...getDocumentStatusColumnDefinition(),\n BusinessPartner: {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {},\n \"AccountAssignmentSelection/AccountAssignment\": {\n id: \"AccountAssignmentSelection/AccountAssignment\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n ...getCommonTableColumnsDefs(),\n DocumentType: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n DateIssued: {}\n },\n columns: [\n \"DocumentType\",\n \"DateAccountingTransaction\",\n \"NumberOurs\",\n \"BusinessPartner\",\n \"Amount\"\n ],\n filter: getMinorAssetPairingFilter,\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n return {\n entitySet: EntitySetName.Documents,\n table\n };\n};","import React from \"react\";\nimport { cloneDeep } from \"lodash\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { getBoundValue, setBoundValue } from \"@odata/Data.utils\";\nimport { CompanyEntity, IMinorAssetEntity, IMinorAssetItemEntity, MinorAssetEntity } from \"@odata/GeneratedEntityTypes\";\nimport { FormMode } from \"../../../enums\";\nimport { setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport { Button, ButtonGroup } from \"../../../components/button\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { isFullForm } from \"../Asset.utils\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport {\n correctMinorAssetItemEntity,\n correctMinorAssetItems,\n handleMinorAssetLineItemsChange\n} from \"./MinorAsset.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { uuidv4 } from \"@utils/general\";\nimport { MinorAssetAction, setItemIsRemoved } from \"./MinorAssetDef\";\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\n\ninterface IProps extends IFormViewProps {\n isPairing?: boolean;\n}\n\nclass MinorAssetFormView extends FormViewForExtend {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n title: \"MinorAsset:FormTitle\"\n };\n\n componentDidMount() {\n super.componentDidMount();\n this.registerHeader();\n }\n\n componentDidUpdate() {\n this.registerHeader();\n }\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const numberOursBc = this.props.storage.data.bindingContext.navigate(MinorAssetEntity.NumberOurs);\n this.props.storage.addCustomRef(this._refHeader.current, numberOursBc);\n }\n };\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n if (storage.formMode !== FormMode.AuditTrail) {\n\n if (!storage.data.entity.Items?.filter(item => !!item.Quantity).length) {\n addNewLineItem(storage, MinorAssetEntity.Items);\n }\n if (!storage.data.entity.NumberOurs) {\n await setMatchingNumberRange(storage);\n }\n\n // reloads movements table when switching between entities\n this.props.storage.store({\n uuid: uuidv4()\n });\n }\n return super.onAfterLoad();\n };\n\n onBeforeSave = (): IMinorAssetEntity => {\n const { storage } = this.props;\n // when creating new minor asset on simplified form at document form, we don't remove the only line item\n if (isFullForm({ storage })) {\n storage.clearEmptyLineItems(MinorAssetEntity.Items);\n }\n\n const { bindingContext, entity } = storage.data;\n const data: IMinorAssetEntity = cloneDeep(entity);\n\n data.Items = correctMinorAssetItems(data.Items, storage);\n\n if (bindingContext.isNew()) {\n setBoundValue({\n bindingContext: bindingContext.navigate(createPath(MinorAssetEntity.Company, CompanyEntity.Id)),\n data,\n newValue: storage.context.getCompany().Id,\n dataBindingContext: bindingContext,\n preventCloning: true\n });\n data.Currency = { Code: storage.context.getDefaultCurrency() };\n }\n\n return data;\n };\n\n disposeLineItem(itemBc: BindingContext, data4Save: IEntity) {\n const { storage } = this.props;\n setItemIsRemoved(storage, itemBc);\n storage.setValue(itemBc.navigate(\"Quantity\"), 0);\n storage.setValue(itemBc.navigate(\"Amount\"), 0);\n\n const newValue = storage.getValue(itemBc);\n const origItem = getBoundValue({\n bindingContext: itemBc,\n data: data4Save,\n dataBindingContext: storage.data.bindingContext\n });\n\n correctMinorAssetItemEntity(storage, newValue, origItem);\n setBoundValue({\n bindingContext: itemBc,\n dataBindingContext: storage.data.bindingContext,\n data: data4Save,\n preventCloning: true,\n newValue\n });\n }\n\n async handleDisposeItems(itemsBc: BindingContext, items: IMinorAssetItemEntity[]): Promise {\n const { storage } = this.props;\n storage.setBusy();\n\n // save disposed items changes, show new\n const data = cloneDeep(storage.data.origEntity);\n\n // dispose all added line items\n items.forEach(item => {\n this.disposeLineItem(itemsBc.addKey(item), data);\n });\n\n const result = await this.props.storage.save({ data, skipLoad: true });\n\n if (result) {\n await storage.init({\n preserveInfos: true,\n preserveData: false,\n definition: storage.data.definition,\n bindingContext: storage.data.bindingContext\n });\n }\n // todo: should we show somehow result?\n storage.setBusy(false);\n }\n\n handleLineItemsChange = (args: ISmartFieldChange) => {\n // reads old data from storage, has to be called before actual change\n handleMinorAssetLineItemsChange(this.props.storage, args);\n };\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent) => {\n const { storage } = this.props;\n const { bindingContext, items, affectedItems, actionType, customActionType } = args;\n if (actionType === ActionType.Custom && customActionType === MinorAssetAction.Dispose) {\n this.handleDisposeItems(bindingContext, items);\n } else {\n const hasSavedItem = affectedItems.find(item => !bindingContext.addKey(item).isNew());\n if (hasSavedItem && actionType === ActionType.Remove) {\n // according to DEV-23317 it is not possible to remove saved items, they needs to be explicitly disposed\n return;\n } else {\n const [item] = affectedItems;\n const isNew = bindingContext.addKey(item).isNew();\n if (isNew && actionType === ActionType.Add) {\n item.CurrencyCode = getCompanyCurrency(storage.context);\n }\n if (actionType === ActionType.Clone) {\n delete item.Items;\n }\n storage.handleLineItemsAction(args);\n }\n storage.refresh();\n }\n };\n\n renderButtons = () => {\n if (this.props.isPairing) {\n return (\n \n {this.props.storage.t(\"Common:General.Save\")}\n \n );\n }\n\n return super.renderButtons();\n };\n\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (\n <>\n {this.renderForm()}\n \n );\n }\n}\n\nexport default withPermissionContext(MinorAssetFormView);","import styled from \"styled-components/macro\";\n\nexport const PureFormWrapperStyled = styled.div`\n margin-bottom: 20px;\n`;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { IFieldDef } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { isODataError } from \"@odata/Data.types\";\nimport { createEntity } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n IAssetItemTypeEntity,\n IDocumentItemEntity,\n IMinorAssetItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { uuidv4 } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport ReadOnlyList from \"../../../components/readOnlyList/ReadOnlyList\";\nimport { Status } from \"../../../enums\";\nimport { TRecordAny } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { PureForm } from \"../../../views/formView/PureForm\";\nimport { SecondaryTableViewTitle } from \"../../../views/table/TableView.styles\";\nimport PairingWithAssetTableView, { IPairingAssetTableViewProps } from \"../PairingWithAssetTableView\";\nimport { PureFormWrapperStyled } from \"./MinorAsset.styles\";\nimport { correctMinorAssetItems, createMinorAssetStorage, handleMinorAssetLineItemsChange } from \"./MinorAsset.utils\";\n\ninterface IProps extends IPairingAssetTableViewProps {\n onCreateItem?: (bindingContext: BindingContext, assetItem: IMinorAssetItemEntity[]) => void;\n items?: IDocumentItemEntity[];\n}\n\n\nclass PairingMinorAssetTableView extends PairingWithAssetTableView {\n\n _formRef = React.createRef();\n\n // Prepared storage with new minor asset item data\n _lineItemStorage: FormStorage;\n _types: IAssetItemTypeEntity[];\n\n // Items, which were created by the pairing confirm\n _createdIds: number[];\n\n constructor(props: IProps) {\n super(props);\n this.init();\n }\n\n async init(): Promise {\n const [storage, types] = await Promise.all([this.createStorage(), this.loadTypes()]);\n // unwraps already resolved promise\n this._lineItemStorage = storage;\n this._types = types;\n this.forceUpdate();\n }\n\n async loadTypes(): Promise {\n const res = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.AssetItemTypes)\n .query()\n .fetchData();\n\n return res.value;\n }\n\n async createStorage(): Promise {\n return createMinorAssetStorage(this.props.rootStorage, {\n refresh: () => {\n this._formRef.current?.forceUpdate();\n }\n }, true, this.props.items);\n }\n\n get type() {\n // we currently do not support different codes\n return AssetItemTypeCode.Acquisition;\n }\n\n getColumns = memoizeOne((): IFieldDef[] => {\n const itemGroup = this._lineItemStorage.data.definition.groups.find(grp => grp.id === \"Items\");\n return itemGroup.lineItems.columns;\n });\n\n getFields = memoizeOne((): BindingContext[] => {\n const { data } = this._lineItemStorage;\n const itemsBc = data.bindingContext.navigate(\"Items\").addKey(data.entity.Items[0], true);\n return this.getColumns().map(def => itemsBc.navigate(def.id));\n });\n\n handleToolbarConfirm = async (): Promise => {\n const rows = await this.props.storage.tableAPI.getAffectedRows();\n\n const assetBc = rows?.[0]?.bc;\n\n // validate only the visible line item (other fields are not filled by the user)\n const fields = this.getFields();\n await this._lineItemStorage.validateFields(fields);\n\n if (fields.some(bc => this._lineItemStorage.getError(bc))) {\n // todo: may be some message?\n this._formRef.current?.forceUpdate();\n return;\n }\n\n let alert: IAlertProps;\n let result;\n\n this.props.setBusy(true);\n\n try {\n const batch: BatchRequest = this.props.storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n const wholeEntityTree = cloneDeep(this._lineItemStorage.data.entity);\n const itemsForSave = correctMinorAssetItems(wholeEntityTree.Items as IMinorAssetItemEntity[], this._lineItemStorage);\n\n // Remove previously created entities if present\n (this._createdIds || []).forEach(idToRemove => {\n batch\n .fromPath(this._selectedItem.navigate(\"Items\").toString())\n .delete(idToRemove);\n });\n\n // Create new entities\n if (assetBc) {\n const lineItemsBc = assetBc?.navigate(\"Items\");\n itemsForSave.forEach(newItem => {\n const itemBc = lineItemsBc.addKey(newItem, true);\n\n createEntity({\n entity: newItem,\n wholeEntityTree,\n bindingContext: itemBc,\n dataBindingContext: this._lineItemStorage.data.bindingContext,\n queryParams: {},\n updateEnabledFor: [],\n batch\n });\n });\n }\n\n result = (await batch.execute()) as TRecordAny[];\n\n if (result.find(res => res?.status >= 300)) {\n // todo: how to handle errors from the batch request?\n // result[0]?.status >= 300\n // const storageItemBc = this._lineItemStorage.data.bindingContext.navigate(\"Items\").addKey(itemForSave, true);\n // this._lineItemStorage.handleOdataError({\n // error: result[0]?.body,\n // bindingContext: storageItemBc,\n // entity: wholeEntityTree\n // });\n // const { status, title, subTitle } = this._lineItemStorage.data.alert;\n alert = {\n status: Status.Error,\n title: this.props.storage.t(\"Common:Errors.ErrorHappened\")\n };\n } else {\n alert = {\n status: Status.Success,\n title: this.props.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.props.storage.t(\"MinorAsset:PairingTableView.MinorAssetPaired\")\n };\n }\n } catch (error) {\n const _isODataError = isODataError(error);\n alert = {\n status: Status.Error,\n title: _isODataError && error._code,\n subTitle: _isODataError ? error._message : `${error}`\n };\n }\n\n if (!alert.title) {\n alert.title = this.props.storage.t(\"Common:Errors.ErrorHappened\");\n }\n\n this.props.storage.setTableAlert(alert);\n this.props.setBusy(false);\n\n if (alert.status === Status.Success) {\n const createdItems = result.reduce((items, res) => {\n if (res?.status === 200 && res?.body?.value) {\n items.push(res?.body?.value);\n }\n return items;\n }, []) as IMinorAssetItemEntity[];\n const createdIds = createdItems.map(item => item.Id);\n // store newly created items\n this._selectedItem = assetBc;\n this._createdIds = createdIds;\n // notify parent\n this.props.onCreateItem?.(this._selectedItem, createdItems);\n // disable the whole form - locking will do the job\n this._lineItemStorage.data.locked = true;\n this.setTableAction(null);\n this.props.storage.tableAPI?.reloadTable();\n\n this.forceUpdate();\n\n if (this.props.formStorage) {\n // reload form if open, so newly added item is visible in the list\n this.props.formStorage.store({ uuid: uuidv4() });\n this.props.formStorage.loadDataAfterSave();\n }\n }\n };\n\n getConfirmText = () => this.props.storage.t(\"MinorAsset:PairingTableView.Complete\");\n\n getCurrentItemType = memoizeOne(() => {\n return this._types.find(item => item.Code === this.type);\n });\n\n handleChange = (e: ISmartFieldChange): void => {\n this._lineItemStorage.handleChange(e);\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n };\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n await this._lineItemStorage.handleBlur(args);\n this._lineItemStorage.refreshFields();\n };\n\n handleLineItemsChange = (args: ISmartFieldChange): void => {\n handleMinorAssetLineItemsChange(this._lineItemStorage, args);\n };\n\n get documentData(): IReadOnlyListItem[] {\n const { rootStorage } = this.props;\n return [\n {\n label: rootStorage.t(\"MinorAsset:NumberOurs\"),\n value: rootStorage.data.entity.NumberOurs\n }\n ];\n }\n\n renderHeader(): React.ReactElement {\n const storage = this.props.rootStorage;\n const titleKey = this.type === AssetItemTypeCode.Acquisition ? \"MinorAssetForPairing\" : \"MinorAssetForDeletion\";\n\n return (<>\n \n {storage.t(`MinorAsset:PairingTableView.${titleKey}`)}\n {this._lineItemStorage?.loaded &&\n \n {/* ToDo: refactor to plugAndPlay form */}\n \n }\n );\n }\n}\n\nexport default withBusyIndicator({ isDelayed: true })(PairingMinorAssetTableView);","import { createMinorAssetStorage } from \"./MinorAsset.utils\";\nimport MinorAssetFormView from \"./MinorAssetFormView\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IDocumentItemEntity, IMinorAssetItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport ReadOnlyList from \"../../../components/readOnlyList/ReadOnlyList\";\nimport { FormViewForExtend } from \"../../../views/formView/FormView\";\nimport { IAssetFormCustomData } from \"../Asset.utils\";\n\n\ninterface IProps {\n rootStorage: FormStorage;\n onClose?: () => void;\n onCreateItem?: (bindingContext: BindingContext, assetItems: IMinorAssetItemEntity[]) => void;\n items?: IDocumentItemEntity[];\n}\n\nexport function MinorAssetFormPage({ rootStorage, onClose, onCreateItem, items }: IProps): React.ReactElement {\n\n const _formRef = useRef>();\n const [storage, setStorage] = useState(null);\n\n useEffect(() => {\n createMinorAssetStorage(rootStorage, {\n refresh: () => {\n _formRef.current?.forceUpdate();\n }\n }, false, items)\n .then((newStorage: FormStorage) => {\n // simplified formView mode - only one line item, simplified header, etc...\n newStorage.setCustomData({ isSimplified: true });\n setStorage(newStorage);\n });\n }, [items, rootStorage]);\n\n const handleBeforeSave = useCallback(() => {\n storage.setBusy(true);\n storage.refresh();\n }, [storage]);\n\n const handleSaveFail = useCallback(() => {\n storage.setBusy(false);\n }, [storage]);\n\n const handleAfterSave = useCallback((isNew: boolean) => {\n storage.setBusy(false);\n // reload data to get new IDs\n // note: if the binding context is not new, storage reloads itself automagically\n (isNew ? storage.loadDataAfterSave() : Promise.resolve())\n .then(() => {\n // take the first item as the newly created -> resolves the dialog with it\n onCreateItem(storage.data.bindingContext, storage.data.entity.Items);\n });\n }, [storage, onCreateItem]);\n\n const documentData = [{\n label: rootStorage.t(\"MinorAsset:NumberOurs\"),\n value: rootStorage.data.entity.NumberOurs\n }];\n\n return storage && (\n <>\n \n )\n }}\n />\n \n );\n}","import React, { useCallback, useContext, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { getEditableWindowDefinition as getDefinitions, MinorAssetAction } from \"./MinorAssetDef\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { PageViewMode } from \"../../../enums\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport Dialog from \"../../../components/dialog/Dialog\";\nimport i18next from \"i18next\";\nimport DialogPage from \"../../DialogPage\";\nimport PairingMinorAssetTableView from \"./PairingMinorAssetTableView\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { MinorAssetFormPage } from \"./MinorAssetFormPage\";\nimport { ConfirmationDialogContext } from \"@components/dialog/ConfirmationDialogProvider\";\nimport { IMinorAssetItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport { hasMinorAssetBound, MINOR_ASSET_FORM_TAB } from \"./MinorAsset.utils\";\n\nexport interface WithMinorAssetPairing {\n onLineItemsAction?: (args: ISmartFastEntriesActionEvent, storage: FormStorage) => Promise;\n}\n\ninterface WithMinorAssetPairingProps {\n onLineItemsAction?: (args: ISmartFastEntriesActionEvent, storage: FormStorage) => Promise;\n}\n\ntype TWithMinorAssetPairing

    = Omit & WithMinorAssetPairingProps;\n\nexport const withMinorAssetPairing =

    (Component: React.ComponentType

    ): React.ComponentType> => {\n\n return React.forwardRef((props: TWithMinorAssetPairing

    , ref) => {\n const { onLineItemsAction } = props;\n\n const { t, ready: tReady } = useTranslation(getDefinitions.translationFiles);\n const confirmationDialog = useContext(ConfirmationDialogContext);\n\n const documentStorage = useRef(null);\n const actionArgs = useRef(null);\n\n const [dialogType, setDialogType] = useState(false);\n const [activeRowsCount, setActiveRowsCount] = useState(0);\n\n const handleLineItemsAction = useCallback(async (args: ISmartFastEntriesActionEvent, docStorage: FormStorage) => {\n let shouldInterrupt;\n\n if (args.actionType === ActionType.Remove) {\n const ids = args.affectedItems.map(item => item.Id).filter(Boolean);\n // todo: go through the data loaded into the table below the form in tabs if we would have access to them from here\n const hasMinorAsset = !ids.length ? false : await hasMinorAssetBound(docStorage.oData, ids);\n\n if (hasMinorAsset) {\n // we are trying to remove line item with minor asset relation - shows confirmation dialog\n const content = (<>\n {t(\"Document:Confirmations.ConfirmDeleteMinorAsset\")}

    \n {t(\"Common:Confirmations.ConfirmContinue\")}\n );\n const shouldContinue = await confirmationDialog.open({\n content\n });\n\n shouldInterrupt = !shouldContinue;\n } else {\n // no minor asset is connected to the line item, could be deleted in normal way\n shouldInterrupt = false;\n }\n\n } else if (args.actionType === ActionType.Custom &&\n [MinorAssetAction.Create, MinorAssetAction.Pair].includes(args.customActionType as MinorAssetAction)) {\n\n // load translation files\n await i18next.loadNamespaces(getDefinitions.translationFiles);\n\n documentStorage.current = docStorage;\n actionArgs.current = args;\n // shows pairing/creation dialog\n setDialogType(args.customActionType as MinorAssetAction);\n shouldInterrupt = true;\n } else if (onLineItemsAction) {\n // to enable chaining of multiple HOC wrappers, we need to propagate onLineItemsAction\n shouldInterrupt = await onLineItemsAction?.(args, docStorage);\n } else {\n shouldInterrupt = false;\n }\n\n return shouldInterrupt;\n }, [confirmationDialog, onLineItemsAction, tReady]);\n\n\n const handleClose = useCallback(() => {\n setActiveRowsCount(0);\n setDialogType(false);\n }, []);\n\n const handleCreate = useCallback((bindingContext: BindingContext, assetItems: IMinorAssetItemEntity[]) => {\n setActiveRowsCount(0);\n documentStorage.current.updateTabsVisibility([MINOR_ASSET_FORM_TAB]);\n }, []);\n\n const showConfirmDialog = useCallback(async () => {\n await confirmationDialog.open({\n content: i18next.t(\"MinorAsset:PairingTableView.AssetNotConfirmed\"),\n confirmText: i18next.t(\"MinorAsset:PairingTableView.DoNotComplete\"),\n onConfirm: handleClose\n });\n }, [confirmationDialog, handleClose]);\n\n const items = actionArgs.current?.items;\n return (\n <>\n \n\n {!!dialogType &&\n

    \n\n {dialogType === MinorAssetAction.Create &&\n \n }\n\n {dialogType === MinorAssetAction.Pair &&\n }\n \n }\n \n );\n }) as any;\n};","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { getLabelsFilterDef, LabelsTableColumnDef } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TCellValue } from \"@components/table\";\nimport { ITabData } from \"@components/tabs\";\nimport { createPath } from \"@odata/BindingContext\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n DocumentItemEntity,\n DocumentTypeEntity,\n EntitySetName,\n EntityTypeName,\n IUnorganizedAssetEntity,\n UnorganizedAssetEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode, AssetTypeCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { ISplitPageTableDef, ITableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { AssetTranslations } from \"../fixedAsset/FixedAsset.utils\";\n\nconst getUnorganizedAssetTabs = (): ITabData[] => [\n {\n id: AssetTypeCode.Tangible,\n title: getEnumDisplayValue(EntityTypeName.AssetType, AssetTypeCode.Tangible)\n }, {\n id: AssetTypeCode.Intangible,\n title: getEnumDisplayValue(EntityTypeName.AssetType, AssetTypeCode.Intangible)\n }\n];\n\nexport const getDefinitionsFactory = (tableId: ITableDef[\"id\"] = `${EntityTypeName.UnorganizedAsset}Table`, preventStoreVariant = false, itemType?: AssetItemTypeCode): IGetDefinition => {\n const defaultFilters: string[] = [];\n\n if (itemType) {\n // show only unorganized assets related to item type (technical improvement, reduction or increase of price)\n const isReduction = itemType === AssetItemTypeCode.ReductionOfPrice;\n const operator = isReduction ? \"lt\" : \"ge\";\n defaultFilters.push(`${UnorganizedAssetEntity.Amount} ${operator} 0`);\n }\n\n const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n UnorganizedAssetEntity.EntryDate,\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.NumberOurs),\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.DocumentType),\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Name),\n createPath(UnorganizedAssetEntity.DocumentItem, DocumentItemEntity.Description),\n UnorganizedAssetEntity.Amount\n ],\n filterDefinition: {\n [UnorganizedAssetEntity.EntryDate]: {},\n [UnorganizedAssetEntity.Currency]: {\n fieldSettings: {\n displayName: DocumentTypeEntity.Name\n },\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.NumberOurs)]: {\n label: i18next.t(\"FixedAsset:NumberOurs\"),\n description: null\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.DocumentType)]: {\n fieldSettings: {\n displayName: DocumentTypeEntity.Name\n },\n label: i18next.t(\"FixedAsset:Unorganized.DocumentType\"),\n description: null\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Name)]: {\n label: i18next.t(\"FixedAsset:Unorganized.BusinessPartner\"),\n description: null\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.Note)]: {\n label: i18next.t(\"FixedAsset:Unorganized.DocumentNote\"),\n description: null\n },\n [createPath(UnorganizedAssetEntity.DocumentItem, DocumentItemEntity.Description)]: {\n label: i18next.t(\"FixedAsset:Unorganized.ItemDescription\"),\n description: null\n },\n [UnorganizedAssetEntity.Amount]: {},\n ...getLabelsFilterDef(\"Labels\")\n }\n }],\n preventStoreVariant,\n id: tableId,\n tabs: getUnorganizedAssetTabs(),\n tabsSettings: {\n filterFieldName: UnorganizedAssetEntity.AssetTypeCode\n },\n columns: [\n UnorganizedAssetEntity.EntryDate,\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.NumberOurs),\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.DocumentType, DocumentTypeEntity.Name),\n createPath(UnorganizedAssetEntity.Document, DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Name),\n createPath(UnorganizedAssetEntity.DocumentItem, DocumentItemEntity.Description),\n UnorganizedAssetEntity.Amount\n ],\n columnDefinition: {\n [UnorganizedAssetEntity.EntryDate]: {},\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.NumberOurs)]: {\n label: i18next.t(\"FixedAsset:NumberOurs\"),\n formatter: (val: TValue, {\n entity,\n storage\n }: IFormatOptions): TCellValue => {\n const { Id, DocumentType: { Code } } = entity.Document;\n return getTableIntentLink(val as string, {\n route: `${getRouteByDocumentType(Code as DocumentTypeCode)}/${Id}`,\n context: storage.context,\n storage: storage\n });\n }\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.DocumentType, DocumentTypeEntity.Name)]: {\n label: i18next.t(\"FixedAsset:Unorganized.DocumentType\")\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Name)]: {\n label: i18next.t(\"FixedAsset:Unorganized.BusinessPartner\")\n },\n [createPath(UnorganizedAssetEntity.Document, DocumentEntity.Note)]: {\n label: i18next.t(\"FixedAsset:Unorganized.DocumentNote\")\n },\n [createPath(UnorganizedAssetEntity.DocumentItem, DocumentItemEntity.Description)]: {\n label: i18next.t(\"FixedAsset:Unorganized.ItemDescription\")\n },\n [UnorganizedAssetEntity.Amount]: {},\n ...LabelsTableColumnDef,\n },\n additionalProperties: [\n // mandatory fields for Asset actions, have to be always loaded\n { id: UnorganizedAssetEntity.EntryDate },\n { id: createPath(UnorganizedAssetEntity.Document, DocumentEntity.Id) },\n { id: createPath(UnorganizedAssetEntity.Document, DocumentEntity.NumberOurs) },\n { id: createPath(UnorganizedAssetEntity.DocumentItem, DocumentItemEntity.Id) },\n // additional property for NumberOurs formatter\n { id: createPath(UnorganizedAssetEntity.Document, DocumentEntity.DocumentType, DocumentTypeEntity.Code) }\n ],\n title: i18next.t(\"FixedAsset:Unorganized.Title\"),\n filter: defaultFilters.length ? defaultFilters.join(\" AND \") : undefined,\n initialSortBy: [\n { id: UnorganizedAssetEntity.EntryDate, sort: Sort.Desc }\n ]\n };\n\n return {\n entitySet: EntitySetName.UnorganizedAssets,\n table\n };\n };\n getDefinitions.translationFiles = [\n ...AssetTranslations, getEnumNameSpaceName(EntityTypeName.AssetType)\n ];\n\n return getDefinitions;\n};\nsetDefByEntityType(EntityTypeName.UnorganizedAsset, getDefinitionsFactory());\n","import { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport React from \"react\";\n\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { FormViewForExtend } from \"../../../views/formView/FormView\";\nimport { FormAlertContainer } from \"../../../views/formView/FormView.styles\";\nimport { PureForm } from \"../../../views/formView/PureForm\";\n\nclass FixedAssetChangePriceFormView extends FormViewForExtend {\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n\n if (e.bindingContext.getPath() === BindingContext.localContext(\"Type\")) {\n const { storage } = this.props;\n const dateBc = storage.data.bindingContext.navigate(\"Date\");\n storage.clearError(dateBc);\n storage.validateField(dateBc)\n .then(() => storage.refreshFields());\n }\n }\n\n renderForm(): React.ReactElement {\n const { alert } = this.props.storage.data;\n return (<>\n {alert && }\n \n );\n }\n}\n\nexport default withPermissionContext(FixedAssetChangePriceFormView);","import { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { EntitySetName, IAssetEntity, IChartOfAccountsEntity } from \"@odata/GeneratedEntityTypes\";\nimport { reloadAccounts } from \"@pages/accountAssignment/Account.utils\";\nimport { DateOfTransactionPath, DebitAccountIdPath } from \"@pages/asset/unorganizedAsset/dialogs/AddToCostsDef\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction } from \"@pages/documents/Document.utils\";\nimport { getActiveFiscalYear } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport React from \"react\";\n\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport DialogFormView, { IDialogFormViewProps } from \"../../../../views/formView/DialogFormView\";\nimport { getAlertFromError } from \"../../../../views/formView/Form.utils\";\nimport { IFormStorageDefaultCustomData, IFormStorageSaveResult } from \"../../../../views/formView/FormStorage\";\nimport { addToCosts } from \"../../fixedAsset/FixedAsset.utils\";\n\nexport interface IAddToCostsCustomData extends IFormStorageDefaultCustomData {\n documentItemIds?: number[];\n header?: React.ReactElement;\n}\n\n\nclass AddToCostsDialogFormView extends DialogFormView> {\n _lastDateOfTransaction: Date;\n\n onAfterLoad = async () => {\n this._lastDateOfTransaction = this.props.storage.getValueByPath(DateOfTransactionPath);\n this.setDefaultDebitAccount();\n return super.onAfterLoad();\n };\n\n handleDateOfTransactionChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === DateOfTransactionPath && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const hasError = storage.validateFieldSync(e.bindingContext);\n if (hasError) {\n // do not reload accounts if date is not valid (e.g. not in active FY or out of range)\n return;\n }\n const DateOfTransaction = storage.getValueByPath(DateOfTransactionPath);\n const previousFiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, this._lastDateOfTransaction);\n const { fiscalYear } = getFiscalDataCorrespondingToDateAccountingTransaction(storage, DateOfTransaction);\n this._lastDateOfTransaction = DateOfTransaction;\n\n const hasChanged = previousFiscalData?.fiscalYear?.Id !== fiscalYear?.Id;\n if (hasChanged) {\n storage.setBusy(true);\n await reloadAccounts(storage, !!fiscalYear, DebitAccountIdPath);\n storage.setBusy(false);\n }\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n this.handleDateOfTransactionChange(e);\n }\n\n setDefaultDebitAccount = async (): Promise => {\n const { storage } = this.props;\n const fy = getActiveFiscalYear(storage.context);\n const res = await storage.oData.getEntitySetWrapper(EntitySetName.ChartsOfAccounts).query()\n .filter(`FiscalYear/Id eq ${fy.Id}`)\n .expand(\"Accounts\", q => {\n q.filter(\"Number eq '548'\")\n .select(\"Id, Number, Name\");\n })\n .fetchData();\n const account = res.value?.[0].Accounts?.[0];\n if (account) {\n const bc = storage.data.bindingContext.navigate(DebitAccountIdPath);\n const parentBc = bc.getParent();\n this.props.storage.setValue(bc, account.Id);\n this.props.storage.setValue(parentBc.navigate(BindingContext.localContext(\"Name\")), account.Name);\n this.props.storage.setValue(parentBc.navigate(BindingContext.localContext(\"Number\")), account.Number);\n this.props.storage.refresh();\n }\n };\n\n save = async (): Promise => {\n const { storage } = this.props;\n if (await storage.validate(true)) {\n this.forceUpdate();\n return null;\n }\n\n const { bindingContext, entity } = storage.data;\n\n storage.setBusy();\n this.forceUpdate();\n\n try {\n const accountId = storage.getValueByPath(DebitAccountIdPath);\n const date = storage.getValueByPath(DateOfTransactionPath);\n const documentItemIds = storage.getCustomData().documentItemIds;\n await addToCosts(documentItemIds, accountId, date);\n } catch (error) {\n storage.setFormAlert(getAlertFromError(error));\n storage.setBusy(false);\n this.forceUpdate();\n return null;\n }\n\n return {\n bindingContext,\n data: entity\n };\n };\n}\n\nexport default withPermissionContext(AddToCostsDialogFormView);","import { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { TitleStyled } from \"@components/readOnlyList/ReadOnlyList.styles\";\nimport React from \"react\";\n\nimport { Status } from \"../../../enums\";\nimport { IReturnValue, pairDocumentItemsWithAsset, unpairDocumentItemsFromAsset } from \"../Asset.utils\";\nimport PairingWithAssetTableView, { IPairingAssetTableViewProps } from \"../PairingWithAssetTableView\";\n\ninterface IProps extends IPairingAssetTableViewProps {\n renderedTable?: React.ReactElement;\n entryIds?: number[];\n}\n\nclass PairingFixedAssetTableView extends PairingWithAssetTableView {\n\n handleToolbarConfirm = async (): Promise => {\n const { formStorage, storage, entryIds } = this.props;\n const rows = await storage.tableAPI.getAffectedRows();\n let result: IReturnValue;\n\n const assetBc = rows?.[0]?.bc;\n const selectedKey = assetBc?.getKey();\n const pairedKey = this._selectedItem?.getKey();\n const openedAssetDetailKey = formStorage?.data.bindingContext.getKey();\n const selectionChanged = selectedKey !== pairedKey;\n\n const openedAssetDetailFormIsGoingToChange = openedAssetDetailKey && selectionChanged\n && (openedAssetDetailKey === pairedKey || openedAssetDetailKey === selectedKey);\n\n // there could be opened detail of currently selected asset\n // -> set the form to busy and reload after adding the new items, so the form is actual\n if (openedAssetDetailFormIsGoingToChange) {\n formStorage.setBusy();\n }\n this.props.setBusy(true);\n\n if (pairedKey && selectionChanged) {\n // unpair items from the previously selected asset\n result = await unpairDocumentItemsFromAsset(storage.oData, entryIds, this._selectedItem);\n }\n\n if (selectedKey && selectionChanged) {\n // new asset was selected -> pair items with the asset\n result = await pairDocumentItemsWithAsset(entryIds, selectedKey);\n }\n\n if (openedAssetDetailFormIsGoingToChange) {\n // we don't need to wait for reload, storage reload also sets the form to not busy\n formStorage.reload({ preserveInfos: true, withoutBusy: false, preserveData: false });\n }\n\n const { alert } = result;\n\n this.props.storage.setTableAlert(alert);\n this.props.setBusy(false);\n\n if (alert.status === Status.Success) {\n // store BindingContext of the asset with paired items, so we can unpair if user unselects the asset\n this._selectedItem = assetBc;\n this.setTableAction(null);\n this.props.storage.tableAPI?.reloadTable();\n this.forceUpdate();\n }\n };\n\n getConfirmText = (): string => this.props.storage.t(\"FixedAsset:Unorganized.Complete\");\n\n renderHeader(): React.ReactElement {\n const storage = this.props.rootStorage;\n\n return (<>\n {storage.t(\"FixedAsset:Unorganized.SelectedRecords\")}\n {this.props.renderedTable}\n {storage.t(\"FixedAsset:Unorganized.CompleteTitle\")}\n );\n }\n}\n\nexport default withBusyIndicator({ isDelayed: true })(PairingFixedAssetTableView);\n","import React from \"react\";\nimport Dialog from \"../../../../components/dialog\";\nimport DialogPage from \"../../../DialogPage\";\nimport { PageViewMode } from \"../../../../enums\";\nimport { TableStorage } from \"../../../../model/TableStorage\";\nimport PairingFixedAssetTableView from \"../../../asset/fixedAsset/PairingFixedAssetTableView\";\nimport { getDefinitionsFactory } from \"../../fixedAsset/FixedAssetDef\";\nimport { AssetStatusCode, AssetTypeCode } from \"@odata/GeneratedEnums\";\n\ninterface IProps {\n storage: TableStorage;\n renderedTable: React.ReactElement;\n type: AssetTypeCode;\n entryIds: number[];\n onClose: () => void;\n}\n\nexport default class CompleteFixedAsset extends React.Component {\n\n handleClose = (): void => {\n this.props.onClose?.();\n };\n\n render() {\n return (\n \n\n \n \n );\n }\n}\n","import React from \"react\";\nimport { ITemporalFormDialogProps } from \"../../../../views/formView/TemporalFormDialog\";\nimport NumberRangeTemporalFormDialog from \"../../../documents/NumberRangeTemporalFormDialog\";\nimport { IAssetEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ROUTE_FIXED_ASSET } from \"../../../../routes\";\nimport { createAssetFromEntries } from \"../../Asset.utils\";\n\n\nexport interface IProps extends Omit {\n entryIds: number[];\n}\n\nexport default class CreateNewAssetDialog extends React.Component {\n handleClose = async (isConfirmed: boolean): Promise => {\n if (isConfirmed) {\n const {storage} = this.props;\n storage.setBusy();\n const entity = storage.data.entity as IAssetEntity;\n const result = await createAssetFromEntries(this.props.entryIds, entity);\n storage.setBusy(false);\n\n const newAsset = result.data as IAssetEntity;\n if (newAsset) {\n // redirect to newly created asset\n storage.history.push(`${ROUTE_FIXED_ASSET}/${newAsset.Id}`);\n return;\n } else {\n // todo: how we handle errors?\n return;\n }\n }\n this.props.onClose?.(isConfirmed);\n };\n\n render() {\n const { onClose, ...restProps } = this.props;\n\n return (\n \n {this.props.children}\n \n );\n }\n}","import { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IColumn } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { isODataError } from \"@odata/Data.types\";\nimport { getDetailRouteByEntityType, getEntityTypeFromBindingContext } from \"@odata/EntityTypes\";\nimport { EntitySetName, EntityTypeName, IAssetEntity, IUnorganizedAssetEntity } from \"@odata/GeneratedEntityTypes\";\nimport { AssetItemTypeCode, AssetTypeCode } from \"@odata/GeneratedEnums\";\nimport { getCompanyCurrency, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { joinReactNodes } from \"@utils/dom.utils\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport React, { ReactElement } from \"react\";\nimport { Trans } from \"react-i18next\";\nimport { ValidationError } from \"yup\";\n\nimport { BreadCrumbProvider } from \"../../../components/breadCrumb\";\nimport Clickable from \"../../../components/clickable\";\nimport CollapsibleSection from \"../../../components/collapsibleSection/CollapsibleSection\";\nimport ReadOnlyList from \"../../../components/readOnlyList/ReadOnlyList\";\nimport { ScrollBar } from \"../../../components/scrollBar\";\nimport SimpleTable from \"../../../components/simpleTable\";\nimport { NEW_ITEM_DETAIL } from \"../../../constants\";\nimport { WithAuthContext, withAuthContext } from \"../../../contexts/authContext/withAuthContext\";\nimport { QueryParam, Status, ToolbarItemType } from \"../../../enums\";\nimport { ColoredText, ToolbarStaticText } from \"../../../global.style\";\nimport { IModifierKeys, TValue } from \"../../../global.types\";\nimport BindingContext, { createBindingContext, IEntity } from \"../../../odata/BindingContext\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { getAlertFromError } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport PlugAndPlayForm from \"../../../views/formView/PlugAndPlayForm\";\nimport TableView from \"../../../views/table\";\nimport {\n ICustomButtonDefArgs,\n TableButtonsAction,\n TableButtonsActionType\n} from \"../../../views/table/TableToolbar.utils\";\nimport { ITableViewBaseProps } from \"../../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../../views/table/TableView.render.utils\";\nimport { SecondaryTableViewTitle, TopWrapper } from \"../../../views/table/TableView.styles\";\nimport View from \"../../../views/View\";\nimport { getFiscalYearByDate, isInFYorPeriod } from \"../../fiscalYear/FiscalYear.utils\";\nimport { getDefByEntityType } from \"../../getDefByEntityType\";\nimport { setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport {\n createAssetFromEntries,\n getInActiveFYValidation,\n getSameOrLaterItemOfTypeValidation,\n getValidationResult,\n pairDocumentItemsWithAsset\n} from \"../Asset.utils\";\nimport { changeAssetPrice, FixedAssetFormViewAction, IFixedAssetCustomData } from \"../fixedAsset/FixedAsset.utils\";\nimport { getChangePriceDefFactory } from \"../fixedAsset/FixedAssetChangePriceDef\";\nimport FixedAssetChangePriceFormView from \"../fixedAsset/FixedAssetChangePriceFormView\";\nimport { assetPriceFormatter, FixedAssetEditableWindowActionFinish } from \"../fixedAsset/FixedAssetDef\";\nimport { getAddToCostsDefFactory } from \"./dialogs/AddToCostsDef\";\nimport AddToCostsDialogFormView from \"./dialogs/AddToCostsDialogFormView\";\nimport CompleteFixedAsset from \"./dialogs/CompleteFixedAsset\";\nimport CreateNewAssetDialog from \"./dialogs/CreateNewAssetDialog\";\nimport { IProps as ISmartTableProps } from \"@components/smart/smartTable\";\nimport { IAlertProps } from \"@components/alert/Alert\";\n\n\nenum UnorganizedAssetAction {\n Create = \"Create\",\n Complete = \"Complete\",\n AddToCosts = \"AddToCosts\"\n}\n\ninterface IProps extends ITableViewBaseProps, WithAuthContext, WithBusyIndicator {\n}\n\nclass UnorganizedAssetTableView extends TableView {\n _actionDialogRef = React.createRef();\n _formRef = React.createRef>>();\n _selectedRows: IUnorganizedAssetEntity[];\n _amount = 0;\n _maxEntryDate: Dayjs;\n\n static defaultProps: Partial = {\n hideDrilldown: true\n };\n\n constructor(props: IProps) {\n super(props);\n\n this.getToolbarButtons = this.getToolbarButtons.bind(this);\n this.getCustomButtonDef = this.getCustomButtonDef.bind(this);\n this.handleCustomAction = this.handleCustomAction.bind(this);\n this.getActiveButtons = this.getActiveButtons.bind(this);\n this.getDisabledButtons = this.getDisabledButtons.bind(this);\n // this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n let defaultTab: AssetTypeCode;\n\n if (this.isInEditableWindow) {\n // if (this.getEditableWindowActionType() === FixedAssetFormViewAction.ChangePrice) {\n // props.storage.emitter.on(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n // this.presetDefaultFilters();\n // }\n\n if (this.rootStorageAssetType) {\n this.setTableAction(UnorganizedAssetAction.Complete);\n }\n }\n\n if (!this.isCbaCompany) {\n defaultTab = getQueryParameters()[QueryParam.DefaultTab] as AssetTypeCode ?? this.rootStorageAssetType ?? AssetTypeCode.Tangible;\n\n this.state = {\n ...this.state,\n selectedSecondaryFilter: defaultTab\n };\n this.applySecondaryFilter(defaultTab);\n }\n }\n\n // componentWillUnmount() {\n // super.componentWillUnmount();\n //\n // this.props.storage.emitter.off(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n // }\n\n // presetDefaultFilters() {\n // if (this.isInEditableWindow && this.getEditableWindowActionType() === FixedAssetFormViewAction.ChangePrice) {\n // const type = this.getChangePriceType();\n // // set filter according to assetItemPrice\n // const isReduction = type === AssetItemTypeCode.ReductionOfPrice;\n // this.props.storage.setFilterValueByPath(UnorganizedAssetEntity.Amount, [createFilterRow({\n // value: 0,\n // condition: isReduction ? Condition.LesserThan : Condition.GreaterOrEqual\n // })]);\n // this.props.storage.applyFilters();\n // }\n // }\n\n get shouldRenderBreadcrumbs(): boolean {\n return !this.isInEditableWindow;\n }\n\n handleRowSelect = (bindingContext: BindingContext, props: IRowProps, modifiers?: IModifierKeys): void => {\n // no row selection on UnorganizedAsset\n };\n\n getToolbarButtons(): TableButtonsActionType[] {\n const buttons = super.getToolbarButtons();\n const filteredButtons = buttons.filter(id => ![TableButtonsAction.Add, TableButtonsAction.Remove].includes(id as TableButtonsAction));\n\n let assetActions = [\n UnorganizedAssetAction.Create,\n UnorganizedAssetAction.Complete\n ];\n\n if (!this.isCbaCompany) {\n assetActions.push(UnorganizedAssetAction.AddToCosts);\n }\n\n if (this.isInEditableWindow) {\n // show only AddTo action in editableWindow\n assetActions = assetActions.filter(id => id === UnorganizedAssetAction.Complete);\n }\n\n return [...assetActions, ...filteredButtons];\n }\n\n getDisabledButtons(disableAll?: boolean): TableButtonsActionType[] {\n const disabledButtons = super.getDisabledButtons(disableAll);\n const action = this.getTableAction();\n const unorganizedButtons = [\n UnorganizedAssetAction.Create,\n UnorganizedAssetAction.Complete,\n UnorganizedAssetAction.AddToCosts\n ].filter(button => button !== action);\n const isEmpty = this.props.storage.tableAPI?.getState().rowCount === 0;\n\n if (disableAll || action || isEmpty) {\n return [...disabledButtons, ...unorganizedButtons];\n }\n\n return disabledButtons;\n }\n\n createToolbarItem(id: UnorganizedAssetAction, iconName: string, args: ICustomButtonDefArgs, forceDisabled = false): IToolbarItem {\n const action = this.getTableAction();\n const isDisabled = (!!action && action !== id) || args.isDisabled || forceDisabled;\n const isActive = action === id;\n return {\n itemType: ToolbarItemType.Icon,\n id,\n label: this.props.storage.t(`FixedAsset:Unorganized.${id}`),\n iconName,\n isDisabled,\n isActive\n };\n }\n\n getCustomButtonDef(action: TableButtonsActionType, args: ICustomButtonDefArgs): IToolbarItem {\n switch (action) {\n case UnorganizedAssetAction.AddToCosts:\n return this.createToolbarItem(UnorganizedAssetAction.AddToCosts, \"Costs\", args);\n case UnorganizedAssetAction.Create:\n return this.createToolbarItem(UnorganizedAssetAction.Create, \"Add\", args);\n case UnorganizedAssetAction.Complete:\n return this.createToolbarItem(UnorganizedAssetAction.Complete, \"AddTo\", args);\n default:\n return super.getCustomButtonDef(action, args);\n }\n }\n\n setTableAction = async (action: UnorganizedAssetAction = null, active = true): Promise => {\n await super.setTableAction(action, active);\n this.forceUpdate();\n };\n\n get isCbaCompany(): boolean {\n return isCashBasisAccountingCompany(this.props.storage.context);\n }\n\n get isInEditableWindow(): boolean {\n return !!this.props.rootStorage;\n }\n\n getRootStorage = (): FormStorage => {\n return this.props.rootStorage as FormStorage;\n };\n\n getEditableWindowActionType = memoizeOne((): FixedAssetFormViewAction => {\n return this.getRootStorage()?.getCustomData().FixedAssetFormViewAction;\n });\n\n getChangePriceType = (): AssetItemTypeCode => {\n return this.getRootStorage()?.getCustomData().AssetItemTypeCode;\n };\n\n get rootStorageAssetType(): AssetTypeCode {\n return (this.getRootStorage()?.data.entity as IAssetEntity)?.Type?.Code as AssetTypeCode;\n }\n\n get assetType(): AssetTypeCode {\n return this.state.selectedSecondaryFilter as AssetTypeCode;\n }\n\n getSelectedAssets = async (): Promise => {\n const rows = this.props.storage.tableAPI.getState().rows;\n const selectedRows = await this.props.storage.tableAPI.getAffectedRows();\n return selectedRows.map(item => getRow(rows, item.bc).customData.entity as IUnorganizedAssetEntity);\n };\n\n getEntryIds = (rows: IUnorganizedAssetEntity[]): number[] => rows.map(item => item.DocumentItem.Id);\n\n handleToolbarConfirm = async (): Promise => {\n const selectedAssets = await this.getSelectedAssets();\n\n if (this.isInEditableWindow) {\n // We do pairing immediately because we already have AssetId\n // Note: only pairing action is currently used this way\n const rootStorage = this.getRootStorage();\n const entryIds = this.getEntryIds(selectedAssets);\n const assetId = rootStorage.data.bindingContext.getKey();\n let isSuccess = false;\n let entity = null;\n // todo: check how alerts are displayed here and unify may be??\n\n switch (this.getEditableWindowActionType()) {\n case FixedAssetFormViewAction.AddFromUnsorted:\n this.props.setBusy(true);\n let result;\n if (rootStorage.data.bindingContext.isNew()) {\n // creates new asset with paired documentItems\n result = await createAssetFromEntries(entryIds, rootStorage.data.entity as IAssetEntity);\n entity = result.data;\n } else {\n // complete existing\n result = await pairDocumentItemsWithAsset(entryIds, assetId);\n }\n this.props.setBusy(false);\n this.props.storage.setTableAlert(result.alert);\n isSuccess = result.alert.status === Status.Success;\n break;\n\n case FixedAssetFormViewAction.ChangePrice:\n const { storage } = this._formRef.current.props;\n if (await storage.validate()) {\n this._formRef.current.forceUpdate();\n return;\n }\n // remove possible error alert if present\n storage.clearFormAlert();\n this._formRef.current.forceUpdate();\n let alert: IAlertProps;\n\n this.props.setBusy(true);\n try {\n const originalAsset = rootStorage.data.entity as IAssetEntity;\n const type = this.getChangePriceType();\n const data = await changeAssetPrice(type, storage, entryIds, assetId);\n const price = formatCurrency(data.CalculatedPrice, data.CurrencyCode);\n const originalPrice = formatCurrency(originalAsset.CalculatedPrice, data.CurrencyCode);\n const title = i18next.t(`FixedAsset:ChangePrice.SuccessAlert_${type}`);\n\n alert = {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n hoverTitle: title,\n subTitle: (<>\n {title}\n
    \n \n }}/>\n )\n };\n } catch (e) {\n if (isODataError(e)) {\n const assetPriceValidation = e._validationMessages?.find(message => message.code === \"AssetValueCannotBeUpdatedLowPrice\");\n if (assetPriceValidation) {\n // we want to show this message in this particular case\n // todo: how to solve this generally??\n e._message = assetPriceValidation.message;\n }\n }\n alert = getAlertFromError(e);\n }\n this.props.storage.setTableAlert(alert);\n this.props.setBusy(false);\n storage.refresh(true);\n this.forceUpdate();\n isSuccess = alert.status === Status.Success;\n break;\n }\n\n if (entity || isSuccess) {\n rootStorage.emitter.emit(FixedAssetEditableWindowActionFinish, entity);\n\n // turn off table action, reloads table, etc...\n await this.handleCustomDialogClose();\n }\n } else {\n this._selectedRows = selectedAssets;\n this.forceUpdate();\n }\n };\n\n handleToolbarCancel = (): void => {\n if (this.isTableAction()) {\n this.props.storage.tableAPI.cancelAction();\n this._selectedRows = [];\n this.calculateMinChangePriceDate(this._selectedRows);\n this._formRef.current?.props.storage.clearFormAlert();\n this._amount = 0;\n this.setTableAction(null);\n }\n };\n\n getConfirmText(tableAction: TableButtonsAction | string): string | React.ReactElement {\n const { storage } = this.props;\n const activeRowActionCount = storage.tableAPI?.getState().activeRows.size;\n\n if ([UnorganizedAssetAction.Create, UnorganizedAssetAction.Complete, UnorganizedAssetAction.AddToCosts].includes(tableAction as UnorganizedAssetAction)) {\n let actionTitleKey = tableAction;\n if (this.isInEditableWindow && this.getEditableWindowActionType() === FixedAssetFormViewAction.ChangePrice) {\n // in editable window, only \"Complete\" action is visible, but with different confirmation according to\n // actual action\n actionTitleKey = `ChangePrice_${this.getChangePriceType()}`;\n }\n return getConfirmationActionText(storage.t(`FixedAsset:Unorganized.${actionTitleKey}`), activeRowActionCount);\n }\n\n return super.getConfirmText(tableAction);\n }\n\n getActionText(action: UnorganizedAssetAction, type: \"Confirm\" | \"Title\"): string {\n const { storage } = this.props;\n return storage.t(`FixedAsset:Unorganized.${action}${type}`);\n }\n\n createAndInitFormStorage = (entitySet: EntitySetName, prepareNumberRange = false): FormStorage => {\n const { storage } = this.props;\n const bindingContext = createBindingContext(entitySet, storage.oData.metadata);\n const definition = getDefByEntityType(getEntityTypeFromBindingContext(bindingContext))(storage.context);\n // create form definition from massEditable fields' def merged with form group definitions\n const formDef = definition.form;\n\n const formStorage = new FormStorage({\n oData: storage.oData,\n history: storage.history,\n t: storage.t,\n context: storage.context,\n id: formDef.id,\n definition: formDef,\n refresh: () => {\n this._actionDialogRef.current?.forceUpdate();\n }\n });\n\n formStorage.init({\n bindingContext: bindingContext.addKey(NEW_ITEM_DETAIL, true),\n data: {}, // just empty form without default values\n ignoreDefaults: true\n })\n .then(() => prepareNumberRange && setMatchingNumberRange(formStorage))\n .then(() => formStorage.refresh());\n\n return formStorage;\n };\n\n getSelectedRowsTitle = (): ReactElement => {\n return getConfirmationActionText(this.props.storage.t(\"FixedAsset:Unorganized.SelectedRecords\"), this._selectedRows.length);\n };\n\n renderSelectedRowsTable = (withoutMargin = false): ReactElement => {\n const tableState = this.props.storage.tableAPI.getState();\n // Table columns\n const columns: IColumn[] = tableState.columns.map(column => ({\n id: column.id,\n textAlign: column.textAlign,\n label: column.label\n }));\n\n const rows = this.props.storage.tableAPI.getRowsArray().filter(row =>\n this._selectedRows.find(selectedRow => selectedRow.DocumentItem.Id === row.customData?.entity.DocumentItem.Id));\n\n return (\n \n \n \n );\n };\n\n renderSelectedRowsCollapsibleSection = (): ReactElement => {\n return (\n \n {this.renderSelectedRowsTable(true)}\n \n );\n };\n\n renderCustomDialog = (): ReactElement => {\n const action = this.getTableAction();\n if (!this._selectedRows?.length || !action) {\n return null;\n }\n const ids = this.getEntryIds(this._selectedRows);\n\n let storage: FormStorage;\n\n switch (action) {\n case UnorganizedAssetAction.Complete:\n // editable window with fixed asset selection\n return (\n \n );\n case UnorganizedAssetAction.Create:\n storage = this.createAndInitFormStorage(EntitySetName.Assets, true);\n return (\n \n {this.renderSelectedRowsCollapsibleSection()}\n \n );\n case UnorganizedAssetAction.AddToCosts:\n const bindingContext = createBindingContext(BindingContext.localContext(\"AddToCosts\"), this.props.storage.oData.metadata);\n const initialData = {\n customData: {\n header: this.renderSelectedRowsCollapsibleSection(),\n documentItemIds: ids\n }\n };\n return (\n this.handleCustomDialogClose(false)\n }}\n />\n );\n default:\n return null;\n }\n };\n\n handleAddToCostsConfirm = async (): Promise => {\n // success message\n const links = this._selectedRows.map((entity) => {\n const url = getDetailRouteByEntityType(entity.Document.DocumentType.Code as EntityTypeName, entity.Document.Id, true);\n return (\n {entity.Document.NumberOurs}\n );\n });\n const linkNodes = joinReactNodes(links, \", \");\n const alert = {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: (<>{this.props.storage.t(\"FixedAsset:AddToCosts.SuccessMessage\")}: {linkNodes})\n };\n this.props.storage.setTableAlert(alert);\n\n await this.handleCustomDialogClose(true);\n };\n\n handleCustomDialogClose = async (reloadTable = true): Promise => {\n const { storage } = this.props;\n const { tableAPI } = storage;\n // remove breadcrumbs, which might be added in editable window\n storage.context.setViewBreadcrumbs({ items: [], lockable: false });\n await tableAPI.confirmAction();\n this._selectedRows = [];\n this._amount = 0;\n this.setTableAction(null);\n if (reloadTable) {\n await tableAPI.reloadTable();\n }\n };\n\n headerData = (entity: IAssetEntity): IReadOnlyListItem[] => {\n const storage = this.props.rootStorage;\n const info = storage.getInfo(storage.data.bindingContext.navigate(\"Name\"));\n return [{\n label: info.label,\n value: entity.Name\n }, {\n label: storage.t(\"MinorAsset:Form.Status\"),\n value: i18next.t(`MinorAsset:Status.${entity.Status?.Code}`).toString()\n }, {\n label: storage.t(\"FixedAsset:Form.CalculatedPrice\"),\n value: assetPriceFormatter(entity.CalculatedPrice, { entity })\n }];\n };\n\n getMaxJournalEntryDateValidation = (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n if (this._maxEntryDate && this._maxEntryDate.isAfter(value as Date, \"day\")) {\n const opts = {\n date: DateType.format(this._maxEntryDate)\n };\n return new ValidationError(i18next.t(\"FixedAsset:Validation.JournalEntryTransaction\", opts), false, args.bindingContext.getPath(true));\n }\n return true;\n };\n\n getTechnicalImprovementDateValidation = (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n if (this.getChangePriceType() === AssetItemTypeCode.TechnicalImprovement) {\n const storage = this.props.rootStorage;\n const asset = storage.data.entity as IAssetEntity;\n const FY = getFiscalYearByDate(storage.context, value as Date);\n if (isInFYorPeriod(FY, asset.DateFirstPutInUse)) {\n return new ValidationError(i18next.t(\"FixedAsset:Validation.TechnicalImprovementDate\"), false, args.bindingContext.getPath(true));\n }\n }\n return true;\n };\n\n changePriceDateCustomValidator = (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n const argsWithAssetStorage = { ...args, storage: this.props.rootStorage };\n return getValidationResult(\n getInActiveFYValidation(value, args),\n getSameOrLaterItemOfTypeValidation(value, argsWithAssetStorage, [\n AssetItemTypeCode.TechnicalImprovement,\n AssetItemTypeCode.IncreaseOfPrice,\n AssetItemTypeCode.ReductionOfPrice,\n AssetItemTypeCode.PutInUse\n ]),\n this.getMaxJournalEntryDateValidation(value, args),\n this.getTechnicalImprovementDateValidation(value, args)\n );\n };\n\n addToCostsDateCustomValidator = (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n return getValidationResult(\n getInActiveFYValidation(value, args),\n this.getMaxJournalEntryDateValidation(value, args)\n );\n };\n\n calculateMinChangePriceDate = (selectedRows: IUnorganizedAssetEntity[]): void => {\n // calculate maximal TransactionDate\n // - ChangePriceDate needs to be later\n // - DateOfTransaction in AddToCosts dialog needs to be later\n let maxDate: Dayjs;\n selectedRows.forEach((row) => {\n if (!maxDate || maxDate.isBefore(row.EntryDate)) {\n maxDate = getUtcDayjs(row.EntryDate);\n }\n });\n this._maxEntryDate = maxDate;\n\n if (this.getEditableWindowActionType() === FixedAssetFormViewAction.ChangePrice) {\n // re-validate change price date and refresh form\n const { storage } = this._formRef.current.props;\n storage.validateFieldSync(storage.data.bindingContext.navigate(\"Date\"));\n // always update -> error may also disappear after user removes problematic entry\n this._formRef.current.forceUpdate();\n }\n };\n\n renderAssetHeader = (): ReactElement => {\n const storage = this.props.rootStorage;\n const entity = storage.data.entity as IAssetEntity;\n let actionContent;\n\n switch (this.getEditableWindowActionType()) {\n case FixedAssetFormViewAction.AddFromUnsorted:\n actionContent = (\n {storage.t(\"FixedAsset:Unorganized.TitleCompletion\")});\n break;\n case FixedAssetFormViewAction.ChangePrice:\n const bindingContext = createBindingContext(BindingContext.localContext(\"ChangePrice\"), storage.oData.metadata);\n\n actionContent = (<>\n {storage.t(`FixedAsset:Unorganized.TitleChangePrice_${this.getChangePriceType()}`)}\n \n );\n break;\n }\n\n return (<>\n \n {actionContent}\n );\n };\n\n handleActiveRowActionCountChange = async (): Promise => {\n const rows = this.props.storage.tableAPI.getState().rows;\n const selectedRows = await this.props.storage.tableAPI.getAffectedRows();\n const selectedAssets: IUnorganizedAssetEntity[] = [];\n this._amount = selectedRows.reduce((sum: number, item) => {\n const row = getRow(rows, item.bc);\n const values = row.customData.entity as IUnorganizedAssetEntity;\n selectedAssets.push(values);\n return sum + values.Amount;\n }, 0);\n this.calculateMinChangePriceDate(selectedAssets);\n // refresh would reload secondary query filters, we just need to rerender confirmation buttons\n this.forceUpdate();\n };\n\n getStaticToolbarItems = (): TToolbarItem[] => {\n if (!this.getTableAction()) {\n return [];\n }\n const formattedAmount = formatCurrency(this._amount, getCompanyCurrency(this.props.storage.context));\n return [(\n \n {this.props.storage.t(\"FixedAsset:Unorganized.SumOfSelected\")}: {formattedAmount}\n \n )];\n };\n\n renderTabs = (): ReactElement => {\n if (!!this.rootStorageAssetType || this.isCbaCompany) {\n // Type is preselected by the asset (rendered in editable window on top of asset form)\n // we also don't render tabs in CBA as it is not solved yet\n // -> do not render the tabs at all (but filter query is still applied)\n return null;\n }\n\n return super.renderTabs();\n };\n\n getTableSharedProps(): ISmartTableProps & { key: string } {\n const props = super.getTableSharedProps();\n props.keepActiveRowsOnFilterChange = this.isInEditableWindow;\n return props;\n }\n\n render = () => {\n if (!this.isLoaded()) {\n return null;\n }\n\n return (\n <>\n {this.shouldRenderBreadcrumbs &&\n }\n \n \n {this.isInEditableWindow ? this.renderAssetHeader() : this.renderSmartHeader()}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderTabs()}\n {this.renderToolbar()}\n \n {this.renderTable()}\n {this.renderCustomDialog()}\n {this.renderDefaultDialogs()}\n \n \n );\n };\n}\n\nexport default withAuthContext(withBusyIndicator({ isDelayed: true })(UnorganizedAssetTableView));\n","import { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getSingleAccountFieldDef } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"@pages/documents/DocumentDef\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport { ValidationError } from \"yup\";\n\nimport { BasicInputSizes, FieldType, ValidatorType } from \"../../../../enums\";\nimport { TValue } from \"../../../../global.types\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../../views/formView/Form\";\nimport { defaultDateFromActiveFiscalYear } from \"../../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport { IAddToCostsCustomData } from \"./AddToCostsDialogFormView\";\n\nconst AccountDefFormatter = (val: TValue, args?: IFormatOptions): string => {\n const entity = args.entity[BindingContext.localContext(\"DebitAccount\")];\n return entity ? `${entity[BindingContext.localContext(\"Number\")]} - ${entity[BindingContext.localContext(\"Name\")]}` : \"\";\n};\n\nexport const DateOfTransactionPath = BindingContext.localContext(\"DateOfTransaction\");\nexport const DebitAccountIdPath = BindingContext.localContext(\"DebitAccount/Id\");\nexport const HeaderPath = BindingContext.localContext(\"Header\");\n\nexport function getAddToCostsDefFactory(dateOfTransactionValidator: (value: TValue, args: IGetValueArgs) => boolean | ValidationError): IGetDefinition {\n\n const getDefinition: IGetDefinition = (): IDefinition => {\n const DebitAccount = getSingleAccountFieldDef({\n datePath: DateOfTransactionPath\n });\n DebitAccount.fieldSettings.localDependentFields\n .forEach(ldf => {\n ldf.to = { id: BindingContext.localContext(`DebitAccount/${ldf.to.id}`) };\n delete ldf.navigateFrom;\n });\n\n const form: IFormDef = {\n id: \"FixedAssetAddToCostsSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n [DateOfTransactionPath]: {\n type: FieldType.Date,\n label: i18next.t(\"FixedAsset:AddToCosts.DateOfTransaction\"),\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n isRequired: true,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: dateOfTransactionValidator,\n }\n },\n defaultValue: defaultDateFromActiveFiscalYear\n },\n [DebitAccountIdPath]: {\n ...DebitAccount,\n formatter: AccountDefFormatter,\n label: i18next.t(\"FixedAsset:AddToCosts.DebitAccount\"),\n filter: {\n select: () => {\n const excludeNumbers = [\"01\", \"02\", \"03\", \"05\", \"07\", \"08\", \"09\"];\n const prefix = \"startsWith(Number,'\",\n suffix = \"')\";\n const excludeQuery = prefix + excludeNumbers.join(`${suffix} OR ${prefix}`) + suffix;\n return `IsActive eq true AND NOT(${excludeQuery})`;\n }\n },\n isRequired: true,\n width: BasicInputSizes.L\n },\n [HeaderPath]: {\n type: FieldType.Custom,\n width: \"100%\",\n render: (args: IFieldDefFn) => {\n return (args.storage as FormStorage).getCustomData().header;\n }\n }\n },\n groups: [\n {\n id: \"Common\",\n showGroupDivider: false,\n rows: [\n [{ id: HeaderPath }],\n [{ id: DateOfTransactionPath }, { id: DebitAccountIdPath }]\n ]\n }\n ]\n };\n\n return {\n form\n };\n };\n\n getDefinition.translationFiles = [\"FixedAsset\", \"Common\"];\n\n return getDefinition;\n}\n","import { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { AccountDefFormatter, getLinks } from \"@components/smart/GeneralFieldDefinition\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { fetchAndSetItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { TCellValue } from \"@components/table\";\nimport { getNestedValue, getNewItemsMaxId, setNestedValue } from \"@odata/Data.utils\";\nimport { getDocumentTypeCodeFromEntityType } from \"@odata/EntityTypes\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n BankTransactionEntity,\n CashReceiptEntity,\n CbaCategoryEntity,\n DocumentCbaCategoryEntity,\n DocumentEntity,\n DocumentItemCbaCategoryEntity,\n DocumentItemEntity,\n EntitySetName,\n EntityTypeName,\n IAccountEntity,\n IBankTransactionEntity,\n ICashReceiptEntity,\n IPaymentDocumentItemEntity,\n PaymentDocumentEntity,\n PaymentDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n BankTransactionTypeCode,\n DocumentTypeCode,\n PaymentDocumentItemTypeCode,\n PaymentStatusCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isDefined, isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { createNewGain, getExpenseTitle } from \"@utils/PairTableUtils\";\nimport i18next, { TFunction } from \"i18next\";\nimport { ValidationError } from \"yup\";\n\nimport {\n BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX,\n CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX,\n REST_API_URL,\n UPDATE_CLEARING_SPLIT_ITEMS\n} from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n LabelStatus,\n NavigationSource,\n TextAlign,\n ValidationErrorType,\n ValidatorType\n} from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { parseError } from \"../../odata/ODataParser\";\nimport Currency from \"../../types/Currency\";\nimport CurrencyType, { formatCurrency } from \"../../types/Currency\";\nimport { getUtcDate } from \"../../types/Date\";\nimport NumberType, { currencyScaleFormatter, currencyScaleParser, isNumber } from \"../../types/Number\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport {\n accountsAreClosedValidator,\n getAccAssignmentFilterWithTypeAndDate,\n getAccountAssignmentItemDef,\n getChoAIdBasedOnDate,\n getExpenseGains,\n handleItemAccAssignmentChange,\n ItemCreateCustomAssignmentBc\n} from \"../accountAssignment/AccountAssignment.utils\";\nimport { readOnlyCurrencyItemFormatter } from \"../documents/Document.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../documents/DocumentDef\";\nimport { TFieldsDefinition } from \"../PageUtils\";\nimport {\n calculateExchangeRate,\n formatNumberCurrency,\n getTransactionTypeFromEntity,\n hasAdditionalExRate,\n hasExchangeGain,\n IBankCustomData\n} from \"./bankTransactions/BankTransactions.utils\";\n\nexport const PAYMENT_GROUP = \"payment_group\";\nexport const EXCHANGE_GAIN_GROUP = \"exchange_group\";\n\nexport const PairAdditionalData = [{\n id: \"Items/Amount\"\n}, {\n id: \"Items/TransactionAmount\"\n}, {\n id: \"Items/LinkedDocument/NumberOurs\"\n}, {\n id: \"Items/LinkedDocument/DocumentTypeCode\"\n}, {\n id: \"Items/LinkedDocument/TransactionAmount\"\n}, {\n id: \"Items/ClearedAmount\"\n}, {\n id: \"Items/LinkedDocument/TransactionAmountDue\"\n}, {\n id: \"Items/LinkedDocument/DateAccountingTransaction\"\n}, {\n id: \"Items/AccountAssignmentSelection/AccountAssignment\"\n}, {\n id: `Items/${ItemCreateCustomAssignmentBc}`\n}, {\n id: `Items/${BindingContext.localContext(\"AccountAmount\")}`\n}, {\n id: `Items/${BindingContext.localContext(\"ExchangeGainTitle\")}`\n}, {\n id: `Items/${BindingContext.localContext(\"GainAmount\")}`\n}, {\n id: \"Items/Order\"\n}, {\n id: \"Items/ExchangeRate\"\n}, {\n id: \"Items/LinkedDocument/ExchangeRatePerUnit\"\n}, {\n id: \"Items/LinkedDocument/TransactionCurrencyCode\"\n}, {\n id: \"Items/Order\"\n}, {\n id: \"Items/PaymentDocumentItemTypeCode\"\n}, {\n id: `${BindingContext.localContext(\"ItemsHeader\")}`\n}, {\n id: \"Items/SplitAccountAssignments/TransactionAmount\"\n}, {\n id: \"Items/SplitAccountAssignments/Description\"\n}, {\n id: \"Items/SplitAccountAssignments/CreditAccount\"\n}, {\n id: \"Items/SplitAccountAssignments/DebitAccount\"\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.IsAssetAcquisition)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxImpactCode)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxPercentage)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.Category, CbaCategoryEntity.Name)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentItems, DocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.IsAssetAcquisition)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentItems, DocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxImpactCode)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentItems, DocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxPercentage)\n}, {\n id: createPath(PaymentDocumentEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentItems, DocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.Category, CbaCategoryEntity.Name)\n}];\n\nexport const getBankTransItemDefaultDateAccountingTransaction = (storage: FormStorage): Date => {\n const name = BankTransactionEntity.DateBankTransaction;\n const dateBankTransaction = storage.getValueByPath(name);\n return dateBankTransaction ?? getUtcDate();\n};\n\nexport const getCashReceiptItemDefaultDateAccountingTransaction = (storage: FormStorage): Date => {\n const name = CashReceiptEntity.DateIssued;\n const dateBankTransaction = storage.getValueByPath(name);\n\n return dateBankTransaction ?? getUtcDate();\n};\n\nexport const getBankItemDefaultDateAccountingTransaction = (storage: FormStorage): Date => {\n const type = getDocumentTypeCodeFromEntityType(storage.data.bindingContext.getRootParent().getEntityType().getName() as EntityTypeName);\n\n return type === DocumentTypeCode.BankTransaction ? getBankTransItemDefaultDateAccountingTransaction(storage) : getCashReceiptItemDefaultDateAccountingTransaction(storage);\n};\n\nconst getTransactionAmountUnit = (args: IGetValueArgs) => {\n const currency = args.storage.data.entity?.TransactionCurrency?.Code ?? args.storage.data.entity?.TransactionCurrencyCode;\n return currency ? CurrencyType.getCurrencyUnit(currency) : getCompanyCurrency(args.storage.context);\n};\n\nexport const isPairAmountReadOnly = (storage: FormStorage, bc: BindingContext): boolean => {\n const row = storage.getValue(bc.getParent());\n const hasDoc = row?.LinkedDocument?.Id;\n return !!hasDoc;\n};\n\nexport const getPairDef = (type: DocumentTypeCode, hasAccountAssignment: boolean): TFieldsDefinition => {\n const accDefs = getAccountAssignmentItemDef(\"Items\", type, false, hasAccountAssignment);\n\n const _getBankAccAssignment = (propName: string) => {\n const isDebit = propName === \"DebitAccount\";\n const filterStart = isDebit ? \"5\" : \"6\";\n const disabledStat = isDebit ? PaymentDocumentItemTypeCode.ExchangeGain : PaymentDocumentItemTypeCode.ExchangeLoss;\n const filterStat = isDebit ? PaymentDocumentItemTypeCode.ExchangeLoss : PaymentDocumentItemTypeCode.ExchangeGain;\n const defaultDef = accDefs[`Items/AccountAssignmentSelection/AccountAssignment/${propName}`];\n return {\n ...defaultDef,\n isRequired: (args: IGetValueArgs) => {\n // for dialog you have to show required and value is stored in temporal data\n // or in save when it is stored in entity\n const row = args.storage.getValue(args.bindingContext.getParent().getParent().getParent());\n if (Array.isArray(row)) {\n // called from SmartFastEntryList -> returns full Items not only one item due different binding context\n // always return true\n return true;\n }\n const code = row?.AccountAssignmentSelection?.Selection?.Code;\n const temporalData = args.storage.getTemporalData(args.bindingContext.getParent())?.value;\n\n return code === SelectionCode.Own || temporalData === SelectionCode.Own;\n },\n formatter: (val: TValue, args?: IFormatOptions) => {\n const row = args.storage.getValue(args.bindingContext.getParent().getParent().getParent());\n if (!isPaymentOrOther(row?.PaymentDocumentItemTypeCode)) {\n const entity = args.item || args.entity;\n return entity?.Number;\n }\n\n return AccountDefFormatter(val, args);\n },\n isReadOnly: (args: IGetValueArgs) => {\n const row = args.storage.getValue(args.bindingContext.getParent().getParent().getParent());\n return row?.PaymentDocumentItemTypeCode === disabledStat;\n },\n width: (args: IGetValueArgs) => {\n const row = args.storage.getValue(args.bindingContext.getParent().getParent().getParent());\n // check whether there is TypeCode prop too, don't use '?' can be called from different scopes\n if (row?.PaymentDocumentItemTypeCode && isPaymentOrOther(row.PaymentDocumentItemTypeCode)) {\n return BasicInputSizes.L;\n }\n\n return BasicInputSizes.S;\n },\n fieldSettings: {\n ...defaultDef.fieldSettings,\n entitySet: (args: IGetValueArgs) => {\n const isSplit = args.bindingContext.getFullPath().includes(PaymentDocumentItemEntity.SplitAccountAssignments);\n let bc = args.bindingContext.getParent().getParent();\n // split uses same fields but are stored in different path\n if (!isSplit) {\n bc = bc.getParent();\n }\n\n const date = args.storage.getValue(bc)?.DateAccountingTransaction\n ?? getBankItemDefaultDateAccountingTransaction(args.storage as FormStorage);\n const choaId = getChoAIdBasedOnDate(args.storage as FormStorage, date, false);\n\n return `ChartsOfAccounts(${choaId})/Accounts`;\n },\n localDependentFields: [{\n from: { id: \"Number\" },\n to: { id: \"Number\" },\n navigateFrom: NavigationSource.Itself\n }, {\n from: { id: \"Name\" },\n to: { id: \"Name\" },\n navigateFrom: NavigationSource.Itself\n }],\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n const row = args.storage.getValue((args.info as TRecordAny).bindingContext.getParent().getParent().getParent());\n if (row?.PaymentDocumentItemTypeCode === filterStat) {\n return items?.filter((item: ISelectItem) => {\n return item.additionalData?.Number?.startsWith(filterStart);\n });\n }\n\n return items;\n }\n }\n };\n };\n\n let def: TFieldsDefinition = {\n \"Items/TransactionAmount\": {\n width: BasicInputSizes.S,\n label: i18next.t(\"Common:General.Amount\"),\n fieldSettings: {\n unit: getTransactionAmountUnit\n },\n formatter: readOnlyCurrencyItemFormatter,\n isReadOnly: (args: IGetValueArgs) => {\n return isPairAmountReadOnly(args.storage as FormStorage, args.bindingContext);\n },\n parser: (value: TValue, args: IFormatOptions) => {\n return currencyScaleParser(value as string, args.storage.data.entity.TransactionCurrency);\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value, args) => {\n const code = args.storage.getValue(args.bindingContext.getParent())?.PaymentDocumentItemTypeCode;\n const isPayment = isPaymentOrOther(code);\n return isPayment ? isNumber(value) && parseFloat(value as string) > 0 : true;\n },\n message: i18next.t(\"Comnon:Validation.MustBePositiveNumber\")\n }\n },\n affectedFields: [{\n navigateFromParent: true,\n id: \"Amount\"\n }]\n },\n \"Items/Amount\": {\n width: BasicInputSizes.S,\n type: FieldType.Input,\n formatter: (val: TValue, args: IGetValueArgs) => {\n return formatCurrency(val, getCompanyCurrency(args.context));\n },\n customizationData: {\n useForCustomization: false\n },\n isReadOnly: true,\n label: i18next.t(\"Banks:Transactions.Accounted\")\n },\n \"Items/LinkedDocument/NumberOurs\": {\n label: i18next.t(\"Document:FormTab.PairedDocument\"),\n isVisible: (args: IGetValueArgs) => {\n // visible if at least one row has value\n // we cannot have column only for some rows, it would break virtualization\n // (because rows can wrap and every row has to have same height)\n const entity = args.storage.data.entity as IBankTransactionEntity;\n\n return entity?.Items?.some(item => item.LinkedDocument?.NumberOurs);\n },\n formatter: (val: TValue, args?: IFormatOptions) => {\n const row = args.storage.getValue(args.bindingContext.getParent());\n const code = getLinks(args, [{\n LinkedDocument: row\n }]);\n\n return code.fragment as TCellValue;\n },\n isRequired: false,\n isReadOnly: true\n }\n };\n\n if (hasAccountAssignment) {\n def = {\n ...def,\n ...accDefs,\n \"Items/SplitAccountAssignments/TransactionAmount\": {\n useForValidation: true,\n fieldSettings: {\n unit: getTransactionAmountUnit\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs, testContext): boolean | ValidationError => {\n let errorKey: string;\n\n if (!isNumber(value)) {\n errorKey = \"NotaNumber\";\n }\n\n if (NumberType.parse(value?.toString()) === 0) {\n errorKey = \"ZeroNotAllowed\";\n }\n\n return errorKey\n ? new ValidationError(i18next.t(`Common:Validation.${errorKey}`), value, args.bindingContext.getNavigationPath())\n : true;\n }\n }\n },\n formatter: (value: TValue, args: IFormatOptions) => currencyScaleFormatter(value as number, args.entity.TransactionCurrency),\n parser: (value: TValue, args: IFormatOptions) => {\n const maximumFractionDigits = args.entity.TransactionCurrency?.MinorUnit ?? 2;\n return NumberType.parse(value as string, true, {\n maximumFractionDigits\n });\n },\n isRequired: true,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Items/SplitAccountAssignments/Description\": {\n useForValidation: true,\n isRequired: true,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Items/SplitAccountAssignments/CreditAccount\": {\n ..._getBankAccAssignment(\"CreditAccount\"),\n isRequired: true\n },\n \"Items/SplitAccountAssignments/DebitAccount\": {\n ..._getBankAccAssignment(\"DebitAccount\"),\n isRequired: true\n },\n\n \"Items/DateAccountingTransaction\": {\n isRequired: true,\n label: i18next.t(\"Banks:Transactions.DateTransactionLabel\"),\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n isReadOnly: (args: IGetValueArgs) => {\n const row = args.storage.getValue(args.bindingContext.getParent());\n // we can use the fact that for one group this field is always readonly\n // and for the other it is always not read only\n // so if the groupID is provided use it, otherwise we need to grab it from row\n if (isDefined(args.fastEntryListId)) {\n return args.fastEntryListId === EXCHANGE_GAIN_GROUP;\n }\n\n return !isPaymentOrOther(row?.PaymentDocumentItemTypeCode);\n },\n defaultValue: (args: IGetValueArgs) => {\n return getBankItemDefaultDateAccountingTransaction(args.storage as FormStorage);\n }\n },\n [`Items/${BindingContext.localContext(\"ExchangeGainTitle\")}`]: {\n type: FieldType.Custom,\n width: FastEntryInputSizes.S,\n labelStatus: LabelStatus.Hidden,\n label: null,\n // smart fast entry list will call render only if there is a formatter (I am FAR from being that brave to change that, hence I add it here :)\n formatter: (val: TValue) => {\n return val as string;\n },\n render: (args: IFieldDefFn) => {\n const row = args.storage.getValue(args.props.info.bindingContext.getParent());\n const type = row?.PaymentDocumentItemTypeCode;\n const isLoss = type === PaymentDocumentItemTypeCode.ExchangeLoss;\n return getExpenseTitle(isLoss, { width: args.props.width, withMargin: true });\n },\n customizationData: {\n useForCustomization: false\n }\n },\n [`Items/${BindingContext.localContext(\"GainAmount\")}`]: {\n isReadOnly: true,\n textAlign: TextAlign.Right,\n label: i18next.t(\"Banks:Pairing.Accounted\"),\n formatter: (val: TValue, args?: IFormatOptions) => {\n const row = args.storage.getValue(args.bindingContext.getParent());\n const amount = row?.Amount;\n return Currency.format(Math.abs(amount), { currency: getCompanyCurrency(args.context) });\n },\n customizationData: {\n useForCustomization: false\n }\n },\n \"Items/AccountAssignmentSelection/AccountAssignment\": {\n ...accDefs[\"Items/AccountAssignmentSelection/AccountAssignment\"],\n defaultValue: \"\",\n label: i18next.t(\"Banks:Transactions.AccountAssignmentFormLabel\"),\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: [{ validator: accountsAreClosedValidator }]\n }\n },\n filter: {\n select: (args: IGetValueArgs) => {\n // TODO: rename in IGetValueArgs to IFieldInfo\n const bc = (args.info as IFieldInfo).bindingContext;\n const date = args.storage.getValue(bc.getParent().getParent())?.DateAccountingTransaction ?? getBankItemDefaultDateAccountingTransaction(args.storage as FormStorage);\n // this can be empty because the same definition is used in both BankTransactions and CashReceipts\n const bankTransactionType: BankTransactionTypeCode = (args.storage.data.entity as IBankTransactionEntity)[BankTransactionEntity.BankTransactionType]?.Code as BankTransactionTypeCode;\n let filter = getAccAssignmentFilterWithTypeAndDate(type, args, date);\n const accountPrefix = bc.getRootParent().getPath(true) === EntitySetName.BankTransactions ? BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX : CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX;\n\n if (bankTransactionType) {\n filter += \" AND (\";\n\n if (bankTransactionType === BankTransactionTypeCode.IncomingPayment) {\n filter += `startswith(DebitAccount/Number,'${accountPrefix}')`;\n } else if (bankTransactionType === BankTransactionTypeCode.OutgoingPayment) {\n filter += `startswith(CreditAccount/Number,'${accountPrefix}')`;\n }\n\n filter += \")\";\n }\n\n return filter;\n }\n },\n fieldSettings: {\n ...accDefs[\"Items/AccountAssignmentSelection/AccountAssignment\"].fieldSettings,\n\n onBeforeRequest: async (args) => {\n // transformFetchedItems is dependent on accounts\n // we need to fetch them here, so that they are already stored in info before transformFetchedItems is called\n // this shouldn't add any unnecessary requests, because fetchItems is memoized\n const relevantAccountSide = getRelevantAccountSide(args.storage as FormStorage);\n const accountsBc = args.bindingContext.navigate(relevantAccountSide);\n\n // if it is linked document add \"Split\" decision\n const row = args.storage.getValue(args.bindingContext.getParent().getParent());\n if (row?.LinkedDocument?.Id) {\n const hasSplit = !!args.info.fieldSettings.additionalItems?.find(item => item.id === SelectionCode.Split);\n if (!hasSplit) {\n args.info.fieldSettings.additionalItems.splice(1, 0, {\n id: SelectionCode.Split,\n label: i18next.t(\"Document:AccountAssignment.Split\"),\n groupId: \"Default\"\n });\n }\n }\n\n // use fetchAndSetItemsByInfo instead of fetchSelectItem\n // so that we can retrieve it in transformFetchedItems without using some custom data\n await fetchAndSetItemsByInfo(args.storage as FormStorage, args.storage.getInfo(accountsBc));\n },\n transformFetchedItems: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n const relevantAccountSide = getRelevantAccountSide(args.storage as FormStorage);\n const origBc = (args.info as IFieldInfo).bindingContext;\n const accountsBc = origBc.navigate(relevantAccountSide);\n const accounts = args.storage.getInfo(accountsBc)?.fieldSettings?.items ?? [] as ISelectItem[];\n const entity = args.storage.data.entity;\n const {\n accountPrefix,\n accountSuffix\n } = getFixedAccountAssignmentAccountNumberForPaymentEntity(args.storage.data.bindingContext, entity);\n\n // the correct, analytical account number\n // different for BankTransactions and CashReceipts\n const correctAccountNumber = `${accountPrefix}${accountSuffix}`;\n const correctAccountItem = accounts.find(accountItem => (accountItem.additionalData as IAccountEntity).Number === correctAccountNumber);\n\n if (!correctAccountItem) {\n // analytical account doesn't exist\n return items;\n }\n\n return items\n // remove items that already use analytical account, but different one\n .filter(item => {\n const account = item.additionalData[relevantAccountSide] as IAccountEntity;\n\n if (!account.Number.startsWith(accountPrefix)) {\n return true;\n }\n\n return account.Number === accountPrefix || account.Number === correctAccountNumber;\n })\n .map((item) => {\n const account = item.additionalData[relevantAccountSide] as IAccountEntity;\n\n if (account.Number.startsWith(accountPrefix) && account.Number !== correctAccountNumber) {\n const correctLabel = item.label.replace(accountPrefix, correctAccountNumber);\n\n return {\n ...item,\n label: correctLabel,\n tabularData: [\n correctLabel,\n ...item.tabularData.slice(1)\n ],\n additionalData: {\n ...item.additionalData,\n [relevantAccountSide]: correctAccountItem.additionalData,\n ShortName: correctLabel\n }\n };\n } else {\n return item;\n }\n });\n }\n }\n },\n \"Items/AccountAssignmentSelection/AccountAssignment/CreditAccount\": _getBankAccAssignment(\"CreditAccount\"),\n \"Items/AccountAssignmentSelection/AccountAssignment/DebitAccount\": _getBankAccAssignment(\"DebitAccount\")\n };\n }\n\n return def;\n};\n\nexport const getRelevantAccountSide = (storage: FormStorage): \"CreditAccount\" | \"DebitAccount\" => {\n const rootEntitySet = storage.data.bindingContext.getRootParent().getPath(true);\n\n if (rootEntitySet === EntitySetName.CashReceiptsReceived) {\n return \"DebitAccount\";\n } else if (rootEntitySet === EntitySetName.CashReceiptsIssued) {\n return \"CreditAccount\";\n }\n\n // else EntitySetName.BankTransactions\n const bankTransactionType: BankTransactionTypeCode = storage.data.entity[BankTransactionEntity.BankTransactionType]?.Code;\n\n if (bankTransactionType === BankTransactionTypeCode.IncomingPayment) {\n return \"DebitAccount\";\n } else {\n return \"CreditAccount\";\n }\n};\n\n\n/** In BankTransactions and CashReceipts, if user selected custom account assignments,\n * we want to always change it to the one that corresponds with selected BankAccount/CashBox.\n * This function will return the correct account number;\n * @see https://solitea-cz.atlassian.net/browse/DEV-17687*/\nexport const getFixedAccountAssignmentAccountNumberForPaymentEntity = (bindingContext: BindingContext, entity: IBankTransactionEntity | ICashReceiptEntity): {\n accountPrefix: string,\n accountSuffix: string\n} => {\n const accountPrefix = bindingContext.getRootParent().getPath(true) === EntitySetName.BankTransactions ? BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX.toString() : CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX.toString();\n const accountSuffix = (entity as IBankTransactionEntity).BankStatement?.BankAccount?.BalanceSheetAccountNumberSuffix ?? (entity as ICashReceiptEntity).CashBox?.BalanceSheetAccountNumberSuffix;\n\n return { accountPrefix, accountSuffix };\n};\n\nconst getTransactionCurrency = (storage: FormStorage) => {\n return storage.data.entity?.TransactionCurrency?.Code ?? storage.data.entity?.TransactionCurrencyCode;\n};\n\nexport const refreshDocumentsExRate = async (storage: FormStorage, items?: IPaymentDocumentItemEntity[]): Promise> => {\n items = items ?? storage.data.entity.Items?.filter((item: IPaymentDocumentItemEntity) => {\n return item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment && isDefined(item.LinkedDocument?.Id);\n });\n const exRates: Map = storage.getCustomData().documentsExchangeRates ?? new Map();\n const itemsWithoutRate: IPaymentDocumentItemEntity[] = items?.filter((item: IPaymentDocumentItemEntity) => !exRates?.has(item.Id));\n if (itemsWithoutRate?.length > 0) {\n const rates = await getCorrectExchangeRates(itemsWithoutRate.map(item => ({\n id: item.LinkedDocument?.Id,\n date: item.DateAccountingTransaction\n })), storage.context);\n\n const newRates = new Map([...exRates, ...rates]);\n storage.setCustomData({ documentsExchangeRates: newRates });\n\n return newRates;\n }\n\n return exRates;\n};\n\nexport const correctGainAccountAssignment = (storage: FormStorage, item: IPaymentDocumentItemEntity): void => {\n const linkedDocId = item?.LinkedDocument?.Id;\n if (linkedDocId) {\n const gain = storage.data.entity.Items?.find((_item: IPaymentDocumentItemEntity) => (_item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || _item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss)\n && _item.LinkedDocument?.Id === linkedDocId);\n\n if (gain) {\n const propName = gain.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain ? \"DebitAccount\" : \"CreditAccount\";\n const isReceived = (storage.data.entity.TransactionAmount || 0) > 0;\n const sourcePropName = isReceived ? \"CreditAccount\" : \"DebitAccount\";\n\n const path = `AccountAssignmentSelection/AccountAssignment/${propName}`;\n const sourcePath = `AccountAssignmentSelection/AccountAssignment/${sourcePropName}`;\n\n const val = getNestedValue(sourcePath, item);\n setNestedValue(val, path, gain);\n\n const id = gain.Id ?? `${BindingContext.NEW_ENTITY_ID_PROP}=${gain[BindingContext.NEW_ENTITY_ID_PROP]}`;\n const _path = `Items(${id})/AccountAssignmentSelection/AccountAssignment/${propName}`;\n const bc = storage.data.bindingContext.navigate(_path);\n storage.setValue(bc, val);\n\n // we need to invalidate whole fast entry as some lines could be hidden (when clicking \"no accounting\" f.e.)\n storage.addActiveField(storage.data.bindingContext.navigate(\"Items\"));\n }\n }\n};\n\nexport const calculateExchangeGainFromItem = async (storage: FormStorage, item: IPaymentDocumentItemEntity, amount: number = item?.TransactionAmount) => {\n if (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment) {\n const linkedId = item?.LinkedDocument?.Id;\n if (linkedId) {\n const doc = item.LinkedDocument;\n const docCurrency = doc.TransactionCurrencyCode;\n const tranCurrency = getTransactionCurrency(storage);\n\n const rates = await refreshDocumentsExRate(storage, [item]);\n const docExchangeRate = rates.get(linkedId) ?? 1;\n const docType = doc.DocumentTypeCode as DocumentTypeCode;\n\n const hasExchangeRateDiff = hasExchangeGain(docCurrency, docType, storage.context);\n if (hasExchangeRateDiff) {\n const tranExRate = storage.data.entity.ExchangeRatePerUnit;\n const linkExRate = item.ExchangeRate;\n\n return calculateExchangeRate({\n docCurrency,\n tranCurrency,\n docExchangeRate,\n docType,\n tranExRate,\n currentAmount: amount,\n ratedAmount: item.ClearedAmount,\n currentExRate: linkExRate,\n type: getTransactionTypeFromEntity(storage),\n context: storage.context\n });\n }\n }\n }\n\n return null;\n};\n\nexport const updateSplitFromBe = async (storage: FormStorage, item: IPaymentDocumentItemEntity) => {\n const entity: IBankTransactionEntity = storage.data.entity;\n const docCurrency = item.LinkedDocument?.TransactionCurrencyCode;\n const docType = item.LinkedDocument?.DocumentTypeCode;\n\n if (hasExchangeGain(docCurrency, docType as DocumentTypeCode, storage.context)) {\n const splitsRequests: TRecordAny[] = [];\n const choAId = getChoAIdBasedOnDate(storage, item.DateAccountingTransaction);\n\n for (const splitItem of item.SplitAccountAssignments) {\n splitsRequests.push({\n Amount: splitItem.Amount,\n TransactionAmount: splitItem.TransactionAmount,\n ChartOfAccountsId: choAId,\n DebitAccountNumber: splitItem.DebitAccount?.Number,\n CreditAccountNumber: splitItem.CreditAccount?.Number\n });\n }\n\n const body = {\n Payment: {\n PaymentDate: entity.DateBankTransaction,\n AccountNumber: entity.BankAccount?.AccountNumber,\n CurrencyCode: entity.CurrencyCode,\n TransactionCurrencyCode: entity.TransactionCurrencyCode,\n ExchangeRatePerUnit: entity.ExchangeRatePerUnit,\n IsDebit: entity.BankTransactionTypeCode === BankTransactionTypeCode.OutgoingPayment,\n IsCredit: entity.BankTransactionTypeCode === BankTransactionTypeCode.IncomingPayment\n },\n PaymentItems: [\n {\n LinkedDocumentId: item.LinkedDocument?.Id,\n Amount: item.Amount,\n TransactionAmount: item.TransactionAmount,\n ClearedAmount: item.ClearedAmount ?? item.TransactionAmount,\n DateAccountingTransaction: item.DateAccountingTransaction,\n AccountAssignmentSelection: {\n SelectionCode: SelectionCode.Split\n },\n SplitAccountAssignments: splitsRequests\n }\n ]\n };\n\n const url = `${UPDATE_CLEARING_SPLIT_ITEMS}?CompanyId=${storage.context.getCompany().Id}`;\n\n const response = await fetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify(body)\n });\n\n const results = await response.json();\n\n if (!response.ok) {\n return parseError(results);\n }\n\n const gains: IPaymentDocumentItemEntity[] = [];\n const gainsResults = results?.[0]?.ExchangeRateDifferences;\n\n const items = storage.data.entity.Items.filter((_item: IPaymentDocumentItemEntity) => _item.LinkedDocument?.Id !== item.LinkedDocument.Id\n || _item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment);\n\n let maxId = getNewItemsMaxId(items) + 1;\n\n for (const gain of gainsResults || []) {\n const accAss = gain.AccountAssignmentSelection.AccountAssignment;\n gains.push({\n Amount: gain.Amount,\n LinkedDocument: { ...item.LinkedDocument },\n DateAccountingTransaction: item.DateAccountingTransaction,\n AccountAssignmentSelection: {\n AccountAssignment: {\n Id: SelectionCode.Own as any as number,\n ChartOfAccounts: {\n Id: accAss.ChartOfAccounts.Id\n },\n CreditAccount: {\n Id: accAss.CreditAccount.Id,\n Name: accAss.CreditAccount.Name,\n Number: accAss.CreditAccount.Number\n },\n DebitAccount: {\n Id: accAss.DebitAccount.Id,\n Name: accAss.DebitAccount.Name,\n Number: accAss.DebitAccount.Number\n },\n Name: accAss.Name,\n ShortName: accAss.ShortName\n },\n Selection: {\n Code: SelectionCode.Own\n }\n },\n [BindingContext.NEW_ENTITY_ID_PROP]: maxId++,\n PaymentDocumentItemTypeCode: gain.PaymentDocumentItemTypeCode,\n TransactionAmount: gain.TransactionAmount\n });\n }\n\n storage.data.entity.Items = items.concat(gains);\n }\n return undefined;\n};\n\nexport const updateSplitGains = async (storage: FormStorage, item: IPaymentDocumentItemEntity): Promise => {\n const items = storage.data.entity.Items.filter((_item: IPaymentDocumentItemEntity) => _item.LinkedDocument?.Id !== item.LinkedDocument.Id\n || _item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment);\n\n storage.data.entity.Items = items.concat(await getSplitGains(storage, item, getNewItemsMaxId(items) + 1));\n};\n\nexport const getSplitGains = async (storage: FormStorage, item: IPaymentDocumentItemEntity, maxId: number) => {\n const exRateDiff = await calculateExchangeGainFromItem(storage, item);\n const items: IPaymentDocumentItemEntity[] = [];\n\n if (exRateDiff) {\n const rowAmount = item?.TransactionAmount;\n\n for (let i = 0; i < (item.SplitAccountAssignments || []).length; i++) {\n const split = item.SplitAccountAssignments[i];\n const rate = split.TransactionAmount / rowAmount;\n const amount = roundToDecimalPlaces(2, exRateDiff * rate);\n\n const gain = await createNewGain({\n item,\n amount,\n storage,\n newMax: maxId + i,\n splitItem: split,\n date: item.DateAccountingTransaction\n });\n\n items.push(gain);\n }\n }\n\n return items;\n};\n\nexport const getCorrectTranAmount = (storage: FormStorage, docId: number, docAmount: number, docCurrency: string): number => {\n // status 'Needs Approval' indicates document is not yet posted by the transaction value so skip this routine\n // can be called for internal document too, but it is undefined then and we can skip it\n const needsApproval = storage.data.entity.PaymentStatusCode === PaymentStatusCode.NeedsApproval;\n if (needsApproval) {\n return docAmount;\n }\n\n const entity: IBankTransactionEntity = storage.data.origEntity;\n const paired = entity.Items?.find(item => item.LinkedDocument?.Id === docId &&\n // internal document does not have documentItemTypeCode so we check for undefined\n (isNotDefined(item.PaymentDocumentItemTypeCode) || item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment));\n\n if (paired) {\n // Cleared amount -- ALWAYS in document currency\n // this should clear cases with different NON CZK currencies (EUR-$)\n if (paired.ClearedAmount) {\n return docAmount + paired.ClearedAmount;\n }\n\n return docAmount + (docCurrency === getCompanyCurrency(storage.context) ? paired.Amount : paired.TransactionAmount);\n }\n\n return docAmount;\n};\n\nexport const handleItemAmountBlur = async (storage: FormStorage, args: ISmartFieldBlur): Promise => {\n const path = args.bindingContext.getPath();\n\n if (path === \"Amount\" || path === \"TransactionAmount\" || path === \"ExchangeRatePerUnit\") {\n storage.addActiveField(storage.data.bindingContext.navigate(\"Items\"));\n }\n};\n\ninterface ICorrectExchangeRateData {\n id: number;\n date: Date;\n currency?: string;\n}\n\nexport const getCorrectExchangeRate = async (data: ICorrectExchangeRateData, context: IAppContext): Promise => {\n const rates = await getCorrectExchangeRates([data], context);\n if (rates) {\n return rates.get(data.id) ?? 1;\n }\n\n return 1;\n};\n\nexport const getCorrectExchangeRates = async (data: ICorrectExchangeRateData[], context: IAppContext): Promise> => {\n const formattedData = data?.filter(item => {\n return item.currency !== getCompanyCurrency(context);\n }).map(item => {\n return {\n DocumentId: item.id,\n DateTransaction: formatDateToDateString(item.date)\n };\n });\n\n const rates = new Map();\n if (formattedData?.length > 0) {\n const response = await customFetch(`${REST_API_URL}/ExchangeRate/RatesForDocuments`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({ DocumentDatesPair: formattedData })\n });\n\n const results = await response.json();\n for (const res of results?.DocumentRatesPair || []) {\n rates.set(res.DocumentId, res.ExchangeRatePerUnit);\n }\n }\n\n return rates;\n};\n\nexport const itemHasAssignment = (item: IPaymentDocumentItemEntity, items: IPaymentDocumentItemEntity[]): boolean => {\n const docId = item.LinkedDocument?.Id;\n const payment = items.find(_i => _i.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment && _i.LinkedDocument?.Id === docId);\n return !(payment?.AccountAssignmentSelection?.Selection?.Code === SelectionCode.None);\n};\n\nexport const addExpenseGainIfMissing = async (storage: FormStorage, item: IPaymentDocumentItemEntity): Promise => {\n const gains = getExpenseGains(storage, item?.LinkedDocument?.Id);\n if (!gains?.length) {\n const amount = await calculateExchangeGainFromItem(storage, item);\n if (amount) {\n const gain = await createNewGain({\n item,\n amount,\n storage,\n newMax: getNewItemsMaxId(storage.data.entity.Items) + 1,\n date: item.DateAccountingTransaction\n });\n\n storage.data.entity.Items.push(gain);\n storage.refresh();\n }\n }\n};\n\nexport const deleteAdditionalGains = async (storage: FormStorage, item: IPaymentDocumentItemEntity, oldType: TValue) => {\n if (oldType === SelectionCode.Split) {\n const linkedDocId = item?.LinkedDocument?.Id;\n\n let foundPayment = false;\n\n // a bit clunky, what we want is to make sure there is only one Linked Document loss(gain) row\n storage.data.entity.Items = storage.data.entity.Items?.filter((_item: IPaymentDocumentItemEntity) => {\n const isLinkedPayemt = (_item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain\n || _item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss) && _item.LinkedDocument?.Id === linkedDocId;\n\n let result = true;\n if (isLinkedPayemt) {\n result = !foundPayment;\n foundPayment = true;\n }\n\n return result;\n });\n\n // recalculate\n const gain = getExpenseGains(storage, item?.LinkedDocument?.Id)[0];\n if (!gain) {\n await addExpenseGainIfMissing(storage, item);\n } else {\n const amount = await calculateExchangeGainFromItem(storage, item);\n const currency = storage.data.entity?.TransactionCurrency?.Code;\n\n gain.Amount = amount;\n gain.TransactionAmount = currency === getCompanyCurrency(storage.context) ? amount : 0;\n }\n }\n};\n\nexport const handleBankAssignmentChange = async (args: ISmartFieldChange, storage: FormStorage): Promise => {\n if (args.bindingContext?.getPath() === \"AccountAssignment\") {\n const { bindingContext } = args;\n const itemBc = bindingContext.getParent().getParent();\n const item = storage.getValue(itemBc);\n\n const oldType = item?.AccountAssignmentSelection?.Selection?.Code;\n\n handleItemAccAssignmentChange({\n storage,\n e: args\n });\n\n const items = storage.data.entity.Items;\n\n await deleteAdditionalGains(storage, item, oldType);\n correctGainAccountAssignment(storage, item);\n\n // clear all gains and losses assigned to changed pair\n if (args.value === SelectionCode.None) {\n storage.data.entity.Items = items.filter((_item: IPaymentDocumentItemEntity) => {\n if (isPaymentOrOther(_item.PaymentDocumentItemTypeCode)) {\n return true;\n }\n\n return item.LinkedDocument?.Id !== _item.LinkedDocument?.Id;\n });\n\n storage.refresh();\n }\n\n if (args.value !== SelectionCode.None) {\n addExpenseGainIfMissing(storage, item);\n }\n }\n};\n\nexport const isPaymentOrOther = (type: string): boolean => {\n return type === PaymentDocumentItemTypeCode.Other || type === PaymentDocumentItemTypeCode.Payment;\n};\n\ninterface IPairDataForRow {\n originalTransactionAmount: number;\n amounts: TRecordAny;\n docAmount: number;\n docExchangeRate: number;\n docCurrency: string;\n tranExRate: number;\n tranCurrency: string;\n defaultExchangeRate: number;\n tranType: BankTransactionTypeCode;\n docType: DocumentTypeCode;\n}\n\nexport const getPairDataForRow = (args: IPairDataForRow, context: IAppContext) => {\n\n // Transaction Amount - already paid amount\n const transAmount = args.originalTransactionAmount - args.amounts.transactionAmount;\n\n let amount, transactionAmount;\n // we convert different currencies to CZK (or system) currency and then we compare them\n const docAmountCZK = args.docAmount * args.docExchangeRate;\n const transAmountCZK = transAmount * args.tranExRate;\n\n if (args.docCurrency !== args.tranCurrency) {\n let exchangedDocAmount = formatNumberCurrency(docAmountCZK / args.tranExRate);\n const reverted = formatNumberCurrency(exchangedDocAmount * args.tranExRate);\n\n if (reverted > docAmountCZK) {\n // with trunc we make sure truncated amount is always lower then the doc amount\n // f.e. 1$ ->25.888CZK should not make 25.89 as in revert it would make 1.01$\n // we are fine with 25.88 and a bit in exchange rate gain(loss)\n\n exchangedDocAmount = Math.trunc(docAmountCZK / args.tranExRate * 100) / 100;\n }\n\n\n if (docAmountCZK < transAmountCZK) {\n amount = docAmountCZK;\n transactionAmount = exchangedDocAmount;\n } else {\n amount = transAmountCZK;\n transactionAmount = transAmount;\n }\n } else {\n const value = Math.min(transAmount, args.docAmount);\n amount = formatNumberCurrency(value * args.tranExRate);\n transactionAmount = value;\n }\n\n const _hasExchangeGain = hasExchangeGain(args.docCurrency, args.docType, context);\n const _hasAdditionalExRate = hasAdditionalExRate(args.docCurrency, args.tranCurrency, context);\n\n let exchangeGain = null;\n let ratedAmount;\n if (_hasAdditionalExRate && args.defaultExchangeRate) {\n ratedAmount = formatNumberCurrency(transactionAmount * args.tranExRate / args.defaultExchangeRate);\n if (docAmountCZK < transAmountCZK) {\n ratedAmount = formatNumberCurrency(args.docAmount);\n amount = formatNumberCurrency(ratedAmount * args.defaultExchangeRate);\n transactionAmount = formatNumberCurrency(amount / (args.tranExRate ?? 1));\n }\n\n exchangeGain = calculateExchangeRate({\n docCurrency: args.docCurrency,\n tranCurrency: args.tranCurrency,\n tranExRate: args.tranExRate,\n docExchangeRate: args.docExchangeRate,\n ratedAmount,\n docType: args.docType,\n currentExRate: args.defaultExchangeRate,\n currentAmount: transactionAmount,\n type: args.tranType,\n context\n });\n } else if (_hasExchangeGain) {\n exchangeGain = calculateExchangeRate({\n docCurrency: args.docCurrency,\n tranCurrency: args.tranCurrency,\n tranExRate: args.tranExRate,\n docType: args.docType,\n docExchangeRate: args.docExchangeRate,\n currentAmount: transactionAmount,\n type: args.tranType,\n context\n });\n }\n\n return {\n amount,\n transactionAmount,\n exchangeGain,\n ratedAmount\n };\n};\n\nexport enum ValidateMaxType {\n Amount = \"amount\",\n Gain = \"gain\"\n}\n\nexport interface IValidateMaxArgs {\n type: ValidateMaxType;\n amount: number;\n docAmount: number;\n tranExRate: number;\n docExRate: number;\n docCurrency: string;\n tranCurrency: string;\n tranAmount: number;\n\n clearingByID?: boolean;\n t?: TFunction;\n}\n\nexport const validateMaxData = (args: IValidateMaxArgs, context: IAppContext) => {\n if (args.type === ValidateMaxType.Amount) {\n return validateMaxAmount(args, context);\n }\n\n if (args.type === ValidateMaxType.Gain) {\n // for gain we only validate document amount as transaction is validated for \"amount\"\n return validateMaxDocAmount(args, context);\n }\n\n return null;\n};\n\nconst validateMaxAmount = (args: IValidateMaxArgs, context: IAppContext) => {\n if (args.clearingByID) {\n return validateMaxDocAmount(args, context);\n }\n\n // if there is additional exchange rate row\n // we validate only against transaction\n const hasAddExRate = hasAdditionalExRate(args.docCurrency, args.tranCurrency, context);\n if (hasAddExRate) {\n return validateMaxTranAmount(args);\n }\n\n // otherwise we validate both document transaction\n return validateMaxDocAmount(args, context) || validateMaxTranAmount(args);\n};\n\nconst validateMaxDocAmount = (args: IValidateMaxArgs, context: IAppContext) => {\n // can be called for either amount or gain validation (amount vs rated amount)\n // so this condition covers both cases\n const withoutExRate = hasAdditionalExRate(args.docCurrency, args.tranCurrency, context) || args.docCurrency === args.tranCurrency;\n const amount = roundToDecimalPlaces(2, args.amount * (withoutExRate ? 1 : args.tranExRate));\n const docAmount = roundToDecimalPlaces(2, args.docAmount * (withoutExRate ? 1 : args.docExRate));\n\n if (Math.abs(amount) > Math.abs(docAmount)) {\n return {\n message: args.t?.(\"Banks:Pairing.AmountToHigh\"),\n errorType: ValidationErrorType.Field\n };\n }\n\n return null;\n};\n\nconst validateMaxTranAmount = (args: IValidateMaxArgs) => {\n const amount = args.amount;\n const transactionAmount = Math.abs(args.tranAmount);\n if (amount > transactionAmount) {\n return {\n message: args.t?.(\"Banks:Pairing.AmountToHighTran\"),\n errorType: ValidationErrorType.Field\n };\n }\n\n return null;\n};\n\n\n","import { FormStorage } from \"../../views/formView/FormStorage\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport React, { ReactElement } from \"react\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { isDefined, isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport {\n calculateExchangeRate,\n getTransactionTypeFromEntity,\n hasAdditionalExRate,\n hasExchangeGain,\n hasExchangeRate,\n IBankCustomData,\n isPairingActive,\n isPairingRowReadOnly\n} from \"./bankTransactions/BankTransactions.utils\";\nimport { BasicInputSizes, TextAlign, ValidationErrorType } from \"../../enums\";\nimport { IInputOnChangeEvent } from \"@components/inputs/input\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport {\n AmountRow,\n ExchangeRateDiffLbl,\n ExchangeRateDiffValue,\n GainRow,\n InputColumn,\n LabelColumn,\n NumericInputStyled,\n TableStyled,\n ValueColumn,\n ValuePadding\n} from \"./bankTransactions/BankTransactions.styles\";\nimport CurrencyType, { formatCurrency } from \"../../types/Currency\";\nimport { getExpenseTitle } from \"@utils/PairTableUtils\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { IPaymentDocumentItemEntityExpanded } from \"./PairTableView\";\nimport {\n getCorrectExchangeRate,\n getCorrectTranAmount,\n IValidateMaxArgs,\n validateMaxData,\n ValidateMaxType\n} from \"./Pair.utils\";\nimport NumberType, { currencyScaleFormatter, IParserArgs } from \"../../types/Number\";\nimport i18next from \"i18next\";\nimport { IInternalDocumentItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport TestIds from \"../../testIds\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { Label } from \"@components/inputs/field\";\nimport { Button } from \"../../components/button\";\nimport { getCompanyCurrency, isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { fourDigitsFormatter } from \"@components/smart/GeneralFieldDefinition\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getUtcDate } from \"../../types/Date\";\nimport { DASH_CHARACTER } from \"../../constants\";\n\ninterface IAmountDialogData {\n currentAmount?: number;\n currentAmountError?: IValidationError;\n currentExRate?: number;\n currentExRateError?: IValidationError;\n currentRatedAmount?: number;\n currentRatedAmountError?: IValidationError;\n totalAmount?: number;\n\n documentType?: DocumentTypeCode;\n\n hasAdditionalExRate?: boolean;\n hasExchangeGain?: boolean;\n\n docAmount?: number;\n currentDocAmount?: number;\n docCurrency?: string;\n docMinorUnit?: number;\n docExchangeRate?: number;\n docId?: number;\n\n tranCurrency?: string;\n tranExRate?: number;\n}\n\n\ninterface IAmountProps {\n needConfirmDialog: boolean;\n clearingByID?: boolean; // clearing by internal document, same functions, different looks\n\n storage: TSmartODataTableStorage;\n // todo what entities should be there instead of any?\n rootStorage: FormStorage;\n\n onClose: () => void;\n onUpdateColumn?: (bc: BindingContext) => void;\n}\n\nexport class AmountDialog extends React.Component {\n data: IAmountDialogData = {};\n isReady = false;\n isReadOnly = false;\n\n async setupAmountDialogContent(): Promise {\n const row = this.props.storage.getCustomData().amountDialogRow;\n const link = this.getPairedDocuments()[row.customData.entity.Id];\n this.isReadOnly = !isPairingActive(this.props.storage) || isPairingRowReadOnly(link, this.props.storage, this.props.rootStorage);\n\n this.data.totalAmount = this.props.clearingByID ? link.LinkedDocument.TransactionAmount : Math.abs(link.LinkedDocument.TransactionAmount);\n this.data.currentAmount = link.TransactionAmount;\n\n this.data.docCurrency = row?.customData?.entity?.TransactionCurrency?.Code;\n this.data.docMinorUnit = row?.customData?.entity.TransactionCurrency?.MinorUnit;\n this.data.docId = row?.customData?.entity?.Id;\n this.data.documentType = row?.customData?.entity?.DocumentTypeCode;\n\n this.data.tranCurrency = this.getTransactionCurrency();\n this.data.tranExRate = this.getTransactionExchangeRate();\n\n this.data.hasAdditionalExRate = !this.props.clearingByID && hasAdditionalExRate(this.data.docCurrency, this.data.tranCurrency, this.props.storage.context);\n this.data.hasExchangeGain = !this.props.clearingByID && hasExchangeGain(this.data.docCurrency, this.data.documentType, this.props.storage.context);\n\n const rate = link.ExchangeRate;\n if (isDefined(rate) && this.data.hasAdditionalExRate) {\n if (rate === 0) {\n this.data.currentExRate = this.data.currentRatedAmount = 0;\n } else {\n this.data.currentExRate = rate;\n this.data.currentRatedAmount = link.ClearedAmount;\n }\n }\n\n // special case handling when you pair already paired document\n const tranDue = this.props.clearingByID ? row?.customData?.entity?.TransactionAmountDue : Math.abs(row?.customData?.entity?.TransactionAmountDue);\n this.data.docAmount = getCorrectTranAmount(this.props.rootStorage, this.data.docId, tranDue, this.data.docCurrency);\n\n // clearing -> get from DOC, otherwise try transaction entity. DateBankTransaction == BankTransaction, DateIssued = CashReceipt\n const date = this.props.clearingByID ? row.customData.entity.DateAccountingTransaction :\n this.props.rootStorage.data.entity.DateBankTransaction ?? this.props.rootStorage.data.entity.DateIssued ?? getUtcDate();\n\n this.data.docExchangeRate = await getCorrectExchangeRate({\n id: row.customData?.entity?.Id,\n date: date,\n currency: this.data.docCurrency\n }, this.props.storage.context);\n\n this.calculateNewCurrentDocAmount(this.data.hasAdditionalExRate ? this.data.currentRatedAmount : this.data.currentAmount);\n\n this.isReady = true;\n }\n\n componentDidMount() {\n this.setupAmountDialogContent().then(() => {\n this.forceUpdate();\n });\n }\n\n getPairedDocuments(): Record {\n return this.props.storage.getCustomData().pairedDocuments || {};\n }\n\n getTransactionExchangeRate = (): number => {\n return this.props.rootStorage.data.entity.ExchangeRatePerUnit || 1;\n };\n\n getTransactionCurrency = (): string => {\n const entity = this.props.rootStorage.data.entity;\n return entity?.TransactionCurrency?.Code ?? entity?.TransactionCurrencyCode;\n };\n\n hasAdditionalExRate = (): boolean => {\n const row = this.props.storage.getCustomData().amountDialogRow;\n const docCurrency = row?.customData?.entity?.TransactionCurrency?.Code;\n const tranCurrency = this.getTransactionCurrency();\n\n return hasAdditionalExRate(docCurrency, tranCurrency, this.props.storage.context);\n };\n\n handleConfirmAmountDialog = (): void => {\n const { storage } = this.props;\n const row = storage.getCustomData().amountDialogRow;\n const id = row.customData.entity.Id;\n const link = this.getPairedDocuments()[id];\n\n const bc = storage.data.bindingContext.addKey(id);\n\n const currentAmount = this.getCurrentAmount();\n const docCurrency = row?.customData?.entity?.TransactionCurrency?.Code;\n\n link.TransactionAmount = currentAmount;\n if (this.props.clearingByID) {\n const hasExRate = this.data.docCurrency !== getCompanyCurrency(storage.context);\n link.Amount = roundToDecimalPlaces(2, hasExRate ? currentAmount * this.data.docExchangeRate : currentAmount);\n (link as IInternalDocumentItemEntity).TransactionCurrencyCode = docCurrency;\n link.ExchangeRate = this.data.docExchangeRate;\n } else {\n link.Amount = roundToDecimalPlaces(2, link.TransactionAmount);\n\n const tranCurrency = this.getTransactionCurrency();\n if (tranCurrency !== getCompanyCurrency(storage.context)) {\n const transactionExRate = this.getTransactionExchangeRate();\n link.Amount = link.TransactionAmount * transactionExRate;\n }\n\n const currentExRate = this.data.currentExRate ? Number(this.data.currentExRate) : null;\n\n const exchangeRateDiff = calculateExchangeRate({\n docCurrency,\n tranCurrency,\n docExchangeRate: this.data.docExchangeRate,\n tranExRate: this.getTransactionExchangeRate(),\n docType: this.data.documentType,\n currentExRate,\n currentAmount,\n ratedAmount: this.data.currentRatedAmount,\n type: getTransactionTypeFromEntity(this.props.rootStorage),\n context: storage.context\n });\n\n if (isDefined(exchangeRateDiff) || isDefined(link.ExchangeGain)) {\n link.ExchangeGain = exchangeRateDiff;\n }\n\n link.ExchangeRate = currentExRate;\n link.ClearedAmount = this.data.currentRatedAmount;\n }\n\n this.props.onUpdateColumn?.(bc);\n\n this.clearAmountDialogFields();\n this.forceUpdate();\n this.props.onClose();\n };\n\n getCurrentAmount = (): number => {\n return this.data.currentAmount || 0;\n };\n\n isAmountConfirmAvailable = (): boolean => {\n const hasExRate = this.props.clearingByID ? false : this.hasAdditionalExRate();\n const hasError = !!this.data.currentAmountError || !!this.data.currentExRateError || !!this.data.currentRatedAmountError;\n const hasValue = hasExRate ? !!this.data.currentAmount && !!this.data.currentExRate && !!this.data.currentRatedAmount : !!this.data.currentAmount;\n\n return hasValue && !hasError;\n };\n\n clearAmountDialogFields = (): void => {\n this.data.currentAmount = null;\n this.data.currentExRate = null;\n this.data.currentRatedAmount = null;\n\n this.data.currentAmountError = null;\n this.data.currentExRateError = null;\n this.data.currentRatedAmountError = null;\n\n this.props.storage.setCustomData({\n defaultExchangeRate: null,\n amountDialogRow: null\n });\n };\n\n handleCancelAmountDialog = (): void => {\n if (this.props.needConfirmDialog) {\n const pairedDoc = this.getPairedDocuments();\n const row = this.props.storage.getCustomData().amountDialogRow;\n const id = row?.customData?.entity?.Id;\n if (pairedDoc) {\n delete pairedDoc[id];\n this.props.onUpdateColumn?.(row.id as BindingContext);\n }\n }\n\n this.props.storage.setCustomData({\n amountDialogRow: null\n });\n\n this.clearAmountDialogFields();\n this.props.onClose();\n };\n\n\n validateField = (value: number): IValidationError => {\n if (isNaN(value)) {\n return {\n message: this.props.storage.t(\"Common:Validation.NotaNumber\"),\n errorType: ValidationErrorType.Field\n };\n }\n\n if (this.props.clearingByID) {\n if (this.data.totalAmount < 0 && value >= 0) {\n return {\n message: this.props.storage.t(\"Common:Validation.NegativeNumber\"),\n errorType: ValidationErrorType.Field\n };\n }\n if (this.data.totalAmount > 0 && value <= 0) {\n return {\n message: this.props.storage.t(\"Common:Validation.PositiveNumber\"),\n errorType: ValidationErrorType.Field\n };\n }\n } else if (value <= 0) {\n return {\n message: this.props.storage.t(\"Common:Validation.PositiveNumber\"),\n errorType: ValidationErrorType.Field\n };\n }\n\n if (!value) {\n return {\n message: this.props.storage.t(\"Common:Validation.Required\"),\n errorType: ValidationErrorType.Field\n };\n }\n\n return null;\n };\n\n\n createMaxValidationData = (type: ValidateMaxType, amount: number): IValidateMaxArgs => {\n return {\n type,\n amount,\n clearingByID: this.props.clearingByID,\n docAmount: this.data.docAmount,\n docExRate: this.data.docExchangeRate,\n docCurrency: this.data.docCurrency,\n tranCurrency: this.data.tranCurrency,\n tranExRate: this.data.tranExRate,\n tranAmount: Math.abs(this.props.rootStorage.data.entity.TransactionAmount),\n t: this.props.storage.t\n };\n };\n\n validateGainFields = (): void => {\n this.data.currentRatedAmountError = this.validateField(this.data.currentRatedAmount)\n || validateMaxData(this.createMaxValidationData(ValidateMaxType.Gain, this.data.currentRatedAmount), this.props.storage.context);\n this.data.currentExRateError = this.validateField(this.data.currentExRate);\n };\n\n handleAmountChange = (e: IInputOnChangeEvent): void => {\n this.data.currentAmount = e.value;\n\n let error = this.validateField(this.data.currentAmount);\n if (!error) {\n error = validateMaxData(this.createMaxValidationData(ValidateMaxType.Amount, this.data.currentAmount), this.props.storage.context);\n\n // must be set for 'calculateNewCurrentDocAmount'\n this.data.currentAmountError = error;\n if (!error) {\n if (this.data.hasAdditionalExRate) {\n const amount = this.data.currentAmount;\n const tranAmount = amount * this.data.tranExRate;\n if (this.data.currentRatedAmount) {\n this.data.currentExRate = roundToDecimalPlaces(4, tranAmount / this.data.currentRatedAmount);\n this.data.currentExRateError = this.validateField(this.data.currentExRate);\n }\n } else {\n this.calculateNewCurrentDocAmount(this.data.currentAmount);\n }\n }\n }\n\n this.data.currentAmountError = error;\n this.forceUpdate();\n };\n\n handleExRateChange = (e: IInputOnChangeEvent): void => {\n const value = e.value as number;\n if (isNaN(value) || isNotDefined(value) || value === 0) {\n this.data.currentExRate = value;\n this.data.currentExRateError = this.validateField(this.data.currentExRate);\n } else {\n const currentAmount = this.getCurrentAmount() ?? 0;\n const tranExRate = this.getTransactionExchangeRate();\n\n this.data.currentExRate = value;\n this.data.currentRatedAmount = roundToDecimalPlaces(2, ((currentAmount * tranExRate) / value));\n\n this.validateGainFields();\n\n this.calculateNewCurrentDocAmount(this.data.currentRatedAmount);\n }\n this.forceUpdate();\n };\n\n calculateNewCurrentDocAmount = (amount: number): void => {\n if (!this.data.currentRatedAmountError && !this.data.currentExRateError && !this.data.currentAmountError) {\n let exRate = 1;\n if (!this.data.hasAdditionalExRate && this.data.tranCurrency !== this.data.docCurrency) {\n exRate = this.data.tranExRate;\n }\n\n this.data.currentDocAmount = this.data.docAmount - ((amount ?? 0) * exRate);\n }\n };\n\n handleRatedAmountChange = (e: IInputOnChangeEvent): void => {\n const value = e.value as number;\n if (isNaN(value) || isNotDefined(value) || value === 0) {\n this.data.currentRatedAmount = value;\n this.data.currentRatedAmountError = this.validateField(this.data.currentRatedAmount);\n } else {\n const currentAmount = this.getCurrentAmount() ?? 0;\n const tranExRate = this.getTransactionExchangeRate();\n\n const paid = currentAmount * tranExRate;\n\n this.data.currentRatedAmount = value;\n this.data.currentExRate = paid / value;\n\n this.validateGainFields();\n\n this.calculateNewCurrentDocAmount(this.data.currentRatedAmount);\n }\n\n this.forceUpdate();\n };\n\n getTitle = (): string => {\n const row = this.props.storage.getCustomData().amountDialogRow;\n const title = this.props.clearingByID ? this.props.storage.t(\"InternalDocument:Form.Clearing\") : this.props.storage.t(\"Document:Pair.Payment\");\n if (row) {\n return `${title} ${row.customData.entity.NumberOurs}`;\n }\n\n return \"\";\n };\n\n renderBaseCurrencyDialog = (): ReactElement => {\n const totalAmount = formatCurrency(this.data.totalAmount, this.data.docCurrency);\n const dueAmount = formatCurrency(this.data.currentDocAmount, this.data.docCurrency);\n const secondColPadding = this.isReadOnly ? ValuePadding.None : ValuePadding.Input;\n return (\n \n
    \n \n \n \n \n {totalAmount}\n \n \n \n \n {dueAmount}\n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n amountParser = (value: string, strict?: boolean, args?: IParserArgs): number => {\n // for internal document use document currency, for transaction use root storage currency\n const scale = this.props.clearingByID ? this.data.docMinorUnit : this.props.rootStorage.data.entity.TransactionCurrency?.MinorUnit ?? 2;\n\n return NumberType.parse(value, strict, {\n ...args,\n maximumFractionDigits: scale\n });\n };\n\n amountFormatter = (value: number): string => {\n return currencyScaleFormatter(value);\n };\n\n exRateParser = (value: string, strict?: boolean, args?: IParserArgs): number => {\n return NumberType.parse(value, strict, {\n ...args,\n maximumFractionDigits: 4\n });\n };\n\n amountFormatterWithRounding = (val: number, currency: string): string => {\n // round before formatting so there won't be glitches like -0.002 -> -0.00\n const isZero = roundToDecimalPlaces(2, val) === 0;\n return formatCurrency(isZero ? 0 : val, currency);\n };\n\n exRateFormatter = (val: number): string => {\n return fourDigitsFormatter(val);\n };\n\n renderWithExRate = (): ReactElement => {\n const _hideExchangeRate = (value: number | string) => {\n return this.data.documentType === DocumentTypeCode.ProformaInvoiceIssued || this.data.documentType === DocumentTypeCode.ProformaInvoiceReceived ? DASH_CHARACTER : value;\n };\n\n const { storage } = this.props;\n const showDialogRow = storage.getCustomData().amountDialogRow;\n const clearingByID = this.props.clearingByID;\n if (!showDialogRow || !this.isReady) {\n return null;\n }\n\n const currentAmount = this.getCurrentAmount();\n const currentExRate = this.data.currentExRate;\n const ratedAmount = this.data.currentRatedAmount;\n\n const hasAccounting = isAccountAssignmentCompany(storage.context);\n const hasSameCurrencies = this.data.docCurrency === this.data.tranCurrency;\n\n const exchangeRateDiff = calculateExchangeRate({\n docCurrency: this.data.docCurrency,\n tranCurrency: this.data.tranCurrency,\n tranExRate: this.getTransactionExchangeRate(),\n docExchangeRate: this.data.docExchangeRate,\n docType: this.data.documentType,\n currentExRate,\n currentAmount,\n ratedAmount,\n type: getTransactionTypeFromEntity(this.props.rootStorage),\n context: storage.context\n });\n\n const companyCurrency = getCompanyCurrency(storage.context);\n const formattedDiff = isNaN(exchangeRateDiff) ? \"\" : this.amountFormatterWithRounding(Math.abs(exchangeRateDiff), companyCurrency);\n const formattedBalance = this.amountFormatterWithRounding(this.data.currentDocAmount * this.data.docExchangeRate, companyCurrency);\n\n const hasDocExRate = this.data.docCurrency !== companyCurrency;\n const hasTranExRate = this.data.tranCurrency !== companyCurrency;\n const dueAmount = this.amountFormatterWithRounding(this.data.currentDocAmount, this.data.docCurrency);\n const totalAmount = this.amountFormatterWithRounding(this.data.totalAmount, this.data.docCurrency);\n const totalAmountCZK = this.amountFormatterWithRounding(this.data.totalAmount * this.data.docExchangeRate, companyCurrency);\n\n const currentAmountUnit = CurrencyType.getCurrencyUnit(clearingByID ? this.data.docCurrency : this.data.tranCurrency);\n const rate = clearingByID ? this.data.docExchangeRate : this.data.tranExRate;\n const formattedRate = clearingByID || hasTranExRate ? this.exRateFormatter(rate) : \"\";\n const formattedCurrentAmount = isNaN(currentAmount) ? \"\" : this.amountFormatterWithRounding(currentAmount * rate, companyCurrency);\n\n const formattedExchaneRate = this.exRateFormatter(this.data.docExchangeRate);\n\n const hasThirdColumn = hasAccounting || hasDocExRate || !hasSameCurrencies;\n const secondColPadding = hasThirdColumn ? this.isReadOnly ? ValuePadding.Gap : null : this.isReadOnly ? ValuePadding.Gap : ValuePadding.Input;\n const thirdColPadding = hasAccounting ? this.isReadOnly ? ValuePadding.Gap : null : this.data.hasAdditionalExRate ? this.isReadOnly ? ValuePadding.Gap : ValuePadding.Input : ValuePadding.None;\n return (\n <>\n \n \n \n \n {i18next.t(\"Banks:ConfirmationDialog.Amount\")}\n {(!hasSameCurrencies || hasAccounting) && i18next.t(\"Banks:Form.ExchangeRate\")}\n {hasAccounting && i18next.t(\"Banks:Transactions.Accounted\")}\n \n \n \n {totalAmount}\n {hasAccounting && hasDocExRate && _hideExchangeRate(formattedExchaneRate)}\n {hasAccounting && _hideExchangeRate(totalAmountCZK)}\n \n\n \n \n {dueAmount}\n {hasAccounting && hasDocExRate && _hideExchangeRate(formattedExchaneRate)}\n {hasAccounting && _hideExchangeRate(formattedBalance)}\n \n \n \n \n \n \n \n \n {(!hasSameCurrencies || hasAccounting) && formattedRate}\n {hasAccounting && formattedCurrentAmount}\n \n {this.data.hasAdditionalExRate &&\n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n\n {hasAccounting && this.data.hasExchangeGain && exchangeRateDiff !== 0 && !isNaN(exchangeRateDiff) &&\n \n \n {getExpenseTitle(exchangeRateDiff < 0)}\n \n {formattedDiff}\n \n }\n \n );\n };\n\n\n renderContent = (): ReactElement => {\n const hasExRate = hasExchangeRate(this.data.docCurrency, this.data.tranCurrency, this.props.storage.context);\n return hasExRate ? this.renderWithExRate() : this.renderBaseCurrencyDialog();\n };\n\n getFooterButtons = (): ReactElement => {\n if (this.isReadOnly) {\n return (\n \n );\n }\n\n return ;\n };\n\n render() {\n return \n {this.renderContent()}\n ;\n }\n}","import { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TId } from \"@components/table\";\nimport { TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport {\n DocumentCbaCategoryEntity,\n DocumentEntity,\n IDocumentCbaCategoryEntity,\n IDocumentItemCbaCategoryEntity,\n IPayingDocumentEntity,\n IPaymentDocumentItemEntity,\n IProformaInvoiceIssuedEntity,\n IRegularDocumentItemEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode, PaymentDocumentItemTypeCode } from \"@odata/GeneratedEnums\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isDefined, isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport { savePairChanges } from \"@utils/PairTableUtils\";\nimport React, { ReactElement } from \"react\";\n\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { PAIR_ACTION_ID } from \"../asset/PairingWithAssetTableView\";\nimport { isSameCbaCategory } from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { loadExchangeRate } from \"../documents/Document.utils\";\nimport { IDocumentExtendedEntity } from \"../documents/DocumentInterfaces\";\nimport { PairingTitle, PairingValue } from \"./bankTransactions/BankTransactions.styles\";\nimport {\n getTransactionTypeFromEntity,\n hasAdditionalExRate,\n IBankCustomData\n} from \"./bankTransactions/BankTransactions.utils\";\nimport {\n getBankItemDefaultDateAccountingTransaction,\n getCorrectExchangeRate,\n getCorrectTranAmount,\n getPairDataForRow\n} from \"./Pair.utils\";\nimport { AmountDialog } from \"./PairTableAmountDialog\";\nimport { IPairTableViewBaseProps, PairTableViewBaseForExtend } from \"./PairTableViewBase\";\n\n\ninterface IPaymentOrigData {\n Amount: number;\n ClearedAmount: number;\n}\n\nexport interface IPaymentDocumentItemEntityExpanded extends IPaymentDocumentItemEntity {\n ExchangeGain?: number;\n IsTaxDocument?: boolean;\n Gains?: IPaymentDocumentItemEntity[];\n OrigData?: IPaymentOrigData;\n}\n\n// prefix Doc --> values of paired DOCUMENT\n// prefix Tran --> values of bank transaction (stored in rootStorage)\nclass PairTableView

    extends PairTableViewBaseForExtend

    {\n needConfirmDialog: boolean;\n\n get hasAccountAssignment(): boolean {\n return isAccountAssignmentCompany(this.props.storage.context);\n }\n\n getPairedDocuments(): Record {\n return this.props.storage.getCustomData().pairedDocuments || {};\n }\n\n savePairChanges = async (storage: FormStorage, pairedDocs: Record): Promise => {\n const type = this.getTransactionType();\n this.props.setBusy?.(true);\n await savePairChanges(this.props.rootStorage, pairedDocs, type);\n this.props.rootStorage.setDirty(this.props.rootStorage.data.bindingContext); // to allow draft save (shouldDisableDraftButton function)\n this.props.setBusy?.(false);\n };\n\n fetchDocumentCategories = async (document: IPayingDocumentEntity): Promise => {\n const entitySet = getEntitySetByDocumentType(document.DocumentType?.Code as DocumentTypeCode);\n const res = await this.props.storage.oData.getEntitySetWrapper(entitySet)\n .query(document.Id)\n .select(\"Id\", \"Items\")\n .expand(DocumentEntity.CbaCategory, q => {\n q.expand(DocumentCbaCategoryEntity.TaxImpact);\n q.expand(DocumentCbaCategoryEntity.Category);\n return q;\n })\n .expand(\"Items\", q => {\n q.select(RegularDocumentItemEntity.Id, RegularDocumentItemEntity.CbaCategory);\n q.expand(RegularDocumentItemEntity.CbaCategory, query => query\n .expand(DocumentCbaCategoryEntity.TaxImpact)\n .expand(DocumentCbaCategoryEntity.Category));\n return q;\n })\n .fetchData();\n\n const doc = res.value;\n const rootStorage = this.props.rootStorage as FormStorage;\n const map = rootStorage.getCustomData().pairedDocumentCategoriesMap ?? {};\n map[doc.Id] = doc.Items?.reduce((ret: (IDocumentCbaCategoryEntity | IDocumentItemCbaCategoryEntity)[], item: IRegularDocumentItemEntity) => {\n const c = isObjectEmpty(item.CbaCategory) ? doc.CbaCategory : item.CbaCategory;\n if (!ret.some(i => isSameCbaCategory(i, c))) {\n ret.push(c);\n }\n return ret;\n }, []);\n rootStorage.setCustomData({ pairedDocumentCategoriesMap: map });\n };\n\n handleRowPairClick = async (rowId: TId): Promise => {\n const bc = rowId as BindingContext;\n const key = bc.getKey();\n let pairedDoc = this.getPairedDocuments();\n\n if (pairedDoc[key]) {\n delete pairedDoc[key];\n } else {\n if (this.props.skipAmountPair) {\n if (this.props.isSingleSelect) {\n pairedDoc = { [key]: {} };\n } else {\n pairedDoc[key] = {};\n }\n } else {\n this.props.setBusy?.(true);\n\n const type = this.props.rootStorage.oData.metadata.getTypeForPath(this.getRowEntitySet(bc));\n const row = getRow(this.props.storage.tableAPI.getState().rows, bc);\n const document = row?.customData.entity;\n const numberOurs = document.NumberOurs;\n if (isCashBasisAccountingCompany(this.context)) {\n this.fetchDocumentCategories(document);\n }\n const transDate = this.props.rootStorage.data.entity.DateBankTransaction ?? this.props.rootStorage.data.entity.DateIssued;\n\n const docCurrency = document.TransactionCurrency?.Code;\n const docAmount = getCorrectTranAmount(this.props.rootStorage, document.Id, Math.abs(document.TransactionAmountDue), docCurrency);\n const docExchangeRate = await getCorrectExchangeRate({\n id: document?.Id,\n date: transDate,\n currency: docCurrency\n }, this.context);\n\n const amounts = this.getPairedAmounts();\n const _transAmount = Math.abs(this.props.rootStorage.data.entity.TransactionAmount || 0);\n const tranCurrency = this.getTransactionCurrency();\n const tranExRate = this.getTransactionExchangeRate();\n const docType = document.DocumentTypeCode;\n\n const _hasAdditionalExRate = hasAdditionalExRate(docCurrency, tranCurrency, this.context);\n\n let defaultExchangeRate;\n if (_hasAdditionalExRate) {\n // this is case when we pair transaction and document with different currencies but non of them is system\n defaultExchangeRate = await loadExchangeRate(this.props.storage, docCurrency, transDate);\n if (!defaultExchangeRate) {\n this.needConfirmDialog = true;\n this.props.storage.setCustomData({\n amountDialogRow: row\n });\n }\n }\n\n const data = getPairDataForRow({\n amounts,\n tranExRate,\n docAmount,\n docType,\n defaultExchangeRate,\n docCurrency,\n tranCurrency,\n originalTransactionAmount: _transAmount,\n tranType: getTransactionTypeFromEntity(this.props.rootStorage),\n docExchangeRate\n }, this.context);\n\n pairedDoc[key] = {\n Amount: data.amount,\n TransactionAmount: data.transactionAmount,\n ExchangeGain: data.exchangeGain,\n ExchangeRate: defaultExchangeRate,\n ClearedAmount: data.ratedAmount,\n IsTaxDocument: row.customData.entity.IsTaxDocument,\n LinkedDocument: {\n TransactionAmount: document?.TransactionAmount,\n ExchangeRatePerUnit: docExchangeRate,\n TransactionCurrencyCode: docCurrency,\n BusinessPartner: document?.BusinessPartner,\n TransactionCurrency: {\n Code: docCurrency\n },\n TransactionAmountDue: row.customData.entity.TransactionAmountDue,\n Id: parseInt(key as string),\n NumberOurs: numberOurs as string,\n DocumentTypeCode: row.customData.entity.DocumentType.Code,\n _metadata: {\n \"\": { type: `#${type.getFullName()}` }\n }\n }\n };\n\n if (this.hasAccountAssignment) {\n const dateAccountingTrans = getBankItemDefaultDateAccountingTransaction(this.props.rootStorage);\n\n pairedDoc[key] = {\n ...pairedDoc[key],\n DateAccountingTransaction: dateAccountingTrans,\n LinkedDocument: {\n ...pairedDoc[key].LinkedDocument,\n DateAccountingTransaction: document?.DateAccountingTransaction\n }\n };\n }\n }\n }\n\n this.props.storage.setCustomData({ pairedDocuments: pairedDoc });\n this.props.setBusy?.(false);\n\n this.forceUpdate();\n this.rerenderTable();\n };\n\n // forceUpdate won't re-render table, because no table props has changed\n // call tableApi.forceUpdate directly, to re-render just the table\n rerenderTable = (): void => {\n this.props.storage.tableAPI?.forceUpdate();\n };\n\n setOriginItems(): void {\n const items = this.props.rootStorage.data.entity.Items as IPaymentDocumentItemEntity[];\n const pairedDocuments: Record = {};\n\n // we convert Items to hashtable, this hashtable object merge exchange gain and payment to one single object (for more simple operations)\n // at the end when saving, we split this object to two posting items (of course only in case there is any exchange gain (pairing with different currencies then CZK))\n for (const item of (items || [])) {\n if (item.LinkedDocument?.Id) {\n const key = item.LinkedDocument.Id;\n if (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment) {\n const gains = items.filter(_item => (_item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || _item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss) && _item.LinkedDocument.Id === item.LinkedDocument.Id);\n pairedDocuments[key] = {\n ...pairedDocuments[key],\n Id: item.Id,\n IsTaxDocument: (item.LinkedDocument as IProformaInvoiceIssuedEntity).IsTaxDocument,\n LinkedDocument: item.LinkedDocument,\n ExchangeRate: item.ExchangeRate,\n OrigData: {\n Amount: item.Amount,\n ClearedAmount: item.ClearedAmount\n },\n Amount: item.Amount,\n ClearedAmount: item.ClearedAmount,\n TransactionAmount: item.TransactionAmount,\n SplitAccountAssignments: item.SplitAccountAssignments,\n Gains: gains\n };\n if (this.hasAccountAssignment) {\n pairedDocuments[key] = {\n ...pairedDocuments[key],\n DateAccountingTransaction: item.DateAccountingTransaction,\n AccountAssignmentSelection: item.AccountAssignmentSelection\n };\n }\n\n if (isDefined(item[BindingContext.NEW_ENTITY_ID_PROP])) {\n pairedDocuments[key] = {\n ...pairedDocuments[key],\n [BindingContext.NEW_ENTITY_ID_PROP]: item[BindingContext.NEW_ENTITY_ID_PROP]\n };\n }\n }\n\n if (item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain || item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss) {\n // in DB value is always positive (gain or loss) is indicated by type\n // but we need to have it like the sign matters\n // so now on we ignore type and calculate it from sign of the amount\n const _convertedGain = item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeLoss ? Math.abs(item.Amount) * -1 : item.Amount;\n\n pairedDocuments[key] = {\n ...pairedDocuments[key],\n ExchangeGain: _convertedGain\n };\n }\n }\n }\n\n this.origPairedDocuments = { ...pairedDocuments };\n this.props.storage.setCustomData({ rootStorage: this.props.rootStorage });\n this.props.storage.setCustomData({ pairedDocuments: pairedDocuments });\n this.getRootStorage().setCustomData({\n pairedStorage: this.props.storage\n });\n this.props.storage.data.tableAction = PAIR_ACTION_ID;\n }\n\n getTransactionExchangeRate = (): number => {\n return this.props.rootStorage.data.entity.ExchangeRatePerUnit ?? 1;\n };\n\n getTransactionCurrency = (): string => {\n return this.props.rootStorage.data.entity?.TransactionCurrency?.Code ?? this.props.rootStorage.data.entity?.TransactionCurrencyCode;\n };\n\n formatCurrency = (val: number): string => {\n const currency = this.getTransactionCurrency();\n return formatCurrency(val, currency);\n };\n\n getPairedAmounts = (): { transactionAmount: number, amount: number } => {\n const docs = (this.props.rootStorage.data.entity.Items || []).filter((link: IEntity) => {\n return !link.LinkedDocument?.Id;\n }).concat(Object.values(this.getPairedDocuments()));\n\n let transactionAmount = 0;\n let amount = 0;\n\n for (const doc of docs) {\n transactionAmount += doc.TransactionAmount || 0;\n amount += doc.Amount || 0;\n }\n\n return {\n transactionAmount,\n amount\n };\n };\n\n getRestAmount = (): number => {\n const totalAmount = Math.abs(this.props.rootStorage.data.entity.TransactionAmount || 0);\n const paidAmount = this.getPairedAmounts().transactionAmount;\n\n return roundToDecimalPlaces(2, totalAmount - paidAmount);\n };\n\n getPairingTitleValue = (): string => {\n return this.formatCurrency(this.getRestAmount());\n };\n\n getStaticToolbarItems = (): TToolbarItem[] => {\n const balanceValue = this.getRestAmount();\n const item = \n {`${this.props.rootStorage.t(\"Document:Pair.ToPairTitle\")}:`}\n {this.getPairingTitleValue()}\n ;\n\n return [item];\n };\n\n renderAmountDialog = (): ReactElement => {\n return {\n this.needConfirmDialog = null;\n this.forceUpdate();\n this.rerenderTable();\n }}\n storage={this.props.storage}/>;\n };\n}\n\nexport { PairTableView as PairTableViewForExtend };\n\n\n","import { AlertAction } from \"@components/alert/Alert\";\nimport { WithBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IconButton } from \"@components/button\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { getRow, TCustomRowAction, updateRowsArray } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IActionRendererArgs, IRow, IRowAction, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport { EntitySetName, IPaymentDocumentItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport { BankTransactionTypeCode, CompanyPermissionCode } from \"@odata/GeneratedEnums\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React, { ReactElement } from \"react\";\n\nimport { AddIcon, ChainedIcon, DarkIcon, IProps as IIconProps, UnchainedIcon } from \"../../components/icon\";\nimport IconSelect from \"../../components/inputs/select/IconSelect\";\nimport ReadOnlyList from \"../../components/readOnlyList/ReadOnlyList\";\nimport { IProps as ISmartFilterBarProps } from \"../../components/smart/smartFilterBar/SmartFilterBar\";\nimport { IProps as ISmartTableProps, SmartTable } from \"../../components/smart/smartTable/SmartTable\";\nimport { NEW_ITEM_DETAIL } from \"../../constants\";\nimport { WithPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { ActionState, IconSize, RowAction, Status, ToolbarItemType } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport { IAfterSaveEventArgs, ModelEvent } from \"../../model/Model\";\nimport BindingContext, { createBindingContext } from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { TableButtonsAction } from \"../../views/table/TableToolbar.utils\";\nimport TableView, { IHandleCustomActionArgs, ITableViewBaseProps } from \"../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../views/table/TableView.render.utils\";\nimport { SecondaryTableViewTitle, TableWrapper } from \"../../views/table/TableView.styles\";\nimport View from \"../../views/View\";\nimport { PAIR_ACTION_ID } from \"../asset/PairingWithAssetTableView\";\nimport { hasPermissionForDocument } from \"../documents/Document.utils\";\nimport { amountPaidFormatter } from \"./bankTransactions/BankTransactionDocumentPairDef\";\nimport { IBankCustomData, isPairingRowReadOnly } from \"./bankTransactions/BankTransactions.utils\";\nimport { getPairIconDef } from \"./Payments.utils\";\n\nexport interface IPairTableViewBaseProps extends ITableViewBaseProps, WithPermissionContext, WithBusyIndicator {\n saveDraftFn?: () => Promise;\n skipAmountPair?: boolean;\n isSingleSelect?: boolean;\n transactionType?: BankTransactionTypeCode;\n}\n\nexport interface IPaymentDocumentItemEntityExpanded extends IPaymentDocumentItemEntity {\n ExchangeGain?: number;\n Description?: string;\n}\n\nclass PairTableViewBase

    extends TableView

    {\n needConfirmDialog: boolean;\n origPairedDocuments: Record;\n _createdRowBindingContext: BindingContext;\n\n _isTableReady = false;\n\n constructor(props: P) {\n super(props);\n\n this.handleCustomAction = this.handleCustomAction.bind(this);\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n this.setOriginItems();\n this.handleCustomAction(PAIR_ACTION_ID, { update: false });\n\n this.props.storage.emitter.on(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n this.props.storage.emitter.off(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n }\n\n get isToolbarDisabled(): boolean {\n return !this._isTableReady;\n }\n\n presetDefaultFilters(): void {\n /* redefined on children */\n }\n\n getCustomFilterBarProps(): Partial {\n return {\n onFilterCustomizationChanged: this.presetDefaultFilters\n };\n }\n\n async handleTableLoad(): Promise {\n if (this._createdRowBindingContext) {\n const bc = this._createdRowBindingContext;\n this._createdRowBindingContext = null;\n this.handleRowPairClick(bc)\n .then(() => this.handleCustomAction(PAIR_ACTION_ID, { update: false }));\n }\n this._isTableReady = true;\n\n super.handleTableLoad();\n }\n\n handleFormAfterSave({ isNew, bindingContext }: IAfterSaveEventArgs): void {\n if (isNew) {\n this._createdRowBindingContext = this.props.storage.data.bindingContext.addKey(bindingContext.getKey());\n this.getInitialActiveRows.reset();\n }\n }\n\n getAmountPaidFormatterFn = () => {\n return amountPaidFormatter;\n };\n\n isDraftView = (): boolean => {\n return false;\n };\n\n setOriginItems(): void {\n throw Error(`setOriginItems must be specified in ${this.constructor.name}`);\n }\n\n getPairedDocuments(): Record {\n return this.props.storage.getCustomData().pairedDocuments || {};\n }\n\n reset = (): void => {\n this.props.storage.setCustomData({ pairedDocuments: { ...this.origPairedDocuments } });\n };\n\n getToolbarButtons(): TableButtonsAction[] {\n return [];\n }\n\n handleAddChange = (e: ISelectionChangeArgs): void => {\n let type = e.value;\n const props: TRecordAny = {};\n\n if (`${type}`.startsWith(\"ProformaInvoices\")) {\n props.IsDDOP = type === \"ProformaInvoicesReceivedTax\" || type === \"ProformaInvoicesIssuedTax\";\n if (props.IsDDOP) {\n type = (type as string).replace(\"Tax\", \"\");\n }\n }\n\n const bc = createBindingContext(type as string, this.props.rootStorage.oData.metadata).addKey(NEW_ITEM_DETAIL, true);\n\n this.props.onRowSelect?.(bc, null, null, props);\n };\n\n get addMenuConfiguration() {\n return [\n { id: \"InvoicesReceived\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"InvoicesIssued\", permission: CompanyPermissionCode.InvoicesIssued },\n { id: \"ProformaInvoicesReceived\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"ProformaInvoicesIssued\", permission: CompanyPermissionCode.InvoicesIssued },\n { id: \"ProformaInvoicesReceivedTax\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"ProformaInvoicesIssuedTax\", permission: CompanyPermissionCode.InvoicesIssued },\n { id: \"OtherLiabilities\", permission: CompanyPermissionCode.Reports },\n { id: \"OtherReceivables\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"CorrectiveInvoicesReceived\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"CorrectiveInvoicesIssued\", permission: CompanyPermissionCode.InvoicesIssued }\n ];\n }\n\n getAddSelectDef = (): IToolbarItem => {\n return {\n id: \"addSelect\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n const conf = this.addMenuConfiguration;\n\n const items: ISelectItem[] = conf.map(cfgItem => ({\n id: cfgItem.id,\n label: this.props.rootStorage.t(`Document:Pair.${cfgItem.id}`),\n iconName: `${cfgItem.id}Plain`,\n isDisabled: !this.props.permissionContext.companyPermissions.has(cfgItem.permission)\n }));\n\n const isAddingNew = !!this.props.storage.data.addingRow;\n const title = this.props.rootStorage.t(\"Document:Pair.NewDocument\");\n const sharedProps = {\n headerText: title,\n icon: ,\n iconButtonProps: {\n isLight: false,\n isTransparent: true\n },\n title,\n isActive: isAddingNew,\n isDisabled: this.isTableAction() || this.isToolbarDisabled,\n onChange: this.handleAddChange\n };\n\n return (\n \n );\n }\n };\n };\n\n handlePairClick = (): void => {\n this.handleCustomAction(PAIR_ACTION_ID);\n };\n\n getPairIconDef = (): IToolbarItem => {\n return getPairIconDef(this.getTableAction(), this.handlePairClick, !!this.props.storage.data.addingRow || this.isToolbarDisabled);\n };\n\n getRootStorage = (): FormStorage => {\n return this.props.rootStorage;\n };\n\n handleRowSelect = (bindingContext: BindingContext): void => {\n const correctBc = bindingContext.createNewBindingContext(this.getRowEntitySet(bindingContext)).addKey(bindingContext.getKey());\n this.props.onRowSelect?.(correctBc);\n };\n\n getSelectedRows = memoizeOne(() => {\n const oldBc = this.props.storage.data.rowBindingContext;\n const bc = oldBc?.createNewBindingContext(this.props.storage.data.bindingContext.getPath()).addKey(oldBc.getKey());\n\n return bc ? [bc] : [];\n }, () => [this.props.storage.data.rowBindingContext]);\n\n canConfirmToolbarAction = (): boolean => {\n const isDeleting = this.props.rootStorage.data.entity.Items?.length > 0;\n const hasActive = this.props.storage.tableAPI?.getState().activeRows.size > 0;\n return isDeleting || hasActive || Object.keys(this.getPairedDocuments()).length > 0;\n };\n\n getConfirmText = (): string | ReactElement => {\n const tableAction = this.getTableAction();\n\n if (tableAction === PAIR_ACTION_ID) {\n const setItems = Object.values(this.getPairedDocuments()).filter(item => item.Amount !== 0);\n const activeRowActionCount = Object.keys(setItems).length;\n return getConfirmationActionText(this.props.storage.t(`Document:Pair.ToPair`), activeRowActionCount);\n }\n\n return super.getConfirmText(tableAction);\n };\n\n getRowEntitySet = (bc: BindingContext): EntitySetName => {\n const row = getRow(this.props.storage.tableAPI.getState().rows, bc);\n return getEntitySetByDocumentType(row.customData.entity.DocumentType.Code);\n };\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n this.setTableAction(action, true, false);\n if (update) {\n this.forceUpdate();\n }\n }\n\n handleToolbarCancel = async (): Promise => {\n const tableAction = this.getTableAction();\n if (tableAction === PAIR_ACTION_ID) {\n this.reset();\n }\n\n super.handleToolbarCancel();\n };\n\n savePairChanges = async (storage: FormStorage, pairedDocs: Record): Promise => {\n throw Error(`savePairChanges must be specified in ${this.constructor.name}`);\n };\n\n get successSubtitle(): string {\n return \"\";\n }\n\n getTransactionType = (): BankTransactionTypeCode => {\n throw Error(`getTransactionType must be specified in ${this.constructor.name}`);\n };\n\n\n async handleToolbarConfirm(): Promise {\n const tableAction = this.getTableAction();\n\n if (tableAction === PAIR_ACTION_ID) {\n const pairedDocs = this.props.storage.getCustomData().pairedDocuments || {};\n\n await this.savePairChanges(this.props.rootStorage, pairedDocs);\n this.props.saveDraftFn?.();\n this.props.rootStorage.setDirty(this.props.rootStorage.data.bindingContext);\n await this.setTableAction(null);\n\n // update origPairedDocuments with the new \"original\" state\n this.origPairedDocuments = { ...pairedDocs };\n this.getInitialActiveRows.reset();\n\n this.props.storage.data.alert = {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.successSubtitle,\n useFade: true,\n action: AlertAction.None\n };\n\n } else {\n await super.handleToolbarConfirm();\n }\n await this.props.storage.tableAPI?.reloadTable();\n }\n\n get customToolbarItems(): IToolbarItem[] {\n return [\n this.getAddSelectDef(),\n this.getPairIconDef()\n ];\n }\n\n formatNumberCurrency = (val: number, currency: string): number => {\n return roundToDecimalPlaces(2, val);\n };\n\n handleRowPairClick = async (rowId: TId): Promise => {\n throw Error(`handleRowPairClick must be specified in ${this.constructor.name}`);\n };\n\n canRowBePaired = (rowId: TId) => {\n return true;\n };\n\n getCustomRowAction = memoizeOne((): TCustomRowAction => {\n return {\n actionType: RowAction.Custom,\n isSingleSelect: this.props.isSingleSelect,\n showIconsOnHover: (rowId: TId, row: IRowProps) => {\n return this.props.isSingleSelect && Object.keys(this.getPairedDocuments()).length > 0;\n },\n onClick: (rowId: TId) => this.handleRowPairClick(rowId),\n render: (args: IActionRendererArgs) => {\n if (args.isMainToggle) {\n return null;\n }\n const storage = this.props.storage;\n const key = (args.rowId as BindingContext)?.getKey?.();\n const pairedDoc = this.getPairedDocuments()[key];\n const isReadOnly = isPairingRowReadOnly(pairedDoc, storage, this.props.rootStorage);\n if (isReadOnly) {\n return (\n \n );\n }\n\n const Icon = args.actionState === ActionState.Active ? ChainedIcon : UnchainedIcon;\n const title = args.actionState === ActionState.Active ? storage.t(\"Banks:Transactions.UnPairingTitle\") : storage.t(\"Banks:Transactions.PairingTitle\");\n\n return (\n \n \n \n );\n }\n };\n });\n\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n if (rowAction) {\n return null;\n }\n\n const isActive = this.getPairedDocuments()[(id as BindingContext)?.getKey?.()];\n return isActive ? ChainedIcon : null;\n };\n\n getTransactionExchangeRate = (): number => {\n return this.props.rootStorage.data.entity.ExchangeRatePerUnit;\n };\n\n getTransactionCurrency = (): string => {\n return this.props.rootStorage.data.entity?.TransactionCurrency?.Code ?? this.props.rootStorage.data.entity?.TransactionCurrencyCode;\n };\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n if (action === RowAction.Remove) {\n const typeCode = row.customData?.entity?.DocumentType?.Code;\n return !hasPermissionForDocument(typeCode, this.props.permissionContext.companyPermissions);\n }\n return super.isRowWithoutAction(rowId, action, row);\n }\n\n getInitialActiveRows = memoizeOne((): BindingContext[] => {\n const docs = this.origPairedDocuments;\n const { bindingContext } = this.props.storage.data;\n const initialActiveRows = (Object.keys(docs) ?? []).map(key => bindingContext.addKey(key));\n if (this._createdRowBindingContext) {\n initialActiveRows.push(this._createdRowBindingContext);\n }\n return initialActiveRows;\n });\n\n getTableSharedProps(): ISmartTableProps & { key: string } {\n const props = super.getTableSharedProps();\n props.keepActiveRowsOnFilterChange = true;\n props.initialActiveRows = this.getInitialActiveRows();\n return props;\n }\n\n getTitle = (): string => {\n return \"\";\n };\n\n getHeaderData = (): IReadOnlyListItem[] => {\n return [] as IReadOnlyListItem[];\n };\n\n get secondaryTitle(): string {\n return this.props.storage.data.definition.title;\n }\n\n renderAmountDialog = (): ReactElement => {\n return null;\n };\n\n rowsFactory = (rows: IRow[]): IRow[] => {\n const { storage } = this.props;\n return updateRowsArray(rows, (row: IRow) => {\n return {\n ...row,\n values: {\n ...row.values,\n [BindingContext.localContext(\"AmountPaid\")]: this.getAmountPaidFormatterFn()(null, {\n storage,\n context: storage.context,\n item: {\n ...row.values,\n Id: (row.id as BindingContext)?.getKey?.(),\n Currency: {\n Code: row?.customData?.entity?.CurrencyCode\n }\n }\n })\n }\n };\n });\n };\n\n render() {\n const headerData = this.getHeaderData();\n\n return (\n <>\n \n {this.props.busyIndicator}\n {headerData &&\n \n }\n {this.secondaryTitle}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderToolbar()}\n \n \n \n \n {!!this.props.storage.getCustomData().amountDialogRow && this.renderAmountDialog()}\n \n );\n }\n}\n\nexport { PairTableViewBase as PairTableViewBaseForExtend };\n\n\n","import { IconButton } from \"@components/button\";\nimport { UnchainedIcon } from \"@components/icon\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { setNestedValue } from \"@odata/Data.utils\";\nimport { getFieldTypeFromProperty, getValidatorTypeFromProperty, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n DocumentEntity,\n DocumentItemCbaCategoryEntity,\n EntitySetName,\n IPaymentDocumentItemCbaCategoryEntity,\n PaymentDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n CbaCategoryTaxImpactCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n PaymentStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { arrayInsert, isObjectEmpty } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { IconSize, ToolbarItemType } from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TClickAction, TRecordAny, TValue } from \"../../global.types\";\nimport { Validator } from \"../../model/Validator\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ISplitPageTableDef, ITableDefTabData } from \"../../views/table/TableView.utils\";\nimport { PAIR_ACTION_ID } from \"../asset/PairingWithAssetTableView\";\nimport {\n CBA_CATEGORY_PATH,\n getCbaCategoryItemDef,\n getCbaEntriesTable\n} from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { DRAFT_ITEM_ID_PATH, getAccountJournalTable, getDocumentPairedTable } from \"../documents/Document.utils\";\nimport { TFieldsDefinition } from \"../PageUtils\";\n\n/**\n * Utils file for common code shared between Banks and CashBoxes\n */\n\nexport function getThemeColorForPaymentStatus(status: PaymentStatusCode): keyof DefaultTheme {\n return status === PaymentStatusCode.WaitsForProcessing ? \"C_SEM_text_bad\" :\n status === PaymentStatusCode.NeedsApproval ? \"C_SEM_text_warning\" : \"C_TEXT_primary\";\n}\n\nexport const PaymentStatusSummaryAdditionalData = [{ id: \"PaymentStatus/Name\" }];\n\nexport function getPaymentStatusSummaryItem(): ISummaryItem {\n return {\n label: i18next.t(\"Banks:Transactions.State\"),\n id: \"PaymentStatus\",\n formatter: (value: TValue, args) => {\n if ((args.storage as FormStorage).data.origEntity.IsUnrelatedToBusiness) {\n return args.storage.t(\"Banks:CashBasisAccounting.NotBusinessRelated\");\n }\n return (value as TRecordAny)?.Name;\n },\n colorFormatter: (entity: TValue) => {\n return getThemeColorForPaymentStatus((entity as TRecordAny)?.Code);\n }\n };\n}\n\nexport function getPaymentStatusTableColumnDef(): TFieldsDefinition {\n return {\n PaymentStatus: {\n additionalProperties: [{ id: \"/IsUnrelatedToBusiness\" }],\n formatter: (value: TValue, args: IFormatOptions) => {\n if (args.entity.IsUnrelatedToBusiness) {\n const title = args.storage.t(\"Banks:CashBasisAccounting.NotBusinessRelated\");\n return {\n value: {title},\n tooltip: title\n };\n }\n const color = getThemeColorForPaymentStatus(args.entity.PaymentStatus?.Code);\n\n return {\n value: {value} ,\n tooltip: value as string\n };\n },\n fieldSettings: {\n displayName: \"Name\"\n }\n }\n };\n}\n\nexport const isExchangeRateVisible = (storage: FormStorage): boolean => {\n const code = storage.data?.entity?.TransactionCurrency?.Code;\n return !!(code && code !== getCompanyCurrency(storage.context));\n};\n\nexport function getPaymentStatusTabData(): Pick {\n const tabs: ITableDefTabData[] = [{\n id: PaymentStatusCode.WaitsForProcessing,\n title: i18next.t(\"Banks:Transactions.ToBeProcessed\"),\n filterNames: [PaymentStatusCode.NeedsApproval, PaymentStatusCode.WaitsForProcessing, PaymentStatusCode.PartiallyProcessed]\n }, {\n id: PaymentStatusCode.Processed,\n filterNames: [PaymentStatusCode.Processed],\n title: i18next.t(\"Banks:Transactions.Cleared\")\n }, {\n id: null,\n title: i18next.t(\"Components:FilterBar.All\")\n }];\n\n return {\n tabs,\n tabsSettings: {\n filterFieldName: \"PaymentStatusCode\"\n },\n };\n}\n\nexport function getPaymentTabsDef(isCbaCompany: boolean, context: IAppContext): IFormGroupDef {\n const entriesTabDef = isCbaCompany ? {\n id: \"cbaEntryLedger\",\n title: i18next.t(\"Document:FormTab.CbaEntries\"),\n table: getCbaEntriesTable(DocumentTypeCode.BankTransaction, context)\n } : {\n id: \"accountingJournal\",\n title: i18next.t(\"Document:FormTab.JournalEntries\"),\n table: getAccountJournalTable({\n hasDocItem: false,\n isPaymentDocument: true\n })\n };\n\n return {\n id: \"Tabs\",\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n },\n tabs: [\n entriesTabDef\n , {\n id: \"PairedDocuments\",\n title: i18next.t(\"Banks:Transactions.TabAssignment\"),\n table: getDocumentPairedTable({\n selectQuery: `TypeCode eq '${DocumentLinkTypeCode.Payment}'`,\n entitySet: EntitySetName.UndirectedPaymentDocumentLinks,\n isCbaCompany\n })\n }]\n };\n}\n\nexport function makeCbaDefAdjustments(form: IFormDef, itemsGroup: IFormGroupDef): void {\n form.fieldDefinition = {\n ...form.fieldDefinition,\n ...getCbaCategoryItemDef(\"Items\", true, false)\n };\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: CBA_CATEGORY_PATH }, 1);\n itemsGroup.lineItems.additionalFields = [...(itemsGroup.lineItems.additionalFields ?? []),\n {\n id: createPath(PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.IsAssetAcquisition)\n }, {\n id: createPath(PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxImpact)\n }, {\n id: createPath(PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxPercentage)\n }, {\n id: createPath(PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.Category)\n }, {\n id: createPath(PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentItems)\n }];\n}\n\nexport function getPairIconDef(action: string, onClick: TClickAction, isDisabled: boolean): IToolbarItem {\n return {\n id: \"pair\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n return (\n \n \n \n );\n }\n };\n}\n\nexport function createPaymentEntityCopy(storage: FormStorage, args: ICopyEntityArgs, allowedNavigation: string[]): E {\n const EXCLUDED_PROPERTIES = [\n \"Id\", \"DocumentTypeCode\", \"ClearedStatusCode\", \"PostedStatusCode\", \"PaymentStatusCode\", \"IsUnrelatedToBusiness\"\n ];\n\n if (args.includeDocumentLinks) {\n allowedNavigation.push(\"DocumentLinks\");\n }\n\n const entity = args.entity ?? storage.data.entity;\n const copy: E = {} as E;\n BindingContext.each(entity, storage.data.bindingContext, (value, bc) => {\n if (bc.isRoot()) {\n return true;\n }\n if (bc.getPath() === \"NumberOurs\" && (args.copyDataToNewDocument || !isObjectEmpty(entity.NumberRange))) {\n return false;\n }\n if (bc.getPath() === \"Items\") {\n let items = [];\n if (!value) {\n return false;\n }\n items = (value as IEntity[]).map((item, index) => {\n item.Order = index + 1; // todo: find out if we want sortable fast entry/ if we need Order, so far it is here because of BE constraint check\n const newItemId = item[BindingContext.NEW_ENTITY_ID_PROP];\n if (newItemId) {\n const newItemBc = bc.addKey(item[BindingContext.NEW_ENTITY_ID_PROP], true);\n if (storage.isDirty(newItemBc) || item.LinkedDocument?.Id || item[DRAFT_ITEM_ID_PATH]) {\n return item;\n }\n }\n return item;\n });\n value = items;\n }\n const path = bc.getPath(true);\n const isNavigation = bc.isNavigation();\n const isAllowedNavigation = isNavigation && bc.getParent().isRoot() && allowedNavigation.includes(path);\n const isNotExcludedProperty = !isNavigation && !EXCLUDED_PROPERTIES.includes(path);\n\n let isValid: boolean;\n if (args.skipInvalidProps && !isNavigation) {\n const info: IFieldInfo = {\n id: bc.getPath(),\n type: getFieldTypeFromProperty(bc.getProperty()),\n bindingContext: bc,\n validator: {\n type: getValidatorTypeFromProperty(bc.getProperty())\n }\n };\n const schema = Validator.createValidationObject(info, storage);\n isValid = schema.isValidSync(value);\n }\n\n if (isAllowedNavigation || (isNotExcludedProperty && (!args.skipInvalidProps || isValid))) {\n copy[path as keyof E] = value as E[keyof E];\n }\n\n return false;\n });\n\n return copy;\n}\n\nexport const setNewItemDefaultCategoryData = (item: IEntity): void => {\n const defaultCbaCategory: IPaymentDocumentItemCbaCategoryEntity = {\n IsAssetAcquisition: false,\n TaxPercentage: 100,\n TaxImpactCode: CbaCategoryTaxImpactCode.Tax\n };\n setNestedValue(defaultCbaCategory, PaymentDocumentItemEntity.CbaCategory, item);\n};","import { ICompanyBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\n\nexport const isBankApiConnected = (bankAccount: ICompanyBankAccountEntity): boolean => {\n return isDefined(bankAccount?.BankApiConnectionSetting?.ApiKeyId) && !isObjectEmpty(bankAccount?.BankApiStatementImportSetting);\n};","import styled from \"styled-components/macro\";\n\nimport { T_PLAIN_big } from \"../../../global.style\";\n\nexport const PrimarySubTitle = styled.span `\n text-align: center;\n font-size: 14px;\n margin-top: 10px;\n font-style: italic;\n`;\n\nexport const StyledAPISettingsDescText = styled.span`\n ${T_PLAIN_big};\n margin-top: 15px;\n`;\n\nexport const BankKeyLinkWrapper = styled.div`\n display: flex;\n justify-content: center;\n ${T_PLAIN_big};\n width: 100%;\n padding-bottom: 8px;\n \n & > a {\n display: flex;\n }\n`;\n\nexport const ErrorText = styled.div`\n ${T_PLAIN_big};\n`;\n","import {\n IComplexFilter,\n isComplexFilter,\n isComplexFilterArr\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport {\n getInfoValue,\n ifAll,\n ifAny,\n IFieldDef,\n IFieldInfoProperties,\n IGetValueArgs,\n isFieldDisabled,\n isRequired,\n isVisible,\n TGetValueFn,\n TInfoValue,\n TValidatorFn\n} from \"@components/smart/FieldInfo\";\nimport {\n AccountDefFormatter,\n AccountSettingsAccountsSelectPath,\n countryDef,\n CurrencyDef,\n fourDigitsFormatter,\n getBalanceSheetLayoutAccount,\n getSavedAccountsDef,\n IPaymentRelatedEntityCustomData,\n SymbolConstantDef,\n SymbolSpecificDef,\n SymbolVariableDef\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { getCollapsedGroupId } from \"@components/smart/Smart.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { fetchItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { getBoundValue, mainBatchRequestId } from \"@odata/Data.utils\";\nimport { getDocumentTypeCodeFromEntityType } from \"@odata/EntityTypes\";\nimport {\n BankAccountEntity,\n DocumentEntity,\n EntitySetName,\n EntityTypeName,\n IAccountEntity,\n IBankAccountEntity,\n IBankEntity,\n IBankStatementEntity,\n IBankTransactionEntity,\n IBusinessPartnerBankAccountEntity,\n IBusinessPartnerEntity,\n ICashBoxCreateReceiptParameters,\n ICashBoxEntity,\n ICompanyBankAccountEntity,\n ICurrencyEntity,\n IDocumentEntity,\n IPrDeductionEntity,\n OdataActionName\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n CompanyPermissionCode,\n CountryCode,\n DocumentTypeCode,\n PaymentMethodCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumEntities } from \"@odata/GeneratedEnums.utils\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { createFilterString, ICreateFilterStringSettings, IFormatOptions } from \"@odata/OData.utils\";\nimport { getAgendaCountryCode } from \"@pages/companies/Company.shared.utils\";\nimport { IDocumentExtendedEntity } from \"@pages/documents/DocumentInterfaces\";\nimport { RecurringTaskDraftId } from \"@pages/recurringTasks/RecurringTask.utils\";\nimport {\n AbaGroupField,\n AccountNumberGroupField,\n createAccountFromIBAN,\n createBankAccountsItems,\n createIBANFromAccount,\n IAllBankAccount,\n ibanFormatter,\n ibanValidator,\n IHandleBlur,\n isBankAbaVisible,\n isBankAccountVisible,\n isBankCodeCountry,\n isBankCodeVisible,\n isIBANVisible\n} from \"@utils/BankUtils\";\nimport { getCompanyCurrency, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport customFetch, { getDefaultPostParams } from \"@utils/customFetch\";\nimport { compareDefined, compareDefinedArrays, forEachKey, getValue, isDefined, isNotDefined } from \"@utils/general\";\nimport { compareString, removeWhiteSpace, trimLeadingZeroes } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport * as yup from \"yup\";\nimport { ValidationError } from \"yup\";\n\nimport { BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX, BANK_STATEMENTS, DASH_CHARACTER } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n BankAccountType,\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n GroupedField,\n NavigationSource,\n ValidatorType\n} from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { getCorrectValidationArgs } from \"../../../model/Validator\";\nimport { ValidationMessage } from \"../../../model/Validator.types\";\nimport BindingContext, { IEntity, TEntityKey } from \"../../../odata/BindingContext\";\nimport CurrencyType from \"../../../types/Currency\";\nimport NumberType from \"../../../types/Number\";\nimport { setGroupStatus } from \"../../../views/formView/Form.utils\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { IChangedFilter } from \"../../../views/table/TableView.utils\";\nimport { generalAccountProps } from \"../../accountAssignment/AccountAssignment.utils\";\nimport {\n accountPartnerDepFields,\n hasBusinessPartner,\n setSavedContactItems\n} from \"../../businessPartner/BusinessPartner.utils\";\nimport { getBasicCashBoxSelectDef } from \"../../cashBoxes/cashReceipts/CashReceipts.utils\";\nimport { getAccountUsageAcrossCharts } from \"../../chartOfAccounts/ChartOfAccounts.utils\";\nimport { getCompanyUsedCurrencyCodes } from \"../../companies/Company.utils\";\nimport { isIssued, isMatchingAccount, isReceived } from \"../../documents/Document.utils\";\nimport { TFieldDefinition, TFieldsDefinition } from \"../../PageUtils\";\n\n\nexport const BankAccountDependentFields = [{\n from: { id: \"AccountNumber\" },\n to: { id: \"BankAccount/AccountNumber\" }\n}, {\n from: { id: \"BankCode\" },\n to: { id: \"BankAccount/Bank\" }\n}, {\n from: { id: \"AbaNumber\" },\n to: { id: \"BankAccount/AbaNumber\" }\n}, {\n from: { id: \"IBAN\" },\n to: { id: \"BankAccount/IBAN\" }\n}, {\n from: { id: \"SWIFT\" },\n to: { id: \"BankAccount/SWIFT\" }\n}, {\n from: { id: \"PaymentServiceID\" },\n to: { id: \"BankAccount/PaymentServiceID\" }\n}, {\n from: { id: \"PaymentServiceName\" },\n to: { id: \"BankAccount/PaymentServiceName\" }\n},\n {\n from: { id: \"Country\" },\n to: { id: \"BankAccount/Country\" }\n }\n];\n\nexport const SAVED_ACCOUNTS_PATH = BindingContext.localContext(\"SavedAccounts\");\nexport const CREATE_RECEIPT_PATH = \"##CreateReceipt##\";\nexport const BankAccountAdditionalProps = [\n { id: \"BankAccount/PaymentServiceID\" },\n { id: \"BankAccount/PaymentServiceName\" }\n];\n\n/**\n * Returns undefined if paymentMethod is not defined at all on the entity,\n * otherwise returns paymentMethod or null if paymentMethod is not set\n * @param args\n */\nconst getPaymentMethod = (args: IGetValueArgs): PaymentMethodCode => {\n const propName = \"PaymentMethod\";\n // forms without payment method has this field always visible (f.e. bank transaction)\n if (!args.storage.data.bindingContext.getEntityType().getProperty(propName)) {\n return undefined;\n }\n\n const methodBc = args.storage.data.bindingContext.navigate(propName);\n const hasPaymentMethodInfo = !!args.storage.getInfo(methodBc);\n if (!hasPaymentMethodInfo) {\n return undefined;\n }\n\n const method = getBoundValue({\n dataBindingContext: args.storage.data.bindingContext,\n data: args.storage.data.entity,\n bindingContext: methodBc\n });\n\n return (method?.Code as PaymentMethodCode) ?? null;\n};\n\nexport const visibleForAllButCash = (args: IGetValueArgs): boolean => {\n const code = getPaymentMethod(args);\n return code !== PaymentMethodCode.Cash;\n};\n\nexport const isBankAccountFieldVisible = (args: IGetValueArgs): boolean => {\n const code = getPaymentMethod(args);\n return code === undefined || code === PaymentMethodCode.WireTransfer;\n};\n\nexport const isPaymentServiceFieldVisible = (args: IGetValueArgs, code?: PaymentMethodCode): boolean => {\n code = code || getPaymentMethod(args);\n const type = (args.storage.data.entity as IDocumentEntity)?.DocumentTypeCode as DocumentTypeCode;\n return code === PaymentMethodCode.PaymentService && isIssued(type);\n};\n\nconst isSavedAccountsFieldVisible = (args: IGetValueArgs): boolean => {\n const code = getPaymentMethod(args);\n return code === undefined || code === PaymentMethodCode.WireTransfer || isPaymentServiceFieldVisible(args, code);\n};\n\nexport const paymentDetailFields = [{ id: \"SymbolVariable\" }, { id: \"SymbolSpecific\" }, { id: \"SymbolConstant\" }, { id: \"RemittanceInformation\" }];\n\nexport const paymentMethodAffectedFields = [\n { id: \"BankAccount/Country\" },\n { id: \"BankAccount/AccountNumber\" },\n { id: \"BankAccount/Bank\" },\n { id: \"BankAccount/IBAN\" },\n { id: \"BankAccount/SWIFT\" },\n { id: \"BankAccount/AbaNumber\" }\n // ...specificBankFields,\n // { id: CREATE_RECEIPT_PATH },\n // { id: \"CashBox\" }\n];\n\nexport const PaymentMethodFieldDef = {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: \"Name\"\n },\n defaultValue: PaymentMethodCode.WireTransfer,\n affectedFields: paymentMethodAffectedFields\n};\n\nexport const BankAccountGroupCollapsedRowsDef = [[\n { id: \"BankAccount/Country\" }\n], [\n { id: \"BankAccount/AbaNumber\" },\n { id: \"BankAccount/AccountNumber\" },\n { id: \"BankAccount/Bank\" },\n { id: \"BankAccount/IBAN\" },\n { id: \"BankAccount/SWIFT\" }\n]];\n\nexport const getBankAccountGroupDef = (addPaymentDetails = false): IFormGroupDef => {\n const def = {\n id: \"payment\",\n title: i18next.t(\"Document:FormGroup.Payment\"),\n rows: [[\n { id: \"PaymentMethod\" }, { id: CREATE_RECEIPT_PATH }, { id: \"CashBox\" }, { id: SAVED_ACCOUNTS_PATH }\n ]]\n };\n if (addPaymentDetails) {\n def.rows.push(paymentDetailFields);\n }\n return def;\n};\n\nexport const handleCreateReceiptsChange = (e: ISmartFieldChange, storage: FormStorage): void => {\n if (e.bindingContext.getPath() === CREATE_RECEIPT_PATH) {\n onCreateReceiptChange(!!e.value, storage);\n }\n};\n\nconst onCreateReceiptChange = (value: boolean, storage: FormStorage): void => {\n if (!value) {\n storage.setValueByPath(\"CashBox\", null);\n } else {\n storage.setDefaultValueByPath(\"CashBox\");\n }\n};\n\nconst isCorrectBankAccountNumber = (number: string) => {\n const weights = [6, 3, 7, 9, 10, 5, 8, 4, 2, 1];\n let sum = 0;\n for (let i = 1; i <= number.length; ++i) {\n sum += weights[weights.length - i] * parseInt(number[number.length - i]);\n }\n return (sum % 11) === 0;\n};\n\nexport const accountNumberValidator: TValidatorFn = (value: TValue, { storage, bindingContext }) => {\n let errorKey: string;\n if (value && typeof value === \"string\") {\n const bankAccount = storage.getValue(bindingContext.getParent());\n const countryCode = bankAccount.CountryCode ?? bankAccount.Country?.Code;\n switch (countryCode) {\n case CountryCode.CzechRepublic:\n const matches = value.match(/^(([0-9]{1,6})-)?([0-9]{2,10})$/);\n if (!matches) {\n errorKey = \"WrongAccountNumber\";\n } else if (!isCorrectBankAccountNumber(matches[3]) || (matches[2] && !isCorrectBankAccountNumber(matches[2]))) {\n errorKey = \"WrongAccountNumberChecksum\";\n }\n break;\n default:\n // todo: enhance the check for other country bank account numbers\n if (!value.match(/^[0-9]+$/)) {\n errorKey = \"WrongAccountNumber\";\n }\n }\n }\n return errorKey\n ? new ValidationError(i18next.t(`Common:General.${errorKey}`), value, bindingContext.getNavigationPath())\n : true;\n};\n\nexport function getCustomerPaymentBankAccountsFieldBaseDef() {\n return {\n Country: { ...countryDef, isReadOnly: true, clearIfInvisible: false },\n AbaNumber: {\n isReadOnly: true,\n width: FastEntryInputSizes.M,\n isVisible: isBankAbaVisible,\n clearIfInvisible: false\n },\n AccountNumber: {\n isReadOnly: true,\n width: FastEntryInputSizes.M,\n isVisible: isBankAbaVisible,\n clearIfInvisible: false\n },\n IBAN: {\n isReadOnly: true,\n type: FieldType.Input,\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL,\n isVisible: isIBANVisible,\n formatter: ibanFormatter,\n clearIfInvisible: false\n },\n SWIFT: {\n isReadOnly: true,\n width: FastEntryInputSizes.S,\n groupedField: GroupedField.MultiEnd,\n isVisible: isIBANVisible,\n clearIfInvisible: false\n }\n };\n}\n\ntype TBankAccountField = \"Country\" | \"AbaNumber\" | \"AccountNumber\" | \"Bank\" | \"IBAN\" | \"SWIFT\";\n\nexport function getBankAccountsFieldBaseDef(): Record {\n return {\n Country: {\n ...countryDef,\n isRequired: true,\n affectedFields: [\n { id: \"AccountNumber\", navigateFromParent: true },\n { id: \"Bank\", navigateFromParent: true },\n { id: \"IBAN\", navigateFromParent: true },\n { id: \"SWIFT\", navigateFromParent: true },\n { id: \"AbaNumber\", navigateFromParent: true }],\n customizationData: {\n useForCustomization: false\n }\n },\n AbaNumber: {\n width: FastEntryInputSizes.M,\n groupedField: AbaGroupField,\n isRequired: true,\n isVisible: isBankAbaVisible,\n validator: {\n type: ValidatorType.String,\n settings: {\n length: 9\n }\n },\n customizationData: {\n useForCustomization: false\n }\n },\n AccountNumber: {\n width: FastEntryInputSizes.M,\n isRequired: true,\n groupedField: AccountNumberGroupField,\n isVisible: isBankAccountVisible,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: accountNumberValidator\n }\n },\n customizationData: {\n useForCustomization: false\n }\n },\n Bank: {\n type: FieldType.ComboBox,\n groupedField: GroupedField.MultiEnd,\n label: i18next.t(\"Common:Form.BankCode\"),\n fieldSettings: {\n displayName: \"Code\",\n preloadItems: true,\n localDependentFields: [\n { from: { id: \"Code\" }, to: { id: \"BankCode\" }, navigateFrom: NavigationSource.Parent },\n { from: { id: \"SWIFT\" }, to: { id: \"SWIFT\" }, navigateFrom: NavigationSource.Parent }\n ]\n },\n columns: [\n {\n id: \"Code\",\n additionalProperties: [{ id: \"/SWIFT\" }, { id: \"/LogoId\" }]\n },\n { id: \"Name\" }\n ],\n customizationData: {\n useForCustomization: false\n },\n width: FastEntryInputSizes.S,\n isRequired: true,\n isVisible: isBankCodeVisible\n },\n IBAN: {\n type: FieldType.Input,\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL,\n isVisible: isIBANVisible,\n parser: removeWhiteSpace,\n isRequired: true,\n formatter: ibanFormatter,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: ibanValidator,\n message: i18next.t(\"Common:General.WrongIBAN\")\n }\n },\n customizationData: {\n useForCustomization: false\n }\n },\n SWIFT: {\n width: FastEntryInputSizes.S,\n groupedField: GroupedField.MultiEnd,\n isVisible: isIBANVisible,\n isRequired: true,\n customizationData: {\n useForCustomization: false\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: (args: IGetValueArgs) => {\n return yup.string().nullable()\n .test(\"required\", ValidationMessage.Required,\n function(this: yup.TestContext, value: TValue) {\n // we need to use getCorrectValidationArgs to get correct binding context of items\n const innerArgs = getCorrectValidationArgs(args.storage, args.storage.getInfo(args.bindingContext), this.path);\n\n if (isVisible(innerArgs) && isRequired(innerArgs)) {\n return !!value;\n }\n\n return true;\n })\n .test(\"swift\", i18next.t(\"Banks:Validation.WrongSWIFTFormat\"),\n function(this: yup.TestContext, value: TValue) {\n const swift = value as string;\n return !swift || (swift.length >= 8 && swift.length <= 11);\n });\n }\n }\n }\n }\n };\n}\n\nfunction isPaymentService({ storage }: IGetValueArgs): boolean {\n const paymentMethod = storage.getValueByPath(\"PaymentMethod\", { useDirectValue: false });\n return paymentMethod === PaymentMethodCode.PaymentService;\n}\n\ninterface BankAccountFieldsDef {\n addPaymentMethod: boolean;\n type: DocumentTypeCode;\n savedAccountLabel?: string;\n alwaysShowSymbolVariable?: boolean;\n areFieldsDisabled?: TInfoValue;\n isVisible?: TInfoValue;\n}\n\nfunction getSavedBankAccountAdditionalItem(isNew = true): ISelectItem {\n return {\n id: SelectionCode.Own,\n label: i18next.t(`Common:General.${isNew ? \"New\" : SelectionCode.Own}`),\n groupId: SelectGroups.Default\n };\n}\n\nexport const isCreateReceiptFieldVisible = (args: IGetValueArgs): boolean => {\n const storage = args.storage as FormStorage;\n\n if (storage.data.entity.PaymentMethod?.Code !== PaymentMethodCode.Cash) {\n return false;\n }\n\n const entity = args.storage.getEntity();\n const transactionCurrency = entity.TransactionCurrency?.Code;\n\n const atLeastOneCashBoxAvailable = (args.storage as FormStorage).context.getCashBoxes(true).some(cashBox => {\n return cashBox.TransactionCurrencyCode === transactionCurrency;\n });\n\n return atLeastOneCashBoxAvailable;\n};\n\nexport const getBankAccountFieldsDef = (args: BankAccountFieldsDef): TFieldsDefinition => {\n const _isIssued = isIssued(args.type);\n const _isReceivable = isReceived(args.type);\n\n const isFieldRequired = (args: IGetValueArgs): boolean => {\n const savedAccValue = args.storage.data.entity[SAVED_ACCOUNTS_PATH];\n return !_isReceivable || !!savedAccValue;\n };\n\n const _isBankAccountFieldVisible = (e: IGetValueArgs) => {\n if (args.isVisible) {\n return getValue(args.isVisible, e);\n }\n return args.addPaymentMethod ? isBankAccountFieldVisible(e) : true;\n };\n\n const { Country: BaseCountryDef, ...restBaseBankAccountDefs } = getBankAccountsFieldBaseDef();\n\n const isSpecificBankFieldVisible = (e: IGetValueArgs) => {\n if (args.alwaysShowSymbolVariable) {\n return true;\n }\n\n const country = e.storage.getValueByPath(\"BankAccount/Country\", { useDirectValue: false });\n return _isBankAccountFieldVisible(e) && (country === CountryCode.CzechRepublic || isNotDefined(country));\n };\n const fnIsCollapsedBankAccountFieldReadonly: TGetValueFn = (innerArgs: IGetValueArgs): boolean => {\n const areFieldDisabled = getValue(args.areFieldsDisabled, innerArgs);\n\n if (areFieldDisabled) {\n return true;\n }\n\n // in case SAVED_ACCOUNTS_PATH items doesn't contain SelectionCode.Own\n // ,e.g. in recurring tasks, where we don't want user to be able to fill custom account,\n // it doesn't make sense for the account fields to be enabled => disable\n const savedAccountsInfo = innerArgs.storage.getInfo(innerArgs.storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH));\n\n return !savedAccountsInfo?.fieldSettings?.additionalItems?.find(item => item.id === SelectionCode.Own);\n };\n\n const def: Record = {\n \"BankAccount/Country\": {\n ...BaseCountryDef,\n isVisible: _isBankAccountFieldVisible,\n isRequired: isFieldRequired,\n comparisonFunction: (entity: IDocumentEntity, origEntity: IDocumentEntity) => {\n return (_isEmptyBankAccount(entity.BankAccount) && _isEmptyBankAccount(origEntity.BankAccount)) ||\n origEntity.BankAccount?.Country?.Code === entity.BankAccount?.Country?.Code;\n },\n isDisabled: args.areFieldsDisabled,\n affectedFields: paymentMethodAffectedFields,\n isReadOnly: fnIsCollapsedBankAccountFieldReadonly\n },\n SymbolVariable: {\n ...SymbolVariableDef,\n isDisabled: args.areFieldsDisabled,\n isVisible: isSpecificBankFieldVisible\n },\n SymbolSpecific: {\n ...SymbolSpecificDef,\n isDisabled: args.areFieldsDisabled,\n isVisible: isSpecificBankFieldVisible\n },\n SymbolConstant: {\n ...SymbolConstantDef,\n isDisabled: args.areFieldsDisabled,\n isVisible: isSpecificBankFieldVisible\n },\n RemittanceInformation: {\n isDisabled: args.areFieldsDisabled,\n isVisible: isBankAccountFieldVisible\n }\n };\n\n forEachKey(restBaseBankAccountDefs, (key) => {\n def[`BankAccount/${key}`] = {\n ...restBaseBankAccountDefs[key],\n isVisible: ifAll(_isBankAccountFieldVisible, restBaseBankAccountDefs[key].isVisible),\n isRequired: isFieldRequired,\n isDisabled: args.areFieldsDisabled,\n isReadOnly: fnIsCollapsedBankAccountFieldReadonly\n };\n });\n\n const _savedAccDef = getSavedAccountsDef();\n const _savedAccounts = {\n label: args.savedAccountLabel ?? i18next.t(\"Common:Form.SavedAccounts\"),\n width: _isIssued ? BasicInputSizes.XXL : BasicInputSizes.L,\n ..._savedAccDef,\n fieldSettings: {\n ..._savedAccDef.fieldSettings,\n additionalItems: [getSavedBankAccountAdditionalItem()],\n noRecordText: isReceived(args.type) ? i18next.t(\"Common:Select.NoRecord\") : undefined,\n localDependentFields: BankAccountDependentFields,\n shouldDisplayAdditionalColumns: true,\n showTabularHeader: false\n },\n creatingTitle: i18next.t(\"Common:General.NewAccount\"),\n collapsedRows: BankAccountGroupCollapsedRowsDef,\n isVisible: isSavedAccountsFieldVisible,\n isDisabled: args.areFieldsDisabled\n };\n\n if (_isIssued) {\n _savedAccounts.columns = [{\n id: \"Account\"\n }, {\n id: \"CurrencyCode\"\n }, {\n id: \"Name\"\n }];\n _savedAccounts.isRequired = isPaymentService;\n }\n\n def[SAVED_ACCOUNTS_PATH] = _savedAccounts;\n\n if (args.addPaymentMethod) {\n const basicCashBoxSelectDef = getBasicCashBoxSelectDef();\n def.PaymentMethod = {\n ...PaymentMethodFieldDef,\n fieldSettings: {\n ...PaymentMethodFieldDef.fieldSettings,\n ...(_isIssued ? {\n transformFetchedItems: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n // remove payment service if there are no company account of that type\n const companyBankAccounts = args.storage.context.getCompanyBankAccounts(true);\n const hasPaymentServiceAccount = companyBankAccounts.find(account => !!account.PaymentServiceID);\n if (!hasPaymentServiceAccount) {\n return items.filter(item => item.id !== PaymentMethodCode.PaymentService);\n }\n return items;\n }\n } : {})\n },\n customizationData: {\n dependents: [CREATE_RECEIPT_PATH, \"CashBox\"]\n }\n };\n\n def[CREATE_RECEIPT_PATH] = {\n type: FieldType.Switch,\n label: i18next.t(\"Document:Form.CreateReceipt\"),\n fieldSettings: {\n type: SwitchType.YesNo\n },\n isDisabled: (args) => {\n return !args.storage.context.getCompanyPermissions().has(CompanyPermissionCode.CashBox);\n },\n defaultValue: (args) => {\n // only set true for new entity\n return args.bindingContext.isNew() && args.storage.context.getCompanyPermissions().has(CompanyPermissionCode.CashBox);\n },\n isVisible: (args) => {\n const storage = args.storage as FormStorage;\n return isCreateReceiptFieldVisible(args) && storage.data.entity[DocumentEntity.ClearedStatus]?.Code !== ClearedStatusCode.Cleared\n // should be hidden in saved entity with changed draft also\n && storage.data.origEntity.ClearedStatus?.Code !== ClearedStatusCode.Cleared;\n },\n affectedFields: [\n { id: \"CashBox\" }\n ],\n customizationData: {\n useForCustomization: true\n },\n useForComparison: false\n };\n def[\"CashBox\"] = {\n ...basicCashBoxSelectDef,\n isVisible: (args) => {\n return isCreateReceiptFieldVisible(args) && !!args.storage.getValueByPath(CREATE_RECEIPT_PATH);\n },\n isReadOnly: (args) => {\n const storage = args.storage as FormStorage;\n\n return storage.data.entity[DocumentEntity.ClearedStatus]?.Code === ClearedStatusCode.Cleared;\n },\n isRequired: true,\n fieldSettings: {\n ...basicCashBoxSelectDef.fieldSettings,\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n const entity = args.storage.getEntity();\n const transactionCurrency = entity.TransactionCurrency?.Code;\n\n return items.map(item => {\n const editedItem = { ...item };\n const additionalData = item.additionalData as ICashBoxEntity;\n\n editedItem.isDisabled = !!transactionCurrency && additionalData.TransactionCurrencyCode !== transactionCurrency;\n\n return editedItem;\n });\n }\n },\n customizationData: {\n useForCustomization: false\n }\n };\n }\n\n return def;\n};\n\nexport const addCreateReceiptRequest = (storage: FormStorage, batch: BatchRequest, cashBoxId: number): void => {\n if (!cashBoxId) {\n return;\n }\n const wrapper = batch.getEntitySetWrapper(EntitySetName.CashBoxes);\n\n wrapper.action(OdataActionName.CashBoxCreateReceipt, cashBoxId, {\n Document: { \"@odata.id\": storage.data.bindingContext.isNew() ? `$${mainBatchRequestId}` : storage.data.bindingContext.toString() }\n } as ICashBoxCreateReceiptParameters);\n};\n\nexport const NEW_ACCOUNT_CHILD_ITEM = \"new\";\n\nexport interface IBankAccountsCustomData extends IFormStorageDefaultCustomData {\n bankAccounts?: IBusinessPartnerBankAccountEntity[];\n allBankAccounts?: IBankAccountEntity[];\n}\n\nconst getFullAccountSettingsAccountNumber = (numberPrefix: number, numberSuffix: string) => {\n return `${numberPrefix}${numberSuffix}`;\n};\n\nexport function hasRelatedEntity(args: IGetValueArgs): boolean {\n return (args.storage as FormStorage).getCustomData().hasRelatedEntity;\n}\n\nexport type TEntityWithAccount = ICompanyBankAccountEntity | ICashBoxEntity;\n// check if the account is already used in another BankAccount/Cashbox\nconst isAccountUsedInOtherEntity = (storage: FormStorage, account: IAccountEntity, accountPrefix: number): boolean => {\n const currentAccount = storage.data.entity as TEntityWithAccount;\n const entities = storage.getCustomData().parentData as TEntityWithAccount[];\n const usedInEntity = entities.find(entity => isMatchingAccount({\n Name: entity.BalanceSheetAccountName,\n Number: getFullAccountSettingsAccountNumber(accountPrefix, entity.BalanceSheetAccountNumberSuffix)\n }, account, true));\n\n return usedInEntity && usedInEntity.Id !== currentAccount.Id;\n};\n\nexport const getAccountSettingsSelectDef = (accountPrefix: number): IFieldInfoProperties => {\n const accountDef = generalAccountProps();\n\n return {\n ...accountDef,\n width: BasicInputSizes.L,\n label: i18next.t(\"Banks:Accounts.Account\"),\n filter: {\n select: (args) => {\n let filter = \"\";\n\n const originalFilter = getInfoValue(accountDef?.filter, \"select\", args);\n\n if (originalFilter) {\n filter = originalFilter;\n }\n\n if (filter) {\n filter += \" AND \";\n }\n\n filter += `startswith(Number,'${accountPrefix}') AND Number NE '${accountPrefix}'`;\n\n return filter;\n }\n },\n defaultValue: NEW_ACCOUNT_CHILD_ITEM,\n cacheStrategy: CacheStrategy.None,\n fieldSettings: {\n ...accountDef.fieldSettings,\n additionalProperties: [\n ...(accountDef.fieldSettings?.additionalProperties ?? []),\n { id: \"Currency\" }\n ],\n // use Number instead of Id, so that we can build initialItem without fetching all items\n idName: \"Number\",\n localDependentFields: null,\n transformFetchedItems: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n // filter out accounts that are already used in other bank account/cashbox\n return items.filter(item => !isAccountUsedInOtherEntity(args.storage as FormStorage, item.additionalData as TEntityWithAccount, accountPrefix));\n },\n additionalItems: [\n {\n id: NEW_ACCOUNT_CHILD_ITEM,\n label: i18next.t(\"Banks:Accounts.NewAccountItem\")\n\n }\n ]\n },\n affectedFields: [\n { id: \"BalanceSheetAccountNumberSuffix\" },\n { id: \"BalanceSheetAccountName\" },\n { id: \"InitialBalance\" }\n ]\n };\n};\n\nconst isUsingExistingAccount = (args: IGetValueArgs) => {\n const selectedAccount = args.storage.getValueByPath(AccountSettingsAccountsSelectPath);\n\n return selectedAccount && selectedAccount !== NEW_ACCOUNT_CHILD_ITEM;\n};\n\nexport const getAccountRelatedAccountSettingsFieldsDef = (accountPrefix: number): TFieldsDefinition => {\n const BalanceSheetAccountNumberSuffixDef = getBalanceSheetLayoutAccount(accountPrefix);\n\n return {\n [AccountSettingsAccountsSelectPath]: {\n ...getAccountSettingsSelectDef(accountPrefix),\n // map to BE, so that the field isn't disabled when it isn't supposed to\n backendPath: \"BalanceSheetAccountName\",\n useForComparison: false,\n collapsedRows: [[\n { id: \"BalanceSheetAccountNumberSuffix\" },\n { id: \"BalanceSheetAccountName\" }\n ]]\n },\n BalanceSheetAccountNumberSuffix: {\n ...BalanceSheetAccountNumberSuffixDef,\n isReadOnly: ifAny(isUsingExistingAccount)\n },\n BalanceSheetAccountName: {\n label: i18next.t(\"Banks:Accounts.AccountName\"),\n groupedField: GroupedField.MultiEnd,\n isRequired: true,\n isReadOnly: ifAny(isUsingExistingAccount)\n }\n };\n};\n\nexport const getAccountSettingsFormGroup = (): IFormGroupDef => {\n return {\n id: \"accountingSettings\",\n title: i18next.t(\"Banks:Accounts.AccountingSettings\"),\n rows: [\n [\n { id: AccountSettingsAccountsSelectPath }\n ]\n ]\n };\n};\n\nconst isTransactionCurrencyInCompanyCurrency = (args: IGetValueArgs): boolean => {\n const transactionCurrency = args.storage.getValueByPath(\"TransactionCurrency\") as ICurrencyEntity;\n\n return transactionCurrency?.Code === getCompanyCurrency(args.context);\n};\n\nexport const initialBalanceParser: (val: string, args?: IFormatOptions) => TValue = (val) => {\n return NumberType.parse(val, false, { maximumFractionDigits: 2 })?.toString();\n};\n\nexport const getInitialBalanceCurrencyAffectedFields = (): IFieldDef[] => {\n return [\n { id: \"InitialBalance\" },\n { id: \"InitialTransactionBalance\" },\n { id: BindingContext.localContext(\"ExchangeRate\") }\n ];\n};\n\nexport const getInitialBalanceFieldsDef = (): TFieldsDefinition => {\n return {\n TransactionCurrency: {\n ...CurrencyDef,\n isReadOnly: ifAny(hasRelatedEntity,\n (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const usage = storage.getCustomData().accountUsage;\n\n return usage?.AvailableAccountedEntityCurrencyCodes.length === 1;\n }\n ),\n width: BasicInputSizes.L,\n affectedFields: getInitialBalanceCurrencyAffectedFields(),\n fieldSettings: {\n ...CurrencyDef.fieldSettings,\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const usage = storage.getCustomData().accountUsage;\n\n if (usage?.AvailableAccountedEntityCurrencyCodes.length > 0) {\n const availableCurrencyCodes = usage.AvailableAccountedEntityCurrencyCodes;\n\n return items.filter(item => availableCurrencyCodes.includes(item.id.toString()));\n } else {\n return items;\n }\n }\n }\n },\n \"InitialBalance\": {\n width: BasicInputSizes.M,\n type: FieldType.NumberInput,\n isRequired: true,\n defaultValue: 0,\n parser: initialBalanceParser,\n fieldSettings: {\n unit: args => CurrencyType.getCurrencyUnit(getCompanyCurrency(args.context))\n },\n isReadOnly: isUsingExistingAccount,\n isVisible: (args: IGetValueArgs) => {\n return isCashBasisAccountingCompany(args.storage.context);\n\n },\n affectedFields: [\n { id: BindingContext.localContext(\"ExchangeRate\") }\n ]\n },\n \"InitialTransactionBalance\": {\n width: BasicInputSizes.M,\n type: FieldType.NumberInput,\n isRequired: true,\n defaultValue: 0,\n parser: initialBalanceParser,\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n const transactionCurrency = args.storage.getValueByPath(\"TransactionCurrency\") as ICurrencyEntity;\n\n return transactionCurrency?.Code ? CurrencyType.getCurrencyUnit(transactionCurrency.Code) : \"\";\n }\n },\n isVisible: (args: IGetValueArgs) => {\n return isCashBasisAccountingCompany(args.storage.context) && !isTransactionCurrencyInCompanyCurrency(args);\n },\n isReadOnly: isUsingExistingAccount,\n affectedFields: [\n { id: BindingContext.localContext(\"ExchangeRate\") }\n ]\n },\n [BindingContext.localContext(\"ExchangeRate\")]: {\n width: BasicInputSizes.S,\n label: i18next.t(\"Banks:Form.ExchangeRate\"),\n isReadOnly: true,\n isVisible: (args: IGetValueArgs) => {\n return isCashBasisAccountingCompany(args.storage.context) && !isTransactionCurrencyInCompanyCurrency(args);\n\n },\n formatter: (val, args: IGetValueArgs) => {\n const initialBalance = args.storage.getValueByPath(\"InitialBalance\") as number;\n const initialTransactionBalance = args.storage.getValueByPath(\"InitialTransactionBalance\") as number;\n\n if (isDefined(initialBalance) && isDefined(initialTransactionBalance)) {\n const exchangeRate = initialBalance / initialTransactionBalance;\n\n if (isNaN(exchangeRate) || exchangeRate === 0) {\n return DASH_CHARACTER;\n }\n\n return fourDigitsFormatter(exchangeRate);\n }\n return DASH_CHARACTER;\n }\n }\n };\n};\n\nexport const getInitialBalanceFormGroup = (): IFormGroupDef => {\n return {\n id: \"initialBalance\",\n rows: [\n [\n { id: \"TransactionCurrency\" }\n ],\n [\n { id: \"InitialBalance\" },\n { id: \"InitialTransactionBalance\" },\n { id: BindingContext.localContext(\"ExchangeRate\") }\n ]\n ]\n };\n};\n\nexport const initAccountSettings = (storage: FormStorage, accountPrefix: number): void => {\n if (storage.data.bindingContext.isNew()) {\n setGroupStatus(getCollapsedGroupId({ id: AccountSettingsAccountsSelectPath }), storage, true);\n } else {\n const fieldInfo = storage.getInfo(storage.data.bindingContext.navigate(AccountSettingsAccountsSelectPath));\n const origAccount = storage.data.entity as TEntityWithAccount;\n const account: IAccountEntity = {\n Number: getFullAccountSettingsAccountNumber(accountPrefix, origAccount.BalanceSheetAccountNumberSuffix),\n Name: origAccount.BalanceSheetAccountName,\n Currency: storage.data.entity.TransactionCurrency\n };\n const label = AccountDefFormatter(account.Number, {\n item: account,\n entity: account,\n storage\n });\n\n fieldInfo.fieldSettings.initialItems = [\n {\n id: account.Number,\n label,\n additionalData: account\n }\n ];\n\n storage.setValueByPath(AccountSettingsAccountsSelectPath, account.Number);\n }\n};\n\nexport const handleAccountSettingsSelectChange = (event: ISmartFieldChange, storage: FormStorage): void => {\n if (event.bindingContext.getPath() !== AccountSettingsAccountsSelectPath || !event.triggerAdditionalTasks) {\n return;\n }\n\n const isCreating = event.value === NEW_ACCOUNT_CHILD_ITEM;\n const AccountSettingsCollapsedGroupId = getCollapsedGroupId({ id: AccountSettingsAccountsSelectPath });\n\n if (isCreating) {\n setGroupStatus(AccountSettingsCollapsedGroupId, storage, true);\n storage.clearValueByPath(\"BalanceSheetAccountNumberSuffix\");\n storage.clearValueByPath(\"BalanceSheetAccountName\");\n storage.setCustomData({ accountUsage: null });\n storage.refresh();\n } else {\n const account: IAccountEntity = event.additionalData;\n\n setGroupStatus(AccountSettingsCollapsedGroupId, storage, false);\n storage.clearAndSetValueByPath(\"BalanceSheetAccountNumberSuffix\", account.Number.slice(BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX.toString().length));\n storage.clearAndSetValueByPath(\"BalanceSheetAccountName\", account.Name);\n\n getAccountUsageAcrossCharts(account.Number).then((usage) => {\n // set currency to one of the available currencies, or keep the current one if it can be used\n const availableCurrencyCodes = usage.AvailableAccountedEntityCurrencyCodes.length > 0 ? usage.AvailableAccountedEntityCurrencyCodes : getCompanyUsedCurrencyCodes(storage.context as IAppContext);\n const entity = storage.getEntity();\n const currentTransactionCurrencyCode = entity.TransactionCurrencyCode ?? entity.TransactionCurrency?.Code;\n\n if (!availableCurrencyCodes.includes(currentTransactionCurrencyCode)) {\n // set whole currency object, not just Code\n // the select items doesn't have to be loaded and we need currency name for the select item description\n const currencyCode = availableCurrencyCodes[0];\n const currencies = getEnumEntities(EntityTypeName.Currency);\n const currency = currencies.find(currency => currency.Code === currencyCode);\n storage.setValueByPath(\"TransactionCurrency\", currency);\n }\n\n storage.setCustomData({ accountUsage: usage });\n storage.refresh();\n });\n\n }\n\n storage.refresh();\n};\n\nconst handleBalanceSheetAccountChange = (event: ISmartFieldChange, storage: FormStorage): void => {\n setGroupStatus(getCollapsedGroupId({ id: AccountSettingsAccountsSelectPath }), storage, true);\n storage.clearAndSetValueByPath(AccountSettingsAccountsSelectPath, NEW_ACCOUNT_CHILD_ITEM);\n storage.refresh();\n};\n\nexport const handleBalanceSheetAccountNumberSuffixChange = (event: ISmartFieldChange, storage: FormStorage): void => {\n if (event.bindingContext.getPath() === \"BalanceSheetAccountNumberSuffix\") {\n handleBalanceSheetAccountChange(event, storage);\n }\n};\n\nexport const handleBalanceSheetAccountNameChange = (event: ISmartFieldChange, storage: FormStorage): void => {\n if (event.bindingContext.getPath() === \"BalanceSheetAccountName\") {\n handleBalanceSheetAccountChange(event, storage);\n }\n};\n\nexport const getAccountSettingsFieldsChange = (event: ISmartFieldChange, storage: FormStorage): void => {\n handleAccountSettingsSelectChange(event, storage);\n handleBalanceSheetAccountNumberSuffixChange(event, storage);\n handleBalanceSheetAccountNameChange(event, storage);\n};\n\nexport const applyAccountSettingsOnBeforeSave = (entity: TEntityWithAccount, context: IAppContext): void => {\n if (entity.TransactionCurrency.Code === getCompanyCurrency(context)) {\n entity.InitialTransactionBalance = entity.InitialBalance;\n }\n};\n\nexport type TBankAccountRelatedEntity = IBankTransactionEntity | IDocumentExtendedEntity | IPrDeductionEntity;\n\nexport interface IBankAccountArgs {\n storage: FormStorage;\n type?: DocumentTypeCode;\n isEntityWithoutBP?: boolean;\n businessPartner?: IBusinessPartnerEntity;\n account?: IBankAccountEntity;\n // true for call in onAfterLoad\n isInit?: boolean;\n changePartner?: boolean;\n businessPartnerPath?: string;\n}\n\nexport const prepareSavedAccounts = (args: IBankAccountArgs): void => {\n const bankAccounts = isReceived(args.type) ? args.businessPartner?.BankAccounts : args.storage.context.getCompanyBankAccounts(true);\n args.storage.setCustomData({ bankAccounts });\n\n appendAdditionalItemsToSavedBankAccounts(args);\n setSavedBankAccountItems(args.storage, bankAccounts as IBankAccountEntity[]);\n setSavedBankAccount(args, bankAccounts as IBankAccountEntity[]);\n};\n\nexport const prepareAllSavedAccounts = (args: IBankAccountArgs): void => {\n const accounts = args.storage.getCustomData().allBankAccounts;\n\n args.storage.setCustomData({ bankAccounts: args.businessPartner?.BankAccounts || [] });\n\n appendAdditionalItemsToSavedBankAccounts(args);\n setSavedBankAccountItems(args.storage, accounts, true);\n\n if (isSavedAccountsFieldVisible({ storage: args.storage })) {\n setSavedBankAccount(args);\n }\n};\n\nexport const updateAllSavedAccountsOnPartnerChange = (args: IBankAccountArgs): void => {\n // called when user changes business partner (direct change to existing) or blurs after bp field changes\n // which can result to creating new business partner or empty business partner\n // STEPS:\n // 1. If business partner has this account select it (BE AWARE THAT EVEN IF SELECT HAS ALL ACCOUNTS FROM ALL BUSINESS PARTNERS WE STILL NEED TO CHECK IT TO ACCOUNTS ONLY SELECTED BUSINESS PARTNER HAS)\n // 2. If business partner does not contain this acc, and there is some account selected, select OWN\n // 3. Change the label of the select, based whether there is business partner or not\n // 4. Change the group status (to switch between creating and not creating)\n args.storage.setCustomData({ bankAccounts: args.businessPartner?.BankAccounts || [] });\n if (isReceived(args.type)) {\n const acc = findCurrentBankAccount(args.storage, false);\n const bc = args.storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH);\n\n if (acc) {\n // 1.\n args.storage.clearAndSetValue(bc, acc.Id);\n } else {\n // 2.\n const isEmpty = hasEmptyBankAccount(args.storage);\n if (!isEmpty) {\n args.storage.clearAndSetValue(bc, SelectionCode.Own);\n }\n }\n\n // 3.\n appendAdditionalItemsToSavedBankAccounts(args);\n const isNew = !!(args.businessPartner?.Name || args.businessPartner?.LegalNumber);\n const saVal = args.storage.getValueByPath(SAVED_ACCOUNTS_PATH);\n // 4.\n setBankAccountGroupStatus(args, isNew && saVal === SelectionCode.Own);\n\n refreshBankGroup(args.storage);\n }\n};\n\n// used for both BankAccounts and CashBoxes\nexport const getIsDefaultSwitchDef = (isCashBoxDef?: boolean): TFieldDefinition => {\n return {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n defaultValue: (args: IGetValueArgs) => {\n const items = !isCashBoxDef ? args.storage.context.getCompanyBankAccounts() : args.storage.context.getCashBoxes();\n return items?.length === 0;\n },\n isDisabled: (args: IGetValueArgs) => {\n const items = !isCashBoxDef ? args.storage.context.getCompanyBankAccounts() : args.storage.context.getCashBoxes();\n const isEmpty = items?.length === 0;\n\n const isOrigDefault = (args.storage as FormStorage).getOrigEntity().IsDefault;\n // we either disable default button if there is no other bank acc or\n // bank account can't be \"undefaulted\" by itself also inactive accounts can't be changed to default\n return isEmpty || (!args.storage.data.bindingContext.isNew() && (isOrigDefault || !args.storage.getEntity().IsActive));\n }\n };\n};\n\nconst hasOwnBankAccount = (args: IBankAccountArgs) => {\n if (args.isEntityWithoutBP) {\n return false;\n }\n\n const hasPartner = hasBusinessPartner(args.storage, args.businessPartner, args.businessPartnerPath);\n\n const bpPath = args.businessPartnerPath ?? \"BusinessPartner\";\n // for required business partner we display always \"New\"\n const bpInfo = args.storage.getInfo(args.storage.data.bindingContext.navigate(`${bpPath}/Name`));\n const isRequired = bpInfo?.isRequired;\n\n const canCreatePartner = canPartnerBeCreated(args);\n\n // display Own when there is no partner bank account using (f.e. InvoiceIssued) or there is no partner selected (and is not required) -> Bank transaction\n // otherwise display New --> InvoiceReceived\n return !canCreatePartner || (!isReceived(args.type) || (!isRequired && !hasPartner));\n};\n\nexport const appendAdditionalItemsToSavedBankAccounts = (args: IBankAccountArgs): void => {\n const { storage } = args;\n const bc = storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH);\n const info = storage.getInfo(bc);\n if (!info) {\n return;\n }\n const isPaymentService = isPaymentServiceFieldVisible({ storage });\n\n\n if (storage.id === RecurringTaskDraftId && isReceived(args.type)) {\n // recurring task, for received invoices, draft only allows predefined bank accounts, not custom\n // https://solitea-cz.atlassian.net/browse/DEV-32182\n info.fieldSettings.additionalItems = [];\n } else if (!isPaymentService) {\n const displayOwn = hasOwnBankAccount(args);\n info.fieldSettings.additionalItems = [getSavedBankAccountAdditionalItem(!displayOwn)];\n } else {\n info.fieldSettings.additionalItems = [];\n const value = storage.getValue(bc);\n if (value === SelectionCode.Own) {\n storage.clearValue(bc);\n }\n }\n};\n\nexport const setSavedBankAccountItems = (storage: FormStorage, accounts: IBankAccountEntity[] = [], hasBusinessPartnerCol?: boolean): void => {\n const info = storage.getInfo(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH));\n if (info) {\n const isPaymentService = isPaymentServiceFieldVisible({ storage });\n const types = isPaymentService ? [BankAccountType.Service]\n : [BankAccountType.Account, BankAccountType.ABA, BankAccountType.IBANOnly];\n info.fieldSettings.items = createBankAccountsItems({\n bankAccounts: accounts,\n hasBusinessPartnerCol,\n allowedTypes: types,\n addCurrency: true\n });\n }\n};\n\nconst _isEmptyBankAccount = (bankAccount: IBankAccountEntity): boolean => {\n const bankAccountProps: (keyof IBankAccountEntity)[] = [\n \"AccountNumber\", \"BankCode\", \"IBAN\", \"AbaNumber\", \"SWIFT\", \"PaymentServiceID\", \"PaymentServiceName\"\n ];\n return (!bankAccount || bankAccountProps.every(propName => !bankAccount[propName]));\n};\n\nexport const hasEmptyBankAccount = (storage: FormStorage): boolean => {\n return _isEmptyBankAccount(storage.data.entity.BankAccount);\n};\n\n// TODO: recreate to more general function which can be used by non document entities ()without BP etc.)\nexport const setSavedBankAccount = (args: IBankAccountArgs, accounts?: ICompanyBankAccountEntity[]) => {\n const receivable = isReceived(args.type);\n const account = args.account || findCurrentBankAccount(args.storage, receivable);\n const bc = args.storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH);\n const info = args.storage.getInfo(bc);\n\n let isEmpty = hasEmptyBankAccount(args.storage);\n if (!isEmpty) {\n const item = info?.fieldSettings?.items?.find(i => i.id === account?.Id || compareBankAccount(i.additionalData, account));\n if (!item) {\n args.storage.clearAndSetValue(bc, info?.fieldSettings?.additionalItems?.length ? SelectionCode.Own : null);\n setBankAccountGroupStatus(args, true, true);\n } else {\n args.storage.clearAndSetValue(bc, item.id);\n if (args.changePartner && item) {\n args.storage.processDependentField(accountPartnerDepFields, item.additionalData, bc);\n setSavedContactItems(args.storage, item.additionalData?.BusinessPartner?.Contacts);\n }\n }\n } else {\n const hasOwn = info.fieldSettings?.additionalItems?.find(item => item.id === SelectionCode.Own);\n const hasEmptyItem = !!info.fieldSettings?.noRecordText;\n\n if (!receivable && args.isInit) {\n // set to company default account\n const isNew = args.storage.data.bindingContext.isNew();\n const defaultAcc = accounts?.find(acc => acc.IsDefault);\n // if account has service setup skipp it as it won't be shown in select\n if (isNew && defaultAcc && !defaultAcc.PaymentServiceID) {\n args.storage.clearAndSetValue(bc, defaultAcc.Id);\n args.storage.processDependentField(BankAccountDependentFields, defaultAcc);\n } else if (hasOwn) {\n args.storage.clearAndSetValue(bc, SelectionCode.Own);\n } else {\n args.storage.clearValue(bc);\n }\n\n return;\n }\n\n // check whether there is any field picked outside of country\n const bankAccount = args.storage.data.entity.BankAccount;\n isEmpty = (!bankAccount || (!bankAccount.AccountNumber && !bankAccount.BankCode && !bankAccount.IBAN && !bankAccount.AbaNumber && !bankAccount.SWIFT));\n if (isEmpty && (hasEmptyItem || !hasOwn)) {\n args.storage.clearValue(bc);\n } else {\n args.storage.clearAndSetValue(bc, SelectionCode.Own);\n }\n\n // handling edge case when there is account set to business partner's deleted account\n if (!isEmpty && receivable && args.isInit) {\n const hasOwnPartner = hasOwnBankAccount(args);\n if (!hasOwnPartner) {\n setGroupStatus(getCollapsedGroupId({ id: SAVED_ACCOUNTS_PATH }), args.storage, true);\n }\n }\n }\n\n if (!args.isInit) {\n setBankAccountGroupStatus(args, !isEmpty && !account?.Id);\n }\n\n return args.storage.getValue(bc);\n};\n\nexport const findCurrentBankAccount = (storage: FormStorage, useAllBanks?: boolean): IBankAccountEntity => {\n const currentBankAccount = storage.data.entity.BankAccount;\n // const storage: FormStorage = args.storage;\n // serch among all bank accounts (f.e. for transactions) BUT not when saving (we crate separate request for BUSINESS PARTNER\n // in case partner doesn't contains such account\n const allBankAccounts = useAllBanks ? storage.getCustomData().allBankAccounts : null;\n const accounts = allBankAccounts || (storage.getCustomData().bankAccounts || []);\n return accounts.find((bankAccount: IBankAccountEntity) => compareBankAccount(currentBankAccount, bankAccount));\n};\n\nconst compareBankAccount = (ba1: IBankAccountEntity, ba2: IBankAccountEntity) => {\n if (!ba1 || !ba2) {\n return false;\n }\n\n if (ba1.PaymentServiceID || ba2.PaymentServiceID) {\n return ba1.PaymentServiceID === ba2.PaymentServiceID && ba1.PaymentServiceName === ba2.PaymentServiceName;\n }\n\n if (compareDefinedArrays([trimLeadingZeroes(ba1.AccountNumber), trimLeadingZeroes(ba1.BankCode)], [trimLeadingZeroes(ba2.AccountNumber), trimLeadingZeroes(ba2.BankCode)])) {\n return true;\n }\n\n if (compareDefined(removeWhiteSpace(ba1.IBAN), removeWhiteSpace(ba2.IBAN))) {\n return true;\n }\n\n return compareDefinedArrays([trimLeadingZeroes(ba1.AccountNumber), trimLeadingZeroes(ba1.AbaNumber)], [trimLeadingZeroes(ba2.AccountNumber), trimLeadingZeroes(ba2.AbaNumber)]);\n};\n\n\nexport const deleteEmptyBankAccount = (data: IEntity): void => {\n if (_isEmptyBankAccount(data.BankAccount)) {\n data.BankAccount = {};\n }\n};\n\nconst setBankAccountGroupStatus = (args: IBankAccountArgs, isCreating: boolean, forceExpand?: boolean) => {\n if (!args.isEntityWithoutBP && !hasOwnBankAccount(args)) {\n setGroupStatus(getCollapsedGroupId({ id: SAVED_ACCOUNTS_PATH }), args.storage, isCreating, forceExpand);\n } else {\n // For issued documents, we are working with company bank accounts -> bankAccount group is never marked\n // as \"New\" (isCreating), but if the bank account is custom, we forceExpand the group\n setGroupStatus(getCollapsedGroupId({ id: SAVED_ACCOUNTS_PATH }), args.storage, false, forceExpand);\n }\n\n args.storage.refreshGroupByKey(\"payment\");\n};\n\n\nexport const addBusinessPartnerBankAccountRequest = (storage: FormStorage, isNewBusinessPartner: boolean, batch: BatchRequest): boolean => {\n if (isNewBusinessPartner || findCurrentBankAccount(storage) || hasEmptyBankAccount(storage)) {\n return false;\n }\n\n // Clear hidden fields according to visibility of document account fields\n const bankAccountBc = storage.data.bindingContext.navigate(\"BankAccount\");\n const newBankAccount = storage.clearHiddenFields(storage.data.entity.BankAccount, bankAccountBc) as IBusinessPartnerBankAccountEntity;\n if (!newBankAccount.Bank) {\n // todo: this might be done automatically by clearHiddenFields...\n newBankAccount.BankCode = null;\n }\n // enum references cannot be saved as object (would have to be transformed to odata reference) and CountryCode is enough,\n // either use prepareBatch that would transform them correctly or delete those if Code reference is present\n delete newBankAccount.Country;\n delete newBankAccount.Bank;\n delete newBankAccount.Id;\n delete newBankAccount.DateCreated;\n delete newBankAccount.DateLastModified;\n // Put to the end\n newBankAccount.Order = 0;\n\n batch.fromPath(`BusinessPartners(${storage.data.entity.BusinessPartner.BusinessPartner.Id})/BankAccounts`).create(newBankAccount);\n\n return true;\n};\n\nexport const changeCountryByIBAN = (storage: FormStorage, rootBc: BindingContext): void => {\n const countryBc = rootBc.navigate(\"Country\");\n const originalCountry = storage.getValue(countryBc, { useDirectValue: false });\n\n const IBAN = storage.getValue(rootBc.navigate(\"IBAN\"));\n const ibanCountry = IBAN?.substring(0, 2)?.toUpperCase();\n if (ibanCountry !== originalCountry) {\n const countries = storage.getInfo(countryBc)?.fieldSettings?.items;\n const newCountry = countries?.find(c => c.id === ibanCountry);\n if (newCountry) {\n storage.clearAndSetValue(countryBc, newCountry.additionalData);\n storage.clearAndSetValue(rootBc.navigate(\"CountryCode\"), newCountry.additionalData.Code);\n }\n }\n};\n\n/**\n * Sets bankValue as it would be set in the select (triggers dependent fields processing)\n * @param storage\n * @param bankAccountBc\n * @param bankCode\n */\nexport const setBankValue = (storage: FormStorage, bankAccountBc: BindingContext, bankCode: string): void => {\n if (bankCode) {\n const bankBc = bankAccountBc.navigate(\"Bank\");\n const bankCodeItem = storage.getInfo(bankBc)?.fieldSettings?.items?.find((bankItem) => {\n const bank = bankItem.additionalData as IBankEntity;\n return bank.Code === bankCode;\n });\n if (bankCodeItem) {\n storage.handleChange({\n value: bankCodeItem.id,\n bindingContext: bankBc,\n additionalData: bankCodeItem.additionalData,\n triggerAdditionalTasks: true\n });\n }\n }\n};\n\nconst handleIBANChange = (args: IBankAccountArgs, e: ISmartFieldChange) => {\n const storage = args.storage;\n const path = e.bindingContext.getNavigationPath(true);\n\n if (path === \"BankAccounts/IBAN\" || path === \"BankAccount/IBAN\" || path === \"IBAN\") {\n const parBc = e.bindingContext.getParent();\n\n\n const IBAN = storage.getValue(parBc.navigate(\"IBAN\"));\n\n const ibanCountry = IBAN?.substring(0, 2);\n const countryBc = parBc.navigate(\"Country\");\n const country = storage.getValue(countryBc, { useDirectValue: false });\n\n if (isBankCodeCountry(ibanCountry) || isBankCodeCountry(country)) {\n const IBAN = storage.getValue(parBc.navigate(\"IBAN\"));\n const acc = createAccountFromIBAN(IBAN);\n const accBc = parBc.navigate(\"AccountNumber\");\n const accountNumber = trimLeadingZeroes(acc?.account);\n storage.clearAndSetValue(accBc, accountNumber);\n if (accountNumber) {\n storage.validateFieldSync(accBc);\n }\n setBankValue(storage, parBc, acc?.bank);\n }\n }\n};\n\nexport const tryToCreateIBAN = (storage: FormStorage, bc: BindingContext): void => {\n const parBc = bc.getParent();\n const country = storage.getValue(parBc.navigate(\"Country\"), { useDirectValue: false });\n\n if (isBankCodeCountry(country)) {\n const accNumber = storage.getValue(parBc.navigate(\"AccountNumber\"));\n\n const bankBc = parBc.navigate(\"Bank\");\n const bankCode = storage.getValue(bankBc)?.Code;\n\n const IBAN = createIBANFromAccount(accNumber, bankCode, country);\n const IbanBc = parBc.navigate(\"IBAN\");\n storage.clearAndSetValue(IbanBc, IBAN);\n if (IBAN) {\n storage.validateFieldSync(IbanBc);\n }\n }\n};\n\nexport async function tryToCreateSwift(storage: FormStorage): Promise {\n const { entity } = storage.data;\n const bankBc = storage.data.bindingContext.navigate(`${DocumentEntity.BankAccount}/${BankAccountEntity.Bank}`);\n const swiftBc = storage.data.bindingContext.navigate(`${DocumentEntity.BankAccount}/${BankAccountEntity.SWIFT}`);\n const info = storage.getInfo(bankBc);\n const bankItems = await fetchItemsByInfo(storage, info);\n const bank = bankItems.find(item => item.id === entity.BankAccount?.BankCode);\n storage.setValue(swiftBc, bank.additionalData.SWIFT);\n}\n\nexport const handleAccOrBankChange = (storage: FormStorage, e: ISmartFieldChange): void => {\n const path = e.bindingContext.getNavigationPath(true);\n const prefixes = [\"BankAccounts/\", \"BankAccount/\", \"\"];\n const _checkPath = (path: string, shouldMatch: string) => prefixes.some(pref => `${pref}${shouldMatch}` === path);\n\n if (_checkPath(path, \"AccountNumber\") || (_checkPath(path, \"Bank\") && e.triggerAdditionalTasks)) {\n tryToCreateIBAN(storage, e.bindingContext);\n }\n};\n\nexport const handleBankFieldChangeWithoutSavedAccount = (args: IBankAccountArgs, e: ISmartFieldChange): void => {\n handleBankCountryChange(args, e);\n handleAccOrBankChange(args.storage, e);\n handleIBANChange(args, e);\n};\n\nconst isCreating = (args: IBankAccountArgs, e: ISmartFieldChange) => {\n return e.value === SelectionCode.Own && canPartnerBeCreated(args);\n};\n\nconst canPartnerBeCreated = (args: IBankAccountArgs) => {\n // placeholder for cases (which may come) when we don't want to allow BP creation\n return args.type !== DocumentTypeCode.BankTransaction;\n};\n\nexport const handleBankFieldChange = (args: IBankAccountArgs, e: ISmartFieldChange): void => {\n handleSavedAccountChange(args, e);\n handleBankFieldChangeWithoutSavedAccount(args, e);\n\n const path = e.bindingContext.getPath();\n const parentBc = e.bindingContext.getParent();\n const isBankAccountField = isBankAccount(parentBc);\n const isBankCodeLiveChange = path === \"Bank\" && !e.triggerAdditionalTasks;\n const isCountry = path === \"Country\";\n\n if (isBankAccountField && !isBankCodeLiveChange && !isCountry) {\n const val = setSavedBankAccount(args);\n const _isCreating = val === SelectionCode.Own && canPartnerBeCreated(args);\n const isClearing = isNotDefined(val);\n if (isClearing) {\n clearBankFields(args.storage, parentBc);\n }\n\n setBankAccountGroupStatus(args, _isCreating);\n appendAdditionalItemsToSavedBankAccounts(args);\n refreshBankGroup(args.storage);\n }\n};\n\nexport const handlePaymentMethodChange = (args: IBankAccountArgs, e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n if (path === \"PaymentMethod\") {\n const { storage, type } = args;\n\n if (e.value === PaymentMethodCode.WireTransfer\n || (isIssued(type) && e.value === PaymentMethodCode.PaymentService)) {\n setDefaultCountry(storage);\n prepareSavedAccounts(args);\n } else if (e.value === PaymentMethodCode.Cash) {\n if ((storage.data.entity as IDocumentEntity)[DocumentEntity.ClearedStatus]?.Code !== ClearedStatusCode.Cleared) {\n const createReceiptBc = args.storage.data.bindingContext.navigate(CREATE_RECEIPT_PATH);\n\n if (!isFieldDisabled(args.storage.getInfo(createReceiptBc), args.storage, createReceiptBc)) {\n args.storage.setValue(createReceiptBc, true);\n onCreateReceiptChange(true, args.storage);\n }\n }\n }\n refreshBankGroup(args.storage);\n }\n};\n\nexport function isBankAccount(bindingContext: BindingContext): boolean {\n let entityType = bindingContext.getEntityType();\n let isBankAccount = false;\n while (entityType && !isBankAccount) {\n isBankAccount = [EntityTypeName.BankAccount, EntityTypeName.DocumentBankAccount, EntityTypeName.PrEmployeeBankAccount]\n .includes(entityType.getName() as EntityTypeName);\n entityType = entityType.getBaseType();\n }\n return isBankAccount;\n}\n\nconst setDefaultCountry = (storage: FormStorage) => {\n storage.clearAndSetValueByPath(\"BankAccount/Country\", getAgendaCountryCode(storage.context));\n};\n\nconst handleBankCountryChange = (args: IBankAccountArgs, e: ISmartFieldChange) => {\n const parentBc = e.bindingContext.getParent();\n const { storage } = args;\n\n if (isBankAccount(parentBc) && e.bindingContext.getPath() === \"Country\" && e.triggerAdditionalTasks) {\n clearBankFields(storage, parentBc);\n if (e.bindingContext.getNavigationPath(true) === \"BankAccount/Country\") {\n const bc = storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH);\n const val = storage.getValue(bc);\n // if there is any account selected (not \"own\", \"default\", ...) we set \"own\" as new value\n\n if (Number.isInteger(val)) {\n storage.clearAndSetValue(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH), SelectionCode.Own);\n setBankAccountGroupStatus(args, true);\n }\n }\n\n refreshBankGroup(storage);\n }\n};\n\nexport const clearBankFields = (storage: FormStorage, rootBc: BindingContext): void => {\n const _clear = (bc: BindingContext) => {\n storage.clearAndSetValue(bc, null);\n storage.clearAdditionalFieldData(bc);\n };\n\n // we need to set null not undefined so BE can properly clear stuff\n _clear(rootBc.navigate(BankAccountEntity.BankCode));\n _clear(rootBc.navigate(BankAccountEntity.Bank));\n _clear(rootBc.navigate(BankAccountEntity.AccountNumber));\n _clear(rootBc.navigate(BankAccountEntity.AbaNumber));\n _clear(rootBc.navigate(BankAccountEntity.IBAN));\n _clear(rootBc.navigate(BankAccountEntity.SWIFT));\n _clear(rootBc.navigate(BankAccountEntity.PaymentServiceID));\n _clear(rootBc.navigate(BankAccountEntity.PaymentServiceName));\n};\n\nconst handleSavedAccountChange = (args: IBankAccountArgs, e: ISmartFieldChange) => {\n if (e.bindingContext.getNavigationPath(true) === SAVED_ACCOUNTS_PATH && e.triggerAdditionalTasks) {\n const isNew = e.value === SelectionCode.Own;\n const _isCreating = isCreating(args, e);\n const isClearing = isNotDefined(e.value);\n\n // DEV-11719 we removed country from dependent fields so clicking on \"new\" doesn't erase current selection\n // so we have to set it up manually\n if (!isNew && e.value) {\n const country = e.additionalData?.CountryCode;\n if (country) {\n args.storage.clearAndSetValueByPath(\"BankAccount/Country\", country);\n }\n }\n\n if (isNew) {\n const currentCountry = args.storage.getValueByPath(\"BankAccount/Country\", { useDirectValue: false });\n if (!currentCountry) {\n setDefaultCountry(args.storage);\n }\n }\n\n if (isClearing) {\n clearBankFields(args.storage, args.storage.data.bindingContext.navigate(\"BankAccount\"));\n setDefaultCountry(args.storage);\n args.storage.setGroupStatus({\n isExpanded: false,\n isCreating: false\n }, getCollapsedGroupId({ id: SAVED_ACCOUNTS_PATH }));\n } else {\n setBankAccountGroupStatus(args, _isCreating, isNew);\n }\n\n refreshBankGroup(args.storage);\n }\n};\n\nconst refreshBankGroup = (storage: FormStorage): void => {\n storage.addActiveGroupByKey(\"payment\");\n};\n\nexport const getBankBlurArgs = (storage: FormStorage, bc: BindingContext): IHandleBlur => {\n return {\n storage: storage,\n bindingContext: bc,\n root: bc.getParent()\n };\n};\n\nexport const loadAllBankAccounts = async (storage: FormStorage): Promise => {\n const accounts: IAllBankAccount[] = [];\n\n if (!storage.getCustomData().allBankAccounts) {\n const partners = await storage.oData.getEntitySetWrapper(EntitySetName.BusinessPartners).query()\n .expand(\"BankAccounts\")\n .expand(\"Contacts\")\n .expand(\"BillingAddress\", q => {\n q.expand(\"Country\");\n })\n .expand(\"VatStatus\")\n .fetchData();\n\n for (const partner of partners?.value || []) {\n for (const acc of partner.BankAccounts || []) {\n accounts.push({\n BusinessPartner: partner,\n ...acc\n });\n }\n }\n\n accounts.sort((ba1: IBankAccountEntity, ba2: IBankAccountEntity) => {\n if (ba1.AccountNumber && ba2.AccountNumber) {\n return compareString(ba1.AccountNumber, ba2.AccountNumber);\n } else {\n return compareString(ba1.IBAN, ba2.IBAN);\n }\n });\n\n storage.setCustomData({ allBankAccounts: accounts });\n }\n};\n\n/**\n * Transforms CompanyBankAccount select items (with IsActive flag in additionalData) in a way that inactive\n * accounts are removed, except the currently selected account, which is left as disabled, so it's correctly\n * rendered in select.\n * ToDo: we may remove this in the future and make it in more generic way for all possible selects\n * @param items\n * @param currentAccountId\n */\nexport function removeInactiveAccounts(items: ISelectItem[], currentAccountId?: TEntityKey): ISelectItem[] {\n return items.reduce((retValue, currentItem) => {\n const isSelected = currentAccountId && currentItem.id === currentAccountId;\n if (currentItem.additionalData.IsActive || isSelected) {\n currentItem.isDisabled = !currentItem.additionalData.IsActive;\n retValue.push(currentItem);\n }\n return retValue;\n }, []);\n}\n\n/**\n * If SymbolVariable is not changed by user, update its value based on the templateString;\n * @param storage\n * @param newValue either NumberOurs or NumberTheirs. Only numeric part of the string is used.\n * @param originalValue value before the change.\n * */\nexport const createAndSetSymbolVariable = (storage: FormStorage, originalValue: string, newValue: string): void => {\n const _createFrom = (n: string) => {\n const ret = n?.replace(/\\D/g, \"\");\n return ret !== \"\" ? ret : undefined;\n };\n\n const symbolIsNotSet = !storage.data.entity?.SymbolVariable;\n const symbolMatchesOriginalValue = storage.data.entity?.SymbolVariable === _createFrom(originalValue);\n if ((symbolIsNotSet || symbolMatchesOriginalValue) && storage.data.entity?.PaymentMethod?.Code === PaymentMethodCode.WireTransfer) {\n storage.clearAndSetValue(storage.data.bindingContext.navigate(\"SymbolVariable\"), _createFrom(newValue));\n }\n};\n\nexport const setVariableSymbolFromNumberOurs = (storage: FormStorage, origNumberOurs: string, newNumberOurs: string): void => {\n const documentType = getDocumentTypeCodeFromEntityType(storage.data.bindingContext.getEntityType().getName() as EntityTypeName);\n\n if (isReceived(documentType)) {\n // for received invoices, VariableSymbol is tied to NumberTheirs and is handled in ReceivedDocumentBaseFormView\n return;\n }\n\n // if numberOurs is set, we may create variable symbol from it in some cases:\n // - variable symbol should not be set or it should match previous number ours\n if (newNumberOurs) {\n createAndSetSymbolVariable(storage, origNumberOurs, newNumberOurs);\n }\n};\n\nexport const buildComplexBankAccountFilterFromBankAccountString = (changedFilter: IChangedFilter, storage: TableStorage, settings?: ICreateFilterStringSettings): string => {\n const getFilterString = (prop: keyof IBankAccountEntity, originalValue: string | IComplexFilter, bankAccountString: string): string => {\n const isComplex = isComplexFilter(originalValue);\n // is called for either BankAccount navigation or BankAccount/AccountNumber property\n const bc = changedFilter.bindingContext.isValidNavigation(prop) ? changedFilter.bindingContext.navigate(prop) : changedFilter.bindingContext.getParent().navigate(prop);\n\n return createFilterString({\n ...changedFilter,\n bindingContext: bc,\n value: !isComplex ? bankAccountString : [{\n ...originalValue,\n value: bankAccountString\n }]\n },\n settings\n );\n };\n\n const applyFilter = (originalValue: string | IComplexFilter) => {\n const isComplex = isComplexFilter(originalValue);\n const bankAccountString = removeWhiteSpace(!isComplex ? originalValue : originalValue.value);\n\n const containsSeparator = bankAccountString.includes(\"/\");\n if (!containsSeparator) {\n const possibleProps: (keyof IBankAccountEntity)[] = [\"AccountNumber\", \"AbaNumber\", \"PaymentServiceID\", \"IBAN\"];\n\n return storage.joinFilters(possibleProps.map((prop) => {\n return getFilterString(prop, originalValue, bankAccountString);\n }), \"OR\");\n } else {\n const [prefix, suffix] = bankAccountString.split(\"/\");\n const basicAccountFilter = `(${storage.joinFilters([getFilterString(\"AccountNumber\", originalValue, prefix), getFilterString(\"BankCode\", originalValue, suffix)], \"AND\")})`;\n const abaAccountFilter = `(${storage.joinFilters([getFilterString(\"AbaNumber\", originalValue, prefix), getFilterString(\"AccountNumber\", originalValue, suffix)], \"AND\")})`;\n\n return storage.joinFilters([basicAccountFilter, abaAccountFilter], \"OR\");\n }\n };\n\n if (isComplexFilterArr(changedFilter.value)) {\n return storage.joinFilters((changedFilter.value as IComplexFilter[]).map((val) => {\n return applyFilter(val as IComplexFilter);\n }), \"AND\");\n } else {\n return applyFilter(changedFilter.value as string);\n }\n};\n\nexport const checkRelatedEntities = async (storage: FormStorage, addTransactions = false) => {\n let hasRelatedEntities = false;\n\n const transactionCondition = addTransactions ? ` AND Transactions/$count gt 0` : ``;\n\n if (!storage.data.bindingContext.isNew()) {\n try {\n const bankAccountId = storage.data.bindingContext.getKey();\n const query = storage.oData.getEntitySetWrapper(EntitySetName.BankStatements).query();\n query.filter(`BankAccount/Id eq ${bankAccountId}${transactionCondition}`)\n .top(1);\n\n const result = await query.fetchData();\n\n hasRelatedEntities = !!result.value?.length;\n } catch (e) {\n // fall silently\n }\n }\n\n storage.setCustomData({ hasRelatedEntity: hasRelatedEntities });\n};\n\nexport const refreshStatementsAPI = async (bankAccountId: number): Promise => {\n const url = `${BANK_STATEMENTS}/SyncBankTransactions/${bankAccountId}`;\n return await customFetch(url, {\n ...getDefaultPostParams()\n });\n};","import { ifAll, ifAny, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n BankApiConnectionSettingEntity,\n CompanyBankAccountEntity,\n EntitySetName,\n EntityTypeName\n} from \"@odata/GeneratedEntityTypes\";\nimport { CompanyBankAccountTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert, forEachKey } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, TextAlign } from \"../../../enums\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getDefaultRangeDefinition } from \"../../numberRange/NumberRangeFields.utils\";\nimport { IDefinition, IGetDefinition, TFieldsDefinition } from \"../../PageUtils\";\nimport {\n getAccountRelatedAccountSettingsFieldsDef,\n getAccountSettingsFormGroup,\n getBankAccountsFieldBaseDef,\n getInitialBalanceFieldsDef,\n getInitialBalanceFormGroup,\n getIsDefaultSwitchDef,\n hasRelatedEntity\n} from \"./BankAccounts.utils\";\n\nfunction isPaymentService(args: IGetValueArgs) {\n return args.storage.data.entity.CompanyBankAccountType?.Code === CompanyBankAccountTypeCode.PaymentService;\n}\n\nfunction isBankFieldVisible(args: IGetValueArgs): boolean {\n return args.storage.data.entity.CompanyBankAccountType?.Code === CompanyBankAccountTypeCode.Bank;\n}\n\nfunction addAnalyticAccountDefs(context: IAppContext): TFieldsDefinition {\n if (!isCashBasisAccountingCompany(context)) {\n return getAccountRelatedAccountSettingsFieldsDef(BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX);\n }\n return null;\n}\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n\n const { Bank: BankBaseDef, ...restBankFieldDefs } = getBankAccountsFieldBaseDef();\n\n const form: IFormDef = {\n id: `${EntityTypeName.CompanyBankAccount}Form`,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [{\n id: CompanyBankAccountEntity.Logo\n }, {\n id: CompanyBankAccountEntity.IsActive\n }, {\n id: CompanyBankAccountEntity.Currency\n }, {\n id: CompanyBankAccountEntity.BankApiConnectionSetting,\n additionalProperties: [{\n id: BankApiConnectionSettingEntity.ErrorMessage\n }]\n }],\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.L,\n textAlign: TextAlign.Left,\n label: i18next.t(\"Banks:Accounts.Name\")\n },\n Bank: {\n ...BankBaseDef,\n isVisible: ifAll(isBankFieldVisible, BankBaseDef.isVisible),\n isReadOnly: hasRelatedEntity,\n fieldSettings: {\n ...BankBaseDef.fieldSettings,\n localDependentFields: [\n ...BankBaseDef.fieldSettings?.localDependentFields,\n { from: { id: \"LogoId\" }, to: { id: \"Logo/Id\" } }\n ],\n entitySet: EntitySetName.Banks\n }\n },\n HasAutoPosting: {\n type: FieldType.Switch,\n isReadOnly: hasRelatedEntity\n },\n BankStatementNumberRangeDefinition: {\n ...getDefaultRangeDefinition(EntityTypeName.BankStatement)\n },\n CompanyBankAccountType: {\n type: FieldType.SegmentedButton,\n defaultValue: CompanyBankAccountTypeCode.Bank,\n fieldSettings: {\n displayName: \"Name\",\n items: [{\n id: CompanyBankAccountTypeCode.Bank,\n label: i18next.t(\"Banks:Accounts.Bank\")\n }, {\n id: CompanyBankAccountTypeCode.PaymentService,\n label: i18next.t(\"Banks:Accounts.OtherService\")\n }]\n },\n affectedFields: [{ id: \"AccountNumber\" }, { id: \"AbaNumber\" }, { id: \"Bank\" }, { id: \"IBAN\" }, { id: \"SWIFT\" }, { id: \"Country\" }, { id: \"PaymentServiceID\" }, { id: \"PaymentServiceName\" }],\n isReadOnly: hasRelatedEntity\n },\n PaymentServiceID: {\n isRequired: true,\n isVisible: isPaymentService,\n isReadOnly: hasRelatedEntity\n },\n PaymentServiceName: {\n isRequired: true,\n isVisible: isPaymentService,\n isReadOnly: hasRelatedEntity\n },\n IsDefault: getIsDefaultSwitchDef(),\n ...(addAnalyticAccountDefs(context) ?? {}),\n ...getInitialBalanceFieldsDef()\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: CompanyBankAccountEntity.Name },\n { id: CompanyBankAccountEntity.IsDefault }\n ],\n [\n { id: CompanyBankAccountEntity.BankStatementNumberRangeDefinition }\n ],\n [\n { id: CompanyBankAccountEntity.CompanyBankAccountType }\n ],\n [\n { id: CompanyBankAccountEntity.Country }\n ],\n [\n { id: CompanyBankAccountEntity.AbaNumber },\n { id: CompanyBankAccountEntity.AccountNumber },\n { id: CompanyBankAccountEntity.Bank },\n { id: CompanyBankAccountEntity.IBAN },\n { id: CompanyBankAccountEntity.SWIFT }\n ],\n [\n { id: CompanyBankAccountEntity.PaymentServiceName },\n { id: CompanyBankAccountEntity.PaymentServiceID }\n ]\n ]\n },\n getInitialBalanceFormGroup()\n ]\n };\n\n if (!isCashBasisAccountingCompany(context)) {\n form.groups = arrayInsert(form.groups, getAccountSettingsFormGroup(), 1);\n }\n\n forEachKey(restBankFieldDefs, (key) => {\n form.fieldDefinition[key] = {\n ...restBankFieldDefs[key],\n isVisible: ifAll(isBankFieldVisible, restBankFieldDefs[key].isVisible),\n isReadOnly: ifAny(hasRelatedEntity, restBankFieldDefs[key].isReadOnly)\n };\n });\n\n return {\n entitySet: EntitySetName.CompanyBankAccounts,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\n \"Banks\",\n getEnumNameSpaceName(EntityTypeName.Currency),\n getEnumNameSpaceName(EntityTypeName.BankApiStatementImportFrequency),\n getEnumNameSpaceName(EntityTypeName.BankApiStatementImportRange)\n];\n\nsetDefByEntityType(EntityTypeName.CompanyBankAccount, getDefinitions);","import Clickable from \"@components/clickable/Clickable\";\nimport { ConnectionStatus } from \"@components/connectionDialog/ConnectionDialog\";\nimport { DownloadIcon } from \"@components/icon\";\nimport { ifAll, IFieldDefFn, IGetValueArgs, isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport BindingContext, { createPath } from \"@odata/BindingContext\";\nimport {\n BankApiConnectionSettingEntity,\n BankApiStatementImportSettingEntity,\n CompanyBankAccountEntity,\n EntityTypeName\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n BankApiStatementImportFrequencyCode,\n BankApiStatementImportRangeCode,\n BankCode,\n FiscalYearStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { isBankApiConnected } from \"@pages/banks/bankAccounts/Api.utils\";\nimport { BankKeyLinkWrapper, StyledAPISettingsDescText } from \"@pages/banks/bankAccounts/BankAccounts.styles\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport { REST_API_URL } from \"../../../../constants\";\nimport { addCompanyIdToUrl } from \"../../../../contexts/appContext/AppContext.utils\";\nimport { BasicInputSizes, FieldType, IconSize, ValidatorType } from \"../../../../enums\";\nimport { IFormDef } from \"../../../../views/formView/Form\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../../views/formView/FormStorage\";\nimport { getActiveFiscalYears, getFiscalYearByDate } from \"../../../fiscalYear/FiscalYear.utils\";\nimport { IDefinition, IGetDefinition } from \"../../../PageUtils\";\nimport { hasRelatedEntity } from \"../BankAccounts.utils\";\n\nexport interface ICompanyBankAccountApiSettingsCustomData extends IFormStorageDefaultCustomData {\n connectionStatus?: ConnectionStatus;\n}\n\nconst hasSettings = (args: IGetValueArgs) => {\n return [ConnectionStatus.WaitingForConfiguration, ConnectionStatus.Connected].includes((args.storage.getCustomData() as ICompanyBankAccountApiSettingsCustomData).connectionStatus);\n};\n\nexport const API_PASSWORD_PATH = BindingContext.localContext(\"apiPassword\");\nexport const CERTIFICATE_PATH = BindingContext.localContext(\"certificate\");\nexport const BANK_KEY_DOWNLOAD_PATH = BindingContext.localContext(\"bankKeyDownLoadPath\");\n\nexport const getDefinition: IGetDefinition = (): IDefinition => {\n const getSettingsPath = (path: string) => {\n return createPath(CompanyBankAccountEntity.BankApiStatementImportSetting, path);\n };\n\n const isWithoutRelatedEntity = (args: IGetValueArgs) => {\n return !hasRelatedEntity(args);\n };\n\n const form: IFormDef = {\n id: \"CompanyBankAccountSettingsSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n additionalProperties: [\n { id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ApiKeyId) },\n { id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ErrorMessage) },\n { id: CompanyBankAccountEntity.BankApiStatementImportSetting }\n ],\n fieldDefinition: {\n [createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ApiKeySetter)]: {\n type: FieldType.Password,\n label: i18next.t(\"Banks:Accounts.Token\"),\n width: BasicInputSizes.XL,\n isRequired: true,\n isDisabled: args => {\n return [ConnectionStatus.WaitingForConfiguration, ConnectionStatus.Connected].includes((args.storage.getCustomData() as ICompanyBankAccountApiSettingsCustomData).connectionStatus);\n },\n isVisible: args => {\n return args.storage.data.entity.BankCode === BankCode.FioBanka_A_s_;\n },\n fieldSettings: {\n placeholder: i18next.t(\"Banks:Accounts.AddTokenPlaceholder\")\n },\n additionalProperties: [{\n id: `/${CompanyBankAccountEntity.BankCode}`\n }]\n },\n [BANK_KEY_DOWNLOAD_PATH]: {\n type: FieldType.Custom,\n isVisible: args => {\n return args.storage.data.entity.BankCode === BankCode.ČeskoslovenskáObchodníBanka_A_S_ && !hasSettings(args);\n },\n render: (args: IFieldDefFn): React.ReactElement => {\n const url = addCompanyIdToUrl(`${REST_API_URL}/CompanyBankAccountApi/GetCertificateRequest/${args.storage.data.entity.Id}`, args.storage.context);\n return \n \n {i18next.t(\"Banks:Accounts.KeyForBank\")}\n \n \n ;\n }\n },\n [API_PASSWORD_PATH]: {\n type: FieldType.Password,\n isRequired: true,\n label: i18next.t(\"Banks:Accounts.Password\"),\n width: BasicInputSizes.XL,\n isDisabled: args => {\n return [ConnectionStatus.WaitingForConfiguration, ConnectionStatus.Connected].includes((args.storage.getCustomData() as ICompanyBankAccountApiSettingsCustomData).connectionStatus);\n },\n isVisible: args => {\n return args.storage.data.entity.BankCode === BankCode.RaiffeisenbankA_s_;\n },\n additionalProperties: [{\n id: `/${CompanyBankAccountEntity.BankCode}`\n }, {\n id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ApiKeySetter)\n }]\n },\n [CERTIFICATE_PATH]: {\n type: FieldType.FileInput,\n isRequired: true,\n label: i18next.t(\"Banks:Accounts.Certificate\"),\n width: BasicInputSizes.XL,\n isVisible: args => {\n const entity = args.storage.data.entity;\n return [BankCode.RaiffeisenbankA_s_, BankCode.ČeskoslovenskáObchodníBanka_A_S_].includes(entity.BankCode) && !isBankApiConnected(args.storage.data.entity);\n },\n additionalProperties: [{\n id: `/${CompanyBankAccountEntity.BankCode}`\n }, {\n id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ApiKeyId)\n }]\n },\n [createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ContractNumber)]: {\n label: i18next.t(\"Banks:Accounts.ContractNumber\"),\n isRequired: true,\n width: BasicInputSizes.XL,\n isDisabled: hasSettings,\n isVisible: args => {\n return args.storage.data.entity.BankCode === BankCode.ČeskoslovenskáObchodníBanka_A_S_;\n },\n additionalProperties: [{\n id: `/${CompanyBankAccountEntity.BankCode}`\n }]\n },\n [getSettingsPath(BankApiStatementImportSettingEntity.BankApiStatementImportFrequency)]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n isRequired: true,\n isVisible: hasSettings,\n defaultValue: BankApiStatementImportFrequencyCode.Monthly,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.BankApiStatementImportFrequency)\n },\n render: (args: IFieldDefFn): React.ReactElement => {\n const storage = args.storage as FormStorage;\n const tKey = isBankApiConnected(storage.data.origEntity) ? \"BankApiStatementImportFrequencyConnectedDesc\" : \"BankApiStatementImportFrequencyDesc\";\n return <>\n {i18next.t(`Banks:Accounts.${tKey}`)}\n {args.fieldElement}\n ;\n }\n },\n [getSettingsPath(BankApiStatementImportSettingEntity.BankApiStatementImportRange)]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n isVisible: ifAll(isWithoutRelatedEntity, hasSettings),\n clearIfInvisible: false,\n isRequired: true,\n defaultValue: BankApiStatementImportRangeCode.CurrentActiveFiscalYear,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.BankApiStatementImportRange)\n },\n render: (args: IFieldDefFn): React.ReactElement => {\n const storage = args.storage as FormStorage;\n const tKey = isBankApiConnected(storage.data.origEntity) ? \"BankApiStatementImportRangeConnectedDesc\" : \"BankApiStatementImportRangeDesc\";\n return <>\n {i18next.t(`Banks:Accounts.${tKey}`)}\n {args.fieldElement}\n ;\n }\n },\n [getSettingsPath(BankApiStatementImportSettingEntity.DateFrom)]: {\n type: FieldType.Date,\n isRequired: true,\n clearIfInvisible: false,\n width: BasicInputSizes.M,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value, args) => {\n const { storage } = args;\n if (isVisibleByPath(storage as FormStorage, getSettingsPath(BankApiStatementImportSettingEntity.DateFrom))) {\n const fiscalYear = getFiscalYearByDate(args.storage.context, value as Date);\n if (fiscalYear?.StatusCode !== FiscalYearStatusCode.Active) {\n return new ValidationError(i18next.t(\"Banks:Validation.ActiveFY\"), value, args.bindingContext.getNavigationPath(true));\n }\n }\n return true;\n }\n }\n },\n fieldSettings: {\n minDate: (args: IGetValueArgs) => {\n const fiscalYears = getActiveFiscalYears(args.storage.context);\n if (!fiscalYears?.length) {\n return null;\n }\n return fiscalYears[0].DateStart;\n },\n maxDate: (args: IGetValueArgs) => {\n const fiscalYears = getActiveFiscalYears(args.storage.context);\n if (!fiscalYears?.length) {\n return null;\n }\n return fiscalYears[fiscalYears.length - 1].DateEnd;\n }\n },\n isVisible: args => {\n const range = args.storage.getValueByPath(getSettingsPath(BankApiStatementImportSettingEntity.BankApiStatementImportRange));\n return range?.Code === BankApiStatementImportRangeCode.FromDate && isWithoutRelatedEntity(args) && hasSettings(args);\n }\n }\n },\n groups: [\n {\n id: \"Token\",\n showGroupDivider: false,\n rows: [\n [\n { id: BANK_KEY_DOWNLOAD_PATH },\n { id: CERTIFICATE_PATH },\n { id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ApiKeySetter) },\n { id: createPath(CompanyBankAccountEntity.BankApiConnectionSetting, BankApiConnectionSettingEntity.ContractNumber) },\n { id: API_PASSWORD_PATH }\n ],\n [{ id: getSettingsPath(BankApiStatementImportSettingEntity.BankApiStatementImportFrequency) }],\n [{ id: getSettingsPath(BankApiStatementImportSettingEntity.BankApiStatementImportRange) }, { id: getSettingsPath(BankApiStatementImportSettingEntity.DateFrom) }]\n ]\n }\n ]\n };\n\n return {\n form\n };\n};\n\ngetDefinition.translationFiles = [\n \"Banks\",\n getEnumNameSpaceName(EntityTypeName.BankApiStatementImportFrequency),\n getEnumNameSpaceName(EntityTypeName.BankApiStatementImportRange)\n];\n","import { IBaseAlertProps } from \"@components/alert/Alert\";\nimport { fileNameToMime, getFileNameExtension, isFileCsv } from \"@components/fileUploader/File.utils\";\nimport { formatDateToDateString, formatDateToDateTimeOffsetString } from \"@components/inputs/date/utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n ISmartBankAccountFilterCustomData\n} from \"@components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport { IGroupRenderFn } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { isODataError, ODataError } from \"@odata/Data.types\";\nimport { getNewItemsMaxId } from \"@odata/Data.utils\";\nimport {\n BankStatementEntity,\n BankTransactionEntity,\n CompanySettingEntity,\n EntitySetName,\n IBankStatementEntity,\n IBankTransactionEntity,\n ICompanyBankAccountEntity,\n ICompanySettingEntity,\n IEntityAttachmentEntity,\n IExchangeRateEntity,\n IFileMetadataEntity,\n InitialAccountBalanceEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, CurrencyCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest, isBatchResultOk, OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { canChangeNumberRange, getRangeByDefinitionId, replaceWildcards } from \"@pages/numberRange/NumberRange.utils\";\nimport { getCompanyCurrency, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport Dialog from \"../../../components/dialog\";\nimport HiddenFileInput from \"../../../components/fileUploader/HiddenFileInput\";\nimport SmartFastEntryList, {\n ActionType,\n ISmartFastEntriesActionEvent\n} from \"../../../components/smart/smartFastEntryList\";\nimport { BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX, BANK_STATEMENTS, REST_API_URL } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Status, ValueType } from \"../../../enums\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { TEntityKey } from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport FileStorage from \"../../../utils/FileStorage\";\nimport { getAlertFromError } from \"../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport CsvImport, { IUploadArgs } from \"../../csvImport/CsvImport\";\nimport { parseTransactions } from \"../../csvImport/CsvImport.utils\";\nimport { DRAFT_ITEM_ID_PATH, loadExchangeRate } from \"../../documents/Document.utils\";\nimport { ClosingBalancePath } from \"./BankStatementsDef\";\n\nexport const getUploadErrorMessage = (error: ODataError): string => {\n const innerError = error?._validationMessages?.[0];\n const code = innerError?.code;\n const tranCode = `Error:${code}`;\n const { sign, line, ...restParams } = innerError.messageParameters ?? {};\n const opts = {\n ...restParams,\n sign: sign ?? \"?\",\n line: line ?? \"?\"\n };\n return code && i18next.exists(tranCode) ? i18next.t(tranCode, opts)\n : error?._message ?? i18next.t(\"Banks:Validation.WrongFormat\");\n};\n\nexport const showError = (storage: Model, title: string, subTitle: string): void => {\n (storage as FormStorage).setFormAlert({\n status: Status.Error,\n title: title,\n subTitle: subTitle\n });\n};\n\nexport const parseGpc = async (storage: Model, items: TRecordAny[]): Promise => {\n let maxId = (getNewItemsMaxId(storage.data.entity.Transactions) || 0) + 1;\n let order = storage.data.entity.Transactions?.length ?? 1;\n\n for (const item of items || []) {\n const data: IBankTransactionEntity = {\n DateBankTransaction: getUtcDate(item.DateBankTransaction),\n RemittanceInformation: item.RemittanceInformation,\n SymbolConstant: item.SymbolConstant,\n SymbolSpecific: item.SymbolSpecific,\n SymbolVariable: item.SymbolVariable,\n TransactionCurrencyCode: item.TransactionCurrencyCode,\n TransactionAmount: item.TransactionAmount,\n PaymentInformation: item.PaymentInformation,\n BankInternalId: item.BankInternalId,\n };\n\n if (item.BusinessPartner?.BusinessPartner?.Id) {\n const bp = item.BusinessPartner;\n data.BusinessPartner = {\n BusinessPartner: {\n Id: item.BusinessPartner.BusinessPartner.Id\n },\n City: bp.City,\n CountryCode: bp.CountryCode,\n Email: bp.Email,\n FirstName: bp.FirstName,\n LastName: bp.LastName,\n LegalNumber: bp.LegalNumber,\n Name: bp.Name,\n PhoneNumber: bp.PhoneNumber,\n PostalCode: bp.PostalCode,\n Street: bp.Street,\n TaxNumber: bp.TaxNumber,\n VatStatusCode: bp.VatStatusCode\n };\n }\n\n if (item.BankAccount) {\n const itemBa = item.BankAccount;\n data.BankAccount = {\n AbaNumber: itemBa.AbaNumber,\n AccountNumber: itemBa.AccountNumber,\n BankCode: itemBa.BankCode,\n CountryCode: itemBa.CountryCode,\n IBAN: itemBa.IBAN,\n SWIFT: itemBa.SWIFT\n };\n }\n\n const id = maxId++;\n const newEntity = BindingContext.createNewEntity(id, data);\n\n newEntity[BankTransactionEntity.Order] = order;\n order += 1;\n\n // for saving purposes we have to make this items 'dirty'\n storage.setDirty(storage.data.bindingContext.navigate(`Transactions(${BindingContext.NEW_ENTITY_ID_PROP}=${id})`));\n\n if (!storage.data.entity.Transactions) {\n storage.data.entity.Transactions = [newEntity];\n } else {\n storage.data.entity.Transactions.push(newEntity);\n }\n }\n\n await assignExchangeRatesToTransactions(storage.data.entity.Transactions, storage.data.entity.BankAccount.TransactionCurrencyCode as CurrencyCode, storage.context);\n};\n\nconst assignExchangeRatesToTransactions = async (transactions: IBankTransactionEntity[], currencyCode: CurrencyCode, context: IAppContext): Promise => {\n const ratesMap: Record = {};\n\n if (currencyCode !== getCompanyCurrency(context)) {\n const dates = new Set();\n for (const t of transactions) {\n if (t.DateBankTransaction) {\n dates.add(formatDateToDateTimeOffsetString(t.DateBankTransaction));\n }\n }\n const res = await customFetch(`${REST_API_URL}/ExchangeRate/GetExchangeRatesForDates`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n exchangeRateDates: [...dates],\n currencyCode\n })\n });\n\n const rates = await res.json();\n for (const [key, val] of Object.entries(rates)) {\n ratesMap[formatDateToDateString(key)] = (val as IExchangeRateEntity)?.ExchangeRatePerUnit;\n }\n }\n\n for (const t of transactions) {\n t.ExchangeRatePerUnit = ratesMap[formatDateToDateString(t.DateBankTransaction)] ?? (currencyCode === getCompanyCurrency(context) ? 1 : null);\n }\n\n return transactions;\n};\n\nexport const isFieldTransactionDisabled = (args: IGetValueArgs): boolean => {\n return isTransactionDisabled(args, args.bindingContext.getParent());\n};\n\nexport const isTransactionDisabled = (args: IGetValueArgs, bc: BindingContext): boolean => {\n const row = args.storage.getValue(bc);\n const isLocked = !!row?.Lock?.Id;\n const isCleared = row?.ClearedStatusCode === ClearedStatusCode.Cleared || row?.ClearedStatusCode === ClearedStatusCode.PartiallyCleared;\n\n return isLocked || isCleared;\n};\n\nexport const calculateAndStoreTransactionCount = (storage: FormStorage): number => {\n let count = 0;\n\n if (storage.data.entity.Transactions) {\n for (const element of storage.data.bindingContext.iterateNavigation(\"Transactions\", storage.data.entity.Transactions)) {\n if (!element.bindingContext.isNew() || storage.isDirty(element.bindingContext) || element.entity[DRAFT_ITEM_ID_PATH]) {\n count++;\n }\n }\n }\n\n storage.setCustomData({ transactionCount: count });\n return count;\n};\n\n\nexport const recalculateBalance = (storage: FormStorage): void => {\n const { Transactions } = storage.data.entity;\n let CreditTurnover = 0,\n DebitTurnover = 0;\n (Transactions ?? []).forEach((transaction: IBankTransactionEntity) => {\n if (isNaN(transaction.TransactionAmount)) {\n return; // skip if not valid\n }\n if (transaction.TransactionAmount > 0) {\n CreditTurnover += transaction.TransactionAmount ?? 0;\n } else {\n DebitTurnover += transaction.TransactionAmount ?? 0;\n }\n });\n storage.setValueByPath(\"DebitTurnover\", DebitTurnover);\n storage.setValueByPath(\"CreditTurnover\", CreditTurnover);\n storage.setValueByPath(\"TransactionsTurnover\", CreditTurnover + DebitTurnover);\n storage.addActiveField(storage.data.bindingContext.navigate(ClosingBalancePath));\n};\n\nexport const refreshBankStatementNumberRange = (storage: FormStorage, rangeId: number): void => {\n if (rangeId) {\n const range = getRangeByDefinitionId(storage, rangeId);\n if (range) {\n const numberOurs = replaceWildcards(range.NextNumber, storage.data.entity, { useNow: false });\n storage.setValueByPath(\"NumberRange\", range, true);\n storage.setValueByPath(\"NumberOurs\", numberOurs, true);\n }\n }\n};\n\nexport const onDateFromChange = async (storage: FormStorage, dateFrom: Date) => {\n const entity = storage.data.entity;\n // if there is only one UNMODIFIED line, we change its date accordingly\n if (entity.Transactions?.length === 1) {\n const id = entity.Transactions[0][BindingContext.NEW_ENTITY_ID_PROP];\n if (id) {\n const bc = storage.data.bindingContext.navigate(`Transactions`).addKey(id, true);\n if (!storage.isDirty(bc)) {\n const bcDate = bc.navigate(\"DateBankTransaction\");\n storage.setValue(bcDate, dateFrom);\n\n const currencyCode = storage.data.entity.BankAccount?.TransactionCurrency?.Code;\n const rate = await loadExchangeRate(storage, currencyCode, dateFrom);\n if (rate) {\n const bcExchange = bc.navigate(\"ExchangeRatePerUnit\");\n storage.clearAndSetValue(bcExchange, rate);\n storage.refreshFields();\n }\n\n }\n }\n }\n\n if (canChangeNumberRange(storage)) {\n const rangeId = storage.data.entity.BankAccount?.BankStatementNumberRangeDefinition?.Id;\n refreshBankStatementNumberRange(storage, rangeId);\n }\n};\n\nfunction onAfterCreateBankStatementItems(storage: FormStorage): void {\n calculateAndStoreTransactionCount(storage);\n recalculateBalance(storage);\n\n // set DateFrom to the last transaction date if DateFrom has not been changed by user\n // https://solitea-cz.atlassian.net/browse/DEV-28739\n const transactions = storage.data.entity.Transactions;\n\n if (storage.data.bindingContext.isNew() && transactions?.length) {\n const newest = transactions.reduce(function(prev: IBankTransactionEntity, current: IBankTransactionEntity) {\n return prev.DateBankTransaction > current.DateBankTransaction ? prev : current\n })?.DateBankTransaction;\n\n if (newest && !storage.isDirty(storage.data.bindingContext.navigate(BankStatementEntity.DateFrom))) {\n storage.setValueByPath(BankStatementEntity.DateFrom, newest);\n onDateFromChange(storage, newest);\n }\n }\n\n storage.setBusy(false);\n // refresh file upload component too (this refresh full page)\n storage.refresh(true);\n}\n\n/**\n * Function applies bank statement attachment to BS - could be used by clicking context action in attachments file view\n * or using \"add from file\" button under the SmartFastEntryList under the form.\n */\nexport async function handleApplyBankStatementAttachment(storage: FormStorage, file: IFileMetadataEntity): Promise {\n const { entity } = storage.data;\n const bankAccId = entity.BankAccount?.Id;\n\n const fileExtension = getFileNameExtension(file?.Name);\n const fileMime = fileNameToMime(fileExtension);\n const isCsv = isFileCsv(fileMime);\n\n if (isCsv) {\n const csvFile = await FileStorage.get(file.Id);\n storage.setCustomData({ csvFile, uploadCsv: false });\n storage.refresh();\n return true;\n }\n\n const url = `${BANK_STATEMENTS}/DeserializeAttachment/${bankAccId}/${file.Id}`;\n const response = await customFetch(url, {\n method: \"POST\"\n });\n const data = await parseResponse(response);\n\n if (isODataError(data)) {\n return getAlertFromError(data);\n }\n\n if (data?.length > 0) {\n await parseGpc(storage, data);\n onAfterCreateBankStatementItems(storage);\n }\n\n return true;\n}\n\nexport const getTransactionsRender = (args: IGroupRenderFn): React.ReactElement => {\n const storage = args.storage as FormStorage;\n const isNew = storage.data.bindingContext.isNew();\n\n const _fileInput = React.createRef();\n\n const _uploadFileToAttachments = async (file: File) => {\n const batch: BatchRequest = storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n const attachBc = storage.data.bindingContext.navigate(\"Attachments\");\n const queryableEntity = isNew ? null : batch.fromPath(attachBc.toString());\n\n try {\n const metadata = await FileStorage.upload({ file, name: file.name });\n const attachments = [...storage.data.entity.Attachments || []];\n\n const attachment: IEntityAttachmentEntity = {\n File: metadata\n };\n\n if (isNew) {\n attachment.Id = attachment.File.Id;\n attachments.push(attachment);\n // unsaved\n storage.setValue(attachBc, attachments);\n } else {\n queryableEntity.create(attachment);\n\n const batchResponse = await batch.execute();\n const result = batchResponse[0];\n if (isBatchResultOk(result)) {\n attachments.push(result.body.value);\n\n storage.setValueToEntityAndOrigEntity(attachBc, attachments);\n } else {\n showError(storage, i18next.t(\"Banks:Statements.UnableToAttach\"), (result.body as ODataError)?._message);\n }\n }\n } catch (e) {\n showError(storage, i18next.t(\"Banks:Statements.UnableToAttach\"), e.message);\n } finally {\n storage.clearEmptyLineItems(\"Transactions\");\n }\n };\n\n const handleUpload = async (event: React.ChangeEvent) => {\n const file = event.target.files[0];\n const accId = storage.data.entity?.BankAccount?.Id;\n\n const fileExtension = getFileNameExtension(file?.name);\n const fileMime = fileNameToMime(fileExtension);\n const isCsv = isFileCsv(fileMime);\n\n try {\n if (isCsv) {\n storage.setCustomData({ csvFile: file, uploadCsv: true });\n storage.refresh(true);\n return;\n }\n\n const companyId = storage.context.getCompany().Id;\n const url = `${BANK_STATEMENTS}/DeserializeTransactions/${accId}?CompanyId=${companyId}`;\n const items = await FileStorage.upload({\n file,\n url,\n name: file.name\n }) as IBankTransactionEntity[];\n\n if (items?.length) {\n await parseGpc(storage, items);\n await _uploadFileToAttachments(file);\n\n onAfterCreateBankStatementItems(storage);\n }\n\n } catch (error) {\n showError(storage, i18next.t(\"Banks:Transactions.UploadError\"), getUploadErrorMessage(error));\n } finally {\n (storage as FormStorage).setBusy(false);\n storage.refresh(true);\n }\n };\n\n const handleCustomActionButtonClick = () => {\n _fileInput.current.click();\n };\n\n const _handleAction = (event: ISmartFastEntriesActionEvent) => {\n if (event.actionType === ActionType.Custom) {\n handleCustomActionButtonClick();\n } else {\n if (event.actionType !== ActionType.Reorder) {\n const orderedItem = event.affectedItems[0];\n const item = event.items.find(i => i.Id === orderedItem.Id || i[BindingContext.NEW_ENTITY_ID_PROP] === orderedItem[BindingContext.NEW_ENTITY_ID_PROP]);\n const isAdd = event.actionType === ActionType.Add;\n const isClone = event.actionType === ActionType.Clone;\n\n if (isAdd || isClone) {\n delete item.PostedStatus;\n delete item.PostedStatusCode;\n delete item.ClearedStatus;\n delete item.ClearedStatusCode;\n delete item.PaymentStatus;\n delete item.PaymentStatusCode;\n delete item.Lock;\n }\n\n if (isClone) {\n delete item[BindingContext.METADATA_KEY];\n delete item.NumberOurs;\n }\n }\n\n args.props.onAction?.(event);\n }\n };\n\n const _canUpload = () => {\n return !!args.props.storage.data.entity.BankAccount?.Id;\n };\n\n const handleSettingsCancel = () => {\n args.storage.setCustomData({ csvFile: null });\n args.storage.refresh();\n };\n\n const handleUploadFromSettingsScreen = async (csvArgs: IUploadArgs) => {\n const entity = args.storage.data.entity as IBankStatementEntity;\n const transactions = await parseTransactions(csvArgs.transformedRows, csvArgs.dateFormat, args.storage.oData);\n let maxId = (getNewItemsMaxId(entity.Transactions) || 0) + 1;\n\n await assignExchangeRatesToTransactions(transactions, entity.BankAccount.TransactionCurrencyCode as CurrencyCode, args.storage.context);\n\n if (!entity.Transactions) {\n args.storage.data.entity.Transactions = [];\n }\n for (const trans of transactions) {\n const id = maxId++;\n const newEntity = BindingContext.createNewEntity(id, trans);\n entity.Transactions.push(newEntity);\n\n // for saving purposes we have to make this items 'dirty'\n storage.setDirty(storage.data.bindingContext.navigate(`Transactions(${BindingContext.NEW_ENTITY_ID_PROP}=${id})`));\n }\n if (storage.getCustomData().uploadCsv) {\n await _uploadFileToAttachments(storage.getCustomData().csvFile);\n }\n // recalculate\n onAfterCreateBankStatementItems(storage);\n };\n\n const isStatementDialog = (args.storage as FormStorage).getCustomData().isStatementDialog;\n\n return <>\n {\n return !args.props.isReadOnly && !isTransactionDisabled(_args, _args.bindingContext);\n }}\n isTheOnlyItemRemovable={args.props.isTheOnlyItemRemovable}\n useLabelWrapping\n groupId={args.groupId}\n canAdd\n canReorder\n order=\"Order\"\n showLineNumbers={args.props.showLineNumbers}\n onAction={_handleAction}\n columns={args.props.columns}\n customActionButtons={isStatementDialog ? null : [{\n id: \"upload\",\n isDisabled: !_canUpload() || args.props.storage.isDisabled || args.props.storage.data.locked,\n title: args.storage.t(\"Banks:Statements.AddFromFile\")\n }]}\n onBlur={args.props.onBlur}/>\n \n {storage.getCustomData().csvFile &&\n \n \n \n }\n ;\n};\n\n\nexport const refreshExchangesRates = async (storage: FormStorage, currencyCode: CurrencyCode): Promise => {\n const transactions = storage.data.entity.Transactions || [];\n for (const transaction of transactions) {\n delete transaction.ExchangeRatePerUnit;\n }\n await assignExchangeRatesToTransactions(transactions, currencyCode, storage.context);\n storage.refresh();\n};\n\nexport async function getBankAccountBalanceForDate(oData: OData, context: IAppContext, date: Date, bankAccountId: TEntityKey, statementId?: number): Promise {\n const batch: BatchRequest = oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n batch.getEntitySetWrapper(EntitySetName.CompanyBankAccounts).get(bankAccountId);\n\n const formattedDate = transformToODataString(date, ValueType.Date);\n const filterForOlderStatements = statementId ? `${BankStatementEntity.DateFrom} lt ${formattedDate} OR (${BankStatementEntity.DateFrom} eq ${formattedDate} AND ${BankStatementEntity.Id} lt ${statementId})`\n : `${BankStatementEntity.DateFrom} le ${formattedDate}`;\n batch.getEntitySetWrapper(EntitySetName.BankStatements).query()\n .filter(`BankAccount/Id eq ${bankAccountId} AND (${filterForOlderStatements})`)\n .groupBy(\"BankAccount/Id\")\n .aggregate(\"TransactionsTurnover with sum as TransactionsTurnover\");\n\n const batchResponse = await batch.execute();\n\n const bankAccount = (isBatchResultOk(batchResponse[0]) ? batchResponse[0].body.value : null) as ICompanyBankAccountEntity;\n let initialBalance;\n if (isCashBasisAccountingCompany(context)) {\n initialBalance = bankAccount?.InitialTransactionBalance ?? 0;\n } else {\n // we need to get initial Balance from JournalEntries\n const bankAccountAnalyticNumber = `${BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX}${bankAccount.BalanceSheetAccountNumberSuffix}`;\n const res = await oData.getEntitySetWrapper(EntitySetName.CompanySettings).query()\n .select(CompanySettingEntity.Id)\n .expand(CompanySettingEntity.InitialAccountBalances, (query) => {\n query.filter(`${InitialAccountBalanceEntity.Number} eq '${bankAccountAnalyticNumber}'`)\n .select(InitialAccountBalanceEntity.InitialTransactionBalance, InitialAccountBalanceEntity.Number);\n })\n .top(1)\n .fetchData();\n const companySettings = (res.value as ICompanySettingEntity[])[0];\n\n initialBalance = companySettings.InitialAccountBalances?.[0]?.InitialTransactionBalance ?? 0;\n }\n const [summaryStatement] = (isBatchResultOk(batchResponse[1]) ? batchResponse[1].body.value : null) as IBankStatementEntity[];\n\n return initialBalance + (summaryStatement?.TransactionsTurnover ?? 0);\n}\n","import { getFileNameExtension, isFileCsvOrGpc } from \"@components/fileUploader/File.utils\";\nimport { isValidDate } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ifAny, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n CurrencyDef,\n ExchangeRatePerUnit,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n NoteFieldDef,\n SymbolConstantDef,\n SymbolSpecificDef,\n SymbolVariableDef\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n ISmartBankAccountFilterCustomData\n} from \"@components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n BankStatementEntity,\n BankTransactionEntity,\n EntitySetName,\n EntityTypeName,\n IBankStatementEntity,\n IBankTransactionEntity,\n IFileMetadataEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, CurrencyCode, PostedStatusCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { createBankAccountsItems, generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n BankAccountType,\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n Sort,\n TextAlign,\n ToolbarItemType,\n ValidatorType\n} from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport CurrencyType, { formatCurrency, formatCurrencyVariableDecimals } from \"../../../types/Currency\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { currencyScaleParser } from \"../../../types/Number\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { addBankAccountTableDefs } from \"../../documents/DocumentCommonDefs\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { removeInactiveAccounts } from \"../bankAccounts/BankAccounts.utils\";\nimport { IBankStatementsCustomData, paymentDocDateValidator } from \"../bankTransactions/BankTransactions.utils\";\nimport { getTransactionsRender, isFieldTransactionDisabled } from \"./BankStatements.utils\";\nimport BankStatementsFormView from \"./BankStatementsFormView\";\n\nconst accountAdditionalFields = [{\n id: \"TransactionCurrency\"\n}, {\n id: \"BankCode\"\n}, {\n id: \"AbaNumber\"\n}, {\n id: \"Country\"\n}, {\n id: \"IBAN\"\n}];\n\nconst hasPostedTransaction = (args: IGetValueArgs): boolean => {\n const transactions = args.data.Transactions || [];\n\n const postedTransaction = transactions.find((t: IBankTransactionEntity) => {\n return t.ClearedStatusCode === ClearedStatusCode.Cleared || t.ClearedStatusCode === ClearedStatusCode.PartiallyCleared;\n });\n\n return !!postedTransaction;\n};\n\nexport const APPLY_BANKFILE_IMPORT = \"applybankfileimport\";\n\nexport const bankDependentFields = [\n {\n from: { id: \"BankStatementNumberRangeDefinition\" },\n to: { id: \"BankAccount/BankStatementNumberRangeDefinition\" }\n },\n { from: { id: \"TransactionCurrency\" }, to: { id: \"BankAccount/TransactionCurrency\" } },\n { from: { id: \"BankCode\" }, to: { id: \"BankAccount/BankCode\" } },\n { from: { id: \"AbaNumber\" }, to: { id: \"BankAccount/AbaNumber\" } },\n { from: { id: \"Country\" }, to: { id: \"BankAccount/Country\" } },\n { from: { id: \"IBAN\" }, to: { id: \"BankAccount/IBAN\" } },\n { from: { id: \"Name\" }, to: { id: \"BankAccount/Name\" } },\n { from: { id: \"PaymentServiceID\" }, to: { id: \"BankAccount/PaymentServiceID\" } }\n];\n\nexport const OpeningBalancePath = BindingContext.localContext(\"OpeningBalance\");\nexport const ClosingBalancePath = BindingContext.localContext(\"ClosingBalance\");\n\nconst getBankStatementTransactionCurrency = ({ BankAccount }: IBankStatementEntity, context: IAppContext): CurrencyCode =>\n (BankAccount?.TransactionCurrencyCode ?? BankAccount?.TransactionCurrency?.Code ?? getCompanyCurrency(context)) as CurrencyCode;\n\nconst bankStatementAmountSummaryFormatter = (value: TValue, args: IFormatOptions) => {\n const currency = getBankStatementTransactionCurrency(args.entity, args.context);\n return formatCurrencyVariableDecimals((value as number) ?? 0, currency);\n};\n\nconst bankStatementAmountTableFormatter = (value: TValue, args: IFormatOptions) => {\n const currency = getBankStatementTransactionCurrency(args.entity, args.context);\n return formatCurrency((value as number) ?? 0, currency);\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"NumberOurs\",\n \"DateFrom\",\n \"TransactionsCount\",\n \"TransactionsTurnover\",\n \"BankAccount/AccountNumber\",\n \"BankAccount/Name\"\n ],\n filterDefinition: {\n NumberOurs: {},\n Note: {},\n NumberTheirs: {},\n DateFrom: {},\n \"BankAccount/Name\": {\n label: i18next.t(\"Banks:Statements.AccountName\")\n },\n ...getCommonFilterDefs(),\n TransactionsCount: {},\n TransactionsTurnover: {},\n CreditTurnover: {\n formatter: bankStatementAmountTableFormatter,\n filter: {\n groupByProperties: [\n \"BankAccount/TransactionCurrencyCode\"\n ]\n }\n },\n DebitTurnover: {\n formatter: bankStatementAmountTableFormatter,\n filter: {\n groupByProperties: [\n \"BankAccount/TransactionCurrencyCode\"\n ]\n }\n }\n }\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.BankStatement}Table`,\n lockProperty: BankStatementEntity.Locks,\n initialSortBy: [\n { id: \"DateFrom\", sort: Sort.Desc }\n ],\n columns: [\n \"NumberOurs\",\n \"BankAccount\",\n \"BankAccount/Name\",\n \"TransactionsCount\",\n \"TransactionsTurnover\",\n \"DateFrom\"\n ],\n filter: \"IsVisible eq true\",\n columnDefinition: {\n Note: {},\n NumberTheirs: {},\n ...getCommonTableColumnsDefs(),\n NumberOurs: {\n additionalProperties: [{ id: \"/Transactions\" }]\n },\n BankAccount: {\n additionalProperties: accountAdditionalFields.concat({ id: \"AccountNumber\" }, { id: \"Name\" }, { id: \"CompanyBankAccountTypeCode\" }, { id: \"PaymentServiceID\" }),\n formatter: generalBankAccountFormatter,\n label: i18next.t(\"Banks:Statements.AccountNumber\")\n },\n \"BankAccount/Name\": {\n label: i18next.t(\"Banks:Statements.AccountName\")\n },\n DateFrom: {},\n TransactionsCount: {},\n TransactionsTurnover: {\n additionalProperties: [{ id: \"/BankAccount/TransactionCurrencyCode\" }],\n formatter: (val: TValue, args?: IFormatOptions) => {\n const currency = args.item?.BankAccount?.TransactionCurrencyCode;\n return formatCurrency(val as number, currency);\n }\n },\n CreditTurnover: {\n formatter: bankStatementAmountTableFormatter,\n additionalProperties: [\n { id: \"/BankAccount/TransactionCurrency\" }\n ]\n },\n DebitTurnover: {\n formatter: bankStatementAmountTableFormatter,\n additionalProperties: [\n { id: \"/BankAccount/TransactionCurrency\" }\n ]\n }\n },\n title: i18next.t(\"Banks:Statements.Title\")\n };\n\n const summary: ISummaryItem[] = [\n getNumberOursSummaryDef(\"Banks\"),\n {\n id: BindingContext.localContext(\"TransactionCount\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n return args.storage.getCustomData().transactionCount || 0;\n },\n label: i18next.t(\"Banks:Statements.TransactionsCount\")\n }, {\n id: \"CreditTurnover\",\n label: i18next.t(\"Banks:Statements.CreditTurnover\"),\n updateFromLiveValue: true,\n formatter: bankStatementAmountSummaryFormatter,\n color: \"C_SEM_text_good\"\n }, {\n id: \"DebitTurnover\",\n label: i18next.t(\"Banks:Statements.DebitTurnover\"),\n updateFromLiveValue: true,\n formatter: bankStatementAmountSummaryFormatter,\n color: \"C_SEM_text_bad\"\n }, {\n id: OpeningBalancePath,\n label: i18next.t(\"Banks:Statements.OpeningBalance\"),\n textAlign: TextAlign.Right,\n updateFromLiveValue: true,\n formatter: (value: TValue, args: IFormatOptions) => {\n const { initialBalance } = args.storage.getCustomData();\n return bankStatementAmountSummaryFormatter(initialBalance, args);\n }\n }, {\n id: ClosingBalancePath,\n label: i18next.t(\"Banks:Statements.ClosingBalance\"),\n textAlign: TextAlign.Right,\n updateFromLiveValue: true,\n additionalProperties: [{ id: \"TransactionsTurnover\" }],\n formatter: (value: TValue, args: IFormatOptions) => {\n const statementInitialBalance = args.storage.getCustomData().initialBalance ?? 0;\n const transactionsTurnover = args.storage.getEntity().TransactionsTurnover ?? 0;\n return bankStatementAmountSummaryFormatter(statementInitialBalance + transactionsTurnover, args);\n }\n }\n ];\n\n const getDisabledText = (args: IGetValueArgs) => {\n const row = args.storage.getValue(args.bindingContext.getParent());\n const isLocked = !!row?.Lock?.Id;\n\n if (isLocked) {\n return args.storage.t(\"Banks:Transactions.TransactionLocked\");\n }\n\n const isPosted = row?.PostedStatus?.Code === PostedStatusCode.Posted;\n if (isPosted) {\n return args.storage.t(\"Banks:Transactions.IsPosted\");\n }\n\n return null;\n };\n\n const isPassiveAccount = (args: IGetValueArgs) => {\n return args.storage.data.entity.BankAccount?.IsActive === false;\n };\n\n const transactionDisabledProps = {\n isDisabled: isFieldTransactionDisabled,\n disabledText: getDisabledText\n };\n\n const isDialogStatement = (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n return storage.getCustomData().isStatementDialog;\n };\n\n const getDisabledBankAccountText = (args: IGetValueArgs) => {\n if (isPassiveAccount(args)) {\n return i18next.t(\"Banks:Transactions.BankAccIsNotActive\");\n }\n\n return i18next.t(\"Banks:Transactions.HasPostedTransaction\");\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.BankStatement}Form`,\n summary,\n files: AttachmentsDef,\n translationFiles: getDefinitions.translationFiles,\n formControl: BankStatementsFormView,\n lockProperty: BankStatementEntity.Locks,\n isDeletable: true,\n getCustomAttachmentFileActions: (file: IFileMetadataEntity) => {\n const firstFileExtension = getFileNameExtension(file?.Name);\n\n if (isFileCsvOrGpc(firstFileExtension)) {\n return [{\n id: APPLY_BANKFILE_IMPORT,\n label: i18next.t(\"Banks:Statements.ApplyImportFile\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"Arrow\"\n }];\n }\n return null;\n },\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Banks:Statements:NewFormTitle\"), storage.data.entity?.NumberOurs),\n title: \"Banks:Statements.FormTitle\",\n additionalProperties: [...NumberRangeAdditionalProperties, { id: \"Transactions/TransactionAmount\" },\n { id: \"Transactions/SymbolVariable\" }, { id: \"Transactions/RemittanceInformation\" },\n { id: \"Transactions/DateBankTransaction\" }, { id: `Transactions/${BankStatementEntity.Locks}` }, { id: \"Transactions/PostedStatus\" }, { id: \"Transactions/PostedStatusCode\" },\n // load properties that are add in BankStatementFormView.onBeforeSave,\n // so that during saving, compareEntities can recognize changed properties correctly,\n // and won't create unnecessary PATCH requests when not needed\n { id: \"Transactions/Amount\" }, { id: \"Transactions/BankTransactionTypeCode\" },\n { id: \"Transactions/ClearedStatusCode\" },\n { id: \"Transactions/Company\" }, { id: \"Transactions/TransactionAmount\" },\n ...AttachmentsAdditionalProperties,\n { id: \"BankAccount/BankStatementNumberRangeDefinition\" },\n { id: `${BankStatementEntity.Locks}/CreatedBy` },\n { id: `${BankStatementEntity.Locks}/Type` }\n ],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"Banks\"),\n BankAccount: {\n label: i18next.t(\"Banks:Statements.AccountNumber\"),\n isDisabled: ifAny(hasPostedTransaction, isPassiveAccount),\n isReadOnly: isDialogStatement,\n disabledText: getDisabledBankAccountText,\n additionalProperties: accountAdditionalFields.concat([{ id: \"Name\" }, { id: \"PaymentServiceID\" }, { id: \"IsActive\" }, { id: \"Currency/MinorUnit\" }]),\n type: FieldType.ComboBox,\n width: BasicInputSizes.XXL,\n affectedFields: [{\n id: \"Transactions\"\n }, {\n id: \"BankAccount/TransactionCurrency\"\n }, {\n id: BindingContext.localContext(\"Sum\")\n }],\n fieldSettings: {\n preloadItems: true,\n groups: [\n { id: BankAccountType.Account },\n { id: BankAccountType.ABA },\n { id: BankAccountType.IBANOnly },\n {\n id: BankAccountType.Service,\n title: i18next.t(\"Banks:Accounts.OtherServices\")\n }\n ],\n localDependentFields: bankDependentFields,\n displayName: \"AccountNumber\",\n shouldDisplayAdditionalColumns: true,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const accounts = (args.storage as FormStorage).context.getCompanyBankAccounts();\n const items = createBankAccountsItems({ bankAccounts: accounts, addCurrency: true });\n const statement = (args.storage.data.entity as IBankStatementEntity);\n const accountId = statement.BankAccount?.Id;\n\n return removeInactiveAccounts(items, accountId);\n }\n },\n formatter: generalBankAccountFormatter,\n columns: [{\n id: \"AccountNumber\",\n formatter: generalBankAccountFormatter,\n additionalProperties: accountAdditionalFields.concat([\n { id: \"Name\" }, { id: \"BankStatementNumberRangeDefinition\" },\n { id: \"PaymentServiceID\" }, { id: \"IsActive\" }, { id: \"CompanyBankAccountTypeCode\" }\n ])\n }, {\n id: \"Name\"\n }]\n },\n \"BankAccount/TransactionCurrency\": {\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n fieldSettings: {\n displayName: \"Code\",\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n isReadOnly: true,\n additionalProperties: [{ id: \"Name\" }],\n columns: [\n { id: \"Code\" },\n { id: \"Name\" }\n ]\n },\n DateFrom: {\n isDisabled: hasPostedTransaction,\n disabledText: i18next.t(\"Banks:Transactions.HasPostedTransaction\"),\n width: \"130px\",\n defaultValue: () => {\n return getUtcDate();\n },\n type: FieldType.Date\n },\n \"Transactions/NumberOurs\": {\n isReadOnly: true,\n width: BasicInputSizes.L,\n useForValidation: false,\n formatter: (val: TValue, args?: IFormatOptions)=> {\n if (!val) {\n const NumberOurs = args.storage.getValueByPath(BankStatementEntity.NumberOurs);\n const Order = args.storage.getValue(args.bindingContext.getParent().navigate(BankTransactionEntity.Order));\n return `${NumberOurs}-${(Order ?? \"\").toString().padStart(6, \"0\")}`;\n }\n return val?.toString();\n }\n },\n \"Transactions/DateBankTransaction\": {\n ...transactionDisabledProps,\n fieldSettings: {\n workDate: (args: IGetValueArgs, obj: TRecordAny) => {\n const rootDate = args.storage.data.entity.DateFrom;\n return isValidDate(rootDate) ? rootDate : getUtcDate();\n }\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: paymentDocDateValidator\n }\n },\n width: \"150px\"\n },\n \"Transactions/TransactionCurrency\": {\n isRequired: false,\n clearIfInvisible: false,\n isReadOnly: true\n },\n \"Transactions/TransactionAmount\": {\n ...transactionDisabledProps,\n width: FastEntryInputSizes.S,\n label: i18next.t(\"Banks:Transactions.Amount\"),\n affectedFields: [{ id: BindingContext.localContext(\"Sum\") }],\n parser: (value: TValue, args: IFormatOptions) => {\n return currencyScaleParser(value as string, args.storage.data.entity.BankAccount?.TransactionCurrency);\n },\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n const currency = getBankStatementTransactionCurrency(args.storage.data.entity, args.context);\n return CurrencyType.getCurrencyUnit(currency);\n }\n }\n },\n \"Transactions/Amount\": {\n ...transactionDisabledProps,\n useForValidation: false,\n customizationData: {\n useForCustomization: false\n },\n isRequired: false\n },\n \"Transactions/Currency\": {\n ...CurrencyDef,\n ...transactionDisabledProps,\n customizationData: {\n useForCustomization: false\n },\n defaultValue: args => getCompanyCurrency(args.context)\n },\n \"Transactions/ExchangeRatePerUnit\": {\n ...ExchangeRatePerUnit,\n defaultValue: \"\",\n ...transactionDisabledProps,\n width: FastEntryInputSizes.S,\n label: i18next.t(\"Document:Form.CurrencyRate\"),\n isVisible: (args: IGetValueArgs) => {\n const currency = args.storage.data.entity.BankAccount?.TransactionCurrency?.Code;\n return currency !== getCompanyCurrency(args.context);\n }\n },\n \"Transactions/RemittanceInformation\": {\n ...transactionDisabledProps,\n width: BasicInputSizes.XXL\n },\n \"Transactions/PaymentInformation\": {\n ...transactionDisabledProps\n },\n \"Transactions/SymbolVariable\": {\n ...SymbolVariableDef,\n ...transactionDisabledProps\n },\n [createPath(BankStatementEntity.Transactions, BankTransactionEntity.SymbolSpecific)]: {\n ...SymbolSpecificDef,\n ...transactionDisabledProps\n },\n [createPath(BankStatementEntity.Transactions, BankTransactionEntity.SymbolConstant)]: {\n ...SymbolConstantDef,\n ...transactionDisabledProps\n },\n Note: NoteFieldDef,\n NumberTheirs: {},\n \"Transactions/BankInternalId\": {\n ...transactionDisabledProps\n },\n \"Transactions/PaymentType\": {\n ...transactionDisabledProps,\n width: BasicInputSizes.L\n },\n \"Transactions/BankAccountDescription\": {\n ...transactionDisabledProps,\n width: BasicInputSizes.L\n },\n \"Transactions/BusinessPartner/Name\": {\n label: i18next.t(\"BusinessPartner:FormTitle\"),\n isReadOnly: true,\n isRequired: false\n },\n \"Transactions/BankAccount/AccountNumber\": {\n isReadOnly: true,\n additionalProperties: [{ id: \"/Transactions/BankAccount/BankCode\" }],\n formatter: (val: TValue, args?: IFormatOptions)=> {\n const item = args.storage.getValue(args.bindingContext.getParent());\n const bankCode = item?.BankCode;\n return isDefined(val) && isDefined(bankCode)? `${val}/${bankCode}`: null;\n }\n },\n },\n groups: [{\n id: \"noteGroup\",\n title: i18next.t(\"Common:General.Note\"),\n rows: [[{ id: \"Note\" }]]\n }, {\n id: \"mainGroup\",\n title: i18next.t(\"Common:General.Information\"),\n rows: [[{ id: \"DateFrom\" }, { id: \"BankAccount\" }, { id: \"BankAccount/TransactionCurrency\" }]]\n }, {\n id: \"Transactions\",\n isVisible: (args: IGetValueArgs) => {\n const isNew = args.storage.data.bindingContext.isNew();\n const hideTransactions = (args.storage as FormStorage).getCustomData().hideTransactions;\n // if we open this form in bank transaction pairing dialog (available only for creating new) we hade transactions\n return !(isNew && hideTransactions);\n },\n title: i18next.t(\"Banks:AutomaticPairingDialog.BankTransactionsPairing\"),\n lineItems: {\n isReadOnly: isPassiveAccount,\n additionalFields: [{ id: \"Amount\" }, { id: \"NumberOurs\" }],\n collection: \"Transactions\",\n showLineNumbers: true,\n isTheOnlyItemRemovable: true,\n order: \"Order\",\n render: getTransactionsRender,\n columns: [\n { id: \"DateBankTransaction\" }, { id: \"SymbolVariable\" }, { id: \"TransactionAmount\" }, { id: \"ExchangeRatePerUnit\" }, { id: \"RemittanceInformation\" }\n ]\n }\n }]\n };\n\n const definition: IDefinition = {\n entitySet: EntitySetName.BankStatements,\n table,\n form\n };\n\n addBankAccountTableDefs(definition);\n\n return definition;\n};\n\ngetDefinitions.translationFiles = [\"Banks\", \"Document\", \"BusinessPartner\"];\nsetDefByEntityType(EntityTypeName.BankStatement, getDefinitions);","import { AlertPosition } from \"@components/alert/Alert\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { Button, ButtonGroup } from \"@components/button\";\nimport { isValidDate } from \"@components/inputs/date/utils\";\nimport {\n ISmartBankAccountFilterCustomData\n} from \"@components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n BankStatementEntity,\n BankTransactionEntity,\n IBankStatementEntity,\n IBankTransactionEntity,\n IFileMetadataEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BankTransactionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { DEFAULT_SCALE_CURRENCY_VALUE } from \"../../../types/Number\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { loadExchangeRate, setLockBreadcrumbs } from \"../../documents/Document.utils\";\nimport { canChangeNumberRange, loadAndStoreRanges } from \"../../numberRange/NumberRange.utils\";\nimport { getCorrent4Digit } from \"../bankTransactions/BankTransactions.utils\";\nimport {\n calculateAndStoreTransactionCount,\n getBankAccountBalanceForDate,\n handleApplyBankStatementAttachment,\n onDateFromChange,\n recalculateBalance,\n refreshBankStatementNumberRange,\n refreshExchangesRates\n} from \"./BankStatements.utils\";\nimport { APPLY_BANKFILE_IMPORT, ClosingBalancePath, OpeningBalancePath } from \"./BankStatementsDef\";\n\ninterface IProps extends IFormViewProps, WithAlert {\n accountId?: number;\n}\n\nclass BankStatementsFormView extends FormViewForExtend {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.alert !== nextProps.alert;\n }\n\n shouldDisableSaveButton = (): boolean => {\n return this.props.storage.isDisabled || this.props.storage.data.entity[BankStatementEntity.Locks]?.length > 0;\n };\n\n onAfterLoad = async () => {\n const storage = this.props.storage;\n\n\n await loadAndStoreRanges(storage, true);\n\n if (storage.data.bindingContext.isNew()) {\n if (!this.entity.Transactions || this.entity.Transactions.length === 0) {\n addNewLineItem(storage, \"Transactions\");\n storage.data.entity.Transactions[0].DateBankTransaction = getUtcDate();\n }\n\n const accounts = (storage as FormStorage).context.getCompanyBankAccounts(true) || [];\n const defAcc = this.props.accountId ? accounts.find(acc => acc.Id === this.props.accountId) : accounts.find(acc => acc.IsDefault);\n\n if (defAcc) {\n this.handleChange({\n value: defAcc.Id,\n bindingContext: storage.data.bindingContext.navigate(\"BankAccount\"),\n triggerAdditionalTasks: true,\n additionalData: defAcc\n });\n refreshBankStatementNumberRange(this.props.storage, defAcc?.BankStatementNumberRangeDefinition?.Id);\n }\n } else {\n // call only for saved entities, otherwise handleChange ^^^ will trigger the call\n await this.getInitialBalance();\n }\n calculateAndStoreTransactionCount(storage);\n\n return super.onAfterLoad();\n };\n\n async getInitialBalance() {\n const { storage } = this.props;\n const { DateFrom, BankAccount, Id } = storage.data.entity;\n if (!DateFrom || !BankAccount?.Id) {\n return;\n }\n const balance = await getBankAccountBalanceForDate(storage.oData, storage.context, DateFrom, BankAccount.Id, Id);\n storage.setCustomData({ initialBalance: balance });\n storage.addActiveField(storage.data.bindingContext.navigate(OpeningBalancePath));\n storage.addActiveField(storage.data.bindingContext.navigate(ClosingBalancePath));\n }\n\n handleCustomFileAction = async ({\n file, action\n }: { file: IFileMetadataEntity, action: string, attachId: number }) => {\n if (action === APPLY_BANKFILE_IMPORT) {\n const response = await handleApplyBankStatementAttachment(this.props.storage, file);\n\n if (response !== true) {\n this.props.setAlert(response);\n }\n this.forceUpdate();\n }\n };\n\n componentDidMount(): void {\n super.componentDidMount();\n this.props.storage.emitter.on(ModelEvent.CustomFileAction, this.handleCustomFileAction);\n\n this.registerHeader();\n }\n\n componentWillUnmount() {\n this.props.storage.emitter.off(ModelEvent.CustomFileAction, this.handleCustomFileAction);\n super.componentWillUnmount();\n }\n\n componentDidUpdate(): void {\n this.registerHeader();\n }\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const numberOursBc = this.props.storage.data.bindingContext.navigate(\"NumberOurs\");\n this.props.storage.addCustomRef(this._refHeader.current, numberOursBc);\n }\n };\n\n handleDateBankBlur = async (args: ISmartFieldBlur) => {\n if (args.bindingContext.getPath() === \"DateBankTransaction\") {\n const currencyCode = this.entity.BankAccount?.TransactionCurrency?.Code;\n const date = this.props.storage.getValue(args.bindingContext);\n const rate = await loadExchangeRate(this.props.storage, currencyCode, date);\n if (rate) {\n const bc = args.bindingContext.getParent().navigate(\"ExchangeRatePerUnit\");\n this.props.storage.clearAndSetValue(bc, rate);\n this.props.storage.refreshFields();\n }\n }\n };\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n this.handleDateBankBlur(args);\n await this.props.storage.handleBlur(args);\n this.props.storage.refreshFields();\n };\n\n setBreadcrumbs = (): void => {\n const { storage } = this.props;\n const title = storage.data.definition.getItemBreadCrumbText(storage);\n setLockBreadcrumbs({\n storage,\n title,\n onBeforeSave: this.props.onBeforeSave,\n onSaveFail: this.props.onSaveFail,\n onTableRefreshNeeded: this.props.onTableRefreshNeeded,\n onAfterSave: this.props.onAfterSave,\n context: this.context\n });\n };\n\n handleDateFromChange = (args: ISmartFieldChange) => {\n if (args.bindingContext.getPath() === \"DateFrom\" && args.triggerAdditionalTasks) {\n onDateFromChange(this.props.storage, args.value as Date);\n }\n };\n\n handleBankAccountChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n if (e.bindingContext.getPath() === \"BankAccount\" && e.triggerAdditionalTasks) {\n if (canChangeNumberRange(storage)) {\n refreshBankStatementNumberRange(this.props.storage, e.additionalData?.BankStatementNumberRangeDefinition?.Id);\n }\n const oldCurrency = this.entity.BankAccount?.TransactionCurrency?.Code;\n const newCurrency = e.additionalData.TransactionCurrency?.Code;\n if (newCurrency !== oldCurrency) {\n for (const transaction of storage.data.entity.Transactions || []) {\n transaction.TransactionCurrency = {\n Code: newCurrency\n };\n }\n\n refreshExchangesRates(storage, newCurrency);\n }\n\n const wasSet = this.entity.BankAccount?.Id;\n if (!wasSet) {\n storage.refresh();\n }\n }\n };\n\n handleNumberRangeChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"NumberRange\") {\n this.props.storage.data.entity.NumberRange = e.value ? e.additionalData : null;\n }\n };\n\n handleNumberOursChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === BankStatementEntity.NumberOurs) {\n // replace values of NumberOurs in all transactions\n const { storage } = this.props;\n const { entity, bindingContext } = storage.data;\n if (entity.Transactions) {\n for (const item of bindingContext.iterateNavigation(BankStatementEntity.Transactions, entity.Transactions)) {\n const bc = item.bindingContext.navigate(BankTransactionEntity.NumberOurs);\n const numberOurs = storage.getValue(bc);\n if (numberOurs) {\n const newNumber = numberOurs.replace(/.*-/, `${e.value}-`);\n storage.clearAndSetValue(bc, newNumber);\n }\n }\n }\n storage.emitter.emit(ModelEvent.RecalculateFastEntryList);\n }\n };\n\n\n handleChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n\n this.handleBankAccountChange(e);\n storage.handleChange(e);\n\n this.handleNumberRangeChange(e);\n this.handleNumberOursChange(e);\n\n // after change !\n this.handleDateFromChange(e);\n\n const path = e.bindingContext.getPath();\n // initial balance has probably changed as we are changing BankAccount or Statement Date\n if ([\"BankAccount\", \"DateFrom\"].includes(path) && e.triggerAdditionalTasks) {\n this.getInitialBalance()\n .then(() => storage.refreshFields(true));\n }\n if (path === \"TransactionAmount\") {\n }\n storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n handleLineItemsChange = (args: ISmartFieldChange) => {\n this.props.storage.handleLineItemsChange(args);\n\n if (args.bindingContext.getPath() === \"TransactionAmount\") {\n recalculateBalance(this.props.storage);\n }\n\n const currentTranCount = this.props.storage.data.entity.Transactions?.length || 0;\n const calculatedCount = this.props.storage.getCustomData().transactionCount;\n\n if (currentTranCount !== calculatedCount) {\n calculateAndStoreTransactionCount(this.props.storage);\n this.props.storage.addActiveField(this.props.storage.data.bindingContext.navigate(BindingContext.localContext(\"TransactionCount\")));\n }\n\n this.props.storage.refreshFields();\n };\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n const storage = this.props.storage;\n\n if (ActionType.Add === args.actionType) {\n const items = storage.data.entity.Transactions || [];\n const lastDate = items.reverse().find((item: IBankTransactionEntity) => isValidDate(item.DateBankTransaction))?.DateBankTransaction\n || storage.data.entity.DateFrom;\n\n if (lastDate) {\n args.items[args.items.length - 1].DateBankTransaction = lastDate;\n }\n }\n\n storage.handleLineItemsAction(args);\n\n if ([ActionType.Remove, ActionType.Clone].includes(args.actionType)) {\n recalculateBalance(this.props.storage);\n }\n\n calculateAndStoreTransactionCount(this.props.storage);\n this.props.storage.refresh();\n };\n\n onBeforeSave = () => {\n this.props.storage.clearEmptyLineItems(\"Transactions\");\n\n const entity = cloneDeep(this.props.storage.data.entity) as IBankStatementEntity;\n\n // for new items add currency\n const transactionCurrencyCode = entity.BankAccount?.TransactionCurrencyCode;\n for (let i = 0; i < (entity.Transactions || []).length; i++) {\n const transaction = entity.Transactions[i];\n if (!transaction.TransactionCurrencyCode) {\n transaction.TransactionCurrencyCode = transactionCurrencyCode;\n }\n\n if (!transaction.ExchangeRatePerUnit) {\n transaction.ExchangeRatePerUnit = 1;\n }\n\n if (!transaction.CurrencyCode) {\n transaction.CurrencyCode = getCompanyCurrency(this.props.storage.context);\n }\n\n if (!transaction.Company) {\n transaction.Company = { Id: this.context.getCompany().Id };\n }\n\n const minorUnit = this.entity.BankAccount?.Currency?.MinorUnit ?? DEFAULT_SCALE_CURRENCY_VALUE;\n const formattedAmount = roundToDecimalPlaces(minorUnit, transaction.TransactionAmount * transaction.ExchangeRatePerUnit);\n transaction.Amount = formattedAmount;\n transaction.BankTransactionTypeCode = transaction.TransactionAmount > 0 ? BankTransactionTypeCode.IncomingPayment : BankTransactionTypeCode.OutgoingPayment;\n\n if (!transaction.NumberOurs) {\n const newNumber = i + 1;\n transaction.NumberOurs = `${entity.NumberOurs}-${getCorrent4Digit(newNumber)}`;\n }\n }\n\n return entity;\n };\n\n renderButtons(): React.ReactElement {\n const isInDialog = this.props.storage.getCustomData().isStatementDialog;\n if (isInDialog) {\n return (\n \n \n \n );\n }\n\n return super.renderButtons();\n }\n\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (<>\n {this.renderForm()}\n {this.props.alert}\n );\n }\n}\n\nexport default withPermissionContext(withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom\n})(BankStatementsFormView));","import { EditSimpleIcon } from \"@components/icon\";\nimport { getCommonTableColumnsDefs, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { ICellValueObject } from \"@components/table\";\nimport { DocumentEntity, EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { BankTransactionTypeCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IconSize, Sort } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { getDocumentStatusColumnDefinition } from \"../../documents/DocumentCommonDefs\";\nimport { getDocumentStatusFilterDefinition } from \"../../documents/DocumentDef\";\nimport {\n enhancedDocumentTypeByDDOPPFilterFormatter,\n getEnhancedDocumentTypeByDDOPPDef\n} from \"../../documents/proformaInvoices/ProformaInvoice.utils\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { DocumentStatusLocalPath, StatusEntities } from \"../../reports/CommonDefs\";\nimport { LinkStyledBasic, LinkText } from \"./BankTransactions.styles\";\nimport { IBankCustomData, isPairingActive, isPairingRowReadOnly } from \"./BankTransactions.utils\";\nimport { bankAmountDueFormatter, bankAmountPaidFormatter } from \"./BankTransactionsDef\";\n\nconst handleClickAmount = async (e: React.MouseEvent, storage: Model, item: TRecordAny) => {\n e.preventDefault();\n\n const row = (storage as TSmartODataTableStorage).tableAPI.getRowsArray()?.find(row => row.dataId == item.Id);\n\n storage.setCustomData({\n amountDialogRow: row\n });\n\n storage.refresh();\n};\n\nexport const docOnlyAmountPaidFormatter = (val: TValue, args: IFormatOptions): ICellValueObject => {\n const storage = args.storage as TSmartODataTableStorage;\n const pairedDocuments = storage.getCustomData().pairedDocuments;\n const id = args.item.Id;\n const pairedLink = pairedDocuments?.[id];\n const amount = pairedLink?.Amount ?? 0;\n\n const formattedAmount = formatCurrency(amount, getCompanyCurrency(args.context));\n\n const value = {formattedAmount} ;\n return amountDialogLinkFormatter(value, storage, args.item);\n};\n\nexport const amountDialogLinkFormatter = (value: React.ReactNode, storage: TSmartODataTableStorage, item: TRecordAny): ICellValueObject => {\n const pairedDocuments = storage.getCustomData().pairedDocuments;\n const id = item.Id;\n const pairedLink = pairedDocuments?.[id];\n const isPaired = !!pairedLink;\n const isPairActionActive = isPairingActive(storage as TableStorage);\n\n const isReadOnly = isPairingRowReadOnly(pairedLink, storage, storage.getCustomData().rootStorage);\n const Icon = !isReadOnly ? EditSimpleIcon: null;\n\n return {\n tooltip: \"\",\n value: (\n {\n if (isPaired) {\n handleClickAmount(e, storage, item);\n }\n }}>\n {isPaired && isPairActionActive && Icon &&\n \n }\n \n {value}\n \n \n )\n };\n};\n\nexport const amountPaidFormatter = (val: TValue, args: IFormatOptions): ICellValueObject => {\n const value = bankAmountPaidFormatter(val, args)?.value;\n return amountDialogLinkFormatter(value, args.storage as TSmartODataTableStorage, args.item);\n};\n\nexport const getMasDocPairDef = (context: IAppContext): IDefinition => {\n return getCoreDef(context, BankTransactionTypeCode.Other, false);\n};\n\nconst getCoreDef = (context: IAppContext, type: BankTransactionTypeCode, useAmount = true) => {\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"DocumentType\",\n \"NumberOurs\",\n \"NumberTheirs\",\n \"TransactionAmount\",\n \"TransactionCurrency\",\n \"BusinessPartner\",\n \"ClearedStatus\",\n \"DateDue\",\n \"TransactionAmountToReceive\",\n \"TransactionAmountToPay\",\n \"SymbolVariable\",\n DocumentStatusLocalPath\n ],\n filterDefinition: {\n ...getDocumentStatusFilterDefinition(StatusEntities),\n ...withDisplayName(\"DocumentType\", {\n formatter: enhancedDocumentTypeByDDOPPFilterFormatter\n }),\n NumberOurs: {},\n NumberTheirs: {\n isVisible: type === BankTransactionTypeCode.OutgoingPayment\n },\n TransactionAmount: {},\n ...withDisplayName(\"BusinessPartner\"),\n ...withDisplayName(\"TransactionCurrency\", \"Name\"),\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {},\n TransactionAmountToPay: {},\n TransactionAmountToReceive: {},\n DateDue: {},\n SymbolVariable: {}\n }\n }];\n\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n preventStoreVariant: true,\n id: \"TransactionDocumentPairingSpecialTable\",\n additionalProperties: [{ id: \"TransactionCurrency\" }, { id: \"Currency\" }, { id: \"TransactionAmountToReceive\" }, { id: \"TransactionAmountToPay\" },\n { id: \"ExchangeRatePerUnit\" }, { id: \"Currency\" }, { id: \"Amount\" }, { id: \"TransactionAmount\" }, { id: \"IsTaxDocument\" }, { id: \"PostedStatus\" }],\n columnDefinition: {\n NumberOurs: {},\n NumberTheirs: {},\n DateDue: {},\n PaymentMethodCode: {},\n SymbolVariable: {},\n \"BankAccount/AccountNumber\": {},\n \"BankAccount/BankCode\": {},\n TransactionAmountDue: {\n formatter: bankAmountDueFormatter\n },\n Note: { id: \"Note\" },\n ...getDocumentStatusColumnDefinition(),\n BusinessPartner: {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n ...getCommonTableColumnsDefs(),\n ...getEnhancedDocumentTypeByDDOPPDef(),\n DateIssued: {}\n },\n columns: [\n DocumentEntity.DocumentType,\n DocumentEntity.NumberOurs,\n DocumentEntity.TransactionAmountDue,\n ...(type === BankTransactionTypeCode.OutgoingPayment ? [DocumentEntity.NumberTheirs] : []),\n DocumentStatusLocalPath,\n DocumentEntity.SymbolVariable,\n DocumentEntity.BusinessPartner,\n DocumentEntity.Note\n ],\n initialSortBy: [{ id: DocumentEntity.DateCreated, sort: Sort.Desc }],\n title: i18next.t(\"Document:Pair.PairedDocument\")\n };\n\n if (useAmount) {\n table.columnDefinition = {\n ...table.columnDefinition,\n [BindingContext.localContext(\"AmountPaid\")]: {\n label: i18next.t(\"Banks:Pairing.AmountPaid\"),\n fieldSettings: {\n disableSort: true\n },\n formatter: amountPaidFormatter\n }\n };\n\n table.columns.splice(2, 0, BindingContext.localContext(\"AmountPaid\"));\n }\n\n if (hasAccountAssignment) {\n table.filterBarDef[0].defaultFilters.push(\"DateAccountingTransaction\");\n table.filterBarDef[0].filterDefinition = {\n ...table.filterBarDef[0].filterDefinition,\n DateAccountingTransaction: {}\n };\n\n table.additionalProperties = [\n ...table.additionalProperties,\n { id: \"AccountAssignment\" },\n { id: \"AccountAssignment/ShortName\" },\n { id: \"AccountAssignment/CreditAccount/Id\" },\n { id: \"AccountAssignment/DebitAccount/Id\" },\n { id: \"AccountAssignment/CreditAccount/Name\" },\n { id: \"AccountAssignment/CreditAccount/Number\" },\n { id: \"AccountAssignment/DebitAccount/Name\" },\n { id: \"AccountAssignment/DebitAccount/Number\" },\n { id: \"DateAccountingTransaction\" }\n ];\n\n table.columnDefinition = {\n ...table.columnDefinition,\n DateAccountingTransaction: { id: \"DateAccountingTransaction\" },\n AccountAssignment: {\n additionalProperties: [{ id: \"ShortName\" }, { id: \"CreditAccount/Id\" }, { id: \"DebitAccount/Id\" }, { id: \"CreditAccount/Name\" }, { id: \"CreditAccount/Number\" }, { id: \"DebitAccount/Name\" }, { id: \"DebitAccount/Number\" }],\n formatter: (val: TValue, args: IFormatOptions) => {\n const value = args.item.AccountAssignment?.ShortName;\n return {\n value: <>{value},\n tooltip: value\n };\n }\n }\n };\n\n table.columns = [\n \"DateAccountingTransaction\",\n ...table.columns\n ];\n }\n\n return {\n entitySet: EntitySetName.PayingDocuments,\n table\n };\n\n};\n\nexport const getDefinitions = (context: IAppContext, type: BankTransactionTypeCode): IDefinition => {\n return getCoreDef(context, type);\n};","import { getSimpleBoolSelectItems } from \"@components/smart/FieldInfo\";\nimport { BankTransactionEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ICreateFilterStringSettings } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FieldType, ValueType } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IChangedFilter } from \"../../../views/table/TableView.utils\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { getDefinitions as getStatementDefinition } from \"./../bankStatements/BankStatementsDef\";\n\nexport const BankTransactionLocksFilterPath = BindingContext.localContext(\"Locks\");\n\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const statementsDef = getStatementDefinition(context, true);\n\n\n // mandatory default filter in pairing dialog\n statementsDef.table.filterBarDef[0].defaultFilters.push(\"BankAccount/IsActive\");\n statementsDef.table.filterBarDef[0].filterDefinition[\"BankAccount/IsActive\"] = {\n description: i18next.t(\"Banks:Statements.Account\").toString()\n };\n\n\n statementsDef.table.filterBarDef[0].defaultFilters.push(BankTransactionLocksFilterPath);\n statementsDef.table.filterBarDef[0].filterDefinition[BankTransactionLocksFilterPath] = {\n type: FieldType.ComboBox,\n valueType: ValueType.Boolean,\n isValueHelp: false,\n label: i18next.t(\"Banks:Transactions.ShowLockedStatements\").toString(),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n },\n filter: {\n buildFilter(item: IChangedFilter, settings: ICreateFilterStringSettings): string {\n const value = item.value as boolean;\n\n if (value) {\n return \"\";\n }\n\n return `not(${BankTransactionEntity.Locks}/any())`;\n }\n },\n defaultValue: false\n };\n\n statementsDef.table.additionalProperties = [\n ...(statementsDef.table.additionalProperties ?? []),\n { id: \"BankAccount/IsActive\" }\n ];\n\n statementsDef.table.id = `${statementsDef.table.id}PairSpecialTable`;\n statementsDef.form.id = `${statementsDef.form.id}PairSpecialForm`;\n\n return statementsDef;\n};\n\ngetDefinitions.translationFiles = [\"Banks\", \"Document\"];\n","import styled, { css } from \"styled-components/macro\";\nimport { T_PLAIN_big, T_PLAIN_big_hig, T_TITLE_4, T_TITLE_4_NORMAL } from \"../../../global.style\";\nimport { Select } from \"@components/inputs/select\";\nimport { IconButton } from \"@components/button\";\nimport Switch from \"../../../components/inputs/switch\";\nimport Checkbox from \"../../../components/inputs/checkbox\";\nimport SortableList from \"../../../components/sortableList\";\nimport Alert from \"../../../components/alert\";\nimport { NumericInput } from \"@components/inputs/numericInput/NumericInput\";\nimport { DIALOG_PADDING_VAL } from \"@components/dialog/Dialog.styles\";\nimport {\n LineNumbersWrapper,\n OrderBackground,\n STYLED_SORTABLE_LIST_OFFSET,\n StyledSortableList\n} from \"@components/sortableList/SortableList.styles\";\nimport { CollapsibleBody } from \"@components/collapsibleSection/CollapsibleSection.styles\";\n\nconst COL_GAP = 30;\nconst READONLY_PADDING = 12;\n\nexport enum ValuePadding {\n None = \"None\",\n Input = \"Input\",\n Gap = \"Gap\"\n}\n\nexport const Subtitle = styled.div`\n margin-bottom: 10px;\n`;\n\nexport const LinkStyledBasic = styled.a <{\n isPaired: boolean;\n}>`\n display: flex;\n color: ${props => props.theme.C_ACT_main};\n opacity: ${props => props.isPaired ? \"1\" : \"0.5\"};\n cursor: ${props => props.isPaired ? \"pointer\" : \"default\"};\n`;\n\nexport const LinkText = styled.span`\n margin-left: 5px;\n margin-top: 2px;\n`;\n\nexport const PairingTitle = styled.div`\n white-space: nowrap;\n margin-left: 40px;\n margin-top: 2px;\n`;\n\nexport const PairingValue = styled.span<{\n value: number;\n}>`\n color: ${props => !props.value ? props.theme.C_SEM_text_good : props.theme.C_SEM_text_warning};\n margin-left: 10px;\n\n ${T_PLAIN_big_hig};\n`;\n\nconst _col = css`\n ${T_PLAIN_big_hig};\n padding-right: ${COL_GAP}px;\n`;\n\nexport const InputColumn = styled.td<{\n isLast?: boolean;\n}>`\n ${_col};\n ${props => props.isLast ? \"padding-right: 0\" : \"\"};\n text-align: right;\n`;\n\nexport const LabelColumn = styled.td`\n ${_col};\n position: relative;\n text-align: left;\n`;\n\nexport const GainRow = styled.div`\n display: flex;\n height: 50px;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst getColPadding = (padding: ValuePadding): number => {\n switch (padding) {\n case ValuePadding.Gap:\n return COL_GAP;\n case ValuePadding.Input:\n return READONLY_PADDING;\n case ValuePadding.None:\n return 0;\n default:\n return COL_GAP + READONLY_PADDING;\n }\n};\n\nexport const ValueColumn = styled.td<{\n padding?: ValuePadding\n}>`\n ${_col};\n text-align: right;\n padding-right: ${props => getColPadding(props.padding)}px;\n`;\n\nexport const ExchangeRateDiffLbl = styled.div`\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const ExchangeRateDiffValue = styled.div`\n ${T_TITLE_4_NORMAL};\n text-align: right;\n`;\n\nexport const ExchangeRateDiffLabel = styled.span <{\n isLoss?: boolean;\n}>`\n ${T_TITLE_4_NORMAL};\n text-align: left;\n color: ${props => props.isLoss ? props.theme.C_SEM_text_bad : props.theme.C_SEM_text_good};\n`;\n\nexport const AmountRow = styled.tr`\n height: 35px;\n\n & > td:nth-of-type(n+4) {\n padding-right: 0;\n }\n`;\n\nexport const NumericInputStyled = styled(NumericInput)`\n margin-left: auto;\n`;\n\nexport const TableStyled = styled.table`\n width: 100%;\n min-width: 240px;\n border-spacing: 0;\n`;\n\nexport const TableRow = styled.tr`\n margin-bottom: 5px;\n`;\n\nexport const SectionToolbar = styled.div`\n display: flex;\n margin-bottom: 25px;\n margin-left: 18px;\n position: relative;\n`;\n\nexport const ToolbarIconButton = styled(IconButton)`\n margin-right: 10px;\n`;\n\nexport const SmartTableWrapper = styled.div`\n height: 100%;\n`;\n\nexport const AccountingBalanceStyled = styled.span`\n margin-right: 30px;\n font-weight: bold;\n margin-left: 8px;\n`;\n\nexport const PairingRow = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n`;\n\nexport const AutomaticPairingCollapsibleHeader = styled.div`\n display: flex;\n flex-grow: 1;\n`;\n\nexport const WriteLineParent = styled.div`\n width: 240px;\n margin-right: 12px;\n margin-left: 8px;\n`;\n\nexport const AutomaticPairingSwitch = styled(Switch)`\n margin-right: 15px;\n`;\n\nexport const IconButtonPair = styled(IconButton) `\n margin-right: 5px;\n`;\n\nexport const BankAutLabel = styled.span<{\n isDisabled?: boolean;\n}>`\n font-size: 14px;\n font-weight: bold;\n opacity: ${props => props.isDisabled ? 0.5 : 1};\n`;\n\nexport const BankAutAnd = styled.span`\n margin-left: 13px;\n margin-right: 13px;\n font-size: 14px;\n`;\n\nexport const BankAutLabelTolerance = styled.span<{\n isDisabled?: boolean;\n}>`\n font-size: 14px;\n font-weight: bold;\n opacity: ${props => props.isDisabled ? 0.5 : 1};\n margin-right: 8px;\n margin-left: 20px;\n`;\n\nexport const BankAutCol = styled.div`\n display: flex;\n height: 100%;\n align-items: center;\n`;\n\nexport const BankAutSign = styled.div<{\n isDisabled?: boolean;\n}>`\n position: relative;\n font-size: 14px;\n opacity: ${props => props.isDisabled ? 0.5 : 1};\n width: 10px;\n height: 100%;\n flex-shrink: 0;\n margin-right: 8px;\n margin-top: 13px;\n opacity: 0.5; // TODO: what is correct opacity? \n`;\n\nexport const BankAutSectionTitle = styled.div`\n font-size: 14px;\n font-weight: 800;\n text-transform: uppercase;\n`;\n\nexport const AutLabel = styled.div`\n ${T_PLAIN_big_hig};\n margin-right: 20px;\n`;\n\nexport const AutBoldLabel = styled.div`\n font-weight: bold;\n ${T_PLAIN_big_hig};\n`;\n\nexport const AutBankMovement = styled.div`\n margin-bottom: 18px;\n`;\n\nexport const CheckboxStyled = styled(Checkbox)`\n margin-right: 15px;\n`;\n\nexport const BankAutHeader = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 7px;\n`;\n\nexport const BankAutSubHeader = styled.div`\n ${T_TITLE_4};\n margin-top: 19px;\n`;\n\nexport const BankAutHeaderSelect = styled(Select)`\n margin-left: 15px;\n`;\n\nexport const BankAutSectionFieldsTitle = styled.div`\n font-size: 14px;\n font-weight: 800;\n text-transform: uppercase;\n`;\nexport const AutoPairRow = styled.div<{\n isLast: boolean;\n}>`\n padding: 10px 0 ${props => props.isLast ? 0 : '14px'};\n display: flex;\n\n ${CollapsibleBody} {\n padding-right: 19px;\n }\n`;\n\nexport const ListParent = styled.div`\n position: relative;\n\n ${LineNumbersWrapper} {\n margin: 0 ${`-${DIALOG_PADDING_VAL}`};\n }\n\n ${OrderBackground} + ${StyledSortableList} {\n left: ${STYLED_SORTABLE_LIST_OFFSET};\n width: calc(100% - ${STYLED_SORTABLE_LIST_OFFSET});\n }\n`;\n\nexport const SortableListStyled = styled(SortableList)``;\n\nexport const ReorderParent = styled.div`\n margin-right: 8px`;\n\nexport const CollapsibleSectionBodyParent = styled.div`\n padding-left: 2px;\n padding-top: 13px;\n\n ${CollapsibleBody} {\n padding-right: 0;\n }\n`;\n\nexport const AlertAutoStyled = styled(Alert)`\n margin-bottom: 25px;\n width: 100%;\n margin-left: 20px;\n`;\n\nexport const ConfirmationHeader = styled.div`\n margin-bottom: 30px;\n`;\nexport const ConfirmationHeaderAccount = styled.span`\n ${T_PLAIN_big_hig};\n`;\n\nexport const ConfirmationHeaderName = styled.span`\n ${T_PLAIN_big};\n margin-left: 10px;\n margin-right: 5px;\n`;\nexport const ConfirmationHeaderAccountNumber = styled.span`\n color: ${props => props.theme.C_ACT_thick_line};\n ${T_PLAIN_big};\n`;\n\nexport const GainWrapper = styled.div<{ $width?: string; $withMargin?: boolean; }>`\n display: flex;\n height: 34px;\n width: ${props => props.$width ? props.$width : \"unset\"};\n margin-right: ${props => props.$withMargin ? \"5px\" : 0};\n align-items: center;\n`;\nexport const IconWrapper = styled.div`\n margin-right: 10px;\n`;\n\nexport const SplitDialogHeader = styled.div`\n margin-bottom: 25px;\n`;\n\nexport const SplitDialogValue = styled.span <{ value: number }>`\n margin-left: 5px;\n font-weight: bold;\n color: ${props => props.value === 0 ? props.theme.C_SEM_text_good : props.value > 0 ? props.theme.C_SEM_text_warning : props.theme.C_SEM_text_bad};\n`;\n\nexport const AutomaticPairingTable = styled.table`\n border-collapse: separate;\n border-spacing: 0 12px;\n\n td {\n height: 34px;\n }\n`;\n","import { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n IPaymentDocumentItemEntity,\n ISplitAccountAssignmentEntity,\n SplitAccountAssignmentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CurrencyCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { WithAlert, withAlert } from \"../../components/alert/withAlert\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport SmartFastEntryList, {\n addNewLineItem,\n ISmartFastEntriesActionEvent\n} from \"../../components/smart/smartFastEntryList\";\nimport { Status } from \"../../enums\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport { formatCurrencyVariableDecimals } from \"../../types/Currency\";\nimport { getCompanyCurrency } from \"../../utils/CompanyUtils\";\nimport { roundToDecimalPlaces } from \"../../utils/general\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { IAccAssDialogCustomData } from \"../accountAssignment/AccountAssignment.utils\";\nimport { SplitDialogHeader, SplitDialogValue } from \"./bankTransactions/BankTransactions.styles\";\nimport { updateSplitFromBe } from \"./Pair.utils\";\n\ninterface IProps extends WithAlert {\n storage: FormStorage;\n bindingContext: BindingContext;\n}\n\nconst FIELDS = [{ id: SplitAccountAssignmentEntity.TransactionAmount }, { id: SplitAccountAssignmentEntity.DebitAccount }, { id: SplitAccountAssignmentEntity.CreditAccount },\n { id: SplitAccountAssignmentEntity.Description }];\n\nclass AccountSplitDialog extends React.Component {\n // flag for change, in case user just hit \"close\" button, this prevents draft change to occur\n _hasChanged = false;\n _addedLine = false;\n origData: SplitAccountAssignmentEntity[] = [];\n\n sum: number;\n\n constructor(props: IProps) {\n super(props);\n\n this.origData = cloneDeep(props.storage.getValue(props.bindingContext));\n\n const row = props.storage.getValue(props.bindingContext.getParent());\n const isSplit = row?.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split;\n\n if (!isSplit) {\n row.SplitAccountAssignments = [];\n }\n\n if (!row.SplitAccountAssignments?.length) {\n this._addedLine = true;\n const path = props.bindingContext.getNavigationPath();\n addNewLineItem(this.props.storage, path, path, FIELDS);\n }\n\n this.sum = this.getSumValue();\n }\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n await this.props.storage.handleBlur(args);\n if (args.bindingContext.getPath() === \"TransactionAmount\" && args.wasChanged) {\n this.sum = this.getSumValue();\n this.forceUpdate();\n return;\n }\n\n this.props.storage.refreshFields();\n };\n\n handleChange = (args: ISmartFieldChange): void => {\n this._hasChanged = true;\n this.props.storage.handleChange(args);\n this.props.storage.refreshFields();\n };\n\n handleAction = (e: ISmartFastEntriesActionEvent): void => {\n this._hasChanged = true;\n this.props.storage.handleLineItemsAction(e);\n\n this.sum = this.getSumValue();\n this.props.storage.refresh();\n };\n\n roundByCurrency = (sum: number) => {\n const maximumFractionDigits = this.props.storage.data.entity.TransactionCurrency?.MinorUnit ?? 2;\n return roundToDecimalPlaces(maximumFractionDigits, sum);\n };\n\n isValid = (): boolean => {\n const sum = this.getSumValue();\n const row = this.props.storage.getValue(this.props.bindingContext.getParent());\n\n return sum === 0 && row?.SplitAccountAssignments?.length > 0;\n };\n\n clearAllErrorsAndItems = (): void => {\n const bcs: BindingContext[] = this.getBindingContextsFromCollection(this.props.bindingContext, FIELDS.map(field => field.id));\n for (const bc of bcs) {\n this.props.storage.clearError(bc);\n // clear all items because we don't destroy first line\n // so in theory user can change fiscal year and items would\n // be inaccurate\n const info = this.props.storage.getInfo(bc);\n if (info) {\n delete info.fieldSettings.items;\n }\n }\n };\n\n getBindingContextsFromCollection = (rootBc: BindingContext, fields: string[]): BindingContext[] => {\n const data: IEntity[] = this.props.storage.getValue(rootBc) || [];\n const bcs: BindingContext[] = [];\n\n for (const item of data) {\n const lineBc = rootBc.addKey(item);\n for (const field of fields) {\n bcs.push(lineBc.navigate(field));\n }\n }\n\n return bcs;\n };\n\n validateFields = async (): Promise => {\n const bcs: BindingContext[] = this.getBindingContextsFromCollection(this.props.bindingContext, FIELDS.map(field => field.id));\n let hasError = false;\n for (const bc of bcs) {\n hasError = !!(await this.props.storage.validateField(bc)) || hasError;\n }\n\n return hasError;\n };\n\n handleConfirmDialog = async (): Promise => {\n const hasError = await this.validateFields();\n const { storage } = this.props;\n\n if (hasError) {\n storage.refreshFields();\n return;\n }\n\n const item = storage.getValue(this.props.bindingContext.getParent());\n item.AccountAssignmentSelection = {\n AccountAssignment: {\n Id: SelectionCode.Split\n },\n Selection: {\n Code: SelectionCode.Split\n }\n };\n\n const error = await updateSplitFromBe(storage, item);\n if (error) {\n this.props.setAlert({\n title: i18next.t(\"Banks:Transactions.SplitGainError\"),\n status: Status.Error,\n detailData: error\n });\n } else {\n this.close();\n }\n };\n\n handleCancel = (): void => {\n this.clearAllErrorsAndItems();\n if (this._hasChanged || this._addedLine) {\n // in case there were change or empty line was added, reset to original data\n this.props.storage.setValue(this.props.bindingContext, this.origData);\n }\n\n //setup old error\n const storage = this.props.storage as FormStorage;\n const splitError = storage.getCustomData().splitDialogError;\n if (splitError) {\n const assignmentBc = this.props.bindingContext.getParent().navigate(\"AccountAssignmentSelection\").navigate(\"AccountAssignment\");\n storage.setError(assignmentBc, splitError);\n }\n\n this.close();\n };\n\n close = (): void => {\n const storage = this.props.storage as FormStorage;\n storage.setCustomData({ isSplitDialogOpened: false });\n storage.refresh();\n };\n\n getSumValue = (): number => {\n const row = this.props.storage.getValue(this.props.bindingContext.getParent());\n const amount = row?.TransactionAmount;\n\n const sum = row.SplitAccountAssignments?.reduce((accumulator: number, object: ISplitAccountAssignmentEntity) => {\n return accumulator + (object.TransactionAmount || 0);\n }, 0) || 0;\n\n return amount - this.roundByCurrency(sum);\n };\n\n getFormattedSumValue = (): string => {\n return formatCurrencyVariableDecimals(this.sum, this.getTransactionCurrency());\n };\n\n getTransactionCurrency = (): CurrencyCode => {\n return this.props.storage.data.entity.TransactionCurrency?.Code ?? getCompanyCurrency(this.props.storage.context);\n };\n\n render() {\n const isValid = this.isValid();\n return (\n \n }\n onConfirm={this.handleConfirmDialog}\n onClose={this.handleCancel}>\n \n {this.props.storage.t(\"Banks:Form.SplitTitle\")}:\n {this.getFormattedSumValue()}\n \n {this.props.alert}\n \n \n );\n }\n}\n\nexport default withAlert()(AccountSplitDialog);","import {\n Condition,\n createFilterRow,\n IComplexFilter,\n isComplexFilter\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { IncomingIcon, OutgoingIcon } from \"@components/icon\";\nimport { isSameDay } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { TValidatorFn } from \"@components/smart/FieldInfo\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { ICellValueObject, IRow, TId } from \"@components/table\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { getNestedValue, setNestedValue } from \"@odata/Data.utils\";\nimport {\n BankTransactionEntity,\n IAccountEntity,\n IBankTransactionEntity,\n ICashReceiptEntity,\n IDocumentCbaCategoryEntity,\n IDocumentItemCbaCategoryEntity,\n IPaymentDocumentItemAccountAssignmentEntity,\n IPaymentDocumentItemEntity,\n PaymentDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BankTransactionTypeCode, DocumentTypeCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport { createFilterValue, transformToODataString } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { forEachKey, isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { hasPairedChanged, savePairChanges } from \"@utils/PairTableUtils\";\nimport i18next from \"i18next\";\nimport React, { ReactElement } from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport { Button } from \"../../../components/button\";\nimport Dialog from \"../../../components/dialog\";\nimport { ISmartFieldChange } from \"../../../components/smart/smartField/SmartField\";\nimport { TFilterDef } from \"../../../components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { getRow } from \"../../../components/smart/smartTable/SmartTable.utils\";\nimport { createSelectItem, fetchValueHelperData } from \"../../../components/smart/smartValueHelper/ValueHelper.utils\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IconSize, PageViewMode, ValueType } from \"../../../enums\";\nimport { TRecordAny, TRecordType, TValue } from \"../../../global.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { ValidationMessage } from \"../../../model/Validator.types\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { IFieldInfo } from \"../../../odata/FieldInfo.utils\";\nimport DateType from \"../../../types/Date\";\nimport { getOrigValue } from \"../../../views/formView/Form.utils\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { ITableViewBaseProps } from \"../../../views/table/TableView\";\nimport {\n getCurrentCoAId,\n handleItemAccAssignmentDialog,\n handleItemDateChange,\n IAccAssDialogCustomData,\n ItemCreateCustomAssignmentBc,\n prepareAccountAssignmentsForSave\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport { PAIR_ACTION_ID } from \"../../asset/PairingWithAssetTableView\";\nimport { handleItemCbaCategoryChange } from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport DialogPage from \"../../DialogPage\";\nimport {\n getFiscalDataCorrespondingToDateAccountingTransaction,\n refreshExchangeRateWithoutDefault\n} from \"../../documents/Document.utils\";\nimport {\n getActiveFiscalYears,\n getFiscalYearByDate,\n getFiscalYears,\n isFiscalYearClosed,\n isInFYorPeriod\n} from \"../../fiscalYear/FiscalYear.utils\";\nimport { replaceWildcardsAfterDateChange, setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport AccountSplitDialog from \"../AccountSplitDialog\";\nimport {\n getFixedAccountAssignmentAccountNumberForPaymentEntity,\n handleBankAssignmentChange,\n isPaymentOrOther,\n itemHasAssignment\n} from \"../Pair.utils\";\nimport { IPaymentDocumentItemEntityExpanded } from \"../PairTableView\";\nimport { getDefinitions } from \"./BankTransactionDocumentPairDef\";\n\nexport type TPairedDocumentCategoriesMap = Record;\n\n// todo not sure about this, maybe it should be moved (and renamed) somewhere to pairing, not BankTransactions\n// it is used heavily across all bank related files, but i'm not sure if i managed to apply it properly\nexport interface IBankCustomData extends IFormStorageDefaultCustomData {\n oldAssSelId?: SelectionCode;\n pairedDialogOpened?: boolean;\n type?: DocumentTypeCode;\n\n promptDialogOpened?: boolean;\n rootStorage?: FormStorage;\n pairedStorage?: TSmartODataTableStorage;\n pairedDocuments?: Record;\n pairRedirectUrl?: string;\n showSaveButton?: boolean;\n statementPairedDialogOpened?: boolean;\n accountIdForCreationDialog?: boolean;\n documentsExchangeRates?: Map;\n\n amountDialogRow?: IRow;\n defaultExchangeRate?: number;\n pairedDocumentCategoriesMap?: TPairedDocumentCategoriesMap;\n dialogCurrentLineItem?: TRecordAny;\n isCbaCategoryDialogOpen?: boolean;\n}\n\nexport interface IBankStatementsCustomData extends IFormStorageDefaultCustomData {\n hideTransactions?: boolean;\n}\n\nexport const getCorrent4Digit = (n: number): string => {\n return String(n).padStart(4, \"0\");\n};\n\nexport const setNumberOurs = (numberOurs: string, count: number, storage: FormStorage): void => {\n if (!numberOurs) {\n storage.data.entity.NumberOurs = \"\";\n } else {\n const transCount = (count || 0) + 1;\n storage.data.entity.NumberOurs = `${numberOurs}-${getCorrent4Digit(transCount)}`;\n }\n};\n\nexport const createDefaultPairFilter = (storage: TSmartODataTableStorage, transactionType: BankTransactionTypeCode): void => {\n const path = transactionType === BankTransactionTypeCode.OutgoingPayment ? \"TransactionAmountToPay\" : \"TransactionAmountToReceive\";\n\n storage.setFilterValueByPath(path, [createFilterRow({\n value: 0,\n condition: Condition.GreaterThan\n })]);\n};\n\nexport const getTranBalance = (storage: FormStorage): number => {\n const data = storage.data.entity;\n const tranAmount = Math.abs(data.TransactionAmount) || 0;\n\n const sum = (storage.data.entity.Items || []).reduce((accumulator: number, link: IPaymentDocumentItemEntity) => {\n const add = isPaymentOrOther(link.PaymentDocumentItemTypeCode) ? link.TransactionAmount || 0 : 0;\n return accumulator + add;\n }, 0);\n\n return roundToDecimalPlaces(2, tranAmount - sum);\n};\n\nexport const bankTransactionTypeFormatter = (val: TValue): ICellValueObject => {\n if (val === BankTransactionTypeCode.OutgoingPayment) {\n const title = i18next.t(\"Banks:Transactions.Out\");\n\n return {\n tooltip: title,\n value: \n };\n }\n\n const title = i18next.t(\"Banks:Transactions.In\");\n\n return {\n tooltip: title,\n value: \n };\n};\n\nexport const formatNumberCurrency = (val: number): number => {\n if (isNaN(val)) {\n return val;\n }\n return roundToDecimalPlaces(2, val);\n};\n\n\nexport interface ICalculateExchangeRate {\n docCurrency: string;\n tranCurrency: string;\n tranExRate: number;\n docExchangeRate: number;\n docType: DocumentTypeCode;\n currentAmount: number;\n currentExRate?: number;\n ratedAmount?: number;\n type: BankTransactionTypeCode;\n context: IAppContext;\n}\n\nexport const hasExchangeRate = (docCurrency: string, tranCurrency: string, context: IAppContext): boolean => {\n const companyCurrency = getCompanyCurrency(context);\n return docCurrency !== companyCurrency || tranCurrency !== companyCurrency;\n};\n\nexport const hasExchangeGain = (docCurrency: string, docType: DocumentTypeCode, context: IAppContext): boolean => {\n const isProforma = docType === DocumentTypeCode.ProformaInvoiceReceived || docType === DocumentTypeCode.ProformaInvoiceIssued;\n return docCurrency !== getCompanyCurrency(context) && !isProforma;\n};\n\nexport const hasAdditionalExRate = (docCurrency: string, tranCurrency: string, context: IAppContext): boolean => {\n // Every pair with different currencies\n return docCurrency !== tranCurrency && docCurrency !== getCompanyCurrency(context);\n};\n\nfunction getUniqueAbsAmount(items: IEntity[], prefix?: string): IEntity[] {\n const { abs } = Math;\n const uniqSet = new Set();\n const ret: IEntity[] = [];\n const propName = `${prefix}Amount`;\n const currencyPropName = `${prefix}CurrencyCode`;\n items.forEach(item => {\n const val = abs(item[propName]);\n const key = `${item[currencyPropName]}${val}`;\n if (!uniqSet.has(key)) {\n uniqSet.add(key);\n ret.push({\n ...item,\n [propName]: val\n });\n }\n });\n return ret;\n}\n\nconst getAmountFilterCustomization = (prefix?: string): Partial => ({\n fieldSettings: {\n itemsFactory: async ({ bindingContext, storage, info, fetchFn }): Promise => {\n const opts = {\n bindingContext, fieldInfo: info as IFieldInfo, storage: storage as TableStorage, isEnum: false\n };\n const data = await fetchValueHelperData(opts, fetchFn);\n return getUniqueAbsAmount(data, prefix).map(entity => createSelectItem(entity, opts));\n }\n },\n filter: {\n oDataFn: \"abs\"\n }\n});\n\nexport const getAmountFilterDefs = (): Record => ({\n TransactionAmount: {\n label: i18next.t(\"Banks:Transactions.Converted\"),\n ...getAmountFilterCustomization(\"Transaction\")\n },\n Amount: {\n label: i18next.t(\"Banks:Transactions.Amount\"),\n ...getAmountFilterCustomization()\n },\n});\n\nexport const getTransactionTypeFromEntity = (storage: FormStorage): BankTransactionTypeCode => {\n if (storage.data.entity.BankTransactionType?.Code) {\n return storage.data.entity.BankTransactionType?.Code;\n }\n\n const type = storage.getCustomData().type;\n\n return type === DocumentTypeCode.CashReceiptReceived ? BankTransactionTypeCode.IncomingPayment : BankTransactionTypeCode.OutgoingPayment;\n};\n\nexport const calculateExchangeRate = (args: ICalculateExchangeRate) => {\n // current ex rate is by default loaded from document ex rate (with fiscal year stuff) so it should be sufficient to compare these two.\n const _hasAdditionalExRate = hasAdditionalExRate(args.docCurrency, args.tranCurrency, args.context);\n const isDiffExRate = _hasAdditionalExRate ? args.currentExRate !== args.docExchangeRate : args.docExchangeRate !== args.tranExRate;\n const _hasExpenseGain = hasExchangeGain(args.docCurrency, args.docType, args.context) && isDiffExRate;\n\n let exchangeRateDiff = 0;\n\n if (_hasExpenseGain) {\n if (_hasAdditionalExRate) {\n // we have to round every calculation as it may lead to missing values in some small rounding\n if (isNotDefined(args.ratedAmount)) {\n exchangeRateDiff = NaN;\n } else {\n exchangeRateDiff = formatNumberCurrency(args.currentAmount * (args.tranExRate ?? 1)) -\n formatNumberCurrency(args.ratedAmount * args.docExchangeRate);\n }\n } else {\n const transactionExchangeRate = args.tranExRate;\n exchangeRateDiff = formatNumberCurrency(args.currentAmount * transactionExchangeRate) -\n formatNumberCurrency(args.currentAmount * args.docExchangeRate);\n }\n\n const isOutgoing = args.type === BankTransactionTypeCode.OutgoingPayment;\n if (isOutgoing) {\n exchangeRateDiff *= -1;\n }\n }\n\n return _hasExpenseGain && !isNaN(exchangeRateDiff) ? formatNumberCurrency(exchangeRateDiff) : undefined;\n};\n\nexport const handleBeforeSave = (storage: FormStorage, entity: IBankTransactionEntity | ICashReceiptEntity): IBankTransactionEntity | ICashReceiptEntity => {\n const tranRate = (entity as IBankTransactionEntity).BankTransactionType?.Code === BankTransactionTypeCode.OutgoingPayment ? -1 : 1;\n entity.TransactionAmount = Math.abs(entity.TransactionAmount || 0) * tranRate;\n\n const decimalPlaces = storage.data.entity.TransactionCurrency?.MinorUnit ?? 2;\n const rate = storage.data.entity?.ExchangeRatePerUnit ?? 1;\n\n entity.Amount = roundToDecimalPlaces(decimalPlaces, entity.TransactionAmount * rate);\n\n const isNew = storage.data.bindingContext.isNew();\n if (isNew) {\n entity.CurrencyCode = getCompanyCurrency(storage.context);\n entity.Company = { Id: storage.context.getCompany().Id };\n }\n\n if (storage.data.entity?.TransactionCurrency?.Code === getCompanyCurrency(storage.context)) {\n entity.ExchangeRatePerUnit = 1;\n }\n\n if (isAccountAssignmentCompany(storage.context)) {\n if (entity.Items) {\n entity.Items.forEach((item: IPaymentDocumentItemEntity) => {\n if (isPaymentOrOther(item.PaymentDocumentItemTypeCode)) {\n prepareAccountAssignmentsForSave(storage, item, {\n collectionName: \"Items\",\n transactionDate: item.DateAccountingTransaction\n });\n } else {\n item.TransactionAmount = 0;\n const coaId = getCurrentCoAId({\n storage: storage\n }, { transactionDate: item.DateAccountingTransaction });\n\n setNestedValue(coaId, \"AccountAssignmentSelection/AccountAssignment/ChartOfAccounts/Id\", item);\n setNestedValue(SelectionCode.Own, \"AccountAssignmentSelection/Selection/Code\", item);\n\n const daNumber = getNestedValue(\"AccountAssignmentSelection/AccountAssignment/DebitAccount/Number\", item);\n const caNumber = getNestedValue(\"AccountAssignmentSelection/AccountAssignment/CreditAccount/Number\", item);\n const shortName = `${daNumber}/${caNumber}`;\n\n setNestedValue(shortName, \"AccountAssignmentSelection/AccountAssignment/Name\", item);\n setNestedValue(shortName, \"AccountAssignmentSelection/AccountAssignment/ShortName\", item);\n }\n });\n\n // filter all gains for payments that have no account assignment\n entity.Items = entity.Items.filter((item: IPaymentDocumentItemEntity) => {\n if (isPaymentOrOther(item.PaymentDocumentItemTypeCode)) {\n return true;\n }\n\n return itemHasAssignment(item, entity.Items);\n });\n }\n\n // @see https://solitea-cz.atlassian.net/browse/DEV-17687\n for (const item of (entity.Items ?? [])) {\n if ((item.AccountAssignmentSelection?.AccountAssignment as IEntity)?.[ItemCreateCustomAssignmentBc]) {\n const properties: (keyof IPaymentDocumentItemAccountAssignmentEntity)[] = [\"DebitAccount\", \"CreditAccount\"];\n\n for (const account of properties) {\n const currentAccount = item.AccountAssignmentSelection.AccountAssignment[account] as IAccountEntity;\n const {\n accountPrefix,\n accountSuffix\n } = getFixedAccountAssignmentAccountNumberForPaymentEntity(storage.data.bindingContext, entity);\n\n if (!currentAccount.Number.startsWith(accountPrefix)) {\n continue;\n }\n\n const bc = storage.data.bindingContext.navigate(\"Items\").addKey(item).navigate(`AccountAssignmentSelection/AccountAssignment/${account}`);\n // expect items to be loaded, otherwise ItemCreateCustomAssignment wouldn't be set to true\n const accounts = storage.getInfo(bc)?.fieldSettings?.items;\n // the correct, analytical account number\n // different for BankTransactions and CashReceipts\n const correctAccountNumber = `${accountPrefix}${accountSuffix}`;\n const correctAccountItem = accounts?.find(accountItem => (accountItem.additionalData as IAccountEntity).Number === correctAccountNumber);\n\n if (correctAccountItem) {\n (item.AccountAssignmentSelection.AccountAssignment[account] as IAccountEntity) = correctAccountItem.additionalData;\n }\n }\n }\n }\n\n }\n\n return entity;\n};\n\n\nexport const refreshFormAfterDateChange = async (storage: FormStorage, bc: BindingContext, newValue: Date): Promise => {\n const oldValue = storage.getValue(bc);\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, newValue);\n const oldFiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, oldValue);\n\n const hasChanged = oldFiscalData?.fiscalYear?.Id !== fiscalData?.fiscalYear?.Id;\n if (fiscalData && hasChanged) {\n const changed = await setMatchingNumberRange(storage);\n if (changed) {\n replaceWildcardsAfterDateChange(storage);\n }\n\n storage.refresh();\n }\n};\n\n\nconst finishClosingPrompt = (storage: FormStorage) => {\n const url = storage.getCustomData().pairRedirectUrl;\n if (url) {\n storage.history.push(url);\n } else {\n storage.refresh();\n }\n};\n\nconst cancelChanges = (storage: FormStorage) => {\n storage.setCustomData({\n promptDialogOpened: false,\n pairedDialogOpened: false\n });\n finishClosingPrompt(storage);\n};\n\n\nconst cancelPrompt = (storage: FormStorage) => {\n storage.setCustomData({ promptDialogOpened: false });\n\n storage.refresh();\n};\n\nconst savePairChangesAction = async (storage: FormStorage, type: BankTransactionTypeCode, saveDraftFn?: () => void) => {\n const pairedStorage = storage.getCustomData().pairedStorage;\n const pairedDocuments = pairedStorage.getCustomData().pairedDocuments || {};\n\n await savePairChanges(storage, pairedDocuments, type);\n saveDraftFn?.();\n storage.setCustomData({\n promptDialogOpened: false,\n pairedDialogOpened: false\n });\n finishClosingPrompt(storage);\n};\n\nconst displayPromptOnChange = (storage: FormStorage, route = \"\") => {\n const pairedStorage = storage.getCustomData().pairedStorage;\n const pairedDocuments = pairedStorage.getCustomData().pairedDocuments || {};\n\n if (pairedStorage.tableAction === PAIR_ACTION_ID) {\n const hasChanges = hasPairedChanged(storage, pairedDocuments);\n if (hasChanges) {\n storage.setCustomData({\n promptDialogOpened: true,\n pairRedirectUrl: route,\n showSaveButton: !route\n });\n\n storage.refresh();\n return true;\n }\n }\n\n return false;\n};\n\nconst handleClosePairing = (storage: FormStorage) => {\n if (!displayPromptOnChange(storage)) {\n storage.setCustomData({ pairedDialogOpened: false });\n storage.refresh();\n }\n};\n\nexport const getBankTransactionType = (storage: FormStorage): BankTransactionTypeCode => {\n return storage.data.entity.BankTransactionType?.Code;\n};\n\nexport const getCashTransactionType = (storage: FormStorage): BankTransactionTypeCode => {\n const type = storage.getCustomData().type;\n return type === DocumentTypeCode.CashReceiptReceived ? BankTransactionTypeCode.IncomingPayment : BankTransactionTypeCode.OutgoingPayment;\n};\n\n\nexport const renderAssignmentSplitDialog = (storage: FormStorage): ReactElement => {\n const isOpened = storage.getCustomData().isSplitDialogOpened;\n\n if (!isOpened) {\n return null;\n }\n\n const dialogBc = storage.getCustomData().AccountAssignmentDialogBc;\n const bc = dialogBc.getParent().getParent().navigate(\"SplitAccountAssignments\");\n\n return ;\n};\n\ninterface IRenderPairingDialogArgs {\n view: React.ComponentType;\n type: BankTransactionTypeCode;\n saveDraftFn: () => void;\n}\n\nexport const renderPairingDialog = (storage: FormStorage, args: IRenderPairingDialogArgs): ReactElement => {\n const showSave = storage.getCustomData().showSaveButton;\n return (\n <>\n {storage.getCustomData().promptDialogOpened &&\n <>\n \n \n \n\n {showSave &&\n \n {i18next.t(\"Document:Form.SubmitChanges\")}\n \n }\n }>\n {i18next.t(\"Common:General.UnsavedChanges\")}\n \n \n }\n {storage.getCustomData().pairedDialogOpened &&\n \n getDefinitions(context, args.type)}/>\n \n }\n \n );\n};\n\n/**\n * Default filters to be used selecting bank statement on Bank Transaction form\n * Note: if changed, you may want to edit also isRowWithoutAction on BankTransactionStatementPairTableView\n * @param context\n */\nfunction getDefaultStatementFilters(context: IAppContext): TRecordType {\n const filters: TRecordType = {\n \"BankAccount/IsActive\": [true]\n };\n\n // const oldestOpenFiscalYear = getOpenFiscalYears(context)?.[0];\n // if (oldestOpenFiscalYear) {\n // filters[\"DateFrom\"] = [createFilterRow({\n // value: oldestOpenFiscalYear.DateStart,\n // condition: Condition.IsAfterOrEqualsTo\n // })];\n // }\n\n return filters;\n}\n\n/**\n * Creates default filter values in storage, filters should be defined in Def, so user can work with them.\n * @param storage\n */\nexport function createDefaultStatementPairFilter(storage: TSmartODataTableStorage): void {\n const filters = getDefaultStatementFilters(storage.context);\n\n forEachKey(filters, (key) => {\n storage.setFilterValueByPath(key, filters[key]);\n });\n}\n\nexport const createStatementFilterQuery = (context: IAppContext, baseBc: BindingContext): string => {\n const filters = getDefaultStatementFilters(context);\n const queries: string[] = [];\n\n forEachKey(filters, (path) => {\n const value = filters[path];\n\n value.forEach(val => {\n const query = isComplexFilter(val)\n ? createFilterValue(baseBc.navigate(path), path, val)\n : `${path} eq ${transformToODataString(val, ValueType.Boolean)}`;\n queries.push(query);\n });\n });\n\n return queries.join(\" AND \");\n};\n\nexport const refreshExRateAndRefreshItems = async (storage: FormStorage, currencyCode: string, date: Date): Promise => {\n await refreshExchangeRateWithoutDefault(storage, currencyCode, date);\n storage.addActiveField(storage.data.bindingContext.navigate(BankTransactionEntity.Items));\n storage.refreshFields();\n};\n\nexport const isPairingRowReadOnly = (pairItem: IPaymentDocumentItemEntity, storage: TableStorage, rootStorage: FormStorage): boolean => {\n // filled ID === item is already accounted\n if (pairItem?.Id) {\n const date = pairItem.DateAccountingTransaction;\n const fy = getFiscalYearByDate(storage.context, date);\n\n const pairedDocBc = rootStorage.data.bindingContext.navigate(\"Items\").addKey(pairItem?.Id);\n const isFieldLockedByBe = !!rootStorage.getBackendDisabledFieldMetadata(pairedDocBc);\n\n return isFieldLockedByBe || isFiscalYearClosed(fy); // TODO: maybe BE message is enought, check\n }\n\n return false;\n};\n\nexport const handleTranAmountChange = (storage: FormStorage, args: ISmartFieldChange): void => {\n if (args.bindingContext.getPath() === BankTransactionEntity.TransactionAmount) {\n const amountBc = args.bindingContext.getParent().navigate(BankTransactionEntity.Amount);\n const tranExRate = storage.getEntity().ExchangeRatePerUnit ?? 1;\n const valN = Number(args.value);\n if (!isNaN(valN)) {\n const val = roundToDecimalPlaces(2, valN * tranExRate);\n storage.setValue(amountBc, val);\n }\n }\n};\n\nexport const handleDateChange = async (storage: FormStorage, args: ISmartFieldChange): Promise => {\n if (args.bindingContext.getPath() === PaymentDocumentItemEntity.DateAccountingTransaction && args.triggerAdditionalTasks) {\n await handleItemDateChange({\n storage,\n bindingContext: args.bindingContext,\n value: args.value as Date\n });\n\n storage.refreshFields();\n }\n};\n\n\nexport const handleLineItemsChange = async (storage: FormStorage, args: ISmartFieldChange): Promise => {\n //BEFORE CHANGE\n if (handleItemAccAssignmentDialog({ storage, e: args })) {\n // Account assignment dialog is shown -> do not process the change further as the dialog might be canceled\n // -> we don't want to keep \"Selection.Own\" in the select then.\n return;\n }\n handleTranAmountChange(storage, args);\n\n storage.handleLineItemsChange(args);\n\n // AFTER CHANGE\n handleDateChange(storage, args);\n handleItemCbaCategoryChange(args, storage);\n if (args.triggerAdditionalTasks) {\n await handleBankAssignmentChange(args, storage);\n }\n};\n\nexport const paymentDocDateValidator: TValidatorFn = (value: TValue, { storage, bindingContext }) => {\n if (!DateType.isValid(value as Date)) {\n return new ValidationError(ValidationMessage.NotADate, false, bindingContext.getNavigationPath(true));\n }\n const origValue = getOrigValue(storage as FormStorage, bindingContext);\n \n if (!isSameDay(value as Date, origValue as Date) && isCashBasisAccountingCompany(storage.context)) {\n const date = value as Date;\n if (!getActiveFiscalYears(storage.context).some(fy => isInFYorPeriod(fy, date))) {\n const isInactive = getFiscalYears(storage.context).some(fy => isInFYorPeriod(fy, date));\n const translationPath = isInactive ? \"ClosedCalendarYear\" : \"WrongCalendarYear\";\n return new ValidationError(i18next.t(`Document:Form.${translationPath}`), false, bindingContext.getNavigationPath(false));\n }\n }\n return true;\n};\n\n\ninterface ICanRowBePairedArgs {\n storage: TSmartODataTableStorage;\n origPairedDocuments: Record;\n rowId: TId;\n paymentType: BankTransactionTypeCode;\n row?: IRow;\n}\n\nexport const canRowBePaired = (args: ICanRowBePairedArgs) => {\n const row = args.row ?? getRow(args.storage.tableAPI.getState().rows, args.rowId);\n\n if (row?.customData) {\n const key = (args.rowId as BindingContext)?.getKey?.();\n const isPairedSaved = !!args.origPairedDocuments?.[key];\n const path = args.paymentType === BankTransactionTypeCode.OutgoingPayment ? \"TransactionAmountToPay\" : \"TransactionAmountToReceive\";\n\n const amount = row.customData.entity[path];\n\n return (isPairedSaved || amount > 0);\n }\n\n return true;\n};\n\nexport const isPairingActive = (tableStorage: TableStorage) => {\n return (tableStorage as TableStorage).tableAction === PAIR_ACTION_ID;\n};","import DateType from \"../../../types/Date\";\nimport i18next from \"i18next\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport { PairTableViewForExtend } from \"../PairTableView\";\nimport { isNotDefined } from \"@utils/general\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { canRowBePaired, createDefaultPairFilter, getBankTransactionType } from \"./BankTransactions.utils\";\nimport { IPairTableViewBaseProps } from \"../PairTableViewBase\";\nimport { withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { formatHeaderValue } from \"@components/readOnlyList/ReadOnlyList\";\nimport { TId } from \"@components/table\";\nimport { BankTransactionTypeCode } from \"@odata/GeneratedEnums\";\n\nclass BankTransactionPairTableView extends PairTableViewForExtend {\n constructor(props: IPairTableViewBaseProps) {\n super(props);\n\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n this.presetDefaultFilters();\n }\n\n get transactionType() {\n if (isNotDefined(this.props.rootStorage.data.entity.BankTransactionType?.Code)) {\n return BankTransactionTypeCode.Other;\n }\n\n return this.props.rootStorage.data.entity.BankTransactionType.Code;\n }\n\n getTransactionType = () => {\n return getBankTransactionType(this.props.rootStorage);\n };\n\n get successSubtitle(): string {\n return i18next.t(\"Banks:Pairing.Saved\");\n }\n\n presetDefaultFilters() {\n createDefaultPairFilter(this.props.storage, this.transactionType);\n this.props.storage.applyFilters();\n }\n\n canRowBePaired = (rowId: TId) => {\n return canRowBePaired({\n storage: this.props.storage,\n paymentType: this.transactionType,\n origPairedDocuments: this.origPairedDocuments,\n rowId\n });\n };\n\n\n getTitle = () => {\n if (this.transactionType === BankTransactionTypeCode.Other) {\n return i18next.t(`Banks:Transactions.Payment`);\n }\n\n return i18next.t(`Banks:Pairing.${this.transactionType === BankTransactionTypeCode.IncomingPayment ? \"InPayment\" : \"OutPayment\"}`);\n };\n\n getHeaderData = () => {\n const acc = generalBankAccountFormatter(null, {\n item: this.props.rootStorage.data.entity.BankStatement?.BankAccount\n });\n\n const accName = this.props.rootStorage.data.entity.BankStatement?.BankAccount?.Name;\n\n return [{\n label: this.props.rootStorage.t(\"Banks:Pairing.DateOfPay\"),\n value: formatHeaderValue(DateType.format(this.props.rootStorage.data.entity.DateBankTransaction))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.Amount\"),\n value: formatHeaderValue(this.formatCurrency(Math.abs(this.props.rootStorage.data.entity.TransactionAmount || 0)))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.SymbolVariable\"),\n value: formatHeaderValue(this.props.rootStorage.data.entity.SymbolVariable)\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.FromAccount\"),\n value: formatHeaderValue(acc),\n description: accName ? ` | ${accName}` : \"\"\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.ToAccount\"),\n value: formatHeaderValue(generalBankAccountFormatter(null, {\n item: this.props.rootStorage.data.entity.BankAccount\n }))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.Note\"),\n value: formatHeaderValue(this.props.rootStorage.data.entity.RemittanceInformation)\n }];\n };\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true, isDelayed: true })(withPermissionContext(BankTransactionPairTableView));","import { IconButton } from \"@components/button\";\nimport { fetchItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { getRow, TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IActionRendererArgs, IRow, IRowAction, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { BankTransactionEntity } from \"@odata/GeneratedEntityTypes\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { AddIcon, ChainedIcon, IProps as IIconProps, UnchainedIcon } from \"../../../components/icon\";\nimport ReadOnlyList, { formatHeaderValue } from \"../../../components/readOnlyList/ReadOnlyList\";\nimport { SmartTable } from \"../../../components/smart/smartTable\";\nimport { NEW_ITEM_DETAIL } from \"../../../constants\";\nimport { AppContext, IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { ActionState, IconSize, RowAction, Status, ToolbarItemType } from \"../../../enums\";\nimport { TRecordAny } from \"../../../global.types\";\nimport { IAfterSaveEventArgs, ModelEvent } from \"../../../model/Model\";\nimport BindingContext, { createBindingContext } from \"../../../odata/BindingContext\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport DateType from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../../views/table/TableToolbar.utils\";\nimport TableView, { ITableViewBaseProps } from \"../../../views/table/TableView\";\nimport { SecondaryTableViewTitle, TableWrapper } from \"../../../views/table/TableView.styles\";\nimport View from \"../../../views/View\";\nimport { PAIR_ACTION_ID } from \"../../asset/PairingWithAssetTableView\";\nimport { refreshExchangeRate } from \"../../documents/Document.utils\";\nimport { getPairIconDef } from \"../Payments.utils\";\nimport { createDefaultStatementPairFilter, IBankCustomData, setNumberOurs } from \"./BankTransactions.utils\";\nimport { BankTransactionLocksFilterPath } from \"./BankTransactionStatementPairDef\";\n\n\ninterface IProps extends ITableViewBaseProps {\n}\n\nclass BankTransactionStatementPairTableView extends TableView {\n static contextType = AppContext;\n\n constructor(props: IProps, context: IAppContext) {\n super(props);\n\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n const { storage } = props;\n\n this.getRootStorage().setCustomData({ pairedStorage: storage });\n this.handleCustomAction(PAIR_ACTION_ID, { update: false });\n\n this.setPairDocumentsFromEntity();\n\n storage.emitter.on(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n this.presetDefaultFilters();\n }\n\n presetDefaultFilters(): void {\n const { storage } = this.props;\n createDefaultStatementPairFilter(storage);\n\n // by default, don't show locked transactions\n storage.setValueByPath(BankTransactionLocksFilterPath, false);\n storage.setFilterValueByPath(BankTransactionLocksFilterPath, false);\n\n storage.applyFilters();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n this.props.storage.emitter.off(ModelEvent.FiltersCleared, this.presetDefaultFilters);\n }\n\n _createdRowBindingContext: BindingContext;\n\n async handleTableLoad(): Promise {\n if (this._createdRowBindingContext) {\n this._pair(this._createdRowBindingContext, true);\n this.handleCustomAction(PAIR_ACTION_ID, { update: false });\n this._createdRowBindingContext = null;\n }\n\n super.handleTableLoad();\n }\n\n handleFormAfterSave({ isNew, bindingContext }: IAfterSaveEventArgs): void {\n if (isNew) {\n this._createdRowBindingContext = this.props.storage.data.bindingContext.addKey(bindingContext.getKey());\n this.getInitialActiveRows.reset();\n }\n }\n\n getRootStorage = () => {\n return this.props.rootStorage as FormStorage;\n };\n\n setPairDocumentsFromEntity = () => {\n if (this.props.rootStorage.data.entity.BankStatement) {\n const statement = this.props.rootStorage.data.entity.BankStatement;\n this.props.storage.setCustomData({ pairedDocuments: { [statement.Id]: statement.Id } });\n } else {\n this.props.storage.setCustomData({ pairedDocuments: {} });\n }\n };\n\n formatCurrency = (val: number) => {\n const currency = this.props.rootStorage.data.entity?.TransactionCurrency?.Code;\n return formatCurrency(val, currency);\n };\n\n getInitialActiveRows = memoizeOne((): BindingContext[] => {\n const key = Object.keys(this.getPairedDocuments());\n const pairAction = this.getTableAction();\n const initialActiveRows: BindingContext[] = []\n if (key?.[0] && pairAction !== TableButtonsAction.Remove) {\n const bc = this.props.storage.data.bindingContext.addKey(key[0]);\n initialActiveRows.push(bc);\n } else if (this._createdRowBindingContext) {\n initialActiveRows.push(this._createdRowBindingContext);\n }\n return initialActiveRows;\n });\n\n getTableSharedProps = () => {\n const props = super.getTableSharedProps();\n\n props.keepActiveRowsOnFilterChange = true;\n props.initialActiveRows = this.getInitialActiveRows();\n return props;\n };\n\n handlePairClick = (): void => {\n this.handleCustomAction(PAIR_ACTION_ID);\n };\n\n getPairIconDef = (): IToolbarItem => {\n return getPairIconDef(this.getTableAction(), this.handlePairClick, !!this.props.storage.data.addingRow);\n };\n\n handleToolbarCancel(): void {\n if (this.isTableAction(PAIR_ACTION_ID)) {\n this.setPairDocumentsFromEntity();\n }\n super.handleToolbarCancel();\n this.forceUpdate();\n }\n\n async handleToolbarConfirm(): Promise {\n if (this.isTableAction(PAIR_ACTION_ID)) {\n await this.saveChanges();\n } else {\n await super.handleToolbarConfirm();\n }\n }\n\n getAddIconDef = (): IToolbarItem => {\n return {\n id: \"addIcon\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n const isAddingNew = !!this.props.storage.data.addingRow;\n return (\n \n \n \n );\n }\n };\n };\n\n getPairedDocuments(): Record {\n return this.props.storage.getCustomData().pairedDocuments || {};\n }\n\n getCustomRowAction = memoizeOne((): TCustomRowAction => {\n const tableAction = this.getTableAction();\n\n return {\n actionType: tableAction === PAIR_ACTION_ID ? RowAction.Custom : this.getRowActionType(),\n isSingleSelect: true,\n render: (args: IActionRendererArgs) => {\n const Icon = args.actionState === ActionState.Active ? ChainedIcon : UnchainedIcon;\n return (\n {\n const bindingContext = args.rowId as BindingContext;\n this.onPair(bindingContext);\n args.onClick(event);\n }}\n isDisabled={args.actionState === ActionState.None || args.isDisabled || args.isLocked}\n isDecorative>\n \n \n );\n }\n };\n });\n\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n if (rowAction) {\n return null;\n }\n\n const isActive = this.getPairedDocuments()?.[(id as BindingContext).getKey()];\n return isActive ? ChainedIcon : null;\n };\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [];\n }\n\n get customToolbarItems(): IToolbarItem[] {\n return [\n this.getAddIconDef(),\n this.getPairIconDef()\n ];\n }\n\n canConfirmToolbarAction = (): boolean => {\n if (this.getTableAction() === PAIR_ACTION_ID) {\n const pairedDocs = this.props.storage.getCustomData().pairedDocuments;\n return pairedDocs && Object.keys(pairedDocs)?.length > 0;\n }\n return this.props.storage.tableAPI?.getState().changedRows.size > 0;\n };\n\n handleAddClick = () => {\n const bc = createBindingContext(\"BankStatements\", this.props.rootStorage.oData.metadata).addKey(NEW_ITEM_DETAIL, true);\n this.props.onRowSelect?.(bc, null, null, {\n hideTransactions: true\n });\n };\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n if (action === RowAction.Remove) {\n // todo: do we have remove action here??\n return row.customData?.entity?.TransactionsCount > 0;\n } else if (action === RowAction.Custom && this.getTableAction() === PAIR_ACTION_ID) {\n const { entity } = row.customData ?? {};\n return !entity.BankAccount.IsActive;\n }\n return super.isRowWithoutAction(rowId, action, row);\n }\n\n getHeaderData = () => {\n const acc = generalBankAccountFormatter(null, {\n item: this.props.rootStorage.data.entity.BankStatement?.BankAccount\n });\n\n const accName = this.props.rootStorage.data.entity.BankStatement?.BankAccount?.Name;\n\n return [{\n label: this.props.rootStorage.t(\"Banks:Pairing.DateOfPay\"),\n value: formatHeaderValue(DateType.format(this.props.rootStorage.data.entity.DateBankTransaction))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.Amount\"),\n value: formatHeaderValue(this.formatCurrency(this.props.rootStorage.data.entity.TransactionAmount))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.SymbolVariable\"),\n value: formatHeaderValue(this.props.rootStorage.data.entity.SymbolVariable)\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.FromAccount\"),\n value: formatHeaderValue(acc),\n description: accName ? ` | ${accName}` : \"\"\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.ToAccount\"),\n value: formatHeaderValue(generalBankAccountFormatter(null, {\n item: this.props.rootStorage.data.entity.BankAccount\n }))\n }, {\n label: this.props.rootStorage.t(\"Banks:Pairing.Note\"),\n value: formatHeaderValue(this.props.rootStorage.data.entity.RemittanceInformation)\n }];\n };\n\n saveChanges = async () => {\n const pairedDocs = this.props.storage.getCustomData().pairedDocuments || {};\n const val: TRecordAny = Object.values(pairedDocs)[0];\n\n const bc = this.props.rootStorage.data.bindingContext.navigate(BankTransactionEntity.BankStatement);\n const info = this.props.rootStorage.getInfo(bc);\n if (info && val) {\n // case that new item was just created and items are still loading (in case user clicks way to fast :)\n let items = info.fieldSettings?.items;\n\n if (!items || items.length === 0) {\n items = await fetchItemsByInfo(this.props.rootStorage, info);\n }\n\n const item = items?.find(i => i.id === val.Id);\n if (item) {\n const newCurrency = item.additionalData.BankAccount?.TransactionCurrencyCode;\n this.props.rootStorage.data.entity.TransactionCurrency = { Code: newCurrency };\n refreshExchangeRate(this.props.rootStorage, newCurrency, BankTransactionEntity.DateBankTransaction);\n\n val.BankAccount = item.additionalData.BankAccount;\n setNumberOurs(item.additionalData?.NumberOurs, item.additionalData?._metadata?.Transactions?.count, this.props.rootStorage);\n }\n }\n\n this.props.rootStorage.clearAndSetValueByPath(\"BankStatement\", val);\n this.getInitialActiveRows.reset();\n this.props.storage.tableAPI?.reloadTable();\n\n this.props.storage.setTableAlert({\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: i18next.t(\"Banks:Pairing.Saved\")\n }, true);\n\n // turn off table action\n this.handleToolbarCancel();\n this.props.storage.refresh();\n };\n\n _pair = (bc: BindingContext, alwaysPair?: boolean) => {\n const row = getRow(this.props.storage.tableAPI.getState().rows, bc);\n\n let pairedDoc = this.getPairedDocuments();\n const key = bc.getKey();\n if (pairedDoc[key] && !alwaysPair) {\n pairedDoc = {};\n } else {\n pairedDoc = {\n [key]: {\n Id: key,\n BankAccount: row.customData.entity.BankAccount\n }\n };\n }\n\n this.props.storage.setCustomData({ pairedDocuments: pairedDoc });\n };\n\n onPair = (bc: BindingContext) => {\n this._pair(bc);\n this.forceUpdate();\n };\n\n getTitle = () => {\n const amount = this.props.rootStorage.data.entity.TransactionAmount;\n if (!amount) {\n return this.props.rootStorage.t(\"Banks:Transactions.Payment\");\n }\n\n return amount < 0 ? this.props.rootStorage.t(\"Banks:Pairing.OutPayment\") : this.props.rootStorage.t(\"Banks:Pairing.InPayment\");\n };\n\n getCustomQuerySettings = memoizeOne(() => ({\n Transactions: {\n count: true,\n top: 0\n }\n }));\n\n render() {\n const sharedTableProps = this.getTableSharedProps();\n\n return (\n <>\n \n \n {this.props.rootStorage.t(\"Banks:Pairing.Statement\")}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderToolbar()}\n \n \n \n \n \n );\n }\n}\n\nexport default BankTransactionStatementPairTableView;","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { setNestedValue } from \"@odata/Data.utils\";\nimport { BankTransactionEntity, EntityTypeName, IBankTransactionEntity } from \"@odata/GeneratedEntityTypes\";\nimport {\n BankTransactionTypeCode,\n CompanyPermissionCode,\n DocumentTypeCode,\n PaymentDocumentItemTypeCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { IDocumentFormViewProps } from \"@pages/documents/DocumentInterfaces\";\nimport { handleBankAccountOrIBANBlur } from \"@utils/BankUtils\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { getRoundedSplitSum } from \"@utils/PairTableUtils\";\nimport { checkPermissionWithOwnPermission } from \"@utils/permissionUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport { Button } from \"../../../components/button\";\nimport Dialog from \"../../../components/dialog/Dialog\";\nimport { AppContext, ContextEvents } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { PageViewMode, Status } from \"../../../enums\";\nimport { EmptyObject } from \"../../../global.types\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport DraftFormView, { IDraftFormViewProps } from \"../../../views/formView/DraftFormView\";\nimport { FormStorage, IGetCorrectErrorBc, ISaveArgs } from \"../../../views/formView/FormStorage\";\nimport {\n correctAccountIdAfterChange,\n correctAccountIds,\n handleAccAssignmentChange,\n handleAccAssignmentChildrenChange,\n IAccAssDialogCustomData,\n invalidateAccountAssignments,\n sendAdditionalRequestForAccountAssignment,\n setCorrectSpecialItemsForAccountAssignment\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport { AccountAssignmentDialog } from \"../../accountAssignment/AccountAssignmentDialog\";\nimport {\n accountPartnerDepFields,\n clearBPIfNotSet,\n handleBusinessPartnerBlur,\n handleBusinessPartnerChange,\n setSavedContactItems\n} from \"../../businessPartner/BusinessPartner.utils\";\nimport {\n handleCustomCbaCategoryChange,\n loadCategoriesMap,\n setCorrectSpecialItemsForItemCategory\n} from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport CustomCategoryTemporalDialog from \"../../cashBasisAccounting/CustomCategoryTemporalDialog\";\nimport DialogPage from \"../../DialogPage\";\nimport { DRAFT_ITEM_ID_PATH } from \"../../documents/Document.utils\";\nimport {\n deleteEmptyBankAccount,\n getBankBlurArgs,\n handleBankFieldChange,\n IBankAccountsCustomData,\n loadAllBankAccounts,\n prepareAllSavedAccounts,\n SAVED_ACCOUNTS_PATH\n} from \"../bankAccounts/BankAccounts.utils\";\nimport {\n addExpenseGainIfMissing,\n correctGainAccountAssignment,\n deleteAdditionalGains,\n handleItemAmountBlur\n} from \"../Pair.utils\";\nimport { createPaymentEntityCopy } from \"../Payments.utils\";\nimport BankTransactionPairTableView from \"./BankTransactionPairTableView\";\nimport {\n getBankTransactionType,\n getTranBalance,\n handleBeforeSave,\n handleLineItemsChange,\n IBankCustomData,\n refreshExRateAndRefreshItems,\n renderAssignmentSplitDialog,\n renderPairingDialog,\n setNumberOurs\n} from \"./BankTransactions.utils\";\nimport { isPairFastEntryDisabled } from \"./BankTransactionsDef\";\nimport { getDefinitions as getStatementDefinition } from \"./BankTransactionStatementPairDef\";\nimport BankTransactionStatementPairTableView from \"./BankTransactionStatementPairTableView\";\n\ninterface IProps extends IDraftFormViewProps, WithConfirmationDialog {\n}\n\nclass BankTransactionsFormView extends DraftFormView {\n static contextType = AppContext;\n\n documentTypeCode = DocumentTypeCode.BankTransaction;\n\n get _documentItemDomainType(): string {\n return EntityTypeName.PaymentDocumentItem;\n }\n\n get hasAccountAssignment(): boolean {\n return isAccountAssignmentCompany(this.context);\n }\n\n get isCashBasisAccountingCompany(): boolean {\n return isCashBasisAccountingCompany(this.context);\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.props.storage.emitter.on(ModelEvent.RequestCreateDraft, this.handleRequestCreateDraft);\n\n this.registerHeader();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.props.storage.emitter.off(ModelEvent.RequestCreateDraft, this.handleRequestCreateDraft);\n }\n\n\n // Saves draft immediate and triggers callback when it's done\n handleRequestCreateDraft = async (callback: () => void): Promise => {\n await this.saveDraftAndApplyEffects(true);\n callback();\n };\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\n super.componentDidUpdate(prevProps, prevState);\n this.registerHeader();\n }\n\n getAdditionalLoadPromise = (): Promise[] => {\n const promises = [\n loadAllBankAccounts(this.props.storage)\n ];\n return promises;\n };\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const bc = this.props.storage.data.bindingContext.navigate(BankTransactionEntity.BankStatement);\n this.props.storage.addCustomRef(this._refHeader.current, bc);\n\n const refBc = this.props.storage.data.bindingContext.navigate(BankTransactionEntity.TransactionAmount);\n this.props.storage.addCustomRef(this._refHeader.current, refBc);\n }\n };\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n\n\n const businessPartner = this.entity.BusinessPartner?.BusinessPartner;\n setSavedContactItems(storage, businessPartner?.Contacts);\n setCorrectSpecialItemsForAccountAssignment(storage, BankTransactionEntity.Items);\n await Promise.all([setCorrectSpecialItemsForItemCategory(storage), correctAccountIds(storage, BankTransactionEntity.Items)]);\n\n const bc = storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH);\n const savedAccountsInfo = storage.getInfo(bc);\n\n this.correctSplitValue();\n\n if (savedAccountsInfo) {\n prepareAllSavedAccounts({\n storage,\n type: DocumentTypeCode.BankTransaction,\n businessPartner,\n isInit: true\n });\n }\n\n if (this.isCashBasisAccountingCompany) {\n loadCategoriesMap(storage);\n }\n return super.onAfterLoad();\n };\n\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n args.actionType !== ActionType.Add && this.saveDraft();\n if (args.actionType === ActionType.Clone) {\n const [item] = args.affectedItems;\n delete item[DRAFT_ITEM_ID_PATH];\n }\n\n this.props.storage.handleLineItemsAction(args);\n this.props.storage.refresh();\n };\n\n correctSplitValue = () => {\n // in some cases BE returns split code in assignment but without split items\n // in such case we delete code\n const storage = this.props.storage;\n\n for (const data of storage.data.bindingContext.iterateNavigation(\"Items\", storage.data.entity.Items)) {\n if (data.entity.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment && data.entity.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split) {\n if (!data.entity?.SplitAccountAssignments?.length) {\n setNestedValue(null, \"AccountAssignmentSelection/Selection/Code\", data.entity);\n\n storage.setError(data.bindingContext.navigate(\"AccountAssignmentSelection/AccountAssignment\"), {\n message: i18next.t(\"Banks:Transactions.MissingSplit\")\n });\n }\n }\n }\n };\n\n handleTransactionAmountBlur = (args: ISmartFieldChange) => {\n if (args.bindingContext.getPath() === BankTransactionEntity.TransactionAmount) {\n const val = this.props.storage.getValue(args.bindingContext);\n if (!isNaN(val) && val < 0) {\n this.props.storage.setValueByPath(BankTransactionEntity.BankTransactionType, BankTransactionTypeCode.OutgoingPayment);\n }\n }\n };\n\n\n handleBlur = async (args: ISmartFieldBlur) => {\n if (args.wasChanged) {\n handleItemAmountBlur(this.props.storage, args);\n }\n\n await this.props.storage.handleBlur(args);\n\n if (args.wasChanged) {\n await handleBusinessPartnerBlur({\n storage: this.props.storage,\n type: DocumentTypeCode.BankTransaction\n }, args, true, false);\n handleBankAccountOrIBANBlur(getBankBlurArgs(this.props.storage, args.bindingContext));\n this.handleTransactionAmountBlur(args);\n }\n\n this.props.storage.refreshFields();\n };\n\n handleBankPairChange = (e: ISmartFieldChange) => {\n // needs to be called after change\n if (e.bindingContext.getPath() === BankTransactionEntity.DocumentLinks) {\n const links = this.entity?.DocumentLinks;\n for (const link of links || []) {\n if (!link.TargetDocument._metadata) {\n const selItem = (e.selectedItems || []).find(item => item.id === link.TargetDocument.Id);\n if (selItem && selItem.additionalData?._metadata) {\n link.TargetDocument._metadata = selItem.additionalData._metadata;\n }\n }\n }\n }\n };\n\n confirmAssignment = async () => {\n const storage: FormStorage = this.props.storage;\n const bc = storage.getCustomData().AccountAssignmentDialogBc;\n const item = storage.getValue(bc.getParent().getParent());\n\n const oldType = item?.AccountAssignmentSelection?.Selection?.Code;\n await deleteAdditionalGains(storage, item, oldType);\n\n correctGainAccountAssignment(storage, item);\n addExpenseGainIfMissing(storage, item);\n this.props.storage.refresh();\n };\n\n handleLineItemsChange = async (args: ISmartFieldChange) => {\n // if you change something just for this method, keep in mind changes in CashBox !!\n await handleLineItemsChange(this.props.storage, args);\n\n\n this.saveDraft();\n this.props.storage.refreshFields();\n };\n\n handleStatementChange = (e: ISmartFieldChange) => {\n if (e.bindingContext.getPath() === BankTransactionEntity.BankStatement && e.triggerAdditionalTasks) {\n const numberOurs = e.additionalData.NumberOurs;\n setNumberOurs(numberOurs, e.additionalData._metadata.Transactions?.count, this.props.storage);\n\n const date = this.entity.DateBankTransaction;\n refreshExRateAndRefreshItems(this.props.storage, e.additionalData?.BankAccount?.TransactionCurrencyCode, date);\n }\n };\n\n handleSavedAccountChange = (e: ISmartFieldChange) => {\n // be aware that this is only part of the code of saved account change\n // rest is in handleBankFieldChange\n if (e.bindingContext.getNavigationPath(true) === SAVED_ACCOUNTS_PATH && e.triggerAdditionalTasks) {\n if (e.value && e.value !== SelectionCode.Own) {\n // load business partner fields based on business partner and change status from creating (if there was such status)\n this.props.storage.processDependentField(accountPartnerDepFields, e.additionalData, e.bindingContext);\n setSavedContactItems(this.props.storage, e.additionalData?.BusinessPartner?.Contacts);\n this.props.storage.setCustomData({ bankAccounts: e.additionalData?.BusinessPartner?.BankAccounts });\n\n this.props.storage.setGroupStatus({\n isCreating: false\n }, \"partner\");\n\n this.props.storage.refreshGroupByKey(\"partner\");\n }\n }\n };\n\n handleFieldsForPair = (e: ISmartFieldChange) => {\n const path = e.bindingContext.getPath();\n if ((path === BankTransactionEntity.DateBankTransaction && (e.triggerAdditionalTasks || !e.value)) ||\n (path === BankTransactionEntity.BankStatement && e.triggerAdditionalTasks) ||\n [BankTransactionEntity.BankTransactionType, BankTransactionEntity.TransactionAmount, BankTransactionEntity.ExchangeRatePerUnit].includes(path as BankTransactionEntity)) {\n this.props.storage.addActiveField(this.props.storage.data.bindingContext.navigate(BankTransactionEntity.Items));\n }\n };\n\n handleBankTransactionTypeChange = (e: ISmartFieldChange) => {\n if (e.bindingContext.getPath() === BankTransactionEntity.BankTransactionType) {\n // reset account assignment select => filter has changed\n invalidateAccountAssignments(this.props.storage);\n }\n };\n\n handleChange = (e: ISmartFieldChange) => {\n const { storage } = this.props;\n const wasPairDisabled = isPairFastEntryDisabled(storage);\n\n handleBusinessPartnerChange({\n storage: this.props.storage,\n type: DocumentTypeCode.BankTransaction\n }, e, { showsAllBankAccounts: true, allowCreate: false });\n this.handleStatementChange(e);\n this.handleSavedAccountChange(e);\n\n this.handleDateBankTransactionChange(e);\n\n handleAccAssignmentChildrenChange(storage, e);\n handleAccAssignmentChange({\n storage,\n event: e,\n documentTypeCode: DocumentTypeCode.BankTransaction\n });\n\n storage.handleChange(e);\n\n this.handleBankTransactionTypeChange(e);\n // must be called after change\n correctAccountIdAfterChange(storage, e);\n\n const isPairDisabled = isPairFastEntryDisabled(storage);\n\n this.handleBankPairChange(e);\n if (wasPairDisabled !== isPairDisabled) {\n this.handleFieldsForPair(e);\n }\n\n handleBankFieldChange({\n storage,\n type: DocumentTypeCode.BankTransaction,\n changePartner: true\n }, e);\n\n this.saveDraft();\n storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n handleDateBankTransactionChange = async (args: ISmartFieldChange) => {\n if (args.bindingContext.getPath() === BankTransactionEntity.DateBankTransaction && args.triggerAdditionalTasks) {\n const currency = this.entity.TransactionCurrency?.Code;\n refreshExRateAndRefreshItems(this.props.storage, currency, args.value as Date);\n }\n };\n\n handleClosePairStatementPairing = () => {\n this.props.storage.setCustomData({ statementPairedDialogOpened: false });\n this.forceUpdate();\n };\n\n handleStatementPairingDialogAfterSave = (bc: BindingContext) => {\n const info = this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(BankTransactionEntity.BankStatement));\n if (info) {\n // this forces reload items in selector\n delete info.fieldSettings.items;\n this.forceUpdate();\n }\n };\n\n renderAssignStatementDialog = () => {\n return (\n <>\n {this.props.storage.getCustomData().statementPairedDialogOpened &&\n \n \n \n }\n \n );\n };\n\n canPostDocument = (): boolean => {\n return checkPermissionWithOwnPermission(this.props.storage, this.props.permissionContext, CompanyPermissionCode.Bank);\n };\n\n shouldDisableSaveButton = (): boolean => {\n return !this.canPostDocument() || this.props.storage.data.entity[BankTransactionEntity.Locks]?.length > 0 || this.props.storage.isDisabled;\n };\n\n handlePost = () => {\n this.save({\n queryParams: {\n postInvoice: true\n }\n });\n };\n\n handleSaveAndPost = () => {\n this.save({\n queryParams: {\n postInvoice: true,\n clearInvoice: true\n }\n });\n };\n\n handleSave = () => {\n this.save();\n };\n\n handlePreSave = () => {\n const balance = getTranBalance(this.props.storage);\n const hasItems = this.entity.Items?.length > 0;\n const hadItems = this.props.storage.data.origEntity?.Items?.length > 0;\n if (hasItems || hadItems) {\n if (balance === 0) {\n this.handleSaveAndPost();\n } else {\n this.handlePost();\n }\n } else {\n this.handleSave();\n }\n };\n\n getReadOnlyNavButtonText = () => {\n return this.props.storage.t(\"Banks:Form.OpenTranAction\");\n };\n\n renderSaveButtons = (): ReactElement => {\n return \n {this.props.storage.t(\"Common:General.Save\")}\n ;\n };\n\n validateSplitValues = (data: IBankTransactionEntity) => {\n const { storage } = this.props;\n\n // there can be mismatch in split values in case row was split and ten amount changed via pair dialog\n const errorBcs = [];\n if (this.hasAccountAssignment) {\n for (const item of data.Items || []) {\n const bc = storage.data.bindingContext.navigate(\"Items\").addKey(item);\n\n if (item.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split && item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment) {\n const amount = item.TransactionAmount;\n const sum = getRoundedSplitSum(item, storage);\n\n if (sum !== amount) {\n errorBcs.push(bc);\n }\n }\n\n if (item.Amount && !item.AccountAssignmentSelection?.Selection?.Code) {\n errorBcs.push(bc);\n }\n }\n }\n\n return errorBcs;\n };\n\n getCorrectErrorBc = (args: IGetCorrectErrorBc): BindingContext => {\n // match errors from BE that points to DebitAccount/CreditAccount to their parent,\n // because we use AccountAssignment field to show both of them together on FE\n if (args.error.entity.entityType === EntityTypeName.PaymentDocumentItemAccountAssignment) {\n return args.matchedBindingContext.getParent();\n }\n\n return args.matchedBindingContext;\n };\n\n save = async (args: ISaveArgs = {}) => {\n const { storage } = this.props;\n this.saveDraftDebounced.cancel();\n const data = await this.prepareDataForSave(this.entity);\n const splitErrors = this.validateSplitValues(data);\n if (splitErrors.length > 0) {\n storage.setFormAlert({\n status: Status.Error,\n title: storage.t(\"Common:General.Error\"),\n subTitle: storage.t(\"Banks:Transactions.SplitError\")\n });\n\n for (const bcErr of splitErrors) {\n storage.setError(bcErr.navigate(\"AccountAssignmentSelection\").navigate(\"AccountAssignment\"), {\n message: i18next.t(\"Banks:Transactions.MissingSplit\")\n });\n }\n\n this.forceUpdate(this.scrollPageUp);\n return null;\n }\n\n this.props.onBeforeSave?.();\n\n const isNew = storage.data.bindingContext.isNew();\n let shouldReloadAccountAssignment = false;\n const shouldReloadBankAccounts = false;\n\n if (isNew) {\n data.CurrencyCode = \"CZK\";\n }\n\n const subTitle = storage.t(`${storage.data.definition?.translationFiles?.[0]}:Validation.Saved`);\n const result = await storage.save({\n ...args,\n data,\n onBeforeExecute: async (batch: BatchRequest) => {\n // const isNewBusinessPartner = !data.BusinessPartner?.BusinessPartner?.Id;\n\n // addBusinessPartnerContactRequest(storage, isNewBusinessPartner, batch);\n // shouldReloadBankAccounts = addBusinessPartnerBankAccountRequest(this.props.storage, isNewBusinessPartner, batch);\n\n shouldReloadAccountAssignment = await sendAdditionalRequestForAccountAssignment(storage, data, batch, DocumentTypeCode.BankTransaction, \"Items\");\n },\n getCorrectErrorBc: this.getCorrectErrorBc\n });\n\n if (!result) {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n if (isNew && !!data.PaymentDocumentDraft) {\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n\n if (shouldReloadBankAccounts) {\n storage.setCustomData({ allBankAccounts: null });\n }\n\n // we need to remove all cached items in linked pair account assignments\n // if (shouldReloadAccountAssignment) {\n invalidateAccountAssignments(storage, BankTransactionEntity.Items);\n // }\n\n await storage.displaySaveOkMessage(subTitle);\n\n if (!args.skipAfterSave) {\n this.onAfterSave?.(isNew, false);\n }\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n // we need to refresh account filter as it shows last update date\n if (args?.queryParams?.postInvoice || this.isCashBasisAccountingCompany) {\n await this.context.updateCompanyBankAccounts();\n storage.refresh(true);\n }\n\n return result;\n };\n\n handleCustomCbaCategoryChange = (e: ISmartFieldChange): void => {\n handleCustomCbaCategoryChange(e, this.props.storage);\n };\n\n handleCloseCbaCategoryDialog = (): void => {\n this.props.storage.setCustomData({\n isCbaCategoryDialogOpen: false\n });\n this.forceUpdate();\n };\n\n createEntityCopy = (args: ICopyEntityArgs = {}): IBankTransactionEntity => {\n const ALLOWED_NAVIGATIONS = [\n \"BankAccount\", \"BankStatement\", \"BankTransactionType\", \"BusinessPartner\", \"Company\", \"Currency\", \"Items\", \"NumberRange\", \"PaymentMethod\", \"TransactionCurrency\"\n ];\n\n return createPaymentEntityCopy(this.props.storage, args, ALLOWED_NAVIGATIONS);\n };\n\n prepareDataForSave = async (data: IEntity, isDraft?: boolean): Promise => {\n const entity = cloneDeep(data);\n handleBeforeSave(this.props.storage, entity);\n deleteEmptyBankAccount(entity);\n\n // !isDraft && prepareNewBusinessPartner(this.props.storage, entity, true);\n !isDraft && clearBPIfNotSet(entity);\n\n return entity;\n };\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (\n <>\n {this.renderForm()}\n \n {renderPairingDialog(this.props.storage, {\n type: getBankTransactionType(this.props.storage),\n view: BankTransactionPairTableView,\n saveDraftFn: this.saveDraft.bind(this)\n })}\n {renderAssignmentSplitDialog(this.props.storage)}\n \n {this.renderAssignStatementDialog()}\n \n );\n }\n}\n\nexport default withConfirmationDialog(withPermissionContext(BankTransactionsFormView));","import { getDrillDownFilters, getIntentNavParams } from \"@components/drillDown/DrillDown.utils\";\nimport { PairIcon } from \"@components/icon\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { PairingFastEntryList } from \"@components/pairingFastEntryList\";\nimport { IFieldDefFn, IGetValueArgs, TInfoValue } from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n ExchangeRatePerUnit,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n NoteFieldDef,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n companyBankAccountFormatter,\n getFilterBarItemParsedValue,\n ISmartBankAccountFilterCustomData\n} from \"@components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IGroupRenderFn } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { SmartSelect } from \"@components/smart/smartSelect\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { ICellValueObject } from \"@components/table\";\nimport {\n BankStatementEntity,\n BankStatementLockEntity,\n BankTransactionEntity,\n BusinessPartnerEntity,\n CashReceiptEntity,\n CompanyBankAccountEntity,\n CurrencyEntity,\n DocumentEntity,\n EntitySetName,\n EntityTypeName,\n IBankAccountEntity,\n IBankTransactionEntity,\n ICompanyBankAccountEntity,\n IPaymentDocumentDraftEntity,\n IPaymentDocumentItemEntity,\n PaymentDocumentDraftEntity,\n PaymentDocumentItemDraftEntity,\n PaymentDocumentItemEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n BankTransactionTypeCode,\n CompanyPermissionCode,\n DocumentTypeCode,\n PaymentDocumentItemTypeCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { ICreateFilterStringSettings, IFormatOptions } from \"@odata/OData.utils\";\nimport { DocumentBusinessPartnerAdditionalProperties } from \"@pages/businessPartner/BusinessPartner.shared.utils\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { getFilterForDocumentDrafts } from \"@utils/DraftUtils\";\nimport { arrayInsert, isDefined, isObjectEmpty } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport Field from \"../../../components/inputs/field\";\nimport SmartBankAccountFilter from \"../../../components/smart/smartBankAccountFilter\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, IconSize, Sort, TextAlign, ValidatorType } from \"../../../enums\";\nimport { BoldText, ColoredText, SmallText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { IFilterQuery, TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport { ROUTE_BANK_STATEMENTS } from \"../../../routes\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport DateType from \"../../../types/Date\";\nimport { currencyScaleFormatter } from \"../../../types/Number\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IChangedFilter, isDraftView, ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { addAssetDef } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport {\n BankCoreBusinessPartnerAdditionalProperties,\n getBusinessPartnerFieldDef\n} from \"../../businessPartner/BusinessPartner.utils\";\nimport {\n ATTACHMENTS_COLUMN_LOCAL_CONTEXT,\n draftNumberOursFormatter,\n getCurrencyUnit,\n getDocumentAttachmentsColumnDef,\n getDocumentAttachmentsFilterDef\n} from \"../../documents/Document.utils\";\nimport {\n addBankAccountTableDefs,\n addBusinessPartnerTableDefs,\n draftInfoPath,\n getDraftInfoColumnDef\n} from \"../../documents/DocumentCommonDefs\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../../documents/DocumentDef\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { StatusCodeEnumTranslations } from \"../../reports/CommonDefs\";\nimport {\n getBankAccountFieldsDef,\n isBankAccountFieldVisible,\n SAVED_ACCOUNTS_PATH\n} from \"../bankAccounts/BankAccounts.utils\";\nimport { getPairDef, PairAdditionalData } from \"../Pair.utils\";\nimport {\n getPaymentStatusSummaryItem,\n getPaymentStatusTabData,\n getPaymentStatusTableColumnDef,\n getPaymentTabsDef,\n isExchangeRateVisible,\n makeCbaDefAdjustments,\n PaymentStatusSummaryAdditionalData\n} from \"../Payments.utils\";\nimport {\n bankTransactionTypeFormatter,\n createStatementFilterQuery,\n getAmountFilterDefs,\n IBankCustomData,\n paymentDocDateValidator\n} from \"./BankTransactions.utils\";\nimport BankTransactionsFormView from \"./BankTransactionsFormView\";\n\nconst getFilter: TInfoValue = (args: IGetValueArgs) => {\n // DoesWaitForDuplicateCheck doesn't work for drafts\n if (isDraftView(args.storage as TSmartODataTableStorage)) {\n return null;\n }\n\n return `${BankTransactionEntity.DoesWaitForDuplicateCheck} ne true`;\n};\n\ninterface IBankFormatterArgs {\n amount: number;\n transactionAmount?: number;\n currencyCode: string;\n transactionCurrencyCode?: string;\n useColor?: boolean;\n showPositive?: boolean;\n isPositive?: boolean;\n}\n\nexport const _bankFormatter = (args: IBankFormatterArgs): ICellValueObject => {\n const _convert = (val: number) => {\n return args.showPositive ? Math.abs(val) : val;\n };\n\n const hasDiffCurrency = args.transactionCurrencyCode !== args.currencyCode;\n const color: keyof DefaultTheme = args.useColor ? args.isPositive !== false && args.transactionAmount > 0 ? \"C_SEM_text_good\" : \"C_TEXT_primary\" : null;\n\n const formattedTransactionAmount = formatCurrency(_convert(args.transactionAmount) || 0, hasDiffCurrency ? args.transactionCurrencyCode : args.currencyCode);\n\n if (args.transactionCurrencyCode && hasDiffCurrency) {\n const formattedAmount = formatCurrency(_convert(args.amount) || 0, args.currencyCode);\n\n return {\n value: {formattedAmount} | \n {formattedTransactionAmount},\n tooltip: `${formattedAmount} | ${formattedTransactionAmount}`\n };\n } else {\n return {\n tooltip: formattedTransactionAmount,\n value: {formattedTransactionAmount} \n };\n }\n};\n\nexport const isPairFastEntryDisabled = (storage: FormStorage): boolean => {\n const isExVisible = isExchangeRateVisible(storage);\n\n const allIsSet =\n storage.data.entity?.DateBankTransaction &&\n storage.data.entity?.TransactionCurrency?.Code && storage.data.entity?.BankTransactionType &&\n (isDefined(storage.data.entity.TransactionAmount) && storage.data.entity.TransactionAmount !== 0)\n && (!isExVisible || isDefined(storage.data.entity.ExchangeRatePerUnit));\n\n return !allIsSet;\n};\n\nexport const bankAmountDueFormatter = (value: TValue, args: IGetValueArgs): ICellValueObject => {\n const formattedTransactionAmount = formatCurrency(Math.abs(Number(value ?? 0)), args.item.TransactionCurrencyCode);\n\n return {\n tooltip: formattedTransactionAmount,\n value: {formattedTransactionAmount}\n };\n};\n\nexport const bankAmountPaidFormatter = (value: TValue, args: IGetValueArgs): ICellValueObject => {\n const storage = args.storage as TSmartODataTableStorage;\n const pairedDocuments = storage.getCustomData().pairedDocuments;\n const id = args.item.Id;\n const pairedLink = pairedDocuments?.[id];\n const amount = pairedLink?.Amount;\n const transactionAmount = pairedLink?.TransactionAmount;\n\n const rootStorage = storage.getCustomData().rootStorage as FormStorage;\n const docCurrency = args.item.Currency?.Code;\n const transactionCurrency = rootStorage.data.entity.TransactionCurrency?.Code ?? rootStorage.data.entity.TransactionCurrencyCode;\n\n return _bankFormatter({\n amount,\n transactionAmount,\n transactionCurrencyCode: transactionCurrency,\n currencyCode: docCurrency,\n useColor: false\n });\n};\n\nexport const positiveBankAmountFormatter = (value: TValue, args: IGetValueArgs): ICellValueObject => {\n return _bankFormatter({\n amount: args.item?.Amount,\n transactionAmount: args.item?.TransactionAmount,\n transactionCurrencyCode: args.item?.TransactionCurrencyCode,\n currencyCode: args.item?.CurrencyCode,\n useColor: true,\n showPositive: true\n });\n};\n\nexport const bankAmountFormatter = (value: TValue, args: IGetValueArgs): ICellValueObject => {\n return _bankFormatter({\n amount: args.item?.Amount,\n transactionAmount: args.item?.TransactionAmount,\n transactionCurrencyCode: args.item?.TransactionCurrencyCode,\n currencyCode: args.item?.CurrencyCode,\n useColor: true\n });\n};\n\nexport const CUSTOMIZE_BUTTON_ID = \"CustomizeButtonId\";\n\nconst hasItems = (args: IGetValueArgs) => {\n return args.storage.data.entity.Items?.length > 0;\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const isCashBasisAccounting = isCashBasisAccountingCompany(context);\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n\n const filterBarDef: IFilterGroupDef[] = [{\n id: FilterBarGroup.Parameters,\n createQuery: false,\n icon: \"SafeFilter\",\n title: i18next.t(\"Banks:Accounts.BankAccounts\"),\n isExpanded: false,\n allowCustomFilters: false,\n defaultFilters: [\"BankStatement/BankAccount\"],\n removePadding: true,\n clearOnVariantChange: true,\n customButtons: [{\n id: CUSTOMIZE_BUTTON_ID,\n title: i18next.t(\"Banks:CustomizationDialog.ButtonTitle\"),\n iconName: \"Settings\"\n }],\n filterDefinition: {\n \"BankStatement/BankAccount\": {\n fieldSettings: {\n displayName: \"AccountNumber\"\n },\n // after yup update, without useForValidation, the filter is not applied because of validation error\n // => useForValidation: false\n useForValidation: false,\n isCompanyDependent: true,\n formatter: companyBankAccountFormatter,\n filterName: \"Id\",\n type: FieldType.Custom,\n filter: {\n buildFilter(item: IChangedFilter, settings: ICreateFilterStringSettings, storage: TableStorage): string | IFilterQuery {\n const values = item?.value as [];\n\n if (isDraftView(storage as TSmartODataTableStorage) || !item || isEmpty(values)) {\n return \"\";\n }\n\n return `NOT(BankStatement/BankAccount/Id in (${values.join(\", \")}))`;\n },\n customReadOnlyParsedValue: getFilterBarItemParsedValue\n },\n render: ({ props, storage }) => {\n const hasDrilldownFilter = !!getDrillDownFilters()?.[\"BankStatement/BankAccount\"];\n\n const _createStatement = (accId: number) => {\n storage.setCustomData({ accountIdForCreationDialog: accId });\n storage.refresh();\n };\n\n return (\n }\n isDisabled={hasDrilldownFilter}/>\n );\n }\n }\n }\n }, {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\"BankTransactionType\", \"DateBankTransaction\", \"TransactionAmount\", \"PaymentStatus\", \"SymbolVariable\", \"BankStatement/NumberOurs\", ATTACHMENTS_COLUMN_LOCAL_CONTEXT],\n filterDefinition: {\n PaymentInformation: {},\n [ATTACHMENTS_COLUMN_LOCAL_CONTEXT]: getDocumentAttachmentsFilterDef(),\n BankTransactionType: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n DateBankTransaction: {},\n SymbolSpecific: {},\n SymbolVariable: {},\n SymbolConstant: {},\n \"BankStatement/NumberOurs\": {\n label: i18next.t(\"Banks:Transactions.FromStatement\")\n },\n RemittanceInformation: { isValueHelp: false },\n ...withDisplayName(\"PaymentStatus\", {\n isDisabled: (args: IGetValueArgs) => {\n // doesn't work for drafts\n return isDraftView(args.storage as TSmartODataTableStorage);\n }\n }),\n \"Items/LinkedDocument/NumberOurs\": {\n label: i18next.t(\"Document:FormTab.PairedDocument\"),\n isValueHelp: false,\n filter: {\n onlyApplyCollectionFilterOnRoot: true\n }\n },\n ExchangeRatePerUnit: {},\n NumberOurs: {\n label: i18next.t(\"Banks:Transactions.NumberOurs\")\n },\n BankInternalId: {},\n PaymentType: {},\n BankAccountDescription: {},\n ...getAmountFilterDefs(),\n ...getFilterForDocumentDrafts(true),\n ...getCommonFilterDefs()\n }\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n ...getPaymentStatusTabData(),\n id: `${EntityTypeName.BankTransaction}Table`,\n draftDef: {\n draftEntitySet: EntitySetName.PaymentDocumentDrafts,\n draftFilter: `${PaymentDocumentDraftEntity.PaymentDocument}/Id eq null AND ${PaymentDocumentDraftEntity.DocumentTypeCode} eq '${DocumentTypeCode.BankTransaction}'`,\n draftProperty: BankTransactionEntity.PaymentDocumentDraft,\n draftPropsBlacklist: [BankTransactionEntity.PaymentDocumentDraft, BankTransactionEntity.PaymentStatus, BankTransactionEntity.PaymentStatusCode,\n BankTransactionEntity.DoesWaitForDuplicateCheck, BankTransactionEntity.TransactionAmountDue]\n },\n initialSortBy: [{\n id: \"DateBankTransaction\",\n sort: Sort.Desc\n }],\n columns: [\n draftInfoPath,\n BankTransactionEntity.NumberOurs,\n BankTransactionEntity.BankTransactionType,\n BankTransactionEntity.DateBankTransaction,\n createPath(BankTransactionEntity.BankStatement, BankStatementEntity.BankAccount),\n BankTransactionEntity.TransactionAmount,\n BankTransactionEntity.PaymentStatus,\n BankTransactionEntity.SymbolVariable,\n BankTransactionEntity.BankStatement,\n BankTransactionEntity.BankAccount,\n BankTransactionEntity.RemittanceInformation,\n createPath(BankTransactionEntity.Items, PaymentDocumentItemEntity.LinkedDocument, DocumentEntity.NumberOurs),\n DocumentEntity.Attachments,\n BankTransactionEntity.Note\n ],\n additionalProperties: [{\n id: createPath(BankTransactionEntity.Currency, CurrencyEntity.Name)\n }, {\n id: createPath(BankTransactionEntity.LastModifiedBy, UserEntity.Name)\n }, {\n id: createPath(BankTransactionEntity.BankStatement, BankStatementEntity.Locks, BankStatementLockEntity.Id)\n }, {\n id: BankTransactionEntity.DateLastModified\n }, {\n id: BankTransactionEntity.PaymentDocumentDraft\n }, {\n id: BankTransactionEntity.TransactionAmountDue\n }],\n columnDefinition: {\n ...getCommonTableColumnsDefs(),\n ...getPaymentStatusTableColumnDef(),\n ...getDraftInfoColumnDef(true),\n [DocumentEntity.Attachments]: getDocumentAttachmentsColumnDef(DocumentTypeCode.BankTransaction),\n BankTransactionType: {\n textAlign: TextAlign.Center,\n formatter: bankTransactionTypeFormatter\n },\n \"Items/LinkedDocument/NumberOurs\": {\n label: i18next.t(\"Banks:Transactions.PairedDocumentTable\"),\n textAlign: TextAlign.Left,\n additionalProperties: [\n { id: \"/Items/LinkedDocument/DocumentTypeCode\" },\n { id: \"/Items/PaymentDocumentItemTypeCode\" }\n ],\n formatter: (val: TValue, args?: IFormatOptions) => {\n let value = \"\", title = \"\";\n const items = args.entity?.Items?.filter((item: IPaymentDocumentItemEntity) => item.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment);\n for (const item of items || []) {\n const doc = item.LinkedDocument?.NumberOurs;\n if (doc) {\n value += `${value ? `, ${doc}` : doc}`;\n title += `${title ? `\\n${doc}` : doc}`;\n }\n }\n\n return {\n tooltip: title,\n value\n };\n },\n fieldSettings: {\n disableSort: true\n }\n },\n DateBankTransaction: {},\n ...withDisplayName(\"BankStatement\", \"NumberOurs\", {\n label: i18next.t(\"Banks:Transactions.FromStatement\")\n }),\n PaymentInformation: {},\n Note: {},\n \"BankStatement/BankAccount\": {\n label: i18next.t(\"Banks:Statements.AccountName\"),\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n TransactionAmount: {\n label: i18next.t(\"Banks:Transactions.Converted\"),\n additionalProperties: [{ id: \"/CurrencyCode\" }, { id: \"/ExchangeRatePerUnit\" }, { id: \"/Amount\" }],\n formatter: positiveBankAmountFormatter\n },\n Amount: {\n label: i18next.t(\"Banks:Transactions.Amount\")\n },\n NumberOurs: {\n label: i18next.t(\"Banks:Transactions.NumberOurs\"),\n formatter: draftNumberOursFormatter(EntitySetName.PaymentDocumentDrafts, BankTransactionEntity.PaymentDocumentDraft)\n },\n ExchangeRatePerUnit: {},\n SymbolSpecific: {},\n SymbolVariable: {},\n SymbolConstant: {},\n RemittanceInformation: {},\n BankInternalId: {},\n PaymentType: {},\n BankAccountDescription: {}\n },\n title: i18next.t(\"Banks:Transactions.Title\"),\n filter: getFilter\n };\n\n const summary: ISummaryItem[] = [\n { id: \"NumberOurs\" },\n getPaymentStatusSummaryItem()\n ];\n\n const hasInactiveAccount = (storage: Model) => {\n return (storage.data.entity as IBankTransactionEntity).BankStatement?.BankAccount?.IsActive === false;\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.BankTransaction}Form`,\n summary,\n files: AttachmentsDef,\n permissions: [CompanyPermissionCode.Bank],\n draftDef: {\n draftProperty: BankTransactionEntity.PaymentDocumentDraft,\n draftEntitySet: EntitySetName.PaymentDocumentDrafts,\n navigationToItem: PaymentDocumentItemDraftEntity.PaymentDocumentItem,\n navigationFromDraft: PaymentDocumentDraftEntity.PaymentDocument,\n draftAdditionalProps: [{ id: \"DateLastModified\" }, { id: \"Items/PaymentDocumentItem\" }]\n },\n showChanges: true,\n translationFiles: getDefinitions.translationFiles,\n formControl: BankTransactionsFormView,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Banks:Transactions:NewFormTitle\"), storage.data.entity?.NumberOurs),\n title: i18next.t(\"Banks:Transactions.FormTitle\"),\n additionalProperties: [\n { id: createPath(CashReceiptEntity.CreatedBy, \"Id\") },\n { id: BankTransactionEntity.PaymentDocumentDraft },\n ...BankCoreBusinessPartnerAdditionalProperties,\n DocumentBusinessPartnerAdditionalProperties,\n ...PairAdditionalData,\n ...AttachmentsAdditionalProperties,\n ...PaymentStatusSummaryAdditionalData,\n { id: \"BankAccount/AccountNumber\" },\n { id: \"TransactionCurrency/MinorUnit\" },\n { id: \"BankAccount/BankCode\" },\n { id: \"BankStatement/BankAccount/AccountNumber\" },\n { id: \"BankStatement/BankAccount/BankCode\" },\n { id: \"BankStatement/BankAccount/CountryCode\" },\n { id: \"BankStatement/BankAccount/IsActive\" },\n { id: \"NumberOurs\" },\n { id: \"TransactionAmount\" },\n { id: \"BankTransactionTypeCode\" },\n { id: `${BankTransactionEntity.Locks}/CreatedBy` },\n { id: `${BankTransactionEntity.Locks}/Type` },\n { id: \"IsUnrelatedToBusiness\" },\n {\n id: createPath(BankTransactionEntity.Items, PaymentDocumentItemEntity.LinkedDocument,\n DocumentEntity.BusinessPartner, DocumentEntity.BusinessPartner, BusinessPartnerEntity.Id)\n }\n ],\n fieldDefinition: {\n BankStatement: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Banks:Transactions.FromStatement\"),\n isDisabled: (args) => {\n return hasInactiveAccount(args.storage as FormStorage) || hasItems(args);\n },\n isRequired: true,\n filter: {\n select: (args: IGetValueArgs) => {\n const { storage } = args;\n\n const filter = createStatementFilterQuery(storage.context, storage.data.bindingContext.navigate(\"BankStatement\"));\n const secondaryFilter = storage.data.bindingContext.isNew() ? \"\" : `OR Id eq ${storage.data.entity.BankStatement.Id}`;\n\n // filter out any locked BankStatements\n return `(${filter} AND (not(${BankTransactionEntity.Locks}/any())) ${secondaryFilter})`;\n }\n },\n columns: [\n { id: BankStatementEntity.NumberOurs },\n { id: BankStatementEntity.DateFrom },\n { id: createPath(BankStatementEntity.BankAccount, CompanyBankAccountEntity.TransactionCurrencyCode) },\n { id: createPath(BankStatementEntity.BankAccount, CompanyBankAccountEntity.Name) }\n ],\n fieldSettings: {\n displayName: \"NumberOurs\",\n showTabularHeader: false,\n preloadItems: true,\n additionalProperties: [{ id: \"BankAccount/TransactionCurrencyCode\" },\n { id: \"BankAccount/Currency/MinorUnit\" }, { id: \"BankAccount/PaymentServiceID\" },\n { id: \"Transactions\" }, { id: \"BankAccount/AccountNumber\" }, { id: \"BankAccount/BankCode\" }, { id: \"BankAccount/BalanceSheetAccountNumberSuffix\" },\n { id: \"BankAccount/CountryCode\" }, { id: \"BankAccount/IBAN\" }, { id: \"BankAccount/SWIFT\" }, { id: \"BankAccount/AbaNumber\" }, { id: \"BankAccount/Name\" }\n ],\n orderBy: {\n propertyName: BankStatementEntity.DateFrom,\n asc: false\n },\n localDependentFields: [{\n from: { id: \"BankAccount/TransactionCurrencyCode\" },\n to: { id: \"TransactionCurrency/Code\" }\n }, {\n from: { id: \"BankAccount/Currency/MinorUnit\" },\n to: { id: \"TransactionCurrency/MinorUnit\" }\n }, {\n from: { id: \"BankAccount\" },\n to: { id: \"BankStatement/BankAccount\" }\n }],\n querySettings: {\n \"BankStatement/Transactions\": {\n count: true,\n top: 0\n }\n },\n transformFetchedItems: (items, args: IGetValueArgs) =>\n (items || []).map(item => ({\n ...item,\n link: getIntentNavParams({\n route: `${ROUTE_BANK_STATEMENTS}/${item.id}`,\n context: args.storage.context\n })\n }))\n },\n render: (args: IFieldDefFn) => {\n const iconClick = (e: React.MouseEvent) => {\n e.preventDefault();\n\n const storage = args.storage as TSmartODataTableStorage;\n storage.setCustomData({\n statementPairedDialogOpened: true\n });\n args.storage.refresh();\n };\n\n return (\n \n }\n {...args.props}\n auditTrailData={args.props.auditTrailData}\n onChange={args.events.onSelectChange}\n />\n \n );\n },\n width: BasicInputSizes.L,\n affectedFields: [{ id: \"BankStatement/BankAccount/CurrencyCode\" },\n { id: \"Items/TransactionAmount\" },\n { id: `${BindingContext.localContext(\"ItemsHeader\")}` },\n { id: \"TransactionCurrency\" },\n { id: \"TransactionAmount\" },\n { id: \"BankStatement/BankAccount\" }, { id: \"ExchangeRatePerUnit\" }]\n },\n TransactionAmount: {\n type: FieldType.NumberInput,\n isDisabled: hasItems,\n width: BasicInputSizes.S,\n label: i18next.t(\"Banks:Transactions.Amount\"),\n affectedFields: [{\n id: \"Items/AccountAssignmentSelection/AccountAssignment\"\n }, { id: `${BindingContext.localContext(\"ItemsHeader\")}` }],\n formatter: (val: TValue, args: IGetValueArgs) => {\n if (isDefined(val)) {\n return currencyScaleFormatter(Math.abs(val as number), args.storage.data.entity.TransactionCurrency);\n }\n\n return \"\";\n },\n fieldSettings: {\n unit: getCurrencyUnit\n },\n customizationData: {\n dependents: [CashReceiptEntity.ExchangeRatePerUnit]\n }\n },\n TransactionCurrency: {\n label: i18next.t(\"Banks:Accounts.Currency\"),\n isVisible: false,\n width: BasicInputSizes.M,\n isReadOnly: true,\n customizationData: {\n useForCustomization: false\n }\n },\n DateBankTransaction: {\n isDisabled: hasItems,\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: paymentDocDateValidator\n }\n }\n },\n ...getBusinessPartnerFieldDef(false),\n ExchangeRatePerUnit: {\n ...ExchangeRatePerUnit,\n isDisabled: hasItems,\n width: BasicInputSizes.S,\n defaultValue: null,\n label: i18next.t(\"Document:Form.CurrencyRate\"),\n isReadOnly: (args: IGetValueArgs) => {\n return args.storage.data?.entity?.TransactionCurrency?.Code === \"CZK\";\n }\n },\n \"BankStatement/BankAccount\": {\n type: FieldType.ComboBox,\n columns: [\n { id: \"Name\" },\n { id: \"AccountNumber\" }\n ],\n fieldSettings: {\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n const _items: ISelectItem[] = [];\n const account: ICompanyBankAccountEntity = (args.storage.data.entity?.BankStatement?.BankAccount) as IBankAccountEntity;\n\n if (!isObjectEmpty(account)) {\n const number = generalBankAccountFormatter(account.AccountNumber, {\n storage: args.storage,\n bindingContext: args.bindingContext,\n item: account,\n entity: account\n });\n\n _items.push({\n id: account.Id,\n label: account.Name,\n additionalData: {\n ...account,\n AccountNumber: number\n }\n });\n }\n\n return _items;\n },\n displayName: \"Name\",\n shouldDisplayAdditionalColumns: true,\n additionalProperties: [\n { id: \"BankCode\" },\n { id: \"CountryCode\" }\n ]\n },\n additionalProperties: [\n { id: CompanyBankAccountEntity.Name },\n { id: CompanyBankAccountEntity.PaymentServiceID },\n { id: CompanyBankAccountEntity.BalanceSheetAccountNumberSuffix }\n ],\n isRequired: false,\n isReadOnly: true\n },\n Note: NoteFieldDef,\n ...getBankAccountFieldsDef({\n addPaymentMethod: false,\n type: DocumentTypeCode.BankTransaction,\n savedAccountLabel: i18next.t(\"Banks:Transactions.FromAccount\"),\n alwaysShowSymbolVariable: true\n }),\n RemittanceInformation: {\n width: BasicInputSizes.XL,\n isVisible: isBankAccountFieldVisible\n },\n PaymentInformation: {\n width: BasicInputSizes.L\n },\n BankTransactionType: {\n type: FieldType.SegmentedButton,\n isDisabled: hasItems,\n affectedFields: [{ id: `${BindingContext.localContext(\"ItemsHeader\")}` }],\n fieldSettings: {\n items: [{\n id: BankTransactionTypeCode.IncomingPayment,\n title: i18next.t(\"Banks:Pairing.InPayment\"),\n iconName: \"Incoming\"\n }, {\n id: BankTransactionTypeCode.OutgoingPayment,\n iconName: \"Outgoing\",\n title: i18next.t(\"Banks:Pairing.OutPayment\")\n }]\n }\n },\n BankInternalId: {},\n PaymentType: {\n width: BasicInputSizes.L\n },\n BankAccountDescription: {\n width: BasicInputSizes.L\n },\n ...getPairDef(DocumentTypeCode.BankTransaction, hasAccountAssignment)\n },\n groups: [{\n id: \"Note\",\n title: i18next.t(\"Document:FormGroup.Note\"),\n rows: [[{ id: \"Note\" }]]\n }, {\n id: \"payment\",\n title: i18next.t(\"Banks:Transactions.Payment\"),\n rows: [[\n { id: \"BankStatement\" }, { id: \"BankStatement/BankAccount\" }\n ], [\n { id: \"DateBankTransaction\" },\n { id: \"BankTransactionType\" },\n { id: \"TransactionAmount\" },\n { id: \"ExchangeRatePerUnit\" }\n ], [\n { id: \"SymbolVariable\" },\n { id: \"SymbolSpecific\" },\n { id: \"SymbolConstant\" },\n { id: \"RemittanceInformation\" },\n { id: \"PaymentInformation\" }\n ]]\n }, {\n id: \"Pair\",\n title: i18next.t(\"Banks:Pairing.PairForm\"),\n lineItems: {\n collection: \"Items\",\n order: \"Id\",\n columns: [{\n id: \"TransactionAmount\"\n }, {\n id: \"LinkedDocument/NumberOurs\"\n }],\n isReadOnly: (args: IGetValueArgs) => {\n return args.data.IsUnrelatedToBusiness;\n },\n render: (args: IGroupRenderFn) => {\n return ;\n }\n }\n },\n getPaymentTabsDef(isCashBasisAccounting, context)\n ]\n };\n\n const savedAccount = form.fieldDefinition[SAVED_ACCOUNTS_PATH];\n form.fieldDefinition[SAVED_ACCOUNTS_PATH] = {\n ...savedAccount,\n columns: [{ id: \"AccountNumber\" }, { id: \"BusinessPartner/Name\" }]\n };\n\n const definition = {\n entitySet: EntitySetName.BankTransactions,\n table,\n form\n };\n\n if (isCashBasisAccounting) {\n addAssetDef(definition);\n }\n\n addBusinessPartnerTableDefs(definition, 1, false);\n addBankAccountTableDefs(definition, 1);\n\n const itemsGroup = form.groups.find(g => g.id === \"Pair\");\n\n if (hasAccountAssignment) {\n const filtersDef = filterBarDef.find((bar) => bar.id === FilterBarGroup.Filters);\n filtersDef.defaultFilters.push(\"Items/DateAccountingTransaction\");\n filtersDef.filterDefinition = {\n ...filtersDef.filterDefinition,\n \"Items/DateAccountingTransaction\": {\n isValueHelp: false\n },\n \"Items/AccountAssignmentSelection/AccountAssignment/ShortName\": {\n isValueHelp: false,\n filter: {\n onlyApplyCollectionFilterOnRoot: true\n }\n },\n \"Items/AccountAssignmentSelection/AccountAssignment/Name\": {\n isValueHelp: false,\n filter: {\n onlyApplyCollectionFilterOnRoot: true\n }\n }\n };\n\n table.columns.push(\"Items/AccountAssignmentSelection/AccountAssignment/ShortName\");\n\n table.columnDefinition = {\n ...table.columnDefinition,\n \"Items/DateAccountingTransaction\": {\n formatter: (value: TValue, args: IFormatOptions) => {\n const formatted = (args.entity.Items || []).reduce((previousValue: string, item: IEntity) => {\n return previousValue + (previousValue ? \", \" : \"\") + DateType.format(item.DateAccountingTransaction);\n }, \"\");\n return {\n tooltip: formatted,\n value: formatted\n };\n }\n },\n \"Items/AccountAssignmentSelection/AccountAssignment/ShortName\": {\n additionalProperties: [{ id: \"/Items/PaymentDocumentItemType\" }, { id: \"/Items/Amount\" },\n { id: \"/Items/AccountAssignmentSelection/Selection/Code\" }, { id: \"/Items/SplitAccountAssignments\" }],\n label: i18next.t(\"Banks:Transactions.AccountAssignment\"),\n formatter: (val: TValue, args?: IFormatOptions) => {\n const entity: IBankTransactionEntity = args.entity;\n const items = entity.Items?.filter(item => item.PaymentDocumentItemType?.Code === PaymentDocumentItemTypeCode.Payment\n || item.PaymentDocumentItemType?.Code === PaymentDocumentItemTypeCode.Other);\n const count = items?.length || 0;\n const lbl = args.storage.t(\"Banks:Transactions.MoreAssignment\") as string;\n\n if (count === 1) {\n const item = items[0];\n const isSplit = item.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split;\n\n if (isSplit && !item.SplitAccountAssignments?.length) {\n // special case from BE, code is Split but split items are empty => we display empty field\n return \"\";\n }\n\n const shortName = item.AccountAssignmentSelection?.AccountAssignment?.ShortName;\n return isSplit ? lbl : (shortName ?? args.storage.t(\"Banks:Transactions.NoAssignment\") as string);\n }\n\n return count > 1 ? lbl : \"\";\n },\n fieldSettings: {\n disableSort: true\n }\n }\n };\n\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"Amount\" }, 1);\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"DateAccountingTransaction\" }, 2);\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"AccountAssignmentSelection/AccountAssignment\" }, 3);\n }\n if (isCashBasisAccounting) {\n makeCbaDefAdjustments(form, itemsGroup);\n }\n\n return definition;\n};\n\ngetDefinitions.translationFiles = [\"Common\", \"Enums\", \"NumberRange\", \"Banks\", \"Document\", \"Error\", \"Categories\", \"FixedAsset\", getEnumNameSpaceName(EntityTypeName.CbaCategoryTaxImpact), ...StatusCodeEnumTranslations];\nsetDefByEntityType(EntityTypeName.BankTransaction, getDefinitions);\n","import { createPath } from \"@odata/BindingContext\";\nimport {\n BusinessPartnerBankAccountEntity, BusinessPartnerContactEntity,\n BusinessPartnerEntity, BusinessPartnerIssuedDocumentDefaultEntity, BusinessPartnerReceivedDocumentDefaultEntity,\n DocumentBusinessPartnerEntity,\n DocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\n\nexport const BusinessPartnerSaveErrors = [\n \"BusinessPartnerCombinationOfNameAndLegalNumberAlreadyExists\",\n \"BusinessPartnerCombinationOfNameAndAddressAlreadyExists\"\n];\n\nexport const DocumentBusinessPartnerAdditionalProperties = {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner),\n additionalProperties: [\n {\n id: BusinessPartnerEntity.BankAccounts,\n additionalProperties: [{\n id: BusinessPartnerBankAccountEntity.CountryCode\n }, {\n id: BusinessPartnerBankAccountEntity.AccountNumber\n }, {\n id: BusinessPartnerBankAccountEntity.BankCode\n }, {\n id: BusinessPartnerBankAccountEntity.IBAN\n }, {\n id: BusinessPartnerBankAccountEntity.SWIFT\n }, {\n id: BusinessPartnerBankAccountEntity.AbaNumber\n }]\n },\n {\n id: BusinessPartnerEntity.Contacts,\n additionalProperties: [{\n id: BusinessPartnerContactEntity.FirstName\n }, {\n id: BusinessPartnerContactEntity.LastName\n }, {\n id: BusinessPartnerContactEntity.Email\n }, {\n id: BusinessPartnerContactEntity.PhoneNumber\n }]\n },\n {\n id: BusinessPartnerEntity.IssuedDocumentDefault,\n additionalProperties: [{\n id: BusinessPartnerIssuedDocumentDefaultEntity.DaysDue\n }, {\n id: BusinessPartnerIssuedDocumentDefaultEntity.VatClassification\n }]\n },\n {\n id: BusinessPartnerEntity.ReceivedDocumentDefault,\n additionalProperties: [{\n id: BusinessPartnerReceivedDocumentDefaultEntity.DaysDue\n }, {\n id: BusinessPartnerReceivedDocumentDefaultEntity.VatClassification\n }]\n }\n ]\n};","import { IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n getAddressFields,\n hasOptionalPostalCode,\n PhoneNumberDef,\n phoneNumberInputFormatter,\n SingleBusinessPartnerDef\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { getCollapsedGroupId } from \"@components/smart/Smart.utils\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { invalidateItems } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport BindingContext, { createPath, IEntity } from \"@odata/BindingContext\";\nimport { setNestedValue } from \"@odata/Data.utils\";\nimport {\n AccountAssignmentSelectionEntity,\n BankTransactionEntity,\n BusinessPartnerBankAccountEntity,\n BusinessPartnerContactEntity,\n BusinessPartnerEntity,\n BusinessPartnerIssuedDocumentDefaultEntity,\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n EntitySetName,\n IBankAccountEntity,\n IBankTransactionBusinessPartnerEntity,\n IBusinessPartnerBankAccountEntity,\n IBusinessPartnerContactEntity,\n IBusinessPartnerEntity,\n IBusinessPartnerIssuedDocumentDefaultEntity,\n IBusinessPartnerReceivedDocumentDefaultEntity,\n ICompanyBankAccountEntity,\n ICountryEntity,\n IDocumentBusinessPartnerEntity,\n IDocumentItemEntity,\n IPrDeductionBusinessPartnerEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n CountryCode,\n CurrencyCode,\n DocumentTypeCode,\n PaymentMethodCode,\n SelectionCode,\n VatStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { BatchRequest, OData } from \"@odata/OData\";\nimport { invalidateItemTemplateSelectItems } from \"@pages/admin/itemTemplates/ItemTemplates.utils.shared\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { areObjectsEqual, isDefined, isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport i18next from \"i18next\";\n\nimport { ARES_GET_API } from \"../../constants\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FieldType,\n GroupedField,\n NavigationSource,\n TextAlign,\n ValidatorType\n} from \"../../enums\";\nimport { setGroupStatus } from \"../../views/formView/Form.utils\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport {\n convertAccountAssignmentIntoSelection,\n loadAccountAssignments,\n rewriteAccountAssignment\n} from \"../accountAssignment/AccountAssignment.utils\";\nimport {\n appendAdditionalItemsToSavedBankAccounts,\n BankAccountDependentFields,\n hasEmptyBankAccount,\n IBankAccountArgs,\n IBankAccountsCustomData,\n prepareSavedAccounts,\n TBankAccountRelatedEntity,\n updateAllSavedAccountsOnPartnerChange\n} from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { getCompanyCountryCode, getCompanyCurrencyCode, getCompanyUsedCurrencyCodes } from \"../companies/Company.utils\";\nimport { isReceived, refreshExchangeRate } from \"../documents/Document.utils\";\nimport { IDocumentExtendedEntity } from \"../documents/DocumentInterfaces\";\nimport { TFieldDefinition, TFieldsDefinition } from \"../PageUtils\";\n\n\nexport const ReceivedBankAccountDefaultsPath = \"##ReceivedBankAccount##\";\nexport const ShowReceivedDefaultsPath = \"##ShowReceivedDefaults##\";\nexport const ShowIssuedDefaultsPath = \"##ShowIssuedDefaults##\";\n\nexport const BusinessPartnerSaveErrors = [\n \"BusinessPartnerCombinationOfNameAndLegalNumberAlreadyExists\",\n \"BusinessPartnerCombinationOfNameAndAddressAlreadyExists\"\n];\nexport const BusinessPartnerLegalNumberPath = \"BusinessPartner/LegalNumber\";\n\nexport interface IBusinessPartnerEntityExtended extends IBusinessPartnerEntity {\n [ReceivedBankAccountDefaultsPath]?: number;\n [ShowReceivedDefaultsPath]?: boolean;\n [ShowIssuedDefaultsPath]?: boolean;\n}\n\nexport interface IBusinessPartnerCustomData extends IFormStorageDefaultCustomData {\n businessPartnerContacts?: IBusinessPartnerContactEntity[];\n // true if the current business partner was selected from ARES select\n isBusinessPartnerFromAres?: boolean;\n}\n\nexport const BankCoreBusinessPartnerAdditionalProperties = [{\n id: createPath(DocumentEntity.BusinessPartner, BusinessPartnerEntity.Name)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, BusinessPartnerEntity.LegalNumber)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, BusinessPartnerEntity.VatStatus)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.TaxNumber)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.FirstName)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.LastName)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.PhoneNumber)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Email)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Street)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.City)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Country)\n}, {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.PostalCode)\n}];\n\n\nexport const getBusinessPartnerBankAccountAdditionalProperties = (prefix = \"\", withoutIsDefaultForRecDocs?: boolean): IFieldDef[] => {\n const fields = [\n BusinessPartnerBankAccountEntity.CountryCode, BusinessPartnerBankAccountEntity.AccountNumber,\n BusinessPartnerBankAccountEntity.BankCode, BusinessPartnerBankAccountEntity.IBAN,\n BusinessPartnerBankAccountEntity.SWIFT, BusinessPartnerBankAccountEntity.AbaNumber\n ];\n\n if (!withoutIsDefaultForRecDocs) {\n fields.push(BusinessPartnerBankAccountEntity.IsDefaultForReceivedDocuments);\n }\n\n return fields.map(field => {\n if (prefix) {\n return {\n id: `${prefix}/${field}`\n };\n } else {\n return {\n id: field\n };\n }\n });\n};\n\nexport const DocumentBusinessPartnerAdditionalProperties = {\n id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner),\n additionalProperties: [\n {\n id: BusinessPartnerEntity.BankAccounts,\n additionalProperties: getBusinessPartnerBankAccountAdditionalProperties()\n },\n {\n id: BusinessPartnerEntity.Contacts,\n additionalProperties: [{\n id: BusinessPartnerContactEntity.FirstName\n }, {\n id: BusinessPartnerContactEntity.LastName\n }, {\n id: BusinessPartnerContactEntity.Email\n }, {\n id: BusinessPartnerContactEntity.PhoneNumber\n }]\n },\n {\n id: createPath(BusinessPartnerEntity.IssuedDocumentDefault, BusinessPartnerIssuedDocumentDefaultEntity.DaysDue)\n }\n ]\n};\n\nexport const getBusinessPartnerGroup = (file?: string): IFormGroupDef => {\n return {\n id: \"partner\",\n title: i18next.t(file ? `${file}:FormGroup.BusinessPartner` : \"Common:General.BusinessPartner\"),\n rows: [[{ id: \"BusinessPartner/Name\" }, { id: \"BusinessPartner/LegalNumber\" }]]\n };\n};\nexport const businessPartnerDependentFields = (bpPath = \"BusinessPartner\") => ([\n {\n from: { id: \"Id\" },\n to: { id: `${bpPath}/BusinessPartner` }\n }, {\n from: { id: \"LegalNumber\" },\n to: { id: `${bpPath}/LegalNumber` }\n }, {\n from: { id: \"Name\" },\n to: { id: `${bpPath}/Name` }\n }, {\n from: { id: \"TaxNumber\" },\n to: { id: `${bpPath}/TaxNumber` }\n }, {\n from: { id: \"VatStatus\" },\n to: { id: `${bpPath}/VatStatus` }\n }, {\n from: { id: \"Contacts/0/FirstName\" },\n to: { id: `${bpPath}/FirstName` }\n }, {\n from: { id: \"Contacts/0/LastName\" },\n to: { id: `${bpPath}/LastName` }\n }, {\n from: { id: \"Contacts/0/PhoneNumber\" },\n to: { id: `${bpPath}/PhoneNumber` }\n }, {\n from: { id: \"Contacts/0/Email\" },\n to: { id: `${bpPath}/Email` }\n }, {\n from: { id: \"BillingAddress/Street\" },\n to: { id: `${bpPath}/Street` }\n }, {\n from: { id: \"BillingAddress/City\" },\n to: { id: `${bpPath}/City` }\n }, {\n from: { id: \"BillingAddress/Country\" },\n to: { id: `${bpPath}/Country` }\n }, {\n from: { id: \"BillingAddress/PostalCode\" },\n to: { id: `${bpPath}/PostalCode` }\n }\n]);\n\nexport const accountPartnerDepFields = businessPartnerDependentFields().map(field => ({\n ...field,\n from: { id: `BusinessPartner/${field.from.id}` }\n}));\n\nexport const BusinessPartnerDef = (bpPath = \"BusinessPartner\"): TFieldDefinition => ({\n ...SingleBusinessPartnerDef,\n fieldSettings: {\n ...SingleBusinessPartnerDef.fieldSettings,\n localDependentFields: businessPartnerDependentFields(bpPath),\n loadFromDb: true\n },\n columns: [{ id: BusinessPartnerEntity.Name }, { id: BusinessPartnerEntity.LegalNumber, textAlign: TextAlign.Right }]\n});\n\nconst isSubFieldRequired = (args: IGetValueArgs, isBPRequired: boolean, bpPath = \"BusinessPartner\") => {\n const entity = args.storage.data.entity; // some document or bankTransaction\n if (entity[bpPath]?.VatStatus?.Code !== VatStatusCode.NotVATRegistered || args.bindingContext.getPath() === BusinessPartnerEntity.VatStatus) {\n return isBPRequired || !!(entity[bpPath]?.Name || entity[bpPath]?.LegalNumber);\n }\n return false;\n};\n\nexport const createContactsItems = (storage: FormStorage, labelProp: string) => {\n const contacts: IBusinessPartnerContactEntity[] = storage.data.entity.BusinessPartner?.BusinessPartner?.Contacts;\n return contacts?.map(contact => {\n const id = contact[labelProp as keyof typeof contact] as string;\n const formattedPhone = phoneNumberInputFormatter(contact.PhoneNumber);\n\n return {\n id,\n label: id,\n additionalData: {\n Email: contact.Email,\n PhoneNumber: contact.PhoneNumber,\n FirstName: contact.FirstName,\n LastName: contact.LastName\n },\n tabularData: [contact.Email, formattedPhone, contact.FirstName, contact.LastName]\n };\n });\n};\n\nconst bpLocalDependentFields = [{\n from: { id: BusinessPartnerContactEntity.PhoneNumber },\n to: { id: BusinessPartnerContactEntity.PhoneNumber },\n navigateFrom: NavigationSource.Parent\n}, {\n from: { id: BusinessPartnerContactEntity.FirstName },\n to: { id: BusinessPartnerContactEntity.FirstName },\n navigateFrom: NavigationSource.Parent\n}, {\n from: { id: BusinessPartnerContactEntity.LastName },\n to: { id: BusinessPartnerContactEntity.LastName },\n navigateFrom: NavigationSource.Parent\n}, {\n from: { id: BusinessPartnerContactEntity.Email },\n to: { id: BusinessPartnerContactEntity.Email },\n navigateFrom: NavigationSource.Parent\n}];\n\nconst createBpFieldSettings = (fieldName: string) => {\n return {\n localDependentFields: bpLocalDependentFields?.filter(field => field.from.id !== fieldName),\n itemsFactory: (args: IGetValueArgs) => {\n return Promise.resolve(createContactsItems(args.storage as FormStorage, fieldName));\n }\n };\n};\n\nexport const getBusinessPartnerFieldDef = (isRequired: boolean, file?: string, businessPartnerPath?: string): TFieldsDefinition => {\n const bpPath = businessPartnerPath ?? \"BusinessPartner\";\n const addressFields = getAddressFields(bpPath);\n const creatingKey = file && i18next.exists(`${file}:FormGroup.NewPartner`) ? `${file}:FormGroup.NewPartner` : \"Common:General.NewPartner\";\n\n return {\n [`${bpPath}/Name`]: {\n groupedField: GroupedField.MultiStart,\n ...BusinessPartnerDef(businessPartnerPath),\n width: BasicInputSizes.XL,\n isRequired\n },\n [`${bpPath}/LegalNumber`]: {\n groupedField: GroupedField.MultiEnd,\n ...BusinessPartnerDef(businessPartnerPath),\n width: BasicInputSizes.S,\n creatingTitle: i18next.t(creatingKey),\n collapsedRows: [\n [\n { id: `${bpPath}/VatStatus` },\n { id: `${bpPath}/TaxNumber` },\n { id: `${bpPath}/Street` },\n { id: `${bpPath}/City` },\n { id: `${bpPath}/PostalCode` },\n { id: `${bpPath}/Country` }\n ],\n [\n { id: `${bpPath}/Email` },\n { id: `${bpPath}/PhoneNumber` },\n { id: `${bpPath}/FirstName` },\n { id: `${bpPath}/LastName` }\n ]\n ]\n },\n [`${bpPath}/TaxNumber`]: {},\n [`${bpPath}/Street`]: {\n ...addressFields[`${bpPath}/Street`],\n isRequired: (args) => isSubFieldRequired(args, isRequired, bpPath)\n },\n [`${bpPath}/City`]: {\n ...addressFields[`${bpPath}/City`],\n isRequired: (args) => isSubFieldRequired(args, isRequired, bpPath)\n },\n [`${bpPath}/PostalCode`]: {\n ...addressFields[`${bpPath}/PostalCode`],\n isRequired: (args) => isSubFieldRequired(args, isRequired, bpPath) && !hasOptionalPostalCode(args)\n },\n [`${bpPath}/Country`]: {\n ...addressFields[`${bpPath}/Country`],\n isRequired: (args) => isSubFieldRequired(args, isRequired, bpPath)\n },\n [`${bpPath}/Email`]: {\n type: FieldType.Autocomplete,\n width: BasicInputSizes.L,\n fieldSettings: createBpFieldSettings(BusinessPartnerContactEntity.Email),\n validator: {\n type: ValidatorType.Email\n }\n },\n [`${bpPath}/PhoneNumber`]: {\n ...PhoneNumberDef,\n // TODO: For now disable the settings as select changes need to be done\n // fieldSettings: createBpFieldSettings(BusinessPartnerContactEntity.PhoneNumber),\n // type: FieldType.Autocomplete\n },\n [`${bpPath}/FirstName`]: {\n type: FieldType.Autocomplete,\n fieldSettings: createBpFieldSettings(BusinessPartnerContactEntity.FirstName),\n },\n [`${bpPath}/LastName`]: {\n type: FieldType.Autocomplete,\n fieldSettings: createBpFieldSettings(BusinessPartnerContactEntity.LastName),\n },\n [`${bpPath}/VatStatus`]: {\n type: FieldType.ComboBox,\n isRequired: (args) => isSubFieldRequired(args, isRequired, bpPath),\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: \"Name\"\n }\n }\n };\n};\n\nexport const isBusinessPartnerField = (name: string): boolean => {\n return name === \"BusinessPartner/Name\" || name === \"BusinessPartner/LegalNumber\";\n};\n\nexport const loadPartner = async (partnerId: string, oData: OData): Promise => {\n const response = await oData\n .getEntitySetWrapper(EntitySetName.BusinessPartners)\n .query(partnerId)\n .expand(\"BankAccounts\", (q) => {\n q.select(\"Id\", \"AccountNumber\", \"AbaNumber\", \"BankCode\", \"IBAN\", \"SWIFT\", \"IsDefaultForReceivedDocuments\");\n q.expand(\"Country\");\n })\n .expand(\"Contacts\", (q) => {\n q.select(\"Id\", \"FirstName\", \"LastName\", \"Email\", \"PhoneNumber\").orderBy(\"Order\");\n })\n .expand(\"ReceivedDocumentDefault\", q => {\n q.expand(\"AccountAssignment\");\n q.expand(\"VatClassification\");\n })\n .expand(\"BillingAddress\", q => {\n q.expand(\"Country\");\n })\n .expand(\"IssuedDocumentDefault\", q => {\n q.expand(\"AccountAssignment\");\n q.expand(\"VatClassification\");\n q.expand(\"CompanyBankAccount\", qq => {\n qq.expand(\"Country\");\n });\n })\n .expand(\"VatStatus\")\n .fetchData();\n\n return response?.value ?? {};\n};\n\nexport const fetchAresDetail = async (legalNumber: string, countryCode: CountryCode.CzechRepublic | CountryCode.Slovakia): Promise => {\n const response = await fetch(`${ARES_GET_API}?country=${countryCode}&identificationNumber=${legalNumber}`);\n\n if (!response.ok) {\n logger.error(\"couldn't fetch from ARES API\");\n return null;\n }\n\n const item = await response.json();\n return {\n Id: null, // clears businessPartner relation as this is a new one\n BillingAddress: {\n City: item.Record.Address.City,\n CountryCode: item.Record.Address.Country,\n Country: {\n Code: item.Record.Address.Country,\n IsEuMember: true, // we support only SK and CZ now...\n IsEEA: true\n },\n PostalCode: item.Record.Address.PostalCode,\n Street: `${item.Record.Address.Street || item.Record.Address.City || \"\"} ${item.Record.Address.HouseNumber || \"\"}`.trim()\n },\n TaxNumber: item.Record.VatInfo?.VatIdentificationNumber,\n VatStatus: {\n Code: item.Record.VatInfo?.VatPayer ? VatStatusCode.VATRegistered : item.Record.IsIdentifiedPersonForVat ? VatStatusCode.IdentifiedPerson : VatStatusCode.NotVATRegistered\n },\n MainActivity: item.Record.MainNaceActivity\n };\n};\n\n\nexport function setBusinessPartnerGroupStatus(storage: FormStorage, isCreating: boolean, bpPath = \"BusinessPartner\"): void {\n if (storage.isReadOnly) {\n // when storage is in read-only mode, we don't want to show group status as creating, even there is no BP ID\n isCreating = false;\n }\n setGroupStatus(getCollapsedGroupId({ id: `${bpPath}/LegalNumber` }), storage, isCreating);\n}\n\ninterface IBusinessPartnerChangeArgs {\n showsAllBankAccounts?: boolean;\n allowCreate?: boolean;\n currencyDatePropPath?: string;\n}\n\ntype TEntityBusinessPartner =\n IBankTransactionBusinessPartnerEntity\n | IDocumentBusinessPartnerEntity\n | IPrDeductionBusinessPartnerEntity;\n\nconst resetContactItems = (storage: FormStorage) => {\n const fields = [BusinessPartnerContactEntity.Email, BusinessPartnerContactEntity.PhoneNumber,\n BusinessPartnerContactEntity.FirstName, BusinessPartnerContactEntity.LastName];\n const bcRoot = storage.data.bindingContext.navigate(\"BusinessPartner\");\n\n invalidateItems(fields.map(field => bcRoot.navigate(field)), storage);\n};\n\nexport const handleBusinessPartnerChange = async (args: IBankAccountArgs, e: ISmartFieldChange, opts?: IBusinessPartnerChangeArgs): Promise => {\n const { showsAllBankAccounts, allowCreate, currencyDatePropPath } = opts ?? {};\n const isBPMainField = isBusinessPartnerField(e.bindingContext.getNavigationPath(true));\n const bpPath = (args.businessPartnerPath ?? \"BusinessPartner\") as keyof TBankAccountRelatedEntity;\n const bpEntity = args.storage.data.entity[bpPath] as TEntityBusinessPartner;\n\n if (isBPMainField) {\n if (e.triggerAdditionalTasks) {\n const { Id } = e.additionalData ?? {};\n\n if (allowCreate !== false) {\n setBusinessPartnerGroupStatus(args.storage, !Id, args.businessPartnerPath);\n }\n\n appendAdditionalItemsToSavedBankAccounts(args);\n setSavedContactItems(args.storage, e.additionalData.Contacts);\n setSavedBankAccounts(args.storage, e.additionalData.BankAccounts);\n if (!bpEntity.BusinessPartner) {\n bpEntity.BusinessPartner = {};\n }\n bpEntity.BusinessPartner.Contacts = e.additionalData.Contacts;\n bpEntity.BusinessPartner.BankAccounts = e.additionalData.BankAccounts;\n\n if (showsAllBankAccounts) {\n updateAllSavedAccountsOnPartnerChange({ ...args, businessPartner: e.additionalData });\n }\n\n resetContactItems(args.storage);\n args.storage.refresh();\n } else if (bpEntity?.BusinessPartner) {\n // User changes only Name/LegalNumber without picking from list -> remove the relation\n bpEntity.BusinessPartner = undefined;\n }\n }\n const isBPCountry = e.bindingContext.getPath() === DocumentBusinessPartnerEntity.Country && e.bindingContext.getParent().getPath(true) === BankTransactionEntity.BusinessPartner;\n if (opts.currencyDatePropPath && (isBPMainField || isBPCountry) && e.triggerAdditionalTasks) {\n // change currency if there are no changed items\n if (!(args.storage.data.entity as IDocumentExtendedEntity).Items?.some((item: IDocumentItemEntity) => item.TransactionAmount)) {\n await setDefaultBPCurrency(args, e, currencyDatePropPath);\n }\n }\n\n if (e.bindingContext.getPath() === DocumentBusinessPartnerEntity.VatStatus) {\n args.storage.refreshGroupByKey(\"partner\");\n }\n};\n\n\ninterface ISetDefaultsFromBusinessPartner {\n storage: FormStorage;\n type?: DocumentTypeCode;\n businessPartner?: IBusinessPartnerEntity;\n}\n\nexport const setDefaultsFromBusinessPartner = async ({\n storage,\n businessPartner,\n type\n }: ISetDefaultsFromBusinessPartner, refreshDateDue?: (dueDays?: number) => void): Promise => {\n let defaultBankAccount;\n const isReceivedDoc = isReceived(type);\n const propName = isReceivedDoc ? BusinessPartnerEntity.ReceivedDocumentDefault : BusinessPartnerEntity.IssuedDocumentDefault;\n\n // common properties for both ReceivedDocumentDefault and IssuedDocumentDefault\n if (businessPartner[propName] && !isObjectEmpty(businessPartner[propName])) {\n if (businessPartner[propName].DefaultPaymentMethodCode) {\n storage.clearAndSetValueByPath(\"PaymentMethod\", businessPartner[propName].DefaultPaymentMethodCode);\n }\n\n const props: (keyof (IBusinessPartnerIssuedDocumentDefaultEntity | IBusinessPartnerReceivedDocumentDefaultEntity))[] =\n [\"SymbolSpecific\", \"SymbolVariable\", \"SymbolConstant\", \"RemittanceInformation\"];\n\n props.forEach(prop => {\n if (businessPartner[propName][prop]) {\n storage.setValueByPath(prop, businessPartner[propName][prop]);\n }\n });\n\n if (isDefined(businessPartner[propName].DaysDue)) {\n // DaysDue depends on DateAccountingTransaction -> call common method if present\n refreshDateDue?.(businessPartner[propName].DaysDue);\n }\n\n if (isAccountAssignmentCompany(storage.context)) {\n const accountAssignment = businessPartner[propName]?.AccountAssignment;\n\n if (!isObjectEmpty(businessPartner[propName].AccountAssignment)) {\n storage.setValueByPath(DocumentEntity.AccountAssignmentSelection, convertAccountAssignmentIntoSelection(accountAssignment));\n storage.setValueByPath(`${DocumentEntity.AccountAssignmentSelection}/${AccountAssignmentSelectionEntity.Selection}`, SelectionCode.Copy);\n\n const fiscalYear = storage.data.entity.FiscalYear;\n const items = fiscalYear ? (await loadAccountAssignments(storage)) : [];\n\n await rewriteAccountAssignment({\n storage,\n choaId: fiscalYear?.ChartOfAccounts?.Id,\n itemBc: storage.data.bindingContext,\n accountAssignments: items\n });\n }\n }\n }\n\n\n // some other things?\n if (isReceivedDoc) {\n defaultBankAccount = businessPartner.BankAccounts?.find(\n (account: IBusinessPartnerBankAccountEntity) => account.IsDefaultForReceivedDocuments\n );\n } else if (businessPartner.IssuedDocumentDefault?.CompanyBankAccount?.IsActive) {\n defaultBankAccount = businessPartner.IssuedDocumentDefault?.CompanyBankAccount;\n } else if (businessPartner.IssuedDocumentDefault?.DefaultPaymentMethodCode === PaymentMethodCode.PaymentService) {\n const defAcc = storage.context.getCompanyBankAccounts()?.filter((acc: ICompanyBankAccountEntity) => acc.IsDefault)?.[0];\n if (defAcc && defAcc.PaymentServiceID) {\n // as we can't store default acc for payment service in business partner we use default one if it is the case\n defaultBankAccount = defAcc;\n }\n }\n\n if (defaultBankAccount && !defaultBankAccount?.PaymentServiceID) {\n storage.processDependentField(BankAccountDependentFields, defaultBankAccount);\n }\n\n prepareSavedAccounts({\n storage: storage,\n type: type,\n businessPartner,\n account: defaultBankAccount\n });\n\n storage.refresh();\n};\n\nexport function isNewPartnerWithData(storage: FormStorage, path = \"BusinessPartner\"): boolean {\n const value = storage.getValueByPath(path);\n return !value?.BusinessPartner?.Id && !!(value?.Name || value?.LegalNumber);\n}\n\nconst setDefaultBPCurrency = async (args: IBankAccountArgs, e: ISmartFieldChange, datePropPath?: string): Promise => {\n const currencyBc = args.storage.data.bindingContext.navigate(\"TransactionCurrency\");\n // country or BP change\n const countryCode = e.bindingContext.getPath() === \"Country\" ? e.additionalData.Code : e.additionalData.Country?.Code;\n if (countryCode) {\n let currencyCode: CurrencyCode;\n if (countryCode === getCompanyCountryCode(args.storage.context)) {\n // Czech republic is default, we don't have it \"currenciesUsedByCompany\" and always switch it back\n currencyCode = getCompanyCurrencyCode(args.storage.context);\n } else {\n const res = await args.storage.oData.getEntitySetWrapper(EntitySetName.Countries).query(`'${countryCode}'`).select(\"DefaultCurrencyCode\").fetchData();\n const defaultCurrency = res.value?.DefaultCurrencyCode as CurrencyCode;\n const usedCurrencies = getCompanyUsedCurrencyCodes(args.storage.context);\n const isUsed = usedCurrencies.includes(defaultCurrency);\n if (isUsed) {\n currencyCode = defaultCurrency;\n }\n }\n if (currencyCode) {\n args.storage.setValue(currencyBc, currencyCode);\n await refreshExchangeRate(args.storage, currencyCode, datePropPath);\n // invalidate item templates cache\n invalidateItemTemplateSelectItems(args.storage);\n args.storage.addActiveGroupByKey(\"Items\");\n args.storage.refresh();\n }\n }\n};\n\nexport const handleBusinessPartnerBlur = async (args: IBankAccountArgs, e: ISmartFieldBlur, showsAllBankAccounts?: boolean, allowCreateBP = true): Promise => {\n const isBusinessPartnerField = e.bindingContext.getParent().getPath(true) === (args.businessPartnerPath ?? \"BusinessPartner\");\n\n if (isBusinessPartnerField && e.wasChanged) {\n // no id is set, but there are some data in inputs => we expect creating new item\n const isNewWithData = isNewPartnerWithData(args.storage, args.businessPartnerPath);\n if (allowCreateBP) {\n setBusinessPartnerGroupStatus(args.storage, isNewWithData, args.businessPartnerPath);\n }\n\n const bp = args.storage.getValue(e.bindingContext.getParent());\n // TODO: not sure about this, in troubles we need further investigation\n // const isEmpty = !bp?.Id && !bp?.BusinessPartner?.Id;\n const isNew = !bp?.BusinessPartner?.Id;\n\n if (isNew) {\n // clear accounts and BP related data -> businessPartner relation was removed\n if (showsAllBankAccounts) {\n updateAllSavedAccountsOnPartnerChange({ ...args, businessPartner: bp as IBusinessPartnerEntity });\n } else if (!showsAllBankAccounts) {\n prepareSavedAccounts({ ...args, businessPartner: {} });\n }\n\n setSavedContactItems(args.storage);\n }\n\n args.storage.refreshGroup(e.bindingContext);\n return;\n }\n};\n\nexport const addBankAccountToBusinessPartner = (storage: FormStorage, data: IEntity, preparedData: IEntity): void => {\n let canAddAccount;\n\n if (storage.data.bindingContext.getPath(true) === EntitySetName.BankTransactions) {\n // for bank transaction\n canAddAccount = true;\n } else {\n // for documents\n const hasPaymentMethod = storage.data.bindingContext.getEntityType().getProperty(\"PaymentMethod\");\n const paymentMethod = hasPaymentMethod && storage.getValueByPath(\"PaymentMethod\", { useDirectValue: false });\n\n canAddAccount = paymentMethod === PaymentMethodCode.WireTransfer;\n }\n\n if (canAddAccount) {\n const isEmpty = hasEmptyBankAccount(storage);\n if (!isEmpty) {\n const currentBankAccount = preparedData.BankAccount;\n\n const newBankAccount = { ...currentBankAccount };\n delete newBankAccount.Id;\n\n data.BankAccounts = [newBankAccount];\n }\n }\n};\n\nexport function clearBPIfNotSet(data: IEntity, path = \"BusinessPartner\"): boolean {\n if (!data[path] || (!data[path].Name && !data[path].LegalNumber)) {\n // not a new BusinessPartner\n // BusinessPartner can be optional, but there can be some default values in its object, like Currency\n // => remove it completely, so that it isn't send to BE at all\n data.BusinessPartner = null;\n return true;\n }\n return false;\n}\n\nexport const prepareNewBusinessPartner = (storage: FormStorage, data: IEntity, addBankAccount?: boolean, path = \"BusinessPartner\"): void => {\n if (data[path]?.BusinessPartner?.Id) {\n // BusinessPartner already exists\n return;\n }\n\n if (clearBPIfNotSet(data, path)) {\n // if BP is cleared, just don't proceed further\n return;\n }\n\n const newBusinessPartner: IBusinessPartnerEntity = BindingContext.createNewEntity(-1, {\n ...storage.extractFields(businessPartnerDependentFields()),\n Company: {\n Id: storage.context.getCompany().Id\n }\n });\n\n // have to make sure there is no undefined contacts\n if (isEmptyContact(newBusinessPartner.Contacts?.[0])) {\n newBusinessPartner.Contacts = [];\n }\n\n delete newBusinessPartner.Id;\n\n if (addBankAccount) {\n addBankAccountToBusinessPartner(storage, newBusinessPartner, data);\n }\n\n if (!hasValidBillingAddress(data.BusinessPartner)) {\n delete newBusinessPartner.BillingAddress;\n }\n\n setNestedValue(newBusinessPartner, \"BusinessPartner\", data.BusinessPartner);\n};\n\nconst compareContact = (c1: IBusinessPartnerContactEntity, c2: IBusinessPartnerContactEntity) => {\n return areObjectsEqual(c1, c2,\n [\"FirstName\", \"LastName\", \"PhoneNumber\", \"Email\"]);\n};\n\nexport const setSavedContactItems = (storage: FormStorage, contacts: IBusinessPartnerContactEntity[] = []): void => {\n storage.setCustomData({ businessPartnerContacts: contacts });\n};\n\nexport const setSavedBankAccounts = (storage: FormStorage, bankAccounts: IBankAccountEntity[] = []): void => {\n storage.setCustomData({ bankAccounts: bankAccounts });\n};\n\n\nexport const hasBusinessPartner = (storage: FormStorage, partner?: IBusinessPartnerEntity, path = \"BusinessPartner\"): boolean => {\n partner = !isObjectEmpty(partner) ? partner : storage.data.entity[path];\n return !!(partner?.Id || partner?.Name || partner?.LegalNumber);\n};\n\n\nexport const hasMatchingBusinessPartnerContact = (storage: FormStorage, currentContact: IBusinessPartnerContactEntity, path: string): boolean => {\n const findSameContact = (contacts: IBusinessPartnerContactEntity[]) => {\n return contacts.find((contact: IBusinessPartnerContactEntity) => compareContact(currentContact, contact));\n };\n\n return !!findSameContact(storage.getCustomData().businessPartnerContacts) || !!findSameContact(storage.data.entity[path]?.BusinessPartner?.Contacts ?? []);\n};\n\nconst isEmptyContact = (contact: IBusinessPartnerContactEntity): boolean => {\n return contact && !contact.FirstName && !contact.LastName && !contact.Email && !contact.PhoneNumber;\n};\n\nexport const addBusinessPartnerContactRequest = (storage: FormStorage, isNewBusinessPartner: boolean, batch: BatchRequest, path = \"BusinessPartner\"): void => {\n const extractedBusinessPartner = storage.extractFields(businessPartnerDependentFields());\n const newContact = extractedBusinessPartner.Contacts[0];\n\n if (isEmptyContact(newContact) || isNewBusinessPartner || hasMatchingBusinessPartnerContact(storage, newContact, path)) {\n return null;\n }\n\n delete newContact.Id;\n // Put to the end\n newContact.Order = 0;\n\n batch.fromPath(`BusinessPartners(${storage.data.entity[path].BusinessPartner.Id})/Contacts`).create(newContact);\n\n return null;\n};\n\nexport const hasValidBillingAddress = (bp: IDocumentBusinessPartnerEntity): boolean => {\n return !!bp && !!bp.Street && !!bp.City && !isObjectEmpty(bp.Country);\n};\n","import { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { BusinessPartnerEntity, IBusinessPartnerBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode, PaymentMethodCode } from \"@odata/GeneratedEnums\";\nimport { companyIsSecondaryAddressPath } from \"@pages/companies/Company.shared.utils\";\nimport { handleBankAccountOrIBANBlur } from \"@utils/BankUtils\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport {\n getBankBlurArgs,\n handleBankFieldChangeWithoutSavedAccount,\n isBankAccount\n} from \"../banks/bankAccounts/BankAccounts.utils\";\nimport {\n fetchAresDetail,\n IBusinessPartnerCustomData,\n IBusinessPartnerEntityExtended,\n ReceivedBankAccountDefaultsPath,\n ShowIssuedDefaultsPath,\n ShowReceivedDefaultsPath\n} from \"./BusinessPartner.utils\";\nimport { partnerAresFields } from \"./BusinessPartnerDef\";\n\nclass BusinessPartnerFormView extends FormViewForExtend> {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n title: \"BusinessPartner:FormTitle\"\n };\n\n componentDidMount() {\n super.componentDidMount();\n this.registerHeader();\n }\n\n componentDidUpdate(): void {\n this.registerHeader();\n }\n\n registerHeader(): void {\n const bc = this.props.storage.data.bindingContext?.navigate(BusinessPartnerEntity.VatStatus);\n if (bc) {\n this.props.storage.addCustomRef(this._refHeader.current, bc);\n }\n }\n\n onAfterLoad = async () => {\n const storage = this.props.storage;\n\n storage.setCustomData({\n isBusinessPartnerFromAres: false\n });\n\n if (!storage.data.bindingContext.isNew()) {\n // find out if the BusinessPartner is synchronizable with (exists in) ARES\n const bpCountryCode = this.entity.BillingAddress?.CountryCode as (CountryCode.CzechRepublic | CountryCode.Slovakia);\n\n if ([CountryCode.CzechRepublic, CountryCode.Slovakia].includes(bpCountryCode)) {\n fetchAresDetail(this.entity.LegalNumber, bpCountryCode).then((aresDetail) => {\n if (aresDetail) {\n storage.setCustomData({\n isBusinessPartnerFromAres: true\n });\n storage.refresh();\n }\n });\n }\n\n // set groups visibility\n storage.setValueByPath(ShowReceivedDefaultsPath, Object.keys(this.entity.ReceivedDocumentDefault ?? {}).length > 0);\n storage.setValueByPath(ShowIssuedDefaultsPath, Object.keys(this.entity.IssuedDocumentDefault ?? {}).length > 0);\n storage.refreshFields();\n }\n\n this.setDefaultReceivedBankAccount();\n this.handleInitialIsSecondaryAddress();\n return super.onAfterLoad();\n };\n\n setDefaultReceivedBankAccount = (force?: boolean): void => {\n const receivedAccount = this.entity.BankAccounts?.find((account: IBusinessPartnerBankAccountEntity) => account.IsDefaultForReceivedDocuments);\n const isRecDefaultsVisible = !!this.props.storage.getValueByPath(ShowReceivedDefaultsPath);\n\n if (receivedAccount?.Id) {\n this.props.storage.setValueByPath(ReceivedBankAccountDefaultsPath, receivedAccount?.Id);\n } else if (!isRecDefaultsVisible || force) {\n // by default use the first bank account as the default account\n // => set the IsDefaultForReceivedDocuments flag of the account to true, so that other fields are correctly visible\n // in case user won't open the ReceivedDefaults group, the flag will be reset onBeforeSave in clearDefaultAccounts\n this.props.storage.setValueByPath(ReceivedBankAccountDefaultsPath, this.entity.BankAccounts?.[0]?.Id);\n\n if (this.entity.BankAccounts?.[0]?.Id) {\n this.entity.BankAccounts[0].IsDefaultForReceivedDocuments = true;\n }\n }\n };\n\n setDefaultIssuedBankAccount = (): void => {\n const defaultCompanyAcc = this.props.storage.context.getCompanyBankAccounts().find(acc => acc.IsDefault);\n this.props.storage.setValueByPath(\"IssuedDocumentDefault/CompanyBankAccount\", defaultCompanyAcc);\n };\n\n handleInitialIsSecondaryAddress = (): void => {\n const isSecondaryAddress = !(this.props.storage.data.bindingContext.isNew() || isObjectEmpty(this.entity.CorrespondenceAddress));\n this.props.storage.clearAndSetValue(this.props.storage.data.bindingContext.navigate(companyIsSecondaryAddressPath), isSecondaryAddress);\n };\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n const { storage } = this.props;\n handleBankAccountOrIBANBlur(getBankBlurArgs(storage.getThis(), args.bindingContext));\n\n await storage.handleBlur(args);\n storage.refreshFields();\n };\n\n handlePartnerChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n\n const path = e.bindingContext.getPath(true) as BusinessPartnerEntity;\n if ([BusinessPartnerEntity.Name, BusinessPartnerEntity.LegalNumber].includes(path) && e.triggerAdditionalTasks) {\n for (const partnerField of Object.values(partnerAresFields)) {\n let value = getNestedValue(partnerField.from, e.additionalData) ?? (e.additionalData?.isAllowCreateItem ? null : undefined);\n\n if (typeof value === \"string\") {\n value = value.trim();\n }\n\n if (value !== undefined) {\n const fieldBc = storage.data.bindingContext.navigate(partnerField.to ?? partnerField.from);\n storage.clearAndSetValue(fieldBc, value, true);\n }\n }\n\n storage.setValueByPath(BusinessPartnerEntity.IsSynchronizedWithAres, e.additionalData.isAres);\n storage.setCustomData({\n isBusinessPartnerFromAres: e.additionalData.isAres\n });\n storage.refresh();\n }\n };\n\n handleIsSynchronizedWithAresChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === BusinessPartnerEntity.IsSynchronizedWithAres) {\n this.props.storage.refreshGroupByKey(\"basic\");\n this.props.storage.refreshGroupByKey(\"Address\");\n }\n };\n\n handleShowReceivedDefaultsPathChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === ShowReceivedDefaultsPath && e.value) {\n this.setDefaultReceivedBankAccount(true);\n // default value of bank account could've been changed to wire,\n // refresh form to show otherwise hidden fields\n this.props.storage.refresh(true);\n }\n };\n\n handleShowIssuedDefaultsPathChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === ShowIssuedDefaultsPath && e.value) {\n this.setDefaultIssuedBankAccount();\n this.props.storage.refresh(true);\n }\n };\n\n handleChange = async (e: ISmartFieldChange): Promise => {\n this.handleDefaultAccountChange(e);\n\n this.props.storage.handleChange(e);\n\n this.handleShowReceivedDefaultsPathChange(e);\n this.handleShowIssuedDefaultsPathChange(e);\n\n // after change to replace stuff !\n this.handlePartnerChange(e);\n this.handleIsSynchronizedWithAresChange(e);\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n if (args.actionType === ActionType.Remove && args.affectedItems?.find(item => item.IsDefaultForReceivedDocuments)) {\n this.props.storage.clearAndSetValueByPath(ReceivedBankAccountDefaultsPath, \"\");\n }\n this.props.storage.handleLineItemsAction(args);\n this.props.storage.refresh();\n };\n\n handleDefaultAccountChange = (e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n if (path === ReceivedBankAccountDefaultsPath && e.triggerAdditionalTasks) {\n // do not set current value for this field -> it helps when original account will change, the current value\n // will be set from selected item label, so we don't need to maintain it manually on every change.\n e.currentValue = null;\n\n for (const account of this.entity.BankAccounts || []) {\n account.IsDefaultForReceivedDocuments = account.Id === e.value || `#${account[BindingContext.NEW_ENTITY_ID_PROP]}` === e.value;\n }\n }\n };\n\n handleSetDefaultReceivedBankAccount = (e: ISmartFieldChange): void => {\n if (!this.props.storage.getValueByPath(ReceivedBankAccountDefaultsPath) &&\n [\"Bank\", \"AccountNumber\"].includes(e.bindingContext.getPath())) {\n const bankAccount = this.entity.BankAccounts[0];\n const id = bankAccount.Id ?? `#${bankAccount[BindingContext.NEW_ENTITY_ID_PROP]}`;\n this.props.storage.setValueByPath(ReceivedBankAccountDefaultsPath, id);\n }\n };\n\n handleLineItemsChange = (args: ISmartFieldChange) => {\n const { storage } = this.props;\n\n storage.handleLineItemsChange(args);\n\n if (isBankAccount(args.bindingContext.getParent())) {\n handleBankFieldChangeWithoutSavedAccount({ storage: storage.getThis() }, args);\n this.handleSetDefaultReceivedBankAccount(args);\n // refresh bank account select in received document defaults as its content might have changed\n const receivedAccountsBc = storage.data.bindingContext.navigate(ReceivedBankAccountDefaultsPath);\n storage.addActiveField(receivedAccountsBc);\n }\n\n if (args.triggerAdditionalTasks) {\n storage.refresh();\n } else {\n storage.refreshFields();\n }\n };\n\n clearSecondaryAddress = (saveData: IEntity): void => {\n const isSecondaryAddress = this.props.storage.getValueByPath(companyIsSecondaryAddressPath);\n if (!isSecondaryAddress) {\n saveData.CorrespondenceAddress = {};\n }\n };\n\n clearBankAccountFlag = (): void => {\n for (const account of this.entity.BankAccounts || []) {\n account.IsDefaultForReceivedDocuments = false;\n }\n };\n\n clearDefaultAccounts = (): void => {\n const _check = (name: string) => {\n const rec = this.props.storage.getValueByPath(`${name}/DefaultPaymentMethod`);\n\n if (rec?.Code !== PaymentMethodCode.WireTransfer) {\n if (name === \"ReceivedDocumentDefault\") {\n this.clearBankAccountFlag();\n }\n\n if (name === \"IssuedDocumentDefault\") {\n this.props.storage.clearAndSetValueByPath(\"IssuedDocumentDefault/CompanyBankAccount\", null);\n }\n\n this.props.storage.setValueByPath(`${name}/SymbolVariable`, null);\n this.props.storage.setValueByPath(`${name}/SymbolSpecific`, null);\n this.props.storage.setValueByPath(`${name}/SymbolConstant`, null);\n }\n };\n\n _check(\"ReceivedDocumentDefault\");\n _check(\"IssuedDocumentDefault\");\n\n const recBankAccountDefault = this.props.storage.getValueByPath(ReceivedBankAccountDefaultsPath);\n\n if (!recBankAccountDefault) {\n this.clearBankAccountFlag();\n }\n };\n\n onBeforeSave = (): IBusinessPartnerEntityExtended => {\n this.clearDefaultAccounts();\n const { storage } = this.props;\n\n // type C -> user should fill the item or \"close\" the whole group\n storage.clearEmptyLineItems(BusinessPartnerEntity.Contacts, true);\n storage.clearEmptyLineItems(BusinessPartnerEntity.BankAccounts, true);\n\n const saveData = cloneDeep(storage.data.entity);\n\n this.clearSecondaryAddress(saveData);\n\n const isNew = storage.data.bindingContext.isNew();\n\n if (isNew) {\n saveData.Company = { Id: this.context.getCompany().Id };\n }\n\n if (!saveData[ShowReceivedDefaultsPath]) {\n saveData.ReceivedDocumentDefault = null;\n\n for (const bankAccount of (saveData.BankAccounts ?? [])) {\n bankAccount.IsDefaultForReceivedDocuments = false;\n }\n }\n\n if (!saveData[ShowIssuedDefaultsPath]) {\n saveData.IssuedDocumentDefault = null;\n }\n\n return saveData;\n };\n}\n\nexport default withPermissionContext(BusinessPartnerFormView);","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IAffectedField, ifAll, IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n getAddressFields,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n getSavedAccountsDef,\n PhoneNumberDef,\n SingleBusinessPartnerDef,\n SymbolConstantDef,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n TFilterDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TCellValue } from \"@components/table\";\nimport { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n BusinessPartnerBankAccountEntity,\n BusinessPartnerContactEntity,\n BusinessPartnerEntity,\n BusinessPartnerIssuedDocumentDefaultEntity,\n BusinessPartnerReceivedDocumentDefaultEntity,\n EntitySetName,\n EntityTypeName,\n IBusinessPartnerBankAccountEntity,\n IBusinessPartnerEntity,\n ICompanyBankAccountEntity,\n VatClassificationEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode, PaymentMethodCode, VatStatusCode } from \"@odata/GeneratedEnums\";\nimport { ICreateFilterStringSettings, IFormatOptions } from \"@odata/OData.utils\";\nimport { getSimpleAccountAssignmentFieldDef } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { isVatItemMatchingEntity } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { createBankAccountsItems, generalBankAccountFormatter, getBankAccountFilterDefinition } from \"@utils/BankUtils\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { forEachKey, isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n BankAccountType,\n BasicInputSizes,\n CacheStrategy,\n FieldType,\n GroupedField,\n LabelStatus,\n QueryParam,\n Sort,\n ValidatorType\n} from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { IChangedFilter, ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport {\n buildComplexBankAccountFilterFromBankAccountString,\n getBankAccountsFieldBaseDef,\n removeInactiveAccounts\n} from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { companyIsSecondaryAddressPath } from \"../companies/Company.shared.utils\";\nimport { isSecondaryAddressVisible } from \"../companies/CompanyDef\";\nimport { DefaultDueDays } from \"../documents/Document.utils\";\nimport { getActiveChartOfAccountsId } from \"../fiscalYear/FiscalYear.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition, TFieldsDefinition } from \"../PageUtils\";\nimport {\n getBusinessPartnerBankAccountAdditionalProperties,\n IBusinessPartnerCustomData,\n ReceivedBankAccountDefaultsPath,\n ShowIssuedDefaultsPath,\n ShowReceivedDefaultsPath\n} from \"./BusinessPartner.utils\";\nimport BusinessPartnerFormView from \"./BusinessPartnerFormView\";\n\nconst isReceivedDefaultsVisible = (args: IGetValueArgs): boolean => {\n return !!args.storage.getValueByPath(ShowReceivedDefaultsPath);\n};\n\nconst isIssuedDefaultsVisible = (args: IGetValueArgs): boolean => {\n return !!args.storage.getValueByPath(ShowIssuedDefaultsPath);\n};\n\nconst PartnerSingleBusinessPartnerDef = {\n ...SingleBusinessPartnerDef,\n columns: [{\n id: \"Name\"\n }, {\n id: \"LegalNumber\"\n }]\n};\n\nconst isAutomaticallyUpdatedBusinessPartner = (args: IGetValueArgs) => {\n return !!args.data?.IsSynchronizedWithAres;\n};\n\nexport const partnerAresFields = [\n {\n from: \"Name\"\n },\n {\n from: \"LegalNumber\"\n },\n {\n from: \"BillingAddress/Street\"\n },\n {\n from: \"BillingAddress/City\"\n },\n {\n from: \"BillingAddress/Country\"\n },\n {\n from: \"BillingAddress/PostalCode\"\n },\n {\n from: \"VatStatus\",\n to: \"VatStatus\"\n },\n {\n from: \"TaxNumber\",\n to: \"TaxNumber\"\n }];\n\n\nconst getDefaultBankAccountAffectedFields = (prefix: string) => {\n return [{\n id: `${prefix}/SymbolVariable`\n }, {\n id: `${prefix}/SymbolSpecific`\n }, {\n id: `${prefix}/SymbolConstant`\n }, {\n id: `${prefix}/RemittanceInformation`\n }];\n};\n\nconst getDocumentDefaults = (prefix: BusinessPartnerEntity.ReceivedDocumentDefault | BusinessPartnerEntity.IssuedDocumentDefault): TFieldsDefinition => {\n const isReceivedType = prefix === BusinessPartnerEntity.ReceivedDocumentDefault;\n const isVisibleDefaultCallback = isReceivedType ? isReceivedDefaultsVisible : isIssuedDefaultsVisible;\n const _isVisible = (args: IGetValueArgs) => {\n return args.storage.data?.entity?.[prefix]?.DefaultPaymentMethod?.Code === PaymentMethodCode.WireTransfer;\n };\n\n const getCountry = (args: IGetValueArgs) => {\n if (prefix === BusinessPartnerEntity.ReceivedDocumentDefault) {\n const account = (args.storage.data.entity.BankAccounts || []).find((ba: IBusinessPartnerBankAccountEntity) => ba.IsDefaultForReceivedDocuments);\n return account?.Country?.Code;\n }\n\n if (prefix === BusinessPartnerEntity.IssuedDocumentDefault) {\n const id = args.storage.data.entity?.IssuedDocumentDefault?.CompanyBankAccount?.Id;\n const account = args.storage.context.getCompanyBankAccounts()?.find((acc: ICompanyBankAccountEntity) => acc.Id === id);\n return account?.CountryCode;\n }\n\n return \"\";\n };\n\n const _isSpecialVisible = (args: IGetValueArgs) => {\n return _isVisible(args) && getCountry(args) === CountryCode.CzechRepublic;\n };\n\n const _isRemittanceVisible = (args: IGetValueArgs) => {\n return _isVisible(args);\n };\n\n return {\n [`${prefix}/DefaultPaymentMethod`]: {\n type: FieldType.ComboBox,\n defaultValue: PaymentMethodCode.WireTransfer,\n fieldSettings: {\n displayName: \"Name\"\n },\n isVisible: isVisibleDefaultCallback,\n affectedFields: [{\n id: prefix === \"ReceivedDocumentDefault\" ? ReceivedBankAccountDefaultsPath : \"IssuedDocumentDefault/CompanyBankAccount\"\n }, ...getDefaultBankAccountAffectedFields(prefix)]\n },\n [`${prefix}/SymbolVariable`]: {\n isVisible: ifAll(_isSpecialVisible, isVisibleDefaultCallback),\n validator: {\n type: ValidatorType.Number\n }\n },\n [`${prefix}/SymbolSpecific`]: {\n isVisible: ifAll(_isSpecialVisible, isVisibleDefaultCallback),\n validator: {\n type: ValidatorType.Number\n }\n },\n [`${prefix}/SymbolConstant`]: {\n ...SymbolConstantDef,\n isVisible: ifAll(_isSpecialVisible, isVisibleDefaultCallback)\n },\n [`${prefix}/RemittanceInformation`]: {\n isVisible: ifAll(_isRemittanceVisible, isVisibleDefaultCallback),\n width: BasicInputSizes.XL\n },\n [`${prefix}/VatClassification`]: {\n width: BasicInputSizes.XL,\n type: FieldType.ComboBox,\n isVisible: isVisibleDefaultCallback,\n fieldSettings: {\n displayName: \"Name\",\n preloadItems: true,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n itemsForRender: (items, args) => {\n const entity = args.storage.data.entity as IBusinessPartnerEntity ?? {};\n return (items ?? []).filter(item => {\n return isVatItemMatchingEntity(entity.VatStatus, entity.BillingAddress?.Country, item);\n });\n },\n additionalProperties: [\n { id: VatClassificationEntity.IsVatRegistered },\n { id: VatClassificationEntity.PayableReceivableTypeCode },\n { id: VatClassificationEntity.CountryClassificationCode }\n ]\n }\n },\n [`${prefix}/AccountAssignment`]: {\n ...getSimpleAccountAssignmentFieldDef(),\n isVisible: isVisibleDefaultCallback,\n fieldSettings: {\n ...getSimpleAccountAssignmentFieldDef().fieldSettings,\n queryParams: (args: IGetValueArgs): Record => {\n // special parameter \"charted\" will only retrieve account assignments\n // related to the given CoA\n return {\n charted: getActiveChartOfAccountsId(args.context)?.toString(),\n [QueryParam.CompanyId]: args.context.getCompanyId()?.toString()\n };\n }\n },\n customizationData: {\n useForCustomization: (args: IGetValueArgs) => isAccountAssignmentCompany(args.context)\n }\n }\n };\n};\n\nconst getDocumentDefaultsForTableDef = (prefix: BusinessPartnerEntity.ReceivedDocumentDefault | BusinessPartnerEntity.IssuedDocumentDefault, isFilter?: boolean): TFieldsDefinition => {\n let defs: TFieldsDefinition = {\n ...withDisplayName(`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.DefaultPaymentMethod}`),\n [`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.RemittanceInformation}`]: {},\n [`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.SymbolConstant}`]: {},\n [`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.SymbolSpecific}`]: {},\n [`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.SymbolVariable}`]: {},\n [`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.DaysDue}`]: {},\n ...withDisplayName(`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.VatClassification}`),\n ...withDisplayName(`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.AccountAssignment}`)\n };\n\n if (isFilter) {\n (defs[`${prefix}/${BusinessPartnerIssuedDocumentDefaultEntity.RemittanceInformation}`] as TFilterDef).isValueHelp = false;\n }\n\n if (prefix === BusinessPartnerEntity.IssuedDocumentDefault) {\n defs = {\n ...defs,\n [`${BusinessPartnerEntity.IssuedDocumentDefault}/${BusinessPartnerIssuedDocumentDefaultEntity.CompanyBankAccount}`]: {\n filter: getBankAccountFilterDefinition(`${prefix}/CompanyBankAccount`, true),\n formatter: (val: TValue, args: IFormatOptions) => {\n const defaultBankAccount = args.entity?.IssuedDocumentDefault?.CompanyBankAccount;\n\n return generalBankAccountFormatter(null, {\n entity: null,\n item: defaultBankAccount,\n placeholder: args.placeholder\n });\n },\n fieldSettings: {\n displayName: \"Id\"\n },\n additionalProperties: getBusinessPartnerBankAccountAdditionalProperties(\"/IssuedDocumentDefault/CompanyBankAccount\", true)\n }\n };\n } else if (!isFilter) {\n defs = {\n ...defs,\n [BusinessPartnerEntity.BankAccounts]: {\n label: i18next.t(\"BusinessPartner:Form.Account\"),\n description: i18next.t(\"BusinessPartner:Table.DefaultReceived\").toString(),\n formatter: (val: TValue, args: IFormatOptions) => {\n const bankAccounts = args.entity.BankAccounts ?? [];\n const defaultBankAccount = bankAccounts.find((ba: IBusinessPartnerBankAccountEntity) => ba.IsDefaultForReceivedDocuments);\n\n return generalBankAccountFormatter(null, {\n entity: null,\n item: defaultBankAccount,\n placeholder: args.placeholder\n });\n },\n additionalProperties: getBusinessPartnerBankAccountAdditionalProperties(),\n disableSort: true\n }\n };\n }\n\n return defs;\n};\n\nconst bankAccountAffectedFields = [{\n id: ReceivedBankAccountDefaultsPath\n}];\n\nexport const partnerFormatter = (val: TValue, values: IEntity): TCellValue => {\n if (!val) {\n return undefined as TCellValue;\n }\n const title = val as string;\n const instance = (\n {val}\n );\n\n return { tooltip: title, value: instance };\n};\n\nexport const vatPayerFormatter = (val: TValue, values: IEntity): TCellValue => {\n if (values.entity.VatStatus?.Code === VatStatusCode.NotVATRegistered) {\n return undefined as TCellValue;\n }\n const title = val ? i18next.t(\"BusinessPartner:NotReliable\") : i18next.t(\"BusinessPartner:Reliable\");\n const instance = {title};\n\n return { tooltip: title, value: instance };\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"Name\", \"LegalNumber\", \"TaxNumber\", \"VatStatus\",\n createPath(BusinessPartnerEntity.BankAccounts, BusinessPartnerBankAccountEntity.AccountNumber),\n createPath(BusinessPartnerEntity.Contacts, BusinessPartnerContactEntity.LastName),\n createPath(BusinessPartnerEntity.Contacts, BusinessPartnerContactEntity.Email)\n ],\n filterDefinition: {\n Name: {},\n LegalNumber: {},\n TaxNumber: {},\n ...withDisplayName(\"VatStatus\"),\n IsUnreliableVatPayer: {\n label: i18next.t(\"BusinessPartner:ReliabilityCheck\")\n },\n Note: { isValueHelp: false },\n \"BillingAddress/City\": {},\n ...withDisplayName(\"BillingAddress/Country\"),\n \"BillingAddress/PostalCode\": {},\n \"BillingAddress/Street\": {},\n \"CorrespondenceAddress/City\": {},\n ...withDisplayName(\"CorrespondenceAddress/Country\"),\n \"CorrespondenceAddress/PostalCode\": {},\n \"CorrespondenceAddress/Street\": {},\n ...getDocumentDefaultsForTableDef(BusinessPartnerEntity.ReceivedDocumentDefault, true),\n ...getDocumentDefaultsForTableDef(BusinessPartnerEntity.IssuedDocumentDefault, true),\n [createPath(BusinessPartnerEntity.BankAccounts, BusinessPartnerBankAccountEntity.AccountNumber)]: {\n description: i18next.t(\"BusinessPartner:Form.BankAccounts\"),\n isValueHelp: false,\n filter: {\n buildFilter: (item: IChangedFilter, settings: ICreateFilterStringSettings, storage: TableStorage) => {\n return buildComplexBankAccountFilterFromBankAccountString(item, storage, settings);\n }\n }\n },\n [createPath(BusinessPartnerEntity.Contacts, BusinessPartnerContactEntity.FirstName)]: { isValueHelp: false },\n [createPath(BusinessPartnerEntity.Contacts, BusinessPartnerContactEntity.LastName)]: { isValueHelp: false },\n [createPath(BusinessPartnerEntity.Contacts, BusinessPartnerContactEntity.Email)]: { isValueHelp: false },\n\n\n ...getCommonFilterDefs()\n }\n }],\n id: `${EntityTypeName.BusinessPartner}Table`,\n columns: [\n \"Name\", \"LegalNumber\", \"TaxNumber\", \"VatStatus\"\n ],\n columnDefinition: {\n Name: {\n formatter: partnerFormatter\n },\n LegalNumber: {},\n TaxNumber: {},\n VatStatus: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n IsUnreliableVatPayer: {\n formatter: vatPayerFormatter,\n label: i18next.t(\"BusinessPartner:ReliabilityCheck\")\n },\n Note: {},\n ...getCommonTableColumnsDefs(),\n \"BillingAddress/City\": {},\n ...withDisplayName(\"BillingAddress/Country\"),\n \"BillingAddress/PostalCode\": {},\n \"BillingAddress/Street\": {},\n \"CorrespondenceAddress/City\": {},\n ...withDisplayName(\"CorrespondenceAddress/Country\"),\n \"CorrespondenceAddress/PostalCode\": {},\n \"CorrespondenceAddress/Street\": {},\n ...getDocumentDefaultsForTableDef(BusinessPartnerEntity.ReceivedDocumentDefault),\n ...getDocumentDefaultsForTableDef(BusinessPartnerEntity.IssuedDocumentDefault)\n\n },\n title: i18next.t(\"BusinessPartner:Title\"),\n initialSortBy: [{\n id: \"Name\", sort: Sort.Asc\n }]\n };\n\n const summary: ISummaryItem[] = [\n { id: \"Name\" },\n {\n id: \"IsUnreliableVatPayer\",\n label: i18next.t(\"BusinessPartner:ReliabilityCheck\"),\n formatter: (val: TValue, data?: IEntity) => {\n return i18next.t(`BusinessPartner:${isNotDefined(val) ? \"Unknown\" : (val ? \"NotReliable\" : \"Reliable\")}`).toString();\n },\n colorFormatter: (val: TValue, data?: IEntity) => {\n return isNotDefined(val) ? \"C_SEM_text_warning\" : (val ? \"C_SEM_text_bad\" : \"C_SEM_el_good\");\n },\n isVisible: (args) => {\n const BusinessPartner: IBusinessPartnerEntity = args.data;\n return [VatStatusCode.VATRegistered, VatStatusCode.IdentifiedPerson].includes(BusinessPartner?.VatStatus?.Code as VatStatusCode);\n }\n }];\n\n const _savedAcc = getSavedAccountsDef();\n\n const dateDueDefaultDef = {\n fieldSettings: {\n showSteppers: true,\n min: 0\n },\n validator: {\n type: ValidatorType.Integer,\n settings: {\n min: 0\n }\n },\n defaultValue: DefaultDueDays,\n type: FieldType.NumberInput,\n width: \"125px\" // TODO according to zeplin this should be BasicInputSizes.S, but czech translation is 2px longer https://app.zeplin.io/project/62eba22ff62347721cec129f/screen/5fc7acdfb17cc20f11239d72\n };\n\n const BaseBankFieldDefs = getBankAccountsFieldBaseDef();\n\n const defaultValuesReceivedRows: (IFieldDef[])[] = [[\n { id: \"ReceivedDocumentDefault/DefaultPaymentMethod\" },\n { id: \"ReceivedDocumentDefault/DaysDue\" }\n ], [\n { id: ReceivedBankAccountDefaultsPath },\n { id: \"ReceivedDocumentDefault/SymbolVariable\" },\n { id: \"ReceivedDocumentDefault/SymbolSpecific\" },\n { id: \"ReceivedDocumentDefault/SymbolConstant\" },\n { id: \"ReceivedDocumentDefault/RemittanceInformation\" }\n ], [\n { id: \"ReceivedDocumentDefault/VatClassification\" }\n ]];\n\n const defaultValuesIssuedRows: (IFieldDef[])[] = [[\n { id: \"IssuedDocumentDefault/DefaultPaymentMethod\" },\n { id: \"IssuedDocumentDefault/DaysDue\" }\n ], [\n { id: \"IssuedDocumentDefault/CompanyBankAccount\" },\n { id: \"IssuedDocumentDefault/SymbolVariable\" },\n { id: \"IssuedDocumentDefault/SymbolSpecific\" },\n { id: \"IssuedDocumentDefault/SymbolConstant\" },\n { id: \"IssuedDocumentDefault/RemittanceInformation\" }\n ], [\n { id: \"IssuedDocumentDefault/VatClassification\" }\n ]];\n\n if (isAccountAssignmentCompany(context)) {\n defaultValuesReceivedRows[2].push(\n { id: \"ReceivedDocumentDefault/AccountAssignment\" }\n );\n\n defaultValuesIssuedRows[2].push(\n { id: \"IssuedDocumentDefault/AccountAssignment\" }\n );\n }\n\n const vatClassificationAffectedFields: IAffectedField[] = [\n {\n id: createPath(BusinessPartnerEntity.ReceivedDocumentDefault, BusinessPartnerReceivedDocumentDefaultEntity.VatClassification)\n },\n {\n id: createPath(BusinessPartnerEntity.IssuedDocumentDefault, BusinessPartnerIssuedDocumentDefaultEntity.VatClassification)\n }\n ];\n const billingAddressFields = getAddressFields(\"BillingAddress\", { isDisabled: isAutomaticallyUpdatedBusinessPartner });\n\n const form: IFormDef = {\n id: `${EntityTypeName.BusinessPartner}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"BusinessPartner:New\"), storage.data.entity?.Name),\n summary,\n isDeletable: true,\n formControl: BusinessPartnerFormView,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [{ id: \"Company\" }, { id: \"IsSynchronizedWithAres\" }],\n groups: [\n {\n id: \"Note\",\n title: i18next.t(\"Common:General.Note\"),\n rows: [[{ id: \"Note\" }]]\n },\n {\n id: \"basic\",\n title: i18next.t(\"BusinessPartner:Form.Basic\"),\n rows: [\n [{ id: \"Name\" }, { id: \"LegalNumber\" }, { id: \"IsSynchronizedWithAres\" }, { id: \"VatStatus\" }, { id: \"TaxNumber\" }]\n ]\n },\n {\n id: \"Address\",\n title: i18next.t(\"BusinessPartner:Form.Address\"),\n rows: [[{ id: \"BillingAddress/Street\" }, { id: \"BillingAddress/City\" }, { id: \"BillingAddress/PostalCode\" }, { id: \"BillingAddress/Country\" }],\n [{ id: companyIsSecondaryAddressPath }],\n [{ id: \"CorrespondenceAddress/Street\" }, { id: \"CorrespondenceAddress/City\" }, { id: \"CorrespondenceAddress/PostalCode\" }, { id: \"CorrespondenceAddress/Country\" }]\n ]\n },\n {\n id: \"BankAccounts\", // to be compatible with FormView.load\n title: i18next.t(\"BusinessPartner:Form.BankAccounts\"),\n lineItems: {\n useLabelWrapping: false,\n // disable virtualization to prevent problems caused by the fact\n // that every row can have different size and number of columns\n disableVirtualization: true,\n collection: \"BankAccounts\",\n isGroupToggleable: true,\n showLineNumbers: true,\n order: \"Order\",\n columns: [\n { id: \"Country\" },\n { id: \"IsDefaultForReceivedDocuments\" },\n { id: \"AbaNumber\" },\n { id: \"AccountNumber\" },\n { id: \"Bank\" },\n { id: \"IBAN\" },\n { id: \"SWIFT\" }\n ]\n }\n },\n {\n id: \"Contacts\",\n title: i18next.t(\"BusinessPartner:Form.Contacts\"),\n lineItems: {\n // primary contact doesn't seem to be in zeplin anymore => we don't need disableVirtualization\n // containsPrimary: true,\n // disable virtualization to prevent problems caused by containsPrimary (todo, probably could be solved)\n // disableVirtualization: true,\n // isCollapsible: true, // TODO: what is this? do we need such functionality on Fast Entry List?\n collection: \"Contacts\",\n isGroupToggleable: true,\n showLineNumbers: true,\n order: \"Order\",\n columns: [{ id: \"FirstName\" }, { id: \"LastName\" }, { id: \"Email\" }, { id: \"PhoneNumber\" }, { id: \"Role\" }]\n }\n },\n {\n id: \"DefaultValuesReceived\",\n title: i18next.t(\"BusinessPartner:Form.DefaultValuesReceived\"),\n togglePropPath: ShowReceivedDefaultsPath,\n rows: defaultValuesReceivedRows,\n customizationData: {\n isLocked: true\n }\n },\n {\n id: \"DefaultValuesIssued\",\n title: i18next.t(\"BusinessPartner:Form.DefaultValuesIssued\"),\n togglePropPath: ShowIssuedDefaultsPath,\n rows: defaultValuesIssuedRows,\n customizationData: {\n isLocked: true\n }\n }\n ],\n fieldDefinition: {\n IsSynchronizedWithAres: {\n type: FieldType.Switch,\n defaultValue: false,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n label: i18next.t(\"BusinessPartner:Form.SyncWithAres\"),\n isVisible: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const value = storage.getEntity().IsSynchronizedWithAres;\n\n return value || !!storage.getCustomData().isBusinessPartnerFromAres;\n }\n },\n Note: {\n isConfirmable: true,\n type: FieldType.EditableText,\n labelStatus: LabelStatus.Removed\n },\n Name: {\n ...PartnerSingleBusinessPartnerDef,\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL\n },\n LegalNumber: {\n ...PartnerSingleBusinessPartnerDef,\n groupedField: GroupedField.MultiEnd,\n width: BasicInputSizes.S\n },\n VatStatus: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: \"Name\"\n },\n defaultValue: () => ({ Code: VatStatusCode.VATRegistered }),\n isDisabled: isAutomaticallyUpdatedBusinessPartner,\n affectedFields: vatClassificationAffectedFields\n },\n TaxNumber: {\n isDisabled: isAutomaticallyUpdatedBusinessPartner\n },\n \"BankAccounts/IsDefaultForReceivedDocuments\": {\n isVisible: false,\n clearIfInvisible: false,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Contacts/Email\": {\n width: BasicInputSizes.L,\n validator: {\n type: ValidatorType.Email\n }\n },\n \"Contacts/PhoneNumber\": {\n width: BasicInputSizes.M,\n ...PhoneNumberDef\n },\n \"Contacts/Role\": {\n width: BasicInputSizes.S\n },\n \"Contacts/FirstName\": {},\n \"Contacts/LastName\": {},\n [ReceivedBankAccountDefaultsPath]: {\n ..._savedAcc,\n fieldSettings: {\n ..._savedAcc.fieldSettings,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n itemsForRender: (items, args) => {\n return createBankAccountsItems({ bankAccounts: args.data?.BankAccounts });\n }\n },\n width: BasicInputSizes.XL,\n affectedFields: getDefaultBankAccountAffectedFields(\"ReceivedDocumentDefault\"),\n label: i18next.t(\"BusinessPartner:Form.Account\"),\n isVisible: (args: IGetValueArgs) => {\n return args.storage.data?.entity?.ReceivedDocumentDefault?.DefaultPaymentMethod?.Code === PaymentMethodCode.WireTransfer && isReceivedDefaultsVisible(args);\n }\n },\n [companyIsSecondaryAddressPath]: {\n label: i18next.t(\"BusinessPartner:Form.AddCorrespondenceAddress\"),\n type: FieldType.Switch,\n fieldSettings: { type: SwitchType.YesNo },\n affectedFields: [\n { id: \"CorrespondenceAddress/Street\" }, { id: \"CorrespondenceAddress/City\" },\n { id: \"CorrespondenceAddress/PostalCode\" }, { id: \"CorrespondenceAddress/Country\" }\n ]\n },\n ...getDocumentDefaults(BusinessPartnerEntity.ReceivedDocumentDefault),\n ...getDocumentDefaults(BusinessPartnerEntity.IssuedDocumentDefault),\n\n ...billingAddressFields,\n \"BillingAddress/Country\": {\n ...billingAddressFields[\"BillingAddress/Country\"],\n affectedFields: [\n ...(billingAddressFields[\"BillingAddress/Country\"].affectedFields ?? []),\n ...vatClassificationAffectedFields\n ],\n fieldSettings: {\n ...billingAddressFields[\"BillingAddress/Country\"].fieldSettings\n }\n },\n ...getAddressFields(\"CorrespondenceAddress\", { isVisible: isSecondaryAddressVisible }),\n\n \"ReceivedDocumentDefault/DaysDue\": {\n ...dateDueDefaultDef,\n isVisible: isReceivedDefaultsVisible\n },\n \"IssuedDocumentDefault/DaysDue\": {\n ...dateDueDefaultDef,\n isVisible: isIssuedDefaultsVisible\n },\n \"IssuedDocumentDefault/CompanyBankAccount\": {\n width: BasicInputSizes.XL,\n type: FieldType.ComboBox,\n ..._savedAcc,\n fieldSettings: {\n ..._savedAcc.fieldSettings,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n // items are set in _savedAcc.fieldSetting, but then itemsFactory is not called at all\n items: null,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const accounts = args.storage.context.getCompanyBankAccounts();\n const allowedTypes = [BankAccountType.Account, BankAccountType.IBANOnly, BankAccountType.ABA];\n const currentId = (args.storage.data.entity as IBusinessPartnerEntity).IssuedDocumentDefault?.CompanyBankAccount?.Id;\n return removeInactiveAccounts(createBankAccountsItems({\n bankAccounts: accounts,\n hasBusinessPartnerCol: false,\n allowedTypes\n }), currentId);\n },\n shouldDisplayAdditionalColumns: true\n },\n columns: [{ id: \"Label\" }, { id: \"Name\" }],\n affectedFields: getDefaultBankAccountAffectedFields(\"IssuedDocumentDefault\"),\n isVisible: (args: IGetValueArgs) => {\n return args.storage.data?.entity?.IssuedDocumentDefault?.DefaultPaymentMethod?.Code === PaymentMethodCode.WireTransfer && isIssuedDefaultsVisible(args);\n }\n },\n [ShowReceivedDefaultsPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: defaultValuesReceivedRows.flatMap(row => row),\n customizationData: {\n useForCustomization: false // group switch\n }\n },\n [ShowIssuedDefaultsPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: defaultValuesIssuedRows.flatMap(row => row),\n customizationData: {\n useForCustomization: false // group switch\n }\n }\n }\n\n };\n\n forEachKey(BaseBankFieldDefs, (key) => {\n form.fieldDefinition[`BankAccounts/${key}`] = {\n ...BaseBankFieldDefs[key],\n affectedFields: bankAccountAffectedFields,\n customizationData: {\n ...(BaseBankFieldDefs[key].customizationData ?? {}),\n useForCustomization: true\n }\n };\n });\n\n return {\n entitySet: EntitySetName.BusinessPartners,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"BusinessPartner\", \"AccountAssignment\", \"Common\", \"Banks\"];\nsetDefByEntityType(EntityTypeName.BusinessPartner, getDefinitions);","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport {\n DescriptionSeparator,\n InputDescriptionText,\n InputTabularAllText\n} from \"@components/inputs/select/Select.styles\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { ifAll, IFieldDef, IFieldDefFn, IFieldInfoProperties, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef, TFormTable } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { fetchAndSetItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { smartStrongTextFormatter } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue, TId } from \"@components/table\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n CbaCategoryEntity,\n CbaEntryEntity,\n DocumentCbaCategoryEntity,\n DocumentEntity,\n DocumentItemCbaCategoryEntity,\n EntitySetName,\n EntityTypeName,\n ICbaCategoryEntity,\n ICbaEntryEntity,\n IDocumentCbaCategoryEntity,\n IDocumentItemCbaCategoryEntity,\n IPaymentDocumentEntity,\n PaymentDocumentEntity,\n PaymentDocumentItemEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CbaCategoryTaxImpactCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { hasEverBeenVatRegisteredCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isDefined, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport Field from \"../../components/inputs/field\";\nimport Input from \"../../components/inputs/input/Input\";\nimport Text from \"../../components/text\";\nimport Tooltip from \"../../components/tooltip\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, Sort, ValidatorType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport { getCurrentLineItem } from \"../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { IBankCustomData, TPairedDocumentCategoriesMap } from \"../banks/bankTransactions/BankTransactions.utils\";\nimport { TFieldsDefinition } from \"../PageUtils\";\n\nexport const CASH_BASIS_ACCOUNTING_GROUP_ID = \"CashBasisAccounting\";\n\nexport const CBA_CATEGORY_PATH = BindingContext.localContext(\"CategorySelection\");\n\nconst isCashBasisAccounting = (args: IGetValueArgs): boolean => {\n return isCashBasisAccountingCompany(args.context ?? args.storage.context);\n};\n\nconst hasPartialImpact = (args: IGetValueArgs) => {\n const category = args.storage.getValue(args.bindingContext.getParent()) as ICbaCategoryEntity;\n const code = args.storage.getTemporalData(args.bindingContext.getParent().navigate(CbaCategoryEntity.TaxImpact))?.value ?? category?.TaxImpact?.Code;\n return code === CbaCategoryTaxImpactCode.Partial;\n};\n\nconst hasNoImpact = (args: IGetValueArgs) => {\n const category = args.storage.getValue(args.bindingContext.getParent()) as ICbaCategoryEntity;\n const code = args.storage.getTemporalData(args.bindingContext.getParent().navigate(CbaCategoryEntity.TaxImpact))?.value ?? category?.TaxImpact?.Code;\n return code === CbaCategoryTaxImpactCode.Nontax;\n};\n\ninterface ICbaItemCategorySettings {\n isDefault: boolean;\n TaxImpactCode: CbaCategoryTaxImpactCode;\n CategoryId?: number;\n CategoryName?: string;\n IsAssetAcquisition?: boolean;\n TaxPercentage?: number;\n}\n\n// function returns CBA Item category settings\nexport function getCBAItemCategory(storage: FormStorage, itemBc: BindingContext, hasDefaultCategory = true): ICbaItemCategorySettings {\n const itemCategoryBc = itemBc.navigate(PaymentDocumentItemEntity.CbaCategory);\n const itemCategory = storage.getValue(itemCategoryBc, { skipTemporaryValue: true });\n const isDefault = isObjectEmpty(itemCategory) && hasDefaultCategory;\n\n const settings: ICbaItemCategorySettings = {\n isDefault,\n TaxImpactCode: CbaCategoryTaxImpactCode.Tax\n };\n\n const { entity } = storage.data;\n\n if (!isDefault || hasDefaultCategory) {\n const category = (isDefault ? entity.CbaCategory : itemCategory) ?? {};\n settings.TaxImpactCode = category.TaxImpact?.Code ?? category.TaxImpactCode;\n settings.CategoryId = category.Category?.Id;\n settings.CategoryName = category.Category?.Name;\n settings.IsAssetAcquisition = !!category.IsAssetAcquisition;\n settings.TaxPercentage = category.TaxPercentage ?? (settings.TaxImpactCode === CbaCategoryTaxImpactCode.Nontax ? 0 : 100);\n }\n\n return settings;\n}\n\nexport const getCashBasisAccountingGroup = (): IFormGroupDef => {\n return {\n id: CASH_BASIS_ACCOUNTING_GROUP_ID,\n isVisible: isCashBasisAccounting,\n customizationData: {\n useForCustomization: isCashBasisAccounting\n },\n rows: [[{ id: createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.Category) }],\n [{ id: createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxImpact) }, {\n id: createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.IsAssetAcquisition)\n }, {\n id: createPath(DocumentEntity.CbaCategory, DocumentCbaCategoryEntity.TaxPercentage)\n }]],\n title: i18next.t(\"Document:FormGroup.CashBasisAccounting\")\n };\n};\n\nconst getFieldId = (id: string, prefix: string) => {\n return `${prefix ? prefix + \"/\" : \"\"}${id}`;\n};\n\nexport const getCbaCategoriesCommonFieldsDef = (prefix = \"\", isCollection: boolean, isIssued: boolean): Record => {\n return {\n [getFieldId(CbaCategoryEntity.IsAssetAcquisition, prefix)]: {\n type: FieldType.Switch,\n clearIfInvisible: false,\n fieldSettings: {\n type: SwitchType.Default\n },\n defaultValue: false,\n isVisible: (args: IGetValueArgs) => !isIssued && hasNoImpact(args),\n customizationData: {\n useForCustomization: ifAll(!isIssued, !isCollection)\n },\n isConfirmable: !!isCollection\n },\n [getFieldId(CbaCategoryEntity.TaxImpact, prefix)]: {\n type: FieldType.SegmentedButton,\n width: BasicInputSizes.XL,\n label: i18next.t(`Categories:${isCollection ? \"\" : \"Default\"}TaxImpact`),\n isRequired: false, // is required, but we don't want red dot TODO: maybe there should not be red dot on any segmented button field\n fieldSettings: {\n items: [\n {\n id: CbaCategoryTaxImpactCode.Tax,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.Tax\")\n },\n {\n id: CbaCategoryTaxImpactCode.Nontax,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.NonTax\")\n },\n {\n id: CbaCategoryTaxImpactCode.Partial,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.Partial\")\n }\n ]\n },\n defaultValue: CbaCategoryTaxImpactCode.Tax,\n isVisible: !isIssued,\n customizationData: {\n useForCustomization: ifAll(!isIssued, !isCollection)\n },\n isConfirmable: !!isCollection\n },\n [getFieldId(CbaCategoryEntity.TaxPercentage, prefix)]: {\n type: FieldType.NumberInput,\n fieldSettings: {\n unit: \"%\",\n showSteppers: true,\n min: 0,\n max: 100\n },\n defaultValue: 100,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n max: 100\n }\n },\n isVisible: (args) => !isIssued && hasPartialImpact(args),\n customizationData: {\n useForCustomization: ifAll(!isIssued, !isCollection)\n },\n isConfirmable: !!isCollection\n }\n };\n};\n\nconst categoriesFilterByTypeFn = (isIssued: boolean) => {\n return () => {\n let filter = `${CbaCategoryEntity.IsActive} eq true`;\n if (isIssued) {\n filter += ` AND ${CbaCategoryEntity.TaxImpactCode} eq '${CbaCategoryTaxImpactCode.Tax}'`;\n }\n return filter;\n };\n};\n\nexport const getCashBasisAccountingFieldsDef = (prefix: string = DocumentEntity.CbaCategory, isCollection: boolean, isIssued: boolean): TFieldsDefinition => {\n return {\n [`${prefix ? prefix + \"/\" : \"\"}Category`]: {\n type: FieldType.ComboBox,\n label: i18next.t(`Categories:${isCollection ? \"\" : \"Default\"}Category`),\n filter: {\n select: categoriesFilterByTypeFn(isIssued)\n },\n fieldSettings: {\n displayName: \"Name\",\n additionalProperties: [{\n id: CbaCategoryEntity.TaxPercentage\n }, {\n id: CbaCategoryEntity.TaxImpact\n }, {\n id: CbaCategoryEntity.IsAssetAcquisition\n }],\n additionalItems: [{\n id: null,\n label: i18next.t(\"Categories:WithoutCategory\")\n }]\n },\n formatter: (val: TValue, args: IFormatOptions): string => {\n return args.item?.Name ?? args.storage.getTemporalData(args.bindingContext)?.additionalData?.Name ?? i18next.t(\"Categories:WithoutCategory\").toString();\n },\n defaultValue: null,\n customizationData: {\n useForCustomization: !isCollection\n },\n isConfirmable: !!isCollection\n },\n ...getCbaCategoriesCommonFieldsDef(prefix, isCollection, isIssued)\n };\n};\n\nexport enum CbaSelectionCode {\n Default = \"Default\",\n Own = \"Own\"\n}\n\nexport async function setCorrectSpecialItemsForItemCategory(storage: FormStorage, collectionName = \"Items\"): Promise {\n if (!isCashBasisAccountingCompany(storage.context)) {\n return;\n }\n const baseBc = storage.data.bindingContext.navigate(collectionName);\n const info = storage.getInfo(baseBc.navigate(CBA_CATEGORY_PATH));\n const items = await fetchAndSetItemsByInfo(storage, info, false);\n\n for (const item of (storage.data.entity[collectionName] || [])) {\n const itemBc = baseBc.addKey(item);\n const itemCategory = getCBAItemCategory(storage, itemBc, true);\n let value: TId = CbaSelectionCode.Default;\n if (!itemCategory.isDefault) {\n if (!itemCategory.CategoryId && !itemCategory.IsAssetAcquisition && [CbaCategoryTaxImpactCode.Tax, CbaCategoryTaxImpactCode.Nontax, CbaCategoryTaxImpactCode.VATCorrection].includes(itemCategory.TaxImpactCode)) {\n value = itemCategory.TaxImpactCode;\n } else {\n // find item with same properties\n const matchingItem: ISelectItem = items.find(item => {\n const data = item.additionalData ?? {};\n return data?.TaxImpactCode === itemCategory.TaxImpactCode && data.Id === itemCategory.CategoryId &&\n data.TaxPercentage === itemCategory.TaxPercentage && data.IsAssetAcquisition === itemCategory.IsAssetAcquisition;\n });\n value = matchingItem?.id ?? CbaSelectionCode.Own;\n }\n }\n storage.setValue(itemBc.navigate(CBA_CATEGORY_PATH), value);\n }\n}\n\nexport function getPartialImpactLabel(impact: string, percentage: number): string {\n return `${impact}: ${percentage} %`;\n}\n\nexport function getAssetAcquisitionLabel(impact: string): string {\n return `${impact}: ${i18next.t(\"Categories:AcquisitionOfAssets\")}`;\n}\n\nexport const getCbaCategoryItemDef = (collectionName: string, isBank: boolean, isIssued: boolean): TFieldsDefinition => {\n const def: TFieldsDefinition = {\n [createPath(collectionName, CBA_CATEGORY_PATH)]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Categories:Records\"),\n isRequired: true,\n useForValidation: false,\n width: isBank ? BasicInputSizes.XL : BasicInputSizes.L,\n isDisabled: args => {\n const categoryBc = args.bindingContext.getParent().navigate(DocumentEntity.CbaCategory);\n return !!(args.storage as FormStorage).getBackendDisabledFieldMetadata(categoryBc);\n },\n filter: {\n select: categoriesFilterByTypeFn(isIssued)\n },\n fieldSettings: {\n displayName: \"TaxImpact/Name\",\n entitySet: EntitySetName.CbaCategories,\n additionalProperties: [{\n id: CbaCategoryEntity.TaxPercentage\n }, {\n id: CbaCategoryEntity.TaxImpact\n }, {\n id: CbaCategoryEntity.IsAssetAcquisition\n }],\n additionalItems: [{\n id: CbaCategoryTaxImpactCode.Tax,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.Tax\")\n },\n ...(isIssued ? [] : [\n {\n id: CbaCategoryTaxImpactCode.Nontax,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.NonTax\")\n },\n {\n id: CbaSelectionCode.Own,\n label: i18next.t(\"Categories:CbaSelectionCode.Own\")\n }\n ])]\n },\n customizationData: {\n useForCustomization: isCashBasisAccounting\n },\n comparisonFunction: (entity1: IEntity, entity2: IEntity, bc: BindingContext): boolean => {\n const categoryBc = bc.getParent().navigate(RegularDocumentItemEntity.CbaCategory);\n const dataBindingContext = bc.getRootParent();\n\n const cat1 = getBoundValue({ bindingContext: categoryBc, data: entity1, dataBindingContext });\n const cat2 = getBoundValue({ bindingContext: categoryBc, data: entity2, dataBindingContext });\n\n if (isObjectEmpty(cat1) && isObjectEmpty(cat2)) {\n // both categories are not defined -> they are same\n return true;\n }\n\n // if one is defined and second not, or they have different impact code => categories are not same\n if (isObjectEmpty(cat1) !== isObjectEmpty(cat2) || cat1?.TaxImpact?.Code !== cat2?.TaxImpact?.Code) {\n return false;\n }\n\n // both defined and code is same -> compare additional properties\n return (cat1.IsAssetAcquisition === cat2.IsAssetAcquisition) && (cat1.TaxPercentage === cat2.TaxPercentage);\n },\n formatter: (val: TValue, { storage, bindingContext, item }: IFormatOptions): string => {\n const cbaSettings = bindingContext ? getCBAItemCategory(storage as FormStorage, bindingContext.getParent(), !isBank)\n // formatter is called also for select items, which can be used as cbaSettings\n : item;\n const prefix = cbaSettings.isDefault ? `(${i18next.t(\"Categories:CbaSelectionCode.Default\")}) ` : \"\";\n let impactLabel = storage.t(`Categories:CbaCategoryTaxImpactCode.${cbaSettings.TaxImpactCode}`);\n if (cbaSettings.TaxImpactCode === CbaCategoryTaxImpactCode.Partial) {\n impactLabel = getPartialImpactLabel(impactLabel, cbaSettings.TaxPercentage);\n } else if (cbaSettings.IsAssetAcquisition) {\n impactLabel = getAssetAcquisitionLabel(impactLabel);\n }\n\n const suffix = cbaSettings.CategoryName ? ` | ${cbaSettings.CategoryName}` : \"\";\n\n return `${prefix}${impactLabel}${suffix}`;\n },\n columns: [\n {\n id: \"TaxImpact/Name\",\n formatter: (val: TValue, args?: IFormatOptions) => {\n const strVal = val as string;\n if (args.item.TaxImpact?.Code === CbaCategoryTaxImpactCode.Partial) {\n return getPartialImpactLabel(strVal, args.item.TaxPercentage);\n } else if (args.item.IsAssetAcquisition) {\n return getAssetAcquisitionLabel(strVal);\n }\n return strVal;\n }\n },\n { id: \"Name\" }\n ],\n defaultValue: null,\n isReadOnly: (args: IGetValueArgs) => {\n const isInternalDoc = args.storage.data.entity.DocumentTypeCode === DocumentTypeCode.InternalDocument;\n const collectionBc = args.bindingContext.getParent();\n let linkedDoc = null;\n if (isInternalDoc || isBank) {\n const linkedDocBc = collectionBc.navigate(PaymentDocumentItemEntity.LinkedDocument);\n linkedDoc = args.storage.getValue(linkedDocBc);\n }\n return !!linkedDoc?.Id;\n },\n render: (args: IFieldDefFn) => {\n const collectionBc = args.props.info.bindingContext.getParent();\n const isInternalDoc = args.storage.data.entity.DocumentTypeCode === DocumentTypeCode.InternalDocument;\n const isReadOnly = args.props.isReadOnly;\n let linkedDoc = null;\n if (isInternalDoc || isBank) {\n const linkedDocBc = collectionBc.navigate(PaymentDocumentItemEntity.LinkedDocument);\n linkedDoc = args.storage.getValue(linkedDocBc);\n }\n\n if (linkedDoc?.Id) {\n const docCategories = args.storage.getCustomData()?.pairedDocumentCategoriesMap?.[linkedDoc.Id];\n if (!isObjectEmpty(docCategories?.[0])) {\n const tokens = docCategories.map(cat => {\n const code = cat.TaxImpact?.Code ?? cat.TaxImpactCode;\n let impact = args.storage.t(`${getEnumNameSpaceName(EntityTypeName.CbaCategoryTaxImpact)}:${code}`);\n const name = cat.Category?.Name;\n if (code === CbaCategoryTaxImpactCode.Partial) {\n impact = getPartialImpactLabel(impact, cat.TaxPercentage);\n } else if (cat.IsAssetAcquisition) {\n impact = getAssetAcquisitionLabel(impact);\n }\n return {\n name,\n impact\n };\n });\n const firstToken = tokens.shift();\n const children = <>\n \n

    \n \n {firstToken.impact}\n {firstToken.name && \n {DescriptionSeparator}{firstToken.name}\n }\n \n\n {!!tokens.length && (\n <>{tokens.map((t, i) => \n {t.impact}\n {t.name && \n {DescriptionSeparator}{t.name}\n }\n )}\n )}>\n {(ref) => {\n return (\n
    \n  + {tokens.length}\n
    \n );\n }}\n
    }\n
    \n \n ;\n if (!args.fieldElement) {\n return children;\n }\n return \n {children}\n ;\n } else if (isBank) {\n // e.g. proforma invoice doesn't have category\n return \n \n ;\n }\n } else if (!args.fieldElement) {\n return args.props.formattedValue;\n }\n return args.fieldElement;\n }\n },\n ...getCashBasisAccountingFieldsDef(createPath(collectionName, RegularDocumentItemEntity.CbaCategory), true, isIssued)\n };\n\n if (!isBank) {\n def[createPath(collectionName, CBA_CATEGORY_PATH)].fieldSettings.additionalItems = [\n {\n id: CbaSelectionCode.Default,\n label: i18next.t(\"Categories:CbaSelectionCode.Default\")\n },\n ...def[createPath(collectionName, CBA_CATEGORY_PATH)].fieldSettings.additionalItems\n ];\n }\n return def;\n};\n\nexport const getDefaultPercetageFromImpactCode = (code: CbaCategoryTaxImpactCode): number => {\n switch (code) {\n case CbaCategoryTaxImpactCode.Tax:\n case CbaCategoryTaxImpactCode.VATCorrection:\n return 100;\n case CbaCategoryTaxImpactCode.Nontax:\n return 0;\n case CbaCategoryTaxImpactCode.Partial:\n return 60;\n }\n};\n\nexport function categoryFormatter(value: TValue): TCellValue {\n if (!value) {\n return DASH_CHARACTER;\n }\n return value as string;\n}\n\nexport const getCbaEntriesTable = (documentType: DocumentTypeCode, context: IAppContext): TFormTable => {\n const isInternalDoc = documentType === DocumentTypeCode.InternalDocument;\n const isBankTransaction = documentType === DocumentTypeCode.BankTransaction;\n const isVatRegistered = hasEverBeenVatRegisteredCompany(context);\n\n const paymentDocumentDef = {\n id: CbaEntryEntity.PaymentDocument,\n fieldSettings: {\n displayName: PaymentDocumentEntity.NumberOurs,\n },\n additionalProperties: [\n { id: `/${createPath(CbaEntryEntity.PaymentDocument, PaymentDocumentEntity.DocumentType)}` },\n { id: `/${createPath(CbaEntryEntity.ProformaDocument, DocumentEntity.DocumentType)}` },\n { id: `/${createPath(CbaEntryEntity.ProformaDocument, DocumentEntity.NumberOurs)}` }\n ],\n formatter: (val: TValue, args: IFormatOptions) => {\n const entity = args.entity as unknown as ICbaEntryEntity;\n const doc = entity.PaymentDocument?.Id ? entity.PaymentDocument : entity.ProformaDocument;\n\n return getTableIntentLink(doc.NumberOurs, {\n route: `${getRouteByDocumentType(doc?.DocumentType?.Code as DocumentTypeCode)}/${doc.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n },\n label: i18next.t(\"Document:PairedDocuments.Document\")\n };\n const pairedDocumentDef = {\n id: CbaEntryEntity.PairedDocument,\n fieldSettings: {\n displayName: \"NumberOurs\"\n },\n label: i18next.t(\"Document:PairedDocuments.Document\")\n };\n\n const columns: IFieldDef[] = [\n { id: CbaEntryEntity.Date },\n !isInternalDoc && (isBankTransaction ? pairedDocumentDef : paymentDocumentDef),\n {\n id: CbaEntryEntity.Type,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n !isInternalDoc && {\n id: CbaEntryEntity.TransactionAmountCleared,\n formatter: smartStrongTextFormatter\n },\n { id: CbaEntryEntity.TransactionAmountTaxed },\n { id: CbaEntryEntity.TransactionAmountNonTaxed },\n ...(!isVatRegistered ? [] : [{ id: CbaEntryEntity.TransactionAmountVat }]),\n {\n id: CbaEntryEntity.Category,\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: categoryFormatter\n },\n { id: CbaEntryEntity.Description }\n ].filter(item => !!item);\n\n const additionalProps = isBankTransaction ? {\n filter: (args: IGetValueArgs) => {\n const docId = args.storage.data.bindingContext.getKey();\n return `PaymentDocument/Id eq ${docId} OR InternalDocument/Id eq ${docId}`;\n },\n } : { parentKey: \"PairedDocument/Id\" };\n\n return {\n id: `cbaLedger`,\n entitySet: EntitySetName.CbaEntries,\n ...additionalProps,\n initialSortBy: [{ id: \"Date\", sort: Sort.Desc }],\n columns\n };\n};\n\nexport const loadCategoriesMap = (storage: FormStorage): void => {\n const entity = storage.data.entity as IPaymentDocumentEntity;\n const pairedItems = entity.Items?.filter(i => !isObjectEmpty(i.LinkedDocument));\n const pairedDocumentCategoriesMap: TPairedDocumentCategoriesMap = {};\n\n for (const item of (pairedItems ?? [])) {\n let defaultInserted = false;\n const linkedDocument = item.LinkedDocument;\n const categories: (IDocumentCbaCategoryEntity | IDocumentItemCbaCategoryEntity)[] = [];\n if (linkedDocument.DocumentItems) {\n for (const docItem of linkedDocument.DocumentItems) {\n if (isObjectEmpty(docItem.CbaCategory)) {\n if (!defaultInserted) {\n if (!categories.some(c => isSameCbaCategory(linkedDocument.CbaCategory, c))) {\n categories.push(linkedDocument.CbaCategory);\n }\n defaultInserted = true;\n }\n } else {\n if (!categories.some(c => isSameCbaCategory(docItem.CbaCategory, c))) {\n categories.push(docItem.CbaCategory);\n }\n }\n }\n }\n pairedDocumentCategoriesMap[linkedDocument.Id] = categories;\n storage.setCustomData({ pairedDocumentCategoriesMap });\n }\n};\n\n// moved from DocumentFormView\n// TODO: temp hotfix - For documents created from ISDOC, some fields might be missing -> calculate/default them if possible\n// also in DraftMassAccountingDialogFormView, we need to set the default values even thought the fields are not visible\nexport const setCbaDefaultValuesForNotVisibleFields = (storage: FormStorage): void => {\n if (isNotDefined(storage.data.entity.CbaCategory.TaxImpact)) {\n const taxImpactBc = storage.data.bindingContext.navigate(`${DocumentEntity.CbaCategory}/${DocumentCbaCategoryEntity.TaxImpact}`);\n storage.setDefaultValue(taxImpactBc);\n }\n if (isNotDefined(storage.data.entity.CbaCategory.TaxPercentage)) {\n const taxPercentageBc = storage.data.bindingContext.navigate(`${DocumentEntity.CbaCategory}/${DocumentCbaCategoryEntity.TaxPercentage}`);\n storage.setDefaultValue(taxPercentageBc);\n }\n if (isNotDefined(storage.data.entity.CbaCategory.IsAssetAcquisition)) {\n const isAssetAcquisitionBc = storage.data.bindingContext.navigate(`${DocumentEntity.CbaCategory}/${DocumentCbaCategoryEntity.IsAssetAcquisition}`);\n storage.setDefaultValue(isAssetAcquisitionBc);\n }\n};\n\nexport const handleItemCbaCategoryChange = (args: ISmartFieldChange, storage: FormStorage): void => {\n if (args.bindingContext.getPath() === CBA_CATEGORY_PATH && args.triggerAdditionalTasks) {\n const itemBc = args.bindingContext.getParent();\n const catBc = itemBc.navigate(PaymentDocumentItemEntity.CbaCategory);\n let category: IDocumentCbaCategoryEntity = {};\n if (args.value === CbaSelectionCode.Default) {\n category = null;\n } else if (args.value === CbaSelectionCode.Own) {\n const dialogCurrentLineItem = getCurrentLineItem(storage, args.bindingContext.getParent());\n storage.setCustomData({\n dialogCurrentLineItem,\n isCbaCategoryDialogOpen: true\n });\n const origCat = storage.getValue(catBc);\n storage.setTemporalData(catBc.navigate(DocumentItemCbaCategoryEntity.TaxPercentage), { value: origCat?.TaxPercentage ?? 100 });\n storage.setTemporalData(catBc.navigate(DocumentItemCbaCategoryEntity.TaxImpact), { value: origCat?.TaxImpact?.Code ?? origCat?.TaxImpactCode ?? CbaCategoryTaxImpactCode.Tax });\n storage.setTemporalData(catBc.navigate(DocumentItemCbaCategoryEntity.IsAssetAcquisition), { value: isDefined(origCat?.IsAssetAcquisition) ? origCat?.IsAssetAcquisition : false });\n storage.refresh();\n return;\n } else if (args.value === CbaCategoryTaxImpactCode.Tax || args.value === CbaCategoryTaxImpactCode.VATCorrection) {\n category = {\n TaxPercentage: 100,\n TaxImpactCode: args.value,\n Category: null\n };\n } else if (args.value === CbaCategoryTaxImpactCode.Nontax) {\n category = {\n TaxPercentage: 0,\n TaxImpactCode: CbaCategoryTaxImpactCode.Nontax,\n Category: null\n };\n } else {\n category = {\n TaxPercentage: args.additionalData?.TaxPercentage,\n TaxImpactCode: args.additionalData?.TaxImpactCode,\n IsAssetAcquisition: args.additionalData?.IsAssetAcquisition,\n Category: args.additionalData\n };\n }\n storage.setValue(catBc, category);\n }\n};\n\nexport const handleCustomCbaCategoryChange = (e: ISmartFieldChange, storage: FormStorage): void => {\n const itemCategoryBc = e.bindingContext.getParent();\n if (e.bindingContext.getPath() === DocumentItemCbaCategoryEntity.Category) {\n const cbaCategory: Partial = e.additionalData;\n if (!isObjectEmpty(cbaCategory)) {\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.TaxPercentage), { value: cbaCategory.TaxPercentage });\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.TaxImpact), { value: cbaCategory.TaxImpact?.Code });\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.IsAssetAcquisition), { value: cbaCategory.IsAssetAcquisition });\n }\n }\n if (e.bindingContext.getPath() === DocumentItemCbaCategoryEntity.TaxImpact) {\n if (e.value !== CbaCategoryTaxImpactCode.Nontax) {\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.IsAssetAcquisition), { value: false });\n }\n\n switch (e.value) {\n case CbaCategoryTaxImpactCode.Partial:\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.TaxPercentage), { value: 60 });\n break;\n case CbaCategoryTaxImpactCode.Tax:\n case CbaCategoryTaxImpactCode.VATCorrection:\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.TaxPercentage), { value: 100 });\n break;\n case CbaCategoryTaxImpactCode.Nontax:\n storage.setTemporalData(itemCategoryBc.navigate(DocumentItemCbaCategoryEntity.TaxPercentage), { value: 0 });\n break;\n default:\n break;\n }\n }\n\n // storage refresh is needed to update related fields (https://solitea-cz.atlassian.net/browse/DEV-28647)\n storage.refresh();\n};\n\nexport const isSameCbaCategory = (c1: IDocumentCbaCategoryEntity, c2: IDocumentCbaCategoryEntity): boolean => {\n return c1?.TaxImpact?.Code === c2?.TaxImpact?.Code && c1?.Category?.Name === c2?.Category?.Name && c1?.TaxPercentage === c2?.TaxPercentage && c1?.IsAssetAcquisition === c2?.IsAssetAcquisition;\n};","import React from \"react\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { createPath, IEntity } from \"@odata/BindingContext\";\nimport { IBankCustomData } from \"../banks/bankTransactions/BankTransactions.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { _getId } from \"../documents/Document.utils\";\nimport { DocumentItemCbaCategoryEntity, PaymentDocumentItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport TemporalFormDialog from \"../../views/formView/TemporalFormDialog\";\n\ninterface IProps {\n storage: FormStorage;\n onTemporalChange: (args: ISmartFieldChange) => void;\n onClose: (isConfirmed: boolean) => void;\n}\n\nconst CustomCategoryTemporalDialog: React.FC = ({ storage, onTemporalChange, onClose }) => {\n if (!storage.getCustomData().isCbaCategoryDialogOpen) {\n return null;\n }\n const lineId = _getId(storage.getCustomData().dialogCurrentLineItem);\n const group = [[\n createPath(`Items(${lineId})`, PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.Category)\n ], [\n createPath(`Items(${lineId})`, PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxImpact),\n createPath(`Items(${lineId})`, PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.IsAssetAcquisition),\n createPath(`Items(${lineId})`, PaymentDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxPercentage)\n ]];\n return (\n \n );\n};\n\nexport default CustomCategoryTemporalDialog;","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { CashBoxEntity, EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType } from \"../../enums\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport {\n getAccountRelatedAccountSettingsFieldsDef,\n getAccountSettingsFormGroup,\n getInitialBalanceFieldsDef,\n getInitialBalanceFormGroup,\n getIsDefaultSwitchDef\n} from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getDefaultRangeDefinition } from \"../numberRange/NumberRangeFields.utils\";\nimport { IDefinition, IGetDefinition, TFieldsDefinition } from \"../PageUtils\";\n\nexport const entitySet = EntitySetName.CashBoxes;\n\n\nfunction addAnalyticAccountDefs(context: IAppContext): TFieldsDefinition {\n if (!isCashBasisAccountingCompany(context)) {\n return getAccountRelatedAccountSettingsFieldsDef(CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX);\n }\n return null;\n}\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const form: IFormDef = {\n id: `${EntityTypeName.CashBox}Form`,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [{ id: CashBoxEntity.Currency }, { id: CashBoxEntity.IsActive }],\n fieldDefinition: {\n Note: {\n width: BasicInputSizes.XL\n },\n CashierName: {\n width: BasicInputSizes.L\n },\n HasMaterialLiability: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n Name: {\n width: BasicInputSizes.XL,\n label: i18next.t(\"Cash:CashBoxes.Name\")\n },\n ReceiptIssuedNumberRangeDefinition: {\n ...getDefaultRangeDefinition(EntityTypeName.CashReceiptIssued),\n label: i18next.t(\"Cash:CashBoxes.NumberRangeIssuedDocs\")\n },\n ReceiptReceivedNumberRangeDefinition: {\n ...getDefaultRangeDefinition(EntityTypeName.CashReceiptReceived),\n label: i18next.t(\"Cash:CashBoxes.NumberRangeReceivedDocs\")\n },\n [CashBoxEntity.IsDefault]: getIsDefaultSwitchDef(true),\n ...addAnalyticAccountDefs(context),\n ...getInitialBalanceFieldsDef()\n },\n groups: [\n {\n id: \"Title\",\n rows: [[{ id: \"Name\" }, { id: CashBoxEntity.IsDefault }]]\n },\n {\n id: \"general\",\n rows: [[{ id: \"ReceiptReceivedNumberRangeDefinition\" }, { id: \"ReceiptIssuedNumberRangeDefinition\" }], [{ id: \"CashierName\" }, { id: \"HasMaterialLiability\" }]]\n },\n getInitialBalanceFormGroup()\n ]\n };\n\n\n if (!isCashBasisAccountingCompany(context)) {\n form.groups = arrayInsert(form.groups, getAccountSettingsFormGroup(),2);\n }\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Cash\", \"Banks\", getEnumNameSpaceName(EntityTypeName.Currency)];\nsetDefByEntityType(EntityTypeName.CashBox, getDefinitions);","import { TFieldDefinition } from \"../../PageUtils\";\nimport { BasicInputSizes, FieldType } from \"../../../enums\";\nimport { ifAny, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport {\n CashBoxEntity,\n ICashBoxEntity,\n ICashReceiptEntity,\n IDocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport const isInactiveCashBox = (args: IGetValueArgs): boolean => {\n const accounts = (args.storage as FormStorage).context.getCashBoxes();\n const cashBoxId = args.storage.data.entity?.CashBox?.Id;\n const activeCashBox = accounts?.find(box => box.Id === cashBoxId);\n return activeCashBox?.IsActive === false;\n};\n\nexport const hasItems = (args: IGetValueArgs): boolean => {\n const entity = args.storage.getEntity();\n\n return entity.Items?.length > 0;\n};\n\n\nexport const getDefaultCashBox = (accounts: ICashBoxEntity[], entity: IEntity): ICashBoxEntity => {\n const transactionCurrency = entity.TransactionCurrency?.Code;\n const accountsWithCorrectCurrency = accounts.filter(account => !transactionCurrency || account.TransactionCurrencyCode === transactionCurrency);\n\n if (accountsWithCorrectCurrency.length === 1) {\n return accountsWithCorrectCurrency[0];\n }\n\n return accountsWithCorrectCurrency.find(account => account.IsDefault);\n};\n\nexport const getBasicCashBoxSelectDef = (): TFieldDefinition => {\n return {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n defaultValue: (args: IGetValueArgs) => {\n const accounts = args.context.getCashBoxes(true);\n const entity = args.data as IDocumentEntity;\n return getDefaultCashBox(accounts, entity)?.Id;\n },\n additionalProperties: [{ id: CashBoxEntity.ReceiptIssuedNumberRangeDefinition }, { id: CashBoxEntity.ReceiptReceivedNumberRangeDefinition }],\n fieldSettings: {\n shouldDisplayAdditionalColumns: true,\n additionalProperties: [{ id: \"TransactionCurrencyCode\" }],\n\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const accounts = (args.storage as FormStorage).context.getCashBoxes(!isInactiveCashBox(args));\n if (isCashBasisAccountingCompany(args.storage.context)) {\n return accounts?.map(acc => {\n const item: ISelectItem = {\n id: acc.Id,\n label: acc.Name,\n additionalData: acc,\n tabularData: [acc.Name, acc.TransactionCurrencyCode]\n };\n\n return item;\n });\n }\n return accounts?.map(acc => {\n const label = `211${acc.BalanceSheetAccountNumberSuffix}`;\n const item: ISelectItem = {\n id: acc.Id,\n label,\n additionalData: acc,\n tabularData: [label, acc.TransactionCurrencyCode, acc.Name]\n };\n\n return item;\n });\n }\n },\n\n columns: [{\n id: \"BalanceSheetAccountNumberSuffix\",\n additionalProperties: [{ id: \"ReceiptIssuedNumberRangeDefinition\" }, { id: \"ReceiptReceivedNumberRangeDefinition\" }, { id: \"CurrencyCode\" }]\n }, { id: \"Name\" }]\n };\n};\n\nexport const getCashBoxSelectDef = (): TFieldDefinition => {\n const def = getBasicCashBoxSelectDef();\n\n return {\n ...def,\n isDisabled: ifAny(isInactiveCashBox, hasItems),\n fieldSettings: {\n ...def.fieldSettings,\n localDependentFields: [{\n from: { id: \"TransactionCurrencyCode\" },\n to: { id: \"TransactionCurrency/Code\" }\n }, {\n from: { id: \"TransactionCurrency/MinorUnit\" },\n to: { id: \"TransactionCurrency/MinorUnit\" }\n }, {\n from: { id: \"BalanceSheetAccountNumberSuffix\" },\n to: { id: \"CashBox/BalanceSheetAccountNumberSuffix\" }\n }, {\n from: { id: \"Name\" },\n to: { id: \"CashBox/Name\" }\n }]\n },\n affectedFields: [{ id: \"TransactionAmount\" }, { id: \"Items/TransactionAmount\" }, { id: \"Items\" }, { id: \"ExchangeRatePerUnit\" }]\n };\n};","import styled, { css } from \"styled-components/macro\";\nimport { CActDetBGStyles, getDisabledStyle } from \"../../global.style\";\n\nconst centered = css`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n`;\n\nexport const CheckboxFilterStyled = styled.div<{\n isDisabled: boolean;\n}>`\n background-color: ${props => props.theme.C_ACT_der};\n ${props => getDisabledStyle(props.isDisabled)};\n ${CActDetBGStyles};\n\n width: 280px;\n height: 100px;\n display: flex;\n align-items: stretch;\n border-radius: 3px;\n\n margin-right: 20px;\n margin-bottom: 15px;\n`;\n\nexport const CheckboxWrapper = styled.div`\n ${centered};\n background-color: rgba(255, 255, 255, 0.1);\n flex: 0 0 30px;\n cursor: pointer;\n`;\n\nexport const LogoWrapper = styled.div`\n ${centered};\n flex: 0 0 80px;\n\n rect {\n fill: none;\n }\n\n path {\n fill: ${props => props.theme.C_BG_menu};\n }\n`;\n\nexport const ContentWrapper = styled.div`\n padding: 15px 10px 0 5px;\n flex: 1 1 auto;\n width: 0; // shrinks this column if needed\n`;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { CashBoxIcon } from \"../icon\";\nimport Checkbox from \"../inputs/checkbox\";\nimport { CheckboxFilterStyled, CheckboxWrapper, ContentWrapper, LogoWrapper } from \"./CheckboxFilter.styles\";\n\n\ninterface IProps extends WithTranslation {\n className?: string;\n isDisabled: boolean;\n checked: boolean;\n onChange: () => void;\n}\n\nclass CheckboxFilter extends React.PureComponent {\n handleKeyDown = (callback: (e?: React.MouseEvent) => void, e: React.KeyboardEvent) => {\n if (e.key === KeyName.Space || e.key === KeyName.Enter) {\n e.preventDefault();\n callback();\n }\n };\n\n render() {\n return (\n \n \n \n \n \n \n \n \n {this.props.children}\n \n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(CheckboxFilter);","import styled from \"styled-components/macro\";\nimport { T_PLAIN_small, T_TITLE_5, T_TITLE_6 } from \"../../../global.style\";\nimport { ellipsis } from \"polished\";\n\nexport const CheckboxWrapper = styled.div``;\n\nexport const Title = styled.div`\n ${T_TITLE_5};\n margin-bottom: 5px;\n ${ellipsis()}\n`;\n\nexport const CashBoxBalance = styled.div`\n ${T_PLAIN_small};\n`;\n\nexport const CashBoxAccountNumber = styled.div`\n ${T_TITLE_6};\n opacity: 0.6;\n margin-bottom: 10px;\n`;\n\nexport const SmartCashBoxFilterStyled = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin-left: -10px;\n`;","import React from \"react\";\nimport { ICashBoxEntity } from \"@odata/GeneratedEntityTypes\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { ISmartFieldChange } from \"../smartField/SmartField\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport CheckboxFilter from \"../../checkboxFilter/CheckboxFilter\";\nimport { CashBoxAccountNumber, CashBoxBalance, SmartCashBoxFilterStyled, Title } from \"./SmartCashBoxFilter.styles\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport {\n ISmartBankAccountFilterCustomData,\n toggleCompanyFilterValue\n} from \"../smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport { LastImport } from \"../../bankAccountCheckbox/BankAccountCheckbox.styles\";\nimport { ColoredIcon, LastUpdatedIcon } from \"../../icon\";\nimport { IconSize } from \"../../../enums\";\nimport DateType from \"../../../types/Date\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport Tooltip from \"../../tooltip\";\n\ninterface IProps extends WithTranslation {\n storage: TableStorage;\n className?: string;\n onChange: (args: ISmartFieldChange) => void;\n bindingContext?: BindingContext;\n isDisabled?: boolean;\n ref?: React.Ref;\n}\n\n\nclass SmartCashBoxFilter extends React.Component {\n handleChange = (id: number) => {\n const values = this.props.storage.getValue(this.props.bindingContext, { useDirectValue: false }) || [];\n toggleCompanyFilterValue(values, id);\n\n this.props.onChange?.({\n value: values,\n bindingContext: this.props.bindingContext\n });\n };\n\n render() {\n const values: number[] = this.props.storage.getValue(this.props.bindingContext, { useDirectValue: false }) || [];\n const isDisabled = this.props.storage.isDisabled || this.props.isDisabled;\n const visibleCashBoxes: ICashBoxEntity[] = this.props.storage.getCustomData().CurrentBankAccountFilterAccounts ?? [];\n const hasAccount = isAccountAssignmentCompany(this.props.storage.context);\n return (\n \n {visibleCashBoxes.map(cashBox => {\n const isChecked = !values.find((val: number) => val === cashBox.Id);\n const formattedBalance = formatCurrency(cashBox.Balance?.TransactionBalance, cashBox.TransactionCurrencyCode);\n return (\n {\n this.handleChange(cashBox.Id);\n }}\n >\n \n {(ref) => {\n return ({cashBox.Name});\n }}\n \n {hasAccount &&\n 211{cashBox.BalanceSheetAccountNumberSuffix}}\n {formattedBalance}\n \n {!cashBox.IsActive ? this.props.t(\"Components:BankAccountCheckbox.Inactive\") : (\n <>\n \n {DateType.localFormat(cashBox.Balance?.DateBalanceChanged, DateType.defaultDateTimeFormat)}\n \n )}\n \n \n );\n })}\n \n );\n }\n}\n\nconst SmartCashBoxFilterWithData = withTranslation([\"Components\"], { withRef: true })(SmartCashBoxFilter);\nexport { SmartCashBoxFilterWithData as SmartCashBoxFilter };","import { getDrillDownFilters } from \"@components/drillDown/DrillDown.utils\";\nimport { IncomingIcon, OutgoingIcon } from \"@components/icon\";\nimport { PairingFastEntryList } from \"@components/pairingFastEntryList\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n ExchangeRatePerUnit,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { getFilterBarItemParsedValue } from \"@components/smart/smartBankAccountFilter/SmartBankAccountFilter.utils\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IGroupRenderFn } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport {\n CashReceiptEntity,\n CashReceiptIssuedEntity,\n CashReceiptReceivedEntity,\n EntitySetName,\n EntityTypeName,\n PaymentDocumentDraftEntity,\n PaymentDocumentItemDraftEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { ICreateFilterStringSettings, IFormatOptions } from \"@odata/OData.utils\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { getFilterForDocumentDrafts } from \"@utils/DraftUtils\";\nimport { arrayInsert, isDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\n\nimport { SmartCashBoxFilter } from \"../../../components/smart/smartCashBoxFilter/SmartCashBoxFilter\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, IconSize, Sort, TextAlign, ValidatorType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { IFilterQuery, TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IChangedFilter, isDraftView, ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { addAssetDef } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { getAmountFilterDefs, paymentDocDateValidator } from \"../../banks/bankTransactions/BankTransactions.utils\";\nimport { _bankFormatter, CUSTOMIZE_BUTTON_ID } from \"../../banks/bankTransactions/BankTransactionsDef\";\nimport { getPairDef, PairAdditionalData } from \"../../banks/Pair.utils\";\nimport {\n getPaymentStatusSummaryItem,\n getPaymentStatusTabData,\n getPaymentStatusTableColumnDef,\n getPaymentTabsDef,\n isExchangeRateVisible,\n makeCbaDefAdjustments,\n PaymentStatusSummaryAdditionalData\n} from \"../../banks/Payments.utils\";\nimport {\n draftNumberOursFormatter,\n getCurrencyUnit,\n readOnlyCurrencyItemFormatter\n} from \"../../documents/Document.utils\";\nimport {\n DOCUMENT_DATE_CHANGE_DEBOUNCE,\n getDocumentStatusFilterDefinition,\n getUsedStatuses\n} from \"../../documents/DocumentDef\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { DocumentStatusLocalPath, StatusCodeEnumTranslations } from \"../../reports/CommonDefs\";\nimport { getCashBoxSelectDef, hasItems } from \"./CashReceipts.utils\";\n\nconst cashAmountFormatter = (value: TValue, args: IFormatOptions) => {\n return _bankFormatter({\n amount: args.entity?.Amount,\n transactionAmount: args.entity?.TransactionAmount,\n transactionCurrencyCode: args.entity?.TransactionCurrencyCode,\n currencyCode: args.entity?.CurrencyCode,\n useColor: true,\n showPositive: true,\n isPositive: args.entity?.DocumentType?.Code === DocumentTypeCode.CashReceiptReceived\n });\n};\n\nexport const isPairFastEntryDisabled = (storage: FormStorage): boolean => {\n const isExVisible = isExchangeRateVisible(storage);\n\n const allIsSet = storage.data.entity.DateIssued && storage.data.entity.CashBox && isDefined(storage.data.entity.TransactionAmount)\n && (!isExVisible || isDefined(storage.data.entity.ExchangeRatePerUnit));\n\n return !allIsSet;\n};\n\nexport const getCashReceiptsFormDef = (formControl: React.ComponentType, isReceived: boolean, context: IAppContext): IDefinition => {\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n const isCbaCompany = isCashBasisAccountingCompany(context);\n\n const target = isReceived ? [{ id: CashReceiptReceivedEntity.ReceivedFrom }, { id: CashReceiptReceivedEntity.ReceivedBy }] : [{ id: CashReceiptIssuedEntity.PaidBy }, { id: CashReceiptIssuedEntity.PaidTo }];\n const targetDef = isReceived ? { ReceivedFrom: {}, ReceivedBy: {} } : { PaidBy: {}, PaidTo: {} };\n const type = isReceived ? DocumentTypeCode.CashReceiptReceived : DocumentTypeCode.CashReceiptIssued;\n\n const form: IFormDef = {\n id: isReceived ? `${EntityTypeName.CashReceiptReceived}Form` : `${EntityTypeName.CashReceiptIssued}Form`,\n permissions: [CompanyPermissionCode.Bank],\n summary: [\n getNumberOursSummaryDef(\"Cash\"),\n getPaymentStatusSummaryItem()\n ],\n draftDef: {\n draftProperty: CashReceiptEntity.PaymentDocumentDraft,\n draftEntitySet: EntitySetName.PaymentDocumentDrafts,\n navigationToItem: PaymentDocumentItemDraftEntity.PaymentDocumentItem,\n navigationFromDraft: PaymentDocumentDraftEntity.PaymentDocument,\n draftAdditionalProps: [{ id: \"DateLastModified\" }, { id: \"Items/PaymentDocumentItem\" }]\n },\n showChanges: true,\n additionalProperties: [\n { id: createPath(CashReceiptEntity.CreatedBy, \"Id\") },\n { id: CashReceiptEntity.PaymentDocumentDraft },\n ...AttachmentsAdditionalProperties,\n ...NumberRangeAdditionalProperties,\n ...PairAdditionalData,\n ...PaymentStatusSummaryAdditionalData,\n { id: \"IsUnrelatedToBusiness\" },\n { id: \"TransactionCurrency/MinorUnit\" },\n { id: \"CashBox/BalanceSheetAccountNumberSuffix\" }, { id: \"CashBox/Name\" }\n ],\n files: AttachmentsDef,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n formControl,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Cash:CashReceipts.NewFormTitle\"), storage.data.entity?.NumberOurs),\n title: i18next.t(`Cash:CashReceipts.${isReceived ? \"SingTitle\" : \"SingIssuedTitle\"}`),\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"Cash\"),\n TransactionAmount: {\n isDisabled: hasItems,\n affectedFields: [{ id: BindingContext.localContext(\"ItemsHeader\") }],\n label: i18next.t(\"Cash:CashReceipts.Amount\"),\n validator: {\n type: ValidatorType.PositiveNumber\n },\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n },\n customizationData: {\n dependents: [CashReceiptEntity.ExchangeRatePerUnit]\n }\n },\n CashBox: getCashBoxSelectDef(),\n Purpose: {\n isConfirmable: true,\n width: BasicInputSizes.XL,\n type: FieldType.EditableText\n },\n DateIssued: {\n defaultValue: () => {\n return getUtcDate();\n },\n isDisabled: hasItems,\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: paymentDocDateValidator\n }\n }\n },\n ...targetDef,\n ExchangeRatePerUnit: {\n ...ExchangeRatePerUnit,\n isDisabled: hasItems,\n width: BasicInputSizes.S,\n defaultValue: \"\",\n label: i18next.t(\"Document:Form.CurrencyRate\")\n },\n ...getPairDef(type, hasAccountAssignment)\n },\n groups: [{\n id: \"payment\",\n title: i18next.t(\"Cash:CashReceipts.Payment\"),\n rows: [[{ id: \"CashBox\" }, { id: \"DateIssued\" }, { id: \"TransactionAmount\" }, { id: \"ExchangeRatePerUnit\" }, ...target], [{ id: \"Purpose\" }]]\n }, {\n id: \"Pair\",\n title: i18next.t(\"Banks:Pairing.PairForm\"),\n lineItems: {\n collection: \"Items\",\n order: \"Id\",\n columns: [{\n id: \"Amount\"\n }, {\n id: \"TransactionAmount\"\n }, {\n id: \"LinkedDocument/NumberOurs\"\n }],\n isReadOnly: (args: IGetValueArgs) => {\n return args.data.IsUnrelatedToBusiness;\n },\n render: (args: IGroupRenderFn) => {\n return ;\n }\n }\n },\n getPaymentTabsDef(isCbaCompany, context)]\n };\n\n const itemsGroup = form.groups.find(g => g.id === \"Pair\");\n\n if (hasAccountAssignment) {\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"DateAccountingTransaction\" }, 2);\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"AccountAssignmentSelection/AccountAssignment\" }, 3);\n }\n\n if (isCbaCompany) {\n makeCbaDefAdjustments(form, itemsGroup);\n }\n\n const definition = {\n entitySet: isReceived ? EntitySetName.CashReceiptsReceived : EntitySetName.CashReceiptsIssued,\n form\n };\n\n if (isCbaCompany) {\n addAssetDef(definition);\n }\n\n return definition;\n};\n\nconst cashBoxAccountFormatter = (val: TValue, args?: IFormatOptions) => {\n const cashBoxes = args.storage.context.getCashBoxes();\n const acc = cashBoxes.find(acc => acc.Id === val);\n if (acc) {\n return acc.Name;\n }\n\n return val as string;\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n isExpanded: false,\n defaultFilters: [\"CashBox\"],\n clearOnVariantChange: true,\n customButtons: [{\n id: CUSTOMIZE_BUTTON_ID,\n title: i18next.t(\"Cash:CustomizationDialog.ButtonTitle\"),\n iconName: \"Settings\"\n }],\n filterDefinition: {\n CashBox: {\n fieldSettings: {\n displayName: \"Name\"\n },\n // after yup update, without useForValidation, the filter is not applied because of validation error\n // => useForValidation: false\n useForValidation: false,\n formatter: cashBoxAccountFormatter,\n filterName: \"Id\",\n type: FieldType.Custom,\n filter: {\n buildFilter(item: IChangedFilter, settings: ICreateFilterStringSettings, storage: TableStorage): string | IFilterQuery {\n const values = item?.value as [];\n\n if (isDraftView(storage as TSmartODataTableStorage) || !item || isEmpty(values)) {\n return \"\";\n }\n\n return `NOT(Cashbox/Id in (${values.join(\", \")}))`;\n },\n customReadOnlyParsedValue: getFilterBarItemParsedValue\n },\n render: ({ props, storage }) => {\n const hasDrilldownFilter = !!getDrillDownFilters()?.[\"CashBox\"];\n\n return \n ;\n }\n }\n }\n }, {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"DocumentType\",\n \"DateIssued\",\n \"NumberOurs\",\n \"TransactionAmount\",\n DocumentStatusLocalPath,\n \"Purpose\"\n ],\n filterDefinition: {\n ...withDisplayName(\"DocumentType\"),\n DateIssued: {},\n NumberOurs: {},\n Purpose: { isValueHelp: false },\n ...getAmountFilterDefs(),\n ...getDocumentStatusFilterDefinition(getUsedStatuses(context, DocumentTypeCode.CashReceiptIssued)),\n ...getFilterForDocumentDrafts(true),\n ...getCommonFilterDefs()\n }\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n ...getPaymentStatusTabData(),\n id: `${EntityTypeName.CashReceipt}Table`,\n draftDef: {\n draftEntitySet: EntitySetName.PaymentDocumentDrafts,\n draftFilter: `${PaymentDocumentDraftEntity.PaymentDocument}/Id eq null AND ${PaymentDocumentDraftEntity.DocumentTypeCode} in ('${DocumentTypeCode.CashReceiptReceived}', '${DocumentTypeCode.CashReceiptIssued}')`,\n draftProperty: CashReceiptEntity.PaymentDocumentDraft,\n draftPropsBlacklist: [CashReceiptEntity.PaymentDocumentDraft, CashReceiptEntity.PaymentStatus, CashReceiptEntity.PaymentStatusCode]\n },\n massEditableDef: {},\n initialSortBy: [\n { id: CashReceiptEntity.DateIssued, sort: Sort.Desc },\n { id: CashReceiptEntity.NumberOurs, sort: Sort.Desc }\n ],\n additionalProperties: [{\n id: createPath(CashReceiptEntity.LastModifiedBy, UserEntity.Name)\n }, {\n id: CashReceiptEntity.DateLastModified\n }, {\n id: CashReceiptEntity.PaymentDocumentDraft\n }],\n columns: [\n CashReceiptEntity.NumberOurs,\n CashReceiptEntity.DocumentType,\n CashReceiptEntity.DateIssued,\n CashReceiptEntity.CashBox,\n CashReceiptEntity.TransactionAmount,\n CashReceiptEntity.PaymentStatus,\n CashReceiptEntity.Purpose\n ],\n columnDefinition: {\n ...getPaymentStatusTableColumnDef(),\n DateIssued: {\n label: i18next.t(\"Common:General.Issued\")\n },\n DateCreated: getCommonTableColumnsDefs().DateCreated,\n NumberOurs: {\n formatter: draftNumberOursFormatter(EntitySetName.PaymentDocumentDrafts, CashReceiptEntity.PaymentDocumentDraft)\n },\n CashBox: {\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Cash:CashBoxes.SingleTitle\")\n },\n Purpose: {},\n DocumentType: {\n textAlign: TextAlign.Center,\n formatter: (val: TValue) => {\n if (val === DocumentTypeCode.CashReceiptIssued) {\n const title = i18next.t(\"Banks:Transactions.Out\");\n return {\n tooltip: title,\n value: \n };\n }\n\n const title = i18next.t(\"Banks:Transactions.In\");\n return {\n tooltip: title,\n value: \n };\n }\n },\n TransactionAmount: {\n label: i18next.t(\"Banks:Transactions.Converted\"),\n additionalProperties: [{ id: \"/CurrencyCode\" }, { id: \"/TransactionCurrencyCode\" },\n { id: \"/DocumentType\" }, { id: \"/ExchangeRatePerUnit\" }, { id: \"/Amount\" }],\n formatter: cashAmountFormatter\n },\n Amount: {\n label: i18next.t(\"Banks:Transactions.Amount\")\n }\n },\n title: i18next.t(\"Cash:CashReceipts.Title\")\n };\n\n if (hasAccountAssignment) {\n table.columnDefinition[\"CashBox/BalanceSheetAccountNumberSuffix\"] = {\n label: i18next.t(\"Cash:CashBoxes.AccountTitle\"),\n formatter: (value: TValue) => {\n return `211.${value}`;\n }\n };\n }\n return {\n entitySet: EntitySetName.CashReceipts,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Cash\", \"Banks\", \"Common\", \"Document\", \"Components\", \"NumberRange\", \"Error\", \"Enums\", \"Categories\", \"FixedAsset\", getEnumNameSpaceName(EntityTypeName.CbaCategoryTaxImpact), ...StatusCodeEnumTranslations];\nsetDefByEntityType(EntityTypeName.CashReceipt, getDefinitions);\n","import { withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { BankTransactionTypeCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport DateType from \"../../../types/Date\";\nimport { createDefaultPairFilter, getCashTransactionType } from \"../../banks/bankTransactions/BankTransactions.utils\";\nimport { PairTableViewForExtend } from \"../../banks/PairTableView\";\nimport { IPairTableViewBaseProps } from \"../../banks/PairTableViewBase\";\n\n\nclass CashReceiptsPairTableView extends PairTableViewForExtend {\n constructor(props: IPairTableViewBaseProps) {\n super(props);\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n this.presetDefaultFilters();\n }\n\n getTitle = () => {\n return this.payment === BankTransactionTypeCode.IncomingPayment ? i18next.t(\"Cash:PairDialog.TitleReceived\") : i18next.t(\"Cash:PairDialog.Title\");\n };\n\n get payment() {\n const type = this.getRootStorage().getCustomData().type;\n return type === DocumentTypeCode.CashReceiptReceived ? BankTransactionTypeCode.IncomingPayment : BankTransactionTypeCode.OutgoingPayment;\n }\n\n getTransactionType = () => {\n return getCashTransactionType(this.props.rootStorage);\n };\n\n get successSubtitle(): string {\n return i18next.t(\"Cash:PairDialog.Paired\");\n }\n\n presetDefaultFilters() {\n createDefaultPairFilter(this.props.storage, this.payment);\n this.props.storage.applyFilters();\n }\n\n _format = (val: string) => {\n return val || DASH_CHARACTER;\n };\n\n getHeaderData = (): IReadOnlyListItem[] => {\n const cashBox = this.props.rootStorage.data.entity.CashBox?.BalanceSheetAccountNumberSuffix;\n const name = this.props.rootStorage.data.entity.CashBox?.Name;\n\n const isCba = isCashBasisAccountingCompany(this.props.rootStorage.context);\n\n const cashBoxItem = isCba ? {\n label: this.props.rootStorage.t(\"Cash:PairDialog.CashBox\"),\n value: name ?? DASH_CHARACTER,\n } : {\n label: this.props.rootStorage.t(\"Cash:PairDialog.CashBox\"),\n value: cashBox ? `211${this._format(cashBox)}` : DASH_CHARACTER,\n description: name ? ` | ${name}` : \"\"\n };\n\n return [{\n label: this.props.rootStorage.t(\"Cash:PairDialog.Date\"),\n value: this._format(DateType.format(this.props.rootStorage.data.entity.DateIssued))\n }, {\n label: this.props.rootStorage.t(\"Cash:PairDialog.Amount\"),\n value: this._format(this.formatCurrency(this.props.rootStorage.data.entity.TransactionAmount))\n }, {\n ...cashBoxItem\n }, {\n label: this.props.rootStorage.t(\"Cash:PairDialog.Note\"),\n value: this._format(this.props.rootStorage.data.entity.Purpose)\n }];\n };\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true, isDelayed: true })(withPermissionContext(CashReceiptsPairTableView));","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n CashReceiptEntity,\n EntitySetName,\n IBankTransactionEntity,\n ICashBoxEntity,\n ICashReceiptEntity,\n IDocumentEntity,\n INumberRangeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { checkPermissionWithOwnPermission } from \"@utils/permissionUtils\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport BusyIndicator from \"../../../components/busyIndicator\";\nimport { Button } from \"../../../components/button\";\nimport { AppContext, ContextEvents } from \"../../../contexts/appContext/AppContext.types\";\nimport { EmptyObject } from \"../../../global.types\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport DraftFormView from \"../../../views/formView/DraftFormView\";\nimport { FormStorage, IFormStorageSaveResult, ISaveArgs } from \"../../../views/formView/FormStorage\";\nimport { IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n correctAccountIdAfterChange,\n correctAccountIds,\n handleAccAssignmentChange,\n handleAccAssignmentChildrenChange,\n IAccAssDialogCustomData,\n invalidateAccountAssignments,\n sendAdditionalRequestForAccountAssignment,\n setCorrectSpecialItemsForAccountAssignment\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport { AccountAssignmentDialog } from \"../../accountAssignment/AccountAssignmentDialog\";\nimport {\n getCashTransactionType,\n getTranBalance,\n handleBeforeSave,\n handleLineItemsChange,\n IBankCustomData,\n refreshExRateAndRefreshItems,\n refreshFormAfterDateChange,\n renderAssignmentSplitDialog,\n renderPairingDialog\n} from \"../../banks/bankTransactions/BankTransactions.utils\";\nimport { addExpenseGainIfMissing, correctGainAccountAssignment, handleItemAmountBlur } from \"../../banks/Pair.utils\";\nimport { createPaymentEntityCopy } from \"../../banks/Payments.utils\";\nimport {\n handleCustomCbaCategoryChange,\n loadCategoriesMap,\n setCorrectSpecialItemsForItemCategory\n} from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport CustomCategoryTemporalDialog from \"../../cashBasisAccounting/CustomCategoryTemporalDialog\";\nimport { IDocumentFormViewProps } from \"../../documents/DocumentInterfaces\";\nimport { setFiscalYearForNumberRangeWithoutFiscalYear } from \"../../documents/proformaInvoices/ProformaInvoice.utils\";\nimport {\n canChangeNumberRange,\n getFiscalDataForNumberRange,\n getRangeByDefinitionId,\n loadAndStoreRanges,\n replaceWildcards\n} from \"../../numberRange/NumberRange.utils\";\nimport { getDefaultCashBox } from \"./CashReceipts.utils\";\nimport { isPairFastEntryDisabled } from \"./CashReceiptsDef\";\nimport CashReceiptsPairTableView from \"./CashReceiptsPairTableView\";\n\ninterface IProps extends IFormViewProps, WithConfirmationDialog {\n}\n\nclass CashReceiptsFormView extends DraftFormView {\n static contextType = AppContext;\n\n documentTypeCode: DocumentTypeCode;\n\n get _documentItemDomainType(): string {\n return \"PaymentDocumentItem\";\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.registerHeader();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\n super.componentDidUpdate(prevProps, prevState);\n this.registerHeader();\n }\n\n getAdditionalLoadPromise = (): Promise[] => {\n const promises: Promise[] = [\n loadAndStoreRanges(this.props.storage)\n ];\n return promises;\n };\n\n getDefaultCashBox = (): ICashBoxEntity => {\n const accounts = this.props.storage.context.getCashBoxes(true);\n const entity = this.props.storage.data as IDocumentEntity;\n return getDefaultCashBox(accounts, entity);\n };\n\n\n setDefaultCashBox = (setRange: boolean): ICashBoxEntity => {\n const storage = this.props.storage;\n const defaultAccount = this.getDefaultCashBox();\n if (defaultAccount) {\n if (setRange) {\n this.changeNumberRangeBaseByCashBox(defaultAccount, true);\n }\n storage.setValueByPath(\"TransactionCurrency/Code\", defaultAccount.TransactionCurrencyCode);\n storage.setValueByPath(\"TransactionCurrency/MinorUnit\", defaultAccount.TransactionCurrency?.MinorUnit);\n storage.setValueByPath(\"CashBox/BalanceSheetAccountNumberSuffix\", defaultAccount.BalanceSheetAccountNumberSuffix);\n\n refreshExRateAndRefreshItems(this.props.storage, defaultAccount.TransactionCurrencyCode, this.props.storage.data.entity.DateIssued);\n }\n\n return defaultAccount;\n };\n\n setupCashBoxStuff = async (): Promise => {\n const { storage } = this.props;\n const { entity } = storage.data;\n const isNew = storage.data.bindingContext.isNew();\n\n if (isNew) {\n await loadAndStoreRanges(storage, true);\n }\n\n if (this.isDraftView()) {\n let defaultAccount = entity.CashBox;\n if (!entity.CashBox?.Id) {\n defaultAccount = this.setDefaultCashBox(false);\n storage.setValueByPath(\"CashBox\", defaultAccount?.Id);\n }\n\n if (isNotDefined(entity.NumberOurs)) {\n let range = entity.NumberRange;\n if (isObjectEmpty(range)) {\n range = this.getRangeFromCashBox(defaultAccount);\n }\n\n this.replaceWildcardsAndSetRange(range);\n }\n } else if (isNew) {\n if (storage.getCustomData()?.isCopy) {\n this.changeNumberRangeBaseByCashBox(this.entity.CashBox, true);\n } else if (!entity.CashBox?.Id || !entity.NumberOurs) {\n this.setDefaultCashBox(true);\n }\n }\n };\n\n onAfterLoad = async (): Promise => {\n const { storage } = this.props;\n\n\n storage.setCustomData({ type: this.documentTypeCode });\n\n setFiscalYearForNumberRangeWithoutFiscalYear(storage, storage.data.entity.DateIssued);\n setCorrectSpecialItemsForAccountAssignment(storage, CashReceiptEntity.Items);\n await Promise.all([setCorrectSpecialItemsForItemCategory(storage), correctAccountIds(storage, CashReceiptEntity.Items)]);\n\n await this.setupCashBoxStuff();\n\n if (isCashBasisAccountingCompany(this.context)) {\n loadCategoriesMap(storage);\n }\n return super.onAfterLoad();\n };\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const numberOursBc = this.props.storage.data.bindingContext.navigate(CashReceiptEntity.NumberOurs);\n this.props.storage.addCustomRef(this._refHeader.current, numberOursBc);\n }\n };\n\n handleAmountBlur = (args: ISmartFieldBlur): void => {\n if (args.bindingContext.getPath() === CashReceiptEntity.TransactionAmount) {\n this.props.storage.addActiveField(this.props.storage.data.bindingContext.navigate(CashReceiptEntity.Items));\n }\n };\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n if (args.wasChanged) {\n handleItemAmountBlur(this.props.storage, args);\n }\n\n await this.props.storage.handleBlur(args);\n\n if (args.wasChanged) {\n this.handleAmountBlur(args);\n }\n\n this.props.storage.refreshFields();\n };\n\n canPostDocument = (): boolean => {\n return checkPermissionWithOwnPermission(this.props.storage, this.props.permissionContext, CompanyPermissionCode.CashBox);\n };\n\n shouldDisableSaveButton = (): boolean => {\n return !this.canPostDocument() || this.props.storage.data.entity[CashReceiptEntity.Locks]?.length > 0 || this.props.storage.isDisabled;\n };\n\n handleSave = (): void => {\n this.save();\n };\n\n handlePost = (): void => {\n this.save({\n queryParams: {\n postInvoice: true\n }\n });\n };\n\n handleSaveAndPost = (): void => {\n this.save({\n queryParams: {\n postInvoice: true,\n clearInvoice: true\n }\n });\n };\n\n handlePreSave = (): void => {\n const balance = getTranBalance(this.props.storage);\n const hasItems = this.props.storage.data.entity.Items?.length > 0;\n const hadItems = this.props.storage.data.origEntity?.Items?.length > 0;\n if (hasItems || hadItems) {\n if (balance === 0) {\n this.handleSaveAndPost();\n } else {\n this.handlePost();\n }\n } else {\n this.handleSave();\n }\n };\n\n renderSaveButtons = (): ReactElement => {\n return \n {this.props.storage.t(\"Common:General.Save\")}\n ;\n };\n\n replaceWildcardsAndSetRange = (range: INumberRangeEntity): void => {\n const numberOurs = replaceWildcards(range.NextNumber, this.props.storage.data.entity);\n this.props.storage.setValueByPath(CashReceiptEntity.NumberRange, range, true);\n this.props.storage.setValueByPath(CashReceiptEntity.NumberOurs, numberOurs, true);\n };\n\n getRangeFromCashBox = (record: IEntity): INumberRangeEntity => {\n const fieldName = this.documentTypeCode === DocumentTypeCode.CashReceiptIssued ? \"ReceiptIssuedNumberRangeDefinition\" : \"ReceiptReceivedNumberRangeDefinition\";\n if (record?.[fieldName]) {\n return getRangeByDefinitionId(this.props.storage, record[fieldName]?.Id, getFiscalDataForNumberRange(this.props.storage.getEntity())?.FiscalYear?.Id);\n }\n\n return null;\n };\n\n changeNumberRangeBaseByCashBox = (record: IEntity, force: boolean): void => {\n const range = this.getRangeFromCashBox(record);\n // we don't change number ours for custom range\n if (range && (force || canChangeNumberRange(this.props.storage))) {\n this.replaceWildcardsAndSetRange(range);\n }\n };\n\n handleCashBoxChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === CashReceiptEntity.CashBox && e.triggerAdditionalTasks) {\n refreshExRateAndRefreshItems(this.props.storage, e.additionalData?.TransactionCurrencyCode, this.props.storage.data.entity.DateIssued);\n\n this.changeNumberRangeBaseByCashBox(e.additionalData, false);\n }\n };\n\n handleDateIssuedChange = async (args: ISmartFieldChange): Promise => {\n if (args.bindingContext.getPath() === CashReceiptEntity.DateIssued) {\n\n const currency = this.props.storage.data.entity.TransactionCurrency?.Code;\n refreshExRateAndRefreshItems(this.props.storage, currency, args.value as Date);\n\n if (!this.props.storage.getError(args.bindingContext)) {\n const newDate = args.value as Date;\n // todo sometimes methods use Date to get fiscal year, sometimes they use FiscalYear/FiscalYearForNumberRangePath\n // that they expect in the entity\n // => very confusing, should be all changed just to use Dates that will be passed as parameter\n setFiscalYearForNumberRangeWithoutFiscalYear(this.props.storage, newDate);\n await refreshFormAfterDateChange(this.props.storage, args.bindingContext, newDate);\n }\n }\n };\n\n handleFieldsForPair = (e: ISmartFieldChange): void => {\n const path = e.bindingContext.getPath();\n if ((path === CashReceiptEntity.DateIssued && (e.triggerAdditionalTasks || !e.value)) ||\n (path === CashReceiptEntity.CashBox && e.triggerAdditionalTasks) || (path === CashReceiptEntity.TransactionAmount) || (path === CashReceiptEntity.ExchangeRatePerUnit)) {\n this.props.storage.addActiveField(this.props.storage.data.bindingContext.navigate(CashReceiptEntity.Items));\n }\n };\n\n handleNumberRange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === CashReceiptEntity.NumberRange) {\n this.props.storage.data.entity.NumberRange = e.value ? e.additionalData : null;\n }\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n const wasPairDisabled = isPairFastEntryDisabled(storage);\n\n this.handleCashBoxChange(e);\n this.handleDateIssuedChange(e);\n\n handleAccAssignmentChildrenChange(storage, e);\n handleAccAssignmentChange({\n storage,\n event: e,\n documentTypeCode: DocumentTypeCode.BankTransaction,\n });\n\n storage.handleChange(e);\n\n this.handleNumberRange(e);\n\n // must be called after change\n correctAccountIdAfterChange(storage, e);\n\n const isPairDisabled = isPairFastEntryDisabled(storage);\n if (wasPairDisabled !== isPairDisabled) {\n this.handleFieldsForPair(e);\n }\n\n this.saveDraft();\n storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n onBeforeSave = (): IEntity => {\n const entity = cloneDeep(this.props.storage.data.entity);\n handleBeforeSave(this.props.storage, entity);\n\n return entity;\n };\n\n confirmAssignment = (): void => {\n const storage: FormStorage = this.props.storage;\n const bc = storage.getCustomData().AccountAssignmentDialogBc;\n const item = storage.getValue(bc.getParent().getParent());\n\n correctGainAccountAssignment(storage, item);\n addExpenseGainIfMissing(storage, item);\n };\n\n\n handleLineItemsChange = async (args: ISmartFieldChange): Promise => {\n // if you change something just for this method, keep in mind changes in Bank Transaction !!\n handleLineItemsChange(this.props.storage, args);\n\n this.saveDraft();\n this.props.storage.refreshFields();\n };\n\n getCorrectRowBc = (): BindingContext => {\n const { bindingContext } = this.props.storage.data;\n return this.isDraftView() ? this.getDraftBc() : bindingContext.createNewBindingContext(EntitySetName.CashReceipts).addKey(bindingContext.getKey(), bindingContext.isNew());\n };\n\n save = async (args: ISaveArgs = {}): Promise => {\n this.saveDraftDebounced.cancel();\n const data = this.onBeforeSave();\n this.props.onBeforeSave?.();\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n const result = await this.props.storage.save({\n ...args,\n data,\n successSubtitle: this.props.storage.t(`${this.props.storage.data.definition?.translationFiles?.[0]}:Validation.Saved`),\n onBeforeExecute: async (batch: BatchRequest) => {\n await sendAdditionalRequestForAccountAssignment(this.props.storage, data, batch, this.documentTypeCode, \"Items\");\n }\n });\n\n if (!result) {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n if (isNew && !!data.PaymentDocumentDraft) {\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n\n // we need to remove all cached items in linked pair account assignments\n invalidateAccountAssignments(this.props.storage, \"Items\");\n\n this.onAfterSave?.(isNew, false);\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n if (args?.queryParams?.postInvoice) {\n await this.context.updateCashBoxes();\n this.props.storage.refresh(true);\n }\n\n\n return result;\n };\n\n handleCustomCbaCategoryChange = (e: ISmartFieldChange): void => {\n handleCustomCbaCategoryChange(e, this.props.storage);\n };\n\n handleCloseCbaCategoryDialog = (): void => {\n this.props.storage.setCustomData({\n isCbaCategoryDialogOpen: false\n });\n this.forceUpdate();\n };\n\n createEntityCopy = (args: ICopyEntityArgs = {}): ICashReceiptEntity => {\n const ALLOWED_NAVIGATIONS = [\n \"Attachments\", \"CashBox\", \"Company\", \"Currency\", \"Items\", \"NumberRange\", \"PaymentMethod\", \"TransactionCurrency\"\n ];\n\n if (args.includeAttachments) {\n ALLOWED_NAVIGATIONS.push(\"Attachments\");\n }\n\n return createPaymentEntityCopy(this.props.storage, args, ALLOWED_NAVIGATIONS);\n };\n\n prepareDataForSave = async (entity: IBankTransactionEntity, isDraft: boolean): Promise => {\n return this.onBeforeSave();\n };\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (\n <>\n {this.renderForm()}\n \n \n {renderAssignmentSplitDialog(this.props.storage)}\n {renderPairingDialog(this.props.storage, {\n type: getCashTransactionType(this.props.storage),\n view: CashReceiptsPairTableView,\n saveDraftFn: this.saveDraft.bind(this)\n })}\n \n );\n }\n}\n\nexport default withConfirmationDialog(CashReceiptsFormView);\nexport { CashReceiptsFormView as CashReceiptsFormViewForExtend };","import React from \"react\";\nimport { CashReceiptsFormViewForExtend } from \"./CashReceiptsFormView\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\n\nclass CashReceiptsIssuedFormView extends CashReceiptsFormViewForExtend {\n documentTypeCode = DocumentTypeCode.CashReceiptIssued;\n}\n\nexport default withPermissionContext(CashReceiptsIssuedFormView);","import React from \"react\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { cloneDeep } from \"lodash\";\nimport { getCashReceiptsFormDef } from \"./CashReceiptsDef\";\nimport CashReceiptsIssuedFormView from \"./CashReceiptsIssuedFormView\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(getCashReceiptsFormDef(CashReceiptsIssuedFormView, false, context));\n return definition;\n};\n\ngetDefinitions.translationFiles = [\"Cash\", \"Document\"];\nsetDefByEntityType(EntityTypeName.CashReceiptIssued, getDefinitions);","import React from \"react\";\nimport { CashReceiptsFormViewForExtend } from \"./CashReceiptsFormView\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\n\nexport class CashReceiptsReceivedFormView extends CashReceiptsFormViewForExtend {\n documentTypeCode = DocumentTypeCode.CashReceiptReceived;\n}\n\nexport default withPermissionContext(CashReceiptsReceivedFormView);","import React from \"react\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { cloneDeep } from \"lodash\";\nimport { getCashReceiptsFormDef } from \"./CashReceiptsDef\";\nimport CashReceiptsReceivedFormView from \"./CashReceiptsReceivedFormView\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(getCashReceiptsFormDef(CashReceiptsReceivedFormView, true, context));\n return definition;\n};\n\ngetDefinitions.translationFiles = [\"Cash\", \"Document\"];\nsetDefByEntityType(EntityTypeName.CashReceiptReceived, getDefinitions);","import { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { CbaCategoryEntity, ICbaCategoryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { CbaCategoryTaxImpactCode } from \"@odata/GeneratedEnums\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { getDefaultPercetageFromImpactCode } from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\n\ninterface IProps extends IFormViewProps {}\n\nclass CbaCategoriesFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"Categories:Title\"\n };\n\n handleTaxImpactChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === CbaCategoryEntity.TaxImpact) {\n this.props.storage.setValueByPath(CbaCategoryEntity.TaxPercentage, getDefaultPercetageFromImpactCode(e.value as CbaCategoryTaxImpactCode));\n this.props.storage.clearErrorByPath(CbaCategoryEntity.TaxPercentage);\n this.props.storage.setValueByPath(CbaCategoryEntity.IsAssetAcquisition, false);\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n this.props.storage.handleChange(e);\n this.handleTaxImpactChange(e);\n this.props.storage.refresh();\n }\n\n onBeforeSave(): ICbaCategoryEntity {\n const data = this.entity;\n\n if (this.props.storage.data.bindingContext.isNew()) {\n data.Company = {\n Id: this.context.getCompany().Id\n };\n }\n\n return data;\n }\n}\n\nexport default withPermissionContext(CbaCategoriesFormView);","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { CbaCategoryEntity, EntitySetName, EntityTypeName, ICbaCategoryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CbaCategoryTaxImpactCode } from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType, Sort, TextAlign } from \"../../enums\";\nimport { Model } from \"../../model/Model\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { getCbaCategoriesCommonFieldsDef } from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { activeFormatter } from \"../chartOfAccounts/ChartOfAccountsDef\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport CbaCategoriesFormView from \"./CbaCategoriesFormView\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n CbaCategoryEntity.Name,\n CbaCategoryEntity.TaxImpact,\n CbaCategoryEntity.IsActive\n ],\n filterDefinition: {\n Name: {},\n ...withDisplayName(CbaCategoryEntity.TaxImpact),\n IsActive: {}\n },\n isValueHelp: true\n }],\n id: `${EntityTypeName.CbaCategory}Table`,\n initialSortBy: [{ id: CbaCategoryEntity.Name, sort: Sort.Asc }],\n columns: [\n CbaCategoryEntity.Name,\n CbaCategoryEntity.TaxImpact,\n CbaCategoryEntity.IsActive\n ],\n columnDefinition: {\n Name: {},\n TaxImpact: {\n formatter: (val, args) => {\n const entity = args.entity as ICbaCategoryEntity;\n if (entity.TaxImpact?.Code === CbaCategoryTaxImpactCode.Partial) {\n return `${val} | ${entity.TaxPercentage} %`;\n }\n return val as string;\n },\n fieldSettings: {\n displayName: \"Name\"\n },\n additionalProperties: [{ id: `/${CbaCategoryEntity.TaxPercentage}` }]\n },\n IsActive: {\n id: CbaCategoryEntity.IsActive,\n textAlign: TextAlign.Center,\n formatter: activeFormatter\n }\n },\n title: i18next.t(\"Categories:Title\")\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.CbaCategory}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Categories:NewCategory\"), storage.data.entity?.Name ?? storage.data.entity?.Number),\n formControl: CbaCategoriesFormView,\n additionalProperties: [],\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.L\n },\n IsActive: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n defaultValue: true\n },\n ...getCbaCategoriesCommonFieldsDef(\"\", false, false)\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: CbaCategoryEntity.Name }, { id: CbaCategoryEntity.IsActive }]\n ]\n }, {\n id: \"defaults\",\n title: i18next.t(\"Categories:Defaults\"),\n rows: [\n [{ id: CbaCategoryEntity.TaxImpact }, { id: CbaCategoryEntity.IsAssetAcquisition }, { id: CbaCategoryEntity.TaxPercentage }]\n ]\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.CbaCategories,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Categories\", \"Common\"];\nsetDefByEntityType(EntityTypeName.CbaCategory, getDefinitions);","import { updateRowsArray } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, TId } from \"@components/table\";\nimport {\n AccountEntity,\n EntitySetName,\n IAccountEntity,\n IChartOfAccountsEntity,\n IMandatoryChartOfAccountsEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AccountCategoryCode, AccountTypeCode, TaxApplicabilityCode } from \"@odata/GeneratedEnums\";\nimport { encodeOdataObject, OData } from \"@odata/OData\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { logger } from \"@utils/log\";\n\nimport { ACCOUNT_USAGE_ACROSS_CHARTS_API_URL, ACCOUNT_USAGE_API_URL, REST_API_URL } from \"../../constants\";\nimport { RowAction } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext, { IEntity, TEntityKey } from \"../../odata/BindingContext\";\nimport customFetch from \"../../utils/customFetch\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\n\nexport const CATEGORY_SELECT_PATH = BindingContext.localContext(\"Category\");\nexport const IS_INVERTIBLE_PATH = BindingContext.localContext(\"IsInvertible\");\n\nexport enum AccountPeriod {\n Actual = \"actual\",\n Future = \"future\",\n Past = \"past\"\n}\n\nexport enum AccountType {\n Active = \"A\",\n Expense = \"E\",\n Liability = \"L\",\n Income = \"I\"\n}\n\nexport enum CategoryItems {\n BalanceAssets = \"BS-A\",\n BalanceLiability = \"BS-L\",\n BalanceLiabilityAssets = \"BS-AL\",\n IncomeStatementActive = \"IS-I\",\n IncomeStatementActiveTaxable = \"IS-I-T\",\n IncomeStatementExpense = \"IS-E\",\n IncomeStatementExpenseTaxable = \"IS-E-T\",\n FinancialStatement = \"FS\"\n}\n\nexport enum CategoryType {\n Balance = \"BS\",\n Statement = \"IS\",\n Result = \"FS\"\n}\n\nexport interface IChartOfAccountsFormCustomData extends IFormStorageDefaultCustomData {\n chartOfAccounts?: IChartOfAccountsEntity[];\n journalData?: IAccountUsage;\n isParentInvertible?: boolean;\n descendantsHaveJournalEntries?: boolean;\n isPosted?: boolean;\n isMandatory?: boolean;\n}\n\nfunction isOfCategory(storage: FormStorage, category: CategoryType): boolean {\n const val = storage.getValueByPath(AccountEntity.Category, { useDirectValue: false });\n return category === val;\n}\n\nexport function isStatement(storage: FormStorage): boolean {\n return isOfCategory(storage, CategoryType.Statement);\n}\n\nexport function isBalance(storage: FormStorage): boolean {\n return isOfCategory(storage, CategoryType.Balance);\n}\n\nconst fetchClonerRequest = async (urlSuffix: string, name: string, parameters: IEntity = {}): Promise => {\n const method = \"POST\",\n headers = { \"Content-Type\": \"application/json\" },\n body = JSON.stringify({ Name: name, ...parameters });\n\n const response = await customFetch(`${REST_API_URL}/Cloner/${urlSuffix}`, { method, headers, body });\n const data = await parseResponse(response);\n if (response.ok) {\n return data;\n } else {\n // throws oDataError\n throw data;\n }\n};\n\n\nexport const createChartOfAccountsFromTemplate = async (companyId: string, templateId: string, name: string, fiscalYearData: IEntity, odata: OData): Promise => {\n const encodedData = encodeOdataObject(fiscalYearData, odata.getMetadata(), \"FiscalYears\");\n\n // clone charts of accounts for the newly created company\n return fetchClonerRequest(`CreateChartOfAccountsFromTemplate/${templateId}`, name, { FiscalYear: encodedData });\n};\n\nexport const createChartOfAccountsFromChartOfAccounts = async (chartOfAccountsId: string, name: string, fiscalYearData: IEntity, odata: OData): Promise => {\n const encodedData = encodeOdataObject(fiscalYearData, odata.getMetadata(), \"FiscalYears\");\n\n // clone charts of accounts for the newly created company\n return fetchClonerRequest(`CreateChartFromChartOfAccounts/${chartOfAccountsId}`, name, { FiscalYear: encodedData });\n};\n\nexport const cloneChartOfAccountsTemplate = async (templateId: string, name: string, CompanyId?: number): Promise => {\n return fetchClonerRequest(`CloneChartOfAccountsTemplate/${templateId}`, name, { CompanyId });\n};\n\nexport const createTemplateFromChartOfAccounts = async (chartOfAccountsId: string, name: string): Promise => {\n return fetchClonerRequest(`CreateTemplateFromChartOfAccounts/${chartOfAccountsId}`, name);\n};\n\nexport const rewriteChartOfAccountsWithTemplate = async (chartOfAccountId: string, name: string, templateId: string): Promise => {\n return fetchClonerRequest(`RewriteChartOfAccountsWithTemplate/${chartOfAccountId}/${templateId}`, name);\n};\n\nexport const createMinimalChartOfAccountsTemplate = async (accountingCode: string, name: string, CompanyId?: number): Promise => {\n return fetchClonerRequest(`CreateMinimalChartOfAccountsTemplate/${accountingCode}`, name, { CompanyId });\n};\n\nexport const getMandatoryAccounts = async (storage: Model): Promise => {\n const mandatoryAccounts = await storage.oData.getEntitySetWrapper(EntitySetName.MandatoryChartsOfAccounts).query().expand(\"Accounts\").fetchData();\n\n return mandatoryAccounts?.value[0]?.Accounts;\n};\n\nexport const isMandatoryAccount = (storage: Model, account: IEntity): boolean => {\n const accounts = storage.context.getData().custom.mandatoryAccounts;\n const number = account.Number;\n\n return !!accounts?.find((acc: TRecordAny) => acc.Number === number);\n};\n\nexport const accountsIsRowWithoutAction = (rowId: TId, action: RowAction, row: IRow, unRemovableAccounts: number[], storage: Model): boolean => {\n return !!(action === RowAction.Remove\n && (\n unRemovableAccounts?.find(accountId => accountId === (rowId as BindingContext).getKey())\n || isMandatoryAccount(storage, row.values)\n ));\n};\n\nexport const accountsRowsFactory = (rows: IRow[], storage: Model, unRemovableAccounts: number[], tableAction: RowAction): IRow[] => {\n if (tableAction !== RowAction.Remove) {\n return rows;\n }\n\n return updateRowsArray(rows, (row: IRow) => {\n if (!accountsIsRowWithoutAction(row.id, RowAction.Remove, row, unRemovableAccounts, storage)) {\n return row;\n }\n\n const isMandatory = isMandatoryAccount(storage, row.values);\n const tooltip = storage.t(`ChartsOfAccounts:Table.${isMandatory ? \"CannotRemoveMandatoryAccount\" : \"CannotRemoveAccountWithJournalEntry\"}`);\n\n return {\n ...row,\n isDisabled: true,\n tooltip: tooltip\n };\n });\n};\n\nexport const getMandatoryAccountsPromise = (storage: Model): Promise => {\n if (!storage.context.getData().custom.mandatoryAccounts) {\n const promise = getMandatoryAccounts(storage);\n promise.then((mandatoryAccounts) => {\n storage.setCustomData({ mandatoryAccounts });\n storage.context.setCustomData({\n mandatoryAccounts: mandatoryAccounts\n });\n });\n\n return promise;\n }\n\n return null;\n};\n\n// todo remove if BE can return correct data for every row in validatedependententitiesdelete\nexport const loadUnRemovableAccounts = async (storage: Model, parentEntityId: TEntityKey): Promise => {\n try {\n const promises: Promise[] = [];\n\n promises.push(getMandatoryAccountsPromise(storage));\n\n // todo: returns 404 when called from COATemplates - is it applicable for templates? parentEntityId seems\n // to be a template here, do we maybe need different API for template Id?\n promises.push(\n customFetch(`${REST_API_URL}/Accounting/GetChartOfAccountsUsage/${parentEntityId}`)\n );\n\n const results = await Promise.all(promises);\n const journalEntriesInfo = await (results.length === 2 ? results[1] : results[0]).json();\n\n return (Array.isArray(journalEntriesInfo) ? journalEntriesInfo : [])\n .filter((journalEntryInfo: any) => journalEntryInfo.HasJournalEntries || journalEntryInfo.DescendantsHaveJournalEntries || journalEntryInfo.HasJournalEntriesInDifferentFiscalYear)\n .map((journalEntryInfo: any) => journalEntryInfo.AccountId);\n } catch (e) {\n logger.error(\"ChartOfAccountsUsage request failed\", e);\n return [];\n }\n};\n\nexport interface IAccountUsage {\n AccountId: number;\n HasJournalEntries: boolean;\n DescendantsHaveJournalEntries: boolean;\n HasJournalEntriesInDifferentFiscalYear: boolean;\n HasCompanyBankAccount: boolean;\n HasCashBox: boolean;\n AccountNumber: number;\n CurrentCurrencyCode: string;\n AccountedEntityCurrencyCode: string;\n InitialBalanceCurrencyCode: string;\n AvailableAccountedEntityCurrencyCodes: string[];\n}\n\nexport async function getAccountUsageAcrossCharts(accountNumber: string): Promise {\n const url = `${ACCOUNT_USAGE_ACROSS_CHARTS_API_URL}/${accountNumber}`;\n const response = await customFetch(url);\n\n if (response.ok) {\n return await response.json();\n }\n return null;\n}\n\nexport async function getAccountUsage(CoAId: TEntityKey, AccountId: TEntityKey): Promise {\n const url = `${ACCOUNT_USAGE_API_URL}/${CoAId}/${AccountId}`;\n const response = await customFetch(url);\n\n if (response.ok) {\n return await response.json();\n }\n return null;\n}\n\nexport const isAccountUsedCheck = (usage: IAccountUsage): boolean => {\n return usage?.HasJournalEntries || usage?.HasJournalEntriesInDifferentFiscalYear || usage?.DescendantsHaveJournalEntries;\n};\n\nexport async function getIsAccountUsed(accountNumber: string): Promise {\n try {\n const usage = await getAccountUsageAcrossCharts(accountNumber);\n return isAccountUsedCheck(usage);\n } catch (e) {\n // fall silently\n }\n\n // in case of error, we assume account is not used, user will\n // be allowed to modify the fields and BE will handle the constraint\n return false;\n}\n\nexport const composeCategory = (entity: IAccountEntity): CategoryItems => {\n const category = entity.Category?.Code;\n const type = entity.Type?.Code;\n const isTaxable = entity.TaxApplicabilityCode === TaxApplicabilityCode.TaxApplicable;\n const isInvertible = entity.IsInvertible;\n\n if (!category) {\n return null;\n }\n\n if (category === AccountCategoryCode.FinancialStatement) {\n return CategoryItems.FinancialStatement;\n }\n\n let categoryId = `${category}-${type}${isTaxable ? \"-T\" : \"\"}`;\n\n if (isInvertible) {\n categoryId = CategoryItems.BalanceLiabilityAssets;\n }\n\n return categoryId as CategoryItems;\n};\n\nexport const decomposeCategory = (categoryId: CategoryItems) => {\n const [category, type, isTaxApplicable] = categoryId.split(\"-\");\n\n return {\n categoryCode: category as AccountCategoryCode,\n typeCode: type as AccountTypeCode,\n isTaxApplicable: isTaxApplicable === \"T\"\n };\n};\n","import { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\nimport { prepareQuery } from \"@odata/OData.utils\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { accountCannotBeParent } from \"./ChartOfAccountsDef\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { cloneDeep } from \"lodash\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { IContextInitArgs, IFormStorageSaveResult } from \"../../views/formView/FormStorage\";\nimport {\n AccountType,\n CATEGORY_SELECT_PATH,\n CategoryItems,\n CategoryType,\n composeCategory,\n decomposeCategory,\n getMandatoryAccountsPromise,\n IChartOfAccountsFormCustomData,\n IS_INVERTIBLE_PATH,\n isBalance,\n isStatement\n} from \"./ChartOfAccounts.utils\";\nimport { AccountEntity, EntitySetName, IAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { fetchItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { TaxApplicabilityCode } from \"@odata/GeneratedEnums\";\n\ninterface IProps extends IFormViewProps {\n}\n\n/**\n * Note: This is common base class for ChartOfAccountsFormView and ChartOfAccountsTemplatesFormView,\n * keep in mind during modifications\n */\nexport default abstract class ChartOfAccountsBaseFormView extends FormViewForExtend {\n\n protected balanceLayoutName: AccountEntity.BalanceSheetLayout = AccountEntity.BalanceSheetLayout;\n protected incomeStatementLayoutName: AccountEntity.IncomeStatementLayout = AccountEntity.IncomeStatementLayout;\n\n protected defaultType: AccountType;\n\n constructor(props: IProps) {\n super(props);\n\n this.onAfterLoad = this.onAfterLoad.bind(this);\n }\n\n isTemplateForm = (): boolean => {\n return this.props.storage.data.bindingContext.getParent().getPath(true) === EntitySetName.ChartOfAccountsTemplates;\n };\n\n getAdditionalLoadPromise = (args: IContextInitArgs): Promise[] => {\n return [getMandatoryAccountsPromise(this.props.storage)];\n };\n\n async onAfterLoad() {\n this.splitAccountNumber();\n this.defaultType = this.props.storage.getValueByPath(\"Type\")?.Code;\n this.setupCategory();\n this.setCorrectCategoryLabels();\n await this.setDefaultParent();\n return super.onAfterLoad();\n }\n\n // used here and in Labels to preselect parent based on the row that were selected when user clicked on \"Add\" button\n setDefaultParent = async (): Promise => {\n if (!this.props.storage.data.bindingContext.isNew()) {\n return null;\n }\n\n const defaultParent: BindingContext = this.props.storage.getCustomData().Parent;\n\n if (!defaultParent) {\n return null;\n }\n\n const parentId = defaultParent.getKey();\n // parent key is not enough to set default value to the Parent account field,\n // we need the whole object, so that the formatter can work with it\n // => fetch accounts, find the matching one and set it as default value\n const items = await fetchItemsByInfo(this.props.storage, this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(AccountEntity.Parent)), true);\n const parentAccount = items.find((item) => item.id === parentId)?.additionalData as IAccountEntity;\n\n if (accountCannotBeParent(parentAccount)) {\n return null;\n }\n\n this.props.storage.setValueByPath(AccountEntity.Parent, parentAccount);\n await this.applyParentValues(parentId as number);\n\n this.props.storage.refresh();\n };\n\n splitAccountNumber(): void {\n const entity = this.props.storage.data.entity;\n const parent = entity.Parent;\n if (!isObjectEmpty(parent)) {\n if (entity.Number?.startsWith(parent.Number)) {\n entity.Number = entity.Number?.slice(parent.Number?.length);\n }\n }\n }\n\n setupCategory = (): void => {\n let categoryId = composeCategory(this.entity);\n\n if (!categoryId) {\n return;\n }\n\n const isInvertible = this.entity.IsInvertible;\n\n if (isInvertible) {\n categoryId = CategoryItems.BalanceLiabilityAssets;\n this.props.storage.setValueByPath(IS_INVERTIBLE_PATH, this.entity.Type?.Code);\n this.props.storage.setValueByPath(AccountEntity.TaxApplicabilityCode, null);\n }\n\n this.props.storage.setValueByPath(CATEGORY_SELECT_PATH, categoryId);\n };\n\n setCorrectCategoryLabels = (category?: string): void => {\n const _setLabel = (path: string, label: string) => {\n const bc = this.props.storage.data.bindingContext.navigate(path),\n info = this.props.storage.getInfo(bc);\n\n info.label = label;\n };\n category = category || this.props.storage.getValueByPath(CATEGORY_SELECT_PATH);\n\n if (!category) {\n return;\n }\n\n if (category === CategoryItems.BalanceLiabilityAssets) {\n _setLabel(`${this.balanceLayoutName}/LiabilitiesReportSection`, this.props.storage.t(\"ChartsOfAccounts:BalanceLayout.Liability\"));\n _setLabel(`${this.balanceLayoutName}/AssetsReportSection`, this.props.storage.t(\"ChartsOfAccounts:BalanceLayout.Active\"));\n } else if (category?.startsWith(CategoryType.Balance)) {\n _setLabel(`${this.balanceLayoutName}/LiabilitiesReportSection`, this.props.storage.t(\"ChartsOfAccounts:BalanceLayout.Balance\"));\n _setLabel(`${this.balanceLayoutName}/AssetsReportSection`, this.props.storage.t(\"ChartsOfAccounts:BalanceLayout.Balance\"));\n\n }\n // TODO: missing BE\n /*else if (category?.startsWith(CategoryType.Statement)) {\n _setLabel(\"BalanceSheetLayout/LiabilitiesReportSection\", this.props.storage.t(\"ChartsOfAccounts:BalanceLayout.Statement\"));\n }*/\n };\n\n handleCategoryChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === CATEGORY_SELECT_PATH) {\n this.decompositeCategory();\n this.setCorrectCategoryLabels(e.value as string);\n }\n };\n\n\n handleActiveChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === \"IsActive\") {\n if (this.props.storage.data.alert) {\n this.props.storage.refresh();\n }\n }\n };\n\n handleIsInvertibleChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === IS_INVERTIBLE_PATH) {\n const isInvertible = this.props.storage.getValueByPath(IS_INVERTIBLE_PATH);\n this.props.storage.setValueByPath(\"Type\", isInvertible);\n }\n };\n\n applyParentValues = async (parentAccountId: number): Promise => {\n const { storage } = this.props;\n const { entity, bindingContext } = storage.data;\n\n const isNotTemplateForm = !this.isTemplateForm();\n const columns = [{ id: \"Note\" }, { id: \"Type\" }, { id: \"TaxApplicabilityCode\" },\n { id: \"Currency\" }, { id: \"Category\" }, { id: \"Number\" },\n { id: `${this.balanceLayoutName}/AssetsReportSection/Code` },\n { id: `${this.balanceLayoutName}/IsAssetsCorrection` },\n { id: `${this.balanceLayoutName}/LiabilitiesReportSection/Code` },\n { id: `${this.incomeStatementLayoutName}/ByNatureReportSection/Code` },\n { id: `${this.incomeStatementLayoutName}/ByFunctionReportSection/Code` },\n { id: \"IsInvertible\" }, { id: \"IsActive\" }];\n\n if (isNotTemplateForm) {\n columns.push({ id: \"IsClosed\" });\n }\n\n let parent: IAccountEntity = null;\n if (parentAccountId) {\n const parentBc = bindingContext.removeKey().addKey(parentAccountId);\n const query = await prepareQuery({\n oData: storage.oData,\n bindingContext: parentBc,\n fieldDefs: columns\n }).fetchData();\n\n parent = query?.value;\n }\n\n storage.setCustomData({\n isParentInvertible: parent?.IsInvertible\n });\n\n if (parent) {\n columns.forEach(col => {\n // Number is set as Parent/Number, don't propagate it to child\n if (col.id === AccountEntity.Number) {\n return;\n }\n // IsActive changes only if current active moves under inactive parent\n if (parent && col.id === AccountEntity.IsActive && !parent.IsActive && entity.IsActive) {\n return;\n }\n // IsClosed changes only if current open moved under closed parent\n if (parent && col.id === AccountEntity.IsClosed && parent.IsClosed && !entity.IsClosed) {\n return;\n }\n\n let bc = bindingContext.navigate(col.id);\n // for correct error and current value clearing we need proper bc to navigation property not code itself (value is stored in both values to code,\n // but current value is stored in additional data directly which is not working for code BC\n if (bc.getPath(true) === \"Code\") {\n bc = bc.getParent();\n }\n this.props.storage.clearAndSetValue(bc, getNestedValue(col.id, parent));\n });\n }\n\n this.setupCategory();\n const category = storage.getValueByPath(CATEGORY_SELECT_PATH);\n this.setCorrectCategoryLabels(category);\n storage.setValueByPath(\"Parent/Number\", parent?.Number);\n }\n\n handleParentChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath(true) === \"Parent\" && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n let parentBc: BindingContext = null;\n if (isDefined(e.value)) {\n parentBc = storage.data.bindingContext.removeKey().addKey(e.value as number);\n } else {\n storage.clearValueByPath(\"Parent\");\n }\n await this.applyParentValues(e.value as number);\n // change Parent and rerender table to change position of the new row\n storage.setCustomData({\n Parent: parentBc\n });\n this.props.onTableRefreshNeeded({\n modelRefreshOnly: true\n });\n this.props.storage.refresh();\n }\n\n };\n\n handleChange = async (e: ISmartFieldChange): Promise => {\n this.props.storage.handleChange(e);\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n\n this.handleActiveChange(e);\n this.handleCategoryChange(e);\n this.handleIsInvertibleChange(e);\n this.handleParentChange(e);\n };\n\n decompositeCategory = (): void => {\n const { storage } = this.props;\n const category = storage.getValueByPath(CATEGORY_SELECT_PATH);\n\n if (category) {\n const items = decomposeCategory(category);\n\n storage.setValueByPath(\"Category\", items.categoryCode);\n if (category === CategoryItems.BalanceLiabilityAssets) {\n let assetValue = storage.getValueByPath(BindingContext.localContext(\"IsInvertible\"));\n if (!assetValue) {\n assetValue = AccountType.Active;\n storage.setValueByPath(BindingContext.localContext(\"IsInvertible\"), AccountType.Active);\n }\n storage.setValueByPath(\"Type\", assetValue);\n } else {\n const newTypeCode = items.typeCode;\n\n if (newTypeCode !== this.entity.Type?.Code) {\n // select items are different between Income/Expense\n // => reset currently selected values\n storage.clearAndSetValueByPath(`${this.incomeStatementLayoutName}/ByNatureReportSection`, null);\n storage.clearAndSetValueByPath(`${this.incomeStatementLayoutName}/ByNatureReportSectionCode`, null);\n storage.clearAndSetValueByPath(`${this.incomeStatementLayoutName}/ByFunctionReportSection`, null);\n storage.clearAndSetValueByPath(`${this.incomeStatementLayoutName}/ByFunctionReportSectionCode`, null);\n }\n\n storage.setValueByPath(\"Type\", newTypeCode);\n }\n\n storage.setValueByPath(\"IsInvertible\", category === CategoryItems.BalanceLiabilityAssets);\n storage.setValueByPath(AccountEntity.TaxApplicabilityCode, items.isTaxApplicable ? TaxApplicabilityCode.TaxApplicable : TaxApplicabilityCode.NotTaxApplicable);\n }\n };\n\n getLayoutEntityType = (): AccountEntity.IncomeStatementLayout | AccountEntity.BalanceSheetLayout => {\n const category = this.props.storage.getValueByPath(\"Category\", { useDirectValue: false });\n if (category === CategoryType.Statement) {\n return this.incomeStatementLayoutName;\n }\n if (category === CategoryType.Balance) {\n return this.balanceLayoutName;\n }\n return null;\n };\n\n clearUnusedLayouts = (entity: IEntity): void => {\n const category = this.props.storage.getValueByPath(\"Category\", { useDirectValue: false });\n const { storage } = this.props;\n const type = storage.getValueByPath(\"Type/Code\");\n\n if (category !== CategoryType.Balance) {\n entity[this.balanceLayoutName] = {};\n }\n if (category !== CategoryType.Statement) {\n entity[this.incomeStatementLayoutName] = {};\n }\n\n if (isBalance(storage)) {\n const isInvertible = this.props.storage.getValueByPath(\"IsInvertible\");\n if (!isInvertible && entity[this.balanceLayoutName]) {\n if (type === AccountType.Active) {\n delete entity[this.balanceLayoutName].LiabilitiesReportSection;\n entity[this.balanceLayoutName].LiabilitiesReportSectionCode = null;\n }\n\n if (type === AccountType.Liability) {\n delete entity[this.balanceLayoutName].AssetsReportSection;\n entity[this.balanceLayoutName].AssetsReportSectionCode = null;\n }\n }\n }\n };\n\n prepareDataForSave = (data: IAccountEntity): IAccountEntity => {\n const saveData = cloneDeep(this.props.storage.data.entity);\n const layoutEntityType = this.getLayoutEntityType();\n\n if (saveData.Parent?.Number) {\n saveData.Number = saveData.Parent?.Number + saveData.Number;\n }\n\n if (!isStatement(this.props.storage)) {\n saveData.TaxApplicabilityCode = null;\n }\n\n this.clearUnusedLayouts(saveData);\n\n // ChartOfAccounts is required to create new layout entity\n if (layoutEntityType && !saveData[layoutEntityType]?.Id) {\n if (!saveData[layoutEntityType]) {\n saveData[layoutEntityType] = {};\n }\n\n saveData[layoutEntityType][\"ChartOfAccounts\"] = { Id: this.props.storage.data.bindingContext.getParent().getKey() as number };\n }\n return saveData;\n };\n\n removeOldType = async (batch: BatchRequest): Promise => {\n const type = this.props.storage.getValueByPath(\"Type/Code\");\n const statementTypes = [AccountType.Expense, AccountType.Income];\n const oldType = statementTypes.includes(this.defaultType) ? CategoryType.Statement : CategoryType.Balance;\n const currentType = statementTypes.includes(type) ? CategoryType.Statement : CategoryType.Balance;\n\n if (oldType && oldType !== currentType) {\n const propName = oldType === CategoryType.Balance ? this.balanceLayoutName : this.incomeStatementLayoutName;\n const id = this.props.storage.getValueByPath(propName)?.Id;\n const entitySet = `${propName}${this.isTemplateForm() ? \"Template\" : \"\"}s`;\n if (id) {\n // delete has to precede PATCH request for backend to accept the changes => index 0\n batch.getEntitySetWrapper(entitySet as EntitySetName).delete(id, { index: 0 });\n\n }\n }\n };\n\n _save = async (subTitle: string): Promise => {\n this.props.onBeforeSave();\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n const preparedData = this.prepareDataForSave(this.props.storage.data.entity);\n\n const result = await this.props.storage.save({\n data: preparedData,\n successSubtitle: subTitle,\n updateEnabledFor: [`Accounts/${this.balanceLayoutName}`, `Accounts/${this.incomeStatementLayoutName}`],\n onBeforeExecute: this.removeOldType\n });\n\n if (!this._isMounted) {\n return null;\n }\n\n if (!result) {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n this.props.storage.displaySaveOkMessage(subTitle);\n this.onAfterSave(isNew, false);\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n return result;\n };\n}\n","import { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { loadChartsOfAccountsMemoized } from \"@odata/Data.utils\";\nimport { IContextInitArgs, IFormStorageSaveResult } from \"../../views/formView/FormStorage\";\nimport {\n getAccountUsage,\n getMandatoryAccountsPromise,\n IAccountUsage,\n isMandatoryAccount\n} from \"./ChartOfAccounts.utils\";\nimport { IAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport ChartOfAccountsBaseFormView from \"./ChartOfAccountsBaseFormView\";\nimport { toTuple } from \"../../global.types\";\n\n\nclass ChartOfAccountsFormView extends ChartOfAccountsBaseFormView {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n title: \"ChartsOfAccounts:Account\"\n };\n\n getAccountUsageLoadPromise(args: IContextInitArgs): Promise {\n if (!args.bindingContext.isNew()) {\n const parentId = args.bindingContext.getParent().getKey();\n const id = args.bindingContext.getKey();\n return getAccountUsage(parentId, id);\n }\n return null;\n }\n\n getChartOfAccountsPromise(args: IContextInitArgs): Promise {\n const promise = loadChartsOfAccountsMemoized(this.context);\n promise.then(chartsOfAccounts => this.props.storage.setCustomData({ chartOfAccounts: chartsOfAccounts }));\n return promise;\n }\n\n getAdditionalLoadPromise = (args: IContextInitArgs): Promise[] => {\n return [\n this.getAccountUsageLoadPromise(args),\n this.getChartOfAccountsPromise(args),\n getMandatoryAccountsPromise(this.props.storage)\n ];\n };\n\n setCustomAccountStorageData = async (): Promise => {\n const [journalData] = await Promise.all(toTuple<[Promise]>(this.props.storage.data.additionalResults));\n\n const isInvertibleWithPostedChildren = this.props.storage.data.entity.IsInvertible && journalData?.DescendantsHaveJournalEntries;\n const isMandatory = isMandatoryAccount(this.props.storage, this.props.storage.data.entity);\n const isPosted = journalData?.HasJournalEntries || isInvertibleWithPostedChildren;\n\n const isParentInvertible = this.props.storage.data.entity?.Parent?.IsInvertible;\n\n this.props.storage.setCustomData({\n journalData,\n isParentInvertible,\n isPosted,\n isMandatory\n });\n };\n\n async onAfterLoad(){\n\n await this.setCustomAccountStorageData();\n return super.onAfterLoad();\n }\n\n async save(): Promise {\n return this._save(this.props.storage.t(\"ChartsOfAccounts:Validation.Saved\"));\n }\n}\n\nexport default withPermissionContext(ChartOfAccountsFormView);\nexport { ChartOfAccountsFormView as ChartOfAccountsFormViewForExtend };","import { StatusNoIcon, StatusYesIcon } from \"@components/icon\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { ifAny, IGetValueArgs, TValidatorFnResult } from \"@components/smart/FieldInfo\";\nimport {\n AccountDefFormatter,\n getAccountDef,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue } from \"@components/table\";\nimport {\n AccountEntity,\n BalanceSheetLayoutEntity,\n EntitySetName,\n EntityTypeName,\n FinancialReportLayoutSectionEntity,\n IAccountEntity,\n IChartOfAccountsEntity,\n IFinancialReportLayoutSectionEntity,\n IncomeStatementLayoutEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountCategoryCode,\n FiscalYearStatusCode,\n ReportSectionTypeCode,\n TaxApplicabilityCode\n} from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\nimport { ValidationError } from \"yup\";\n\nimport Text from \"../../components/text\";\nimport {\n BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX,\n CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX,\n DASH_CHARACTER\n} from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n FieldVisibility,\n GroupedField,\n IconSize,\n LabelStatus,\n NavigationSource,\n Sort,\n TextAlign,\n ValidatorType\n} from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ISplitPageTableDef, ITableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, TFieldDefinition } from \"../PageUtils\";\nimport {\n AccountType,\n CATEGORY_SELECT_PATH,\n CategoryItems,\n composeCategory,\n IChartOfAccountsFormCustomData\n} from \"./ChartOfAccounts.utils\";\nimport ChartOfAccountsFormView from \"./ChartOfAccountsFormView\";\n\nconst DISABLED_PARENT_PREFIX = [CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX, BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX];\n\nexport const accountCannotBeParent = (account: IAccountEntity): boolean => {\n return !!(!account || account.Parent?.Id);\n};\n\nexport const typeFormatter = (val: TValue, { entity }: IFormatOptions): TCellValue => {\n const title = val as string;\n const type = (entity.Type?.Code ?? entity.TypeCode) as AccountType;\n let color: keyof DefaultTheme;\n switch (true) {\n case [AccountType.Active, AccountType.Income].includes(type):\n color = \"C_SEM_text_good\";\n break;\n case [AccountType.Liability, AccountType.Expense].includes(type):\n color = \"C_SEM_text_warning\";\n break;\n }\n const iconInstance = {val} ;\n\n return { tooltip: title, value: iconInstance };\n};\n\nconst getBalanceSheetReportSectionItemsForRender = (isLiability?: boolean) => {\n return (items: ISelectItem[]) => {\n return items.filter(item => {\n const section = item.additionalData as IFinancialReportLayoutSectionEntity;\n const noNumberCode = isLiability ? ReportSectionTypeCode.BS_L : ReportSectionTypeCode.BS_A;\n\n return ((section.ReportSectionType?.Code === noNumberCode && !!section.Number) || (section.ReportSectionType?.Code === ReportSectionTypeCode.BS_S))\n // only include sections that are part of FinancialReportLayout\n && (!section.FinancialReportLayout.DateValidTo || getUtcDayjs(section.FinancialReportLayout.DateValidTo).isSameOrBefore(getUtcDayjs(), \"day\"));\n }).map(item => {\n item.isDisabled = item.children?.length > 0;\n return item;\n });\n };\n};\n\n\nconst getIncomeStatementReportSectionItemsForRender = (isByNatureReportSection?: boolean) => {\n return (items: ISelectItem[], args: IGetValueArgs) => {\n const account = args.storage.data.entity as IAccountEntity;\n const type = account?.Type?.Code;\n let code: ReportSectionTypeCode;\n\n if (type === AccountType.Income) {\n code = isByNatureReportSection ? ReportSectionTypeCode.IS_N_I : ReportSectionTypeCode.IS_F_I;\n } else {\n code = isByNatureReportSection ? ReportSectionTypeCode.IS_N_E : ReportSectionTypeCode.IS_F_E;\n }\n\n\n return items.filter(item => {\n const section = item.additionalData as IFinancialReportLayoutSectionEntity;\n return section?.ReportSectionType?.Code === code;\n }).map(item => {\n item.isDisabled = item.children?.length > 0;\n return item;\n });\n };\n};\n\nexport const genericStatusFormatter = (isPositive: boolean): TCellValue => {\n const title = i18next.t(`Common:General.${isPositive ? \"Yes\" : \"No\"}`);\n\n const props = {\n width: `${IconSize.asNumber(\"S\") * 2}px`,\n height: IconSize.M\n };\n\n const iconInstance = isPositive ?\n :\n ;\n\n return { tooltip: title, value: iconInstance };\n};\n\nexport const closedFormatter = (val: TValue): TCellValue => {\n return genericStatusFormatter(val as boolean);\n};\n\nexport const activeFormatter: TFormatterFn = (val: TValue, values: IFormatOptions): TCellValue => {\n const isActive = values.entity.IsActive;\n\n return genericStatusFormatter(isActive);\n};\n\nconst isParentInvertible = (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n\n return storage.getCustomData().isParentInvertible;\n};\n\nconst getIncomeStatementLayoutField = () => ({\n type: FieldType.HierarchyComboBox,\n width: BasicInputSizes.XL,\n isVisible: (args: IGetValueArgs) => {\n const type = args.storage.getValueByPath(\"Type/Code\", { useDirectValue: false }) as string;\n return type === AccountType.Expense || type === AccountType.Income;\n },\n additionalProperties: [\n { id: \"Name\" }\n ],\n columns: [\n {\n id: \"Number\",\n additionalProperties: [{\n id: \"/Name\"\n }],\n formatter: AccountDefFormatter\n }\n ],\n // formatter: AccountDefFormatter,\n fieldSettings: {\n preloadItems: true, // TODO: fix setting value from parent, and then remove\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n displayName: \"Number\",\n localDependentFields: [\n { from: { id: \"Name\" }, to: { id: \"Name\" }, navigateFrom: NavigationSource.Itself }\n ],\n additionalProperties: [\n { id: \"ReportSectionType\" },\n { id: \"FinancialReportLayout/DateValidTo\" }\n ],\n transformFetchedItems: (items: ISelectItem[]): ISelectItem[] => {\n return items.filter(item => {\n // remove root level items that are not used here instead of in itemsForRender,\n // to have correct indent value on items\n const section = item.additionalData as IFinancialReportLayoutSectionEntity;\n\n return !!section.Number || section.ReportSectionType?.Code === ReportSectionTypeCode.BS_S;\n });\n }\n }\n});\n\nconst getCategoryItems = (disableIsInvertible: boolean) => {\n return [\n {\n id: CategoryItems.BalanceAssets,\n label: i18next.t(\"ChartsOfAccounts:Items.Balance\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Balance\"), i18next.t(\"ChartsOfAccounts:Items.Active\"), \"—\"]\n },\n {\n id: CategoryItems.BalanceLiability,\n label: i18next.t(\"ChartsOfAccounts:Items.Balance\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Balance\"), i18next.t(\"ChartsOfAccounts:Items.Liability\"), \"—\"]\n },\n {\n id: CategoryItems.BalanceLiabilityAssets,\n label: i18next.t(\"ChartsOfAccounts:Items.Balance\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Balance\"), i18next.t(\"ChartsOfAccounts:Items.ActiveAndLiability\"), \"—\"],\n isDisabled: disableIsInvertible\n },\n {\n id: CategoryItems.IncomeStatementExpense,\n label: i18next.t(\"ChartsOfAccounts:Items.Statement\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Statement\"), i18next.t(\"ChartsOfAccounts:Items.Expense\"), i18next.t(\"ChartsOfAccounts:NonTaxable\")]\n },\n {\n id: CategoryItems.IncomeStatementExpenseTaxable,\n label: i18next.t(\"ChartsOfAccounts:Items.Statement\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Statement\"), i18next.t(\"ChartsOfAccounts:Items.Expense\"), i18next.t(\"ChartsOfAccounts:Taxable\")]\n },\n {\n id: CategoryItems.IncomeStatementActive,\n label: i18next.t(\"ChartsOfAccounts:Items.Statement\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Statement\"), i18next.t(\"ChartsOfAccounts:Items.Income\"), i18next.t(\"ChartsOfAccounts:NonTaxable\")]\n },\n {\n id: CategoryItems.IncomeStatementActiveTaxable,\n label: i18next.t(\"ChartsOfAccounts:Items.Statement\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.Statement\"), i18next.t(\"ChartsOfAccounts:Items.Income\"), i18next.t(\"ChartsOfAccounts:Taxable\")]\n }\n ];\n};\n\nconst getFinancialStatementCategoryItems = () => [{\n id: CategoryItems.FinancialStatement,\n label: i18next.t(\"ChartsOfAccounts:Items.FinancialStatement\"),\n tabularData: [i18next.t(\"ChartsOfAccounts:Items.FinancialStatement\"), \"—\", \"—\"]\n}];\n\nconst getInvertibleItems = () => {\n return [{\n id: \"A\",\n label: i18next.t(\"ChartsOfAccounts:Items.Active\")\n }, {\n id: \"L\",\n label: i18next.t(\"ChartsOfAccounts:Items.Liability\")\n }];\n};\n\nexport interface ChartOfAccountsGetDef {\n sortDir?: Sort;\n title?: string;\n tableId?: ITableDef[\"id\"];\n formId?: IFormDef[\"id\"];\n formControl?: any;\n translationFiles?: string[];\n}\n\nconst isPostedOrMandatory = (args: IGetValueArgs): boolean => {\n const storage = args.storage as FormStorage;\n const isPosted = storage.getCustomData().isPosted;\n const isMandatory = storage.getCustomData().isMandatory;\n return isPosted || isMandatory;\n};\n\nconst isMandatory = (args: IGetValueArgs): boolean => {\n const storage = args.storage as FormStorage;\n return !!storage.getCustomData().isMandatory;\n};\n\nconst hasChildWithJournalEntry = (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n return !!storage.getCustomData().journalData?.DescendantsHaveJournalEntries;\n};\n\n\nconst hasJournalEntries = (args: IGetValueArgs): boolean => {\n const storage = args.storage as FormStorage;\n const journalData = storage.getCustomData().journalData;\n\n // AccountCategoryCode.IncomeStatement shouldn't have continuity through fiscal years => DEV-10763\n return journalData?.HasJournalEntries ||\n (args.storage.data.entity?.Category?.Code !== AccountCategoryCode.IncomeStatement && journalData?.HasJournalEntriesInDifferentFiscalYear);\n};\n\nconst tableReportSectionDef = (path: string): TFieldDefinition => ({\n additionalProperties: [{\n id: FinancialReportLayoutSectionEntity.Name\n }, {\n id: FinancialReportLayoutSectionEntity.Number\n }],\n formatter: (val, args): TCellValue => {\n const section = path.split(\"/\").reduce((e, p) => {\n return e?.[p];\n }, args.entity) as IFinancialReportLayoutSectionEntity;\n if (isObjectEmpty(section)) {\n return null;\n }\n return `${section.Number} - ${section.Name}`;\n }\n});\n\nexport const getDefinitions = (context?: IAppContext, args?: ChartOfAccountsGetDef): IDefinition => {\n const balanceSheetLayout = AccountEntity.BalanceSheetLayout;\n const incomeStatementLayout = AccountEntity.IncomeStatementLayout;\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n AccountEntity.Number,\n AccountEntity.Name,\n AccountEntity.Category,\n AccountEntity.Type,\n AccountEntity.IsActive,\n AccountEntity.IsClosed\n ],\n filterDefinition: {\n Number: { description: false },\n Name: { description: false },\n ...withDisplayName(AccountEntity.Category, { description: false }),\n ...withDisplayName(AccountEntity.Type, { description: false }),\n IsActive: { description: false },\n IsClosed: {\n type: FieldType.ValueHelper,\n description: false\n },\n Note: { description: false },\n ...withDisplayName(AccountEntity.Parent, { description: false }),\n ...withDisplayName(AccountEntity.TaxApplicability, { description: false }),\n ...getCommonFilterDefs({ description: false })\n },\n isValueHelp: true\n }];\n\n const parentDefinition = {\n sort: [{\n id: \"FiscalYear/DateStart\",\n sort: Sort.Asc\n }],\n columns: [\n { id: \"Name\" },\n { id: \"FiscalYear/Number\" },\n { id: \"FiscalYear/StatusCode\" }\n ],\n entitySet: EntitySetName.ChartsOfAccounts\n };\n\n const table: ISplitPageTableDef = {\n parentDefinition,\n filterBarDef,\n id: args?.tableId ?? `${EntityTypeName.ChartOfAccounts}Table`,\n columns: [\n // Parent has to be defined here, before Name, to be used in Excel export in correct position\n \"Parent\",\n \"Name\",\n \"Number\",\n \"Category\",\n \"Type\",\n \"TaxApplicability\",\n \"Note\",\n \"IsActive\",\n \"IsClosed\"\n ],\n columnDefinition: {\n Parent: {\n id: \"Parent\",\n fieldSettings: {\n displayName: \"Name\"\n },\n fieldVisibility: FieldVisibility.ExportOnly\n },\n Name: { id: \"Name\" },\n Number: { id: \"Number\" },\n Category: {\n id: \"Category\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n Type: {\n id: \"Type\",\n formatter: typeFormatter,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n Note: {\n id: \"Note\"\n },\n IsActive: {\n id: \"IsActive\",\n formatter: activeFormatter,\n textAlign: TextAlign.Center\n },\n IsClosed: {\n id: \"IsClosed\",\n label: i18next.t(\"ChartsOfAccounts:Closed\"),\n formatter: closedFormatter,\n textAlign: TextAlign.Center\n },\n TaxApplicability: {\n id: \"TaxApplicability\",\n additionalProperties: [{\n id: \"/Accounts/Category\"\n }],\n formatter: (val, args): TCellValue => {\n if (isNotDefined(val)) {\n return DASH_CHARACTER;\n }\n return i18next.t(`ChartsOfAccounts:${val === TaxApplicabilityCode.TaxApplicable ? \"Taxable\" : \"NonTaxable\"}`).toString();\n }\n },\n [createPath(AccountEntity.IncomeStatementLayout, IncomeStatementLayoutEntity.ByFunctionReportSection)]: {\n ...tableReportSectionDef(createPath(AccountEntity.IncomeStatementLayout, IncomeStatementLayoutEntity.ByFunctionReportSection))\n },\n [createPath(AccountEntity.IncomeStatementLayout, IncomeStatementLayoutEntity.ByNatureReportSection)]: {\n ...tableReportSectionDef(createPath(AccountEntity.IncomeStatementLayout, IncomeStatementLayoutEntity.ByNatureReportSection))\n },\n [createPath(AccountEntity.BalanceSheetLayout, BalanceSheetLayoutEntity.AssetsReportSection)]: {\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.Active\"),\n ...tableReportSectionDef(createPath(AccountEntity.BalanceSheetLayout, BalanceSheetLayoutEntity.AssetsReportSection))\n },\n [createPath(AccountEntity.BalanceSheetLayout, BalanceSheetLayoutEntity.LiabilitiesReportSection)]: {\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.Liability\"),\n ...tableReportSectionDef(createPath(AccountEntity.BalanceSheetLayout, BalanceSheetLayoutEntity.LiabilitiesReportSection))\n },\n ...getCommonTableColumnsDefs()\n },\n title: args?.title ? i18next.t(args?.title) : i18next.t(\"ChartsOfAccounts:Title\"),\n initialSortBy: [{ id: \"Number\", sort: Sort.Asc }],\n hierarchy: \"Children\"\n };\n\n let accountDef;\n\n const summary: ISummaryItem[] = [];\n\n const incomeStatementLayoutField = getIncomeStatementLayoutField();\n\n const form: IFormDef = {\n id: args?.formId ?? `${EntityTypeName.ChartOfAccounts}Form`,\n summary,\n translationFiles: args?.translationFiles ?? getDefinitions.translationFiles,\n formControl: args?.formControl || ChartOfAccountsFormView,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"ChartsOfAccounts:NewAccount\"), storage.data.entity?.Name),\n isReadOnly: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n if (storage.data.entity.CategoryCode === AccountCategoryCode.FinancialStatement) {\n return true;\n }\n // system entities are readOnly (id < 0)\n const chartsOfAccounts: IChartOfAccountsEntity[] = storage.getCustomData().chartOfAccounts;\n const coaId = storage.data.bindingContext?.getParent()?.getKey();\n const selectedChart = chartsOfAccounts?.find(coa => coa.Id === coaId);\n return selectedChart?.FiscalYear?.StatusCode === FiscalYearStatusCode.Closed;\n },\n additionalProperties: [{\n id: \"Category\"\n }, {\n id: \"Type\"\n }, {\n id: \"TaxApplicabilityCode\"\n }, {\n id: \"IsInvertible\"\n }, {\n id: \"Parent\",\n additionalProperties: [{\n id: \"IsInvertible\"\n }]\n }, {\n id: \"Children\"\n }],\n fieldDefinition: {\n Parent: {\n ...(accountDef = getAccountDef(\"/Parent/Number\")),\n // content of this select might be changed directly in the form\n formatter: AccountDefFormatter,\n cacheStrategy: CacheStrategy.Route,\n width: BasicInputSizes.XL,\n fieldSettings: {\n ...accountDef.fieldSettings,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n entitySet: (args: IGetValueArgs) => {\n return args.bindingContext.getParent().removeKey().toString();\n },\n transformFetchedItems: (items) => {\n return items.map(item => {\n if (accountCannotBeParent(item.additionalData as IAccountEntity)) {\n item.isDisabled = true;\n }\n\n\n return item;\n });\n }\n },\n filter: {\n select: (args: IGetValueArgs) => {\n const filters: string[] = [\n `${AccountEntity.CategoryCode} ne '${AccountCategoryCode.FinancialStatement}'`\n ];\n if (args.data.Id) {\n filters.push(`Id ne ${args.data.Id}`);\n }\n return filters.join(\" AND \");\n }\n },\n additionalProperties: [{\n id: \"Name\"\n }],\n isDisabled: (args) => {\n if (args.storage.data.bindingContext.isNew()) {\n return false;\n }\n\n const entity = args.storage.getEntity();\n\n return !!entity.Children?.length || DISABLED_PARENT_PREFIX.includes(parseInt(entity.Parent?.Number));\n },\n isReadOnly: ifAny(hasJournalEntries, isPostedOrMandatory, hasChildWithJournalEntry),\n affectedFields: [\n {\n id: \"Number\",\n revalidate: true\n }\n ]\n },\n Number: {\n width: FastEntryInputSizes.S,\n validator: {\n type: ValidatorType.String,\n settings: {\n numberString: true,\n customValidator: (value: TValue, args: IGetValueArgs): TValidatorFnResult => {\n const hasParent = !!(args.storage.data.entity as IAccountEntity).Parent;\n\n if (!hasParent && value?.toString().length > 3) {\n return new ValidationError(i18next.t(`ChartsOfAccounts:Validation.SyntheticAccountNumberLength`), value, args.bindingContext.getPath());\n }\n\n return true;\n }\n }\n },\n isReadOnly: ifAny(hasJournalEntries, isPostedOrMandatory, hasChildWithJournalEntry),\n extraFieldContent: ({ storage }) => {\n const { Parent } = storage.data.entity;\n const hasParent = !isObjectEmpty(Parent);\n return hasParent ? ({Parent.Number}) : null;\n }\n },\n Name: {\n width: BasicInputSizes.XL,\n isReadOnly: ifAny(hasJournalEntries, isPostedOrMandatory, hasChildWithJournalEntry)\n },\n Note: {\n width: BasicInputSizes.XL\n },\n [CATEGORY_SELECT_PATH]: {\n isReadOnly: ifAny(hasJournalEntries, isPostedOrMandatory, isParentInvertible, hasChildWithJournalEntry),\n isRequired: true,\n label: i18next.t(\"ChartsOfAccounts:Category\"),\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n fieldSettings: {\n displayName: \"Category\",\n shouldDisplayAdditionalColumns: true,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const storage = args.storage as FormStorage;\n if (storage.data.entity.CategoryCode === AccountCategoryCode.FinancialStatement) {\n return getFinancialStatementCategoryItems();\n }\n return getCategoryItems(storage.getCustomData().journalData?.DescendantsHaveJournalEntries);\n }\n },\n columns: [{\n id: \"Category\",\n label: i18next.t(\"ChartsOfAccounts:Category\")\n }, {\n id: \"Type\",\n label: i18next.t(\"ChartsOfAccounts:Type\")\n }, {\n id: \"Taxable\",\n label: i18next.t(\"ChartsOfAccounts:Taxable\")\n }],\n affectedFields: [{\n id: `${balanceSheetLayout}/LiabilitiesReportSection`\n }, {\n id: `${balanceSheetLayout}/AssetsReportSection`\n }, {\n id: `${balanceSheetLayout}/IsAssetsCorrection`\n }, {\n id: BindingContext.localContext(\"IsInvertible\")\n }, {\n id: `${incomeStatementLayout}/ByNatureReportSection`\n }, {\n id: `${incomeStatementLayout}/ByFunctionReportSection`\n }],\n comparisonFunction: (entity1: IEntity, entity2: IEntity, bc: BindingContext): boolean => {\n return composeCategory(entity1) === composeCategory(entity2);\n }\n },\n [BindingContext.localContext(\"IsInvertible\")]: {\n isReadOnly: ifAny(hasJournalEntries, isPostedOrMandatory, isParentInvertible),\n type: FieldType.ComboBox,\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.ActiveLiability\"),\n fieldSettings: {\n items: getInvertibleItems()\n },\n isVisible: (args: IGetValueArgs) => {\n const category = args.storage.getValueByPath(CATEGORY_SELECT_PATH, { useDirectValue: false }) as string;\n return category === CategoryItems.BalanceLiabilityAssets;\n },\n defaultValue: AccountType.Active\n },\n [`${balanceSheetLayout}/IsAssetsCorrection`]: {\n type: FieldType.Checkbox,\n labelStatus: LabelStatus.Hidden,\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.Correction\"),\n isVisible: (args: IGetValueArgs) => {\n const type = args.storage.getValueByPath(\"Type/Code\", { useDirectValue: false }) as string;\n return type === AccountType.Active && !args.storage.getValueByPath(\"IsInvertible\");\n },\n groupedField: GroupedField.NoWrapEnd,\n isReadOnly: isParentInvertible\n },\n [`${balanceSheetLayout}/LiabilitiesReportSection`]: {\n ...incomeStatementLayoutField,\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.Balance\"),\n isVisible: (args: IGetValueArgs) => {\n const type = args.storage.getValueByPath(\"Type/Code\");\n const isInvertible = args.storage.getValueByPath(\"IsInvertible\");\n return type === AccountType.Liability || !!isInvertible;\n },\n isReadOnly: false,\n fieldSettings: {\n ...incomeStatementLayoutField.fieldSettings,\n itemsForRender: getBalanceSheetReportSectionItemsForRender(true)\n }\n },\n [`${balanceSheetLayout}/AssetsReportSection`]: {\n ...incomeStatementLayoutField,\n label: i18next.t(\"ChartsOfAccounts:BalanceLayout.Balance\"),\n groupedField: GroupedField.NoWrapStart,\n isVisible: (args: IGetValueArgs) => {\n const type = args.storage.getValueByPath(\"Type/Code\");\n const isInvertible = args.storage.getValueByPath(\"IsInvertible\");\n return type === AccountType.Active || !!isInvertible;\n },\n isReadOnly: false,\n fieldSettings: {\n ...incomeStatementLayoutField.fieldSettings,\n itemsForRender: getBalanceSheetReportSectionItemsForRender()\n }\n },\n [`${incomeStatementLayout}/ByNatureReportSection`]: {\n ...incomeStatementLayoutField,\n isReadOnly: isParentInvertible,\n fieldSettings: {\n ...incomeStatementLayoutField.fieldSettings,\n itemsForRender: getIncomeStatementReportSectionItemsForRender(true)\n }\n },\n\n [`${incomeStatementLayout}/ByFunctionReportSection`]: {\n ...incomeStatementLayoutField,\n fieldSettings: {\n ...incomeStatementLayoutField.fieldSettings,\n itemsForRender: getIncomeStatementReportSectionItemsForRender()\n },\n isReadOnly: isParentInvertible\n },\n IsActive: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n isDisabled: isMandatory,\n defaultValue: true\n },\n IsClosed: {\n label: i18next.t(\"ChartsOfAccounts:Closed\"),\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n }\n }\n },\n groups: [{\n id: \"mainGroup\",\n rows: [\n [{ id: \"Parent\" }, { id: \"Number\" }, { id: \"Name\" }], [{ id: \"Note\" }],\n [{ id: CATEGORY_SELECT_PATH }, { id: BindingContext.localContext(\"IsInvertible\") }],\n [{ id: `${balanceSheetLayout}/AssetsReportSection` }, { id: `${balanceSheetLayout}/IsAssetsCorrection` }], [{ id: `${balanceSheetLayout}/LiabilitiesReportSection` },\n { id: `${incomeStatementLayout}/ByNatureReportSection` }, { id: `${incomeStatementLayout}/ByFunctionReportSection` }],\n\n [{ id: \"IsActive\" }, { id: \"IsClosed\" }]\n ]\n }]\n };\n\n const getEntitySet = (args: IGetValueArgs) => {\n const activeCOAId = args.data?.parentId;\n\n if (!activeCOAId) {\n return undefined;\n }\n\n return `${EntitySetName.ChartsOfAccounts}(${activeCOAId})/Accounts`;\n };\n\n return {\n entitySet: getEntitySet,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"ChartsOfAccounts\", \"Common\"];\nsetDefByEntityType(EntityTypeName.Account, getDefinitions);","import React from \"react\";\nimport { IEntity } from \"@odata/BindingContext\";\n\n/**\n * Context to keep selected template and info, if it has changed, so the message could be shown on dialog close\n */\nexport const ChartOfAccountTemplateContext = React.createContext(undefined);\n\nexport interface ICOATemplateContext {\n onTemplateNameChange: (template: IEntity, name: string) => void;\n onTemplateNameChangeFailed: () => void;\n isChangingName: boolean;\n isChanged: boolean;\n}\n","import React from \"react\";\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport { IFormViewProps } from \"../../views/formView/FormView\";\nimport { ChartOfAccountTemplateContext, ICOATemplateContext } from \"./ChartOfAccountsTemplatesContext\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport ChartOfAccountsBaseFormView from \"../chartOfAccounts/ChartOfAccountsBaseFormView\";\nimport { IFormStorageSaveResult } from \"../../views/formView/FormStorage\";\nimport { IAccountUsage, isMandatoryAccount } from \"../chartOfAccounts/ChartOfAccounts.utils\";\nimport { toTuple } from \"../../global.types\";\nimport { IAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport SmartFormDeleteButton from \"../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass ChartOfAccountsTemplatesFormView extends ChartOfAccountsBaseFormView {\n static contextType = ChartOfAccountTemplateContext;\n\n static defaultProps = {\n title: \"ChartsOfAccountsTemplates:AccountTemplate\",\n formProps: {\n shouldHideAuditTrail: true,\n shouldHideVariant: true,\n hideBreadcrumbs: true\n }\n };\n\n constructor(props: IProps, context: ICOATemplateContext) {\n super(props);\n }\n\n async onAfterLoad(){\n\n await Promise.all(toTuple<[Promise]>(this.props.storage.data.additionalResults));\n await this.setCustomAccountStorageData();\n\n return super.onAfterLoad();\n }\n\n setCustomAccountStorageData = async (): Promise => {\n // note: this behavior is similar as for CoA, except journalData as CoAT has no journal entries.\n // But we need to set same flags as for CoA, so the common defs are valid and\n // some fields are not editable for mandatory accounts.\n const isMandatory = isMandatoryAccount(this.props.storage, this.props.storage.data.entity);\n // templates cannot be posted, only accounts\n const isPosted = false;\n const isParentInvertible = this.props.storage.data.entity?.Parent?.IsInvertible;\n\n this.props.storage.setCustomData({\n isParentInvertible,\n isPosted, isMandatory\n });\n };\n\n async save(): Promise {\n const result = await this._save(this.props.storage.t(\"ChartsOfAccountsTemplates:Validation.Saved\"));\n\n if (result?.bindingContext) {\n this.context.isChanged = true;\n }\n\n return result;\n }\n\n renderButtons = (): React.ReactElement => {\n const isReadOnly = this.props.storage.data.entity.Id < 0;\n\n return (\n \n \n {!isReadOnly && this.isDeletable &&\n \n }\n {!isReadOnly &&\n {this.props.storage.t(\"Common:General.Save\")}\n }\n \n );\n };\n}\n\nexport default withPermissionContext(ChartOfAccountsTemplatesFormView);","import { ifAny, IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { isSystemEntity } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n AccountEntity,\n ChartOfAccountsTemplateEntity,\n EntitySetName,\n EntityTypeName\n} from \"@odata/GeneratedEntityTypes\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../enums\";\nimport { getDefinitions as chartOfAccountsDefinitions } from \"../chartOfAccounts/ChartOfAccountsDef\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport ChartOfAccountsTemplatesFormView from \"./ChartOfAccountsTemplatesFormView\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(chartOfAccountsDefinitions(context, {\n tableId: `${EntityTypeName.ChartOfAccountsTemplate}Table`,\n formId: `${EntityTypeName.ChartOfAccountsTemplate}Form`,\n formControl: ChartOfAccountsTemplatesFormView,\n translationFiles: getDefinitions.translationFiles\n }));\n\n const removeProps = [AccountEntity.IsClosed, AccountEntity.IsActive] as string[];\n\n for (const prop of removeProps) {\n delete definition.table.filterBarDef[0].filterDefinition[prop];\n delete definition.table.columnDefinition[prop];\n delete definition.form.fieldDefinition[prop];\n }\n\n definition.table.columns =\n definition.table.columns.filter(item => !removeProps.includes(item));\n // We do not show title for chart of account templates, it's editable.\n definition.table.title = null;\n\n definition.table.filterBarDef[0].defaultFilters =\n definition.table.filterBarDef[0].defaultFilters.filter(item => !removeProps.includes(item));\n\n definition.table.parentDefinition = {\n sort: [{ id: \"DateCreated\", sort: Sort.Desc }],\n columns: [\n { id: \"Name\" },\n { id: \"DateCreated\" },\n { id: \"DateLastModified\" },\n { id: \"AccountingCode\" },\n { id: \"CreatedBy/Name\" },\n { id: \"LastModifiedBy\" }\n ],\n entitySet: EntitySetName.ChartOfAccountsTemplates,\n filter: context.getAddingNewCompany() ? null : `${ChartOfAccountsTemplateEntity.Company} eq null`\n };\n\n definition.form.groups[0].rows.forEach((row, idx) => {\n definition.form.groups[0].rows[idx] =\n row.filter(item => !removeProps.includes((item as IFieldDef).id));\n });\n // filter out empty rows\n definition.form.groups[0].rows = definition.form.groups[0].rows.filter(row => row.length);\n\n definition.form.translationFiles = [\"ChartsOfAccountsTemplates\"];\n const _baseReadOnly = definition.form.isReadOnly;\n definition.form.isReadOnly = ifAny(_baseReadOnly, isSystemEntity);\n\n definition.entitySet = (args: IGetValueArgs) => {\n let activeCOAId = args.data?.parentId;\n\n if (!activeCOAId) {\n // TODO how to show empty table without fake binding context\n activeCOAId = -1000;\n }\n\n return `${EntitySetName.ChartOfAccountsTemplates}(${activeCOAId})/Accounts`;\n };\n\n return definition;\n};\n\ngetDefinitions.translationFiles = [\"ChartsOfAccounts\"];\nsetDefByEntityType(EntityTypeName.AccountTemplate, getDefinitions);","import { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { CountryCode } from \"@odata/GeneratedEnums\";\n\nexport const companyIsSecondaryAddressPath = \"##IsSecondaryAddress##\";\n\n/**\n * Returns current agenda country code with optional fallback value\n * @param context\n * @param defVal\n */\nexport function getAgendaCountryCode(context: IAppContext, defVal = CountryCode.CzechRepublic): CountryCode {\n return (context.getCompany()?.Accounting?.CountryCode ?? defVal) as CountryCode;\n}\n","import styled from \"styled-components/macro\";\nimport Avatar from \"../../components/avatar/Avatar\";\nimport { getFocusBorderElement, T_PLAIN_small_hig, T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { AvatarHover, AvatarSelected } from \"@components/avatar\";\nimport { ellipsis } from \"polished\";\n\nexport const Header = styled.div`\n display: flex;\n align-items: flex-end;\n margin-bottom: 35px;\n`;\n\nexport const AvatarStyledCompany = styled(Avatar)`\n margin-right: 42px;\n`;\n\nexport const StyledAvatarSelector = styled.div`\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n row-gap: 20px;\n column-gap: 20px;\n`;\n\nexport const AvatarWrapper = styled.div <{\n _isSelected: boolean;\n}>`\n position: relative;\n ${props => props._isSelected && AvatarSelected};\n cursor: pointer;\n \n &:hover:after {\n ${AvatarHover}\n }\n\n ${getFocusBorderElement({ offset: -3, borderRadius: \"3px\" })};\n`;\n\ninterface IStampText {\n image: File | string;\n}\n\nexport const StampText = styled.div`\n ${T_TITLE_4_NORMAL};\n margin-left: 12px;\n margin-right: 5px;\n margin-bottom: ${props => props.image ? \"10px\" : \"0\"};\n flex: 0 0 ${props => props.image ? \"100%\" : \"auto\"};\n`;\n\nexport const CompanyAvatarWithNameWrapper = styled.div`\n display: flex;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const CompanyAvatarName = styled.span`\n ${ellipsis()};\n ${T_PLAIN_small_hig};\n margin-left: 8px;\n`;","import { getWorkDate } from \"@components/inputs/date/utils\";\nimport { TCellValue } from \"@components/table\";\nimport {\n EntitySetName,\n EntityTypeName,\n ICompanyEntity,\n ICompanySettingEntity,\n ICurrencyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode, CurrencyCode, VatStatementFrequencyCode, VatStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { companyIsSecondaryAddressPath } from \"@pages/companies/Company.shared.utils\";\nimport { CompanyAvatarName, CompanyAvatarWithNameWrapper } from \"@pages/companies/Company.styles\";\nimport { getCompanyLogoUrl } from \"@utils/CompanyUtils\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport React from \"react\";\n\nimport Avatar from \"../../components/avatar/Avatar\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { AvatarSize } from \"../../enums\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport { fireGTMEvent, getSessionGTMParams } from \"@utils/analytics\";\n\nexport const stampPath = BindingContext.localContext(\"Stamp\");\n/** VatStatus is not modeled as temporal property on backend => use custom local context to show current values on form */\nexport const currentVatStatus = \"##CurrentVatStatus##\";\nexport const currentVatStatusFrequency = \"##CurrentVatStatusFrequency##\";\n\nexport interface ICompanyExtendedEntity extends ICompanyEntity {\n [companyIsSecondaryAddressPath]?: boolean;\n [currentVatStatus]?: VatStatusCode;\n [currentVatStatusFrequency]?: VatStatementFrequencyCode;\n}\n\nexport interface ICompanyFormCustomData extends IFormStorageDefaultCustomData {\n hasPermission?: boolean;\n stampImage?: string | File;\n isAvatarSelectionOpen?: boolean;\n}\n\nexport function getCompanyCountryCode(context: IAppContext): CountryCode {\n return (context.getCompany()?.LegalAddress?.CountryCode ?? CountryCode.CzechRepublic) as CountryCode;\n}\n\nexport function getCompanyCurrencyCode(context: IAppContext): CurrencyCode {\n return (context.getCompany()?.CurrencyCode ?? CurrencyCode.CzechKoruna) as CurrencyCode;\n}\n\nexport function getCompanyCurrencyEntity(context: IAppContext): ICurrencyEntity {\n const Code = CurrencyCode.CzechKoruna;\n return (context.getCompany()?.Currency) ?? {\n Code,\n Name: getEnumDisplayValue(EntityTypeName.Currency, Code),\n MinorUnit: 2\n };\n}\n\n/** This list includes even CZK, even though currenciesUsedByCompany doesn't have it */\nexport function getCompanyUsedCurrencyCodes(context: IAppContext): CurrencyCode[] {\n const currencies = [...(context.getData().currenciesUsedByCompany?.map(c => c.FromCurrencyCode) ?? [])] as CurrencyCode[];\n currencies.push(CurrencyCode.CzechKoruna);\n return currencies;\n}\n\nexport async function handleCompanyCreated(context: IAppContext, newId: number): Promise {\n const previousCompanyId = context.getCompany()?.Id;\n await context.updateCompanies();\n await context.setCurrentCompanyId(newId);\n\n if (context.getData().companies?.length === 1) {\n // first agenda created\n fireGTMEvent(\"first_agenda_created\", getSessionGTMParams({ context: context.getAuthContext() }));\n }\n\n if (previousCompanyId === newId) {\n context.rerenderApp();\n }\n}\n\nexport function getCompanyVatStatusesValidInRange(context: IAppContext, date?: Date, unit: dayjs.OpUnitType = \"year\"): ICompanyExtendedEntity[\"VatStatuses\"] {\n const dayjsDate = getUtcDayjs(date);\n const rangeFrom = dayjsDate.startOf(unit);\n const rangeTo = dayjsDate.endOf(unit);\n const vatStatuses = context.getCompany().VatStatuses;\n return vatStatuses.filter(vatStatus => {\n const from = getUtcDayjs(vatStatus.DateValidFrom);\n const to = getUtcDayjs(vatStatus.DateValidTo);\n return from.isSameOrBefore(rangeTo) && to.isSameOrAfter(rangeFrom);\n });\n}\n\nexport function getCompanyVatStatementFrequencyCode(context: IAppContext, date?: Date): VatStatementFrequencyCode {\n const vatPayerStatusInRange = getCompanyVatStatusesValidInRange(context, date)\n .find(status => status.VatStatusCode === VatStatusCode.VATRegistered);\n\n return vatPayerStatusInRange?.VatStatementFrequencyCode as VatStatementFrequencyCode;\n}\n\nexport interface VatStatementPeriod {\n from: Dayjs;\n to: Dayjs;\n}\n\ntype VatStatementPeriodUnit = \"month\" | \"quarter\";\n\nexport function createVatStatementPeriod(date: Dayjs, unit: VatStatementPeriodUnit): VatStatementPeriod {\n return {\n from: date.startOf(unit).startOf(\"day\"),\n to: date.endOf(unit).startOf(\"day\")\n };\n}\n\nexport function getDayjsUnit(frequency: VatStatementFrequencyCode): VatStatementPeriodUnit {\n return frequency === VatStatementFrequencyCode.Quarterly ? \"quarter\" : \"month\";\n}\n\nexport function getCompanyUseVatReducedDeduction(context: IAppContext): boolean {\n const company = context.getCompany();\n if (!company) {\n // on Vat Rules form, there is no company to take the settings from, but behave as it would be there\n return true;\n }\n return company.UseVatReducedDeduction;\n}\n\n/**\n *\n * @param context\n * @param forDate\n * @param add possibility to get next/previous period\n */\nexport function getCompanyVatStatementPeriod(context: IAppContext, forDate: Date, add = 0): VatStatementPeriod {\n const frequency = getCompanyVatStatementFrequencyCode(context);\n const unit = getDayjsUnit(frequency);\n const periodDate = getUtcDayjs(forDate).add(add, unit);\n return createVatStatementPeriod(periodDate, unit);\n}\n\nexport function getCompanyVatStatementPeriods(context: IAppContext, year?: number): VatStatementPeriod[] {\n const frequency = getCompanyVatStatementFrequencyCode(context);\n const unit = getDayjsUnit(frequency);\n\n let from = getUtcDayjs().startOf(\"year\");\n if (year) {\n from.set(\"year\", year);\n }\n const to = from.endOf(\"year\");\n\n const periods: VatStatementPeriod[] = [];\n\n while (from.isBefore(to)) {\n periods.push(createVatStatementPeriod(from, unit));\n from = from.add(1, unit);\n }\n return periods;\n}\n\nexport const getCompanySelectContentBeforeAvatar = (context: IAppContext, selectedItemId: string) => {\n if (!selectedItemId) {\n return null;\n }\n\n const companies = context.getData().companies as ICompanyEntity[];\n const selectedCompany = companies.find(company => company.Id.toString() === selectedItemId);\n\n return (\n \n );\n};\n\nexport const getCompanyAvatarWithName = (company: ICompanyEntity): React.ReactElement => {\n if (!company) {\n return null;\n }\n\n const logoSrc = getCompanyLogoUrl(company);\n\n\n // TODO nekam dat ty styly asi !!!\n return (\n \n \n \n {company.Name.toUpperCase()}\n \n \n );\n};\n\nexport const companyCellFormatter = (company: ICompanyEntity): TCellValue => {\n if (!company) {\n return null;\n }\n\n return {\n value: getCompanyAvatarWithName(company),\n tooltip: company.Name,\n onlyShowTooltipWhenChildrenOverflowing: false\n };\n};\n\nexport function getVatDeductionCoefficientCurrentYear(): number {\n return (getWorkDate()).getFullYear();\n}\n\nexport async function getCompanySettings(oData: OData): Promise {\n let data: ICompanySettingEntity;\n try {\n const res = await oData.getEntitySetWrapper(EntitySetName.CompanySettings)\n .query().top(1)\n .fetchData();\n data = res.value?.[0] ?? {};\n // set default values\n data.InitialYear = data.InitialYear ?? getUtcDayjs().get(\"year\");\n } catch (e) {\n return null;\n }\n\n return data;\n}\n","import styled, { css, DefaultTheme } from \"styled-components/macro\";\nimport { IconButton } from \"@components/button\";\nimport {\n getDisabledStyle,\n getFocusBorderElement,\n LocalStackOrder,\n T_PLAIN_small,\n T_PLAIN_small_hig,\n T_TITLE_5,\n T_TITLE_6\n} from \"../../global.style\";\nimport Avatar from \"../../components/avatar/Avatar\";\nimport { AvatarHover } from \"@components/avatar\";\nimport { ellipsis, grayscale, transparentize } from \"polished\";\nimport View from \"../../views/View\";\n\nexport const ViewStyledCompanyDashboard = styled(View)``;\n\nexport const StyledCompanyTile = styled.div<{\n _color: keyof DefaultTheme;\n _isSelected: boolean;\n _isGray: boolean;\n _isWithoutPointer: boolean;\n}>`\n outline: none;\n ${getFocusBorderElement({ offset: -5 })};\n\n width: 211px;\n height: 211px;\n flex: 0 0 auto;\n\n display: flex;\n padding: 20px;\n\n flex-direction: column;\n cursor: ${props => props._isWithoutPointer ? \"default\" : \"pointer\"};\n\n border-radius: 3px;\n border: solid 3px ${props => !props._isGray ? props.theme[props._color] : transparentize(0.5, grayscale(props.theme[props._color]))};\n background-color: ${props => {\n if (props._isSelected && props._isGray) {\n return props.theme.C_BG_INACTIVE_COMPANY;\n } else if (props._isSelected) {\n return props.theme.C_ACT_hover_without_opacity;\n } else if (props._isGray) {\n return transparentize(props.theme.INACTIVE_COMPANY_transparentize, props.theme.C_BG_stripes);\n }\n\n return \"\";\n }};\n\n position: relative;\n`;\n\nexport const CompanyTileAvatar = styled(Avatar)<{\n _isWithoutHover: boolean;\n}>`\n ${props => !props._isWithoutHover && css`\n ${StyledCompanyTile}:hover &:after {\n ${AvatarHover}\n }\n `}\n`;\n\nexport const Content = styled.div<{\n hasAction: boolean;\n isDisabled: boolean;\n}>`\n display: flex;\n align-items: center;\n flex-direction: column;\n height: 100%;\n\n ${props => getDisabledStyle(props.isDisabled)}\n pointer-events: ${props => props.hasAction ? \"none\" : \"all\"};\n`;\n\n\nexport const Header = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nexport const AvatarButton = styled(IconButton)`\n position: absolute;\n bottom: 0;\n right: 0;\n transform: translate(50%, 30%);\n`;\nexport const Body = styled.div`\n margin-top: 15px;\n width: 100%;\n text-align: center;\n`;\nexport const BoldLabel = styled.div<{\n _color?: keyof DefaultTheme;\n _isGray: boolean;\n}>`\n ${T_TITLE_5};\n color: ${props => !props._isGray ? props.theme[props._color] : transparentize(props.theme.INACTIVE_COMPANY_transparentize, grayscale(props.theme[props._color]))};\n letter-spacing: 0.12px;\n\n ${ellipsis()};\n display: block;\n`;\n\nexport const LegalNumber = styled.span`\n ${T_TITLE_6};\n letter-spacing: 0.12px;\n margin-top: 2px;\n ${ellipsis()};\n cursor: text;\n align-self: center;\n`;\n\nexport const Footer = styled.div`\n ${T_PLAIN_small};\n ${ellipsis()};\n margin-top: auto;\n`;\n\nexport const DeleteRequestedText = styled.div<{\n _color?: keyof DefaultTheme;\n}>`\n ${T_PLAIN_small_hig};\n color: ${props => transparentize(props.theme.INACTIVE_COMPANY_transparentize, grayscale(props.theme[props._color]))};\n text-align: center;\n margin-top: auto;\n`;\n\nexport const CompanyActionWrapper = styled.div`\n position: absolute;\n top: 6px;\n left: 6px;\n z-index: ${LocalStackOrder.AboveContent};\n`;\n","import React from \"react\";\nimport { StyledImageUploader } from \"./ImageUploader.styles\";\nimport { IconButton } from \"../button/Button\";\nimport { BinIcon } from \"../icon/Icon\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport ImageUploaderImage from \"./ImageUploaderImage\";\nimport FileUploadButton from \"../fileUploadButton/FileUploadButton\";\n\nexport type TImage = File | string;\n\ninterface IProps extends WithTranslation {\n image: TImage;\n onImageChange: (image: File) => void;\n customIcon?: string;\n isDisabled?: boolean;\n renderCustomButton?: (onClick: () => void, isDisabled: boolean) => void;\n}\n\nclass ImageUploader extends React.PureComponent {\n handleImageChange = (images: File[]) => {\n this.props.onImageChange?.(images?.[0]);\n };\n\n handleRemoveButtonClick = () => {\n this.props.onImageChange?.(null);\n };\n\n\n handleImageError = () => {\n this.handleRemoveButtonClick();\n alert(this.props.t(\"Components:ImageUploader.WrongImage\"));\n };\n\n renderImage = () => {\n return (\n <>\n \n \n \n \n \n );\n };\n\n render() {\n return (\n \n {!this.props.image && }\n {this.props.image && this.renderImage()}\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(ImageUploader);","import React, { useCallback, useContext } from \"react\";\nimport { getCompanyLogoUrl } from \"@utils/CompanyUtils\";\nimport { AvatarStyledCompany } from \"./Company.styles\";\nimport { AvatarSize } from \"../../enums\";\nimport { AvatarButton } from \"./CompanyDashboard.styles\";\nimport { EditIcon } from \"@components/icon\";\nimport { WriteLineWrapper } from \"@components/navigation/NavDashboard.styles\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { PermissionContext } from \"../../contexts/permissionContext/PermissionContext\";\nimport { GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { ICompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ICompanyFormCustomData } from \"./Company.utils\";\n\ninterface IProps {\n storage: FormStorage;\n fieldElement: React.ReactNode;\n}\n\nconst CompanyFormAvatarWithName: React.FC = (props) => {\n const { storage, fieldElement } = props;\n\n const permissionContext = useContext(PermissionContext);\n\n const company = storage.data.entity;\n const logoUrl = getCompanyLogoUrl(company);\n\n const isDisabled = !permissionContext.generalPermissions.has(GeneralPermissionCode.CompanyManagement);\n const handleAvatarEdit = useCallback(() => {\n storage.setCustomData({ isAvatarSelectionOpen: true });\n storage.refresh();\n }, [storage]);\n\n return (<>\n \n \n \n \n \n \n {fieldElement}\n \n );\n};\n\nexport default CompanyFormAvatarWithName;","import { DateRangeSpecialValue } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport {\n ifAll,\n ifAny,\n IFieldDefFn,\n IGetValueArgs,\n TInfoValue,\n TTemporalDialogSettings,\n TValidatorFn\n} from \"@components/smart/FieldInfo\";\nimport {\n BirthNumberFieldDef,\n getAddressFields,\n PhoneNumberDef,\n SingleBusinessPartnerDef\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n CompanyEntity,\n CompanyLegalAddressEntity,\n CompanyVatReducedCoefficientEntity,\n CompanyVatStatusEntity,\n EntitySetName,\n EntityTypeName,\n ICompanyEntity,\n ICompanyVatStatusEntity,\n IVatStatusEntity,\n TaxStatementSignatoryPersonEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountingCode,\n CountryCode,\n TypeOfBusinessCode,\n VatStatementFrequencyCode,\n VatStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getTemporalPropertyExtraFieldContentAfter, isTemporalFieldReadOnly } from \"@odata/TemporalUtils\";\nimport { companyIsSecondaryAddressPath } from \"@pages/companies/Company.shared.utils\";\nimport {\n getTaxStatementSignatoryPersonFieldDefs,\n hasTaxStatementSignatoryPersonPath\n} from \"@pages/companies/TaxStatementSignatoryPerson.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { TestContext } from \"yup\";\n\nimport ImageUploader from \"../../components/imageUploader/ImageUploader\";\nimport Field from \"../../components/inputs/field/Field\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n GroupedField,\n LabelStatus,\n TextAlign,\n ValidatorType\n} from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { DATE_MIN, getUtcDate, getUtcDayjs } from \"../../types/Date\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { getFinancialAdministrationDef } from \"../payroll/governmentInstitution/GovernmentInstitution.utils\";\nimport { StampText } from \"./Company.styles\";\nimport {\n currentVatStatus,\n currentVatStatusFrequency,\n getVatDeductionCoefficientCurrentYear,\n ICompanyExtendedEntity,\n ICompanyFormCustomData,\n stampPath\n} from \"./Company.utils\";\nimport CompanyFormAvatarWithName from \"./CompanyFormAvatarWithName\";\n\nexport const VatReducedDeductionCoefficient = BindingContext.localContext(\"VatReducedDeductionCoefficient\");\n\nexport const isSecondaryAddressVisible = (args: IGetValueArgs): boolean => {\n return !!args.storage.getValueByPath(companyIsSecondaryAddressPath);\n};\n\nconst getVatStatusIndex = (args: IGetValueArgs): number => {\n // used for both line items (FastEntry) and fields => choose correct bc first\n const bc = args.bindingContext.getPath(true) === CompanyEntity.VatStatuses ? args.bindingContext : args.bindingContext.getParent();\n const company = args.storage.getEntity();\n const vatStatuses = company.VatStatuses ?? [];\n const itemIndex = vatStatuses.findIndex(vatStatus => {\n const vatStatusBc = bc.removeKey().addKey(vatStatus);\n\n return bc.isSame(vatStatusBc);\n });\n\n return itemIndex;\n};\n\nconst isFirstVatStatus: TInfoValue = (args: IGetValueArgs) => {\n const itemIndex = getVatStatusIndex(args);\n\n return itemIndex === 0;\n};\n\nconst isNotLastVatStatus: TInfoValue = (args: IGetValueArgs) => {\n const itemIndex = getVatStatusIndex(args);\n const company = args.storage.getEntity();\n const vatStatuses = company.VatStatuses;\n\n return itemIndex !== vatStatuses.length - 1;\n};\n\nconst isVatRegistered: TInfoValue = (args: IGetValueArgs) => {\n const vatStatusCode: VatStatusCode = args.storage.getValueByPath(currentVatStatus);\n\n return vatStatusCode === VatStatusCode.VATRegistered;\n};\n\nconst isNonVatRegistered: TInfoValue = (args: IGetValueArgs) => {\n const vatStatusCode: VatStatusCode = args.storage.getValueByPath(currentVatStatus);\n\n return vatStatusCode === VatStatusCode.NotVATRegistered;\n};\n\nconst getValidatorItems = (args: IGetValueArgs) => {\n const item = args.storage.getValue(args.bindingContext.getParent()) as ICompanyVatStatusEntity;\n const items = args.storage.getValue(args.bindingContext.getParent().removeKey());\n const itemIndex = items.findIndex((i: ICompanyVatStatusEntity) => i === item);\n const previousItem = items[itemIndex - 1];\n\n\n return {\n item, items, itemIndex, previousItem\n };\n};\n\nconst validatorVatFrequencyDate = (args: IGetValueArgs, validationVatFrequencyCode: VatStatementFrequencyCode) => {\n const { item, previousItem } = getValidatorItems(args);\n\n const previousVatStatusCode = previousItem?.VatStatusCode as VatStatusCode;\n const vatFrequencyCode = item?.VatStatementFrequencyCode as VatStatementFrequencyCode;\n const previousVatFrequencyCode = previousItem?.VatStatementFrequencyCode as VatStatementFrequencyCode;\n\n if (\n [VatStatusCode.NotVATRegistered, VatStatusCode.IdentifiedPerson].includes(previousVatStatusCode)\n || [VatStatusCode.NotVATRegistered, VatStatusCode.IdentifiedPerson].includes(item.VatStatusCode as VatStatusCode)\n || vatFrequencyCode === null\n || vatFrequencyCode === previousVatFrequencyCode\n || vatFrequencyCode !== validationVatFrequencyCode\n ) {\n return true;\n }\n\n const dateValidFrom = getUtcDayjs(item.DateValidFrom);\n\n return dateValidFrom.date() === 1 && dateValidFrom.month() === 0;\n};\n\nconst validatorVatFrequencyQuarterlyDate: TValidatorFn = (value: TValue, args: IGetValueArgs, testContext?: TestContext) => {\n return validatorVatFrequencyDate(args, VatStatementFrequencyCode.Quarterly);\n};\n\nconst validatorVatFrequencyMonthlyDate: TValidatorFn = (value: TValue, args: IGetValueArgs, testContext?: TestContext) => {\n return validatorVatFrequencyDate(args, VatStatementFrequencyCode.Monthly);\n};\n\nexport const partnerAresFields = [\n {\n from: \"Name\",\n to: CompanyEntity.LegalName\n },\n {\n from: \"LegalNumber\",\n to: CompanyEntity.LegalNumber\n },\n {\n from: \"TaxNumber\",\n to: CompanyEntity.TaxNumber\n },\n {\n from: \"BillingAddress/Street\",\n to: createPath(CompanyEntity.LegalAddress, CompanyLegalAddressEntity.Street)\n },\n {\n from: \"BillingAddress/City\",\n to: createPath(CompanyEntity.LegalAddress, CompanyLegalAddressEntity.City)\n },\n {\n from: \"BillingAddress/Country\",\n to: createPath(CompanyEntity.LegalAddress, CompanyLegalAddressEntity.Country)\n },\n {\n from: \"BillingAddress/PostalCode\",\n to: createPath(CompanyEntity.LegalAddress, CompanyLegalAddressEntity.PostalCode)\n },\n {\n from: \"MainActivity\",\n to: CompanyEntity.CzNace\n }\n];\n\nconst CompanySingleBusinessPartnerDef = {\n ...SingleBusinessPartnerDef,\n columns: [{\n id: CompanyEntity.LegalName\n }, {\n id: CompanyEntity.LegalNumber\n }]\n};\n\nconst isEdit = (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const entitySet = \"Companies\";\n const legalAddressFields = getAddressFields(\"LegalAddress\");\n const communicationAddressFields = getAddressFields(\"CommunicationAddress\", { isVisible: isSecondaryAddressVisible });\n\n const temporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"Companies:Form.VatStatusPlanDialog\"),\n columns: [\n CompanyVatStatusEntity.VatStatus,\n CompanyVatStatusEntity.VatStatementFrequency\n ],\n granularity: \"day\",\n withoutGaps: true,\n cannotBeEnded: true,\n onlyOneFuturePlan: true\n };\n\n const financialAdministrationDef = getFinancialAdministrationDef();\n\n const form: IFormDef = {\n id: `${EntityTypeName.Company}Form`,\n isReadOnly: (args: IGetValueArgs) => !(args.storage as FormStorage).getCustomData().hasPermission,\n translationFiles: getDefinitions.translationFiles,\n fieldDefinition: {\n LegalName: {\n ...CompanySingleBusinessPartnerDef,\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL,\n affectedFields: [{ id: createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency) }]\n },\n LegalNumber: {\n ...CompanySingleBusinessPartnerDef,\n groupedField: GroupedField.MultiEnd,\n width: BasicInputSizes.S,\n affectedFields: [{ id: createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency) }]\n },\n TaxNumber: {\n width: BasicInputSizes.M,\n isRequired: (args: IGetValueArgs) => {\n const entity = args.storage.getEntity();\n\n if (entity.TypeOfBusinessCode === TypeOfBusinessCode.LegalPerson) {\n return true;\n }\n\n return entity[currentVatStatus] === VatStatusCode.IdentifiedPerson;\n }\n },\n BirthNumber: {\n ...BirthNumberFieldDef,\n width: BasicInputSizes.M,\n isVisible: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const entity = storage.getEntity();\n\n return entity.TypeOfBusinessCode === TypeOfBusinessCode.NaturalPerson && entity.AccountingCode === AccountingCode.CashBasisAccounting;\n }\n },\n ...legalAddressFields,\n \"LegalAddress/Country\": {\n ...legalAddressFields[\"LegalAddress/Country\"],\n width: BasicInputSizes.L,\n defaultValue: CountryCode.CzechRepublic\n },\n ...communicationAddressFields,\n \"CommunicationAddress/Country\": {\n ...communicationAddressFields[\"CommunicationAddress/Country\"],\n width: BasicInputSizes.L\n },\n [companyIsSecondaryAddressPath]: {\n label: i18next.t(\"Companies:Form.AddAnotherAddress\"),\n type: FieldType.Switch,\n fieldSettings: { type: SwitchType.YesNo },\n affectedFields: [\n { id: \"CommunicationAddress/Street\" }, { id: \"CommunicationAddress/City\" },\n { id: \"CommunicationAddress/PostalCode\" }, { id: \"CommunicationAddress/Country\" }\n ]\n },\n \"CommunicationContact/FirstName\": {\n groupedField: GroupedField.MultiStart,\n isRequired: true\n },\n \"CommunicationContact/LastName\": {\n groupedField: GroupedField.MultiEnd,\n isRequired: true\n },\n \"CommunicationContact/Email\": {\n width: BasicInputSizes.XL,\n validator: {\n type: ValidatorType.Email\n },\n isRequired: true\n },\n \"CommunicationContact/PhoneNumber\": {\n ...PhoneNumberDef,\n isRequired: true\n },\n [currentVatStatus]: {\n type: FieldType.ComboBox,\n isRequired: true,\n label: i18next.t(\"Companies:Form.CurrentVatStatus\"),\n defaultValue: VatStatusCode.VATRegistered,\n isDisabled: (args: IGetValueArgs) => {\n return !args.bindingContext.getParent().isNew();\n },\n fieldSettings: {\n items: getEnumSelectItems(EntityTypeName.VatStatus)\n },\n groupedField: (args: IGetValueArgs) => {\n // only MultiStart if frequency is visible\n if (isVatRegistered(args)) {\n return GroupedField.MultiStart;\n }\n\n return null;\n },\n additionalProperties: [\n { id: `/${createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.DateValidFrom)}` },\n { id: `/${createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.DateValidTo)}` },\n { id: `/${createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatus)}` },\n { id: `/${createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency)}` }\n ],\n affectedFields: [\n { id: currentVatStatusFrequency },\n { id: VatReducedDeductionCoefficient }\n ],\n extraFieldContentAfter: (args: IGetValueArgs) => {\n // don't show when creating new company\n // or when currentVatStatusFrequency is visible (and has the extra content)\n if (args.bindingContext.getParent().isNew() || isVatRegistered(args)) {\n return null;\n }\n\n return getTemporalPropertyExtraFieldContentAfter(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency)(args);\n }\n },\n [currentVatStatusFrequency]: {\n type: FieldType.ComboBox,\n isRequired: true,\n label: i18next.t(\"Companies:Form.CurrentVatStatusFrequency\"),\n defaultValue: VatStatementFrequencyCode.Monthly,\n isVisible: isVatRegistered,\n isDisabled: (args: IGetValueArgs) => {\n return !args.bindingContext.getParent().isNew();\n },\n groupedField: GroupedField.MultiEnd,\n fieldSettings: {\n entitySet: EntitySetName.VatStatementFrequencies,\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.VatStatementFrequency)\n },\n extraFieldContentAfter: (args: IGetValueArgs) => {\n // don't show when creating new company\n if (args.bindingContext.getParent().isNew() || (args.storage as FormStorage).isReadOnly) {\n return null;\n }\n\n return getTemporalPropertyExtraFieldContentAfter(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency)(args);\n }\n },\n [CompanyEntity.VatStatuses]: {},\n [createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatus)]: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n defaultValue: VatStatusCode.VATRegistered,\n useForValidation: true,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.VatStatus),\n temporalDialog: temporalDialogSettings\n },\n isDisabled: isNotLastVatStatus,\n affectedFields: [{ id: createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency) }],\n width: FastEntryInputSizes.M,\n groupedField: GroupedField.MultiStart\n },\n [createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.VatStatementFrequency)]: {\n type: FieldType.ComboBox,\n defaultValue: VatStatementFrequencyCode.Monthly,\n useForValidation: true,\n fieldSettings: {\n displayName: \"Name\",\n temporalDialog: temporalDialogSettings\n },\n formatter: (val: TValue, args: IFormatOptions) => {\n const vatStatus = args.storage.getValue(args.bindingContext.getParent()) as ICompanyVatStatusEntity;\n\n return vatStatus?.VatStatusCode === VatStatusCode.VATRegistered ? getEnumDisplayValue(EntityTypeName.VatStatementFrequency, vatStatus?.VatStatementFrequency?.Code) : \"\";\n },\n isDisabled: (args: IGetValueArgs) => {\n const vatStatusBc = args.bindingContext.getParent().navigate(CompanyVatStatusEntity.VatStatus);\n const vatStatus = args.storage.getValue(vatStatusBc) as IVatStatusEntity;\n const { previousItem } = getValidatorItems(args);\n\n return isNotLastVatStatus(args) || vatStatus?.Code !== VatStatusCode.VATRegistered\n || (vatStatus?.Code === VatStatusCode.VATRegistered && previousItem?.VatStatusCode === VatStatusCode.NotVATRegistered);\n },\n groupedField: GroupedField.MultiEnd\n },\n [createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.DateValidFrom)]: {\n defaultValue: (args: IGetValueArgs) => {\n // first VatStatus is expected to have some really old value\n return args.storage.data.bindingContext.isNew() ? DATE_MIN : getUtcDate();\n },\n isDisabled: isNotLastVatStatus,\n isReadOnly: ifAny(isFirstVatStatus, isTemporalFieldReadOnly),\n width: FastEntryInputSizes.M,\n useForValidation: true,\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutStart\n },\n validator: {\n type: ValidatorType.Date,\n settings: {\n min: 0,\n customValidator: [\n {\n validator: validatorVatFrequencyQuarterlyDate,\n message: i18next.t(\"Error:CompanyVatStatusSwitchFromMonthFrequencyToQuarterDateIsInvalid\")\n },\n {\n validator: validatorVatFrequencyMonthlyDate,\n message: i18next.t(\"Error:CompanyVatStatusSwitchFromQuarterFrequencyToMonthDateIsInvalid\")\n }\n ]\n }\n }\n },\n [createPath(CompanyEntity.VatStatuses, CompanyVatStatusEntity.DateValidTo)]: {\n width: FastEntryInputSizes.M,\n isDisabled: isFirstVatStatus,\n isReadOnly: isTemporalFieldReadOnly,\n useForValidation: true,\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n }\n },\n TypeOfBusiness: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n defaultValue: TypeOfBusinessCode.LegalPerson,\n fieldSettings: {\n displayName: \"Name\"\n },\n affectedFields: [\n { id: \"BirthNumber\" },\n { id: \"Accounting\" },\n { id: \"TaxNumber\" }\n ]\n },\n CzNace: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n width: BasicInputSizes.XL,\n fieldSettings: {\n displayName: \"Description\",\n preloadItems: true\n },\n columns: [\n { id: \"Description\" },\n { id: \"Code\" }\n ]\n },\n [BindingContext.localContext(\"Edition\")]: {\n label: i18next.t(\"Companies:Form.Edition\"),\n type: FieldType.ComboBox,\n isRequired: true,\n isDisabled: true,\n isReadOnly: isEdit,\n defaultValue: \"czech\",\n fieldSettings: {\n items: [\n {\n id: \"czech\",\n label: i18next.t(\"Companies:Form.CzechEdition\")\n }\n ]\n }\n },\n Accounting: {\n defaultValue: AccountingCode.AccountingForBusiness,\n fieldSettings: {\n displayName: \"Name\"\n },\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n width: BasicInputSizes.L,\n isDisabled: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n\n return storage.getEntity().TypeOfBusinessCode === TypeOfBusinessCode.LegalPerson;\n },\n affectedFields: [\n { id: \"BirthNumber\" }\n ]\n },\n CompanyRegister: {\n type: FieldType.EditableText,\n width: BasicInputSizes.XL,\n isConfirmable: true,\n fieldSettings: {\n placeholder: i18next.t(\"Companies:Form.CompanyRegisterPlaceholder\")\n }\n },\n [CompanyEntity.FinancialAdministration]: {\n ...financialAdministrationDef,\n width: BasicInputSizes.L,\n label: i18next.t(\"Companies:Form.FinancialAdministration\"),\n additionalProperties: [{ id: \"Ufo\" }, { id: \"DataBoxId\" }],\n fieldSettings: {\n ...financialAdministrationDef.fieldSettings,\n noRecordText: i18next.t(\"Common:Select.NoRecord\")\n }\n },\n [stampPath]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n const image = (args.storage as FormStorage).getCustomData().stampImage;\n\n return (\n \n \n {i18next.t(\"Companies:Form.StampDescription\")}\n \n {\n args.storage.setCustomData({\n stampImage: image\n });\n args.storage.addActiveField(args.storage.data.bindingContext.navigate(stampPath));\n args.storage.refreshFields();\n }}/>\n \n );\n }\n },\n [CompanyEntity.Name]: {\n type: FieldType.WriteLine,\n labelStatus: LabelStatus.Hidden,\n isRequired: false,\n isConfirmable: true,\n fieldSettings: {\n placeholder: i18next.t(\"Companies:Form.NameWatermark\")\n },\n textAlign: TextAlign.Left,\n width: BasicInputSizes.L,\n render: ({ storage, fieldElement }: IFieldDefFn) => {\n return (\n \n );\n }\n },\n [CompanyEntity.UseVatReducedDeduction]: {\n type: FieldType.Switch,\n label: i18next.t(\"Companies:Form.VatReducedDeduction\"),\n isVisible: ifAll(isVatRegistered, isEdit),\n affectedFields: [{ id: VatReducedDeductionCoefficient }]\n },\n [VatReducedDeductionCoefficient]: {\n type: FieldType.NumberInput,\n isRequired: true,\n label: i18next.t(\"Companies:Form.Value\"),\n tooltip: () => i18next.t(\"Companies:Form.ValueTooltip\", { year: getVatDeductionCoefficientCurrentYear() }),\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: \"%\",\n showSteppers: true,\n min: 0,\n max: 100\n },\n validator: {\n type: ValidatorType.Integer,\n settings: {\n min: 0,\n max: 100\n }\n },\n additionalProperties: [\n { id: createPath(CompanyEntity.VatReducedCoefficients, CompanyVatReducedCoefficientEntity.Year) },\n { id: createPath(CompanyEntity.VatReducedCoefficients, CompanyVatReducedCoefficientEntity.VatReducedCoefficient) }\n ],\n isVisible: (args: IGetValueArgs) => !!args.storage?.data.entity?.UseVatReducedDeduction && isVatRegistered(args)\n },\n ...(getTaxStatementSignatoryPersonFieldDefs())\n },\n groups: [\n {\n id: \"header\",\n rows: [[{ id: CompanyEntity.Name }]]\n },\n {\n id: \"main\",\n rows: [\n [{ id: \"LegalName\" }, { id: \"LegalNumber\" }, { id: \"TaxNumber\" }],\n [{ id: \"LegalAddress/Street\" }, { id: \"LegalAddress/City\" }, { id: \"LegalAddress/PostalCode\" }, { id: \"LegalAddress/Country\" }],\n [{ id: companyIsSecondaryAddressPath }],\n [{ id: \"CommunicationAddress/Street\" }, { id: \"CommunicationAddress/City\" }, { id: \"CommunicationAddress/PostalCode\" }, { id: \"CommunicationAddress/Country\" }]\n ]\n },\n {\n id: \"Contact\",\n title: i18next.t(\"Companies:Form.Contact\"),\n rows: [[{ id: \"CommunicationContact/FirstName\" }, { id: \"CommunicationContact/LastName\" }, { id: \"CommunicationContact/PhoneNumber\" }, { id: \"CommunicationContact/Email\" }]]\n },\n {\n id: \"Settings\",\n title: i18next.t(\"Companies:Form.Settings\"),\n rows: [\n [{ id: \"TypeOfBusiness\" }, { id: \"Accounting\" }, { id: \"BirthNumber\" }],\n [{ id: currentVatStatus }, { id: currentVatStatusFrequency }, { id: CompanyEntity.UseVatReducedDeduction }, { id: VatReducedDeductionCoefficient }],\n [{ id: \"CzNace\" }],\n [{ id: CompanyEntity.FinancialAdministration }],\n [{ id: \"CompanyRegister\" }]\n ]\n },\n {\n id: \"TaxStatementSignatoryPerson\",\n togglePropPath: hasTaxStatementSignatoryPersonPath,\n isVisible: (args: IGetValueArgs) => {\n return !args.storage?.data.bindingContext.isNew() && !args.storage.context.getAddingNewCompany();\n },\n title: i18next.t(\"Companies:Form.TaxStatementSignatoryPerson\"),\n rows: [[{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)\n }],\n [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber)\n }],\n [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.FirstName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LastName)\n }],\n [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.RelationshipToTaxSubject)\n }],\n [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.DateOfBirth)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxAdvisorRegistrationNumber)\n }],\n [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson)\n }]\n ]\n }\n ],\n additionalProperties: [{\n id: \"Name\",\n useForValidation: true\n }, { id: \"Logo\" }, { id: \"Stamp\" }]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Companies\", \"Common\", \"Components\", \"Error\", getEnumNameSpaceName(EntityTypeName.VatStatementFrequency), getEnumNameSpaceName(EntityTypeName.VatStatus)];\nsetDefByEntityType(EntityTypeName.Company, getDefinitions);","import React from \"react\";\nimport { AvatarSize } from \"../../enums\";\nimport { FILES_API_URL } from \"../../constants\";\nimport Avatar from \"../../components/avatar/Avatar\";\nimport { AvatarWrapper, StyledAvatarSelector } from \"./Company.styles\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport FocusManager, { FocusDirection, IFocusableItemProps } from \"../../components/focusManager/FocusManager\";\nimport { KeyName } from \"../../keyName\";\nimport { SystemAvatarDefs } from \"@components/avatar/SystemAvatarDef\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { CompanyEntity } from \"../../odata/GeneratedEntityTypes\";\nimport { createPath } from \"../../odata/BindingContext\";\n\ninterface IProps {\n storage: FormStorage;\n}\n\ninterface IListAvatarProps {\n itemProps: IFocusableItemProps;\n onClick: (id: number) => void;\n onKeyDown: (e: React.KeyboardEvent, id: number) => void;\n isSelected: boolean;\n id: number;\n}\n\nconst getLogoUrl = (id: number) => {\n return FILES_API_URL + \"/\" + id;\n};\n\nclass ListAvatar extends React.PureComponent {\n handleKeyDown = (e: React.KeyboardEvent) => {\n this.props.onKeyDown(e, this.props.id);\n };\n\n handleClick = () => {\n this.props.onClick(this.props.id);\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default class CompanyAvatarSelector extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n wrapperRef = React.createRef();\n\n componentDidMount() {\n const currentId = this.props.storage.getValueByPath(\"Logo/Id\");\n const selectedIndex = this.getColumns().findIndex(id => id === currentId);\n\n // focus selected avatar\n (this.wrapperRef.current.children[selectedIndex] as HTMLDivElement).focus();\n }\n\n getColumns = memoizeOne(() => {\n return Object.values(SystemAvatarDefs).map(o => o.id);\n });\n\n handleAvatarClick = (id: number): void => {\n const bindingContext = this.props.storage.data.bindingContext.navigate(createPath(CompanyEntity.Logo, \"Id\"));\n this.props.storage.setTemporalData(bindingContext, { value: id });\n this.forceUpdate();\n };\n\n handleKeyDown = (e: React.KeyboardEvent, id: number): void => {\n if (e.key === KeyName.Enter || e.key === KeyName.Space) {\n this.handleAvatarClick(id);\n }\n };\n\n render() {\n const storage = this.props.storage;\n const bc = storage.data.bindingContext.navigate(createPath(CompanyEntity.Logo, \"Id\"));\n const currentId = storage.getTemporalData(bc)?.value ?? storage.getValue(bc);\n // dialog has hardcoded width(\"676px\") so we can use grid focus direction with columnsCount\n return (\n \n {({ itemProps, wrapperProps }) => (\n \n {this.getColumns().map((id: number) => {\n return ;\n })}\n \n\n )}\n \n );\n }\n}","import Dialog, { DialogContext } from \"@components/dialog\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport {\n CompanyEntity,\n CompanyLegalAddressEntity,\n CompanyVatStatusEntity,\n EntityTypeName,\n ICompanyCommunicationAddressEntity,\n ICompanyVatStatusEntity,\n TaxStatementSignatoryPersonEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountingCode,\n GeneralPermissionCode,\n SignatoryPersonCode,\n TaxStatementSubmitterCode,\n TypeOfBusinessCode,\n VatStatementFrequencyCode,\n VatStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { IBatchResult } from \"@odata/OData\";\nimport { getCurrentRangeIndex, TTemporal, updateTemporalRangesAfterCurrentTempPropChange } from \"@odata/TemporalUtils\";\nimport { hasTaxStatementSignatoryPersonPath } from \"@pages/companies/TaxStatementSignatoryPerson.utils\";\nimport { getNextSystemCompanyLogoId } from \"@utils/CompanyUtils\";\nimport { composeRefHandlers, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { getOneFetch, isAbortException } from \"@utils/oneFetch\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { FILES_API_URL, FU_BY_POSTAL_CODE_URL } from \"../../constants\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FormMode, Status } from \"../../enums\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { DATE_MAX, DATE_MIN } from \"../../types/Date\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport Form from \"../../views/formView\";\nimport { generateComparisonProps } from \"../../views/formView/Form\";\nimport {\n FormStorage,\n IFormStorageSaveResult,\n ISaveArgs,\n IValidateAndSave,\n TCustomResponseHandler,\n TShouldUseCustomResHandler\n} from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { companyIsSecondaryAddressPath } from \"./Company.shared.utils\";\nimport {\n currentVatStatus,\n currentVatStatusFrequency,\n getVatDeductionCoefficientCurrentYear,\n handleCompanyCreated,\n ICompanyExtendedEntity,\n ICompanyFormCustomData\n} from \"./Company.utils\";\nimport CompanyAvatarSelector from \"./CompanyAvatarSelector\";\nimport { partnerAresFields, VatReducedDeductionCoefficient } from \"./CompanyDef\";\n\nexport interface ICompanyFormViewProps extends IFormViewProps {\n scrollRef?: React.RefObject;\n}\n\nconst oneFetch = getOneFetch();\n\nconst POSTAL_CODE_LENGTH = 5;\n\nconst VatStatusErrors = [\n \"CompanyVatStatusCannotModifyActiveStatusWhenElectronicSubmissionAlreadyExists\",\n \"CompanyVatStatusCannotModifyActiveStatusWhenElectronicSubmissionAlreadyExists\",\n \"CompanyVatStatusSwitchFromMonthFrequencyToQuarterDateIsInvalid\",\n \"CompanyVatStatusSwitchFromQuarterFrequencyToMonthDateIsInvalid\",\n \"CompanyVatStatusSwitchFromMonthFrequencyToMonthIsInvalid\",\n \"CompanyVatStatusSwitchFromQuarterFrequencyToQuarterIsInvalid\",\n \"CompanyVatStatusMoreThanOneChangeInFutureIsInvalid\",\n \"CompanyVatStatusSwitchFromVatRegisteredToNotVatRegisteredWhileElectronicSubmissionExists\",\n \"CompanyVatStatusSwitchFromNotVatRegisteredToNotVatRegisteredIsInvalid\",\n \"CompanyVatStatusSwitchFromNotVatRegisteredToQuarterIsInvalid\",\n \"CompanyVatStatusElectronicSubmissionAlreadyExistsSwitchIsInvalid\",\n \"CompanyVatStatusFirstElectronicSubmissionAlreadyExistsInFutureMonths\",\n \"CompanyVatStatusElectronicSubmissionExistsForDifferentFrequency\",\n \"CompanyVatStatusSwitchFromVatRegisteredToIdentifiedPersonIsInvalid\"\n];\n\nclass CompanyFormView extends FormViewForExtend {\n static contextType = DialogContext;\n\n _communicationAddressBackup: ICompanyCommunicationAddressEntity;\n _isMounted: boolean;\n\n constructor(props: ICompanyFormViewProps) {\n super(props);\n this.props.storage.setCustomData({ hasPermission: props.permissionContext.generalPermissions.has(GeneralPermissionCode.CompanyManagement) });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n this._isMounted = true;\n\n this.props.storage.setFormAlert(null);\n if (this.isReady()) {\n // trigger onAfterLoad manually as the storage is already loaded before we subscribed to onAfterLoad event\n // ! beware, this can be called multiple times, if use switch between avatar selection and company form !\n // keep that in mind in onAfterLoad handlers\n this.onAfterLoad();\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this._isMounted = false;\n }\n\n get postalCodePath(): string {\n return createPath(CompanyEntity.LegalAddress, CompanyLegalAddressEntity.PostalCode);\n }\n\n setBusy(busy: boolean): void {\n this.context?.setBusy ? this.context.setBusy(busy) : this.props.storage.setBusy(busy);\n }\n\n onAfterLoad(): Promise {\n this.addLogoToNewCompany();\n this.initiateCompanyStamp();\n this.handleInitialIsSecondaryAddress(this.props);\n this.setCurrentVatStatus();\n this.setCurrentDeductionCoefficient();\n\n this.props.storage.setValueByPath(BindingContext.localContext(\"Edition\"), \"czech\");\n this.props.storage.setValueByPath(hasTaxStatementSignatoryPersonPath, !this.props.storage.data.bindingContext.isNew() && !isObjectEmpty(this.entity.TaxStatementSignatoryPerson));\n\n this.setBusy(false);\n this.props.storage.refresh();\n this.fireFormLoadedEvent();\n\n return Promise.resolve();\n }\n\n setCurrentVatStatus = (): void => {\n const { storage } = this.props;\n\n if ((this.entity.VatStatuses ?? []).length === 0) {\n const vatStatus: ICompanyVatStatusEntity = BindingContext.createNewEntity(1, {\n DateValidFrom: DATE_MIN,\n DateValidTo: DATE_MAX,\n VatStatusCode: VatStatusCode.VATRegistered,\n VatStatus: {\n Code: VatStatusCode.VATRegistered\n },\n VatStatementFrequencyCode: VatStatementFrequencyCode.Monthly,\n VatStatementFrequency: {\n Code: VatStatementFrequencyCode.Monthly\n }\n });\n storage.setValueByPath(CompanyEntity.VatStatuses, [vatStatus]);\n }\n\n this.updateCurrentVatStatusFields();\n };\n\n setCurrentDeductionCoefficient = (): void => {\n const currentYear = getVatDeductionCoefficientCurrentYear();\n const sortedCoefficients = this.entity.VatReducedCoefficients?.sort((a, b) => b.Year - a.Year) ?? [];\n const currentCoeff = sortedCoefficients.find(coeff =>\n coeff.Year === currentYear\n ) ?? sortedCoefficients?.[0];\n this.props.storage.setValueByPath(VatReducedDeductionCoefficient, currentCoeff?.VatReducedCoefficient);\n };\n\n addLogoToNewCompany = (): void => {\n const { storage } = this.props;\n const company = this.entity;\n\n if (company.Logo) {\n return;\n }\n\n const nextCompanyLogoId = getNextSystemCompanyLogoId(storage.context.getData().companies);\n\n company.Logo = { Id: nextCompanyLogoId };\n };\n\n initiateCompanyStamp = (): void => {\n const { storage } = this.props;\n\n // add stamp url for the ImageUploader if the company already has a stamp uploaded\n // otherwise just clear possible remaining stamp data\n let stampImage: string = null;\n\n if (this.entity.Stamp?.Id) {\n stampImage = `${FILES_API_URL}/${this.entity.Stamp.Id}`;\n }\n\n storage.setCustomData({\n stampImage\n });\n };\n\n handleInitialIsSecondaryAddress = (props: ICompanyFormViewProps): void => {\n // set Companies/IsSecondaryAddress switch based on CommunicationAddress value\n const isSecondaryAddress = !(props.storage.data.bindingContext.isNew() || !this.entity.CommunicationAddress?.City);\n\n this._communicationAddressBackup = this.entity.CommunicationAddress;\n props.storage.clearAndSetValue(props.storage.data.bindingContext.navigate(companyIsSecondaryAddressPath), isSecondaryAddress);\n if (!isSecondaryAddress) {\n this.entity.CommunicationAddress = {};\n }\n };\n\n get scrollRef(): React.RefObject {\n // inside dialog, we need to use its scroller, not the form one\n return this.props.scrollRef ?? this._refScroll;\n }\n\n scrollPageDown = (): void => {\n if (this.scrollRef?.current) {\n this.scrollRef.current.scrollTop = this.scrollRef.current.scrollHeight;\n }\n };\n\n scrollPageUp = (): void => {\n if (this.scrollRef?.current) {\n this.scrollRef.current.scrollTop = 0;\n }\n };\n\n shouldUseCustomResponseHandler: TShouldUseCustomResHandler = (response: IBatchResult[]) => {\n const error = response[0] as IBatchResult;\n const vatStatusError = error.body?._validationMessages?.find(message => VatStatusErrors.includes(message.code) || message.code.startsWith(\"CompanyVatStatus\"));\n\n // vat statuses are set in dialog, but saved with the whole form,\n // we need to use custom error handling to show the correct error in the form\n return !!vatStatusError;\n };\n\n customResponseHandler: TCustomResponseHandler = async (response: IBatchResult[], args: IValidateAndSave, formStorage: FormStorage) => {\n const error = response[0] as IBatchResult;\n const vatStatusError = error.body?._validationMessages?.find(message => VatStatusErrors.includes(message.code) || message.code.startsWith(\"CompanyVatStatus\"));\n\n if (vatStatusError) {\n this.props.storage.setFormAlert({\n status: Status.Error,\n title: this.props.storage.t(\"Common:General.FormValidationErrorTitle\"),\n subTitle: this.props.storage.t(`Error:${vatStatusError.code}`)\n });\n }\n\n return null;\n };\n\n save = async (saveArgs?: Partial): Promise => {\n this.setBusy(true);\n const { storage } = this.props;\n\n this.props.onBeforeSave?.();\n\n const { stampImage } = storage.getCustomData();\n if (stampImage instanceof File) {\n this.entity.Stamp = await FileStorage.upload({ file: stampImage });\n } else if (!stampImage) {\n this.entity.Stamp = {};\n }\n\n const saveData: ICompanyExtendedEntity = cloneDeep(this.entity);\n if (storage.getValueByPath(hasTaxStatementSignatoryPersonPath)) {\n saveData.TaxStatementSignatoryPerson = storage.clearHiddenFields(this.entity.TaxStatementSignatoryPerson, storage.data.bindingContext.navigate(CompanyEntity.TaxStatementSignatoryPerson));\n } else {\n saveData.TaxStatementSignatoryPerson = null;\n }\n\n if (!saveData.Name) {\n saveData.Name = saveData.LegalName;\n }\n\n const currentYear = getVatDeductionCoefficientCurrentYear();\n if (saveData.UseVatReducedDeduction) {\n const lastCoeffValue = storage.getValueByPath(VatReducedDeductionCoefficient);\n const lastCoeffEntity = saveData.VatReducedCoefficients?.find(item => item.Year === currentYear);\n if (lastCoeffEntity) {\n lastCoeffEntity.VatReducedCoefficient = lastCoeffValue;\n } else {\n if (!saveData.VatReducedCoefficients) {\n saveData.VatReducedCoefficients = [];\n }\n saveData.VatReducedCoefficients.push({\n Year: currentYear,\n VatReducedCoefficient: lastCoeffValue\n });\n }\n } else {\n saveData.VatReducedCoefficients = saveData.VatReducedCoefficients?.filter(item => item.Year !== currentYear);\n }\n\n if (!saveData[companyIsSecondaryAddressPath]) {\n // remove partially filled communication address if it is hidden in form\n saveData.CommunicationAddress = null;\n }\n\n if (saveData.TypeOfBusinessCode === TypeOfBusinessCode.LegalPerson) {\n // LegalPerson doesn't have BirthNumber\n saveData.BirthNumber = null;\n }\n\n // update VatStatuses\n for (let i = 0; i < saveData.VatStatuses.length; i++) {\n const vatStatus = saveData.VatStatuses[i];\n\n if ([VatStatusCode.NotVATRegistered, VatStatusCode.IdentifiedPerson].includes(vatStatus.VatStatusCode as VatStatusCode)) {\n // in case we change it back from VatPayer, we need to set null to delete the code from DB\n vatStatus.VatStatementFrequencyCode = null;\n vatStatus.VatStatementFrequency = null;\n }\n }\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n const result = await this.props.storage.save({\n data: saveData,\n successSubtitle: this.props.storage.t(\"Companies:Validation.Saved\"),\n // new company is created in a dialog, which should be without error alert\n fieldValidationWithoutErrorAlert: isNew,\n shouldUseCustomResponseHandler: this.shouldUseCustomResponseHandler,\n customResponseHandler: this.customResponseHandler,\n ...saveArgs\n });\n\n if (!result) {\n this.setBusy(false);\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n // refresh companies list in context\n const { context } = this.props.storage;\n if (isNew) {\n const { Id } = result.data;\n await handleCompanyCreated(context, Id);\n } else {\n await context.updateCompanies();\n context.rerenderApp();\n }\n\n this.onAfterSave(isNew, false);\n\n return result;\n };\n\n handlePostalCodeChange = async (e: ISmartFieldChange): Promise => {\n try {\n const path = e.bindingContext.getEntityPath(true);\n if ((([CompanyEntity.LegalName, CompanyEntity.LegalNumber] as string[]).includes(path) && e.triggerAdditionalTasks) || path === this.postalCodePath) {\n const storage = this.props.storage;\n const postalCode = path === this.postalCodePath ? removeWhiteSpace(e.value as string) : e.additionalData?.BillingAddress?.PostalCode;\n let FA = null;\n // valid czech postal code has always 5 digits, so we don't have to fetch data otherwise\n if (postalCode?.length === POSTAL_CODE_LENGTH) {\n const response = await oneFetch.fetch(`${FU_BY_POSTAL_CODE_URL}${postalCode}`);\n if (!this._isMounted) {\n return;\n }\n if (!response.ok) {\n // ux wants to clear when you write down bad postal code, or postal code without assigned financial administration\n logger.error(\"couldn't fetch financial administration data from postal code\");\n } else {\n FA = await response.json();\n }\n }\n storage.setValueByPath(CompanyEntity.FinancialAdministration, FA);\n storage.refreshGroupByKey(\"Settings\");\n }\n } catch (e) {\n if (isAbortException(e)) {\n return;\n } else {\n throw e;\n }\n }\n };\n\n handleTaxStatementSignatoryPersonChange = (e: ISmartFieldChange): void => {\n const storage = this.props.storage;\n const signatoryPath = createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson);\n const path = e.bindingContext.getPath();\n if (path === TaxStatementSignatoryPersonEntity.TaxStatementSubmitter) {\n if (e.value === TaxStatementSubmitterCode.TaxAdvisor) {\n const personTypeCode = storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonTypeCode));\n storage.setValueByPath(signatoryPath, personTypeCode === TypeOfBusinessCode.LegalPerson ? SignatoryPersonCode._4cLegalEntityProvidingTaxConsultancy : SignatoryPersonCode._4bIndividual_TaxAdvisorOrAttorney);\n }\n if (e.value === TaxStatementSubmitterCode.Accountant) {\n storage.setValueByPath(signatoryPath, SignatoryPersonCode._4aGeneralAttorneyIndividualAndLegalPerson);\n }\n if (e.value === TaxStatementSubmitterCode.Customer) {\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType), null);\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPersonCode), null);\n } else if (isNotDefined(storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)))) {\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType), TypeOfBusinessCode.NaturalPerson);\n }\n }\n\n if ((path === TaxStatementSignatoryPersonEntity.LegalPersonName || e.bindingContext.getPath() === TaxStatementSignatoryPersonEntity.LegalNumber) && e.triggerAdditionalTasks) {\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName), e.additionalData?.Name);\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber), e.additionalData?.LegalNumber);\n }\n\n if (e.bindingContext.getNavigationPath(true) === createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)) {\n const submitterCode = storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter))?.Code;\n if (submitterCode === TaxStatementSubmitterCode.TaxAdvisor) {\n storage.setValueByPath(signatoryPath, e.value === TypeOfBusinessCode.NaturalPerson ? SignatoryPersonCode._4bIndividual_TaxAdvisorOrAttorney : SignatoryPersonCode._4cLegalEntityProvidingTaxConsultancy);\n }\n }\n\n if (path === hasTaxStatementSignatoryPersonPath) {\n if (e.value) {\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter), TaxStatementSubmitterCode.Accountant);\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType), TypeOfBusinessCode.NaturalPerson);\n storage.setValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson), SignatoryPersonCode._4aGeneralAttorneyIndividualAndLegalPerson);\n } else {\n storage.setValueByPath(CompanyEntity.TaxStatementSignatoryPerson, null);\n }\n storage.refresh();\n }\n };\n\n handleTypeOfBusinessChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getNavigationPath() !== CompanyEntity.TypeOfBusiness) {\n return;\n }\n\n if (e.value === TypeOfBusinessCode.LegalPerson) {\n // LegalPerson can only have AccountingForBusiness => set it\n this.props.storage.setValueByPath(CompanyEntity.Accounting, AccountingCode.AccountingForBusiness);\n }\n };\n\n handleChange = async (e: ISmartFieldChange): Promise => {\n this.handlePostalCodeChange(e);\n\n this.props.storage.handleChange(e);\n this.handleTaxStatementSignatoryPersonChange(e);\n this.handlePartnerChange(e);\n this.handleIsSecondaryAddressChange(e);\n this.handleTypeOfBusinessChange(e);\n this.handleCurrentVatStatusChange(e);\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n handleBlur = async (e: ISmartFieldBlur): Promise => {\n const { storage } = this.props;\n\n if (e.bindingContext.getEntityPath(true) === this.postalCodePath &&\n storage.getValue(e.bindingContext)?.length !== POSTAL_CODE_LENGTH) {\n storage.setValueByPath(CompanyEntity.FinancialAdministration, null);\n }\n\n await storage.handleBlur(e);\n storage.refreshFields();\n };\n\n handlePartnerChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n\n const path = e.bindingContext.getPath(true);\n const isLegalNameChange = path === CompanyEntity.LegalName;\n\n if ((isLegalNameChange || path === CompanyEntity.LegalNumber) && e.triggerAdditionalTasks) {\n for (const partnerField of Object.values(partnerAresFields)) {\n if (e.additionalData.isAllowCreateItem && (path === CompanyEntity.LegalNumber || partnerField.to === CompanyEntity.LegalName)) {\n // currently changed field -> it was handled by storage->handleChange automatically,\n // do not need to process additional data\n // furthermore, it doesn't work well with isAllowCreateItem as it clears the data\n // (additionalData are empty, format is different - according to fieldName)\n continue;\n }\n\n const fieldBc = storage.data.bindingContext.navigate(partnerField.to);\n let value = getNestedValue(partnerField.from, e.additionalData) ?? (e.additionalData?.isAllowCreateItem ? null : undefined);\n\n if (typeof value === \"string\") {\n value = value.trim();\n }\n\n if (partnerField.to === CompanyEntity.CzNace) {\n const info = storage.getInfo(fieldBc);\n if (!info.fieldSettings.items.find(item => item.id === value)) {\n // CZNace codes are preloaded, if not present, then we should not set the value as it's invalid\n value = null;\n }\n }\n\n if (value !== undefined) {\n storage.clearAndSetValue(fieldBc, value, true);\n }\n }\n\n if (storage.data.bindingContext.isNew() && e.additionalData.VatStatus) {\n const vatStatusBc = storage.data.bindingContext.navigate(CompanyEntity.VatStatuses).addKey(this.entity.VatStatuses[0]).navigate(CompanyVatStatusEntity.VatStatus);\n const vatStatus = e.additionalData.VatStatus.Code;\n\n this.updateVatStatus(vatStatusBc, vatStatus);\n\n storage.refresh(true);\n }\n }\n };\n\n handleIsSecondaryAddressChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getFullPath() === companyIsSecondaryAddressPath) {\n if (!e.value) {\n this._communicationAddressBackup = this.entity.CommunicationAddress;\n this.entity.CommunicationAddress = {};\n } else {\n this.entity.CommunicationAddress = this._communicationAddressBackup;\n }\n }\n };\n\n updateVatStatus(fieldBc: BindingContext, value: VatStatusCode): void {\n const { storage } = this.props;\n\n const additionalData = {\n Code: value,\n Name: getEnumDisplayValue(EntityTypeName.VatStatus, value)\n };\n const defaultFreq = value === VatStatusCode.NotVATRegistered ? null : VatStatementFrequencyCode.Monthly;\n const freqAdditionalData = defaultFreq ? {\n Code: defaultFreq,\n Name: getEnumDisplayValue(EntityTypeName.VatStatementFrequency, defaultFreq)\n } : {};\n\n if (value !== VatStatusCode.VATRegistered) {\n storage.setValueByPath(CompanyEntity.UseVatReducedDeduction, false);\n storage.setValueByPath(VatReducedDeductionCoefficient, null);\n }\n\n if (storage.data.bindingContext.isNew()) {\n // for new entity, we update the default row -> there is no temporal dialog\n const currentRange = this.entity.VatStatuses[0];\n currentRange.VatStatus = additionalData;\n currentRange.VatStatusCode = value;\n currentRange.VatStatementFrequencyCode = defaultFreq;\n currentRange.VatStatementFrequency = freqAdditionalData;\n } else {\n // update the current range\n updateTemporalRangesAfterCurrentTempPropChange({\n value,\n bindingContext: fieldBc,\n additionalData\n }, storage, CompanyEntity.VatStatuses);\n\n // also set default frequency to the temporal data\n updateTemporalRangesAfterCurrentTempPropChange({\n value: defaultFreq,\n bindingContext: fieldBc.getParent().navigate(CompanyVatStatusEntity.VatStatementFrequency),\n additionalData: freqAdditionalData\n }, storage, CompanyEntity.VatStatuses);\n }\n\n this.updateCurrentVatStatusFields();\n }\n\n updateCurrentVatStatusFields(): void {\n const { storage } = this.props;\n const current = this.entity.VatStatuses[getCurrentRangeIndex(this.entity.VatStatuses as TTemporal[])];\n\n storage.setValueByPath(currentVatStatus, current.VatStatusCode);\n storage.setValueByPath(currentVatStatusFrequency, current.VatStatementFrequencyCode);\n }\n\n handleCurrentVatStatusChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath();\n\n if (![currentVatStatus, currentVatStatusFrequency].includes(path)) {\n return;\n }\n\n const parentBc = e.bindingContext.getParent().navigate(CompanyEntity.VatStatuses);\n if (path === currentVatStatus) {\n const fieldBc = parentBc.navigate(CompanyVatStatusEntity.VatStatus);\n this.updateVatStatus(fieldBc, e.value as VatStatusCode);\n } else {\n if (storage.data.bindingContext.isNew()) {\n // for new entity, we update the default row -> there is no temporal dialog\n const currentRange = this.entity.VatStatuses[0];\n currentRange.VatStatementFrequencyCode = e.value as VatStatementFrequencyCode;\n currentRange.VatStatementFrequency = {\n ...e.additionalData\n };\n } else {\n const fieldBc = parentBc.navigate(CompanyVatStatusEntity.VatStatementFrequency);\n updateTemporalRangesAfterCurrentTempPropChange({\n ...e,\n bindingContext: fieldBc\n }, storage, CompanyEntity.VatStatuses);\n }\n }\n\n storage.refresh();\n };\n\n handleSelectAvatarConfirm = async (): Promise => {\n const { storage } = this.props;\n const bindingContext = storage.data.bindingContext.navigate(createPath(CompanyEntity.Logo, \"Id\"));\n await storage.confirmFields([bindingContext]);\n storage.setCustomData({ isAvatarSelectionOpen: false });\n storage.refresh();\n };\n\n handleAvatarSelectionClose = (): void => {\n const { storage } = this.props;\n const bindingContext = storage.data.bindingContext.navigate(createPath(CompanyEntity.Logo, \"Id\"));\n storage.cancelFields([bindingContext]);\n storage.setCustomData({ isAvatarSelectionOpen: false });\n storage.refresh();\n };\n\n handleFormCancel = (): void => {\n this.props.storage.reload();\n };\n\n handleTemporalPropertyDialogClose = (current?: TTemporal): void => {\n if (current) {\n this.props.storage.setValueByPath(currentVatStatus, current.VatStatusCode);\n this.props.storage.setValueByPath(currentVatStatusFrequency, current.VatStatementFrequencyCode);\n }\n };\n\n handleSmartTemporalPropertyDialogChange(args: ISmartFieldChange): void {\n super.handleSmartTemporalPropertyDialogChange(args);\n\n if (args.bindingContext.getPath() === CompanyVatStatusEntity.VatStatus) {\n const vatStatementFrequencyBc = args.bindingContext.getParent().navigate(CompanyVatStatusEntity.VatStatementFrequency);\n\n if (args.value === VatStatusCode.VATRegistered) {\n this.props.storage.setValue(vatStatementFrequencyBc, VatStatementFrequencyCode.Monthly);\n }\n }\n }\n\n renderForm(): React.ReactElement {\n const { storage } = this.props;\n const isComparison = storage?.formMode === FormMode.AuditTrail;\n\n return (\n
    \n {!isComparison && !this.props.hideButtons && this.renderButtonsByContext()}\n {this.renderTemporalPropertyDialog(this.handleTemporalPropertyDialogClose)}\n \n );\n }\n\n render() {\n const { storage } = this.props;\n\n if (!this.isReady() && !this.getFormProps()?.hideBusyIndicator) {\n return ;\n }\n\n const { isAvatarSelectionOpen } = storage?.getCustomData() ?? {};\n\n return (\n <>\n {super.render()}\n {isAvatarSelectionOpen && (\n }\n >\n \n \n )}\n \n );\n }\n}\n\nexport default withPermissionContext(CompanyFormView);\nexport { CompanyFormView as CompanyFormViewClean };","import Text from \"@components/text\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { SwitchType } from \"../../components/inputs/switch/Switch\";\nimport { IGetValueArgs } from \"../../components/smart/FieldInfo\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, LabelStatus, ValidatorType } from \"../../enums\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\n\nexport const NewCustomerDescriptionPath = BindingContext.localContext(\"NewCustomerDescription\");\nexport const NewCustomersSwitchPath = BindingContext.localContext(\"NewCustomersSwitch\");\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const fakeUserPath = (path: string): string => {\n return createPath(\"Users\", path);\n };\n\n const form: IFormDef = {\n id: \"newCustomerSpecialForm\",\n translationFiles: getDefinitions.translationFiles,\n fieldDefinition: {\n [NewCustomerDescriptionPath]: {\n labelStatus: LabelStatus.Removed,\n type: FieldType.Custom,\n render: () => {\n return {i18next.t(\"Companies:Wizard.CustomerPortalAccessDescription\").toString()};\n }\n },\n [NewCustomersSwitchPath]: {\n type: FieldType.Switch,\n label: i18next.t(\"Companies:Wizard.NewCustomerSwitchLabel\"),\n defaultValue: true,\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n [fakeUserPath(\"FirstName\")]: {\n label: i18next.t(\"Companies:Wizard.FirstName\"),\n isRequired: true,\n isCollectionField: true\n },\n [fakeUserPath(\"LastName\")]: {\n label: i18next.t(\"Companies:Wizard.LastName\"),\n isRequired: true,\n isCollectionField: true\n },\n [fakeUserPath(\"Email\")]: {\n width: BasicInputSizes.L,\n label: i18next.t(\"Companies:Wizard.Email\"),\n isRequired: true,\n isCollectionField: true,\n validator: {\n type: ValidatorType.Email\n }\n },\n },\n\n groups: [{\n id: \"main\",\n rows: [\n [{ id: NewCustomerDescriptionPath }],\n [{ id: NewCustomersSwitchPath }]\n ]\n }, {\n id: \"lineItems\",\n rows: [],\n isVisible: (args: IGetValueArgs) => {\n return !!args.storage.getValueByPath(NewCustomersSwitchPath);\n },\n lineItems: {\n collection: \"Users\",\n order: \"Id\",\n canReorder: false,\n isItemCloneable: false,\n columns: [{\n id: \"FirstName\"\n }, {\n id: \"LastName\"\n }, {\n id: \"Email\"\n }]\n }\n }]\n };\n\n return {\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Companies\", \"Common\"];","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { ifAll, ifAny, IGetValueArgs, not } from \"@components/smart/FieldInfo\";\nimport { SingleBusinessPartnerDef } from \"@components/smart/GeneralFieldDefinition\";\nimport BindingContext, { createPath } from \"@odata/BindingContext\";\nimport {\n CompanyEntity,\n TaxStatementSignatoryPersonEntity,\n TaxStatementSubmitterEntity,\n TypeOfBusinessEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { SignatoryPersonCode, TaxStatementSubmitterCode, TypeOfBusinessCode } from \"@odata/GeneratedEnums\";\nimport { TFieldsDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport { ValidationError } from \"yup\";\n\nimport { BasicInputSizes, FieldType, GroupedField, ValidatorType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { getUtcDayjs } from \"../../types/Date\";\n\nexport const hasTaxStatementSignatoryPersonPath = BindingContext.localContext(\"hasTaxStatementSignatoryPerson\");\n\nconst hasTaxStatementSignatoryPerson = (args: IGetValueArgs): boolean => {\n return !!args.storage.getValueByPath(hasTaxStatementSignatoryPersonPath);\n};\n\nconst isCustomer = (args: IGetValueArgs): boolean => {\n return args.storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter))?.Code === TaxStatementSubmitterCode.Customer;\n};\n\nconst isTaxAdvisor = (args: IGetValueArgs): boolean => {\n return args.storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter))?.Code === TaxStatementSubmitterCode.TaxAdvisor;\n};\n\nconst isLegalPerson = (args: IGetValueArgs): boolean => {\n return args.storage.getValueByPath(createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType))?.Code === TypeOfBusinessCode.LegalPerson;\n};\n\nexport const getTaxStatementSignatoryPersonFieldDefs: () => TFieldsDefinition = () => ({\n [hasTaxStatementSignatoryPersonPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.FirstName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LastName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.DateOfBirth)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxAdvisorRegistrationNumber)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.RelationshipToTaxSubject)\n }],\n customizationData: {\n useForCustomization: false // group switch\n }\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.FirstName)]: {\n groupedField: GroupedField.MultiStart,\n isRequired: true,\n isVisible: hasTaxStatementSignatoryPerson\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LastName)]: {\n groupedField: GroupedField.MultiEnd,\n isRequired: true,\n isVisible: hasTaxStatementSignatoryPerson\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxStatementSubmitter)]: {\n type: FieldType.ComboBox,\n isVisible: hasTaxStatementSignatoryPerson,\n affectedFields: [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.DateOfBirth)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.RelationshipToTaxSubject)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxAdvisorRegistrationNumber)\n }],\n fieldSettings: {\n transformFetchedItems: (items, args) => {\n if (args.storage.getValueByPath(CompanyEntity.TypeOfBusinessCode) === TypeOfBusinessCode.NaturalPerson) {\n return items.filter(i => i.id !== TaxStatementSubmitterCode.Customer);\n }\n return items;\n },\n displayName: TaxStatementSubmitterEntity.Name\n },\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.PersonType)]: {\n type: FieldType.ComboBox,\n isRequired: true,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, not(isCustomer)),\n affectedFields: [{\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.DateOfBirth)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.RelationshipToTaxSubject)\n }, {\n id: createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxAdvisorRegistrationNumber)\n }],\n fieldSettings: {\n displayName: TypeOfBusinessEntity.Name\n }\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.DateOfBirth)]: {\n type: FieldType.Date,\n isRequired: true,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, not(isLegalPerson), not(isCustomer)),\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n const is18yo = getUtcDayjs().subtract(18, \"years\").isSameOrAfter(value as Date, \"day\");\n if (value && !is18yo) {\n return new ValidationError(i18next.t(\"Companies:Validation.TaxStatementSignatoryPersonDateOfBirth\"), false, args.bindingContext.getEntityPath(true));\n }\n return true;\n },\n }\n }\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalPersonName)]: {\n groupedField: GroupedField.MultiStart,\n width: BasicInputSizes.XL,\n isRequired: true,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, not(isCustomer), isLegalPerson),\n ...SingleBusinessPartnerDef,\n columns: [{\n id: TaxStatementSignatoryPersonEntity.LegalPersonName\n }, {\n id: TaxStatementSignatoryPersonEntity.LegalNumber\n }]\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.LegalNumber)]: {\n groupedField: GroupedField.MultiEnd,\n width: BasicInputSizes.S,\n isRequired: true,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, not(isCustomer), isLegalPerson),\n ...SingleBusinessPartnerDef,\n columns: [{\n id: TaxStatementSignatoryPersonEntity.LegalPersonName\n }, {\n id: TaxStatementSignatoryPersonEntity.LegalNumber\n }]\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.RelationshipToTaxSubject)]: {\n width: BasicInputSizes.L,\n isRequired: true,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, ifAny(isLegalPerson, isCustomer))\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.TaxAdvisorRegistrationNumber)]: {\n isVisible: ifAll(hasTaxStatementSignatoryPerson, isTaxAdvisor, not(isLegalPerson)),\n width: BasicInputSizes.L\n },\n [createPath(CompanyEntity.TaxStatementSignatoryPerson, TaxStatementSignatoryPersonEntity.SignatoryPerson)]: {\n type: FieldType.ComboBox,\n isVisible: ifAll(hasTaxStatementSignatoryPerson, not(isCustomer)),\n isReadOnly: true,\n fieldSettings: {\n items: [{\n id: SignatoryPersonCode._4aGeneralAttorneyIndividualAndLegalPerson,\n label: i18next.t(\"Companies:Form.SignatoryPerson4a\")\n }, {\n id: SignatoryPersonCode._4bIndividual_TaxAdvisorOrAttorney,\n label: i18next.t(\"Companies:Form.SignatoryPerson4b\")\n }, {\n id: SignatoryPersonCode._4cLegalEntityProvidingTaxConsultancy,\n label: i18next.t(\"Companies:Form.SignatoryPerson4c\")\n }]\n },\n customizationData: { useForCustomization: false }\n }\n});","import styled from \"styled-components/macro\";\nimport { T_TITLE_2, T_TITLE_4_NORMAL } from \"../../global.style\";\n\nexport const TitleStyled = styled.div`\n ${T_TITLE_2};\n`;\n\nexport const StyledSubtitle = styled.p`\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const StyledErrorValue = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n cursor: pointer;\n`;\n\nexport const HeaderStyled = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n","import React from \"react\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport Field from \"../../components/inputs/field\";\nimport { BasicInputSizes, FieldType } from \"../../enums\";\nimport { IInputOnBlurEvent, IInputOnChangeEvent, InputWithErrorAndTooltip } from \"@components/inputs/input\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport { IFieldToUpdate, IImportFieldDef } from \"./CsvImport.utils\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport FieldsWrapper from \"../../components/inputs/field/FieldsWrapper\";\nimport { DatePicker } from \"../../components/inputs/date/DatePicker\";\nimport DateType, { parseDayjs } from \"../../types/Date\";\nimport NumberType from \"../../types/Number\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps extends WithTranslation {\n fieldToUpdate?: IFieldToUpdate;\n selectedDateFormat: string;\n selectedNumberLocalization: string;\n onClose?: () => void;\n onConfirm?: (value: string) => void;\n}\n\ninterface IState {\n value: string;\n valueChangeError: IValidationError;\n}\n\nclass ChangeValueDialog extends React.PureComponent {\n static contextType = AppContext;\n\n constructor(props: IProps) {\n super(props);\n this.state = {\n value: this.props.fieldToUpdate.value,\n valueChangeError: null\n };\n }\n\n get fieldDef(): IImportFieldDef {\n return this.props.fieldToUpdate.fieldDef;\n }\n\n get validationError(): IValidationError {\n const validatorResult = this.fieldDef?.validator?.(this.state.value, this.context, this.props.selectedDateFormat);\n\n if (this.fieldDef.validator && validatorResult !== true) {\n return { message: validatorResult as string };\n }\n return null;\n }\n\n handleInputBlur = (e: IInputOnBlurEvent) => {\n const parsedValue = NumberType.parse(this.state.value as string, true, {\n maximumFractionDigits: 2\n });\n\n if (!isNaN(parsedValue)) {\n this.setState({ value: parsedValue?.toString() });\n }\n };\n\n handleChange = (e: IInputOnChangeEvent) => {\n let value = e.value;\n if (this.fieldDef?.type === FieldType.Date) {\n if (!e.triggerAdditionalTasks) {\n this.setState({ value: \"\" });\n }\n value = DateType.format(e.value as Date, this.props.selectedDateFormat);\n }\n this.setState({ value: value as string });\n };\n\n handleConfirm = () => {\n if (this.validationError) {\n return;\n }\n\n const parser = this.fieldDef.parser;\n const parsedValue = parser ? parser(this.state.value as string, { localization: this.props.selectedNumberLocalization }) : this.state.value;\n this.props.onConfirm(parsedValue);\n };\n\n dateFormatter = (value: string): string => {\n if (!DateType.isValid(value as unknown as Date) || !value) {\n return this.state.value;\n }\n return value;\n };\n\n renderDateValue = (): React.ReactElement => {\n const date = parseDayjs({ date: this.state.value, format: this.props.selectedDateFormat, strictMode: true });\n\n return (\n \n );\n };\n\n render() {\n return }\n onConfirm={this.handleConfirm}\n onClose={this.props.onClose}>\n \n \n {this.fieldDef?.type === FieldType.Date && this.renderDateValue()}\n {this.fieldDef?.type !== FieldType.Date && }\n \n \n \n \n \n ;\n }\n}\n\nexport default withTranslation([\"CsvImport\"])(ChangeValueDialog);","import { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { WithDialogContext, withDialogContext } from \"@components/dialog/withDialogContext\";\nimport { csvToArray, detectEncoding } from \"@components/fileUploader/File.utils\";\nimport { ArrowIcon, CleanFilterIcon } from \"@components/icon\";\nimport { Select } from \"@components/inputs/select\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SelectedHighLightType } from \"@components/simpleTable\";\nimport { IActionRendererArgs, IColumn, IRow, TId } from \"@components/table\";\nimport { NoData } from \"@components/table/NoData\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { OData } from \"@odata/OData\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport dayjs from \"dayjs\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport { Button, ButtonGroup, IconButton } from \"../../components/button\";\nimport ImportSettings from \"../../components/importSettings/ImportSettings\";\nimport ImportSettingsDropItem, {\n IImportSettingsItemProps\n} from \"../../components/importSettings/ImportSettingsDropItem\";\nimport Checkbox from \"../../components/inputs/checkbox\";\nimport Field from \"../../components/inputs/field\";\nimport { ScrollBar } from \"../../components/scrollBar\";\nimport SimpleTableWithPaginator from \"../../components/simpleTable/SimpleTableWithPaginator\";\nimport TableWithAutoSizedColumns from \"../../components/table/TableWithAutoSizedColumns\";\nimport Tabs from \"../../components/tabs\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { ActionState, BasicInputSizes, FieldType, IconSize, RowAction, Status, ToggleState } from \"../../enums\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { SmartHeaderStyled } from \"../../views/formView/FormView.styles\";\nimport View from \"../../views/View\";\nimport ChangeValueDialog from \"./ChangeValueDialog\";\nimport { HeaderStyled, StyledSubtitle, TitleStyled } from \"./CsvImport.styles\";\nimport {\n csvRowsParse,\n encodings,\n findLongestRow,\n getAlphabetKey,\n getBankAccountCSVImportSettings,\n getDateFormats,\n getImportTableEditableErrorValue,\n IBankAccountCSVImportSettings,\n IFieldToUpdate,\n localizationItems,\n saveBankAccountSettings,\n transactionPropsDef,\n transformItems\n} from \"./CsvImport.utils\";\n\n\nexport interface IUploadArgs {\n transformedRows: IRow[];\n bankAccountId: number;\n numberRangeId: number;\n fileId?: number;\n dateFormat: string;\n oData?: OData;\n}\n\ninterface IProps extends WithDialogContext, WithOData, WithTranslation, PropsWithTheme, WithAlert {\n file: File;\n bankAccountId: number;\n onCancel: () => void;\n onUpload: (args: IUploadArgs) => Promise;\n}\n\ninterface IState {\n page: number;\n columns: IColumn[];\n rows: IRow[];\n transformedRows: IRow[];\n selectedPreview: number;\n fieldToUpdate: IFieldToUpdate;\n selectedTab: string;\n columnsMap: Record;\n dataStartPosition: number;\n encoding: string;\n selectedDateFormat: string;\n selectedNumberLocalization: string;\n currentPage: number; // pagination\n}\n\nexport enum CsvImportTab {\n All = \"All\",\n Errors = \"Errors\"\n}\n\nconst ScrollbarStyles: React.CSSProperties = {\n margin: \"0 -38px\",\n height: \"fit-content\",\n maxHeight: \"calc(100%)\",\n width: \"calc(100% + 38px)\"\n};\n\nconst ImportSettingsStyle: React.CSSProperties = {\n marginTop: \"24px\"\n};\n\nconst DefaultDataStartPosition = 1;\nconst DefaultHeaderPosition = 0;\nconst defaultSelectedNumberLocalization = \"cs-CZ\";\n\nclass CsvImport extends React.PureComponent {\n static contextType = AppContext;\n\n _scrollRef = React.createRef();\n dateFormatItems: ISelectItem[] = [];\n bankAccountSettings: IBankAccountCSVImportSettings;\n accountCurrency: string;\n detectedEncoding: string;\n\n state: IState = {\n page: 1,\n currentPage: 0, // pagination on first page\n columns: [],\n rows: [],\n transformedRows: [],\n fieldToUpdate: null,\n selectedTab: CsvImportTab.All,\n selectedPreview: null,\n selectedDateFormat: null,\n selectedNumberLocalization: null,\n columnsMap: {},\n dataStartPosition: 1,\n encoding: \"\"\n };\n\n constructor(props: IProps, context: IAppContext) {\n super(props, context);\n\n props.dialogContext.setBusy(true);\n }\n\n componentDidMount = async () => {\n this.dateFormatItems = await getDateFormats(this.props.oData);\n const baInfo = await getBankAccountCSVImportSettings(this.props.bankAccountId, this.props.oData);\n this.accountCurrency = baInfo.currencyCode;\n this.bankAccountSettings = baInfo.settings;\n this.detectedEncoding = await detectEncoding(this.props.file);\n const encoding = this.bankAccountSettings.FileEncoding ?? this.detectedEncoding;\n\n const columnsMap: Record = {};\n\n for (const col of this.bankAccountSettings.ColumnMap) {\n columnsMap[col.PropertyName] = col.ColumnId;\n }\n\n const dataArray = await csvToArray(this.props.file, encoding); // for empty file returns data as empty array []\n const csvRows = dataArray.data;\n const savedDateStartPosition = this.bankAccountSettings?.DataStartPosition ?? DefaultDataStartPosition;\n const dataStartPosition = savedDateStartPosition > csvRows.length ? (csvRows.length === 1 ? 0 : DefaultDataStartPosition) : savedDateStartPosition;\n\n if (csvRows.length) {\n const longestRow = findLongestRow(csvRows);\n const columns = Object.values(longestRow).map((header: string, index: number) => {\n return { id: index.toString(), label: getAlphabetKey(index), hasGreyHeader: true };\n });\n\n const rows = csvRowsParse(csvRows, this.bankAccountSettings.HeaderPosition ?? DefaultHeaderPosition);\n\n this.setState({\n columns, rows, columnsMap, dataStartPosition, encoding,\n selectedDateFormat: this.bankAccountSettings?.DateFormat,\n selectedNumberLocalization: this.bankAccountSettings?.AmountFormat ?? defaultSelectedNumberLocalization\n });\n\n if (isDefined(columnsMap[\"DateBankTransaction\"]) && isDefined(columnsMap[\"TransactionAmount\"])) {\n\n if (!this.state.selectedDateFormat) {\n this.selectDateFormat(columnsMap[\"DateBankTransaction\"]);\n }\n\n const transformedRows = transformItems({\n rows,\n settings: this.bankAccountSettings,\n context: this.context,\n t: this.props.t,\n handleValueChange: this.handleValueChange,\n localization: this.state.selectedNumberLocalization\n });\n\n this.setState({ transformedRows, page: 1 });\n }\n }\n\n this.props.dialogContext.setBusy(false);\n };\n\n handleValueChange = (fieldToUpdate: IFieldToUpdate) => {\n this.setState({ fieldToUpdate });\n };\n\n prevPage = () => {\n this.setState({ page: this.state.page - 1 });\n };\n\n nextPage = async () => {\n if (this.state.page === 2) {\n this.props.dialogContext.setBusy(true);\n const bankAccountSettings: IBankAccountCSVImportSettings = {\n ColumnMap: Object.entries(this.state.columnsMap).map(([key, value]) => ({\n PropertyName: key,\n ColumnId: value\n })),\n HeaderPosition: this.state.rows.findIndex(row => row.selected),\n DataStartPosition: this.state.dataStartPosition,\n FileEncoding: this.state.encoding,\n DateFormat: this.state.selectedDateFormat,\n AmountFormat: this.state.selectedNumberLocalization\n };\n\n await saveBankAccountSettings(this.props.bankAccountId, bankAccountSettings, this.props.oData);\n\n const transformedRows = transformItems({\n rows: this.state.rows,\n settings: bankAccountSettings,\n context: this.context,\n t: this.props.t,\n handleValueChange: this.handleValueChange,\n localization: this.state.selectedNumberLocalization,\n storeOriginalValue: true\n });\n\n this.props.dialogContext.setBusy(false);\n this.setState({ transformedRows });\n }\n\n this.setState({ page: this.state.page + 1 });\n };\n\n getTabDefinition = () => {\n return [{\n id: CsvImportTab.All,\n title: this.props.t(\"CsvImport:Tabs.All\", { count: this.state.transformedRows.length })\n }, {\n id: CsvImportTab.Errors,\n title: this.props.t(\"CsvImport:Tabs.Errors\", { count: this.state.transformedRows.filter(row => row.customData.hasOriginalError).length })\n }];\n };\n\n handleRowSelect = (id: TId, linePosition: number) => {\n const rows = [...this.state.rows];\n if (linePosition <= rows.findIndex(row => row.id === id) + 1) {\n return;\n }\n for (const row of rows) {\n row.selected = !row.selected && row.id === id;\n }\n this.setState({ rows });\n };\n\n selectDateFormat = (columnIndex: number): void => {\n const formats = this.dateFormatItems;\n const date = removeWhiteSpace(this.state.rows[this.state.dataStartPosition]?.values[columnIndex] as string) ?? \"\";\n const selectedDateFormat = formats.find(format => dayjs(date.substring(0, format.id?.length), format.id, true).isValid())?.id ?? formats[0].id;\n this.setState({ selectedDateFormat });\n };\n\n handleChange = (mappedColumnId: string, availableColumnId: string) => {\n const columnsMap = this.state.columnsMap;\n const val = parseInt(availableColumnId);\n\n columnsMap[mappedColumnId] = val;\n\n if (mappedColumnId === \"DateBankTransaction\") {\n this.selectDateFormat(val);\n }\n\n this.setState({ columnsMap });\n this.forceUpdate();\n };\n\n handleRemove = (key: string) => {\n const columnsMap = this.state.columnsMap;\n delete columnsMap[key];\n this.setState({ columnsMap });\n this.forceUpdate();\n };\n\n handleSplitLineMove = (e: MouseEvent): void => {\n const mousePos = e.clientY;\n const scrollElementBoundingRect = this._scrollRef.current.getBoundingClientRect();\n\n if (mousePos > scrollElementBoundingRect.bottom && mousePos) {\n this._scrollRef.current.scrollTop += mousePos - scrollElementBoundingRect.bottom + 50;\n } else if (mousePos < scrollElementBoundingRect.top) {\n this._scrollRef.current.scrollTop -= scrollElementBoundingRect.top - mousePos + 50;\n }\n };\n\n handleSplitLineMoveEnd = (lineIndex: number) => {\n this.setState({ dataStartPosition: lineIndex });\n };\n\n\n reloadRows = async () => {\n const dataArray = await csvToArray(this.props.file, this.state.encoding);\n const csvRows = dataArray.data;\n if (csvRows) {\n const currentHeader = this.state.rows.findIndex(row => row.selected);\n const rows = csvRowsParse(csvRows, currentHeader !== -1 ? currentHeader : this.bankAccountSettings.HeaderPosition ?? 0);\n this.setState({ rows });\n }\n };\n\n get encodingItems() {\n return encodings.map(e => ({ id: e, label: e }));\n }\n\n handleEncodingChange = (args: ISelectionChangeArgs) => {\n this.setState({ encoding: args.value as string }, () => this.reloadRows());\n };\n\n handlePageChange = (currentPage: number) => {\n this.setState({ currentPage });\n };\n\n getDropItemSelectProps = (type: FieldType): Pick => {\n if (type === FieldType.Date) {\n return {\n selectItems: this.dateFormatItems,\n selectValue: this.state.selectedDateFormat,\n onSelectChange: (args: ISelectionChangeArgs) => {\n this.setState({ selectedDateFormat: args.value as string });\n }\n };\n } else if (type === FieldType.NumberInput) {\n return {\n selectItems: localizationItems,\n selectValue: this.state.selectedNumberLocalization,\n onSelectChange: (args: ISelectionChangeArgs) => {\n this.setState({ selectedNumberLocalization: args.value as string });\n }\n };\n } else {\n return {};\n }\n };\n\n getMappedColumns = (args: Pick) => {\n const selectedRow = this.state.rows.find((row) => row.selected);\n\n return Object.entries(transactionPropsDef(this.context)).map(([key, def]) => {\n const assignedValue = selectedRow ? Object.values(selectedRow.values)[this.state.columnsMap[key]] : \"\";\n const value = assignedValue === \"\" ? getAlphabetKey(this.state.columnsMap[key]) : assignedValue;\n\n return ;\n });\n };\n\n getAvailableColumns = () => {\n const selectedRow = this.state.rows.find((row) => row.selected);\n const csvColumns = selectedRow ? Object.values(selectedRow.values) : this.state.columns.map(col => col.label);\n\n return csvColumns.map((value, index) => {\n return { id: index.toString(), value: value ? value.toString() : getAlphabetKey(index) };\n });\n };\n\n getPreviewValues = (): string[] => {\n if (isNotDefined(this.state.selectedPreview)) {\n return [];\n }\n\n return this.state.rows.slice(this.state.dataStartPosition, this.state.dataStartPosition + 20).map((row) => {\n const val = row.values[this.state.selectedPreview];\n\n return val.toString();\n });\n };\n\n handlePreviewValuesNeeded = (availableColumnId: string) => {\n this.setState({\n selectedPreview: parseInt(availableColumnId)\n });\n };\n\n renderImportSettings = (): React.ReactElement => {\n return (\n \n );\n };\n\n onToggleChange = (allChecked: boolean) => {\n this.setState({\n transformedRows: this.state.transformedRows.map(row => ({\n ...row,\n customData: {\n ...row.customData,\n isChecked: !allChecked\n }\n }))\n });\n };\n\n handleClearSavedSettings = (): void => {\n this.setState({\n columnsMap: {},\n dataStartPosition: DefaultDataStartPosition,\n rows: this.state.rows.map((row, index) => ({\n ...row,\n selected: index === DefaultHeaderPosition\n })),\n encoding: this.detectedEncoding,\n selectedDateFormat: null,\n selectedNumberLocalization: null\n });\n };\n\n renderPage = (): React.ReactElement => {\n switch (this.state.page) {\n case 1:\n return (\n <>\n \n
    \n {this.props.t(\"CsvImport:PageOneTitle\")}\n {this.props.t(\"CsvImport:PageOneSubtitle\")}\n
    \n \n \n
    \n {i18next.t(\"Banks:Accounts.AccountNumber\")}:\n {renderValueWithCopyLink(acc)}\n \n \n {i18next.t(\"Banks:Form.BankCode\")}:\n {renderValueWithCopyLink(bank)}\n \n \n );\n }\n\n return (\n \n {i18next.t(\"Banks:Pairing.FromAccount\")}:\n {renderValueWithCopyLink(_formatAcc(entity))}\n \n );\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.CustomerPortalPayment}Form`,\n summary,\n translationFiles: getDefinitions.translationFiles,\n formControl: CustomerPortalPaymentForm,\n title: i18next.t(\"CustomerPortalPayment:PaidForm\"),\n additionalProperties: [{ id: CustomerPortalPaymentEntity.BankCode },\n { id: CustomerPortalPaymentEntity.Document }, { id: createPath(CustomerPortalPaymentEntity.Document, DocumentEntity.NumberOurs) },\n { id: createPath(CustomerPortalPaymentEntity.Document, DocumentEntity.DocumentTypeCode) }],\n // we don't use isReadOnly as the form is still \"savable\" and there are some CSS shenanigans with alert for\n // readOnly forms we don't want to deal with\n fieldDefinition: {\n ...withReadOnly(CustomerPortalPaymentEntity.BusinessPartnerName),\n ...withReadOnly(CustomerPortalPaymentEntity.LegalNumber),\n ...withReadOnly(CustomerPortalPaymentEntity.SymbolVariable),\n ...withReadOnly(CustomerPortalPaymentEntity.SymbolConstant),\n ...withReadOnly(CustomerPortalPaymentEntity.SymbolSpecific),\n ...withReadOnly(CustomerPortalPaymentEntity.RemittanceInformation),\n ...withReadOnly(CustomerPortalPaymentEntity.TransactionAmount),\n ...withReadOnly(CustomerPortalPaymentEntity.TransactionCurrencyCode),\n\n DocumentType: {\n // this force expand for query\n isReadOnly: true,\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n },\n },\n NumberOurs: {\n isReadOnly: true,\n formatter: (val: TValue, args?: IFormatOptions) => {\n const code = getLinks(args, [{\n LinkedDocument: args.entity.Document\n }]);\n\n return code.fragment as TCellValue;\n }\n },\n QrCode: {\n render: (args: IFieldDefFn) => {\n const entity = args.storage.data.entity;\n return (\n \n \"QR\n \n
    \n {accRenderer(entity)}\n \n {i18next.t(\"Banks:Pairing.SymbolVariable\")}:\n {renderValueWithCopyLink(entity.SymbolVariable)}\n \n \n {`${i18next.t(\"Banks:Transactions.Amount\")} (${CurrencyType.getCurrencyUnit(entity.TransactionCurrencyCode)})`} :\n {renderValueWithCopyLink(entity.TransactionAmount)}\n \n
    \n \n \n );\n }\n },\n IsPaid: {\n isVisible: (args:IGetValueArgs) => {\n return currentUserIsCustomer(args.storage.context);\n },\n render: (args: IFieldDefFn) => {\n const _change = (checked: boolean) => {\n args.events.onChange({\n value: checked,\n parsedValue: checked,\n type: FieldType.Switch,\n bindingContext: args.props.info.bindingContext\n });\n };\n\n return (\n \n \n \n );\n }\n },\n [BindingContext.localContext(\"FormattedAccount\")]: {\n isReadOnly: true,\n label: i18next.t(\"CustomerPortalPayment:Account\"),\n formatter: (val: TValue, args: IFieldDefFn) => {\n return _formatAcc(args.storage.data.entity);\n },\n collapsedRows: [[{ id: CustomerPortalPaymentEntity.Country }],\n [\n { id: CustomerPortalPaymentEntity.AbaNumber },\n { id: CustomerPortalPaymentEntity.AccountNumber },\n { id: CustomerPortalPaymentEntity.IBAN },\n { id: CustomerPortalPaymentEntity.SWIFT }\n ]]\n },\n ...getCustomerPaymentBankAccountsFieldBaseDef()\n },\n groups: [{\n id: \"noteGroup\",\n rows: [[{ id: CustomerPortalPaymentEntity.BusinessPartnerName }, { id: CustomerPortalPaymentEntity.LegalNumber },\n { id: CustomerPortalPaymentEntity.DocumentType }, { id: CustomerPortalPaymentEntity.NumberOurs }]]\n }, {\n id: \"Payment\",\n title: i18next.t(\"Banks:Transactions.Payment\"),\n rows: [[\n { id: BindingContext.localContext(\"FormattedAccount\") }\n ]]\n }, {\n id: \"Rest\",\n\n rows: [\n [{ id: CustomerPortalPaymentEntity.SymbolVariable }, { id: CustomerPortalPaymentEntity.SymbolSpecific },\n { id: CustomerPortalPaymentEntity.SymbolConstant }, { id: CustomerPortalPaymentEntity.RemittanceInformation }],\n [{ id: CustomerPortalPaymentEntity.QrCode }],\n [{ id: CustomerPortalPaymentEntity.IsPaid }]]\n }]\n };\n\n return {\n entitySet: EntitySetName.CustomerPortalPayments,\n form,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"CustomerPortalPayment\", \"Banks\", \"Common\"];\nsetDefByEntityType(EntityTypeName.CustomerPortalPayment, getDefinitions);","import styled, { css } from \"styled-components/macro\";\n\nimport { FIELD_VER_MARGIN } from \"../../components/inputs/field/Field.styles\";\nimport { StyledSwitch } from \"../../components/inputs/switch/Switch.styles\";\nimport { ContentColumn } from \"../../components/objectList/ListItem.styles\";\nimport { T_PLAIN_big, T_TITLE_3_small } from \"../../global.style\";\n\nexport const StyledDialogListItem = styled.div<{\n disableOverlay?: boolean;\n isInDialog?: boolean;\n}>`\n display: flex;\n opacity: ${props => props.disableOverlay ? props.theme.disabled_opacity : 1};\n margin-top: ${FIELD_VER_MARGIN};\n justify-content: flex-start;\n\n & > ${ContentColumn} {\n &:first-of-type {\n margin-left: 12px; // align with input label\n }\n\n &:last-of-type {\n margin-right: 0;\n }\n\n width: fit-content;\n margin-bottom: 0;\n }\n\n ${props => props.isInDialog && css`\n flex-direction: column;\n gap: 10px;\n\n & > ${ContentColumn} {\n margin-left: 12px;\n }\n `};\n`;\n\nexport const StyledBlockReadingMessages = styled.div<{\n isDialog: boolean;\n}>`\n ${props => !props.isDialog && css`\n margin-top: 10px\n `};\n display: flex;\n align-items: center;\n padding: 5px 0; // circle inside switch is slightly bigger than it's wrapper\n\n & > ${StyledSwitch} {\n margin-left: 12px;\n }\n`;\n\nexport const StyledPermissionRow = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n column-gap: 5px;\n ${T_PLAIN_big}\n`;\n\nexport const StyledUserNameHeading = styled.div`\n margin-top: 20px;\n margin-bottom: 0.5em !important;\n ${T_TITLE_3_small};\n font-weight: bold;\n`;","import { ConnectionStatus } from \"@components/connectionDialog/ConnectionDialog\";\nimport { StatusNoIcon, StatusYesIcon } from \"@components/icon\";\nimport { IColumnContent, ListItemContentRow } from \"@components/objectList\";\nimport { DataBoxEntity, IDataBoxEntity } from \"@odata/GeneratedEntityTypes\";\nimport { StyledPermissionRow } from \"@pages/dataBox/DataBox.styles\";\nimport memoize from \"@utils/memoize\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER, DATABOX_REST_URL } from \"../../constants\";\nimport { IconSize } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport { IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\n\nexport const CHECK_CONNECTION_URL = `${DATABOX_REST_URL}/details`;\n\nexport interface IDataBoxCustomData extends IFormStorageDefaultCustomData {\n connectionStatus?: ConnectionStatus;\n connectionError?: string;\n}\n\nconst getPermissionIcon = memoize((value: boolean): React.ReactElement => {\n const Icon = value ? StatusYesIcon : StatusNoIcon;\n return ();\n});\n\nconst getEmptyDataBoxTile = memoize((): IColumnContent[] => {\n return [{\n content: \n }];\n});\n\nexport const getListItemContents = (entity: IDataBoxEntity, isDialog: boolean): IColumnContent[] => {\n if (!entity?.DataBoxId) {\n return isDialog ? [] : getEmptyDataBoxTile();\n } else {\n return [{\n content: (<>\n {!isDialog &&\n }\n\n \n \n\n \n \n\n \n \n )\n }, {\n title: i18next.t(\"DataBox:Permissions.Title\"),\n content: (<>\n {[DataBoxEntity.CanCheckMessages, DataBoxEntity.CanSendMessages, DataBoxEntity.CanReadMessages].map(permission => {\n return (\n {getPermissionIcon(entity[permission] as boolean)}\n {i18next.t(`DataBox:Permissions.${permission}`)}\n );\n })}\n )\n }];\n }\n};","import { ConnectionStatus } from \"@components/connectionDialog/ConnectionDialog\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IColumnContent } from \"@components/objectList\";\nimport { ColumnTitle, ContentColumn } from \"@components/objectList/ListItem.styles\";\nimport { IGetValueArgs, not } from \"@components/smart/FieldInfo\";\nimport BindingContext from \"@odata/BindingContext\";\nimport { DataBoxEntity, EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { StyledDialogListItem } from \"@pages/dataBox/DataBox.styles\";\nimport { getListItemContents, IDataBoxCustomData } from \"@pages/dataBox/DataBox.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, FieldType, LabelStatus } from \"../../enums\";\nimport TestIds from \"../../testIds\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { setDefForTesting } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\n\nconst visibleForConnectionStatus = (statuses: ConnectionStatus[]) => (args: IGetValueArgs) => {\n return statuses.includes((args.storage?.getCustomData() as IDataBoxCustomData).connectionStatus);\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const form: IFormDef = {\n id: `${EntityTypeName.DataBox}Form`,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [{ id: DataBoxEntity.UserName, useForValidation: true }, {\n id: DataBoxEntity.PasswordSetter,\n useForValidation: true\n },\n { id: DataBoxEntity.AllowReadingNewMessages }, { id: DataBoxEntity.CanCheckMessages }, { id: DataBoxEntity.CanReadMessages },\n { id: DataBoxEntity.CanSendMessages }, { id: DataBoxEntity.CompanyAddress },\n { id: DataBoxEntity.CompanyName }, { id: DataBoxEntity.DataBoxId }, { id: DataBoxEntity.DataBoxUserName },\n { id: DataBoxEntity.PasswordId }, { id: DataBoxEntity.DateCreated }, { id: DataBoxEntity.DateLastModified },\n { id: DataBoxEntity.IsActive }, { id: DataBoxEntity.IsActive }, { id: DataBoxEntity.LegalNumber }],\n fieldDefinition: {\n UserName: {\n type: FieldType.Input,\n width: BasicInputSizes.XL,\n isDisabled: not(visibleForConnectionStatus([ConnectionStatus.Disconnected])),\n isVisible: not(visibleForConnectionStatus([ConnectionStatus.ConnectionError]))\n },\n PasswordSetter: {\n type: FieldType.Password,\n label: i18next.t(\"DataBox:Password\"),\n isRequired: true,\n width: BasicInputSizes.XL,\n isDisabled: not(visibleForConnectionStatus([ConnectionStatus.Disconnected])),\n isVisible: not(visibleForConnectionStatus([ConnectionStatus.ConnectionError]))\n },\n AllowReadingNewMessages: {\n type: FieldType.Switch,\n label: \"\",\n labelStatus: LabelStatus.Hidden,\n defaultValue: false,\n fieldSettings: {\n type: SwitchType.Icons\n }\n },\n IsActive: {\n defaultValue: true\n },\n [BindingContext.localContext(\"DataBoxInfo\")]: {\n type: FieldType.Custom,\n isVisible: visibleForConnectionStatus([ConnectionStatus.Connected, ConnectionStatus.WaitingForConfiguration]),\n render: (args) => {\n return \n {getListItemContents(args.storage.data.entity, true).map((col: IColumnContent, idx) =>\n \n {col.title && {col.title}}\n
    {col.content}
    \n
    )}\n
    ;\n }\n }\n },\n groups: [{\n id: \"dataBoxConnection\",\n rows: [[\n { id: DataBoxEntity.UserName },\n { id: DataBoxEntity.PasswordSetter },\n { id: BindingContext.localContext(\"DataBoxInfo\") }\n ]]\n }]\n };\n\n return {\n form,\n entitySet: EntitySetName.DataBoxes\n };\n};\n\ngetDefinitions.translationFiles = [\"DataBox\", \"Common\"];\nsetDefForTesting(\"DataBoxDef\", getDefinitions);","import { addCompanyIdToUrl } from \"../../contexts/appContext/AppContext.utils\";\nimport { EXPORT_ALL_URL, EXPORT_URL } from \"../../constants\";\nimport { saveFileFromUrl } from \"@utils/FileStorage\";\nimport { ExportRangeCode, ExportResultTypeCode, ExportTypeCode } from \"@odata/GeneratedEnums\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\n\n/**\n * Creates data export from application according to params.\n * @param contextOrCompanyId\n * @param typeCode\n * @param resultTypeCode\n * @param rangeCode\n * @param includeAttachments\n */\nexport function createExport(typeCode: ExportTypeCode, resultTypeCode: ExportResultTypeCode, rangeCode: ExportRangeCode, includeAttachments: boolean, contextOrCompanyId: IAppContext | number): void {\n const queryParams = {\n typeCode, resultTypeCode, rangeCode,\n includeAttachments: includeAttachments.toString()\n };\n const fileUrl = addCompanyIdToUrl(`${EXPORT_URL}?${new URLSearchParams(queryParams)}`, contextOrCompanyId);\n\n saveFileFromUrl(fileUrl);\n}\n\n/**\n * Creates data export from application for All companies, downloads data to one zip file.\n */\nexport function createSingleFileExportOfAllData(): void {\n // ExportResultTypeCode.SingleFile, ExportRangeCode.All, includeAttachments: false\n // todo: do we want to sey the params explicitly?\n saveFileFromUrl(EXPORT_ALL_URL);\n}","import { AttachmentsAdditionalProperties, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { DocumentDeleteLogEntity, EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { Sort, TextAlign } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport DateType, { DisplayFormat } from \"../../types/Date\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n createQuery: false,\n isValueHelp: true,\n defaultFilters: [DocumentDeleteLogEntity.NumberOurs, DocumentDeleteLogEntity.DocumentType, DocumentDeleteLogEntity.DateCreated,\n DocumentDeleteLogEntity.InteractionType],\n filterDefinition: {\n [DocumentDeleteLogEntity.NumberOurs]: {},\n [DocumentDeleteLogEntity.DateCreated]: {\n label: i18next.t(\"Document:DeleteLog.DeleteTime\")\n },\n ...withDisplayName(DocumentDeleteLogEntity.DocumentType),\n ...withDisplayName(DocumentDeleteLogEntity.InteractionType),\n ...withDisplayName(DocumentDeleteLogEntity.LastModifiedBy, {\n label: i18next.t(\"Document:DeleteLog.User\")\n })\n }\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.DocumentDeleteLog}Table`,\n filterBarDef,\n additionalProperties: [{ id: \"DocumentId\" }, ...AttachmentsAdditionalProperties],\n columns: [DocumentDeleteLogEntity.DocumentType, DocumentDeleteLogEntity.NumberOurs, DocumentDeleteLogEntity.DateCreated,\n BindingContext.localContext(\"HoursCreated\"),\n DocumentDeleteLogEntity.InteractionType, DocumentDeleteLogEntity.LastModifiedBy],\n columnDefinition: {\n [DocumentDeleteLogEntity.NumberOurs]: {},\n [DocumentDeleteLogEntity.DocumentType]: {\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: (val: TValue, args: IFormatOptions): string => {\n const type = args.item.DocumentType?.Code;\n if ([DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.ProformaInvoiceIssued].includes(type)) {\n return i18next.t(`Common:DocumentTypeName.${type === DocumentTypeCode.ProformaInvoiceReceived ? \"Received\" : \"Issued\"}DDOPP`).toString();\n }\n\n return val as string;\n }\n },\n [DocumentDeleteLogEntity.DateCreated]: {\n label: i18next.t(\"Document:DeleteLog.DeleteTime\")\n },\n [BindingContext.localContext(\"HoursCreated\")]: {\n label: i18next.t(\"Common:General.DeleteTime\"),\n textAlign: TextAlign.Right,\n fieldSettings: {\n disableSort: true\n },\n formatter: (val: TValue, args: IFormatOptions) => {\n const date = args.item[DocumentDeleteLogEntity.DateCreated];\n return DateType.localFormat(date, DisplayFormat.TimeShort);\n }\n },\n ...withDisplayName(DocumentDeleteLogEntity.LastModifiedBy, {\n label: i18next.t(\"Document:DeleteLog.User\")\n }),\n ...withDisplayName(DocumentDeleteLogEntity.InteractionType)\n },\n title: i18next.t(\"Document:DeleteLog.Title\"),\n initialSortBy: [{ id: DocumentDeleteLogEntity.DateCreated, sort: Sort.Desc }]\n };\n\n\n return {\n entitySet: EntitySetName.DocumentDeleteLogs,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Common\", \"Document\"];\nsetDefByEntityType(EntityTypeName.DocumentDeleteLog, getDefinitions);\n","import styled from \"styled-components/macro\";\nimport { T_HEADER_small } from \"../../global.style\";\nimport WorkDatePicker from \"../../components/workDatePicker\";\n\nexport const StyledTransactionCurrencyAmountText = styled.span`\n ${T_HEADER_small};\n`;\n\nexport const PaymentOrderGrid = styled.div`\n display: grid;\n grid-template-columns: auto auto auto auto;\n row-gap: 12px;\n\n & > div:nth-child(4n + 1) {\n padding-left: 0;\n }\n \n & > div:nth-child(4n + 4) {\n margin-right: 0;\n }\n`;\n\nexport const StatusIconsWrapper = styled.span`\n display: flex;\n align-items: center;\n`;\n\nexport const DocumentHeader = styled.div `\n display: flex;\n`;\n\nexport const WorkDatePickerDocumentStyled = styled(WorkDatePicker)`\n margin-bottom: 18px;\n`;\n\nexport const InlineIconWrapper = styled.span`\n display: inline-block;\n vertical-align: middle;\n margin-right: 7px;\n`;\n\nexport const DocumentNameStyled = styled.span`\n vertical-align: middle;\n`;","import Clickable from \"@components/clickable\";\nimport { ConditionType, createFilterRow } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { getSimpleBoolSelectItems, IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef, TFormTable } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { getEntityTypeFromProp } from \"@odata/Data.utils\";\nimport {\n getDocumentTypeCodeFromEntityType,\n getEntitySetByDocumentType,\n getRouteByDocumentType\n} from \"@odata/EntityTypes\";\nimport {\n ClearingDocumentLinkEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemEntity,\n DocumentLinkTypeEntity,\n DocumentTypeEntity,\n EntitySetName,\n EntityTypeName,\n IAccountEntity,\n IClearingDocumentLinkEntity,\n IDocumentDraftEntity,\n IDocumentEntity,\n IDocumentLinkEntity,\n IDocumentLockEntity,\n IExchangeRateEntity,\n IFiscalPeriodEntity,\n IFiscalYearEntity,\n ILabelSelectionEntity,\n InternalDocumentEntity,\n IOppositeDocumentLinkEntity,\n IProformaInvoiceIssuedEntity,\n IProformaInvoiceReceivedEntity,\n IUndirectedDocumentLinkEntity,\n IVatEntity,\n LabelSelectionEntity,\n ODataEntityMetadata,\n PaymentDocumentEntity,\n UndirectedDocumentLinkEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n CompanyPermissionCode,\n CurrencyCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n LanguageCode,\n LockTypeCode,\n PostedStatusCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { ICreateFilterStringSettings, IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { isAgendaDomesticRule, isEuRuleExceptAgendaDomestic } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { getAgendaCountryCode } from \"@pages/companies/Company.shared.utils\";\nimport {\n getCompanyCurrency,\n hasEverBeenVatRegisteredCompany,\n isAccountAssignmentCompany,\n isCashBasisAccountingCompany,\n isIdentifiedPersonCompany,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { IEntityWithDraft } from \"@utils/DraftUtils\";\nimport { isDefined, isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport memoize from \"@utils/memoize\";\nimport Big from \"big.js\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport {\n AttachmentIndicatorIcon,\n CorrectiveInvoicesIssuedPlainIcon,\n CorrectiveInvoicesReceivedPlainIcon,\n InternalDocumentsPlainIcon,\n InvoicesIssuedPlainIcon,\n InvoicesReceivedPlainIcon,\n IProps as IIconProps,\n OtherLiabilitiesPlainIcon,\n OtherReceivablesPlainIcon,\n ProformaInvoicesIssuedPlainIcon,\n ProformaInvoicesIssuedTaxPlainIcon,\n ProformaInvoicesReceivedPlainIcon,\n ProformaInvoicesReceivedTaxPlainIcon\n} from \"../../components/icon\";\nimport { GET_FILE_NAME_URL, NEW_ITEM_DETAIL, REST_API_URL } from \"../../constants\";\nimport { IAppContext, IBreadcrumb } from \"../../contexts/appContext/AppContext.types\";\nimport { TCompanyPermissions } from \"../../contexts/permissionContext/PermissionContext\";\nimport {\n FieldType,\n IconSize,\n PageViewMode,\n PaneStatus,\n QueryParam,\n Sort,\n Status,\n TextAlign,\n ValueType\n} from \"../../enums\";\nimport { ColoredText, SmallText } from \"../../global.style\";\nimport { TRecordAny, TRecordString, TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport { IFilterQuery } from \"../../model/TableStorage\";\nimport { ValidationMessage } from \"../../model/Validator.types\";\nimport BindingContext, { createBindingContext, createPath, IEntity } from \"../../odata/BindingContext\";\nimport { ROUTE_INTERNAL_DOCUMENT } from \"../../routes\";\nimport { getQueryParameters, removeQueryParam, setQueryParams } from \"../../routes/Routes.utils\";\nimport CurrencyType, { formatCurrency, formatCurrencyVariableDecimals } from \"../../types/Currency\";\nimport DateType, { getUtcDayjs } from \"../../types/Date\";\nimport NumberType, { getScale } from \"../../types/Number\";\nimport customFetch from \"../../utils/customFetch\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ITableRefreshNeeded } from \"../../views/formView/FormView\";\nimport { IChangedFilter } from \"../../views/table/TableView.utils\";\nimport { VatRuleTranslationFiles } from \"../admin/vatRules/VatRules.consts\";\nimport { getFiscalYearByDate, getFiscalYears, isInFYorPeriod } from \"../fiscalYear/FiscalYear.utils\";\nimport { getPageViewMode } from \"../PageUtils\";\nimport { DocumentStatusLocalPath, getStatusFilterId, StatusCodeEnumTranslations } from \"../reports/CommonDefs\";\nimport { GET_EXCHANGE_RATE_URL } from \"../reports/exchangeRates/ExchangeRate.utils\";\nimport { DocumentNameStyled, InlineIconWrapper } from \"./Document.style\";\n\nexport interface ILineItemValues {\n Quantity: number;\n TransactionUnitPrice?: number;\n TransactionUnitPriceVat?: number;\n TransactionUnitPriceNet?: number;\n TransactionAmount?: number;\n TransactionAmountNet?: number;\n TransactionAmountVat?: number;\n Vat: number;\n}\n\nexport const DRAFT_ITEM_ID_PATH = \"##DraftItemId##\";\n\nexport const DefaultDueDays = 14;\n\nexport const PAYMENT_ORDER_ACTION = \"PaymentOrder\";\nexport const DOC_DRAFT_MASS_ACCOUNTING = \"DocumentMassAccounting\";\nexport const ATTACHMENTS_COLUMN_LOCAL_CONTEXT = BindingContext.localContext(\"Attachments\");\nexport const VAT_ASSIGNMENT_GROUP_ID = \"Vats\";\nexport const DOCUMENT_CLEARING_FORM_TAB_ID = \"Clearing\";\nexport const FORCE_VAT_LOCK_OVERRIDE_PARAM = \"forceVatLockOverride\";\nexport const FORCE_VAT_LOCK_OVERRIDE_DATE_PARAM = \"forceVatLockOverrideDate\";\n\nexport const metadataRuleTypes: (keyof ODataEntityMetadata[\"metadata\"])[] = [\"EnabledPropertyRules\", \"DisabledPropertyRules\"];\n\nexport const lineItemsTriggerProps = [\n \"Quantity\", \"Vat\", \"UnitPrice\", \"UnitPriceVat\", \"UnitPriceNet\",\n \"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\"\n];\n\nexport enum MetadataLockType {\n UpdatingLockedRecord = \"UpdatingLockedRecord\",\n CannotEditClearedDocument = \"CannotEditClearedDocument\",\n DocumentCannotBeUpdatedHasCorrection = \"DocumentCannotBeUpdatedHasCorrection\",\n UpdatingRecordWithElectronicSubmission = \"UpdatingRecordWithElectronicSubmission\",\n DocumentCannotBeUpdatedInClosedFiscalYear = \"DocumentCannotBeUpdatedInClosedFiscalYear\",\n DocumentWithAssetCannotBeModified = \"DocumentWithAssetCannotBeModified\",\n InternalDocumentCanBeEditedOnlyByInternalFeatureProcessing = \"InternalDocumentCanBeEditedOnlyByInternalFeatureProcessing\",\n PostedBankTransactionInClosedYearCannotBeModified = \"PostedBankTransactionInClosedYearCannotBeModified\",\n CashReceiptInClosedYearCannotBeModified = \"CashReceiptInClosedYearCannotBeModified\",\n CannotEditLinkedDocument = \"CannotEditLinkedDocument\",\n CannotEditLinkedProforma = \"CannotEditLinkedProforma\"\n}\n\nexport function hasMetadataRule(storage: FormStorage, lockType: MetadataLockType): boolean {\n for (const ruleType of metadataRuleTypes) {\n for (const rules of Object.values(storage?.data?.metadata?.metadata?.[ruleType] ?? {})) {\n for (const rule of rules) {\n if (rule.ErrorCode === lockType) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\nconst getPriceNetFromPrice = (price: number, vatRate: number) => {\n return price / (1 + vatRate);\n};\n\nfunction getDocumentItemCurrency(storage: Model): CurrencyCode {\n return storage?.data.entity?.TransactionCurrency?.Code ?? getCompanyCurrency(storage.context);\n}\n\nexport function readOnlyCurrencyItemFormatter(value: TValue, args: IFormatOptions): string {\n if (args.readonly) {\n return formatCurrency(value as number, getDocumentItemCurrency(args.storage));\n }\n const { minorUnit } = getScale(args.bindingContext, args.storage);\n return NumberType.format(value as number, { minimumFractionDigits: minorUnit });\n}\n\nexport function getCurrencyUnit(args: IGetValueArgs): string {\n return CurrencyType.getCurrencyUnit(getDocumentItemCurrency(args.storage));\n}\n\nfunction roundVatToDecimalPlaces(places = 1, number: number) {\n // VAT has special rounding, we want something like Math.ceil, but with float, so we have to change rounding mode for negative numbers\n // -0.015 => -0.01 but -0.016 => -0.02\n const x = Big(number);\n if (x.gt(0)) {\n return roundToDecimalPlaces(places, number);\n }\n\n return new Big(roundToDecimalPlaces(places, x.plus(1).toNumber())).minus(1).toNumber();\n}\n\nexport const calcLineItemValues = (values: ILineItemValues, changedValue: string, lastChangedValue: string, decimalPlaces: number): ILineItemValues => {\n const roundToCurrencyDecimalPlaces = roundToDecimalPlaces.bind(null, decimalPlaces);\n const zeroVatRate = values.Vat / 100;\n const newValues: ILineItemValues = { ...values };\n\n if (!lastChangedValue) {\n lastChangedValue = \"TransactionAmountNet\";\n }\n\n if (newValues.Quantity === 0 && changedValue !== \"Quantity\") {\n newValues.Quantity = 1;\n }\n\n const supportedProps = [\"TransactionUnitPrice\", \"TransactionUnitPriceVat\", \"TransactionUnitPriceNet\", \"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\"];\n const calcFromProp = (supportedProps.includes(changedValue) ? changedValue : lastChangedValue) as keyof ILineItemValues;\n\n if (newValues[calcFromProp] === undefined || newValues[calcFromProp] === null || typeof newValues[calcFromProp] !== \"number\") {\n return values;\n }\n\n switch (calcFromProp) {\n case \"TransactionUnitPrice\":\n newValues.TransactionAmountNet = getPriceNetFromPrice(newValues.Quantity * newValues.TransactionUnitPrice, zeroVatRate);\n break;\n case \"TransactionUnitPriceVat\":\n newValues.TransactionAmountVat = roundVatToDecimalPlaces(decimalPlaces, newValues.Quantity * newValues.TransactionUnitPriceVat);\n break;\n case \"TransactionUnitPriceNet\":\n newValues.TransactionAmountNet = newValues.TransactionUnitPriceNet * newValues.Quantity;\n break;\n case \"TransactionAmount\":\n newValues.TransactionAmountNet = getPriceNetFromPrice(newValues.TransactionAmount, zeroVatRate);\n break;\n case \"TransactionAmountVat\":\n case \"TransactionAmountNet\":\n default:\n break;\n }\n\n if (isNaN(newValues.TransactionAmountNet)) {\n newValues.TransactionAmountNet = 0;\n }\n\n if ([\"TransactionUnitPriceVat\", \"TransactionAmountVat\"].includes(changedValue)) {\n // don't calculate the Vat, it was set by the user. Just round the value if needed\n newValues.TransactionAmountVat = roundVatToDecimalPlaces(decimalPlaces, newValues.TransactionAmountVat);\n } else {\n newValues.TransactionAmountVat = roundVatToDecimalPlaces(decimalPlaces, zeroVatRate * newValues.TransactionAmountNet);\n }\n newValues.TransactionAmountNet = roundToCurrencyDecimalPlaces(newValues.TransactionAmountNet);\n newValues.TransactionAmount = roundToCurrencyDecimalPlaces(newValues.TransactionAmountNet + newValues.TransactionAmountVat);\n\n // use 4 places for unit price to have it same as it is on BE.\n newValues.TransactionUnitPrice = roundToCurrencyDecimalPlaces(newValues.TransactionAmount / newValues.Quantity);\n newValues.TransactionUnitPriceNet = roundToCurrencyDecimalPlaces(newValues.TransactionAmountNet / newValues.Quantity);\n newValues.TransactionUnitPriceVat = roundVatToDecimalPlaces(decimalPlaces, newValues.TransactionAmountVat / newValues.Quantity);\n\n return newValues;\n};\n\nexport const tWithFallback = (namespace: string, key: string, fallbackNS: string): string => {\n return i18next.t([`${namespace}:${key}`, `${fallbackNS}:${key}`]);\n};\n\nexport const getFormDefGroup = (def: IFormDef, id: string): IFormGroupDef => {\n return def.groups.find(group => group.id === id);\n};\n\nexport const getFiscalDataCorrespondingToDateAccountingTransaction = (storage: StorageModel, dateTransaction?: Date | Dayjs): {\n fiscalYear: IFiscalYearEntity,\n fiscalPeriod: IFiscalPeriodEntity\n} => {\n const dateAccountingTransaction = dateTransaction ?? storage.data.entity.DateAccountingTransaction;\n let fiscalPeriod: IFiscalPeriodEntity;\n let fiscalYear: IFiscalYearEntity;\n\n if (dateAccountingTransaction) {\n fiscalYear = getFiscalYearByDate(storage.context, dateAccountingTransaction);\n const searchDay = dateAccountingTransaction;\n fiscalPeriod = fiscalYear?.Periods.find(period => isInFYorPeriod(period, searchDay));\n }\n\n return {\n fiscalYear,\n fiscalPeriod\n };\n};\n\n/** Matching accounts have same Name and Number */\nexport const isMatchingAccount = (acc1: IAccountEntity, acc2: IAccountEntity, compareByNumberOnly = false): boolean => {\n return acc1 && acc2 && acc1.Number?.toString() === acc2.Number?.toString() && (compareByNumberOnly || acc1.Name === acc2.Name);\n};\n\ninterface IGetInvoicePdfUrl {\n documentType: EntityTypeName;\n entityId: number;\n companyId: string;\n isForPrint?: boolean;\n language: LanguageCode;\n}\n\n// we need companyId because pdfs are retrieved without customFetch\nexport const getInvoicePdfUrl = (args: IGetInvoicePdfUrl): string => {\n return `${REST_API_URL}/${args.documentType}PdfExport/${args.entityId}/${(!!args.isForPrint).toString()}${args.language ? `/${args.language}` : \"\"}?CompanyId=${args.companyId}`;\n};\n\nexport const getSummaryAmount = (amountName?: string): ISummaryItem => {\n return {\n id: amountName ?? \"TransactionAmount\",\n label: i18next.t(\"Document:Form.Amount\"),\n updateFromLiveValue: true,\n formatter: (val: TValue, args: IFormatOptions) => {\n if (isDefined(val)) {\n const currency = args.entity?.TransactionCurrency?.Code ?? args.entity?.TransactionCurrencyCode;\n return formatCurrencyVariableDecimals(val, currency);\n }\n\n return null;\n },\n colorFormatter: (val: TValue) => {\n return (val as number) > 0 ? \"C_SEM_el_good\" : \"\";\n }\n };\n};\n\nexport const documentTableAmountFormatter = (entity: IEntity, context: IAppContext, amountSuffix = \"\"): TCellValue => {\n if (entity[`Amount${amountSuffix}`] === null) {\n return null;\n }\n const currencyCode = entity.CurrencyCode ?? getCompanyCurrency(context);\n const formattedAmount = formatCurrency(entity[`Amount${amountSuffix}`] || 0, currencyCode);\n\n if (entity.TransactionCurrencyCode && entity.TransactionCurrencyCode !== currencyCode) {\n const formattedTransactionAmount = formatCurrency(entity[`TransactionAmount${amountSuffix}`] || 0, entity.TransactionCurrencyCode);\n\n return {\n value: <>{formattedAmount} | {formattedTransactionAmount},\n tooltip: `${formattedAmount} | ${formattedTransactionAmount}`\n };\n }\n return formattedAmount;\n};\n\ninterface IGetAccountJournalTable {\n hasDocItem: boolean;\n isPaymentDocument?: boolean;\n}\n\nexport const getAccountJournalTable = ({ hasDocItem, isPaymentDocument }: IGetAccountJournalTable): TFormTable => {\n const columns: IFieldDef[] = [\n { id: \"DateAccountingTransaction\" },\n { id: \"Description\" },\n {\n id: \"Amount\",\n formatter: (val, args) => documentTableAmountFormatter(args.entity, args.context),\n additionalProperties: [\n { id: \"TransactionAmount\" }, { id: \"TransactionCurrency\" }\n ]\n },\n {\n id: \"DebitAccount\",\n fieldSettings: {\n displayName: \"Number\"\n }\n },\n {\n id: \"CreditAccount\",\n fieldSettings: {\n displayName: \"Number\"\n }\n }\n ];\n\n if (hasDocItem) {\n columns.unshift({\n id: \"DocumentItem/Order\",\n // we want the label to refer to line items\n label: i18next.t(\"Document:FormTab.Item\")\n });\n }\n\n return {\n id: `accountingJournal`,\n entitySet: EntitySetName.JournalEntries,\n // journal entry is to either Document type or PaymentDocument type\n parentKey: isPaymentDocument ? \"PaymentDocument/Id\" : \"Document/Id\",\n initialSortBy: [\n hasDocItem ?\n { id: \"DocumentItem/Order\", sort: Sort.Asc } :\n { id: \"DateAccountingTransaction\", sort: Sort.Asc }\n ],\n columns: columns\n };\n};\n\nexport function enhancedDocumentTypeWithDDOPP(entity: IEntity, fallback: string): string {\n const type = entity.DocumentTypeCode as DocumentTypeCode;\n const isDDOPP = entity.IsTaxDocument;\n if ([DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.ProformaInvoiceIssued].includes(type) && isDDOPP) {\n return i18next.t(`Common:DocumentTypeName.${type === DocumentTypeCode.ProformaInvoiceReceived ? \"Received\" : \"Issued\"}DDOPP`).toString();\n }\n return fallback;\n}\n\ninterface IGetDocumentPairedTable {\n selectQuery: string;\n addAmountColumn?: boolean;\n addTransactionAmountColumn?: boolean;\n entitySet?: EntitySetName;\n isCbaCompany: boolean;\n}\n\nexport const getDocumentPairedTable = (options: IGetDocumentPairedTable): TFormTable => {\n const dateProp = options.isCbaCompany ? UndirectedDocumentLinkEntity.DateCbaPayment : UndirectedDocumentLinkEntity.DateAccountingTransaction;\n const pairedDocumentDateProp = options.isCbaCompany ? DocumentEntity.DateCbaDocument : DocumentEntity.DateAccountingTransaction;\n const tableDef: TFormTable = {\n id: `pairedDocuments`,\n entitySet: options.entitySet ?? EntitySetName.UndirectedDocumentLinks,\n parentKey: \"Document/Id\",\n filter: (args: IGetValueArgs) => {\n return `Document/Id eq ${args.storage.data.bindingContext.getKey()} AND (${options.selectQuery})`;\n },\n initialSortBy: [\n { id: dateProp, sort: Sort.Asc }\n ],\n columns: [\n { id: dateProp },\n {\n id: \"PairedDocument/DocumentType\",\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Document:PairedDocuments.DocumentType\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n const { PairedDocument } = args.entity;\n return enhancedDocumentTypeWithDDOPP({\n ...PairedDocument,\n IsTaxDocument: args.entity?.PairedDocumentIsTaxDocument\n }, val as string);\n },\n additionalProperties: [\n { id: `/${UndirectedDocumentLinkEntity.PairedDocumentIsTaxDocument}` },\n { id: `/${UndirectedDocumentLinkEntity.PairedDocument}/${pairedDocumentDateProp}` }\n ]\n },\n {\n id: \"PairedDocument\",\n fieldSettings: {\n displayName: \"NumberOurs\"\n },\n label: i18next.t(\"Document:PairedDocuments.Document\")\n }\n ]\n };\n\n if (options.addAmountColumn) {\n tableDef.columns.push(\n {\n id: \"Amount\",\n formatter: (val, args) => documentTableAmountFormatter(args.entity, args.context),\n additionalProperties: [\n { id: \"TransactionAmount\" }, { id: \"TransactionCurrency\" }\n ]\n }\n );\n }\n\n if (options.addTransactionAmountColumn) {\n tableDef.columns.push(\n {\n id: \"TransactionAmount\"\n }\n );\n }\n\n tableDef.columns.push({\n id: \"Type\",\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Document:PairedDocuments.Type\")\n });\n\n return tableDef;\n};\n\nexport const CLEARING_DOCUMENTS_TABLE_ID = \"clearingDocuments\";\n\nexport const getDocumentClearingTableDef = (selectQuery?: string): TFormTable => {\n return {\n id: CLEARING_DOCUMENTS_TABLE_ID,\n entitySet: EntitySetName.ClearingDocumentLinks,\n parentKey: `${ClearingDocumentLinkEntity.Document}/${DocumentEntity.Id}`,\n filter: (args: IGetValueArgs) => {\n const queries = [`${ClearingDocumentLinkEntity.Document}/${DocumentEntity.Id} eq ${args.storage.data.bindingContext.getKey()}`];\n if (selectQuery) {\n queries.push(selectQuery);\n }\n return queries.join(\" AND \");\n },\n initialSortBy: [\n { id: ClearingDocumentLinkEntity.DateClearing, sort: Sort.Asc }\n ],\n columns: [\n { id: ClearingDocumentLinkEntity.DateClearing },\n {\n id: `${ClearingDocumentLinkEntity.PairedDocument}/${DocumentEntity.DocumentType}`,\n fieldSettings: {\n displayName: DocumentTypeEntity.Name\n },\n additionalProperties: [\n { id: `/${ClearingDocumentLinkEntity.PairedDocumentIsTaxDocument}` },\n { id: `/${createPath(ClearingDocumentLinkEntity.PairedPaymentDocument, PaymentDocumentEntity.DocumentType, DocumentTypeEntity.Name)}` },\n { id: `/${createPath(ClearingDocumentLinkEntity.PairedPaymentDocument, PaymentDocumentEntity.NumberOurs)}` },\n { id: `/${createPath(ClearingDocumentLinkEntity.PairedDocument, DocumentEntity.DateAccountingTransaction)}` }\n ],\n formatter: (val: TValue, args: IFormatOptions) => {\n const { PairedDocument, PairedPaymentDocument } = args.entity;\n const entity = PairedDocument && !isObjectEmpty(PairedDocument) ? PairedDocument : PairedPaymentDocument;\n const fallback = entity?.DocumentType?.Name;\n return enhancedDocumentTypeWithDDOPP({\n ...entity,\n IsTaxDocument: args.entity?.PairedDocumentIsTaxDocument\n }, fallback);\n },\n label: i18next.t(\"Document:PairedDocuments.DocumentType\")\n },\n {\n id: ClearingDocumentLinkEntity.PairedDocument,\n fieldSettings: {\n displayName: DocumentEntity.NumberOurs\n },\n additionalProperties: [\n { id: `/${createPath(ClearingDocumentLinkEntity.PairedPaymentDocument, PaymentDocumentEntity.NumberOurs)}` }\n ],\n // todo convince BE to create view that will merge back Document and PaymentDocument\n // => if that happens, remove this formatter and additionalProperties\n formatter: (val, args: IFormatOptions) => {\n // value can be either PairedDocument or PairedPaymentDocument\n const entity = args.entity as unknown as IClearingDocumentLinkEntity;\n const pairedDocument = isObjectEmpty(entity.PairedDocument) ? entity.PairedPaymentDocument : entity.PairedDocument;\n const numberOurs = pairedDocument.NumberOurs;\n\n return getTableIntentLink(numberOurs as string, {\n route: `${getRouteByDocumentType(pairedDocument.DocumentType.Code as DocumentTypeCode)}/${pairedDocument.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n\n },\n label: i18next.t(\"Document:PairedDocuments.Document\")\n },\n { id: ClearingDocumentLinkEntity.TransactionAmount },\n {\n id: ClearingDocumentLinkEntity.Type,\n fieldSettings: {\n displayName: DocumentLinkTypeEntity.Name\n },\n label: i18next.t(\"Document:PairedDocuments.Type\")\n }\n ]\n };\n};\n\ninterface IGetAutomatedVatInclusionTableOptions {\n isCbaCompany: boolean;\n}\n\nexport const getAutomatedVatInclusionTable = (opts: IGetAutomatedVatInclusionTableOptions): TFormTable => {\n\n const DateColumn = opts.isCbaCompany ? InternalDocumentEntity.DateCbaDocument : InternalDocumentEntity.DateAccountingTransaction;\n\n const tableDef = {\n id: `automatedVatInclusionTable`,\n entitySet: EntitySetName.InternalDocuments,\n filter: (args: IGetValueArgs) => {\n return `DocumentLinks/any(x: x/TargetDocument/id eq ${args.storage.data.bindingContext.getKey()} AND x/TypeCode in (${transformToODataString([DocumentLinkTypeCode.AutomatedVATInclusionInputVAT, DocumentLinkTypeCode.AutomatedVATInclusionOutputVAT], ValueType.String)}))`;\n },\n initialSortBy: [\n { id: DateColumn, sort: Sort.Asc }\n ],\n columns: [\n { id: DateColumn },\n {\n id: InternalDocumentEntity.DocumentType,\n fieldSettings: {\n displayName: DocumentTypeEntity.Name\n },\n label: i18next.t(\"Document:PairedDocuments.DocumentType\")\n },\n {\n id: InternalDocumentEntity.NumberOurs,\n label: i18next.t(\"Document:PairedDocuments.Document\"),\n formatter: (val: TValue, args: IFormatOptions): TCellValue => {\n return getTableIntentLink(val as string, {\n route: `${ROUTE_INTERNAL_DOCUMENT}/${args.entity.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n }\n },\n { id: InternalDocumentEntity.Amount },\n { id: InternalDocumentEntity.Explanation }\n ]\n };\n\n return tableDef;\n};\n\nexport const anyPathEquals = (bindingContext: BindingContext, paths: string[], basePath: string): boolean => {\n let anyEquals = false;\n const bcFullPath = bindingContext.getFullPath(true);\n\n for (const path of paths) {\n const fullPath = basePath ? `${basePath}/${path}` : path;\n\n if (fullPath === bcFullPath) {\n anyEquals = true;\n break;\n }\n }\n\n return anyEquals;\n};\n\nexport const hasPermissionForDocument = (code: DocumentTypeCode, permissions: TCompanyPermissions): boolean => {\n if (code === DocumentTypeCode.BankTransaction) {\n return permissions.has(CompanyPermissionCode.Bank);\n } else if ([DocumentTypeCode.CashReceiptIssued, DocumentTypeCode.CashReceiptReceived].includes(code)) {\n return permissions.has(CompanyPermissionCode.CashBox);\n } else if (code === DocumentTypeCode.InternalDocument) {\n return permissions.has(CompanyPermissionCode.InternalAndCorrectiveDocuments);\n } else if (code === DocumentTypeCode.OtherLiability) {\n return permissions.has(CompanyPermissionCode.Reports);\n } else if (ReceivedDocumentTypes.includes(code)) {\n return permissions.has(CompanyPermissionCode.InvoicesReceived);\n } else if (IssuedDocumentTypes.includes(code)) {\n return permissions.has(CompanyPermissionCode.InvoicesIssued);\n }\n return true;\n};\n\nexport function getIconForDocument(entityTypeName: EntityTypeName, isTaxDocument?: boolean): React.ComponentType {\n if (isTaxDocument) {\n switch (entityTypeName) {\n case EntityTypeName.ProformaInvoiceReceived:\n return ProformaInvoicesReceivedTaxPlainIcon;\n case EntityTypeName.ProformaInvoiceIssued:\n return ProformaInvoicesIssuedTaxPlainIcon;\n }\n }\n switch (entityTypeName) {\n case EntityTypeName.InvoiceIssued:\n return InvoicesIssuedPlainIcon;\n case EntityTypeName.InvoiceReceived:\n return InvoicesReceivedPlainIcon;\n case EntityTypeName.OtherLiability:\n return OtherLiabilitiesPlainIcon;\n case EntityTypeName.OtherReceivable:\n return OtherReceivablesPlainIcon;\n case EntityTypeName.CorrectiveInvoiceIssued:\n return CorrectiveInvoicesIssuedPlainIcon;\n case EntityTypeName.CorrectiveInvoiceReceived:\n return CorrectiveInvoicesReceivedPlainIcon;\n case EntityTypeName.ProformaInvoiceReceived:\n return ProformaInvoicesReceivedPlainIcon;\n case EntityTypeName.ProformaInvoiceIssued:\n return ProformaInvoicesIssuedPlainIcon;\n case EntityTypeName.InternalDocument:\n return InternalDocumentsPlainIcon;\n case EntityTypeName.BankTransaction:\n return InternalDocumentsPlainIcon;\n }\n return null;\n}\n\nexport const hasPermissionForDocumentEntityType = (entity: EntityTypeName, companyPermissions: TCompanyPermissions): boolean => {\n return hasPermissionForDocument(getDocumentTypeCodeFromEntityType(entity), companyPermissions);\n};\n\nexport const hasCorrectiveDocument = (storage: FormStorage): boolean => {\n return (storage.data.entity.OppositeDocumentLinks ?? []).some((docLink: IOppositeDocumentLinkEntity) => {\n return correctiveDocumentLinkTypes.includes(docLink.TypeCode as DocumentLinkTypeCode);\n });\n};\n\nexport const loadExchangeRate = async (storage: Model, currencyCode: string, date: Date): Promise => {\n if (currencyCode === getCompanyCurrency(storage.context)) {\n return 1;\n }\n const res = await customFetch(`${GET_EXCHANGE_RATE_URL}/${formatDateToDateString(date)}/${currencyCode}`);\n const exchangeRate = (await res.json()) as IExchangeRateEntity;\n\n return exchangeRate.ExchangeRatePerUnit;\n};\n\nexport const getExchangeRate = async (storage: FormStorage, dateProp = \"DateAccountingTransaction\"): Promise => {\n const dateIssued = storage.data.entity[dateProp];\n const code = storage.data.entity.TransactionCurrency?.Code;\n return await loadExchangeRate(storage, code, dateIssued);\n};\n\nexport const refreshExchangeRateWithoutDefault = async (storage: FormStorage, currencyCode: string, date: Date): Promise => {\n let rate = null;\n if (currencyCode && date && currencyCode !== getCompanyCurrency(storage.context)) {\n rate = await loadExchangeRate(storage, currencyCode, date);\n }\n\n storage.clearAndSetValueByPath(\"ExchangeRatePerUnit\", rate);\n storage.refreshFields();\n};\n\nexport const refreshExchangeRate = async (storage: FormStorage, currencyCode?: string, datePropPath?: string): Promise => {\n const date = storage.getValueByPath(datePropPath ?? \"DateAccountingTransaction\");\n const dateIssued = date ?? getUtcDayjs();\n const code = currencyCode ?? storage.data.entity.TransactionCurrency?.Code;\n\n let rate: number = code === getCompanyCurrency(storage.context) ? 1 : null;\n\n if (code && dateIssued && code !== getCompanyCurrency(storage.context)) {\n rate = await loadExchangeRate(storage, code, dateIssued);\n }\n\n storage.clearAndSetValueByPath(\"ExchangeRatePerUnit\", rate);\n storage.refreshFields();\n};\n\n\nexport const getLocks = (storage: FormStorage): IDocumentLockEntity[] => {\n return storage.data.entity[storage.data.definition.lockProperty] as IDocumentLockEntity[];\n};\n\nexport const isFormLocked = (storage: FormStorage): boolean => {\n const locks = getLocks(storage);\n\n return locks && locks.length > 0 && !!locks.find(lock => lock.Type?.Code === LockTypeCode.User);\n};\n\nexport function isDocumentLocked(args: IGetValueArgs): boolean {\n return isFormLocked(args.storage as FormStorage);\n}\n\nexport const isDocumentNotCleared = (args: IGetValueArgs): boolean => {\n const document = args.storage.getEntity();\n\n\n return document.ClearedStatusCode === ClearedStatusCode.NotCleared;\n};\n\ninterface IChangeLogsArgs {\n storage: FormStorage;\n onBeforeSave: () => void;\n onSaveFail: () => void;\n onAfterSave: (refresh: boolean, preventTableViewRefresh?: boolean) => void;\n onTableRefreshNeeded: (args?: ITableRefreshNeeded) => void;\n title: string;\n context: IAppContext;\n}\n\nexport const changeLock = async (args: IChangeLogsArgs): Promise => {\n const storage = args.storage;\n args.onBeforeSave();\n\n let lock;\n const isDocumentLocked = isFormLocked(storage);\n\n try {\n if (isDocumentLocked) {\n const locks = getLocks(storage);\n const userLock = locks.find(lock => lock.Type?.Code === LockTypeCode.User);\n const queryable = storage.oData.fromPath(storage.data.bindingContext.navigate(storage.data.definition.lockProperty).addKey(userLock.Id).toString());\n await queryable.delete(null);\n lock = null;\n } else {\n const queryable = storage.oData.fromPath(storage.data.bindingContext.navigate(storage.data.definition.lockProperty).toString());\n const res = await queryable.create({\n TypeCode: LockTypeCode.User\n });\n lock = (res as ODataQueryResult).value;\n }\n\n storage.data.entity[storage.data.definition.lockProperty] = lock ? [lock] : [];\n storage.data.locked = !!lock;\n args.onAfterSave(storage.data.bindingContext.isNew());\n\n await storage.reload();\n } catch (error) {\n const alert = getAlertFromError(error);\n alert.title = storage.t(`Document:Error.${isDocumentLocked ? \"UnlockingFailed\" : \"LockingFailed\"}`);\n storage.setFormAlert(alert);\n args.onSaveFail?.();\n }\n\n storage.refresh();\n};\n\nexport const setLockBreadcrumbs = (args: IChangeLogsArgs): void => {\n const title = args.storage.data.definition.getItemBreadCrumbText(args.storage);\n const isCbaCompany = isCashBasisAccountingCompany(args.storage.context);\n\n const breadCrumbs: IBreadcrumb = {\n items: [{\n key: \"selectedDocument\",\n link: null,\n title\n }],\n lockable: () => {\n return getPageViewMode() !== PageViewMode.FormReadOnly;\n },\n isLockDisabled: () => {\n return args.storage.data.disabled;\n },\n lockAlert: {\n alert: () => {\n const isNew = args.storage.data.bindingContext.isNew();\n if (isNew || args.storage.isDirty()) {\n return {\n status: Status.Warning,\n title: args.storage.t(\"Document:Error.WarningFormNotSaved\"),\n isSmall: true\n };\n }\n\n return null;\n },\n popperOptions: {\n placement: \"right\"\n }\n },\n onLockClick: (event: React.MouseEvent) => {\n const isDirty = args.storage.isDirty();\n if (args.storage.data.bindingContext.isNew() || isDirty) {\n args.storage.refresh();\n return;\n }\n changeLock(args);\n }\n };\n\n args.context.setViewBreadcrumbs(breadCrumbs);\n args.storage.data.locked = isFormLocked(args.storage);\n};\n\n\n// Note: OtherReceivable is actually Issued document type!\nexport const ReceivedDocumentTypes = [DocumentTypeCode.InvoiceReceived, DocumentTypeCode.OtherLiability,\n DocumentTypeCode.CorrectiveInvoiceReceived, DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.BankTransaction, DocumentTypeCode.CashReceiptReceived];\nexport const IssuedDocumentTypes = [DocumentTypeCode.InvoiceIssued, DocumentTypeCode.OtherReceivable,\n DocumentTypeCode.CorrectiveInvoiceIssued, DocumentTypeCode.ProformaInvoiceIssued, DocumentTypeCode.CashReceiptIssued];\nexport const ProformaDocumentTypes = [DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.ProformaInvoiceIssued];\nexport const commonDocumentTranslations = [\n \"Document\", \"Enums\", \"NumberRange\", \"Common\", \"Components\", \"Error\",\n ...VatRuleTranslationFiles, \"Banks\", \"Proforma\", \"Categories\",\n getEnumNameSpaceName(EntityTypeName.CbaCategoryTaxImpact),\n ...StatusCodeEnumTranslations\n];\nexport const correctiveDocumentLinkTypes = [DocumentLinkTypeCode.CorrectiveWithClearing, DocumentLinkTypeCode.CorrectiveWithoutClearing];\n\nexport const isDocumentType = (bc: BindingContext): boolean => {\n return !!bc.getEntityType()?.hasParentWithBaseType(EntityTypeName.Document);\n};\n\nexport const isDocumentItemType = (bc: BindingContext): boolean => {\n return !!bc.getEntityType()?.hasParentWithBaseType(EntityTypeName.DocumentItem);\n};\n\n\nexport const isReceived = (type: DocumentTypeCode): boolean => {\n return ReceivedDocumentTypes.includes(type);\n};\n\nexport const isIssued = (type: DocumentTypeCode): boolean => {\n return IssuedDocumentTypes.includes(type);\n};\n\nexport const isProforma = (type: DocumentTypeCode): boolean => {\n return ProformaDocumentTypes.includes(type);\n};\n\nexport function isReceivedBc(bindingContext: BindingContext): boolean {\n const entityTypeName = bindingContext.getEntityType().getName();\n const docType = getDocumentTypeCodeFromEntityType(entityTypeName as EntityTypeName);\n return isReceived(docType);\n}\n\nexport function isIssuedBc(bindingContext: BindingContext): boolean {\n const entityTypeName = bindingContext.getEntityType().getName();\n const docType = getDocumentTypeCodeFromEntityType(entityTypeName as EntityTypeName);\n return isIssued(docType);\n}\n\nexport function isProformaBc(bindingContext: BindingContext): boolean {\n const entityTypeName = bindingContext.getEntityType().getName();\n const docType = getDocumentTypeCodeFromEntityType(entityTypeName as EntityTypeName);\n return ProformaDocumentTypes.includes(docType);\n}\n\nexport const isDocumentWithDraft = (document: IEntityWithDraft, draftProperty: string): boolean => {\n if (!document || !draftProperty) {\n return false;\n }\n const draft = document[draftProperty as keyof IEntityWithDraft] as IEntity;\n return !!draft?.Id || !!draft?.[BindingContext.NEW_ENTITY_ID_PROP];\n};\n\nexport const isSavedDocument = (args: IGetValueArgs): boolean => !args.storage.data.bindingContext.isNew();\n\nexport const draftInfoFormatter: TFormatterFn = (val, args) => {\n const entity = args.entity as IDocumentDraftEntity;\n let afterContent = null;\n if (entity.CountByDocumentTypeCodeAndNumberOurs > 1) {\n afterContent = {i18next.t(\"Document:General.Duplicity\")};\n }\n return {\n value: {DateType.localFormat(entity.DateLastModified)}  {entity.LastModifiedBy?.Name},\n tooltip: entity.LastModifiedBy?.Name,\n afterContent\n };\n};\n\nexport const draftNumberOursFormatter = (draftEntitySet: EntitySetName, draftProp: string): TFormatterFn => {\n return (val, args) => {\n const strValue = val?.toString() ?? \"\";\n return {\n value: strValue,\n tooltip: strValue,\n afterContent: !args.entity[draftProp]?.Id ? null :\n ({i18next.t(\"Document:General.UnsavedChanges\")})\n };\n };\n};\n\nexport const loadVats = memoize(async (context: IAppContext, storage: FormStorage): Promise => {\n const vats = context.getData().custom?.Vats;\n if (!vats) {\n const filter = `CountryCode eq '${getAgendaCountryCode(context)}'`;\n\n const vats = await storage.oData.getEntitySetWrapper(EntitySetName.Vats).query()\n .orderBy(\"Rate\")\n .filter(filter)\n .fetchData();\n\n context.setCustomData({\n Vats: vats.value\n });\n\n return vats.value;\n }\n\n return vats;\n}, (context) => `loadVats::${getAgendaCountryCode(context)}`);\n\nexport interface IGetExportFileNameProps {\n isFull?: string;\n queryParams: TRecordString;\n}\n\n/**\n * Returns filename of exported document / report, so it's same as it is on BE\n * // GET api/rest/FileName/document/{document.Id}\n * // GET api/rest/FileName/report/{reportTypeCode}/{companyId}/{inBasicview?}\n * @param context\n * @param type\n * @param identifier\n * @param opts\n */\nexport async function getDocumentExportFileName(context: IAppContext, type: \"document\" | \"report\", identifier: string, opts?: IGetExportFileNameProps): Promise {\n const params: string[] = [identifier];\n if (type === \"report\") {\n params.push(context.getCompanyId().toString());\n if (isDefined(opts?.isFull)) {\n params.push(opts.isFull);\n }\n }\n let query = \"\";\n if (isDefined(opts?.queryParams)) {\n query = \"?\" + Object.entries(opts.queryParams).map(([key, value]) => `${key}=${value}`).join(\"&\");\n }\n const url = `${GET_FILE_NAME_URL}/${type}/${params.join(\"/\")}${query}`;\n const response = await customFetch(url, { method: \"GET\" });\n\n if (response.ok) {\n return await response.text();\n }\n return null;\n}\n\nexport const setNotPostedStatusFilter = (storage: TSmartODataTableStorage): void => {\n if (isAccountAssignmentCompany(storage.context)) {\n storage.setFilterValueByPath(DocumentStatusLocalPath, [\n createFilterRow({\n type: ConditionType.Excluded,\n value: [getStatusFilterId(EntityTypeName.PostedStatus, PostedStatusCode.NotPosted)]\n })\n ]);\n }\n};\n\nexport const SortedPaymentDocuments = [\n EntityTypeName.BankTransaction,\n EntityTypeName.CashReceiptReceived,\n EntityTypeName.CashReceiptIssued\n];\n\nexport const SortedDocumentEntityTypeNames = [\n EntityTypeName.InvoiceReceived,\n EntityTypeName.InvoiceIssued,\n EntityTypeName.ProformaInvoiceReceived,\n EntityTypeName.ProformaInvoiceIssued,\n EntityTypeName.OtherLiability,\n EntityTypeName.OtherReceivable,\n EntityTypeName.CorrectiveInvoiceReceived,\n EntityTypeName.CorrectiveInvoiceIssued,\n EntityTypeName.InternalDocument,\n ...SortedPaymentDocuments\n];\n\nexport const SortedDocumentTypeCodes = SortedDocumentEntityTypeNames.map(getDocumentTypeCodeFromEntityType);\n\nexport const getSortedDocumentEntityTypeNamesWithPermission = (context: IAppContext, withPaymentDocuments: boolean): EntityTypeName[] => {\n const companyPermissions = context.getCompanyPermissions();\n return SortedDocumentEntityTypeNames\n .filter(entityType => hasPermissionForDocumentEntityType(entityType, companyPermissions)\n && (withPaymentDocuments || !SortedPaymentDocuments.includes(entityType)));\n};\n\nexport const _getId = (obj: TRecordAny) => {\n if (!obj) {\n return `${BindingContext.NEW_ENTITY_ID_PROP}=1`;\n }\n\n let id = obj.Id;\n if (!id) {\n id = obj[BindingContext.NEW_ENTITY_ID_PROP];\n return `${BindingContext.NEW_ENTITY_ID_PROP}=${id}`;\n }\n\n return id;\n};\n\ninterface IGetDocumentNameTableCellArgs {\n addIcon?: boolean;\n addDDOPPSuffix?: boolean;\n showJustDDOPP?: boolean;\n}\n\nexport function getDocumentNameTableCell(entityTypeName: EntityTypeName, args: IGetDocumentNameTableCellArgs): TCellValue {\n let key = entityTypeName as string;\n let isTaxDocument = false;\n if ([EntityTypeName.ProformaInvoiceIssued, EntityTypeName.ProformaInvoiceReceived].includes(entityTypeName)) {\n // proformas has special handling - sometimes we connect name, sometimes not, sometimes we show just DDOPP\n if (args.addDDOPPSuffix) {\n key = `${entityTypeName}OrDDOPP`;\n } else if (args.showJustDDOPP) {\n isTaxDocument = true;\n key = `${entityTypeName}DDOPP`;\n }\n }\n const name = i18next.t(`Document:Types.${key}`, { count: 10 /*uses plural*/ }).toString();\n if (args.addIcon) {\n const Icon = getIconForDocument(entityTypeName, isTaxDocument);\n return {\n tooltip: name,\n value: (<>\n {Icon && (\n \n \n \n )}\n {name}\n )\n };\n }\n return name;\n}\n\n\n// validate decisive date for cashBasis company here, instead of definition, because we have info about decisive\n// date prop only here\nexport const validateDecisiveDate = (value: TValue, args: IGetValueArgs): boolean | ValidationError => {\n if (isCashBasisAccountingCompany(args.storage.context)) {\n const storage = args.storage;\n const date = storage.getValue(args.bindingContext) as Date;\n\n if (!DateType.isValid(date)) {\n return new ValidationError(ValidationMessage.NotADate, false, args.bindingContext.getNavigationPath(true));\n }\n\n if (!getFiscalYears(storage.context).some(fy => isInFYorPeriod(fy, date))) {\n return new ValidationError(storage.t(\"Document:Form.WrongCalendarYear\"), false, args.bindingContext.getPath(true));\n }\n }\n return true;\n};\n\n/** Retrieve date which is used to select correct vat items in Items/Vat */\nexport const getVatItemsDecisiveDateName = (storage: FormStorage): string => {\n const entityType = storage.data.bindingContext.getEntityType().getName() as EntityTypeName;\n\n if (!isVatRegisteredCompany(storage.context) ||\n ([EntityTypeName.ProformaInvoiceIssued, EntityTypeName.ProformaInvoiceReceived].includes(entityType)\n && !storage.getEntity().IsTaxDocument)) {\n return DocumentDraftEntity.DateIssued;\n }\n\n return DocumentDraftEntity.DateTaxableSupply;\n};\n\nexport const setDefaultLabelsFromEntityToItems = (storage: FormStorage, refreshStorage = true): void => {\n const itemsBc = storage.data.bindingContext.navigate(\"Items\");\n for (const item of (storage.data.entity.Items ?? [])) {\n const itemBc = itemsBc.addKey(item);\n const labelSelectionBc = itemBc.navigate(DocumentItemEntity.LabelSelection);\n if (storage.getValue(labelSelectionBc)?.SelectionCode === SelectionCode.Default) {\n storage.setValue(labelSelectionBc, {\n Selection: {\n Code: SelectionCode.Default\n },\n SelectionCode: SelectionCode.Default,\n Labels: [...storage.data.entity.Labels]\n });\n storage.addActiveField(labelSelectionBc.navigate(LabelSelectionEntity.Labels));\n if (refreshStorage) {\n storage.refresh();\n }\n }\n }\n};\n\nexport const getItemLabelTitleFromSelectionCode = (labelSelection: ILabelSelectionEntity): string => {\n const selectionCode = labelSelection?.SelectionCode;\n if (selectionCode === SelectionCode.Default) {\n if (labelSelection?.Labels?.length > 0) {\n return `(${i18next.t(\"Document:Labels.Default\")})`;\n }\n return i18next.t(\"Document:Labels.Default\");\n } else if (selectionCode === SelectionCode.Own && labelSelection.Labels?.length) {\n return `(${i18next.t(\"Document:Labels.Own\")})`;\n }\n return \"\";\n};\n\nexport const handleAttachmentClick = (storage: Model, entity: IDocumentEntity, documentTypeCode: DocumentTypeCode): (e: React.SyntheticEvent) => void => {\n return (e: React.SyntheticEvent): void => {\n e.stopPropagation();\n const id = !!getQueryParameters()[QueryParam.Drafts] ? NEW_ITEM_DETAIL : entity.Id;\n const url = `${getRouteByDocumentType(documentTypeCode)}/${id}`;\n\n if (getQueryParameters()[QueryParam.Drafts]) {\n setQueryParams({\n history: storage.history,\n newParams: {\n [QueryParam.DraftId]: entity.Id.toString()\n }\n });\n } else {\n removeQueryParam(storage.history, QueryParam.DraftId, true);\n }\n\n const origQueryParams = getQueryParameters();\n\n storage.history.push(url);\n\n setQueryParams({\n history: storage.history,\n newParams: {\n ...origQueryParams,\n [QueryParam.PaneStatus]: [PaneStatus.Normal, PaneStatus.Collapsed, PaneStatus.Normal].join(\"\")\n }\n });\n };\n};\n\nexport function hasSavedDraft(storage: FormStorage): boolean {\n return storage.data.entity[DocumentEntity.DocumentDraft]?.Id !== undefined;\n}\n\nexport function getDocumentLinkBcs(oData: OData, DocumentLinks: IDocumentLinkEntity[], type?: DocumentLinkTypeCode): BindingContext[] {\n if (type) {\n DocumentLinks = DocumentLinks?.filter(link => link.TypeCode === type);\n }\n const metadata = oData.getMetadata();\n return DocumentLinks?.map(link => {\n const { TargetDocument } = link;\n const entityType = getEntityTypeFromProp(TargetDocument);\n return createBindingContext(getEntitySetByDocumentType(entityType as DocumentTypeCode), metadata).addKey(TargetDocument?.Id);\n });\n}\n\n// we often use \"isNew()\" to check if document is saved or not, but it's not always correct\n// new document can be a copy of another document or has saved draft, which is filled manually by user,\n// but the fields are not dirty (as it was saved and reloaded), so we most likely want in such cases use this function\nexport function isNotSavedDocument(storage: FormStorage): boolean {\n return storage.data.bindingContext.isNew() && !storage.getCustomData().isCopy && !hasSavedDraft(storage);\n}\n\nexport const getDocumentAttachmentsFilterDef = () => {\n return {\n type: FieldType.MultiSelect,\n valueType: ValueType.Boolean,\n isValueHelp: false,\n label: i18next.t(\"Document:Table.Attachments\"),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n },\n filter: {\n buildFilter(item: IChangedFilter, settings: ICreateFilterStringSettings): string | IFilterQuery {\n const values = item.value as boolean[];\n const hasTrue = values.some(v => v);\n const hasFalse = values.some(v => !v);\n\n if (hasTrue === hasFalse) {\n return \"\";\n }\n\n if (hasTrue) {\n return `${DocumentEntity.Attachments}/any()`;\n }\n\n if (hasFalse) {\n return `not(${DocumentEntity.Attachments}/any())`;\n }\n\n return \"\";\n }\n }\n };\n};\n\nexport const getDocumentAttachmentsColumnDef = (docType: DocumentTypeCode) => {\n return {\n textAlign: TextAlign.Center,\n formatter: (val: TValue, formatArgs: IFormatOptions) => {\n const document = formatArgs.entity as IDocumentEntity;\n const hasAttachment = document.Attachments?.length > 0;\n\n if (!hasAttachment) {\n return null;\n }\n\n const tooltip = i18next.t(`Document:Table.WithAttachment`);\n return {\n value: (\n \n ),\n tooltip: tooltip\n };\n }\n };\n};\n/** Normally, we use isVatRegisteredCompany based on the company's vat status.\n * But for IdentifiedPerson, sometimes the document behaves like NotVatRegistered and sometimes like VatRegistered.\n * */\nexport const shouldDocumentBehaveLikeVatRegisteredCompany = (args: IGetValueArgs, visibilityOnly?: boolean): boolean => {\n const context = args.context ?? args.storage.context;\n\n // proforma invoices are always treated as vat registered\n const isProformaType = isProformaBc(args.storage.data.bindingContext.getRootParent());\n\n if (isProformaType) {\n return true;\n }\n\n if (isIdentifiedPersonCompany(context)) {\n if (isReceivedBc(args.storage.data.bindingContext.getRootParent())) {\n return !isAgendaDomesticRule(args);\n } else {\n return isEuRuleExceptAgendaDomestic(args);\n }\n\n }\n\n if (visibilityOnly) {\n // when the caller cares only about visibility, always return true for other vat status than identified person,\n // we don't want to prevent user from seeing the fields e.g. when vat status field is added into form for non vat payer company\n return true;\n }\n\n return hasEverBeenVatRegisteredCompany(context);\n};\n\nexport const shouldFieldBeVisibleForIdentifiedPerson = (args: IGetValueArgs): boolean => {\n return shouldDocumentBehaveLikeVatRegisteredCompany(args, true);\n};","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { getWorkDate } from \"@components/inputs/date/utils\";\nimport { IFieldDef, IFieldInfoProperties, IGetValueArgs, not, TInfoValue } from \"@components/smart/FieldInfo\";\nimport {\n countryDef,\n getDocumentItemVatDef,\n vatRateFormatter,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { TCellValue } from \"@components/table\";\nimport { isInVatPayerVariantContext } from \"@components/variantSelector/VariantOdata\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n CountryEntity,\n DocumentEntity,\n IBankAccountEntity,\n IBankPaymentOrderStateEntity,\n IOppositeDocumentDocumentLinkEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BankPaymentOrderStateCode, DocumentTypeCode, UnitOfMeasureCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport { DocumentBusinessPartnerAdditionalProperties } from \"@pages/businessPartner/BusinessPartner.shared.utils\";\nimport { generalBankAccountFormatter, getBankAccountFilterDefinition } from \"@utils/BankUtils\";\nimport i18next from \"i18next\";\nimport { uniqBy } from \"lodash\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER, EMPTY_VALUE } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FastEntryInputSizes,\n FieldType,\n TextAlign,\n ValidatorType,\n ValueType\n} from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { formatCurrencyVariableDecimals } from \"../../types/Currency\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { isDraftView } from \"../../views/table/TableView.utils\";\nimport { currentAgendaVatsFilter } from \"../accountAssignment/AccountAssignment.utils\";\nimport { isNumberTheirsAndVatIdMandatory } from \"../admin/vatRules/VatRules.utils\";\nimport { getBankAccountFieldsDef, getBankAccountGroupDef } from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { getBusinessPartnerFieldDef, getBusinessPartnerGroup } from \"../businessPartner/BusinessPartner.utils\";\nimport { IDefinition, TFieldsDefinition } from \"../PageUtils\";\nimport { DocumentStatusLocalPath } from \"../reports/CommonDefs\";\nimport {\n correctiveDocumentLinkTypes,\n DefaultDueDays,\n documentTableAmountFormatter,\n draftInfoFormatter,\n getDocumentPairedTable,\n isSavedDocument,\n shouldFieldBeVisibleForIdentifiedPerson\n} from \"./Document.utils\";\nimport { documentStatusExportFormatter, DocumentStatusFilterNames, documentStatusFormatter } from \"./DocumentDef\";\n\nfunction getDocumentItemsVatFilter(): TFilterDef {\n const groupId = \"items\";\n return {\n type: FieldType.MultiSelect,\n cacheStrategy: CacheStrategy.Company,\n valueType: ValueType.Number,\n fieldSettings: {\n displayName: \"Rate\",\n transformFetchedItems: (items) => {\n const uniqItems = uniqBy(items, (i) => i.additionalData?.Rate);\n return uniqItems.map(item => ({\n ...item,\n id: item.additionalData?.Rate,\n groupId\n }));\n },\n additionalItems: [{\n id: EMPTY_VALUE,\n label: i18next.t(\"Common:Select.NoVat\"),\n groupId\n }]\n },\n additionalProperties: [{ id: \"Rate\" }],\n filter: {\n select: currentAgendaVatsFilter\n },\n filterName: [\"Rate\"],\n columns: [{\n id: \"Rate\",\n formatter: vatRateFormatter\n }],\n defaultValue: [],\n isValueHelp: false\n };\n}\n\n// Combined column of all document statuses (PostedStatus, ClearedStatus, VatSubmissionStatus\nexport const getDocumentStatusColumnDefinition = (): TFieldsDefinition => {\n return {\n [DocumentStatusLocalPath]: {\n label: i18next.t(\"Document:Table.Status\"),\n textAlign: TextAlign.Center,\n fieldSettings: {\n disableSort: true\n },\n additionalProperties: [\n { id: DocumentEntity.DocumentVatStatementStatus },\n { id: DocumentEntity.ClearedStatus },\n { id: DocumentEntity.PostedStatus }\n ],\n formatter: documentStatusFormatter,\n exportFormatter: documentStatusExportFormatter,\n isVisible: not(isDraftViewCallback)\n }\n };\n};\n\nexport function getDocumentAmountColumnDef(suffix?: string): Partial {\n return {\n formatter: (val, args) => documentTableAmountFormatter(args.entity, args.context, suffix),\n additionalProperties: [{\n id: `/TransactionAmount${suffix ?? \"\"}`\n }, {\n id: \"/TransactionCurrencyCode\"\n }, {\n id: \"/CurrencyCode\"\n }]\n };\n}\n\nexport const addPaymentOrderTableDefs = (definition: IDefinition): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n BankPaymentOrderStateCode: {\n label: i18next.t(\"Document:Table.PaymentOrder\"),\n formatter: (value): TCellValue => {\n let title = i18next.t(\"Common:General.Yes\");\n switch (value) {\n case BankPaymentOrderStateCode.Exported:\n return {\n tooltip: title,\n value: {title}\n };\n case BankPaymentOrderStateCode.Sent:\n return {\n tooltip: i18next.t(\"Common:General.Yes\") + \" \" + i18next.t(\"Document:Table.API\"),\n value: {title} {i18next.t(\"Document:Table.API\")}\n \n };\n default:\n title = i18next.t(\"Common:General.No\");\n return {\n tooltip: title,\n value: {title}\n };\n }\n }\n },\n DateBankApiPaymentOrder: {}\n };\n\n definition.table.additionalProperties = [...(definition.table.additionalProperties || []), {\n id: \"DocumentStatusCode\"\n }, {\n id: \"TransactionCurrency/Code\"\n }, {\n id: \"TransactionCurrency/Name\"\n }, {\n id: \"PaymentMethodCode\"\n }, {\n id: \"BankAccount/Country/IsSepa\"\n }, {\n id: \"TransactionAmountToPay\"\n }];\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n \"BankPaymentOrderState\": {\n label: i18next.t(\"Document:Table.PaymentOrder\"),\n type: FieldType.MultiSelect,\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: (val): string => {\n let label;\n // ReadOnlyGroup in filterBar call this with code as value only (only code is stored)\n const code = (val as IBankPaymentOrderStateEntity)?.Code ?? val;\n switch (code) {\n case BankPaymentOrderStateCode.Exported:\n label = i18next.t(\"Common:General.Yes\");\n break;\n case BankPaymentOrderStateCode.Sent:\n label = i18next.t(\"Common:General.Yes\") + \" \" + i18next.t(\"Document:Table.API\");\n break;\n }\n return (label ?? i18next.t(\"Common:General.No\")).toString();\n }\n },\n \"DateBankApiPaymentOrder\": {}\n };\n};\n\nexport const addBusinessPartnerFieldDefs = (definition: IDefinition, type: DocumentTypeCode, transFile: string, isBusinessPartnerOptional?: boolean): void => {\n const businessPartnerDef: Record = getBusinessPartnerFieldDef(!isBusinessPartnerOptional, transFile);\n\n businessPartnerDef[\"BusinessPartner/Country\"] = {\n ...businessPartnerDef[\"BusinessPartner/Country\"],\n additionalProperties: [{ id: CountryEntity.IsEuMember }, { id: CountryEntity.IsEEA }, { id: \"Code\" }],\n columns: countryDef.columns\n };\n\n businessPartnerDef[\"BusinessPartner/TaxNumber\"] = {\n ...businessPartnerDef[\"BusinessPartner/TaxNumber\"],\n isRequired: isNumberTheirsAndVatIdMandatory\n };\n\n definition.form.fieldDefinition = {\n ...definition.form.fieldDefinition,\n ...businessPartnerDef,\n ...getBankAccountFieldsDef({ addPaymentMethod: true, type })\n };\n\n definition.form.groups.splice(1, 0, getBusinessPartnerGroup(transFile));\n definition.form.groups.splice(3, 0, getBankAccountGroupDef(true));\n\n definition.form.additionalProperties = [...(definition.form.additionalProperties || []), DocumentBusinessPartnerAdditionalProperties];\n};\n\nexport const ItemQuantityDef: IFieldInfoProperties = {\n defaultValue: 1,\n width: FastEntryInputSizes.XS,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n excludeMin: true\n }\n }\n};\n\nexport const UnitOfMeasureDef: IFieldInfoProperties = {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"ShortName\",\n noRecordText: DASH_CHARACTER,\n // when ShortName is used instead of common \"Name\" prop from codelist,\n // we need to preload items in order to display it on new entity\n preloadItems: true\n },\n defaultValue: UnitOfMeasureCode.Piece,\n width: FastEntryInputSizes.XS\n};\n\n// definitions common for all but internal document types\nexport const addCommonDocumentDefs = (definition: IDefinition, type: DocumentTypeCode, context: IAppContext): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n DateDue: { id: \"DateDue\" },\n ...withDisplayName(\"PaymentMethod\"),\n SymbolVariable: { id: \"SymbolVariable\" },\n SymbolSpecific: { id: \"SymbolSpecific\" },\n SymbolConstant: { id: \"SymbolConstant\" },\n RemittanceInformation: { id: \"RemittanceInformation\" },\n TransactionAmountToReceive: { id: \"TransactionAmountToReceive\" },\n TransactionAmountToPay: { id: \"TransactionAmountToPay\" },\n TextBeforeItems: {},\n SymbolMatching: {}\n };\n\n definition.table.columns.splice(definition.table.columns?.length - 3, 0, \"DateDue\", DocumentEntity.DateCreated);\n definition.table.filterBarDef[0].defaultFilters.push(...DocumentStatusFilterNames);\n definition.table.filterBarDef[0].defaultFilters.push(\"Items/Quantity\");\n definition.table.filterBarDef[0].defaultFilters.push(\"DateDue\");\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n \"Items/Quantity\": { isValueHelp: false },\n \"Items/UnitPrice\": { isValueHelp: false },\n \"Items/UnitPriceNet\": { isValueHelp: false },\n \"Items/UnitPriceVat\": { isValueHelp: false },\n \"Items/Vat\": getDocumentItemsVatFilter(),\n \"Items/DiscountPercent\": { isValueHelp: false },\n \"Items/Discount\": { isValueHelp: false },\n \"DateDue\": {},\n ...withDisplayName(\"PaymentMethod\"),\n \"SymbolVariable\": {},\n \"SymbolSpecific\": {},\n \"SymbolConstant\": {},\n \"TransactionAmountToReceive\": {},\n \"TransactionAmountToPay\": {},\n TextBeforeItems: {},\n // Note: we should keep the same value as in table cause there is caching, see also comment in OData/Utils getFieldInfoMemoized\n // todo: refactor how fieldInfo is cached and merged definition from several defs (form, table, filter...)\n ...withDisplayName(\"TransactionCurrency\", \"Name\")\n };\n\n if (definition.table.massEditableDef) {\n definition.table.massEditableDef = {\n ...definition.table.massEditableDef,\n ...getBankAccountFieldsDef({ addPaymentMethod: true, type }),\n DateDue: {}\n };\n }\n\n definition.form.fieldDefinition[\"Items/Quantity\"] = {\n ...ItemQuantityDef\n };\n\n definition.form.fieldDefinition[\"Items/Vat\"] = {\n ...getDocumentItemVatDef(type),\n customizationData: {\n isRequired: isInVatPayerVariantContext\n },\n isVisible: shouldFieldBeVisibleForIdentifiedPerson,\n clearIfInvisible: false\n };\n\n definition.form.fieldDefinition[\"Items/UnitOfMeasure\"] = {\n ...UnitOfMeasureDef\n };\n\n definition.form.fieldDefinition.DateDue = {\n defaultValue: () => getUtcDayjs(getWorkDate()).add(DefaultDueDays, \"day\"),\n clearIfInvisible: false\n };\n\n definition.form.fieldDefinition.TextBeforeItems = {\n type: FieldType.EditableText,\n width: BasicInputSizes.M,\n isConfirmable: true,\n fieldSettings: {\n placeholder: i18next.t(\"Document:Form.AddTextPlaceholder\")\n }\n };\n\n definition.form.fieldDefinition.SymbolMatching = {};\n\n definition.form.additionalProperties.push(\n { id: \"Items/TransactionUnitPrice\" },\n { id: \"Items/TransactionUnitPriceNet\" },\n { id: \"Items/TransactionUnitPriceVat\" }\n );\n};\n\nexport const addBankAccountTableDefs = (definition: IDefinition, filterIndex = 0, prefix = \"BankAccount\"): void => {\n const bankAccountAdditionalKeys: (keyof IBankAccountEntity)[] = [\n \"AbaNumber\", \"AccountNumber\", \"BankCode\", \"CountryCode\", \"IBAN\", \"PaymentServiceID\", \"PaymentServiceName\", \"SWIFT\"\n ];\n const bankAccountAdditionalProperties = bankAccountAdditionalKeys.map(key => ({ id: key }));\n\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n [`${prefix}`]: {\n formatter: generalBankAccountFormatter,\n additionalProperties: bankAccountAdditionalProperties,\n label: i18next.t(\"Banks:Statements.AccountNumber\")\n },\n [`${prefix}/BankCode`]: {},\n [`${prefix}/AbaNumber`]: {},\n [`${prefix}/IBAN`]: {},\n [`${prefix}/SWIFT`]: {},\n ...withDisplayName(`${prefix}/Country`)\n };\n\n definition.table.filterBarDef[filterIndex].filterDefinition = {\n ...definition.table.filterBarDef[filterIndex].filterDefinition,\n [`${prefix}/AccountNumber`]: {\n formatter: generalBankAccountFormatter,\n filter: getBankAccountFilterDefinition(prefix)\n },\n [`${prefix}/BankCode`]: {},\n [`${prefix}/AbaNumber`]: {},\n [`${prefix}/IBAN`]: {},\n [`${prefix}/SWIFT`]: {},\n ...withDisplayName(`${prefix}/Country`)\n };\n};\n\nexport const addBusinessPartnerTableDefs = (definition: IDefinition, filterIndex = 0, businessPartnerAsDefault = true): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n BusinessPartner: {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n ...withDisplayName(\"BusinessPartner/Country\"),\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {},\n \"BusinessPartner/LegalNumber\": {},\n \"BusinessPartner/TaxNumber\": {},\n ...withDisplayName(\"BusinessPartner/VatStatus\")\n };\n\n if (businessPartnerAsDefault) {\n definition.table.filterBarDef[filterIndex].defaultFilters.splice(2, 0, \"BusinessPartner\");\n }\n\n definition.table.filterBarDef[filterIndex].filterDefinition = {\n ...definition.table.filterBarDef[filterIndex].filterDefinition,\n ...withDisplayName(\"BusinessPartner\"),\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n ...withDisplayName(\"BusinessPartner/Country\"),\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {},\n \"BusinessPartner/LegalNumber\": {},\n \"BusinessPartner/TaxNumber\": {},\n ...withDisplayName(\"BusinessPartner/VatStatus\")\n };\n};\n\nexport const addAccountAssignmentTableDefs = (definition: IDefinition, filterIndex = 0): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n \"AccountAssignmentSelection/AccountAssignment/ShortName\": {},\n \"AccountAssignmentSelection/AccountAssignment/Name\": {},\n ...withDisplayName(\"AccountAssignmentSelection/AccountAssignment/DebitAccount\", \"Number\"),\n ...withDisplayName(\"AccountAssignmentSelection/AccountAssignment/CreditAccount\", \"Number\")\n };\n\n definition.table.filterBarDef[filterIndex].filterDefinition = {\n ...definition.table.filterBarDef[filterIndex].filterDefinition,\n \"AccountAssignmentSelection/AccountAssignment/ShortName\": {},\n \"AccountAssignmentSelection/AccountAssignment/Name\": {},\n ...withDisplayName(\"AccountAssignmentSelection/AccountAssignment/DebitAccount\", \"Number\"),\n ...withDisplayName(\"AccountAssignmentSelection/AccountAssignment/CreditAccount\", \"Number\")\n };\n};\n\nexport const addTransactionAmountDue = (definition: IDefinition, isDefault?: boolean, withoutAmountDueSummary?: boolean): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n TransactionAmountDue: {}\n };\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n TransactionAmountDue: {}\n };\n\n if (isDefault) {\n let amountIndex = definition.table.columns.findIndex(colName => colName === \"Amount\");\n let index = amountIndex >= 0 ? amountIndex + 1 : definition.table.columns.length - 1;\n\n definition.table.columns.splice(index, 0, \"TransactionAmountDue\");\n\n amountIndex = definition.table.filterBarDef[0].defaultFilters.findIndex(colName => colName === \"Amount\");\n index = amountIndex >= 0 ? amountIndex + 1 : definition.table.columns.length - 1;\n\n definition.table.filterBarDef[0].defaultFilters.splice(index, 0, \"TransactionAmountDue\");\n }\n\n if (!withoutAmountDueSummary) {\n definition.form.summary.splice(2, 0, {\n id: \"TransactionAmountDue\",\n label: i18next.t(\"Document:Summary.AmountDue\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n return formatCurrencyVariableDecimals(val ?? 0, args.storage.data.entity.TransactionCurrency.Code);\n },\n updateFromLiveValue: true,\n isVisible: isSavedDocument\n });\n }\n};\n\nexport const addAmountsTableDefs = (definition: IDefinition, withoutAmountDueSummary?: boolean): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n TransactionAmountVat: {},\n AmountVat: {},\n TransactionAmountNet: {},\n AmountNet: {}\n };\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n \"AmountVat\": {},\n \"AmountNet\": {},\n \"TransactionAmountVat\": {},\n \"TransactionAmountNet\": {},\n TransactionAmount: {},\n \"Items/TransactionAmount\": { isValueHelp: false },\n \"Items/TransactionAmountNet\": { isValueHelp: false },\n \"Items/TransactionAmountVat\": { isValueHelp: false }\n };\n\n addTransactionAmountDue(definition, true, withoutAmountDueSummary);\n};\n\nexport const CorrectiveDocumentColumnPath = BindingContext.localContext(\"CorrectiveDocument\");\n\nexport const addCorrectiveDocument = (definition: IDefinition, hasAccountAssignment: boolean): void => {\n definition.table.columnDefinition[CorrectiveDocumentColumnPath] = {\n label: i18next.t(\"Document:CorrectiveDocument.Label\"),\n formatter: (val, args) => {\n const correctiveDocLink = args.entity.OppositeDocumentLinks?.[0] as IOppositeDocumentDocumentLinkEntity;\n\n if (!correctiveDocLink) {\n return \"\";\n }\n\n const correctiveDoc = correctiveDocLink.SourceDocument;\n\n return getTableIntentLink(correctiveDoc.NumberOurs, {\n route: `${getRouteByDocumentType(correctiveDoc.DocumentTypeCode as DocumentTypeCode)}/${correctiveDoc.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n }\n };\n\n const additionalProperties = [\n { id: \"OppositeDocumentLinks/TypeCode\" },\n { id: \"OppositeDocumentLinks/SourceDocument/NumberOurs\" },\n { id: \"OppositeDocumentLinks/SourceDocument/DocumentTypeCode\" }\n ];\n const querySettings = {\n \"OppositeDocumentLinks\": {\n filter: `TypeCode in (${transformToODataString(correctiveDocumentLinkTypes, ValueType.String)})`\n }\n };\n\n definition.table.additionalProperties = [\n ...(definition.table.additionalProperties ?? []),\n ...additionalProperties\n ];\n\n definition.table.querySettings = {\n ...definition.table.querySettings,\n ...querySettings\n };\n\n definition.form.additionalProperties = [\n ...(definition.form.additionalProperties ?? []),\n ...additionalProperties\n ];\n\n definition.form.querySettings = {\n ...definition.table.querySettings,\n ...querySettings\n };\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n\n tabsGroup.tabs.push({\n id: \"correctiveDocs\",\n title: i18next.t(\"Document:FormTab.Corrections\"),\n table: getDocumentPairedTable({\n selectQuery: `TypeCode in (${transformToODataString(correctiveDocumentLinkTypes, ValueType.String)})`,\n isCbaCompany: !hasAccountAssignment\n })\n });\n};\n\nexport const draftInfoPath = BindingContext.localContext(\"DraftInfo\");\n\nexport const isDraftViewCallback: TInfoValue = (args: IGetValueArgs) => {\n return isDraftView(args.storage as TSmartODataTableStorage);\n};\n\nexport const getDraftInfoColumnDef = (isBankTransaction?: boolean): TFieldsDefinition => {\n return {\n [draftInfoPath]: {\n label: i18next.t(`Document:Table.Info`),\n disableSort: true,\n isVisible: isDraftViewCallback,\n formatter: draftInfoFormatter,\n additionalProperties: [{\n id: \"/LastModifiedBy/Name\"\n }, {\n id: \"/DateLastModified\"\n }, {\n id: isBankTransaction ? \"/PaymentDocumentDraft\" : \"/DocumentDraft\"\n }]\n }\n };\n};","import {\n ConditionType,\n IComplexFilter,\n isComplexFilterArr\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getWorkDate } from \"@components/inputs/date/utils\";\nimport { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { ifAny, IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n AttachmentsAdditionalProperties,\n AttachmentsDef,\n CurrencyDef,\n ExchangeRatePerUnit,\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n getLabelsDef,\n getLabelsFilterDef,\n LabelsTableColumnDef,\n NoteFieldDef,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef,\n TFilterDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { IExportCellValue, TExportFormatterFn, TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport {\n fetchValueHelperData,\n IFetchValueHelperItemsOptions\n} from \"@components/smart/smartValueHelper/ValueHelper.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { ITokenProps } from \"@components/token\";\nimport Tokenizer from \"@components/token/Tokenizer\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { isInVatPayerVariantContext } from \"@components/variantSelector/VariantOdata\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { getDocumentTypeCodeFromEntityType, getEntityTypeFromBindingContext } from \"@odata/EntityTypes\";\nimport {\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemCbaCategoryEntity,\n DocumentItemDraftEntity,\n DocumentVatClassificationEntity,\n DocumentVatClassificationSelectionEntity,\n EntitySetName,\n EntityTypeName,\n FiscalPeriodEntity,\n IDocumentEntity,\n IDocumentItemLabelEntity,\n IFileMetadataEntity,\n IItemTemplateEntity,\n ILabelEntity,\n InvoiceIssuedEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n CompanyPermissionCode,\n DocumentLinkTypeCode,\n DocumentStatusCode,\n DocumentTypeCode,\n FiscalYearStatusCode,\n GeneralPermissionCode,\n PayableReceivableTypeCode,\n PostedStatusCode,\n SelectionCode,\n VatStatementStatusCode,\n VatStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport { getItemTemplateSelectItems } from \"@pages/admin/itemTemplates/ItemTemplates.utils.shared\";\nimport { isRossumModuleActivated } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport {\n hasEverBeenVatRegisteredCompany,\n isAccountAssignmentCompany,\n isCashBasisAccountingCompany,\n isIdentifiedPersonCompany\n} from \"@utils/CompanyUtils\";\nimport { getFilterForDocumentDrafts } from \"@utils/DraftUtils\";\nimport { arrayInsert, isDefined } from \"@utils/general\";\nimport { getOneFetch } from \"@utils/oneFetch\";\nimport { isFileRossumEligible } from \"@utils/Rossum.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport {\n ClearedStatusClearedIcon,\n ClearedStatusNotClearedIcon,\n ClearedStatusPartiallyClearedIcon,\n IProps as IIconProps,\n PostedStatusNotApplicableIcon,\n PostedStatusNotPostedIcon,\n PostedStatusPostedIcon,\n VatStatementStatusNotApplicableIcon,\n VatStatementStatusNotPostedIcon,\n VatStatementStatusPartialIcon,\n VatStatementStatusPostedIcon\n} from \"../../components/icon\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n CacheStrategy,\n EditableTextSizes,\n FastEntryInputSizes,\n FieldType,\n IconSize,\n Sort,\n TextAlign,\n ToolbarItemType,\n ValidatorType,\n ValueType\n} from \"../../enums\";\nimport { IEnumEntity, TRecordType, TValue, ValueOf } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport { ValidationMessage } from \"../../model/Validator.types\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport { formatCurrencyVariableDecimals } from \"../../types/Currency\";\nimport DateType from \"../../types/Date\";\nimport { APPLY_ISDOC_ACTION, APPLY_ROSSUM_ACTION } from \"../../views/fileView/FileViewUtils\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport {\n IChangedFilter,\n ISplitPageTableDef,\n ITableDef,\n ITableDefTabData,\n SECONDARY_FILTERS_ALL\n} from \"../../views/table/TableView.utils\";\nimport {\n getAccAssignmentGroup,\n getAccountAssignmentItemDef,\n getAccountSelectionFieldsDef\n} from \"../accountAssignment/AccountAssignment.utils\";\nimport {\n getGeneralSavedVats,\n getItemsDeductionDef,\n getVatFieldsDef,\n getVatRowFields,\n getVatTableColumnsDef,\n getVatTableFilterDefs,\n isAgendaDomesticRule,\n isDocumentReverseCharged,\n isInAutomatedVatInclusionMode,\n isThirdWorldsRule,\n ITEMS_VAT_DEDUCTION_PATH,\n SAVED_VATS_PATH\n} from \"../admin/vatRules/VatRules.utils\";\nimport { BusinessPartnerDef } from \"../businessPartner/BusinessPartner.utils\";\nimport {\n CBA_CATEGORY_PATH,\n getCashBasisAccountingFieldsDef,\n getCashBasisAccountingGroup,\n getCbaCategoryItemDef,\n getCbaEntriesTable\n} from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { getFiscalYearByDate } from \"../fiscalYear/FiscalYear.utils\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../numberRange/NumberRange.utils\";\nimport { IDefinition } from \"../PageUtils\";\nimport {\n DocumentStatusLocalPath,\n getAllDocumentStatusItems,\n getStatusFilterId,\n getStatusGroups,\n splitStatusFilterId,\n StatusEntities,\n StatusEntitiesToDocumentEntitiesMapping\n} from \"../reports/CommonDefs\";\nimport {\n getReceivableAdjustmentsTab,\n REC_ADJ_LINK_TYPES\n} from \"../reports/receivableAdjustments/ReceivableAdjustments.utils\";\nimport { StatusIconsWrapper, StyledTransactionCurrencyAmountText } from \"./Document.style\";\nimport {\n ATTACHMENTS_COLUMN_LOCAL_CONTEXT,\n DOCUMENT_CLEARING_FORM_TAB_ID,\n draftNumberOursFormatter,\n getAccountJournalTable,\n getAutomatedVatInclusionTable,\n getCurrencyUnit,\n getDocumentAttachmentsColumnDef,\n getDocumentAttachmentsFilterDef,\n getDocumentClearingTableDef,\n getDocumentPairedTable,\n getItemLabelTitleFromSelectionCode,\n isDocumentType,\n isIssued,\n isProforma,\n isReceived,\n isSavedDocument,\n readOnlyCurrencyItemFormatter,\n shouldDocumentBehaveLikeVatRegisteredCompany,\n shouldFieldBeVisibleForIdentifiedPerson,\n tWithFallback,\n VAT_ASSIGNMENT_GROUP_ID\n} from \"./Document.utils\";\nimport {\n draftInfoPath,\n getDocumentStatusColumnDefinition,\n getDraftInfoColumnDef,\n isDraftViewCallback\n} from \"./DocumentCommonDefs\";\nimport { IDocumentCustomData } from \"./DocumentInterfaces\";\nimport { ACCRUED_DOC_LINK_ALL_TYPES } from \"./extensions/accruals/Accruals.utils\";\nimport { DEFERRED_PLANS_LINK_TYPES } from \"./extensions/timeResolution/TimeResolution.utils\";\n\nexport const DOCUMENT_TABLES_GROUP_ID = \"Tabs\";\n\nconst _getDocumentStatusIcon = (entity: IDocumentEntity, propName: DocumentEntity, getIconFn: (status: any) => React.ComponentType) => {\n const { Code, Name } = (entity[propName] ?? {}) as IEnumEntity;\n const StatusIcon = getIconFn(Code);\n const title = Name ?? getEnumDisplayValue(propName, Code);\n\n if (!StatusIcon) {\n return null;\n }\n\n return {\n tooltip: title,\n value: ()\n };\n};\n\nexport const documentStatusFormatter = (val: TValue, args: IFormatOptions): TCellValue => {\n if (args.bindingContext?.getParent()?.getEntitySet()?.getName() === EntitySetName.DocumentDrafts) {\n return null;\n }\n const context = args.context ?? args.storage?.context;\n if (!context) {\n throw new Error(\"Context has to be provided for documentStatusFormatter directly in args or through storage\");\n }\n const _isAccountAssignmentComp = isAccountAssignmentCompany(context);\n const statuses = [\n _isAccountAssignmentComp ? _getDocumentStatusIcon(args.entity, DocumentEntity.PostedStatus, getPostedStatusIcon) : null,\n _getDocumentStatusIcon(args.entity, DocumentEntity.ClearedStatus, getClearedStatusIcon),\n _getDocumentStatusIcon(args.entity, DocumentEntity.DocumentVatStatementStatus, getVatStatementStatusIcon)\n ].filter(isDefined);\n\n return {\n tooltip: statuses.map(item => item.tooltip).join(\", \"),\n value: (\n \n {statuses.map(item => ({item.value}))}\n \n )\n };\n};\n\nexport const documentStatusExportFormatter = ({ entity, storage }: IFormatOptions): IExportCellValue[] => {\n // we don't have document type when called from reports\n const documentType = storage ? getDocumentTypeCodeFromEntityType(getEntityTypeFromBindingContext(storage.data.bindingContext)) : null;\n const statusEntities = documentType ? getUsedStatuses(storage.context, documentType) : StatusEntities;\n return statusEntities.map(statusEntity => ({\n id: statusEntity,\n // when entity is defined, row values are formatted, otherwise it's called to format the column label\n label: i18next.t(`Document:Status.${statusEntity}`),\n value: entity?.[StatusEntitiesToDocumentEntitiesMapping[statusEntity]]?.Name\n }));\n};\n\nexport function getDocumentStatusEnumsTranslationNamespaces(): string[] {\n return [\n getEnumNameSpaceName(EntityTypeName.ClearedStatus),\n getEnumNameSpaceName(EntityTypeName.PostedStatus),\n getEnumNameSpaceName(EntityTypeName.VatStatementStatus)\n ];\n}\n\n/**\n * For report view, there are 3 dependent columns with the statuses, which we join to document entity and use common documentStatusFormatter\n **/\nfunction getReportViewStatusFormatterArgs(prefix: string, args: IFormatOptions): IFormatOptions {\n const entity: IEntity = {};\n const row = args.entity;\n if (row) {\n StatusEntities.forEach(statusEntity => {\n const navigationProperty = StatusEntitiesToDocumentEntitiesMapping[statusEntity];\n const Code = row[`${prefix}_${navigationProperty}Code`];\n entity[navigationProperty] = {\n Code, Name: getEnumDisplayValue(statusEntity, Code)\n };\n });\n }\n return { ...args, entity };\n}\n\nexport function getReportViewDocumentStatusFormatter(prefix: string): TFormatterFn {\n return (val: TValue, args: IFormatOptions): TCellValue => {\n if (!val) {\n return null;\n }\n return documentStatusFormatter(val, getReportViewStatusFormatterArgs(prefix, args));\n };\n}\n\nexport function getReportViewDocumentStatusExportFormatter(prefix: string): TExportFormatterFn {\n return (args: IFormatOptions): IExportCellValue[] => {\n return documentStatusExportFormatter(getReportViewStatusFormatterArgs(prefix, args));\n };\n}\n\nexport function getEnumBuildFilterMethod(buildSingleFilter: (value: T[], negate?: boolean) => string) {\n return (item: IChangedFilter): string => {\n const filters: string[] = [];\n\n if (isComplexFilterArr(item.value)) {\n item.value?.forEach((complexFilterVal: IComplexFilter) => {\n const query = buildSingleFilter(complexFilterVal.value as T[], complexFilterVal.type === ConditionType.Excluded);\n if (query) {\n filters.push(query);\n }\n });\n return filters?.length ? `(${filters.join(\" AND \")})` : \"\";\n }\n\n return buildSingleFilter(item.value as T[]) ?? \"\";\n };\n}\n\nexport const getClearedStatusIcon = (status: ClearedStatusCode): React.ComponentType => {\n switch (status) {\n case ClearedStatusCode.NotCleared:\n return ClearedStatusNotClearedIcon;\n case ClearedStatusCode.Cleared:\n return ClearedStatusClearedIcon;\n case ClearedStatusCode.PartiallyCleared:\n return ClearedStatusPartiallyClearedIcon;\n case ClearedStatusCode.N_A:\n default:\n return null;\n }\n};\n\nexport const getPostedStatusIcon = (status: PostedStatusCode): React.ComponentType => {\n switch (status) {\n case PostedStatusCode.NotPosted:\n return PostedStatusNotPostedIcon;\n case PostedStatusCode.Posted:\n return PostedStatusPostedIcon;\n case PostedStatusCode.N_A:\n return PostedStatusNotApplicableIcon;\n default:\n return null;\n }\n};\n\nexport const getVatStatementStatusIcon = (status: VatStatementStatusCode): React.ComponentType => {\n switch (status) {\n case VatStatementStatusCode.Filed:\n return VatStatementStatusPostedIcon;\n case VatStatementStatusCode.NotFiled:\n return VatStatementStatusNotPostedIcon;\n case VatStatementStatusCode.PartiallyFiled:\n return VatStatementStatusPartialIcon;\n case VatStatementStatusCode.N_A:\n case VatStatementStatusCode.Undefined:\n return VatStatementStatusNotApplicableIcon;\n default:\n return null;\n }\n};\n\nexport function getUsedStatuses(context: IAppContext, documentType?: DocumentTypeCode): EntityTypeName[] {\n const isInternal = documentType === DocumentTypeCode.InternalDocument;\n const isCashReceipt = [DocumentTypeCode.CashReceiptReceived, DocumentTypeCode.CashReceiptIssued].includes(documentType);\n const isAACompany = isAccountAssignmentCompany(context);\n\n return StatusEntities.filter(entity =>\n (!isCashReceipt || entity !== EntityTypeName.VatStatementStatus)\n && (!isInternal || entity !== EntityTypeName.ClearedStatus)\n && (isAACompany || entity !== EntityTypeName.PostedStatus));\n}\n\nexport const DocumentStatusFilterNames: string[] = [DocumentStatusLocalPath];\nexport const getDocumentStatusFilterDefinition = (usedStatuses: EntityTypeName[]): Record => {\n const isEnum = true;\n const DocumentStatusFilterOneFetch = getOneFetch();\n\n return {\n [DocumentStatusLocalPath]: {\n id: DocumentStatusLocalPath,\n valueType: ValueType.String,\n label: i18next.t(\"Document:Table.Status\"),\n type: FieldType.MultiSelect,\n defaultValue: [],\n // doesn't work for drafts\n isDisabled: isDraftViewCallback,\n filter: {\n // only use statuses from \"usedStatuses\" to prevent filter errors\n groupByProperties: usedStatuses.map((status: EntityTypeName) => `${StatusEntitiesToDocumentEntitiesMapping[status]}Code`),\n buildFilter: getEnumBuildFilterMethod((filterValues: string[], negate = false) => {\n const statusMap = new Map();\n filterValues.forEach(val => {\n const { entityType, code } = splitStatusFilterId(val);\n const curr: string[] = statusMap.get(entityType) ?? [];\n curr.push(code);\n statusMap.set(entityType, curr);\n });\n\n const statusFilters = StatusEntities\n .map((entityType: EntityTypeName) => {\n const values = statusMap.get(entityType);\n if (!values?.length) {\n return null;\n }\n return `${StatusEntitiesToDocumentEntitiesMapping[entityType]}Code in (${transformToODataString(values, ValueType.String)})`;\n })\n .filter(item => !!item);\n\n if (!statusFilters?.length) {\n return null;\n }\n const query = statusFilters.join(\" AND \");\n return negate ? `not(${query})` : query;\n })\n },\n // we need to fetch items manually, so skip SmartValueHelper component in render\n isValueHelp: false,\n fieldSettings: {\n isEnum,\n groups: getStatusGroups(),\n cacheFetchedItemsInFieldInfo: false,\n initialItems: getAllDocumentStatusItems(usedStatuses),\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const { storage, bindingContext } = args;\n const fieldInfo = storage.getInfo(bindingContext);\n\n const opts: IFetchValueHelperItemsOptions = {\n storage: storage as TableStorage,\n bindingContext, fieldInfo,\n isEnum\n };\n const data = await fetchValueHelperData(opts, DocumentStatusFilterOneFetch);\n // prepare uniq items\n const allItems: ISelectItem[] = fieldInfo.fieldSettings.initialItems.map(i => ({\n ...i,\n isDisabled: true\n })) ?? [];\n\n const counts: TRecordType = {};\n data.forEach(row => {\n usedStatuses.forEach((entityType) => {\n const code = row[`${StatusEntitiesToDocumentEntitiesMapping[entityType]}${BindingContext.ENUM_KEY_PROP}`];\n const copiedItem = allItems.find(item => item.id === getStatusFilterId(entityType, code) && item.groupId === entityType);\n if (copiedItem.isDisabled) {\n copiedItem.isDisabled = false;\n counts[entityType] = (counts[entityType] ?? 0) + 1;\n }\n });\n });\n\n return allItems.filter(item => !item.isDisabled /*&& (counts[item.groupId] > 1)*/);\n },\n itemsForRender(items: ISelectItem[]): ISelectItem[] {\n // little hack, so getFilterBarItemRenderValue from FilterBar.utils.ts don't treat this as enum\n // and uses actual items as values to render read only data.\n return items;\n }\n }\n }\n };\n};\n\nexport const summaryItemAmountFormatter = (val: TValue, args: IFormatOptions, amountProp: string) => {\n const entity = args.entity as IDocumentEntity;\n\n return <>\n {entity.Currency?.Code && entity.TransactionCurrency?.Code !== entity.Currency.Code &&\n \n {formatCurrencyVariableDecimals((entity[amountProp as keyof IDocumentEntity] ?? 0) as number, entity.Currency.Code)} | \n \n }\n {formatCurrencyVariableDecimals(val ?? 0, entity.TransactionCurrency.Code)}\n ;\n};\n\nexport const addIfIsVatRegistered = (value: T, context: IAppContext): T => {\n // identified person company should also have the vat fields in definition,\n // because for invoices tied to business partners from EEA countries, vat should be calculated\n return hasEverBeenVatRegisteredCompany(context, false) ? value : null;\n};\n\nconst getLineItemsColumns = (context: IAppContext, isReceived: boolean): IFieldDef[] => {\n return [\n { id: \"Description\" }, { id: \"Quantity\" },\n ...(addIfIsVatRegistered([\n { id: \"Vat\" },\n { id: \"TransactionAmountNet\" },\n { id: \"TransactionAmountVat\" }\n ], context) ?? []),\n { id: \"TransactionAmount\" },\n ...(isReceived ? addIfIsVatRegistered([{ id: ITEMS_VAT_DEDUCTION_PATH }], context) ?? [] : [])\n ].filter(value => value);\n};\n\nexport interface IDocumentDefinitionArgs {\n entitySet: string;\n documentType: DocumentTypeCode;\n tableId: ITableDef[\"id\"];\n formId: IFormDef[\"id\"];\n formControl: any;\n translationFiles: string[];\n getItemBreadCrumbText: (storage: Model) => string;\n permissions?: (CompanyPermissionCode | GeneralPermissionCode)[];\n context: IAppContext;\n}\n\nexport const DOCUMENT_DATE_CHANGE_DEBOUNCE = 1000;\n\n// Date fields are inserted into definitions from multiple different places in code,\n// => this is the one place that stores the correct rows and order which should be used\n// use addDateGroupDateField function to add it into the document definition.\n// Empty indexes should be filtered out in the end of the document getDefinitions function by calling clearEmptyDateGroupDateFields\nexport const DocumentDateGroupRowsAndOrder: ValueOf[][] = [\n [DocumentDraftEntity.DateIssued, DocumentDraftEntity.DateTaxableSupply, DocumentDraftEntity.DateDue, DocumentDraftEntity.DatePaymentReceived],\n [DocumentDraftEntity.DateReceived, DocumentDraftEntity.DateAccountingTransaction, DocumentDraftEntity.FiscalPeriod, DocumentDraftEntity.DateVatDeduction, DocumentDraftEntity.DateProcessed]\n];\n\nexport const addDateGroupDateField = (form: IFormDef, key: ValueOf): void => {\n const dateGroup = form.groups.find(group => group.id === \"date\");\n let fieldIndex: number;\n const rowIndex = DocumentDateGroupRowsAndOrder.findIndex(row => {\n const index = row.findIndex(field => field === key);\n\n if (index >= 0) {\n fieldIndex = index;\n return true;\n }\n\n return false;\n });\n\n if (rowIndex < 0) {\n throw new Error(\"date field is missing in DocumentDateGroupRowsAndOrder\");\n }\n\n dateGroup.rows[rowIndex][fieldIndex] = { id: key as string };\n};\n\nexport const clearEmptyDateGroupDateFields = (definition: IDefinition): IDefinition => {\n const dateGroup = definition.form.groups.find(group => group.id === \"date\");\n\n if (dateGroup) {\n dateGroup.rows = dateGroup.rows.map(row => {\n return row.filter(val => val);\n }).filter(row => row.length > 0);\n }\n\n return definition;\n};\n\nexport const dateAccountingCustomValidator = (value: TValue, args: IGetValueArgs, forceValidate?: boolean) => {\n const fy = getFiscalYearByDate(args.storage.context, value as Date);\n\n if (!DateType.isValid(value as Date)) {\n return new ValidationError(ValidationMessage.NotADate, false, args.bindingContext.getNavigationPath(true));\n }\n\n // document that is already saved should have some parts of it editable even in closed FiscalYear\n const shouldValidateFY = !!forceValidate || args.storage.data.bindingContext.isNew() || args.storage.isDirty(args.bindingContext);\n\n if (shouldValidateFY && fy?.StatusCode !== FiscalYearStatusCode.Active) {\n return new ValidationError(i18next.t(\"Document:Form.DateAccountingTransactionValidation\"), false, args.bindingContext.getNavigationPath(true));\n }\n\n return true;\n};\n\n/** Returns definition only for the shared properties of Documents entity.\n * Each of the inherited documents has to extend the definition with it special properties. */\nexport const getDefinitions = (args: IDocumentDefinitionArgs): IDefinition => {\n const lockProperty = DocumentEntity.Locks;\n\n const _isReceived = isReceived(args.documentType);\n const _isIssued = isIssued(args.documentType);\n // proforma invoices are always treated as vat registered\n const _isProforma = isProforma(args.documentType);\n const isCashBasisAccounting = isCashBasisAccountingCompany(args.context);\n const hasAccountAssignment = isAccountAssignmentCompany(args.context);\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"NumberOurs\",\n \"Amount\",\n \"Items/Description\",\n ATTACHMENTS_COLUMN_LOCAL_CONTEXT\n ],\n filterDefinition: {\n NumberOurs: {},\n Amount: {},\n \"Items/Description\": { isValueHelp: false },\n // definitions common for all document types\n // rest of them are added in each respective document def\n ...getDocumentStatusFilterDefinition(getUsedStatuses(args.context, args.documentType)),\n \"Note\": {},\n ...getLabelsFilterDef(\"Labels\", \"Items/LabelSelection/Labels\"),\n \"Items/Order\": { isValueHelp: false },\n \"Items/Amount\": { isValueHelp: false },\n \"Items/AmountNet\": { isValueHelp: false },\n \"Items/AmountVat\": { isValueHelp: false },\n ...withDisplayName(\"DocumentSourceType\"),\n \"DocumentSourceName\": {},\n [ATTACHMENTS_COLUMN_LOCAL_CONTEXT]: getDocumentAttachmentsFilterDef(),\n ...getFilterForDocumentDrafts(),\n ...getCommonFilterDefs(),\n ...(addIfIsVatRegistered(getVatTableFilterDefs({\n isIssued: _isIssued,\n isReceived: _isReceived\n }), args.context) ?? {})\n }\n }];\n\n if (hasAccountAssignment) {\n filterBarDef[0].filterDefinition = {\n ...filterBarDef[0].filterDefinition,\n DateAccountingTransaction: {}\n };\n }\n\n const tabs: ITableDefTabData[] = [{\n id: SECONDARY_FILTERS_ALL,\n title: i18next.t(\"Components:FilterBar.All\")\n }, {\n id: DocumentStatusCode.NotCleared,\n title: i18next.t(\"Enums:DocumentStatus.NotCleared\"),\n filterNames: [DocumentStatusCode.NotCleared, DocumentStatusCode.NotPaid, DocumentStatusCode.Posted]\n }, {\n id: DocumentStatusCode.PartiallyCleared,\n title: i18next.t(\"Enums:DocumentStatus.PartiallyCleared\"),\n filterNames: [DocumentStatusCode.PartiallyCleared, DocumentStatusCode.PartiallyPaid]\n }, {\n id: DocumentStatusCode.Cleared,\n title: i18next.t(\"Enums:DocumentStatus.Cleared\"),\n filterNames: [DocumentStatusCode.Cleared, DocumentStatusCode.Paid]\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n tabs,\n tabsSettings: {\n filterFieldName: \"DocumentStatusCode\"\n },\n lockProperty,\n draftDef: {\n draftEntitySet: EntitySetName.DocumentDrafts,\n draftFilter: `Document/Id eq null AND DocumentTypeCode eq '${args.documentType}' AND TemplateForRecurringTask eq null`,\n draftProperty: DocumentEntity.DocumentDraft,\n draftPropsBlacklist: [\n \"/DocumentDraft\", \"Items/TransactionCurrencyCode\",\n \"OppositeDocumentLinks/TypeCode\", \"OppositeDocumentLinks/SourceDocument/NumberOurs\", \"OppositeDocumentLinks/SourceDocument/DocumentTypeCode\",\n InvoiceIssuedEntity.TransactionAmountToPay, InvoiceIssuedEntity.TransactionAmountToReceive,\n DocumentEntity.ClearedStatus, DocumentEntity.PostedStatus, DocumentEntity.DocumentVatStatementStatus,\n DocumentEntity.DocumentVatStatementStatusCode\n ],\n draftAdditionalProps: [{\n id: DocumentDraftEntity.CountByDocumentTypeCodeAndNumberOurs\n }]\n },\n id: args.tableId,\n massEditableDef: {\n Note: { ...NoteFieldDef },\n \"BusinessPartner/Name\": BusinessPartnerDef(),\n DateDue: {},\n Labels: getLabelsDef(\"Document\")\n },\n additionalProperties: [\n { id: \"TransactionAmountToPay\" },\n { id: \"PaymentMethodCode\" },\n { id: \"BankAccount\" }\n ], // TransactionAmountToPay, PaymentMethodCode and BankAccount needed for Payment table action\n columnDefinition: {\n // definitions common for all document types\n // rest of them are added in each respective document def\n ...getDocumentStatusColumnDefinition(),\n ...getDraftInfoColumnDef(),\n NumberOurs: {\n formatter: draftNumberOursFormatter(EntitySetName.DocumentDrafts, DocumentEntity.DocumentDraft),\n additionalProperties: [{\n id: \"/LastModifiedBy/Name\"\n }, {\n id: \"/DateLastModified\"\n }, {\n id: \"/DocumentDraft\"\n }]\n },\n Amount: {},\n TransactionAmount: {},\n [DocumentEntity.Attachments]: getDocumentAttachmentsColumnDef(args.documentType),\n Note: {},\n ...getCommonTableColumnsDefs(),\n ...LabelsTableColumnDef,\n ...(addIfIsVatRegistered(getVatTableColumnsDef({\n isIssued: _isIssued,\n isReceived: _isReceived\n }), args.context) ?? {}),\n ...withDisplayName(\"DocumentSourceType\"),\n DocumentSourceName: {}\n },\n columns: [\n draftInfoPath,\n DocumentEntity.NumberOurs,\n DocumentStatusLocalPath,\n DocumentEntity.BusinessPartner,\n DocumentEntity.Amount,\n DocumentEntity.Attachments,\n DocumentEntity.Note\n ],\n title: i18next.t(`${args.translationFiles[0]}:Title`),\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n if (hasAccountAssignment) {\n table.columnDefinition = {\n ...table.columnDefinition,\n DateAccountingTransaction: {}\n };\n }\n\n const auditTrailSummary: ISummaryItem[] = [{\n id: \"NumberOurs\",\n label: tWithFallback(args.translationFiles[0], \"Summary.NumberOursAudit\", \"Document\")\n }];\n\n\n const summary: ISummaryItem[] = [\n getNumberOursSummaryDef(args.translationFiles[0]),\n {\n id: \"TransactionAmount\",\n label: i18next.t(\"Document:Summary.ItemsSum\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n return summaryItemAmountFormatter(val, args, \"Amount\");\n },\n additionalProperties: [{ id: \"/Amount\" }],\n updateFromLiveValue: true\n }];\n\n summary.push({\n label: i18next.t(\"Enums:DocumentStatus.Cleared\"),\n id: \"ClearedStatus/Code\",\n formatter: (val: TValue) => {\n return val === ClearedStatusCode.Cleared ? i18next.t(\"Common:General.Yes\").toUpperCase() : i18next.t(\"Common:General.No\").toUpperCase();\n },\n colorFormatter: (val: TValue) => {\n return val === ClearedStatusCode.Cleared ? \"C_SEM_el_good\" : \"C_SEM_text_bad\";\n },\n isVisible: isSavedDocument\n });\n\n const type = _isReceived ? PayableReceivableTypeCode.Payable\n : (_isIssued ? PayableReceivableTypeCode.Receivable : PayableReceivableTypeCode.InternalDocument);\n\n const _isInternalDocument = type === PayableReceivableTypeCode.InternalDocument;\n\n const addVatRule = type !== PayableReceivableTypeCode.InternalDocument;\n const addNonTaxAccount = _isReceived;\n\n const form: IFormDef = {\n id: args.formId,\n translationFiles: args.translationFiles,\n title: `${args.translationFiles[0]}:TitleSingular`,\n files: AttachmentsDef,\n summary,\n getCustomAttachmentFileActions: (file: IFileMetadataEntity, storage: FormStorage): IToolbarItem[] => {\n\n const isDocumentEntity = isDocumentType(storage.data.bindingContext);\n\n if (!isDocumentEntity) {\n return null;\n }\n\n const rossumActivated = isRossumModuleActivated(storage);\n const isRossumEligible = rossumActivated && isFileRossumEligible(file, true);\n const isApplyingIsdoc = !!storage.getCustomData().isApplyingIsdocToDocument;\n const isApplyingRossum = !!storage.getCustomData().isApplyingRossumToDocument;\n\n return [\n {\n id: APPLY_ISDOC_ACTION,\n label: i18next.t(\"Document:Isdoc.ApplyIsdoc\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"UseIsDoc\",\n isDisabled: !file.IsIsdocReadable || isApplyingRossum,\n isBusy: isApplyingIsdoc\n },\n {\n id: APPLY_ROSSUM_ACTION,\n label: i18next.t(\"Document:Isdoc.ApplyRossum\"),\n itemType: ToolbarItemType.Icon,\n iconName: \"UseRossum\",\n isDisabled: !isRossumEligible || isApplyingIsdoc,\n isBusy: isApplyingRossum\n }\n ].filter(v => v);\n\n },\n showChanges: true,\n draftDef: {\n draftProperty: DocumentEntity.DocumentDraft,\n draftEntitySet: EntitySetName.DocumentDrafts,\n navigationToItem: DocumentItemDraftEntity.DocumentItem,\n navigationFromDraft: DocumentDraftEntity.Document,\n draftAdditionalProps: [{\n id: \"DateLastModified\"\n }, {\n id: \"Items/DocumentItem\"\n }, {\n id: DocumentDraftEntity.DateSourceSystemDocumentLastModified\n }, {\n id: DocumentDraftEntity.InvoiceServiceIntegrationId\n }, {\n id: DocumentDraftEntity.SourceSystemDocumentId\n }]\n },\n isDeletable: true,\n lockProperty,\n auditTrailSummary,\n permissions: args.permissions,\n formControl: args.formControl,\n getItemBreadCrumbText: args.getItemBreadCrumbText,\n additionalProperties: [\n { id: createPath(DocumentEntity.CreatedBy, \"Id\") },\n { id: \"VatClassificationSelection/Selection/Code\" },\n { id: createPath(DocumentEntity.VatClassificationSelection, DocumentVatClassificationSelectionEntity.VatClassification, DocumentVatClassificationEntity.Name) },\n { id: `${lockProperty}/CreatedBy` },\n { id: `${lockProperty}/Type` },\n { id: \"DocumentTypeCode\" },\n { id: \"DocumentStatusCode\" },\n { id: \"ClearedStatus\" },\n { id: \"DocumentDraft/DateLastModified\" },\n ...AttachmentsAdditionalProperties,\n ...NumberRangeAdditionalProperties,\n { id: \"TransactionCurrency\" },\n { id: \"Currency\" },\n { id: \"AmountNet\" },\n { id: \"Amount\" },\n { id: \"TransactionAmountNet\" },\n { id: DocumentEntity.ExchangeRatePerUnit },\n // https://solitea-cz.atlassian.net/browse/DEV-19266\n // we need Vat to be part of definition and the field cannot be made required (because 0% is null value)\n // reason for the other Items prices is probably similar\n { id: \"Items/Vat\" },\n // needed for items add button isDisabled check https://solitea-cz.atlassian.net/browse/DEV-19183\n { id: DocumentEntity.DocumentVatStatementStatus }\n ],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(args.translationFiles[0]),\n Note: {\n ...NoteFieldDef,\n width: EditableTextSizes.L\n },\n Labels: getLabelsDef(\"Document\"),\n DocumentSourceType: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n },\n isReadOnly: true\n },\n [DocumentEntity.DocumentSourceName]: {\n isReadOnly: true\n },\n TransactionCurrency: {\n ...CurrencyDef,\n label: i18next.t(\"Document:Form.Currency\"),\n affectedFields: [{ id: \"CashBox\" }],\n customizationData: {\n dependents: [\"ExchangeRatePerUnit\"]\n }\n },\n \"Items/Description\": {\n width: FastEntryInputSizes.L,\n additionalProperties: [\n { id: \"/Items/Amount\" },\n { id: \"/Items/AmountNet\" }\n ],\n // item templates, should not be used on Internal Documents\n ...(_isInternalDocument ? {} : {\n type: FieldType.Autocomplete,\n fieldSettings: {\n useAutoSelection: false,\n useTypingForward: false,\n minCharsToOpenMenu: 3,\n itemsFactory: (args: IGetValueArgs): Promise => {\n return getItemTemplateSelectItems(args.storage as FormStorage, CacheStrategy.Company);\n },\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs): ISelectItem[] => {\n // itemsFactory getItemTemplateSelectItems cannot have VatStatusCode filter,\n // in IdentifiedPerson the form can behave both as vatRegistered and notVatRegistered\n // => instead filter the items here, dynamically\n const vatStatusCode = shouldDocumentBehaveLikeVatRegisteredCompany({\n storage: args.storage,\n bindingContext: args.storage.data.bindingContext,\n context: args.storage.context,\n data: args.storage.data.entity\n }) ? VatStatusCode.VATRegistered : VatStatusCode.NotVATRegistered;\n\n return items.filter(item => (item.additionalData as IItemTemplateEntity)?.VatStatusCode === vatStatusCode);\n }\n }\n })\n },\n \"Items/TransactionAmount\": {\n width: FastEntryInputSizes.S,\n label: i18next.t(\"Document:Form.ItemAmount\"),\n // TransactionAmountNet is required on internal Document, but is not selected from saved draft entity,\n // because field for TransactionAmountNet is not visible\n additionalProperties: [{ id: \"/Items/TransactionAmountNet\" }],\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n },\n // TODO: IsInAutomatedVatInclusionMode isVisible => return true, even if it's not visible when BP on document is VatRegisteredEntity, discuss with T.Kral\n isDisabled: hasEverBeenVatRegisteredCompany(args.context) ? ifAny(isDocumentReverseCharged, isInAutomatedVatInclusionMode) : false,\n // set default value, so that the field can be removed in variant configuration\n defaultValue: null,\n customizationData: {\n useForCustomization: !_isInternalDocument\n }\n },\n \"Items/TransactionAmountNet\": {\n width: FastEntryInputSizes.S,\n label: i18next.t(\"Document:Form.ItemAmountNet\"),\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n },\n isVisible: shouldFieldBeVisibleForIdentifiedPerson,\n // set default value, so that the field can be removed in variant configuration\n defaultValue: null,\n customizationData: {\n useForCustomization: !_isInternalDocument,\n isRequired: isInVatPayerVariantContext\n }\n },\n \"Items/TransactionAmountVat\": {\n width: FastEntryInputSizes.S,\n label: i18next.t(\"Document:Form.ItemAmountVat\"),\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n },\n isDisabled: ifAny(isInAutomatedVatInclusionMode, isDocumentReverseCharged),\n isVisible: shouldFieldBeVisibleForIdentifiedPerson,\n // set default value, so that the field can be removed in variant configuration\n defaultValue: null,\n customizationData: {\n useForCustomization: !_isInternalDocument,\n isRequired: isInVatPayerVariantContext\n }\n },\n \"Items/LabelSelection/Labels\": {\n ...getLabelsDef(\"Document\"),\n width: FastEntryInputSizes.M,\n textAlign: TextAlign.Left,\n additionalProperties: [\n { id: \"/Items/LabelSelection/Labels/Label/Name\" },\n { id: \"/Items/LabelSelection/Labels/LabelHierarchy/Color\" }\n ],\n formatter: (val, args) => {\n const labelSelection = args.storage.getValue(args.bindingContext.getParent());\n const selectionCodeTitle = getItemLabelTitleFromSelectionCode(labelSelection);\n const tokensDef: ITokenProps[] = labelSelection?.Labels?.map((label: IDocumentItemLabelEntity) => ({\n id: label.Id,\n title: label.Label.Name,\n color: label.LabelHierarchy.Color\n })) ?? [];\n if (tokensDef.length === 0) {\n return `${DASH_CHARACTER} ${selectionCodeTitle}`;\n }\n return {\n value: ,\n tooltip: \"\"\n };\n },\n fieldSettings: {\n ...(getLabelsDef(\"Document\").fieldSettings),\n noRecordText: i18next.t(\"Document:Labels.None\"),\n renderDefaultGroupWithoutCheckboxes: true,\n additionalItems: [{\n label: i18next.t(\"Document:Labels.Default\"),\n id: SelectionCode.Default,\n groupId: SelectGroups.Default,\n additionalData: {\n closeOnSelection: true\n }\n }],\n trailingTextWithoutFocus: args => {\n return getItemLabelTitleFromSelectionCode(args.storage.getValue(args.bindingContext.getParent()));\n }\n },\n comparisonFunction: (entity1: IEntity, entity2: IEntity, bc: BindingContext): boolean => {\n const selectionCodeBc = bc.getParent().navigate(\"SelectionCode\");\n const dataBindingContext = bc.getRootParent();\n\n const selection1 = getBoundValue({\n bindingContext: selectionCodeBc,\n data: entity1,\n dataBindingContext\n });\n const selection2 = getBoundValue({\n bindingContext: selectionCodeBc,\n data: entity2,\n dataBindingContext\n });\n\n if (selection1 !== selection2) {\n return false;\n }\n\n const labels1 = getBoundValue({ bindingContext: bc, data: entity1, dataBindingContext });\n const labels2 = getBoundValue({ bindingContext: bc, data: entity2, dataBindingContext });\n\n return (labels1?.length === labels2?.length) && (!labels1?.length || labels1?.every((l1: ILabelEntity) => !!labels2.find((l2: ILabelEntity) => l2.Id === l1.Id)));\n }\n },\n \"Items/LabelSelection/SelectionCode\": {\n customizationData: {\n useForCustomization: false\n },\n defaultValue: SelectionCode.Default\n },\n TransactionAmountVat: {\n isRequired: false,\n isReadOnly: true,\n customizationData: {\n isRequired: false\n }\n },\n ...(addVatRule && addNonTaxAccount ? { [`Items/${ITEMS_VAT_DEDUCTION_PATH}`]: getItemsDeductionDef(type) } : {}),\n ...(addVatRule ? { [SAVED_VATS_PATH]: getGeneralSavedVats(type, false, addNonTaxAccount) } : {}),\n ...getVatFieldsDef(true, type, \"VatClassificationSelection/VatClassification/\"),\n ...getVatFieldsDef(true, type, \"Items/VatClassificationSelection/VatClassification/\"),\n \"Items/VatClassificationSelection/SelectionCode\": {\n useForValidation: false,\n customizationData: {\n useForCustomization: false\n }\n },\n ExchangeRatePerUnit: {\n ...ExchangeRatePerUnit,\n label: i18next.t(\"Document:Form.CurrencyRate\")\n }\n },\n groups: [\n {\n id: \"Note\",\n title: i18next.t(\"Document:FormGroup.Note\"),\n rows: [[{ id: \"Note\" }]]\n },\n {\n id: \"document\",\n title: i18next.t(\"Document:FormGroup.Document\"),\n rows: [[{ id: \"TransactionCurrency\" }, { id: DocumentEntity.ExchangeRatePerUnit }, { id: \"Labels\" }]]\n },\n {\n id: \"date\",\n title: i18next.t(\"Document:FormGroup.Date\"),\n rows: [[], []]\n },\n addVatRule && hasEverBeenVatRegisteredCompany(args.context, false) ? {\n id: VAT_ASSIGNMENT_GROUP_ID,\n rows: [[{ id: SAVED_VATS_PATH }]],\n title: i18next.t(\"Document:FormGroup.Vat\"),\n isVisible: (args: IGetValueArgs) => {\n // proforma invoices are always treated as vat registered\n if (_isProforma) {\n return true;\n }\n\n if (isIdentifiedPersonCompany(args.context)) {\n return !isAgendaDomesticRule(args) && !(_isIssued && isThirdWorldsRule(args));\n }\n\n return true;\n }\n } : null,\n {\n id: \"Items\", // to be compatible with FormView.load\n title: i18next.t(\"Document:FormGroup.LineItems\"),\n lineItems: {\n additionalFields: [\n {\n id: \"LabelSelection/Labels\"\n },\n {\n id: \"VatClassificationSelection/SelectionCode\"\n }, ...(addVatRule ? getVatRowFields({\n prefix: \"VatClassificationSelection/VatClassification/\",\n addNonTaxAccount\n }) : [])],\n collection: \"Items\",\n showLineNumbers: true,\n order: \"Order\",\n columns: getLineItemsColumns(args.context, _isReceived)\n }\n },\n {\n id: DOCUMENT_TABLES_GROUP_ID,\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n },\n tabs: [\n ...(isCashBasisAccounting ? [{\n id: `cbaEntryLedger_${args.entitySet}`,\n title: i18next.t(\"Document:FormTab.CbaEntries\"),\n table: getCbaEntriesTable(args.documentType, args.context)\n }] : []),\n ...(hasAccountAssignment ? [{\n id: `accountingJournal_${args.entitySet}`,\n title: i18next.t(\"Document:FormTab.JournalEntries\"),\n table: getAccountJournalTable({\n hasDocItem: true,\n isPaymentDocument: false\n })\n }] : []),\n {\n id: \"PairedDocuments\",\n title: i18next.t(\"Document:FormTab.PairedDocuments\"),\n table: getDocumentPairedTable({\n selectQuery: `not(TypeCode in (${transformToODataString([\n DocumentLinkTypeCode.CorrectiveWithClearing, DocumentLinkTypeCode.CorrectiveWithoutClearing,\n DocumentLinkTypeCode.InternalDocumentClearing, DocumentLinkTypeCode.Payment,\n DocumentLinkTypeCode.ExchangeRateGain, DocumentLinkTypeCode.ExchangeRateLoss, ...DEFERRED_PLANS_LINK_TYPES,\n ...REC_ADJ_LINK_TYPES, ...ACCRUED_DOC_LINK_ALL_TYPES,\n ...(args.documentType !== DocumentTypeCode.InternalDocument ? [DocumentLinkTypeCode.AutomatedVATInclusionInputVAT, DocumentLinkTypeCode.AutomatedVATInclusionOutputVAT] : []),\n DocumentLinkTypeCode.ProformaInvoiceDeduction\n ], ValueType.String)}))`,\n isCbaCompany: isCashBasisAccounting\n })\n },\n getReceivableAdjustmentsTab(args.documentType === DocumentTypeCode.InternalDocument, isCashBasisAccounting),\n {\n id: DOCUMENT_CLEARING_FORM_TAB_ID,\n title: i18next.t(\"Document:FormTab.Clearing\"),\n table: getDocumentClearingTableDef()\n },\n {\n id: \"automatedVatInclusion\",\n title: i18next.t(\"Document:FormTab.AutomatedVatInclusion\"),\n table: getAutomatedVatInclusionTable({ isCbaCompany: isCashBasisAccounting })\n }\n ]\n }\n ].filter(value => value)\n };\n\n const itemsGroup = form.groups.find(g => g.id === \"Items\");\n\n if (hasAccountAssignment) {\n form.additionalProperties.push({ id: \"AccountAssignmentSelection/Selection/Code\" });\n form.fieldDefinition = {\n ...form.fieldDefinition,\n FiscalPeriod: {\n additionalProperties: [{\n id: FiscalPeriodEntity.Name\n }],\n formatter: (val: TValue, args: IFormatOptions) => {\n return args.entity?.FiscalPeriod?.Name ?? \"\";\n },\n isDisabled: true,\n // FiscalPeriod is readOnly in metadata, but we want to show the field as disabled\n isReadOnly: false,\n // FiscalPeriod disabled (lock) status is tied to DateAccountingTransaction\n backendPath: \"DateAccountingTransaction\"\n },\n DateAccountingTransaction: {\n defaultValue: () => {\n return getWorkDate();\n },\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs) => {\n return dateAccountingCustomValidator(value, args);\n }\n }\n },\n isRequired: true,\n affectedFields: [{ id: DocumentEntity.NumberOurs }]\n },\n ...getAccountSelectionFieldsDef(args.documentType),\n ...getAccountAssignmentItemDef(\"Items\", args.documentType, true, hasAccountAssignment)\n };\n form.groups = arrayInsert(form.groups, {\n ...getAccAssignmentGroup()\n }, 3);\n\n addDateGroupDateField(form, DocumentEntity.DateAccountingTransaction);\n addDateGroupDateField(form, DocumentEntity.FiscalPeriod);\n\n const index = itemsGroup.lineItems.columns.findIndex(col => col.id === \"TransactionAmount\");\n\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: \"AccountAssignmentSelection/AccountAssignment\" }, index !== -1 ? index + 1 : 6);\n }\n\n if (isCashBasisAccounting) {\n form.groups = arrayInsert(form.groups, {\n ...getCashBasisAccountingGroup()\n }, 3);\n\n form.fieldDefinition = {\n ...form.fieldDefinition,\n ...getCbaCategoryItemDef(\"Items\", false, _isIssued),\n ...getCashBasisAccountingFieldsDef(DocumentEntity.CbaCategory, false, _isIssued)\n };\n\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: CBA_CATEGORY_PATH }, 6);\n itemsGroup.lineItems.additionalFields = [...itemsGroup.lineItems.additionalFields,\n {\n id: createPath(RegularDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.IsAssetAcquisition)\n }, {\n id: createPath(RegularDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxImpact)\n }, {\n id: createPath(RegularDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.TaxPercentage)\n }, {\n id: createPath(RegularDocumentItemEntity.CbaCategory, DocumentItemCbaCategoryEntity.Category)\n }];\n }\n form.groups.find(group => group.id === \"Tabs\").tabs.forEach(tab => tab.table.preventAutoReset = true);\n\n return {\n entitySet: args.entitySet,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = null;","import { isJobFinished } from \"@components/backgroundJobs/BackgroundJobs.utils\";\nimport {\n EntitySetName,\n IBackgroundJobEntity,\n IDocumentDraftExtractRossumParameters,\n IFileMetadataEntity,\n OdataActionName\n} from \"@odata/GeneratedEntityTypes\";\nimport { WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { getOneFetch, isAbortException } from \"@utils/oneFetch\";\nimport { TWebsocketMessage } from \"@utils/websocketManager/Websocket.types\";\nimport { isBackgroundJobWebsocketMessage } from \"@utils/websocketManager/Websocket.utils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { RossumProgressAnim } from \"../../animations/Animations\";\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport Dialog from \"../../components/dialog\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { getBackgroundJobFromWebsocketMessage } from \"../../contexts/backgroundJobsContext/BackgroundJobsContext.utils\";\nimport WebsocketManager from \"../../utils/websocketManager/WebsocketManager\";\n\n// 2 mins\nconst RossumTimeoutLimit = 120000;\n\nenum RossumProgressDialogScreen {\n Progress = \"Progress\",\n TimeOutFail = \"TimeOutFail\"\n}\n\ninterface IProps extends WithTranslation, WithOData {\n draftId: number;\n file: IFileMetadataEntity;\n onFinish: (rossumFinished: boolean) => void;\n}\n\n\ninterface IState {\n screen: RossumProgressDialogScreen;\n}\n\nclass RossumProgressDialog extends React.PureComponent {\n static contextType = AppContext;\n\n rossumBackgroundJobId: number = null;\n timeout: ReturnType;\n oneFetch = getOneFetch();\n\n state: IState = {\n screen: RossumProgressDialogScreen.Progress\n };\n\n unsubscribeWebsocket: () => void;\n resolveFn: (value: boolean) => void;\n\n constructor(props: IProps) {\n super(props);\n\n this.handleMessage = this.handleMessage.bind(this);\n }\n\n componentDidMount() {\n this.init();\n }\n\n componentWillUnmount() {\n this.oneFetch.abort();\n }\n\n handleMessage(message: TWebsocketMessage) {\n if (!isBackgroundJobWebsocketMessage(message)) {\n return;\n }\n\n const backgroundJob = getBackgroundJobFromWebsocketMessage(message);\n\n if (backgroundJob.Id === this.rossumBackgroundJobId && isJobFinished(backgroundJob)) {\n this.finnish(true);\n }\n }\n\n finnish = (resolve: boolean) => {\n this.rossumBackgroundJobId = null;\n clearTimeout(this.timeout);\n this.resolveFn(resolve);\n };\n\n init = async () => {\n const promise = new Promise((resolve) => {\n this.resolveFn = resolve;\n });\n const fnFailed = () => {\n this.finnish(false);\n this.setState({\n screen: RossumProgressDialogScreen.TimeOutFail\n });\n };\n\n this.timeout = setTimeout(fnFailed, RossumTimeoutLimit);\n\n try {\n const wrapper = this.props.oData.getEntitySetWrapper(EntitySetName.DocumentDrafts);\n const backgroundJob = await wrapper.action(OdataActionName.DocumentDraftExtractRossum, this.props.draftId, {\n FileMetadata: {\n \"@odata.id\": `${EntitySetName.FilesMetadata}(${this.props.file.Id})`\n }\n } as IDocumentDraftExtractRossumParameters, { fetchFn: this.oneFetch.fetch }) as ODataQueryResult;\n\n this.rossumBackgroundJobId = backgroundJob.value.Id;\n\n this.unsubscribeWebsocket = WebsocketManager.subscribe({\n callback: this.handleMessage,\n types: [WebSocketMessageTypeCode.BackgroundJob]\n });\n } catch (error) {\n if (isAbortException(error)) {\n return;\n } else {\n fnFailed();\n }\n }\n\n // wait until the background job finishes\n const res = await promise;\n\n if (res) {\n this.props.onFinish(res);\n }\n };\n\n handleCancel = async () => {\n const shouldCancelCall = this.rossumBackgroundJobId !== null;\n\n // call finnish first, because it will clear the timeout\n this.finnish(false);\n\n if (shouldCancelCall) {\n const wrapper = this.props.oData.getEntitySetWrapper(EntitySetName.DocumentDrafts);\n\n try {\n await wrapper.action(OdataActionName.DocumentDraftCancelRossum, this.props.draftId, {\n BackgroundJobId: this.rossumBackgroundJobId\n });\n } catch {\n // fail silently\n }\n }\n\n this.props.onFinish(false);\n };\n\n handleTryAgain = () => {\n this.setState({\n screen: RossumProgressDialogScreen.Progress\n });\n this.init();\n };\n\n renderContent = (): React.ReactElement => {\n if (this.state.screen === RossumProgressDialogScreen.Progress) {\n return (\n
    \n {this.props.t(\"Inbox:RossumProgressDialog.Description\")}\n \n
    \n );\n } else {\n return this.props.t(\"Inbox:RossumProgressDialog.FailDescription\");\n }\n\n };\n\n renderButtons = (): React.ReactElement => {\n return (\n \n \n {this.state.screen === RossumProgressDialogScreen.TimeOutFail &&\n \n }\n \n );\n };\n\n render() {\n return (\n \n {this.renderContent()}\n \n );\n }\n}\n\nexport default withTranslation([\"Inbox\", \"Common\"])(withOData(RossumProgressDialog));","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { EntitySetName, EntityTypeName, IBusinessPartnerEntity } from \"@odata/GeneratedEntityTypes\";\nimport { LanguageCode } from \"@odata/GeneratedEnums\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { DATABOX_REST_URL, REST_API_URL } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport customFetch from \"../../utils/customFetch\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport SendMessageDialog, { IDataBoxSettings, IEmailSettings, IFileSettings } from \"../messages/SendMessageDialog\";\nimport { getDocumentExportFileName, getInvoicePdfUrl } from \"./Document.utils\";\nimport { IDocumentCustomData } from \"./DocumentInterfaces\";\n\ninterface IProps extends WithTranslation, WithOData {\n storage: FormStorage;\n onAfterSend: () => void;\n}\n\ninterface IState {\n emailSettings: IEmailSettings;\n dataBoxSettings: IDataBoxSettings;\n fileSettings?: IFileSettings[];\n}\n\nconst DISPATCH_DOCUMENT_URL = `${REST_API_URL}/Dispatch/Document`;\n\nclass SendInvoiceDialog extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static findDataBoxIdByLegalUrl = `${DATABOX_REST_URL}/getId/`;\n\n state: IState = {\n emailSettings: {\n sendMessageUrl: `${DISPATCH_DOCUMENT_URL}/email`\n },\n dataBoxSettings: {\n sendMessageUrl: `${DISPATCH_DOCUMENT_URL}/databox`\n }\n };\n\n get message() {\n return (<>Vážená paní / Vážený pane,

    \n vystavili jsme Vám fakturu.

    );\n }\n\n getEmailSettings = async () => {\n const id = this.props.storage?.data.entity?.BusinessPartner?.BusinessPartner?.Id;\n const selectGroups = [];\n const contacts: ISelectItem[] = [];\n const groupId = \"group1\";\n\n function _add(data: IEntity) {\n if (data.Email) {\n const name = [data.FirstName, data.LastName].filter(i => !!i).join(\" \");\n contacts.push({\n id: data.Email,\n label: data.Email,\n groupId,\n tabularData: [data.Email, name, data.Role],\n });\n }\n }\n\n if (id) {\n const result = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.BusinessPartners).query()\n .filter(`Id eq ${id}`)\n .expand(\"Contacts\",\n g => g.select(\"Email\", \"FirstName\", \"LastName\", \"Role\")\n .orderBy(\"Order\"))\n .top(1)\n .fetchData();\n\n const businessPartner = result.value[0];\n\n if (businessPartner.Contacts) {\n for (const contact of businessPartner.Contacts) {\n _add(contact);\n }\n }\n\n if (contacts.length) {\n selectGroups.push({\n id: groupId,\n title: businessPartner.Name,\n hideDivider: true\n });\n }\n }\n\n return {\n ...this.state.emailSettings,\n selectGroups,\n selectItems: contacts\n };\n };\n\n getDataBoxSettings = async () => {\n const legalNumber = this.props.storage?.data.entity?.BusinessPartner?.LegalNumber;\n const response = await customFetch(`${SendInvoiceDialog.findDataBoxIdByLegalUrl}${legalNumber}`);\n let defaultId = null;\n if (response.ok) {\n defaultId = await response.text();\n }\n\n return {\n ...this.state.dataBoxSettings,\n defaultId\n };\n };\n\n handleCloseDialog = () => {\n this.props.storage.setCustomData({ sendingMessageDialogOpen: false });\n this.props.storage.refresh();\n };\n\n onAfterOpen = async () => {\n const { entity } = this.props.storage?.data ?? {};\n if (!entity) {\n return;\n }\n const [emailSettings, fileName] = await Promise.all([this.getEmailSettings(), getDocumentExportFileName(this.context, \"document\", entity.Id)]);\n const dataBoxSettings = await this.getDataBoxSettings();\n\n const fileSettings = [{\n previewUrl: getInvoicePdfUrl({\n documentType: this.props.storage.data.bindingContext.getEntityType().getName() as EntityTypeName,\n entityId: this.props.storage?.data.entity?.Id,\n companyId: this.context.getCompany().Id,\n isForPrint: true,\n language: LanguageCode.Czech\n }),\n name: fileName,\n fileId: BindingContext.NEW_ENTITY_ID_PROP as unknown as number\n }];\n this.setState({ emailSettings, dataBoxSettings, fileSettings });\n };\n\n render = () => {\n if (!this.props.tReady) {\n return null;\n }\n const company = this.context.getCompany();\n const subject = `${company.LegalName}: ${this.props.t(\"DataBox:SendDialog.Invoice\")} ${this.props.storage?.data.entity?.NumberOurs}`;\n const additionalRequestData = {\n DocumentId: this.props.storage.data.entity.Id\n };\n\n return (\n \n );\n };\n}\n\nexport default withTranslation([\"DataBox\"], {withRef: true})(withOData(SendInvoiceDialog));","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\nimport { IHeaderIcon } from \"@components/header/Header\";\nimport { EditLockIcon } from \"@components/icon\";\nimport { formatDateToDateString, getWorkDateFromLocalStorage } from \"@components/inputs/date/utils\";\nimport { TSelectItemId } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs, isFieldDisabled, isVisible, isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport { getValidVats } from \"@components/smart/GeneralFieldDefinition\";\nimport { getCollapsedGroupId } from \"@components/smart/Smart.utils\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { getBoundValue, setNestedValue } from \"@odata/Data.utils\";\nimport { getFieldTypeFromProperty, getValidatorTypeFromProperty, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n BankAccountEntity,\n BillingAddressEntity,\n BusinessPartnerEntity,\n DocumentBusinessPartnerEntity,\n DocumentCbaCategoryEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemEntity,\n DocumentItemVatClassificationSelectionEntity,\n DocumentVatClassificationEntity,\n DocumentVatClassificationSelectionEntity,\n ElectronicSubmissionEntity,\n EntitySetName,\n EntityTypeName,\n IBusinessPartnerEntity,\n IDocumentDraftEntity,\n IDocumentDraftExtractIsdocParameters,\n IDocumentEntity,\n IElectronicSubmissionEntity,\n IFileMetadataEntity,\n IInternalDocumentItemEntity,\n InvoiceIssuedEntity,\n InvoiceReceivedEntity,\n IProformaInvoiceReceivedEntity,\n IRegularDocumentItemEntity,\n OdataActionName,\n RegularDocumentItemEntity,\n SelectionEntity,\n VatClassificationEntity,\n VatClassificationSelectionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ActionTypeCode,\n CompanyPermissionCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n FiscalYearStatusCode,\n LanguageCode,\n PayableReceivableTypeCode,\n PaymentMethodCode,\n SelectionCode,\n VatCode,\n VatReverseChargeCode\n} from \"@odata/GeneratedEnums\";\nimport { BatchRequest, EntitySetWrapper, IBatchResult } from \"@odata/OData\";\nimport { getDefaultLogActionDetail, logAction } from \"@odata/OData.utils\";\nimport {\n handleItemTemplateChange,\n invalidateItemTemplateSelectItems\n} from \"@pages/admin/itemTemplates/ItemTemplates.utils.shared\";\nimport { BusinessPartnerSaveErrors } from \"@pages/businessPartner/BusinessPartner.shared.utils\";\nimport VatLockOverrideConfirmDialog from \"@pages/electronicSubmission/VatLockOverrideConfirmDialog\";\nimport { IOnVatLockOverrideConfirmDialogFinish } from \"@pages/electronicSubmission/VatLockOverrideConfirmDialog.utils\";\nimport { handleBankAccountOrIBANBlur } from \"@utils/BankUtils\";\nimport {\n getCompanyCurrency,\n isAccountAssignmentCompany,\n isCashBasisAccountingCompany,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { isDefined, isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { logger } from \"@utils/log\";\nimport { getOneFetch } from \"@utils/oneFetch\";\nimport { checkPermissionWithOwnPermission } from \"@utils/permissionUtils\";\nimport Big from \"big.js\";\nimport { saveAs } from \"file-saver\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { Button } from \"../../components/button\";\nimport { AppContext, ContextEvents, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withDomManipulator } from \"../../contexts/domManipulator/withDomManipulator\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FormMode, PageViewMode, Status, ValidationErrorType, ValidatorType } from \"../../enums\";\nimport { EmptyObject, TRecordAny } from \"../../global.types\";\nimport { IValidationResult, ModelEvent } from \"../../model/Model\";\nimport { Validator } from \"../../model/Validator\";\nimport BindingContext, { createPath, IEntity, TEntityPropValue } from \"../../odata/BindingContext\";\nimport DateType, { getUtcDayjs } from \"../../types/Date\";\nimport NumberType from \"../../types/Number\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { APPLY_ISDOC_ACTION, APPLY_ROSSUM_ACTION } from \"../../views/fileView/FileViewUtils\";\nimport DraftFormView from \"../../views/formView/DraftFormView\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport {\n FormStorage,\n IContextInitArgs,\n IFormStorageSaveResult,\n IGetCorrectErrorBc,\n ISaveArgs,\n IValidateAndSave,\n TCustomResponseHandler,\n TShouldUseCustomResHandler\n} from \"../../views/formView/FormStorage\";\nimport TemporalFormDialog from \"../../views/formView/TemporalFormDialog\";\nimport {\n applyAccountFromTemplate,\n correctAccountIdAfterChange,\n correctAccountIds,\n getCurrentCoAId,\n handleAccAssignmentChange,\n handleAccAssignmentChildrenChange,\n handleItemAccAssignmentChange,\n handleItemAccAssignmentDialog,\n invalidateAccountAssignments,\n prepareAccountAssignmentsForSave,\n processAccountAssignmentSelection,\n refreshAccountIdsForActualFiscalYear,\n sendAdditionalRequestForAccountAssignment,\n setCorrectSpecialItemsForAccountAssignment\n} from \"../accountAssignment/AccountAssignment.utils\";\nimport { AccountAssignmentDialog } from \"../accountAssignment/AccountAssignmentDialog\";\nimport {\n AUTOMATED_VAT_INCLUSION_MODE_PATH,\n clearVatClassificationFields,\n correctDataAfterVatChildrenChangeOnDocument,\n correctSelectionCode,\n correctVatDeduction,\n correctVatIds,\n correctVatSelectionFields,\n getClassificationCodeFromCountry,\n getSelectionCodeDependentField,\n getVatAssignmentGroupId,\n getVatConfigOptions,\n getVatDependentFields,\n getVatGroupRowsDef,\n handleCbaCategoryChange,\n hasVatProportionalDeduction,\n isDocumentReverseCharged,\n isInAutomatedVatInclusionMode,\n isProportionalDeduction,\n isVatRegisteredEntity,\n ITEMS_VAT_DEDUCTION_PATH,\n IVatConfigOptions,\n SAVED_VATS_PATH,\n VAT_CLASSIFICATION_PATH,\n VAT_REVERSE_CHARGE_SELECT_PATH\n} from \"../admin/vatRules/VatRules.utils\";\nimport { withMinorAssetPairing } from \"../asset/minorAsset/withMinorAssetPairing\";\nimport {\n addBusinessPartnerBankAccountRequest,\n addCreateReceiptRequest,\n CREATE_RECEIPT_PATH,\n deleteEmptyBankAccount,\n getBankBlurArgs,\n handleBankFieldChange,\n handleCreateReceiptsChange,\n handlePaymentMethodChange,\n IBankAccountArgs,\n prepareSavedAccounts,\n SAVED_ACCOUNTS_PATH,\n setVariableSymbolFromNumberOurs,\n tryToCreateIBAN,\n tryToCreateSwift\n} from \"../banks/bankAccounts/BankAccounts.utils\";\nimport {\n addBusinessPartnerContactRequest,\n handleBusinessPartnerBlur,\n handleBusinessPartnerChange,\n isBusinessPartnerField,\n isNewPartnerWithData,\n prepareNewBusinessPartner,\n setBusinessPartnerGroupStatus,\n setDefaultsFromBusinessPartner,\n setSavedContactItems\n} from \"../businessPartner/BusinessPartner.utils\";\nimport {\n CBA_CATEGORY_PATH,\n handleCustomCbaCategoryChange,\n handleItemCbaCategoryChange,\n loadCategoriesMap,\n setCbaDefaultValuesForNotVisibleFields,\n setCorrectSpecialItemsForItemCategory\n} from \"../cashBasisAccounting/CashBasisAccounting.utils\";\nimport CustomCategoryTemporalDialog from \"../cashBasisAccounting/CustomCategoryTemporalDialog\";\nimport { setMatchingFiscalPeriod } from \"../fiscalYear/FiscalYear.utils\";\nimport RossumDialog from \"../inbox/RossumDialog\";\nimport RossumProgressDialog from \"../inbox/RossumProgressDialog\";\nimport {\n replaceWildcards,\n replaceWildcardsAfterDateChange,\n setMatchingNumberRange\n} from \"../numberRange/NumberRange.utils\";\nimport {\n _getId,\n anyPathEquals,\n calcLineItemValues,\n DefaultDueDays,\n DRAFT_ITEM_ID_PATH,\n FORCE_VAT_LOCK_OVERRIDE_DATE_PARAM,\n FORCE_VAT_LOCK_OVERRIDE_PARAM,\n getDocumentLinkBcs,\n getExchangeRate,\n getFiscalDataCorrespondingToDateAccountingTransaction,\n getInvoicePdfUrl,\n getVatItemsDecisiveDateName,\n hasCorrectiveDocument,\n hasMetadataRule,\n hasSavedDraft,\n isReceived,\n IssuedDocumentTypes,\n lineItemsTriggerProps,\n loadVats,\n MetadataLockType,\n refreshExchangeRate,\n setDefaultLabelsFromEntityToItems,\n setLockBreadcrumbs,\n validateDecisiveDate\n} from \"./Document.utils\";\nimport { DocumentDateGroupRowsAndOrder } from \"./DocumentDef\";\nimport { IDocumentExtendedEntity, IDocumentFormViewProps } from \"./DocumentInterfaces\";\nimport { withAccruals } from \"./extensions/accruals/withAccruals\";\nimport { ItemsSummariesPaths } from \"./extensions/itemsSummary/ItemsSummary.utils\";\nimport { loadRelatedProformas, RELATED_PROFORMA_ADDITIONAL_RESULT_IDX } from \"./extensions/proforma/Proforma.utils\";\nimport { withTimeResolution } from \"./extensions/timeResolution/withTimeResolution\";\nimport SendInvoiceDialog from \"./SendInvoiceDialog\";\n\n// for DocumentItem entity type\nconst lineItemsForceValidatePropsDocItem = [\n \"TransactionUnitPrice\", \"TransactionUnitPriceVat\", \"TransactionUnitPriceNet\"\n];\n\n// for RegularDocumentItem entity type => not used for Internal Document\nconst lineItemsForceValidatePropsRegularDocItem = [\n \"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\"\n];\n\ntype TDocumentCurrencyDependentProps =\n \"Amount\"\n | \"AmountNet\"\n | \"AmountVat\"\n | \"UnitPrice\"\n | \"UnitPriceNet\"\n | \"UnitPriceVat\";\ntype TDocumentTransactionProps =\n \"TransactionAmount\"\n | \"TransactionAmountNet\"\n | \"TransactionAmountVat\"\n | \"TransactionUnitPrice\"\n | \"TransactionUnitPriceNet\"\n | \"TransactionUnitPriceVat\";\n\nconst currencyDependentFieldsDocItem: TDocumentCurrencyDependentProps[] = [\"AmountNet\", \"AmountVat\"];\nconst currencyDependentFieldsRegularDocItem: TDocumentCurrencyDependentProps[] = [\"UnitPrice\", \"UnitPriceNet\", \"UnitPriceVat\"];\n\nconst lineItemsRecalculateCheckProps = [\"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\"];\n\nclass DocumentFormView

    extends DraftFormView {\n static contextType = AppContext;\n // sadly, breaks typescript type checking\n // context: React.ContextType;\n\n documentTypeCode: DocumentTypeCode;\n _copyAmountFromDraft = true;\n\n get _documentItemDomainType(): string {\n return this.documentTypeCode === DocumentTypeCode.InternalDocument ? EntityTypeName.InternalDocumentItem : EntityTypeName.RegularDocumentItem;\n }\n\n // when recalculating line items value, there can be deviations in the results because we only round value to two decimal places\n // we want the last changed value to remain the same as is currently in the input when quantity/vat rate is changed\n _lineItemsLastChanged: string = null;\n _lastChangedLineItemId: number = null;\n\n constructor(props: P) {\n super(props);\n\n this.onAfterLoad = this.onAfterLoad.bind(this);\n this.renderSaveButtons = this.renderSaveButtons.bind(this);\n this.getSuccessMessage = this.getSuccessMessage.bind(this);\n this.setMatchingNumberRangeForDocument = this.setMatchingNumberRangeForDocument.bind(this);\n this.refreshFormAfterDecisiveDateChange = this.refreshFormAfterDecisiveDateChange.bind(this);\n this.documentSpecificChangeHandlers = this.documentSpecificChangeHandlers.bind(this);\n this.documentSpecificBlurHandlers = this.documentSpecificBlurHandlers.bind(this);\n this.handleVatItemsDecisiveDateChange = this.handleVatItemsDecisiveDateChange.bind(this);\n this.confirmationBeforeSave = this.confirmationBeforeSave.bind(this);\n }\n\n get isPostable(): boolean {\n return this.hasAccountAssignment;\n }\n\n get isRegularDocumentItem(): boolean {\n return this.documentTypeCode !== DocumentTypeCode.InternalDocument;\n }\n\n // for proforma, we want to keep Amount (with Vat) as default when recalculating prices\n get defaultItemLastChangedProp(): keyof IRegularDocumentItemEntity {\n return null;\n }\n\n // todo: keyof T where T is type, which is handled by the FormView\n get datePropForNumberRange(): string {\n if (isCashBasisAccountingCompany(this.context)) {\n return this.isReceivedDoc() ? InvoiceReceivedEntity.DateReceived : InvoiceIssuedEntity.DateIssued;\n }\n return DocumentEntity.DateAccountingTransaction;\n }\n\n get datePropForCurrencyExchangeRate(): string {\n if (isCashBasisAccountingCompany(this.context)) {\n if (isVatRegisteredCompany(this.context)) {\n return this.isReceivedDoc() ? InvoiceReceivedEntity.DateVatDeduction : InvoiceIssuedEntity.DateTaxableSupply;\n }\n return this.isReceivedDoc() ? InvoiceReceivedEntity.DateReceived : InvoiceIssuedEntity.DateIssued;\n }\n return DocumentEntity.DateAccountingTransaction;\n }\n\n get hasAccountAssignment(): boolean {\n return isAccountAssignmentCompany(this.context);\n }\n\n get isCashBasisAccountingCompany(): boolean {\n return isCashBasisAccountingCompany(this.context);\n }\n\n get saveButtonTranslation(): string {\n const { storage } = this.props;\n const isNew = storage.data.bindingContext.isNew();\n const isSavedWithoutChanges = this.isSavedWithoutChanges();\n const newOrNotDirty = isNew || isSavedWithoutChanges;\n let key;\n\n if (this.hasAccountAssignment && this.isPostable) {\n key = newOrNotDirty ? \"SaveAndPost\" : \"ChangeAndPost\";\n } else {\n key = newOrNotDirty ? \"Save\" : \"Change\";\n }\n\n return storage.t(`Document:Buttons.${key}`).toString();\n }\n\n // For documents forms, we use preventAutoReset to prevent SmartODataTableBase from auto resetting,\n // to prevent wrong and multiple fetches, caused when binding context changes (new row is selected/copying/adding new row)\n\n shouldComponentUpdate(nextProps: Readonly, nextState: Readonly): boolean {\n return this.props.storage?.formMode === FormMode.AuditTrail || nextState !== this.state;\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.props.storage.emitter.on(ModelEvent.CustomFileAction, this.handleCustomFileAction);\n this.props.storage.emitter.on(ModelEvent.FilesUploaded, this.handleFilesUploaded);\n this.props.storage.emitter.on(ModelEvent.RequestCreateDraft, this.handleRequestCreateDraft);\n this.registerHeader();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.props.storage.emitter.off(ModelEvent.CustomFileAction, this.handleCustomFileAction);\n this.props.storage.emitter.off(ModelEvent.FilesUploaded, this.handleFilesUploaded);\n this.props.storage.emitter.off(ModelEvent.RequestCreateDraft, this.handleRequestCreateDraft);\n }\n\n componentDidUpdate(prevProps: Readonly

    , prevState: Readonly): void {\n super.componentDidUpdate(prevProps, prevState);\n this.registerHeader();\n }\n\n registerHeader = (): void => {\n if (this.props.storage.data.bindingContext) {\n const bc = this.props.storage.data.bindingContext.navigate(\"Currency\");\n this.props.storage.addCustomRef(this._refHeader.current, bc);\n\n const numberOursBc = this.props.storage.data.bindingContext.navigate(\"NumberOurs\");\n this.props.storage.addCustomRef(this._refHeader.current, numberOursBc);\n }\n };\n\n isReceivedDoc = (): boolean => {\n return isReceived(this.documentTypeCode);\n };\n\n refreshDateDue = (dueDays?: number): void => {\n const { storage } = this.props;\n const date = storage.getValueByPath(InvoiceIssuedEntity.DateIssued);\n const daysDuePath = `BusinessPartner/BusinessPartner/${this.isReceivedDoc() ? \"Received\" : \"Issued\"}DocumentDefault/DaysDue`;\n if (isDefined(dueDays)) {\n // when BP is changed, this method is called with param - default dueDays of new BP.\n // we need set the value to storage, so we can use it later when date has changed.\n storage.setValueByPath(daysDuePath, dueDays);\n } else {\n dueDays = storage.getValueByPath(daysDuePath);\n }\n\n const dueDate = getUtcDayjs(date).add(dueDays ?? DefaultDueDays, \"day\");\n\n if (dueDate.isValid()) {\n this.props.storage.setValueByPath(\"DateDue\", dueDate.toDate());\n }\n };\n\n handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n if (!this.isEntityReady) {\n return false; // no shortcuts when entity is not yet ready\n }\n\n if (this.props.storage.pageViewMode === PageViewMode.FormReadOnly) {\n return super.handleKeyboardShortcut(shortcut, event);\n }\n\n if (shortcut === KeyboardShortcut.ALT_C) {\n if (this.shouldAllowCopy() && !this.shouldDisableCopyButton() && !this.props.storage.isBusy()) {\n this.handleCopy();\n\n return true;\n }\n\n return false;\n } else if (shortcut === KeyboardShortcut.ALT_S) {\n if (this.isPostable && !this.shouldDisableSavePostButton()) {\n this.handleSaveAndPostClick();\n return true;\n } else if (!this.isPostable && !this.shouldDisableSaveButton()) {\n this.handleSaveClick();\n return true;\n } else if (!this.preventDraftSave && !this.shouldDisableDraftButton()) {\n this.handleSaveDraft();\n return true;\n }\n\n return false;\n } else {\n return super.handleKeyboardShortcut(shortcut, event);\n }\n }\n\n getAppContext = (): IAppContext => {\n return this.context;\n };\n\n _proformaOneFetch = getOneFetch();\n getAdditionalLoadPromise = (args: IContextInitArgs): (Promise | void)[] => {\n const { oData } = this.props.storage;\n const promises: (Promise | void)[] = [\n loadRelatedProformas(args.bindingContext, oData, null, this.isAuditTrail ? null : this._proformaOneFetch.fetch), // keep on RELATED_PROFORMA_ADDITIONAL_RESULT_IDX index\n loadVats(this.getAppContext(), this.props.storage)\n ];\n return promises;\n };\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n const { storage } = this.props;\n const entity = storage.data.entity;\n const domManipulatorContext = this.props.domManipulatorOrchestrator.createScope();\n\n const promises: Promise[] = [];\n\n const hasVatClassifications = isVisibleByPath(storage, SAVED_VATS_PATH);\n\n if (storage.formMode !== FormMode.AuditTrail) {\n\n const isNew = storage.data.bindingContext.isNew();\n const isDraft = this.isDraftView();\n // DocumentTypeCode needs to be set as early as possible, e.g. correctVatSelectionFields works with this\n entity.DocumentTypeCode = this.documentTypeCode;\n\n if (isDraft && !isObjectEmpty(entity.BusinessPartner) && !entity.BusinessPartner?.BusinessPartner?.Id) {\n const existingBP = await this.getExistingBusinessPartner(this.entity, this.props.storage);\n if (existingBP?.Id) {\n const bpPath = createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner);\n storage.setValueByPath(bpPath, existingBP);\n }\n }\n\n const businessPartner = entity.BusinessPartner?.BusinessPartner;\n // Payment section with savedAccounts is conditional and not visible on all documents.\n if (storage.data.definition.fieldDefinition[SAVED_ACCOUNTS_PATH]) {\n prepareSavedAccounts({\n account: this.props.storage.data.entity.BankAccount,\n storage,\n type: this.documentTypeCode,\n businessPartner,\n isInit: true\n });\n }\n\n if (this.isCashBasisAccountingCompany) {\n // this has to be before any await as onAfterLoad is called from storage init after infos are loaded\n // and just before creating validation schema\n const path = storage.data.bindingContext.navigate(this.datePropForNumberRange).getFullPath(true);\n const info = storage.data.fieldsInfo[path];\n storage.data.fieldsInfo[path] = {\n ...info,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: validateDecisiveDate\n }\n }\n };\n }\n\n setSavedContactItems(storage, businessPartner?.Contacts);\n setBusinessPartnerGroupStatus(storage, isNewPartnerWithData(storage));\n\n if (!entity.Items || entity.Items.length === 0) {\n addNewLineItem(storage, \"Items\");\n\n if (this.hasAccountAssignment) {\n // we need to set up SelectionCode which is not directly doable from defaultValue hence this special code for item\n // as default value only select value in select\n // WANTED CHANGE -> prepareData should check not selection code but select value (as will be in VAT)\n if (!entity.Items[0].AccountAssignmentSelection) {\n entity.Items[0].AccountAssignmentSelection = {};\n }\n\n entity.Items[0].AccountAssignmentSelection.Selection = {\n Code: SelectionCode.Default\n };\n }\n\n entity.Items[0].LabelSelection = {\n Selection: {\n Code: SelectionCode.Default\n },\n SelectionCode: SelectionCode.Default\n };\n setDefaultLabelsFromEntityToItems(storage, false);\n\n entity.Items[0][SAVED_VATS_PATH] = SelectionCode.Default;\n }\n\n // For documents created from ISDOC, some fields might be missing -> calculate/default them if possible\n if (!isObjectEmpty(entity.BusinessPartner) && !entity.BusinessPartner.Country) {\n const countryBc = storage.data.bindingContext.navigate(`${DocumentEntity.BusinessPartner}/${DocumentBusinessPartnerEntity.Country}`);\n storage.setDefaultValue(countryBc);\n }\n if (!entity.BankAccount?.IBAN && entity.BankAccount?.AccountNumber) {\n const accountNumberBc = storage.data.bindingContext.navigate(`${DocumentEntity.BankAccount}/${BankAccountEntity.AccountNumber}`);\n tryToCreateIBAN(storage, accountNumberBc);\n }\n if (!entity.BankAccount?.SWIFT && entity.BankAccount?.BankCode) {\n await tryToCreateSwift(storage);\n }\n\n // TODO: temp hotfix - For documents created from ISDOC, some fields might be missing -> calculate/default them if possible\n if (this.isCashBasisAccountingCompany) {\n setCbaDefaultValuesForNotVisibleFields(this.props.storage);\n }\n\n if (hasVatClassifications) {\n promises.push(correctVatIds(storage));\n }\n\n if (this.hasAccountAssignment) {\n setCorrectSpecialItemsForAccountAssignment(storage);\n promises.push(correctAccountIds(storage));\n }\n\n if (this.isCashBasisAccountingCompany) {\n promises.push(setCorrectSpecialItemsForItemCategory(storage));\n }\n\n this.validateVatSubmissionsDates();\n\n if (!this.isSavedWithoutChanges() || hasPreloadedData) {\n promises.push(this.loadRelatedProformaFromDocumentLinks());\n\n // if TransactionCurrency isn't CZE and ExchangeRatePerUnit is missing, we need to fetch it\n // can happen E.G. when draft is created by BE from ROSSUM\n const origDraftEntity = storage.getCustomData().draft;\n\n if (origDraftEntity && !origDraftEntity.ExchangeRatePerUnit && storage.data.entity.TransactionCurrency.Code !== getCompanyCurrency(storage.context)) {\n promises.push(this.refreshCurrencyExchangeRateAfterDateChange(true));\n }\n }\n\n // local context (CREATE_RECEIPT_PATH switch) is not stored in draft\n // => set CREATE_RECEIPT_PATH to true when CashBox navigation exists\n if (!isObjectEmpty(this.entity.CashBox) && this.props.permissionContext.companyPermissions.has(CompanyPermissionCode.CashBox)) {\n this.props.storage.setValueByPath(CREATE_RECEIPT_PATH, true);\n }\n\n await Promise.all(promises);\n\n setMatchingFiscalPeriod(storage, storage.getValueByPath(this.datePropForNumberRange));\n\n if (isNew) {\n // inject current company to new invoice, we need to do it immediately, because user may leave document\n // form in a way that current company is changed and further request to draft save won't get it from\n // context. todo: should we postpone route change after request for saving draft is resolved?\n entity.Company = { Id: this.getAppContext().getCompanyId() };\n if (hasVatClassifications) {\n await correctVatSelectionFields({\n storage,\n documentTypeCode: this.documentTypeCode\n });\n if (hasPreloadedData) {\n // preloaded data, e.g. from Proforma -> recalculate items to match correctedVatSelectionFields\n this.recalculateAllItems(DocumentItemEntity.TransactionAmount, true, true);\n }\n }\n }\n\n if (!entity.Labels) {\n // in document def Labels keyPath is defined as \"Label/Id\", unfortunately if Labels are not defined,\n // in Model value of that field is automatically set to { Id: null } which is not iterable array and\n // it causes a lot of exceptions (current version of setting default value results in { Id: [] }\n entity.Labels = [];\n }\n\n if (!entity.NumberOurs) {\n // Generates NumberOurs for new entities according to current Date/FiscalYear/Period and DocumentType\n // Note: needs to be called after FY and FP is set for wildcard replacement\n await this.setMatchingNumberRangeForDocument(true);\n }\n\n if (isDraft && entity.NumberRange?.NextNumber) {\n const numberOurs = replaceWildcards(entity.NumberRange.NextNumber, entity, { decisiveDateProp: this.datePropForNumberRange });\n entity.NumberOurs = numberOurs;\n if (!entity.SymbolVariable) {\n setVariableSymbolFromNumberOurs(this.props.storage, numberOurs, entity.NumberOurs);\n }\n }\n\n if (isCashBasisAccountingCompany(this.context) && this.documentTypeCode === DocumentTypeCode.InternalDocument) {\n loadCategoriesMap(this.props.storage);\n }\n\n storage.refresh();\n } else {\n if (this.hasAccountAssignment) {\n setCorrectSpecialItemsForAccountAssignment(storage);\n }\n if (this.isCashBasisAccountingCompany) {\n promises.push(setCorrectSpecialItemsForItemCategory(storage));\n }\n if (hasVatClassifications) {\n promises.push(correctVatIds(storage));\n }\n\n await Promise.all(promises);\n }\n domManipulatorContext.executeAndDispose();\n return super.onAfterLoad();\n }\n\n /**\n * Validates one field if bc is provided, otherwise validates all fields\n * @param forDate\n * @param bc items BindingContext\n */\n validateVatFields = (forDate?: Date, bc?: BindingContext): void => {\n const { storage } = this.props;\n const datePropForVat = this.getVatItemsDecisiveDateName();\n\n if (!storage.isValidPath(datePropForVat)) {\n return null;\n }\n\n if (!forDate) {\n forDate = storage.getValueByPath(datePropForVat);\n }\n\n const message = storage.t(\"Document:Form.WrongVat\");\n const itemsBc = storage.data.bindingContext.navigate(\"Items\");\n const correspondingVats = getValidVats(storage, this.documentTypeCode, forDate);\n\n const itemsToCheck = bc ? [storage.getValue(bc)] : storage.data.entity.Items;\n\n for (const item of itemsToCheck) {\n const vatBc = itemsBc.addKey(item).navigate(\"Vat\");\n const info = storage.getInfo(vatBc);\n // invalidate items to reload them\n if (info.fieldSettings?.items) {\n info.fieldSettings.items = null;\n }\n storage.addActiveField(vatBc);\n\n const vatRate = item.Vat?.Rate;\n if (vatRate) {\n const replacementVatRate = correspondingVats.find((vat: TRecordAny) => {\n return vat.Rate === vatRate;\n });\n\n if (replacementVatRate) {\n item.Vat.Code = replacementVatRate.Code;\n storage.clearError(vatBc);\n } else {\n storage.setError(vatBc, {\n message, errorType: ValidationErrorType.Field\n });\n }\n }\n }\n\n storage.refreshFields(false, true);\n };\n\n async refreshFormAfterDecisiveDateChange(path: string, withoutBusy = false): Promise {\n const decisiveDate = this.props.storage.getValueByPath(this.datePropForNumberRange);\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(this.props.storage, decisiveDate);\n const hasChanged = this.props.storage.getValueByPath(\"FiscalYear\")?.Id !== fiscalData.fiscalYear?.Id;\n const { storage } = this.props;\n\n // Period may change even if FY hasn't, keep it out of the if\n // Period has to be set correctly before setMatchingNumberRangeForDocument method, as it might be used by wildcard\n storage.setValueByPath(\"FiscalPeriod\", fiscalData.fiscalPeriod ?? {});\n\n if (hasChanged) {\n // Store FY before related data load is triggered as it uses current FY\n storage.setValueByPath(\"FiscalYear\", fiscalData.fiscalYear ?? {});\n\n // we are showing loader during dateAccountingTransaction change -> this seems that\n // we don't need to do it if fiscalYear hasn't changed\n const promises = [];\n promises.push(refreshAccountIdsForActualFiscalYear(storage, fiscalData.fiscalYear, withoutBusy));\n\n if (this.datePropForNumberRange === path) {\n promises.push(this.setMatchingNumberRangeForDocument());\n }\n await Promise.all(promises);\n if (!withoutBusy) {\n this.props.storage.refresh();\n }\n }\n return hasChanged;\n }\n\n async setMatchingNumberRangeForDocument(forceReload?: boolean): Promise {\n if (this.props.preventSettingMatchingNumberRange) {\n return;\n }\n const { storage } = this.props;\n const { entity } = storage.data;\n const origNumberOurs = entity?.NumberOurs || \"\";\n const hasChanged = await setMatchingNumberRange(storage, forceReload, this.datePropForNumberRange);\n if (!hasChanged) {\n // NumberRange might not been changes, but FY or Period may did, so we need to replace at least wildcards\n replaceWildcardsAfterDateChange(this.props.storage, this.datePropForNumberRange);\n }\n setVariableSymbolFromNumberOurs(this.props.storage, origNumberOurs, entity.NumberOurs);\n }\n\n handleCurrencyChange = async (e: ISmartFieldChange): Promise => {\n const { storage } = this.props;\n const isCurrencyChange = e.bindingContext.getPath() === \"TransactionCurrency\";\n if (isCurrencyChange) {\n await refreshExchangeRate(storage, e.value as string, this.datePropForCurrencyExchangeRate);\n\n if (this.entity[CREATE_RECEIPT_PATH]) {\n storage.setDefaultValueByPath(\"CashBox\");\n storage.refreshFields();\n }\n\n // invalidate item templates cache\n invalidateItemTemplateSelectItems(storage);\n }\n if (e.bindingContext.getPath() === DocumentEntity.ExchangeRatePerUnit || isCurrencyChange) {\n storage.refreshGroupByKey(\"Items\");\n }\n };\n\n handleNumberOursChange = (args: ISmartFieldChange): void => {\n if (args.bindingContext.getPath() === DocumentEntity.NumberOurs) {\n const { entity } = this.props.storage.data;\n setVariableSymbolFromNumberOurs(this.props.storage, entity.NumberOurs, args.value as string);\n }\n };\n\n refreshCurrencyExchangeRateAfterDateChange = async (withoutConfirmation?: boolean): Promise => {\n const { storage } = this.props;\n if (storage.data.entity.TransactionCurrency.Code !== getCompanyCurrency(storage.context)) {\n const exchangeRateBc = this.props.storage.data.bindingContext.navigate(DocumentEntity.ExchangeRatePerUnit);\n const isExchangeRateDisabled = isFieldDisabled(this.props.storage.getInfo(exchangeRateBc), this.props.storage, exchangeRateBc);\n\n if (!isExchangeRateDisabled) {\n const rate = await getExchangeRate(storage, this.datePropForCurrencyExchangeRate);\n\n if (rate && rate !== storage.getValueByPath(DocumentEntity.ExchangeRatePerUnit)) {\n const confirmationPromise = !withoutConfirmation ? this.props.confirmationDialog.open({\n content: storage.t(\"Document:Form.RefreshExchangeRate\")\n }) : Promise.resolve(true);\n const shouldChange = await confirmationPromise;\n if (shouldChange) {\n storage.clearAndSetValueByPath(DocumentEntity.ExchangeRatePerUnit, rate);\n }\n }\n }\n }\n };\n\n handleDecisiveDateChange = async (e: ISmartFieldChange): Promise => {\n const path = e.bindingContext.getPath();\n const { storage } = this.props;\n if (path === this.datePropForNumberRange && e.triggerAdditionalTasks) {\n const isValid = !await storage.validateField(e.bindingContext);\n if (!isValid) {\n return;\n }\n\n const { entity } = storage.data;\n const origNumberOurs = entity?.NumberOurs || \"\";\n\n const didChangeFY = await this.refreshFormAfterDecisiveDateChange(path);\n\n if (!didChangeFY && this.datePropForNumberRange === path) {\n replaceWildcardsAfterDateChange(storage, this.datePropForNumberRange);\n setVariableSymbolFromNumberOurs(storage, origNumberOurs, entity.NumberOurs);\n }\n storage.refreshFields();\n }\n\n if (path === this.datePropForCurrencyExchangeRate && e.triggerAdditionalTasks) {\n const isValid = !await storage.validateField(e.bindingContext);\n\n if (!isValid || !e.value) {\n return;\n }\n\n await this.refreshCurrencyExchangeRateAfterDateChange();\n storage.refreshFields();\n }\n };\n\n // https://solitea-cz.atlassian.net/wiki/spaces/IRIS/pages/2314764398/F0023.1+-+pravy+datumov+ch+field\n // set the FIRST row of the dates to the same value as DateIssued\n handleDateIssuedChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() !== DocumentDraftEntity.DateIssued || !e.triggerAdditionalTasks) {\n return;\n }\n const { storage } = this.props;\n const fieldsToSet = DocumentDateGroupRowsAndOrder[0].filter(id => id !== DocumentDraftEntity.DateIssued) as string[];\n\n for (const field of fieldsToSet) {\n if (storage.isValidPath(field)) {\n const bindingContext = storage.data.bindingContext.navigate(field);\n const info = storage.getInfo(bindingContext);\n if (isVisible({\n storage,\n bindingContext,\n info,\n context: storage.context\n }) && !isFieldDisabled(info, storage, bindingContext)) {\n // DateDue should be +14 in the future or the value set in BP defaults\n const defaultBpValues = this.isReceivedDoc() ? this.entity?.BusinessPartner?.BusinessPartner?.ReceivedDocumentDefault : this.entity?.BusinessPartner?.BusinessPartner?.IssuedDocumentDefault;\n const defaultDueDaysValue = defaultBpValues?.DaysDue ?? DefaultDueDays;\n\n this.handleChange({\n ...e,\n bindingContext: this.props.storage.data.bindingContext.navigate(field),\n\n value: field !== DocumentDraftEntity.DateDue ? e.value : getUtcDayjs(e.value as Date).add(defaultDueDaysValue, \"day\").toDate()\n });\n }\n }\n }\n };\n\n // https://solitea-cz.atlassian.net/wiki/spaces/IRIS/pages/2314764398/F0023.1+-+pravy+datumov+ch+field\n // set the SECOND row of the dates to the same value as DateIssued\n handleDateReceivedChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() !== DocumentDraftEntity.DateReceived || !e.triggerAdditionalTasks) {\n return;\n }\n const { storage } = this.props;\n const fieldsToSet = DocumentDateGroupRowsAndOrder[1].filter(id => id !== DocumentDraftEntity.DateReceived) as string[];\n\n for (const field of fieldsToSet) {\n if (storage.isValidPath(field)) {\n const bindingContext = storage.data.bindingContext.navigate(field);\n const info = storage.getInfo(bindingContext);\n if (isVisible({\n storage,\n bindingContext,\n info,\n context: storage.context\n }) && !isFieldDisabled(info, storage, bindingContext)) {\n this.handleChange({\n ...e,\n bindingContext: this.props.storage.data.bindingContext.navigate(field)\n });\n }\n }\n }\n };\n\n get vatSubmissionDateProperty(): string {\n return this.isReceivedDoc() ? InvoiceReceivedEntity.DateVatDeduction : InvoiceIssuedEntity.DateTaxableSupply;\n }\n\n validateVatSubmissionsDates = async (savedVats?: TSelectItemId): Promise => {\n const dateProperty = this.vatSubmissionDateProperty;\n\n if (!this.props.storage.data.bindingContext.isValidNavigation(dateProperty)) {\n return;\n }\n\n const savedVatsValue = savedVats ?? this.props.storage.getValueByPath(SAVED_VATS_PATH) as TSelectItemId;\n const bc = this.props.storage.data.bindingContext.navigate(dateProperty);\n\n if (savedVatsValue === SelectionCode.None) {\n this.props.storage.clearAdditionalFieldData(bc);\n this.props.storage.refreshField(bc.getPath());\n return;\n }\n\n const dateValue = this.props.storage.getValue(bc) as Date;\n\n if (!dateValue || !DateType.isValid(dateValue)) {\n return;\n }\n\n const originalDateValue = this.props.storage.getValue(bc, { dataStore: this.props.storage.data.origEntity }) as Date;\n const originalSavedVatsValue = this.props.storage.getValue(this.props.storage.data.bindingContext.navigate(SAVED_VATS_PATH), { dataStore: this.props.storage.data.origEntity }) as TSelectItemId;\n\n // only validate for new forms or if some of the values has changed\n if (\n !this.props.storage.data.bindingContext.isNew()\n && DateType.isSame(dateValue, originalDateValue)\n && savedVatsValue === originalSavedVatsValue\n ) {\n return;\n }\n\n let validationResult: IValidationResult = null;\n let isSomeVatSubmitted = false;\n const formattedDate = formatDateToDateString(dateValue);\n\n try {\n // fetch all existing electronic submissions and check if DateTaxableSupply is in any of those periods\n const submissions = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions)\n .query()\n .filter(`${ElectronicSubmissionEntity.DatePeriodStart} le ${formattedDate} AND ${ElectronicSubmissionEntity.DatePeriodEnd} ge ${formattedDate}`)\n .fetchData();\n\n if (submissions.value.length > 0) {\n isSomeVatSubmitted = true;\n }\n } catch (e) {\n // silent error, this runs async in background and is not that important..\n }\n\n if (isSomeVatSubmitted) {\n validationResult = {\n status: Status.Warning,\n message: this.props.storage.t(\"Document:Form.VatSubmittedWarning\")\n };\n\n }\n\n this.props.storage.setAdditionalFieldData(bc, \"validationResult\", validationResult);\n this.props.storage.refreshField(bc.getPath());\n };\n\n handleDateTaxableSupplyChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === InvoiceIssuedEntity.DateTaxableSupply && e.triggerAdditionalTasks) {\n this.validateVatSubmissionsDates();\n }\n };\n\n handleDateVatDeductionChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === InvoiceIssuedEntity.DateVatDeduction && e.triggerAdditionalTasks) {\n this.validateVatSubmissionsDates();\n }\n };\n\n getVatItemsDecisiveDateName = memoizeOne(() => {\n return getVatItemsDecisiveDateName(this.props.storage);\n });\n\n handleVatItemsDecisiveDateChange(e: ISmartFieldChange): void {\n const decisiveDateName = this.getVatItemsDecisiveDateName();\n\n if (e.bindingContext.getPath() === decisiveDateName && e.triggerAdditionalTasks) {\n const newDate = e.value as Date;\n const origDate = this.props.storage.getValueByPath(decisiveDateName);\n\n // if this simplification won't work in the future, change it may be to compare list of available vats for the dates??\n const yearHasChanged = getUtcDayjs(newDate).format(\"YYYY\") !== getUtcDayjs(origDate).format(\"YYYY\");\n\n if (DateType.isValid(newDate) && yearHasChanged) {\n this.validateVatFields(newDate);\n }\n }\n }\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n const error = await this.props.storage.handleBlur(args);\n\n if (args.wasChanged) {\n await handleBusinessPartnerBlur({ storage: this.props.storage, type: this.documentTypeCode }, args);\n handleBankAccountOrIBANBlur(getBankBlurArgs(this.props.storage, args.bindingContext));\n\n if (!error) {\n // don't update values if last changed caused validation error\n await this.updateLineItem(args.bindingContext);\n } else {\n // refresh items summaries\n for (const path of ItemsSummariesPaths) {\n this.props.storage.addActiveField(this.props.storage.data.bindingContext.navigate(path));\n }\n }\n }\n this.documentSpecificBlurHandlers(args);\n this.props.storage.refreshFields();\n };\n\n /** Checks if any of the lineItemsRecalculateCheckProps is changed for given item */\n isItemAnyRecalcPropSet = (itemBc: BindingContext): boolean => {\n return lineItemsRecalculateCheckProps.some(prop => {\n return isDefined(this.props.storage.getValue(itemBc.navigate(prop)));\n });\n };\n\n updateLineItem = async (bindingContext: BindingContext, force = false): Promise => {\n const itemsPath = `${this.props.storage.data.bindingContext.getPath(true)}/Items`;\n const triggered = anyPathEquals(bindingContext, lineItemsTriggerProps, itemsPath)\n || force;\n\n if (!triggered) {\n return;\n }\n\n const originalItemValue = this.props.storage.getValue(bindingContext.getParent());\n // TODO how many decimalPlaces (MinorUnit) when no currency selected\n const decimalPlaces = this.props.storage.data.entity.Currency?.MinorUnit;\n const newItemValue: TRecordAny = this.recalculateLineItem(originalItemValue, bindingContext.getPath(true), decimalPlaces);\n\n if (newItemValue) {\n const itemsBc = bindingContext.getParent();\n\n this.props.storage.setValue(bindingContext.getParent(), newItemValue);\n\n // TODO only refresh affected fields\n this.props.storage.refresh();\n\n const lineItemsForceValidateProps = [...lineItemsForceValidatePropsDocItem];\n\n if (this.isRegularDocumentItem) {\n lineItemsForceValidateProps.push(...lineItemsForceValidatePropsRegularDocItem);\n }\n\n // force recalculated fields to lose error state\n if (lineItemsForceValidateProps.includes(bindingContext.getPath())) {\n await this.props.storage.validateFields(lineItemsForceValidateProps.map(prop => itemsBc.navigate(prop)));\n }\n }\n };\n\n handleCustomLineItemAction = async (args: ISmartFastEntriesActionEvent) => {\n // prepared to be overridden\n };\n\n handleLineItemsAction = async (args: ISmartFastEntriesActionEvent): Promise => {\n const { storage } = this.props;\n const shouldInterrupt = await this.props.onLineItemsAction?.(args, storage);\n if (args.actionType === ActionType.Custom) {\n await this.handleCustomLineItemAction(args);\n return;\n }\n if (shouldInterrupt) {\n return;\n }\n\n if (args.actionType === ActionType.Add) {\n if (this.hasAccountAssignment) {\n setNestedValue(SelectionCode.Default, \"AccountAssignmentSelection/Selection/Code\", args.items[args.items.length - 1]);\n }\n setNestedValue(SelectionCode.Default, \"LabelSelection/Selection/Code\", args.items[args.items.length - 1]);\n setNestedValue(SelectionCode.Default, \"LabelSelection/SelectionCode\", args.items[args.items.length - 1]);\n // setNestedValue(SelectionCode.Default, SAVED_VATS_PATH, args.items[args.items.length - 1]);\n setNestedValue(SelectionCode.Default, ITEMS_VAT_DEDUCTION_PATH, args.items[args.items.length - 1]);\n }\n\n if (args.actionType === ActionType.Clone) {\n const [item] = args.affectedItems;\n\n if (item && !item?.LabelSelection?.Selection) {\n // if for some reason, copied item is missing required LabelSelection/Selection, set it to default\n setNestedValue(SelectionCode.Default, \"LabelSelection/Selection/Code\", item);\n setNestedValue(SelectionCode.Default, \"LabelSelection/SelectionCode\", item);\n }\n\n if (this.hasAccountAssignment && item?.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Copy) {\n processAccountAssignmentSelection(item, true, storage.data.bindingContext.isNew());\n\n // For new items, ChartOfAccountId is mandatory\n const coaId = getCurrentCoAId({\n storage,\n context: this.getAppContext()\n });\n\n setNestedValue(coaId, \"AccountAssignmentSelection/AccountAssignment/ChartOfAccounts/Id\", item);\n }\n delete item[DRAFT_ITEM_ID_PATH];\n this.updateLineItem(args.bindingContext);\n }\n\n args.actionType !== ActionType.Add && this.saveDraft();\n storage.handleLineItemsAction(args);\n setDefaultLabelsFromEntityToItems(this.props.storage);\n };\n\n getCurrentLineItem = (bc: BindingContext) => {\n const items = this.props.storage.data.entity.Items;\n return getBoundValue({\n bindingContext: bc,\n dataBindingContext: this.props.storage.data.bindingContext,\n data: items\n });\n };\n\n handleItemsVatDeductionChange({ bindingContext, value, triggerAdditionalTasks }: ISmartFieldChange): boolean {\n const { storage } = this.props;\n\n if (bindingContext.getPath() === ITEMS_VAT_DEDUCTION_PATH && triggerAdditionalTasks) {\n const currentValue = storage.getValue(bindingContext);\n\n // set Own selection to temporal data\n const itemBc = bindingContext.getParent();\n const itemVatSelectionBc = itemBc.navigate(DocumentItemEntity.VatClassificationSelection);\n const itemVatClassificationBc = itemVatSelectionBc.navigate(DocumentVatClassificationSelectionEntity.VatClassification);\n const itemVatSelectionCodeBc = itemVatSelectionBc.navigate(\"Selection/Code\");\n\n const isVatDeductionWithAdditionalData = isProportionalDeduction(value);\n // For proportional deduction, we need to set up additional data (coefficient + NonTaxAccount)\n // -> just display dialog for it\n if (isVatDeductionWithAdditionalData) {\n storage.setCustomData({\n dialogCurrentLineItem: this.getCurrentLineItem(bindingContext.getParent()),\n isVatDialogOpened: true\n });\n\n storage.setTemporalData(bindingContext, { value });\n storage.setTemporalData(itemVatClassificationBc.navigate(DocumentVatClassificationEntity.VatDeductionType), { value });\n const proportionalDeductionBc = itemVatClassificationBc.navigate(DocumentVatClassificationEntity.VatProportionalDeduction);\n const proportionalDeduction = storage.getValue(proportionalDeductionBc) ?? storage.getDefaultValue(proportionalDeductionBc);\n storage.setTemporalData(proportionalDeductionBc, { value: proportionalDeduction });\n storage.setTemporalData(itemVatSelectionCodeBc, { value: SelectionCode.Own });\n\n if (currentValue !== value) {\n // clear fields as new value has been picked\n clearVatClassificationFields(storage, itemBc, true);\n }\n\n storage.refresh();\n // stops processing the change -> just dialog is opened\n return true;\n } else {\n // set vat classification to custom or Default value of VatDeduction.\n // Other fields will be copied from common rule.\n clearVatClassificationFields(storage, itemBc);\n storage.setValue(bindingContext, value);\n storage.setValue(itemVatSelectionCodeBc, value !== SelectionCode.Default ? SelectionCode.Own : value);\n if (value !== SelectionCode.Default) {\n storage.setValue(itemVatClassificationBc.navigate(DocumentVatClassificationEntity.VatDeductionType), value);\n }\n }\n }\n\n return false;\n }\n\n applyItemDeductionType = (): Promise => {\n const { storage } = this.props;\n const { dialogCurrentLineItem } = storage.getCustomData();\n const itemBc = storage.data.bindingContext.navigate(\"Items\").addKey(dialogCurrentLineItem);\n const itemVatSelectionBc = itemBc.navigate(DocumentItemEntity.VatClassificationSelection);\n const itemVatClassificationBc = itemVatSelectionBc.navigate(DocumentVatClassificationSelectionEntity.VatClassification);\n const itemVatSelectionCodeBc = itemVatSelectionBc.navigate(\"Selection/Code\");\n\n return storage.confirmFields([\n itemVatClassificationBc.navigate(DocumentVatClassificationEntity.VatDeductionType),\n itemVatSelectionCodeBc\n ]);\n };\n\n handleLineItemsChange(args: ISmartFieldChange): void {\n const { storage } = this.props;\n\n if (handleItemAccAssignmentDialog({ storage, e: args })\n || this.handleItemsVatDeductionChange(args)) {\n // Account assignment / Vat classification dialog is shown\n // -> do not process the change further as the dialog might be canceled\n // -> we don't want to keep \"Selection.Own\" in the select then.\n return;\n }\n const path = args.bindingContext.getPath(true);\n\n // call before storage update to be able to work with old value\n // this.handleSavedVatsChange(args);\n this.handleItemProportionalDeductionChange(args);\n\n storage.handleLineItemsChange(args);\n\n if (args.triggerAdditionalTasks) {\n let forceUpdateItem = false;\n if (path === DocumentItemEntity.Description) {\n forceUpdateItem = handleItemTemplateChange(args, storage);\n this.validateVatFields();\n }\n this.handleItemVatChange(args);\n this.handleItemLabelsChange(args);\n handleItemCbaCategoryChange(args, storage);\n this.defaultVatRuleAccordingToCbaCategory(args);\n this.handleItemAccAssignment(args);\n this.updateLineItem(args.bindingContext, forceUpdateItem);\n }\n\n this.saveDraft();\n storage.refreshFields();\n }\n\n handleItemAccAssignment = (e: ISmartFieldChange): void => {\n if (e.bindingContext?.getPath() === \"AccountAssignment\") {\n handleItemAccAssignmentChange({\n storage: this.props.storage,\n e\n });\n\n const itemBc = e.bindingContext.getParent().getParent();\n const item = this.props.storage.getValue(itemBc);\n this.updateItemVat(item, itemBc);\n this.forceUpdate();\n }\n };\n\n handleNumberRange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"NumberRange\") {\n this.props.storage.data.entity.NumberRange = e.value ? e.additionalData : null;\n }\n };\n\n handleBusinessPartnerChange = async (e: ISmartFieldChange): Promise => {\n const shouldTriggerChange = e.triggerAdditionalTasks && isBusinessPartnerField(e.bindingContext.getNavigationPath(true));\n const storage = this.props.storage;\n\n if (shouldTriggerChange) {\n const { IssuedDocumentDefault, ReceivedDocumentDefault } = e.additionalData ?? {};\n const bpPath = e.bindingContext.getParent().navigate(DocumentBusinessPartnerEntity.BusinessPartner);\n storage.setValue(bpPath.navigate(BusinessPartnerEntity.ReceivedDocumentDefault), ReceivedDocumentDefault);\n storage.setValue(bpPath.navigate(BusinessPartnerEntity.IssuedDocumentDefault), IssuedDocumentDefault);\n\n await setDefaultsFromBusinessPartner({\n storage,\n type: this.documentTypeCode,\n businessPartner: e.additionalData\n }, this.refreshDateDue);\n }\n\n // business partner change can change TransactionCurrency => we need to update the CashBox as well\n const originalCurrency = this.entity.TransactionCurrency?.Code;\n\n // call after changes to entity as this method requires entity to be updated\n await handleBusinessPartnerChange({\n storage,\n type: this.documentTypeCode\n }, e, { currencyDatePropPath: this.datePropForCurrencyExchangeRate });\n\n if (shouldTriggerChange && originalCurrency !== this.entity.TransactionCurrency?.Code) {\n storage.setDefaultValueByPath(\"CashBox\");\n }\n\n this.refreshBankGroup();\n };\n\n updateItemsVat = (): void => {\n for (const item of this.props.storage.data.bindingContext.iterateNavigation(\"Items\", this.props.storage.data.entity.Items)) {\n this.updateItemVat(item.entity, item.bindingContext);\n }\n };\n\n /** We want to preselect null Vat for an item when item uses default accountAssignmentSelection */\n updateItemVat = (item: IEntity, bindingContext: BindingContext): void => {\n if (!this.shouldUpdateItemVat(bindingContext)) {\n return;\n }\n\n const previousVat = item?.Vat;\n const vatBc = bindingContext.navigate(\"Vat\");\n const vat = !previousVat?.Rate ? this.getVatItem(vatBc, VatCode.CzStd2013) : item?.Vat;\n\n this.props.storage.clearAndSetValue(vatBc, vat);\n\n if ((!isObjectEmpty(vat) || !isObjectEmpty(previousVat)) && (vat !== previousVat)) {\n this.updateLineItem(vatBc);\n }\n };\n\n shouldUpdateItemVat = (bindingContext: BindingContext): boolean => {\n // we want the default first item to have correct preselected Vat, no automatic changes to Vat after that should be done\n // => only update FIRST item, if not dirty and if no other items are present\n // https://solitea-cz.atlassian.net/browse/DEV-3225\n return bindingContext.isNew() && bindingContext.getKey() === 1 && !this.props.storage.isDirty(bindingContext) && this.props.storage.data.entity.Items?.length === 1;\n };\n\n getVatItem = (bindingContext: BindingContext, vatCode: VatCode) => {\n const vatItem = this.props.storage.getInfo(bindingContext)?.fieldSettings?.items?.find(item => item.id === vatCode)?.additionalData;\n\n if (!vatItem) {\n logger.error(`DocumentFormView: trying to set vat code that doesn't exist in the loaded vat items: ${vatCode}`);\n }\n\n return vatItem ?? {};\n };\n\n documentSpecificChangeHandlers(e: ISmartFieldChange): void {\n // prepared to be overridden\n }\n\n documentSpecificBlurHandlers(e: ISmartFieldBlur): void {\n // prepared to be overridden\n }\n\n refreshBankGroup = (): void => {\n this.props.storage.addActiveGroupByKey(\"payment\");\n };\n\n handleItemVatChange = (args: ISmartFieldChange): void => {\n if (args.bindingContext.getPath() === DocumentItemEntity.Vat) {\n if (!args.value) {\n this.props.storage.clearError(args.bindingContext);\n }\n const forDate = this.props.storage.getValueByPath(this.getVatItemsDecisiveDateName());\n this.validateVatFields(forDate, args.bindingContext.getParent());\n }\n };\n\n handleItemLabelsChange = (args: ISmartFieldChange): void => {\n if (args.bindingContext.getNavigationPath(true) === \"Items/LabelSelection/Labels\") {\n const { storage } = this.props;\n const labelSelectionBc = args.bindingContext.getParentCollection().navigate(DocumentItemEntity.LabelSelection);\n const value = args.value as (string | number)[];\n const isDefault = value?.includes(SelectionCode.Default);\n if (isDefault) {\n storage.setValue(labelSelectionBc, {\n Selection: {\n Code: SelectionCode.Default\n },\n SelectionCode: SelectionCode.Default,\n Labels: [...this.entity.Labels]\n });\n } else if (args.additionalData?.isNoRecord || value?.length === 0) {\n storage.setValue(labelSelectionBc, {\n Selection: {\n Code: SelectionCode.None\n },\n SelectionCode: SelectionCode.None,\n Labels: []\n });\n } else {\n storage.setValue(labelSelectionBc.navigate(\"SelectionCode\"), SelectionCode.Own);\n storage.setValue(labelSelectionBc.navigate(\"Selection\"), { Code: SelectionCode.Own });\n }\n }\n };\n\n handleSavedVatsChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() === SAVED_VATS_PATH && e.triggerAdditionalTasks) {\n const { storage } = this.props;\n const isItem = e.bindingContext.getFullPath().includes(\"/Items\");\n\n if (!isItem && (e.value === SelectionCode.Own || !e.value)) {\n storage.expandGroup(!!e.value, getCollapsedGroupId({ id: SAVED_VATS_PATH }));\n }\n\n const selectionCode = correctSelectionCode(e.value);\n const vatClassificationBc = e.bindingContext.getParent().navigate(\"VatClassificationSelection\");\n\n const parentBc = e.bindingContext.getParent();\n if (!selectionCode) {\n // clear all possible errors in subfields\n clearVatClassificationFields(storage, parentBc);\n // remove the entity\n storage.clearAndSetValue(vatClassificationBc, null);\n } else {\n if ([SelectionCode.None, SelectionCode.Default].includes(selectionCode)) {\n clearVatClassificationFields(storage, parentBc);\n } else if (e.value === SelectionCode.Own) {\n const previousValue = storage.getValue(e.bindingContext);\n const previousCode = correctSelectionCode(previousValue);\n if (previousCode !== SelectionCode.Own) {\n clearVatClassificationFields(storage, parentBc, true);\n }\n } else {\n // SelectionCode.Copy\n storage.processDependentField(getVatDependentFields(), e.additionalData, e.bindingContext);\n // process \"copy\" account number -> there is only account name and number in the additional data.\n // We need to send correct Id of the particular account from the current FY\n const nonTaxAccountBc = vatClassificationBc\n .navigate(DocumentVatClassificationSelectionEntity.VatClassification)\n .navigate(DocumentVatClassificationEntity.NonTaxAccount);\n const { NonTaxAccountName, NonTaxAccountNumber } = e.additionalData;\n await applyAccountFromTemplate(storage, nonTaxAccountBc, {\n Name: NonTaxAccountName,\n Number: NonTaxAccountNumber\n });\n }\n\n // when selectionCode is defined, always process GetSelectionCodeDependentField to keep it actual in all cases\n storage.processDependentField([getSelectionCodeDependentField()], e.additionalData, e.bindingContext);\n }\n\n storage.refreshGroupByKey(getVatAssignmentGroupId(this.props.storage));\n\n this.validateVatSubmissionsDates(e.value as TSelectItemId);\n }\n };\n\n handleItemProportionalDeductionChange = (e: ISmartFieldChange): void => {\n\n if (e.bindingContext.getPath() === DocumentVatClassificationEntity.VatProportionalDeduction) {\n const { storage } = this.props;\n const mainBc = e.bindingContext.getParent().getParent().getParent();\n // update selectionCode to own if children changes\n storage.setValue(mainBc.navigate(\"VatClassificationSelection/Selection/Code\"), SelectionCode.Own);\n const vatDeductionBc = mainBc.navigate(ITEMS_VAT_DEDUCTION_PATH);\n\n /* different behavior on Items, no SavedVats */\n this.applyItemDeductionType()\n .then(() => {\n correctVatDeduction(storage.getValue(mainBc));\n return storage.validateField(vatDeductionBc);\n })\n .then(() => {\n storage.addActiveField(vatDeductionBc);\n storage.refreshFields(true);\n });\n }\n };\n\n handleVatChildrenChange = (e: ISmartFieldChange): void => {\n const { storage } = this.props;\n const path = e.bindingContext.getPath();\n\n if (path === VAT_REVERSE_CHARGE_SELECT_PATH && e.triggerAdditionalTasks) {\n storage.setValue(storage.data.bindingContext.navigate(`${VAT_CLASSIFICATION_PATH}/${VatClassificationEntity.VatReverseCharge}`), e.value);\n }\n\n if (path === \"VatReverseCharge\") {\n const value = e.value ? VatReverseChargeCode.Ano : VatReverseChargeCode.Ne;\n storage.clearAndSetValue(e.bindingContext, value);\n storage.correctEnumValue(e.bindingContext, value);\n storage.clearAndSetValueByPath(VAT_REVERSE_CHARGE_SELECT_PATH, null);\n }\n\n const navigationPath = e.bindingContext.getNavigationPath();\n\n if (navigationPath.includes(\"VatClassificationSelection/VatClassification\")) {\n const mainBc = e.bindingContext.getParent().getParent().getParent();\n\n // update selectionCode to own if children changes\n storage.setValue(mainBc.navigate(\"VatClassificationSelection/Selection/Code\"), SelectionCode.Own);\n correctDataAfterVatChildrenChangeOnDocument(this.props.storage);\n\n // change required stuff refresh the whole group\n this.props.storage.addActiveGroup(e.bindingContext);\n }\n };\n\n defaultVatRuleAccordingToCbaCategory(args: ISmartFieldChange): void {\n if (args.bindingContext.getPath() === CBA_CATEGORY_PATH && args.triggerAdditionalTasks) {\n // const { storage } = this.props;\n // const { bindingContext: dataBindingContext } = storage.data;\n // const deductionBc = dataBindingContext.navigate(ITEMS_VAT_DEDUCTION_PATH);\n //\n // if (!dataBindingContext.isNew() || storage.isDirty(deductionBc)) {\n // // we default only value for new documents without user manual change\n // return;\n // }\n //\n // const category = getCBAItemCategory(storage, args.bindingContext.getParent(), true);\n // const isPartial = category.TaxImpactCode === CbaCategoryTaxImpactCode.Partial;\n // if (category.isDefault) {\n // storage.setValue(deductionBc, SelectionCode.Default);\n // } else if (isPartial ||\n // (category.TaxImpactCode === CbaCategoryTaxImpactCode.Nontax && !category.IsAssetAcquisition)) {\n // // proportional Vat deduction\n // const percentage = isPartial ? category.TaxPercentage : 0;\n // } else {\n // //\n // }\n }\n }\n\n /**\n * Handles change of business partner fields, which is significant to VatClassification rules\n * @param e\n * @param prevOptions\n */\n handleVatMasterFieldsChange = async (e: ISmartFieldChange, prevOptions: IVatConfigOptions): Promise => {\n if (e.triggerAdditionalTasks === false) {\n // temporal change, e.g. in Date field -> do not handle such changes\n return;\n }\n\n const { storage } = this.props;\n const { bindingContext } = storage.data;\n const path = e.bindingContext.getPath();\n const parentPath = e.bindingContext.getParent().getPath();\n const isVatMasterFieldPath = parentPath === \"BusinessPartner\" &&\n (path === \"Country\" || path === \"VatStatus\" || path === \"Name\" || path === \"LegalNumber\");\n\n const isVatMasterFieldChange = e.triggerAdditionalTasks && isVatMasterFieldPath;\n if (isVatMasterFieldChange) {\n await correctVatSelectionFields({\n storage,\n documentTypeCode: this.documentTypeCode\n });\n }\n\n const reverseChargePath = \"VatClassificationSelection/VatClassification/VatReverseCharge\";\n const bc = bindingContext.navigate(reverseChargePath);\n const selection = storage.getValueByPath(SAVED_VATS_PATH);\n\n const isOwnOrNotSetRule = !selection || [SelectionCode.Own, SelectionCode.None].includes(selection);\n\n if (isVatMasterFieldChange) {\n if (!storage.isDirty(bc) && isOwnOrNotSetRule) {\n storage.setDefaultValueByPath(reverseChargePath);\n }\n\n // we need to refresh whole page so that the Vat group is re-rendered\n // this storage.addActiveGroupByKey(getVatAssignmentGroupId(this.props.storage));\n // is not enough when the group is not rendered cause of isVisible callback,\n // - no reference for it exists, whole PureForm has to be re-rendered instead\n storage.refresh();\n if (isReceived(this.documentTypeCode)) {\n storage.addActiveField(bindingContext.navigate(\"NumberTheirs\"));\n }\n }\n\n let shouldRefreshItems = path === \"VatReverseCharge\";\n\n // todo: Change this after DEV-13471 is done\n if (this.documentTypeCode !== DocumentTypeCode.InternalDocument) {\n const currentOptions = getVatConfigOptions(storage, this.documentTypeCode);\n\n // first, default value for AutomatedVatInclusionMode\n if (isOwnOrNotSetRule && currentOptions.isInAutomatedVatInclusionModeVisible && !prevOptions.isInAutomatedVatInclusionModeVisible) {\n currentOptions.isInAutomatedVatInclusionMode = storage.setDefaultValueByPath(AUTOMATED_VAT_INCLUSION_MODE_PATH) as boolean;\n }\n\n const reDefaultVat = currentOptions.defaultVatRate !== prevOptions.defaultVatRate && bindingContext.isNew();\n if ((currentOptions.isInAutomatedVatInclusionMode !== prevOptions.isInAutomatedVatInclusionMode)\n || (currentOptions.isReverseCharged !== prevOptions.isReverseCharged)\n || reDefaultVat) {\n // recalculates all items and refreshes item group\n this.recalculateAllItems(this.defaultItemLastChangedProp ?? DocumentItemEntity.TransactionAmountNet, true, reDefaultVat);\n shouldRefreshItems = true;\n }\n\n if (currentOptions.isInAutomatedVatInclusionMode) {\n storage.setDefaultValueByPath(\"VatClassificationSelection/VatClassification/VatControlStatementSection\");\n }\n }\n if (shouldRefreshItems) {\n // refresh amounts isDisabled\n storage.addActiveGroupByKey(\"Items\");\n }\n if (shouldRefreshItems || isVatMasterFieldChange) {\n // method is async, we need to refresh groups after all calls have finished\n storage.refreshFields(true);\n }\n };\n\n // according to DEV-22624, we should default \"VatSelection.None\" when in\n async handleVatDefaulting({ bindingContext, triggerAdditionalTasks }: ISmartFieldChange): Promise {\n const { storage } = this.props;\n const parentPath = bindingContext?.getParent()?.getPath();\n const path = bindingContext?.getPath();\n const vatStatusChangePaths = [DocumentBusinessPartnerEntity.VatStatus, DocumentBusinessPartnerEntity.Name, DocumentBusinessPartnerEntity.LegalNumber] as string[];\n const canDefaultVatClassification = storage.data.bindingContext.isNew();\n if (triggerAdditionalTasks && canDefaultVatClassification &&\n parentPath === DocumentEntity.BusinessPartner && vatStatusChangePaths.includes(path)) {\n await correctVatSelectionFields({\n storage,\n documentTypeCode: this.documentTypeCode,\n forceDefaultValue: true\n });\n storage.addActiveGroupByKey(getVatAssignmentGroupId(this.props.storage));\n storage.refreshFields(true);\n }\n }\n\n handleLabelsChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === DocumentEntity.Labels && e.triggerAdditionalTasks) {\n setDefaultLabelsFromEntityToItems(this.props.storage);\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n const { storage } = this.props;\n const originalVatOptions = getVatConfigOptions(storage, this.documentTypeCode);\n\n this.handleBusinessPartnerChange(e);\n\n if (this.hasAccountAssignment) {\n handleAccAssignmentChildrenChange(storage, e);\n handleAccAssignmentChange({\n storage,\n event: e,\n documentTypeCode: this.documentTypeCode\n });\n }\n this.handleSavedVatsChange(e);\n this.handleNumberOursChange(e);\n // call before change, method checks previous value of the date\n this.handleVatItemsDecisiveDateChange(e);\n\n storage.handleChange(e);\n\n // must be called after change\n handleCbaCategoryChange({\n storage,\n documentTypeCode: this.documentTypeCode,\n e\n });\n this.handleCurrencyChange(e);\n this.handleVatChildrenChange(e);\n this.handleVatMasterFieldsChange(e, originalVatOptions);\n this.handleLabelsChange(e);\n\n this.handleVatDefaulting(e);\n\n if (this.hasAccountAssignment) {\n correctAccountIdAfterChange(storage, e);\n }\n\n const businessPartner = (storage.data.entity as IDocumentEntity).BusinessPartner?.BusinessPartner;\n const args: IBankAccountArgs = {\n storage,\n businessPartner,\n type: this.documentTypeCode\n };\n handleBankFieldChange(args, e);\n handlePaymentMethodChange(args, e);\n handleCreateReceiptsChange(e, storage);\n\n this.handleNumberRange(e);\n\n this.documentSpecificChangeHandlers(e);\n\n this.handleDecisiveDateChange(e);\n this.handleDateIssuedChange(e);\n this.handleDateReceivedChange(e);\n this.handleDateTaxableSupplyChange(e);\n this.handleDateVatDeductionChange(e);\n\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.saveDraft();\n storage.refreshFields(shouldUpdate);\n\n }\n\n getSuccessMessage(isPosted: boolean, isClosed: boolean): string {\n const namespace = this.props.storage.data.definition.translationFiles[0];\n let key: string;\n if (isPosted) {\n key = isClosed ? \"SuccessSubtitlePostedClosedFiscalYear\" : \"SuccessSubtitlePosted\";\n } else {\n key = \"Saved\";\n }\n return this.props.storage.t(`${namespace}:Validation.${key}`).toString();\n }\n\n handleSaveClick = (): void => {\n this.save({\n successSubtitle: this.getSuccessMessage(false, false)\n });\n };\n\n handleSaveAndPostClick = (): void => {\n // use different text when saving changes in closed FiscalYear\n const isClosed = this.props.storage.data.entity.FiscalYear?.StatusCode === FiscalYearStatusCode.Closed;\n\n this.save({\n queryParams: {\n postInvoice: true\n },\n successSubtitle: this.getSuccessMessage(true, isClosed)\n });\n };\n\n setBreadcrumbs = (): void => {\n if (!this.props.withoutBreadCrumbs) {\n const title = this.props.storage.data.definition.getItemBreadCrumbText(this.props.storage);\n setLockBreadcrumbs({\n storage: this.props.storage,\n title,\n onBeforeSave: this.props.onBeforeSave,\n onSaveFail: this.props.onSaveFail,\n onTableRefreshNeeded: this.props.onTableRefreshNeeded,\n onAfterSave: this.onAfterSave,\n context: this.getAppContext()\n });\n }\n };\n\n loadRelatedProformaFromDocumentLinks = async (): Promise => {\n const { storage } = this.props;\n const proformaBcs = getDocumentLinkBcs(storage.oData, storage.data.entity.DocumentLinks, DocumentLinkTypeCode.ProformaInvoiceDeduction);\n storage.data.additionalResults[RELATED_PROFORMA_ADDITIONAL_RESULT_IDX] = await loadRelatedProformas(storage.data.bindingContext, storage.oData, proformaBcs);\n };\n\n prepareVatForSave = (data: IEntity, isItem: boolean): void => {\n const { storage } = this.props;\n const coreData = storage.data.entity as IDocumentEntity;\n const isBasicProforma = [DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.ProformaInvoiceIssued].includes(this.documentTypeCode)\n && !(coreData as IProformaInvoiceReceivedEntity).IsTaxDocument;\n if (isBasicProforma || this.documentTypeCode === DocumentTypeCode.InternalDocument) {\n // according to https://solitea-cz.atlassian.net/browse/DEV-21857\n // VatClassificationSelection is never present on internal documents\n // and of course also on basic proforma documents, which are not tax related\n delete data.VatClassificationSelection;\n return;\n }\n const _isReceivable = isReceived(this.documentTypeCode);\n\n if (isItem) {\n if (!data.VatClassificationSelection) {\n data.VatClassificationSelection = {};\n }\n const selection = data.VatClassificationSelection.Selection?.Code ?? data.VatClassificationSelection.SelectionCode;\n if (selection !== SelectionCode.Own) {\n data.VatClassificationSelection.SelectionCode = SelectionCode.Default;\n data.VatClassificationSelection.VatClassification = null;\n if (isItem) {\n // TODO: right now we are validating this.entity and not modified data, this should fixed situation where\n // original value has empty object for navigation, and has hidden required fields, maybe change validateAndSave\n // on FormStorage in the future to use modified data\n const vatClassificationBc = storage.data.bindingContext.navigate(\"Items\").addKey(data)\n .navigate(RegularDocumentItemEntity.VatClassificationSelection)\n .navigate(DocumentItemVatClassificationSelectionEntity.VatClassification);\n storage.setValue(vatClassificationBc, null);\n }\n } else {\n const defaultRule = coreData.VatClassificationSelection?.VatClassification ?? {};\n const { VatClassification } = data.VatClassificationSelection;\n data.VatClassificationSelection.VatClassification = {\n ...defaultRule,\n VatDeductionType: VatClassification?.VatDeductionType,\n VatDeductionTypeCode: VatClassification?.VatDeductionType?.Code,\n VatProportionalDeduction: VatClassification?.VatProportionalDeduction,\n NonTaxAccount: VatClassification?.NonTaxAccount\n };\n if (this.hasAccountAssignment) {\n data.VatClassificationSelection.VatClassification.ChartOfAccounts = VatClassification?.NonTaxAccount ? {\n Id: getCurrentCoAId({ storage: this.props.storage }, {\n datePath: \"DateAccountingTransaction\",\n fallbackToActiveChOA: false\n })\n } : null;\n }\n\n // todo: remove this @Matej move this to BE validation and remove from DocumentItemVatClassification\n data.VatClassificationSelection.VatClassification.CountryClassificationCode = getClassificationCodeFromCountry(coreData?.BusinessPartner?.Country);\n data.VatClassificationSelection.VatClassification.PayableReceivableTypeCode = /*this.documentTypeCode === DocumentTypeCode.InternalDocument ? PayableReceivableTypeCode.InternalDocument :*/\n (_isReceivable ? PayableReceivableTypeCode.Payable : PayableReceivableTypeCode.Receivable);\n data.VatClassificationSelection.VatClassification.IsVatRegistered = isVatRegisteredEntity({ storage });\n // todo: remove this ^^^\n }\n } else {\n const savedVat = data[SAVED_VATS_PATH];\n const VatClassificationBc = storage.data.bindingContext.navigate(`${isItem ? \"Items/\" : \"\"}VatClassificationSelection/VatClassification`);\n\n const _appendVatRequiredFieldsForSave = () => {\n const vatSel = data.VatClassificationSelection?.VatClassification ?? {};\n\n // todo: remove this @Matej move this to BE validation and remove from DocumentVatClassification\n vatSel.CountryClassificationCode = getClassificationCodeFromCountry(coreData?.BusinessPartner?.Country);\n vatSel.PayableReceivableTypeCode = /*this.documentTypeCode === DocumentTypeCode.InternalDocument ? PayableReceivableTypeCode.InternalDocument :*/\n (_isReceivable ? PayableReceivableTypeCode.Payable : PayableReceivableTypeCode.Receivable);\n vatSel.IsVatRegistered = isVatRegisteredEntity({ storage });\n // todo: remove this ^^^\n\n const bindingContext = VatClassificationBc.navigate(\"VatReverseCharge\");\n const isReverseChargeVisible = isVisible({\n info: storage.getInfo(bindingContext),\n bindingContext,\n storage,\n context: storage.context\n });\n if (!isReverseChargeVisible) {\n vatSel.VatReverseChargeCode = null;\n } else if (!vatSel.VatReverseCharge) {\n vatSel.VatReverseChargeCode = \"No\";\n }\n\n if (this.hasAccountAssignment) {\n const nonTaxAccountBc = VatClassificationBc.navigate(DocumentVatClassificationEntity.NonTaxAccount);\n const _isProportional = hasVatProportionalDeduction({ storage, bindingContext: nonTaxAccountBc });\n vatSel.ChartOfAccounts = _isProportional ? {\n Id: getCurrentCoAId({ storage }, {\n datePath: \"DateAccountingTransaction\",\n fallbackToActiveChOA: false\n })\n } : null;\n } else {\n delete vatSel.NonTaxAccount;\n delete vatSel.ChartOfAccounts;\n }\n\n if (isItem) {\n vatSel.VatControlStatementSectionCode = this.props.storage.data.entity.VatClassificationSelection?.VatClassification?.VatControlStatementSection?.Code;\n }\n };\n\n if (!savedVat) {\n data.VatClassificationSelection = null;\n } else {\n if (!data.VatClassificationSelection) {\n data.VatClassificationSelection = {};\n }\n if ([SelectionCode.None, SelectionCode.Default].includes(savedVat)) {\n data.VatClassificationSelection.VatClassification = {};\n data.VatClassificationSelection.SelectionCode = savedVat;\n } else {\n // Own selection or SelectionCode.Copy (use the filled data)\n _appendVatRequiredFieldsForSave();\n data.VatClassificationSelection.SelectionCode = savedVat === SelectionCode.Own ? SelectionCode.Own : SelectionCode.Copy;\n }\n // correct value also in storage\n storage.setValue(VatClassificationBc.getParent().navigate(createPath(VatClassificationSelectionEntity.Selection, SelectionEntity.Code)), data.VatClassificationSelection.SelectionCode);\n }\n\n if (data?.VatClassificationSelection?.Selection) {\n delete data.VatClassificationSelection.Selection;\n }\n }\n };\n\n // in some cases, we need to alter the data that are sent to save method\n // because we store DEFINITION of VatAssignments inside the DATA\n prepareOneEntityForSave = (data: IEntity, isItem: boolean): void => {\n if (this.hasAccountAssignment) {\n prepareAccountAssignmentsForSave(this.props.storage, data);\n }\n this.prepareVatForSave(data, isItem);\n };\n\n // and this definition can't be part of the request\n prepareDataForSave = async (data: IEntity, isDraft?: boolean): Promise => {\n const { storage } = this.props;\n\n // call onBeforeSave - it could be overridden in some extensions of DocumentFormView\n const preparedData = this.onBeforeSave(data) ?? cloneDeep(data);\n const isNew = storage.data.bindingContext.isNew();\n\n if (isNew) {\n preparedData.Currency = { Code: getCompanyCurrency(storage.context) };\n }\n\n this.prepareOneEntityForSave(preparedData, false);\n\n // if there is only country code, delete all bank accounts, so we don't create additional request\n deleteEmptyBankAccount(preparedData);\n\n if (!isVisibleByPath(storage, SAVED_ACCOUNTS_PATH)) {\n preparedData.BankAccount = null;\n } else if (!isVisibleByPath(storage, \"BankAccount/Bank\")) {\n preparedData.BankAccount.BankCode = null;\n preparedData.BankAccount.Bank = null;\n }\n\n if (isDraft) {\n if (isDefined(preparedData.BusinessPartner) && !preparedData.BusinessPartner?.BusinessPartner?.Id) {\n delete preparedData.BusinessPartner.BusinessPartner;\n }\n } else {\n prepareNewBusinessPartner(storage, preparedData, this.isReceivedDoc());\n }\n\n if (!storage.data.entity.ExchangeRatePerUnit && storage.data.entity.TransactionCurrency.Code === getCompanyCurrency(storage.context)) {\n // if for some wild unknown reason, ExchangeRatePerUnit is missing and currency is Cze,\n // set 1, to make everything work\n preparedData.ExchangeRatePerUnit = 1;\n }\n\n const rate = preparedData.ExchangeRatePerUnit;\n\n if (preparedData.Items) {\n preparedData.Items.forEach((item: IRegularDocumentItemEntity) => {\n this.prepareOneEntityForSave(item, true);\n const currencyDependentFields = [...currencyDependentFieldsDocItem];\n\n if (this.isRegularDocumentItem) {\n currencyDependentFields.push(...currencyDependentFieldsRegularDocItem);\n }\n\n const isIDClearingItem = (item as IInternalDocumentItemEntity).LinkedDocument?.Id && this.documentTypeCode === DocumentTypeCode.InternalDocument;\n if (!isIDClearingItem && NumberType.isValid(item.TransactionAmount) && NumberType.isValid(item.TransactionAmountNet) && NumberType.isValid(item.TransactionAmountVat)) {\n for (const field of currencyDependentFields) {\n if (!storage.getBackendDisabledFieldMetadata(storage.data.bindingContext.navigate(`Items/${field}`))) {\n if (rate === 1) {\n item[field] = item[`Transaction${field}` as TDocumentTransactionProps];\n } else {\n item[field] = roundToDecimalPlaces(2, (item[`Transaction${field}` as TDocumentTransactionProps]) * rate);\n }\n }\n }\n item[\"Amount\"] = new Big(item[\"AmountNet\"]).add(item[\"AmountVat\"] ?? 0).toNumber();\n }\n });\n }\n\n // FiscalPeriod is only shown in form, isn't part of the post request\n delete preparedData.FiscalPeriod;\n // we don't want to send unnecessary patch for DeferredPlans,\n // DeferredPlans are only loaded to check items with already existing plan, but it is never directly updated in the form\n delete preparedData.DeferredPlans;\n if (isDraft) {\n delete preparedData.DocumentDraft;\n }\n\n // https://solitea-cz.atlassian.net/browse/DEV-20589\n // DateTaxableSupply is supposed to be hidden in some case, but BE fails if it is empty\n if (storage.data.bindingContext.isValidNavigation(\"DateTaxableSupply\") && !(preparedData as IDocumentDraftEntity)?.DateTaxableSupply) {\n (preparedData as IDocumentDraftEntity).DateTaxableSupply = (preparedData as IDocumentDraftEntity).DateIssued;\n }\n\n return preparedData;\n };\n\n onBeforeExecute = (batch: BatchRequest): Promise => {\n // prepared to be overridden\n return null;\n };\n\n async confirmationBeforeSave(): Promise {\n const { storage, confirmationDialog } = this.props;\n\n if (!this.props.storage.data.bindingContext.isValidNavigation(this.vatSubmissionDateProperty)) {\n return true;\n }\n\n const dateBc = storage.data.bindingContext.navigate(this.vatSubmissionDateProperty);\n const validationResult = storage.getAdditionalFieldData(dateBc, \"validationResult\");\n\n if (validationResult?.status === Status.Warning) {\n return confirmationDialog.open({\n content: storage.t(\"Document:Form.VatSubmittedPopupWarning\")\n });\n }\n\n // prepared to be overridden\n return true;\n }\n\n save = async (args: ISaveArgs = {}): Promise => {\n const isConfirmed = await this.confirmationBeforeSave();\n const context = this.context as IAppContext;\n\n if (isConfirmed === false) {\n return null;\n\n }\n\n let lockOverrideDialogResult: IOnVatLockOverrideConfirmDialogFinish;\n\n if (!isCashBasisAccountingCompany(context) && this.props.storage.getEditOverride()?.id === FORCE_VAT_LOCK_OVERRIDE_PARAM) {\n lockOverrideDialogResult = await this.props.promisedComponent.openComponent((onFinish) => {\n return (\n \n );\n });\n\n if (!lockOverrideDialogResult) {\n return null;\n }\n }\n\n this.saveDraftDebounced.cancel();\n this.props.onBeforeSave?.();\n const entity = this.props.storage.data.entity;\n\n this.props.storage.clearEmptyLineItems(\"Items\", true);\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n const data = await this.prepareDataForSave(entity);\n let shouldReloadAccountAssignment = false;\n const argsWithData: ISaveArgs = {\n ...args,\n data,\n onBeforeExecute: async (batch: BatchRequest) => {\n const isNewBusinessPartner = !entity.BusinessPartner?.BusinessPartner?.Id;\n if (this.isReceivedDoc()) {\n const paymentMethod = this.props.storage.getValueByPath(\"PaymentMethod\", { useDirectValue: false });\n if (paymentMethod === PaymentMethodCode.WireTransfer) {\n addBusinessPartnerBankAccountRequest(this.props.storage, isNewBusinessPartner, batch);\n }\n }\n addBusinessPartnerContactRequest(this.props.storage, isNewBusinessPartner, batch);\n\n if (isVisible({\n info: this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(CREATE_RECEIPT_PATH)),\n bindingContext: this.props.storage.data.bindingContext,\n storage: this.props.storage,\n context: this.props.storage.context\n }) && data[CREATE_RECEIPT_PATH]) {\n addCreateReceiptRequest(this.props.storage, batch, data.CashBox?.Id);\n }\n\n // even though the result from sendAdditionalRequestForAccountAssignment\n // isn't referenced in any of the other requests, it is still better to add it to onBeforeExecute\n // to get error handling and have atomic behavior for all the batched requests\n shouldReloadAccountAssignment = this.hasAccountAssignment && (await sendAdditionalRequestForAccountAssignment(this.props.storage, data, batch, this.documentTypeCode));\n // Update minor assets with document\n\n // call onBeforeExecute for overridden child views\n this.onBeforeExecute(batch);\n },\n customResponseHandler: this.customResponseHandler,\n shouldUseCustomResponseHandler: this.shouldUseCustomResponseHandler,\n getCorrectErrorBc: this.getCorrectErrorBc\n };\n\n if (this.props.storage.getEditOverride()?.id === FORCE_VAT_LOCK_OVERRIDE_PARAM) {\n argsWithData.queryParams = {\n [FORCE_VAT_LOCK_OVERRIDE_PARAM]: true\n };\n\n if (lockOverrideDialogResult?.date) {\n argsWithData.queryParams[FORCE_VAT_LOCK_OVERRIDE_DATE_PARAM] = formatDateToDateString(lockOverrideDialogResult.date);\n }\n }\n\n const result = await this.props.storage.save(argsWithData);\n\n if (!result) {\n this.props.onSaveFail?.();\n // for some reason, when confirmationBeforeSave dialog is used,\n // scroll moves back down after calling scrollPageUp => add setTimeout :/\n this.forceUpdate(() => setTimeout(this.scrollPageUp));\n return result;\n }\n\n this.props.storage.setCustomData({\n editOverride: null,\n usePrompt: null\n });\n\n if (isNew && !!data.DocumentDraft) {\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n\n if (shouldReloadAccountAssignment) {\n invalidateAccountAssignments(this.props.storage);\n }\n\n setBusinessPartnerGroupStatus(this.props.storage, false);\n\n if (!args.skipAfterSave) {\n this.onAfterSave(isNew, false);\n }\n if (this.hasAccountAssignment) {\n correctAccountIds(this.props.storage);\n }\n this.forceUpdate(this.scrollPageDown);\n\n return result;\n };\n\n getExistingBusinessPartner = async (doc: IDocumentEntity, formStorage: FormStorage): Promise => {\n const docBP = doc.BusinessPartner;\n const name = docBP?.Name;\n if (!name) {\n // if name is not filled, we can't match the BusinessPartner at all...\n return null;\n }\n\n const legalNumber = docBP?.LegalNumber;\n let filter = `${BusinessPartnerEntity.Name} eq '${name}'`;\n\n if (legalNumber) {\n filter += ` AND ${BusinessPartnerEntity.LegalNumber} eq '${legalNumber}'`;\n } else {\n // without legal number, match by address,\n // if the address is not fully completed, match to bp with same name without address\n // https://solitea-cz.atlassian.net/browse/DEV-23952\n const countryCode = docBP?.Country?.Code;\n const postalCode = docBP?.PostalCode;\n const city = docBP?.City;\n const street = docBP?.Street;\n if (countryCode && postalCode && city && street) {\n filter += ` AND ${createPath(BusinessPartnerEntity.BillingAddress, BillingAddressEntity.CountryCode)} eq '${countryCode}'`;\n filter += ` AND ${createPath(BusinessPartnerEntity.BillingAddress, BillingAddressEntity.PostalCode)} eq '${postalCode}'`;\n filter += ` AND ${createPath(BusinessPartnerEntity.BillingAddress, BillingAddressEntity.City)} eq '${city}'`;\n filter += ` AND ${createPath(BusinessPartnerEntity.BillingAddress, BillingAddressEntity.Street)} eq '${street}'`;\n } else {\n filter += ` AND ${BusinessPartnerEntity.BillingAddress} eq null`;\n }\n }\n\n const existingBusinessPartnerRes = await formStorage.oData.getEntitySetWrapper(EntitySetName.BusinessPartners).query()\n .filter(filter)\n .expand(BusinessPartnerEntity.Contacts)\n .fetchData();\n\n const existingBusinessPartner = existingBusinessPartnerRes.value[0];\n\n if (existingBusinessPartner) {\n return existingBusinessPartner;\n }\n return null;\n };\n\n customResponseHandler: TCustomResponseHandler = async (response: IBatchResult[], args: IValidateAndSave, formStorage: FormStorage) => {\n const error = response[0] as IBatchResult;\n const businessPartnerAlreadyExists = error.body?._validationMessages?.find(message => BusinessPartnerSaveErrors.includes(message.code));\n if (businessPartnerAlreadyExists) {\n const existingBp = await this.getExistingBusinessPartner(args.entity, formStorage);\n if (existingBp?.Id) {\n const updatedDoc = {\n ...args.entity,\n BusinessPartner: {\n ...args.entity.BusinessPartner,\n // insert the navigation to already existing BusinessPartner\n BusinessPartner: {\n ...existingBp\n }\n }\n };\n return await formStorage.validateAndSave({\n ...args,\n entity: updatedDoc\n });\n }\n }\n if (this.props.customResponseHandler) {\n // propagate to props.customResponseHandler if not handled here\n return await this.props.customResponseHandler(response, args, formStorage);\n }\n\n return null;\n };\n\n shouldUseCustomResponseHandler: TShouldUseCustomResHandler = (response: IBatchResult[]) => {\n const error = response[0] as IBatchResult;\n const businessPartnerAlreadyExists = error.body?._validationMessages?.find(message => BusinessPartnerSaveErrors.includes(message.code));\n\n if (businessPartnerAlreadyExists) {\n // if user tries to save entity (probably draft) with \"new\" business partner, that already exists in database,\n // add that business partner navigation to the current document and try to save again\n return true;\n } else if (this.props.shouldUseCustomResponseHandler) {\n // propagate to props.shouldUseCustomResponseHandler if not handled here\n return this.props.shouldUseCustomResponseHandler(response);\n }\n\n return false;\n };\n\n getCorrectErrorBc = (args: IGetCorrectErrorBc): BindingContext => {\n const path = args.matchedBindingContext.getPath();\n // backend matches error to AccountAssignmentSelection but our fields is bound to AccountAssignmentSelection/AccountAssignment\n if (path === \"AccountAssignmentSelection\") {\n return args.matchedBindingContext.navigate(\"AccountAssignment\");\n // BE LabelSelection to local LabelSelection/SelectionCode\n } else if (path === \"LabelSelection\") {\n return args.matchedBindingContext.navigate(\"SelectionCode\");\n } else if (args.error.code === \"CbaFiscalYearInvalid\") {\n return args.matchedBindingContext.navigate(this.datePropForNumberRange);\n }\n\n return args.matchedBindingContext;\n };\n\n // recalculates all items, keepProp - base property name to be used as origin for recalculation\n recalculateAllItems = (keepProp: string, ignoreEmptyItems = true, reDefaultItemVat = false): void => {\n const { storage } = this.props;\n const bc = storage.data.bindingContext.navigate(\"Items\");\n const items = (storage.data.entity.Items ?? []) as IRegularDocumentItemEntity[];\n\n items.forEach(item => {\n const itemBc = bc.addKey(item);\n if (reDefaultItemVat) {\n const vatBc = itemBc.navigate(\"Vat\");\n // redefault Vat only if the item is not dirty -> if user somehow changed the item\n // (even if he doesn't change Vat directly), he might be satisfied with the previous default,\n // so we won't change it for him \"silently\" during all items recalculation\n if (!storage.isDirty(itemBc)) {\n storage.setDefaultValue(vatBc);\n }\n }\n if (!ignoreEmptyItems || this.isItemAnyRecalcPropSet(bc.addKey(item))) {\n const newItemValues = this.recalculateLineItem(item, keepProp);\n if (newItemValues) {\n storage.setValue(itemBc, newItemValues);\n }\n }\n });\n };\n\n recalculateLineItem = (lineItem: any, changedProp: string, decimalPlaces = 2) => {\n const nonNumericProps = [\"Vat\"];\n const newItem = { ...lineItem };\n const lineItemId = lineItem.Id ?? lineItem[BindingContext.NEW_ENTITY_ID_PROP];\n\n if (!nonNumericProps.includes(changedProp)) {\n newItem[changedProp] = parseFloat(newItem[changedProp]);\n\n if (isNaN(newItem[changedProp])) {\n newItem[changedProp] = 0;\n }\n }\n\n // todo what to do with big values? causes Infinity and NaN\n if (isNaN(parseFloat(newItem.Quantity))) {\n newItem.Quantity = 1;\n }\n\n if (lineItemId !== this._lastChangedLineItemId) {\n this._lineItemsLastChanged = null;\n }\n\n this._lastChangedLineItemId = lineItemId;\n const lastChangedValue = this._lineItemsLastChanged ?? this.defaultItemLastChangedProp;\n\n const args: IGetValueArgs = { storage: this.props.storage };\n const ignoreVat = isInAutomatedVatInclusionMode(args)\n || isDocumentReverseCharged(args);\n\n const newValues = calcLineItemValues({\n Quantity: newItem.Quantity,\n TransactionUnitPrice: newItem.TransactionUnitPrice,\n TransactionUnitPriceNet: newItem.TransactionUnitPriceNet,\n TransactionUnitPriceVat: newItem.TransactionUnitPriceVat,\n TransactionAmount: newItem.TransactionAmount,\n TransactionAmountNet: newItem.TransactionAmountNet,\n TransactionAmountVat: newItem.TransactionAmountVat,\n // if we select 'without VAT' (value is null) we want to calculate with 0 vat rate\n Vat: ignoreVat ? 0 : (newItem.Vat?.Code && newItem.Vat?.Rate) ?? 0\n }, changedProp, lastChangedValue, decimalPlaces);\n\n if ([\"TransactionUnitPrice\", \"TransactionAmount\"].includes(changedProp)) {\n this._lineItemsLastChanged = \"TransactionAmount\";\n } else if ([\"TransactionUnitPriceVat\", \"TransactionAmountVat\"].includes(changedProp)) {\n this._lineItemsLastChanged = \"TransactionAmountVat\";\n } else {\n // keep the original value, e.g. if user changes Vat twice, it should behave in a same way\n }\n\n newItem.Quantity = newValues.Quantity;\n newItem.TransactionUnitPrice = newValues.TransactionUnitPrice;\n newItem.TransactionUnitPriceVat = newValues.TransactionUnitPriceVat;\n newItem.TransactionUnitPriceNet = newValues.TransactionUnitPriceNet;\n newItem.TransactionAmount = newValues.TransactionAmount;\n newItem.TransactionAmountNet = newValues.TransactionAmountNet;\n newItem.TransactionAmountVat = newValues.TransactionAmountVat;\n\n if (!this.isRegularDocumentItem) {\n // for InternalDocument, remove props that are not used in its Items\n delete newItem.Quantity;\n delete newItem.TransactionUnitPrice;\n delete newItem.TransactionUnitPriceNet;\n delete newItem.TransactionUnitPriceVat;\n delete newItem.UnitPrice;\n delete newItem.UnitPriceVat;\n delete newItem.UnitPriceNet;\n }\n\n return newItem;\n };\n\n shouldDisableSaveButton = (): boolean => {\n return this.props.storage.isDisabled || !this.props.storage.data?.entity\n || !this.props.storage.data.entity.Items || this.props.storage.data.entity.Items.length === 0\n || this.props.storage.data.entity[DocumentEntity.Locks]?.length > 0;\n };\n\n canPostDocument = (): boolean => {\n return checkPermissionWithOwnPermission(this.props.storage, this.props.permissionContext, CompanyPermissionCode.DocumentPosting);\n };\n\n shouldDisableSavePostButton = (): boolean => {\n return this.shouldDisableSaveButton() || !this.canPostDocument();\n };\n\n renderCustomFooterButtons = (): React.ReactElement => {\n const customButtons = this.props.formProps?.customFooterButtons;\n return typeof customButtons === \"function\" ? customButtons(this.props.storage) : customButtons;\n };\n\n async handleDelete(): Promise {\n await this.deleteDraft();\n await super.handleDelete();\n }\n\n createEntityCopy(args: ICopyEntityArgs = {}): IDocumentExtendedEntity {\n const EXCLUDED_PROPERTIES = [\n \"Id\", DocumentEntity.DocumentTypeCode, DocumentEntity.TransactionAmount,\n DocumentEntity.TransactionAmountDue, DocumentEntity.ClearedStatusCode,\n DocumentEntity.PostedStatusCode, DocumentEntity.DocumentStatusCode, DocumentEntity.Locks,\n DocumentEntity.VatStatementStatusCode,\n DocumentEntity.DocumentVatStatementStatusCode\n ];\n\n const ALLOWED_NAVIGATIONS = [\n \"AccountAssignmentSelection\", \"BankAccount\", \"BusinessPartner\", \"Company\", \"Currency\", \"FiscalPeriod\",\n \"FiscalYear\", \"Items\", \"Labels\", \"NumberRange\", \"PaymentMethod\", \"TransactionCurrency\", \"VatClassificationSelection\",\n \"CashBox\", \"CbaCategory\", \"LabelSelection\", \"Vat\", \"CbaEntryType\", \"ExternalCorrectedDocumentType\"\n ];\n\n if (args.includeAttachments) {\n ALLOWED_NAVIGATIONS.push(\"Attachments\");\n }\n\n if (args.includeDocumentLinks) {\n ALLOWED_NAVIGATIONS.push(\"DocumentLinks\");\n }\n\n const entity = args.entity ?? this.props.storage.data.entity;\n const copy: IDocumentExtendedEntity = {};\n const excludedProps = [...EXCLUDED_PROPERTIES, ...(args.excludeProps ?? [])];\n const isValidProp = (bc: BindingContext, value: TEntityPropValue, isItem?: boolean) => {\n const path = bc.getPath(true);\n const isNavigation = bc.isNavigation();\n const isAllowedNavigation = isNavigation && (isItem || (bc.getParent().isRoot() && ALLOWED_NAVIGATIONS.includes(path)));\n const isNotExcludedProperty = isItem || (!isNavigation && !excludedProps.includes(path));\n\n let isValid: boolean;\n\n if (args.skipInvalidProps && !isNavigation) {\n const info: IFieldInfo = {\n id: bc.getPath(),\n type: getFieldTypeFromProperty(bc.getProperty()),\n bindingContext: bc,\n validator: {\n type: getValidatorTypeFromProperty(bc.getProperty())\n }\n };\n const schema = Validator.createValidationObject(info, this.props.storage);\n isValid = schema.isValidSync(value);\n }\n\n return isAllowedNavigation || (isNotExcludedProperty && (!args.skipInvalidProps || isValid));\n };\n BindingContext.each(entity, this.props.storage.data.bindingContext, (value, bc) => {\n if (bc.isRoot()) {\n return true;\n }\n if (bc.getPath() === \"NumberOurs\" && (args.copyDataToNewDocument || !isObjectEmpty(entity.NumberRange))) {\n return false;\n }\n if (bc.getPath() === \"Items\") {\n const items = [];\n if (!value) {\n return false;\n }\n for (const item of value as IEntity[]) {\n const newItemId = item[BindingContext.NEW_ENTITY_ID_PROP];\n const itemBc = !!newItemId ? bc.addKey(newItemId, true) : bc.addKey(item.Id);\n const itemCopy = {} as IEntity;\n for (const [key, val] of Object.entries(item)) {\n if (key === BindingContext.NEW_ENTITY_ID_PROP) {\n continue;\n }\n const isValid = isValidProp(itemBc.navigate(key), val, true);\n if (isValid) {\n (itemCopy as IEntity)[key] = val;\n }\n }\n if (item.Id) {\n itemCopy.Id = item.Id;\n } else if (newItemId) {\n itemCopy[BindingContext.NEW_ENTITY_ID_PROP] = newItemId;\n }\n if (newItemId) {\n if (this.props.storage.isDirty(itemBc) || item.LinkedDocument?.Id || item[DRAFT_ITEM_ID_PATH]) {\n items.push(itemCopy);\n }\n } else {\n items.push(itemCopy);\n }\n }\n value = items;\n }\n\n const isValid = isValidProp(bc, value);\n if (isValid) {\n (copy as IEntity)[bc.getPath(true)] = value;\n }\n\n return false;\n });\n\n // needed local context fields\n copy[SAVED_VATS_PATH] = entity[SAVED_VATS_PATH];\n\n return copy;\n }\n\n handleFilesUploaded = async (files: IFileMetadataEntity[]): Promise => {\n const docData = this.props.storage.data.entity as IDocumentEntity;\n\n if (this.props.storage.data.bindingContext.isNew()) {\n // we always need to save the file to the draft, otherwise it would be lost when applyIsDocData is called\n await this.saveDraftAndApplyEffects();\n }\n\n // uploaded files are already stored => we can check entity directly\n if (docData.Attachments?.length === 1 && docData.Attachments[0].File?.IsIsdocReadable) {\n const confirmationPromise = this.props.confirmationDialog.open({\n content: this.props.storage.t(\"Document:Isdoc.Confirmation\")\n });\n\n const shouldApply = await confirmationPromise;\n\n if (shouldApply) {\n // application of isDocData saves draft and redirects to correct URL\n await this.applyIsdocData(files[0]);\n }\n }\n };\n\n // Saves draft immediate and triggers callback when it's done\n handleRequestCreateDraft = async (callback: () => void): Promise => {\n await this.saveDraftAndApplyEffects(true);\n callback();\n };\n\n handleCustomFileAction = ({ file, action }: { file: IFileMetadataEntity, action: string }): void => {\n if (action === APPLY_ISDOC_ACTION) {\n this.applyIsdocData(file);\n } else if (action === APPLY_ROSSUM_ACTION) {\n this.applyRossum(file);\n }\n };\n\n applyFileDataToDocument = async (file: IFileMetadataEntity, callback: (file: IFileMetadataEntity, wrapper: EntitySetWrapper, draftId: number) => Promise, immediateBusy?: boolean): Promise => {\n const hasDraft = hasSavedDraft(this.props.storage);\n\n this.props.storage.setBusy(true);\n\n if (!hasDraft || this.props.storage.isDirty()) {\n await this.saveDraftAndApplyEffects(true);\n }\n\n const batch = this.props.storage.oData.batch();\n\n batch.beginAtomicityGroup(\"group1\");\n\n const draftId = this.props.storage.data.entity.DocumentDraft.Id;\n const wrapper = this.props.storage.oData.getEntitySetWrapper(EntitySetName.DocumentDrafts);\n\n const isOk = await callback(file, wrapper, draftId);\n\n if (isOk) {\n // TODO we could retrieve the new data directly in ODATA_ACTION_EXTRACT_ISDOC request\n // but OData class would have to add some support for it\n // and storage.init probably contains some other necessary code,\n // so it is easier to just call storage.reload\n // only problem is that we can have some hidden fields (not added in configuration, nor used as additional properties),\n // those fields won't be fetched here => some fields present in IsDoc will not make it to the saved document\n // so far handled e.g. for Items/Vat in DocumentCommonDefs.tsx form.additionalProperties.push\n await this.props.storage.reload({\n preserveInfos: true,\n withoutBusy: true\n });\n }\n this.props.storage.setBusy(false);\n };\n\n isDocCallback = async (file: IFileMetadataEntity, wrapper: EntitySetWrapper, draftId: number): Promise => {\n const workDate = getWorkDateFromLocalStorage();\n\n try {\n await wrapper.action(OdataActionName.DocumentDraftExtractIsdoc, draftId, {\n FileMetadata: {\n \"@odata.id\": `${EntitySetName.FilesMetadata}(${file.Id})`\n },\n WorkDate: workDate ? formatDateToDateString(workDate) : null\n } as IDocumentDraftExtractIsdocParameters);\n } catch (error) {\n this.props.storage.setFormAlert(getAlertFromError(error));\n return false;\n }\n\n return true;\n };\n\n applyIsdocData = async (file: IFileMetadataEntity): Promise => {\n this.props.storage.setCustomData({ isApplyingIsdocToDocument: true });\n await this.applyFileDataToDocument(file, this.isDocCallback, true);\n this.props.storage.setCustomData({ isApplyingIsdocToDocument: false });\n };\n\n rossumCallback = async (file: IFileMetadataEntity, wrapper: EntitySetWrapper, draftId: number): Promise => {\n this.props.storage.setBusy(false);\n\n try {\n const rossumFinished = await this.props.promisedComponent.openComponent((onFinish) => {\n return (\n \n );\n });\n\n this.props.storage.setBusy(true);\n\n return rossumFinished;\n\n } catch (error) {\n\n this.props.storage.setFormAlert(getAlertFromError(error));\n this.props.storage.refresh();\n return false;\n }\n };\n\n applyRossum = async (file: IFileMetadataEntity): Promise => {\n const isConfirmed = await this.props.promisedComponent.openComponent((onFinish) => {\n return (\n onFinish(files.length === 1)}\n onCancel={() => onFinish(false)}\n files={[file]}\n isOnlyOneFileConfirmation\n />\n );\n });\n\n if (isConfirmed) {\n this.props.storage.setCustomData({ isApplyingRossumToDocument: true });\n await this.applyFileDataToDocument(file, this.rossumCallback);\n this.props.storage.setCustomData({ isApplyingRossumToDocument: false });\n this.props.storage.refresh(true);\n }\n\n };\n\n renderSaveButtons(): ReactElement {\n return (<>\n {!this.isPostable &&\n }\n {this.isPostable &&\n }\n );\n }\n\n async handleCustomHeaderAction(actionId: string): Promise {\n const saved = await this.props.onCustomHeaderAction?.(actionId, this.props.storage);\n if (saved) {\n this.saveDraftSync();\n }\n }\n\n getHeaderIcons(): IHeaderIcon[] {\n const icons = super.getHeaderIcons();\n const issuedDocTypesFiltered: DocumentTypeCode[] = IssuedDocumentTypes.filter(type => type !== DocumentTypeCode.OtherReceivable);\n const docTypesWithPdfExport: DocumentTypeCode[] = [...issuedDocTypesFiltered, DocumentTypeCode.InternalDocument];\n const docTypesWithSendExport: DocumentTypeCode[] = issuedDocTypesFiltered;\n const context = this.context as IAppContext;\n\n // at least one item has to exist for exports to be available\n if (this.props.storage.data.origEntity?.Items?.length > 0 && !this.props.storage.data.bindingContext.isNew() && !this.props.formProps?.isSimple) {\n const logActionSettings = {\n actionId: this.props.storage.id,\n actionType: ActionTypeCode.PDFExport,\n detail: `${getDefaultLogActionDetail(this.props.storage)} AND NumberOurs eq '${this.props.storage.data.entity.NumberOurs}'`\n };\n\n if (docTypesWithSendExport.includes(this.documentTypeCode)) {\n icons.push(\n {\n id: \"send\",\n onClick: () => {\n logAction(logActionSettings);\n this.props.storage.setCustomData({ sendingMessageDialogOpen: true });\n this.forceUpdate();\n },\n label: this.props.storage.t(\"Document:General.SendMessage\"),\n iconName: \"Send\",\n ignoreMasterDisabled: true\n }\n );\n }\n if (docTypesWithPdfExport.includes(this.documentTypeCode)) {\n const isInternalDocument = this.documentTypeCode === DocumentTypeCode.InternalDocument;\n const fnHandleClick = async (language: LanguageCode): Promise => {\n const docTypeName = this.documentTypeCode as string;\n\n const pdfUrl = getInvoicePdfUrl({\n documentType: docTypeName as EntityTypeName,\n entityId: this.props.storage.data.bindingContext.getKey() as number,\n companyId: this.getAppContext().getCompany().Id.toString(),\n isForPrint: true,\n language\n });\n\n this.props.storage.setBusy(true, false, true);\n\n const file = await FileStorage.get(null, {\n url: pdfUrl\n });\n\n\n this.props.storage.setBusy(false);\n logAction(logActionSettings);\n saveAs(file);\n };\n\n icons.push(\n {\n id: \"exportPdf\",\n onClick: async () => {\n fnHandleClick(LanguageCode.Czech);\n },\n label: this.props.storage.t(\"Components:Table.ExportToPDF\"),\n iconName: \"ExportPdf\",\n ignoreMasterDisabled: true\n }\n );\n\n if (!isInternalDocument) {\n icons.push({\n id: \"exportPdfEnglish\",\n onClick: async () => {\n fnHandleClick(LanguageCode.English);\n },\n label: this.props.storage.t(\"Components:Table.ExportToPDFEnglish\"),\n iconName: \"ExportPdf\",\n ignoreMasterDisabled: true\n });\n }\n }\n // hide for beta https://solitea-cz.atlassian.net/browse/DEV-14050\n // if (docTypesWithSendExport.includes(this.documentTypeCode)) {\n // icons.push(\n // {\n // id: \"webInvoice\",\n // onClick: () => {\n // logAction(logActionSettings);\n // window.open(`${ROUTE_WEBINVOICE}/${this.props.storage.data.entity.Id}`, \"_blank\");\n // },\n // label: this.props.storage.t(\"Document:General.WebInvoice\"),\n // iconName: \"WebInvoice\",\n // ignoreMasterDisabled: true\n // }\n // );\n // }\n }\n\n // vat submissions lock force edit\n if (hasMetadataRule(this.props.storage, MetadataLockType.UpdatingRecordWithElectronicSubmission)\n && !this.props.storage.isReadOnly\n ) {\n icons.push({\n id: FORCE_VAT_LOCK_OVERRIDE_PARAM,\n onClick: async () => {\n const context = this.context as IAppContext;\n const allowedFields: string[] = [\n DocumentEntity.BusinessPartner, DocumentEntity.VatClassificationSelection,\n DocumentDraftEntity.Items\n ];\n const itemsAllowedFields: string[] = [\n DocumentItemEntity.Amount, DocumentItemEntity.AmountNet, DocumentItemEntity.AmountVat,\n DocumentItemEntity.TransactionAmount, DocumentItemEntity.TransactionAmountNet, DocumentItemEntity.TransactionAmountVat,\n DocumentItemEntity.Vat\n ];\n\n // Country is supposed to still be non-editable\n this.props.storage.data.metadata.metadata.DisabledPropertyRules[createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.Country)] = this.props.storage.data.metadata.metadata.DisabledPropertyRules[DocumentEntity.BusinessPartner];\n\n for (const allowedField of allowedFields) {\n delete this.props.storage.data.metadata.metadata.DisabledPropertyRules[allowedField];\n }\n\n const itemsBc = this.props.storage.data.bindingContext.navigate(DocumentDraftEntity.Items);\n\n for (const item of this.props.storage.data.entity.Items) {\n const itemBc = itemsBc.addKey(item.Id);\n\n for (const allowedField of itemsAllowedFields) {\n delete this.props.storage.data.metadata.metadata.DisabledPropertyRules[itemBc.navigate(allowedField).getNavigationPath()];\n }\n }\n\n this.props.storage.getBackendDisabledFieldMetadata.cache.clear();\n this.props.storage.setCustomData({\n usePrompt: {\n dialogConfirmText: this.props.storage.t(\"Common:General.Confirm\"),\n dialogContent: this.props.storage.t(\"Document:Form.VatSubmittedOverrideLeavingWarning\")\n }\n });\n\n this.props.storage.setBusy(true);\n // clear draft data when switching to edit override mode\n // so that the newly enabled fields are not does not clash with the draft data,\n // also draft is disabled in edit override mode to prevent any hard ux problems\n await this.deleteDraft();\n await this.props.storage.resetData();\n\n this.props.storage.setEditOverride({\n id: FORCE_VAT_LOCK_OVERRIDE_PARAM,\n icon: EditLockIcon,\n description: this.props.storage.t(\"Document:Form.VatSubmittedLockOverride\")\n });\n this.props.storage.setBusy(false);\n this.props.storage.refresh(true);\n },\n label: this.props.storage.t(\"Document:Form.EditVatSubmittedLock\"),\n iconName: \"EditLock\"\n });\n\n }\n\n return icons;\n }\n\n handleCloseCbaCategoryDialog = (isConfirmed: boolean): void => {\n this.props.storage.setCustomData({\n isCbaCategoryDialogOpen: false\n });\n this.forceUpdate();\n };\n\n handleSuccessfulSending = (): void => {\n this.props.storage.setFormAlert({\n status: Status.Success,\n title: this.props.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.props.storage.t(\"Document:Form.InvoiceSuccessfullySent\")\n });\n this.forceUpdate(this.scrollPageUp);\n };\n\n getFormSubtitle(): string {\n if (this.isCopy()) {\n return super.getFormSubtitle();\n }\n\n if (hasCorrectiveDocument(this.props.storage)) {\n return `/${this.props.storage.t(\"Document:CorrectiveDocument.Fixed\")}/`;\n }\n\n return \"\";\n }\n\n handleCustomCbaCategoryChange = (e: ISmartFieldChange): void => {\n handleCustomCbaCategoryChange(e, this.props.storage);\n };\n\n renderCustomCbaCategoryDialog = (): React.ReactElement => {\n return (\n \n );\n };\n\n renderVatDialog = (): React.ReactElement => {\n const { storage } = this.props;\n if (!storage.getCustomData().isVatDialogOpened) {\n return null;\n }\n\n const { bindingContext } = storage.data;\n const lineId = _getId(storage.getCustomData().dialogCurrentLineItem);\n\n const _close = () => {\n const savedVatsBc = bindingContext.navigate(`Items(${lineId})/${ITEMS_VAT_DEDUCTION_PATH}`);\n storage.cancelFields([savedVatsBc]);\n storage.setCustomData({ isVatDialogOpened: false });\n this.forceUpdate();\n };\n\n const paths = getVatGroupRowsDef({\n prefix: `Items(${lineId})/VatClassificationSelection/VatClassification/`,\n isDocumentItem: true,\n addNonTaxAccount: this.isReceivedDoc()\n }).map(items => items.map(item => item.id));\n\n return (\n \n );\n };\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return (\n <>\n {this.renderForm()}\n {this.hasAccountAssignment && }\n {this.renderCustomCbaCategoryDialog()}\n {this.renderVatDialog()}\n {this.props.storage.getCustomData().sendingMessageDialogOpen &&\n \n }\n \n );\n }\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withMinorAssetPairing(withTimeResolution(withAccruals()(withPermissionContext(withDomManipulator(DocumentFormView)))))));\n\n\n//if we want to extend component that is using HOC (like withConfirmationDialog)\n// we need to export it without the wrappers and apply the wrappers on the extended component\n// TODO some TS trickery, that would enforce the wrapper being applied on the extended classes\nexport { DocumentFormView as DocumentFormViewForExtend };","import { DocumentFormViewForExtend } from \"./DocumentFormView\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { setVariableSymbolFromNumberOurs } from \"../banks/bankAccounts/BankAccounts.utils\";\n\nabstract class IssuedDocumentBaseFormView extends DocumentFormViewForExtend {\n handlePaymentMethodChange_variableSymbol(e: ISmartFieldChange): void {\n if (e.bindingContext.getPath() === \"PaymentMethod\") {\n // we may switch to wire transfer payment method -> VariableSymbol becomes visible, fill it.\n const { storage } = this.props;\n setVariableSymbolFromNumberOurs(storage, storage.data.entity.NumberOurs, storage.data.entity.NumberOurs);\n }\n }\n\n documentSpecificChangeHandlers(e: ISmartFieldChange): void {\n super.documentSpecificChangeHandlers(e);\n\n this.handlePaymentMethodChange_variableSymbol(e);\n this.handleVatItemsDecisiveDateChange(e);\n }\n}\n\nexport default IssuedDocumentBaseFormView;\n","import React from \"react\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { getStoredRanges, loadAndStoreRanges, replaceWildcards } from \"../numberRange/NumberRange.utils\";\nimport { INumberRangeEntity } from \"@odata/GeneratedEntityTypes\";\nimport TemporalFormDialog, { ITemporalFormDialogProps } from \"../../views/formView/TemporalFormDialog\";\n\ninterface IProps extends ITemporalFormDialogProps, WithTranslation {\n}\n\ninterface IState {\n loaded: boolean;\n}\n\nclass NumberRangeTemporalFormDialog extends React.Component {\n state: IState = {\n loaded: false\n };\n\n get isLoading(): boolean {\n return !getStoredRanges(this.props.storage) || !this.props.tReady;\n }\n\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n this.init();\n }\n\n async init(): Promise {\n if (this.props.storage.loaded) {\n if (!this.state.loaded) {\n await loadAndStoreRanges(this.props.storage, true);\n\n this.setState({\n loaded: true\n });\n }\n }\n }\n\n handleTemporalChange = (args: ISmartFieldChange): void => {\n const { storage } = this.props;\n const { bindingContext, additionalData, value } = args;\n\n if (bindingContext.getPath() === \"NumberRange\" && value) {\n const currentNumberRangeId = storage.getTemporalData(bindingContext)?.value;\n if (currentNumberRangeId === value) {\n // no change\n return;\n }\n\n const range = additionalData as INumberRangeEntity;\n const numberOurs = replaceWildcards(range?.NextNumber, storage.data.entity);\n\n storage.handleTemporalChange({\n bindingContext: storage.data.bindingContext.navigate(\"NumberOurs\"),\n value: numberOurs,\n currentValue: numberOurs\n });\n } else if (bindingContext.getPath() === \"NumberOurs\") {\n // note: keep if here, because the FormDialog is used also in CreateNewAssetDialog,\n // where are some additionalFields, which triggers also handleTemporalChange\n\n // todo: user is changing Number directly. If it has match any NumberRange format, we should preselect it\n let obj: ISmartFieldChange = {\n bindingContext: storage.data.bindingContext.navigate(\"NumberRange\"),\n value: additionalData?.Id ?? null,\n triggerAdditionalTasks: true\n };\n\n if (obj.value) {\n obj.additionalData = {\n NextNumber: additionalData?.NextNumber\n };\n }\n\n storage.handleTemporalChange(obj);\n }\n };\n\n render() {\n const { onTemporalChange, ...restProps } = this.props;\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"NumberRange\"], { withRef: true })(NumberRangeTemporalFormDialog);","import { isEditableByPath } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { createPath } from \"@odata/BindingContext\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport {\n BusinessPartnerEntity,\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n FiscalYearEntity,\n IInvoiceReceivedEntity,\n InvoiceReceivedEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { isVatRegisteredCompany } from \"@utils/CompanyUtils\";\n\nimport { Status } from \"../../enums\";\nimport { SAVED_VATS_PATH } from \"../admin/vatRules/VatRules.utils\";\nimport { createAndSetSymbolVariable } from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { isBusinessPartnerField } from \"../businessPartner/BusinessPartner.utils\";\nimport { DocumentFormViewForExtend } from \"./DocumentFormView\";\nimport { IDocumentFormViewProps } from \"./DocumentInterfaces\";\n\nabstract class ReceivedDocumentBaseFormView extends DocumentFormViewForExtend {\n lastNumberTheirs = \"\";\n\n constructor(props: IDocumentFormViewProps) {\n super(props);\n\n this.onAfterLoad = this.onAfterLoad.bind(this);\n this.refreshFormAfterDecisiveDateChange = this.refreshFormAfterDecisiveDateChange.bind(this);\n this.confirmationBeforeSave = this.confirmationBeforeSave.bind(this);\n }\n\n get entity(): IInvoiceReceivedEntity {\n return this.props.storage.data.entity as IInvoiceReceivedEntity;\n }\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n await super.onAfterLoad(hasPreloadedData);\n\n if (!this.props.storage.data.bindingContext.isNew() || this.isDraftView()) {\n this.validateNumberTheirs();\n }\n\n this.lastNumberTheirs = this.entity.NumberTheirs;\n\n }\n\n async refreshFormAfterDecisiveDateChange(path: string): Promise {\n const hasChanged = await super.refreshFormAfterDecisiveDateChange(path);\n if (hasChanged) {\n this.validateNumberTheirs();\n }\n return hasChanged;\n }\n\n validateNumberTheirs = async (): Promise => {\n const storage = this.props.storage;\n const numberTheirsBc = this.props.storage.data.bindingContext.navigate(InvoiceReceivedEntity.NumberTheirs);\n const error = await storage.validateField(numberTheirsBc);\n if (!error && this.entity.NumberTheirs && this.entity.BusinessPartner?.BusinessPartner?.Id) {\n storage.setAdditionalFieldData(numberTheirsBc, \"isBusy\", true);\n storage.refreshField(numberTheirsBc.getPath());\n\n let filter = `${InvoiceReceivedEntity.NumberTheirs} eq '${this.entity.NumberTheirs}'`;\n if (!storage.data.bindingContext.isNew()) {\n filter += ` AND ${InvoiceReceivedEntity.Id} ne ${this.entity.Id}`;\n }\n if (this.entity.FiscalYear?.Id) {\n filter += ` AND ${createPath(InvoiceReceivedEntity.FiscalYear, FiscalYearEntity.Id)} eq ${this.entity.FiscalYear.Id}`;\n }\n\n filter += ` AND ${createPath(InvoiceReceivedEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner, BusinessPartnerEntity.Id)} eq ${this.entity.BusinessPartner.BusinessPartner.Id}`;\n\n const res = await storage.oData.getEntitySetWrapper(getEntitySetByDocumentType(this.documentTypeCode))\n .query()\n .filter(filter)\n .count()\n .top(0)\n .fetchData();\n\n const count = res._metadata.count;\n const validationResult = count ? {\n status: Status.Warning,\n message: storage.t(\"InvoicesReceived:Validation.NumberTheirsDuplicityWarning\", { count })\n } : {\n status: Status.Success,\n message: storage.t(\"InvoicesReceived:Validation.NumberTheirsDuplicityOk\")\n };\n\n storage.setAdditionalFieldData(numberTheirsBc, \"isBusy\", false);\n storage.setAdditionalFieldData(numberTheirsBc, \"validationResult\", validationResult);\n } else {\n storage.setAdditionalFieldData(numberTheirsBc, \"validationResult\", null);\n }\n storage.refreshField(numberTheirsBc.getPath());\n };\n\n handlePaymentMethodChange_variableSymbol(e: ISmartFieldChange): void {\n if (e.bindingContext.getPath() === \"PaymentMethod\") {\n // we may switched to wire transfer payment method -> VariableSymbol becomes visible, fill it.\n const { storage } = this.props;\n createAndSetSymbolVariable(storage, this.entity.NumberTheirs, this.entity.NumberTheirs);\n }\n }\n\n handleDateVatDeductionChangeSpecial(e: ISmartFieldChange): void {\n if (e.bindingContext.getPath() === \"DateVatDeduction\") {\n // if not isVatRegisteredCompany for the changed DateVatDeduction date, set SAVED_VATS_PATH to null\n const dateVatDeduction = e.value as Date;\n\n if (isVatRegisteredCompany(this.context, dateVatDeduction) === false) {\n this.props.storage.setValue(e.bindingContext.getRootParent().navigate(SAVED_VATS_PATH), null);\n }\n }\n }\n\n handleSpecificNumberTheirsBlur = (e: ISmartFieldBlur): void => {\n if (e.bindingContext.getPath() !== \"NumberTheirs\") {\n return;\n }\n\n this.validateNumberTheirs();\n\n const { storage } = this.props;\n if (isEditableByPath(storage, DocumentEntity.SymbolVariable)) {\n createAndSetSymbolVariable(storage, this.lastNumberTheirs, this.entity.NumberTheirs);\n }\n\n this.lastNumberTheirs = this.entity.NumberTheirs;\n };\n\n handleSpecificBusinessPartnerChange = (e: ISmartFieldChange) => {\n const isBPMainField = isBusinessPartnerField(e.bindingContext.getNavigationPath(true));\n if (isBPMainField && e.triggerAdditionalTasks) {\n this.validateNumberTheirs();\n }\n };\n\n\n documentSpecificChangeHandlers(e: ISmartFieldChange): void {\n super.documentSpecificChangeHandlers(e);\n\n this.handlePaymentMethodChange_variableSymbol(e);\n this.handleDateVatDeductionChangeSpecial(e);\n this.handleSpecificBusinessPartnerChange(e);\n }\n\n documentSpecificBlurHandlers(e: ISmartFieldBlur): void {\n super.documentSpecificBlurHandlers(e);\n\n this.handleSpecificNumberTheirsBlur(e);\n }\n\n\n async confirmationBeforeSave(): Promise {\n const { storage, confirmationDialog } = this.props;\n const numberTheirsBc = storage.data.bindingContext.navigate(InvoiceReceivedEntity.NumberTheirs);\n const validationResult = storage.getAdditionalFieldData(numberTheirsBc, \"validationResult\");\n\n if (validationResult?.status === Status.Warning) {\n return confirmationDialog.open({\n content: storage.t(\"Document:Form.NumberTheirsDuplicityConfirmation\", {\n BPName: this.entity.BusinessPartner.Name,\n numberTheirs: this.entity.NumberTheirs\n })\n });\n }\n return super.confirmationBeforeSave();\n }\n}\n\nexport default ReceivedDocumentBaseFormView;\n","import React from \"react\";\n\nimport { IconSize } from \"../../../enums\";\nimport BindingContext, { createBindingContext } from \"../../../odata/BindingContext\";\nimport { PairIcon } from \"../../icon\";\nimport { ISmartMultiSelectProps, SmartMultiSelect } from \"../smartSelect/SmartMultiSelect\";\nimport SmartPairingSelectBase, { ISmartPairingSelectSharedProps } from \"./SmartPairingSelectBase\";\n\ninterface IProps extends ISmartMultiSelectProps, ISmartPairingSelectSharedProps {\n\n}\n\n/** Combination of MultiSelect and Dialog to pick multiple documents for pairing.\n * Hardcoded for documents, but could be changed to be used with anything. */\nexport default class SmartPairingMultiSelect extends React.Component {\n getSelectedItems = (): BindingContext[] => {\n if (!this.props.value) {\n return [];\n }\n\n return this.props.value.map(val => {\n return createBindingContext(this.props.fieldInfo.fieldSettings.entitySet as string, this.props.storage.oData.metadata).addKey(val as (string | number));\n });\n };\n\n renderSelect = (onIconClick: (e: React.MouseEvent) => void): React.ReactElement => {\n const { onPair, dialogTableViewProps, getDefinition, ...selectProps } = this.props;\n\n return (\n }\n onIconActivate={onIconClick}\n fieldInfo={this.props.fieldInfo}\n onKeyDown={this.props.onKeyDown}\n />\n );\n };\n\n render() {\n return (\n \n );\n }\n}","import { getIntentNavParams, getNavLinkComponent } from \"@components/drillDown/DrillDown.utils\";\nimport { IInputOnBlurEvent } from \"@components/inputs/input\";\nimport { IMultiSelectionChangeArgs } from \"@components/inputs/select/MultiSelect\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { ifAny, IGetValueArgs, TGetValueFn, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { AttachmentsAdditionalProperties } from \"@components/smart/GeneralFieldDefinition\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { transformPairingSelectItems } from \"@components/smart/smartPairingSelect/SmartPairingSelect.utils\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, TId } from \"@components/table\";\nimport { setDirtyFlag } from \"@odata/Data.utils\";\nimport { getEntitySetByDocumentType, getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n BankAccountEntity,\n BusinessPartnerEntity,\n CorrectiveInvoiceReceivedEntity,\n CountryEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentLockEntity,\n EntitySetName,\n EntityTypeName,\n ICorrectiveInvoiceIssuedEntity,\n ICorrectiveInvoiceReceivedEntity,\n IDocumentDraftEntity,\n IDocumentEntity,\n IDocumentLinkEntity,\n IInvoiceIssuedEntity,\n PaymentDocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n ExternalCorrectedDocumentTypeCode,\n PostedStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { prepareQueryForBatch, transformToODataString } from \"@odata/OData.utils\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { SAVED_VATS_PATH } from \"@pages/admin/vatRules/VatRules.utils\";\nimport { CREATE_RECEIPT_PATH } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport {\n getDefinition,\n getIssuedDocsWithoutCorrectionFilter,\n getReceivedDocsWithoutCorrectionFilter\n} from \"@pages/documents/corrective/CorrectiveDocumentSharedPairDef\";\nimport {\n correctiveDocumentLinkTypes,\n getDocumentPairedTable,\n setNotPostedStatusFilter\n} from \"@pages/documents/Document.utils\";\nimport { draftInfoPath } from \"@pages/documents/DocumentCommonDefs\";\nimport { IDefinition } from \"@pages/PageUtils\";\nimport { DocumentStatusLocalPath } from \"@pages/reports/CommonDefs\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { getValue, isDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport Field from \"../../../components/inputs/field\";\nimport SmartPairingMultiSelect from \"../../../components/smart/smartPairingSelect/SmartPairingMultiSelect\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n EditableTextSizes,\n FieldType,\n NavigationSource,\n QueryParam,\n RowAction,\n ValueType\n} from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport BindingContext, { createBindingContext, createPath, IEntity } from \"../../../odata/BindingContext\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport DateType from \"../../../types/Date\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport {\n reloadAccountsAndAssignments,\n setCorrectSpecialItemsForAccountAssignment\n} from \"../../accountAssignment/AccountAssignment.utils\";\n\n\nexport const clearOriginalDocumentSwitchPath = \"##clearOriginalDocumentSwitch##\";\nexport type TCorrectiveDocumentEntity = (ICorrectiveInvoiceReceivedEntity | ICorrectiveInvoiceIssuedEntity) & {\n [clearOriginalDocumentSwitchPath]: boolean;\n};\n\nexport interface ICorrectiveFormCustomData extends IFormStorageDefaultCustomData {\n // set to true after the first time fetchAndApplyCorrectedDocuments was called\n wasCorrectedDocumentFetched: boolean;\n}\n\nexport const ADD_EXTERNAL_CORRECTIVE_DOC_ACTION_ID = \"AddExternalCorrectiveDoc\";\n\nconst DOC_ITEMS_PROPERTIES = [\n \"DocumentItems/Amount\",\n \"DocumentItems/AmountNet\",\n \"DocumentItems/AmountVat\",\n \"DocumentItems/TransactionAmount\",\n \"DocumentItems/TransactionAmountNet\",\n \"DocumentItems/TransactionAmountVat\"\n];\n\nexport const amountFields = [\"Amount\", \"AmountNet\", \"AmountVat\", \"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\"];\n\nexport const fetchAndApplyCorrectedDocuments = async (storage: FormStorage, partialCorrectedDocs: IDocumentEntity[]): Promise /*Promise*/ => {\n // should only apply for new document and only the first time\n // https://solitea-cz.atlassian.net/browse/DEV-24313\n // if user changes the corrected document to something else, it should not be replaced again\n const corrDocStorage = storage as unknown as FormStorage;\n const shouldApplyFetchedData = storage.data.bindingContext.isNew() && !corrDocStorage.getCustomData().wasCorrectedDocumentFetched;\n\n\n if (partialCorrectedDocs.length === 0) {\n return;\n }\n\n corrDocStorage.setCustomData({\n wasCorrectedDocumentFetched: true\n });\n storage.setBusy(true);\n\n // todo some better way? allowList vs blockList, same problem in DocumentFormView\n // fields that are not even download for the corrected document\n const EXCLUDED_FIELDS = [\n CorrectiveInvoiceReceivedEntity.CorrectedDocuments, \"Explanation\", \"Id\",\n DocumentEntity.Locks, ...Object.values(DocumentLockEntity).map(val => `${DocumentEntity.Locks}/${val}`),\n \"DocumentTypeCode\", \"NumberOurs\",\n \"NumberRange\", \"NumberRange/Definition/Name\", \"NumberRange/NextNumber\", \"NumberRange/Definition\",\n `${CorrectiveInvoiceReceivedEntity.CorrectedDocuments}/${DocumentEntity.ExchangeRatePerUnit}`,\n ...(DOC_ITEMS_PROPERTIES.map(prop => `${CorrectiveInvoiceReceivedEntity.CorrectedDocuments}/${prop}`)),\n CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber,\n CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentType,\n CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentTypeCode,\n ...AttachmentsAdditionalProperties[0].additionalProperties.filter(property => property.id.startsWith(\"File\")).map(property => `Attachments/File/${property.id}`)\n ];\n\n // fields that are downloaded for the corrected document,\n // but not copied over to the corrective document\n const NOT_COPIED_FIELDS: (keyof IDocumentEntity)[] = [\n DocumentEntity.ClearedStatus, DocumentEntity.ClearedStatusCode,\n DocumentEntity.DocumentStatus, DocumentEntity.DocumentStatusCode,\n DocumentEntity.PostedStatus, DocumentEntity.PostedStatusCode,\n DocumentEntity.DocumentVatStatementStatus, DocumentEntity.DocumentVatStatementStatusCode\n ];\n\n if (storage.data.bindingContext.getEntityType().getName() === EntityTypeName.CorrectiveInvoiceReceived) {\n // NumberTheirs of corrective document is different from NumberTheir of the corrected document\n // => don't copy it\n EXCLUDED_FIELDS.push(DocumentEntity.NumberTheirs);\n }\n\n const corrInvMergedDef = cloneDeep((storage as FormStorage).data.mergedDefinition);\n\n for (const ignoredField of EXCLUDED_FIELDS) {\n delete corrInvMergedDef[ignoredField];\n }\n\n for (const key of Object.keys(corrInvMergedDef)) {\n if (key.startsWith(\"DeferredPlans\") || key.startsWith(DocumentEntity.Attachments)) {\n // maybe this would be more efficient than excluded fields approach? for every collection at least\n delete corrInvMergedDef[key];\n }\n }\n\n // don't copy any of the date fields\n const dateGroup = storage.data.definition.groups.find(group => group.id === \"date\");\n\n for (const row of dateGroup.rows) {\n for (const field of row) {\n delete corrInvMergedDef[field.id];\n }\n }\n\n // do we want to keep items if user already made some or not?\n // behavior kind of changed when multi pairing was introduced\n\n // for (const vals of storage.data.bindingContext.iterateNavigation(\"Items\", storage.data.entity.Items)) {\n // if (storage.isDirty(vals.bindingContext)) {\n // for (const key of Object.keys(corrInvMergedDef)) {\n // if (key.startsWith(\"Items/\")) {\n // delete corrInvMergedDef[key];\n // }\n // }\n //\n // break;\n // }\n // }\n\n // BindingContext.each(storage.data.entity, storage.data.bindingContext, (value, bc) => {\n // if (storage.isDirty(bc) && !bc.isNavigation()) {\n // delete corrInvMergedDef[bc.getNavigationPath()];\n // }\n //\n // return true;\n // });\n\n\n const columns = (storage as FormStorage).convertMergedDefToColumns(corrInvMergedDef);\n // documents of multiple different document types can be paired\n // => use batch and fetch documents of each type in one request\n const documentsByType: Partial> = {};\n\n for (const doc of partialCorrectedDocs) {\n const docType = doc.DocumentTypeCode as DocumentTypeCode;\n\n if (!documentsByType[docType]) {\n documentsByType[docType] = [];\n }\n\n documentsByType[docType].push(doc);\n }\n\n const batch = storage.oData.batch();\n\n batch.beginAtomicityGroup(\"group1\");\n\n for (const [docType, documents] of Object.entries(documentsByType)) {\n const entitySetName = getEntitySetByDocumentType(docType as DocumentTypeCode);\n const bc = createBindingContext(entitySetName, storage.oData.getMetadata());\n\n prepareQueryForBatch({\n batch,\n bindingContext: bc,\n fieldDefs: columns,\n settings: {\n \"\": {\n filter: `Id in (${transformToODataString(documents.map(doc => doc.Id), ValueType.Number)})`\n }\n }\n });\n }\n\n const results = await batch.execute();\n const correctedDocuments = (results.flatMap(res => (res.body as ODataQueryResult).value) as IDocumentDraftEntity[])\n .map(fetchedDoc => {\n return {\n ...fetchedDoc,\n // we need to copy _metadata to get correct type of the document\n _metadata: partialCorrectedDocs.find(doc => doc.Id === fetchedDoc.Id)?._metadata\n };\n });\n\n if (shouldApplyFetchedData) {\n let correctiveDocument: Partial = {};\n\n // if only one doc is paired, use its data\n if (correctedDocuments.length === 1) {\n correctiveDocument = cloneDeep(correctedDocuments[0]);\n\n for (const key of NOT_COPIED_FIELDS) {\n delete correctiveDocument[key];\n }\n\n } else {\n // if multiple - apply data from the corrected documents\n // only transfer BusinessPartner and TransactionCurrency\n // https://solitea-cz.atlassian.net/browse/DEV-23122?focusedCommentId=25904\n correctiveDocument[DocumentEntity.BusinessPartner] = cloneDeep(correctedDocuments[0].BusinessPartner);\n correctiveDocument[DocumentEntity.TransactionCurrency] = cloneDeep(correctedDocuments[0].TransactionCurrency);\n correctiveDocument[DocumentEntity.TransactionCurrencyCode] = correctedDocuments[0].TransactionCurrencyCode;\n }\n\n delete correctiveDocument.Id;\n delete correctiveDocument.DocumentDraft;\n\n // amounts should be applied as negative values\n let amountSum = 0;\n let transactionAmountSum = 0;\n\n for (const item of ((correctiveDocument.Items ?? []) as IEntity[])) {\n for (const amountField of amountFields) {\n if (isDefined(item[amountField])) {\n item[amountField] = item[amountField] !== 0 ? -1 * item[amountField] : 0;\n\n if (amountField === \"Amount\") {\n amountSum += item[amountField];\n } else if (amountField === \"TransactionAmount\") {\n transactionAmountSum += item[amountField];\n }\n }\n }\n }\n\n // apply the correct value even for summary items (TransactionAmount, Amount)\n // to prevent flickering of the summery item value\n correctiveDocument.Amount = amountSum;\n correctiveDocument.TransactionAmount = transactionAmountSum;\n\n // prevent DocumentFormView.correctVatSelectionFields\n // from changing the vats retrieved from the corrected document\n // DEV-24261\n setDirtyFlag(storage, storage.data.bindingContext.navigate(SAVED_VATS_PATH));\n\n storage.data.entity = {\n ...storage.data.entity,\n ...correctiveDocument\n };\n\n delete storage.data.entity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments];\n\n // this has to be called, to prevent validation errors on item account assignment fields\n setCorrectSpecialItemsForAccountAssignment(storage);\n\n // prevent navigation errors in BindingContext.each\n // CorrectedDocument is Document type, but there can be properties of some extended document that would cause \"navigate\" to fail\n delete storage.data.entity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments];\n\n // then remove errors if some present\n BindingContext.each(storage.data.entity, storage.data.bindingContext, (value, bc) => {\n // only validate fields, not their \"parent\" bc\n if (!bc.getKey()) {\n storage.validateField(bc);\n setDirtyFlag(storage, bc);\n }\n\n return true;\n });\n }\n\n // then add the CorrectedDocument to again\n // prevent navigation errors in BindingContext.each\n // CorrectedDocument is Document type, but there can be properties of some extended document that would cause \"navigate\" to fail\n storage.data.entity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments] = correctedDocuments;\n storage.clearErrorByPath(CorrectiveInvoiceReceivedEntity.CorrectedDocuments);\n\n // call DocumentFormView.onAfterLoad to call all necessary handlers\n // it should remove the storage busy state as well\n storage.emitter.emit(ModelEvent.AfterLoad, true);\n};\n\nexport const isExternalCorrectiveDoc = (storage: FormStorage): boolean => {\n return !!(storage.data?.entity as TCorrectiveDocumentEntity)?.ExternalCorrectedDocumentType?.Code;\n};\n\nexport const onAfterCorrectiveInvoiceInitialLoad = async (storage: FormStorage): Promise => {\n // BE managed to provide items on CorrectedDocument, so we can retrieve them in the original request,\n // but for some reason, the prop is called DocumentItems instead of Items\n // => rename it, so that ItemsSummary can retrieve data from where it expects them\n if (storage.data.entity.CorrectedDocument?.DocumentItems) {\n storage.data.entity.CorrectedDocument.Items = storage.data.entity.CorrectedDocument.DocumentItems;\n delete storage.data.entity.CorrectedDocument.DocumentItems;\n storage.refresh();\n }\n\n\n const entity = storage.getEntity();\n\n // Set correct value and editability of the ClearOriginalDocumentSwitch based on existing CorrectiveWithClearing link,\n // and clear status of the both corrective a corrected document\n if (entity.CorrectedDocuments?.length > 1) {\n storage.setValueByPath(clearOriginalDocumentSwitchPath, false);\n } else {\n const hasCorrectiveWithClearingLink = entity.DocumentLinks?.some(link => link.Type.Code === DocumentLinkTypeCode.CorrectiveWithClearing);\n\n storage.setValueByPath(clearOriginalDocumentSwitchPath, storage.data.bindingContext.isNew() || hasCorrectiveWithClearingLink);\n storage.setValueByPath(CREATE_RECEIPT_PATH, false);\n\n }\n\n const corrDocStorage = storage as unknown as FormStorage;\n corrDocStorage.setCustomData({\n wasCorrectedDocumentFetched: false\n });\n\n const isExternal = isExternalCorrectiveDoc(storage);\n const correctionGroup = storage.data.definition.groups.find(group => group.id === \"correction\");\n\n correctionGroup.title = i18next.t(`CorrectiveInvoicesShared:FormGroup.${isExternal ? \"ExternalCorrectiveDoc\" : \"Correction\"}`);\n};\n\n/** Called after the selection and load of the corrected document */\nexport const onAfterCorrectiveInvoiceCorrectedDocumentLoad = async (storage: FormStorage, refreshCurrencyExchangeRateAfterDateChange: (withoutConfirmation?: boolean) => Promise): Promise => {\n//https://solitea-cz.atlassian.net/browse/DEV-23516\n if (storage.getEntity().CorrectedDocuments?.length > 1) {\n refreshCurrencyExchangeRateAfterDateChange(true)\n .then(() => storage.refresh());\n }\n\n if (storage.getValueByPath(clearOriginalDocumentSwitchPath)) {\n storage.setValueByPath(CREATE_RECEIPT_PATH, false);\n }\n\n // this is most likely called via emitter from CommonCorrectiveSharedUtils\n // => the loaded account assignment/documents doesn't have to correspond to the current fiscal year => make them correct\n await reloadAccountsAndAssignments(storage, storage.data.entity.FiscalYear);\n};\n\nexport const handleClearOriginalDocumentSwitchChange = (e: ISmartFieldChange, storage: FormStorage): void => {\n if (e.bindingContext.getPath() !== clearOriginalDocumentSwitchPath) {\n return;\n }\n\n if (e.value) {\n const currentExRate = storage.getValueByPath(CorrectiveInvoiceReceivedEntity.ExchangeRatePerUnit);\n if (!currentExRate || !isCashBasisAccountingCompany(storage.context)) {\n const correctiveDocument = storage.getEntity();\n const exRate = correctiveDocument.CorrectedDocuments[0]?.ExchangeRatePerUnit;\n\n if (exRate) {\n storage.setValueByPath(CorrectiveInvoiceReceivedEntity.ExchangeRatePerUnit, exRate);\n }\n }\n\n storage.setValueByPath(CREATE_RECEIPT_PATH, false);\n }\n};\n\nexport const addCorrectionDefinition = (definition: IDefinition, context: IAppContext, isReceivableDocType?: boolean) => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n [CorrectiveInvoiceReceivedEntity.CorrectedDocuments]: {\n formatter: (val: TValue, args) => {\n const entity = args.entity as TCorrectiveDocumentEntity;\n\n if (entity.ExternalCorrectedDocumentNumber) {\n return entity.ExternalCorrectedDocumentNumber;\n }\n\n const correctedDocs = entity.CorrectedDocuments;\n const value: React.ReactNode[] = [];\n\n for (let i = 0; i < correctedDocs.length; i++) {\n const correctedDoc = correctedDocs[i];\n value.push(\n \n {getNavLinkComponent(correctedDoc.NumberOurs, {\n route: `${getRouteByDocumentType(correctedDoc.DocumentTypeCode as DocumentTypeCode)}/${correctedDoc.Id}`,\n context: args.storage.context,\n storage: args.storage\n }, getIntentNavParams)}\n {i < correctedDocs.length - 1 ? \", \" : \"\"}\n \n );\n }\n\n return {\n value: value,\n tooltip: correctedDocs.map(correctedDoc => correctedDoc.NumberOurs).join(\", \")\n };\n },\n additionalProperties: [\n { id: DocumentEntity.NumberOurs },\n { id: DocumentEntity.DocumentTypeCode },\n { id: `/${CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber}` }\n ]\n }\n };\n\n definition.table.columns = [draftInfoPath, \"NumberOurs\", CorrectiveInvoiceReceivedEntity.CorrectedDocuments, DocumentStatusLocalPath, \"BusinessPartner\", \"DateIssued\", \"DateDue\", \"Amount\",\n \"TransactionAmountToReceive\", \"TransactionAmountToPay\", \"Note\"];\n\n // combined filter for ExternalCorrectedDocumentNumber and CorrectedDocuments/NumberOurs\n // use ExternalCorrectedDocumentNumber instead of CorrectedDocuments/NumberOurs for the filter definition,\n // because the way TableStorage.createFilterQueryRecursive works for collection filters,\n // it is not possible to use \"/\" in filterName to get OUTSIDE of the collection filter, everything is always nested in it.\n definition.table.filterBarDef[0].filterDefinition[createPath(CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber)] = {\n label: i18next.t(\"CorrectiveInvoicesShared:Form.CorrectedDocuments\"),\n isValueHelp: false,\n filterName: [\"\", `/${createPath(CorrectiveInvoiceReceivedEntity.CorrectedDocuments, DocumentEntity.NumberOurs)}`]\n };\n definition.table.filterBarDef[0].defaultFilters.push(CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber);\n\n definition.table.additionalProperties = [\n ...definition.table.additionalProperties,\n { id: \"TransactionAmountToReceive\" },\n { id: \"TransactionAmountToPay\" },\n { id: createPath(DocumentEntity.BankAccount, BankAccountEntity.Country, CountryEntity.Code) },\n { id: createPath(DocumentEntity.BankAccount, BankAccountEntity.Country, CountryEntity.IsSepa) }\n ];\n\n definition.table.draftDef.draftPropsBlacklist = [\n ...definition.table.draftDef.draftPropsBlacklist,\n \"TransactionAmountToReceive\", \"TransactionAmountToPay\"\n ];\n\n const itemsGroup = definition.form.groups.find(group => group.id === \"Items\");\n\n itemsGroup.lineItems.actions = null;\n\n definition.form.groups.unshift({\n id: \"correction\",\n title: i18next.t(\"CorrectiveInvoicesShared:FormGroup.Correction\"),\n rows: [\n [{ id: CorrectiveInvoiceReceivedEntity.CorrectedDocuments }, { id: clearOriginalDocumentSwitchPath }],\n [{ id: CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber }],\n [{ id: \"Explanation\" }]\n ]\n });\n\n if (definition.form.fieldDefinition?.[DocumentDraftEntity.DateReceived]) {\n // https://solitea-cz.atlassian.net/browse/DEV-24390\n definition.form.fieldDefinition[DocumentDraftEntity.DateReceived].isRequired = true;\n }\n\n // definition.form\n\n // disable some fields if CorrectedDocument is selected\n const fnEnhanceIsDisabled = (fieldName: CorrectiveInvoiceReceivedEntity, newIsDisabled: TInfoValue) => {\n if (definition.form.fieldDefinition[fieldName]) {\n const originalIsDisabled = definition.form.fieldDefinition[fieldName].isDisabled;\n\n definition.form.fieldDefinition[fieldName].isDisabled = (args: IGetValueArgs) => {\n let isDisabled: boolean;\n\n if (originalIsDisabled) {\n isDisabled = getValue(originalIsDisabled, args);\n }\n\n isDisabled = isDisabled || getValue(newIsDisabled, args);\n\n return isDisabled;\n };\n }\n };\n\n fnEnhanceIsDisabled(CorrectiveInvoiceReceivedEntity.TransactionCurrency, (args: IGetValueArgs) => {\n return args.storage.getEntity().CorrectedDocuments?.length > 0;\n\n });\n\n if (!isCashBasisAccountingCompany(context)) {\n fnEnhanceIsDisabled(CorrectiveInvoiceReceivedEntity.ExchangeRatePerUnit, (args: IGetValueArgs) => {\n const correctiveDocument = args.storage.getEntity();\n\n return !!correctiveDocument[clearOriginalDocumentSwitchPath] && !isExternalCorrectiveDoc(args.storage as FormStorage);\n });\n }\n\n definition.form.fieldDefinition.Explanation = {\n type: FieldType.EditableText,\n isConfirmable: true,\n isFullRow: true,\n width: EditableTextSizes.L,\n fieldSettings: {\n isResponsive: true,\n placeholder: i18next.t(\"CorrectiveInvoicesShared:Form.ExplanationPlaceholder\")\n }\n };\n\n // we need to fetch existing Corrective document link, to remove it\n // if the user changes the CorrectedDocument\n definition.form.additionalProperties = [\n ...definition.form.additionalProperties,\n { id: \"DocumentLinks/Type\" },\n { id: \"DocumentLinks/TargetDocument\" }\n ];\n\n definition.form.querySettings = {\n ...definition.form.querySettings,\n \"OppositeDocumentLinks\": {\n filter: `TypeCode in (${transformToODataString(correctiveDocumentLinkTypes, ValueType.String)})`\n }\n };\n\n definition.form.fieldDefinition[CorrectiveInvoiceReceivedEntity.CorrectedDocuments] = {\n label: i18next.t(\"CorrectiveInvoicesShared:Form.CorrectedDocuments\"),\n width: BasicInputSizes.XL,\n isRequired: true,\n isReadOnly: false,\n isVisible: (args: IGetValueArgs) => {\n return !isExternalCorrectiveDoc(args.storage as FormStorage);\n },\n fieldSettings: {\n entitySet: EntitySetName.PayingDocuments,\n displayName: \"NumberOurs\",\n keyPath: \"Id\",\n transformFetchedItems: transformPairingSelectItems,\n /** We need the items preloaded for:\n * 1. transformFetchedItems to work for the initial value\n * 2. to have items ready when the value changes from the pairing dialog */\n preloadItems: true,\n showTabularHeader: true,\n additionalProperties: [\n { id: \"DocumentType\" },\n { id: \"DocumentStatus\" },\n { id: \"ClearedStatus\" },\n ...correctedDocAdditionalProperties\n ],\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n const selectedItems = args.storage.getEntity().CorrectedDocuments;\n\n if (!items || !selectedItems || selectedItems.length === 0) {\n return items;\n }\n\n const selectedDoc = items.find(item => item.id === selectedItems[0].Id)?.additionalData;\n\n\n if (!selectedDoc) {\n return items;\n }\n\n return items.filter(item => {\n return areDocumentsApplicableForSameCorrectiveDoc(item.additionalData, selectedDoc);\n });\n },\n // on select change, we want to propagate _metadata object so that we know the correct document type when saving\n localDependentFields: [\n {\n from: { id: \"_metadata\" },\n to: { id: \"_metadata\" },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: DocumentEntity.DocumentTypeCode },\n to: { id: DocumentEntity.DocumentTypeCode },\n navigateFrom: NavigationSource.Itself\n }\n ]\n },\n columns: [\n { id: \"NumberOurs\", label: i18next.t(\"CorrectiveInvoicesShared:Form.MultiSelectNumberOursColumnLabel\") },\n // allow filtering over NumberTheirs for corrective invoices RECEIVED\n isReceivableDocType ? {\n id: \"NumberTheirs\"\n } : null,\n { id: \"TransactionAmount\" },\n {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: BusinessPartnerEntity.Name\n }\n }\n ].filter(val => val),\n filter: {\n select: isReceivableDocType ? getReceivedDocsWithoutCorrectionFilter : getIssuedDocsWithoutCorrectionFilter\n },\n additionalProperties: [\n { id: DocumentEntity.ExchangeRatePerUnit },\n ...DOC_ITEMS_PROPERTIES.map(prop => ({ id: prop }))\n ],\n type: FieldType.Custom,\n render: ({ storage, props, events }) => {\n const headerData = (): IReadOnlyListItem[] => {\n const entity = storage.data.entity as IInvoiceIssuedEntity;\n const rootBc = storage.data.bindingContext;\n\n return [\n {\n label: storage.getInfo(rootBc.navigate(\"NumberOurs\")).label,\n value: entity.NumberOurs\n },\n {\n label: storage.getInfo(rootBc.navigate(\"DateIssued\")).label,\n value: DateType.format(entity.DateIssued)\n }\n ];\n };\n\n const updateOriginalDocumentSwitchValue = (correctedDocuments: IDocumentEntity[]): void => {\n if (correctedDocuments.length > 1) {\n storage.setValueByPath(clearOriginalDocumentSwitchPath, false);\n } else {\n const entity = storage.getEntity();\n const isCorrectedDocumentCleared = entity.CorrectedDocuments?.[0]?.ClearedStatusCode === ClearedStatusCode.Cleared;\n const isCorrectiveDocumentCleared = entity.ClearedStatusCode === ClearedStatusCode.Cleared;\n\n storage.setValueByPath(clearOriginalDocumentSwitchPath, !isCorrectedDocumentCleared && !isCorrectiveDocumentCleared);\n }\n\n };\n\n const handleChange = async (args: IMultiSelectionChangeArgs) => {\n events.onSelectChange(args);\n };\n const handleBlur = async (e: IInputOnBlurEvent) => {\n const correctedDocuments = storage.getEntity().CorrectedDocuments ?? [];\n\n if (e.wasChanged && correctedDocuments.length > 0) {\n await fetchAndApplyCorrectedDocuments(storage as FormStorage, correctedDocuments);\n\n if (correctedDocuments.length > 1) {\n storage.setValueByPath(clearOriginalDocumentSwitchPath, false);\n }\n\n updateOriginalDocumentSwitchValue(correctedDocuments);\n } else {\n events.onBlur(e);\n }\n };\n\n const handlePairing = async (selected: BindingContext[], entities: IEntity[]) => {\n if (selected?.length > 0) {\n await fetchAndApplyCorrectedDocuments(storage as FormStorage, entities);\n\n storage.clearAndSetValue(props.parentProps.bindingContext, entities);\n } else {\n storage.clearValue((props.parentProps.bindingContext));\n }\n\n updateOriginalDocumentSwitchValue(entities);\n\n storage.refreshFields();\n };\n\n const getFirstSelectedRow = (tableStorage: TSmartODataTableStorage) => {\n const activeRows = tableStorage.tableAPI.getState()?.activeRows;\n\n if (activeRows.size === 0) {\n return null;\n }\n\n const firstRowKey = Array.from(activeRows)[0];\n const rowBc = createBindingContext(firstRowKey, tableStorage.oData.metadata);\n\n return getRow(tableStorage.tableAPI.getState().rows, rowBc);\n };\n // disable row action if some row is already selected,\n // and has different BusinessPartner,TransactionCurrency or ExchangeRate\n const isRowWithoutAction = (tableStorage: TSmartODataTableStorage, rowId: TId, action: RowAction, row: IRow): boolean => {\n const selectedRow = getFirstSelectedRow(tableStorage);\n\n\n const currentDocument = row.customData.entity as IDocumentEntity;\n const isNotPosted = currentDocument.PostedStatusCode === PostedStatusCode.NotPosted;\n\n if (!selectedRow) {\n return isNotPosted;\n }\n\n const selectedDocument = selectedRow.customData.entity as IDocumentEntity;\n\n return isNotPosted || !areDocumentsApplicableForSameCorrectiveDoc(selectedDocument, currentDocument);\n };\n\n const presetDefaultFilters = (tableStorage: TSmartODataTableStorage): void => {\n setNotPostedStatusFilter(tableStorage);\n tableStorage.applyFilters();\n };\n\n return (\n \n \n \n );\n }\n };\n\n definition.form.fieldDefinition[clearOriginalDocumentSwitchPath] = {\n type: FieldType.Switch,\n label: i18next.t(\"CorrectiveInvoicesShared:Form.ClearOriginalDocument\"),\n affectedFields: [{ id: DocumentDraftEntity.ExchangeRatePerUnit }],\n isVisible: (args: IGetValueArgs) => {\n return !isExternalCorrectiveDoc(args.storage as FormStorage);\n },\n fieldSettings: {\n type: SwitchType.YesNo\n },\n isDisabled: (args: IGetValueArgs) => {\n const entity = args.storage.getEntity();\n\n // if multiple CorrectedDocuments documents => switch always disabled\n if (entity.CorrectedDocuments?.length > 1) {\n return true;\n }\n\n // for one CorrectedDocument,\n // it is disabled if either the CorrectedDocuments is fully cleared or the CorrectiveDocument is fully cleared,\n // and the is not DocumentLinkTypeCode.CorrectiveWithClearing link between them\n const isCorrectedDocumentCleared = entity.CorrectedDocuments?.[0]?.ClearedStatusCode === ClearedStatusCode.Cleared;\n const isCorrectiveDocumentCleared = entity.ClearedStatusCode === ClearedStatusCode.Cleared;\n const hasCorrectiveWithClearingLink = entity.DocumentLinks?.some(link => link.Type.Code === DocumentLinkTypeCode.CorrectiveWithClearing);\n\n return !hasCorrectiveWithClearingLink && (isCorrectedDocumentCleared || isCorrectiveDocumentCleared);\n }\n };\n\n definition.form.fieldDefinition[CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentType] = {\n defaultValue: (args: IGetValueArgs) => {\n const type = getQueryParameters()[QueryParam.Type];\n\n if (type) {\n if (type === ExternalCorrectedDocumentTypeCode.DontClear) {\n return ExternalCorrectedDocumentTypeCode.DontClear;\n } else {\n return ExternalCorrectedDocumentTypeCode.Clear;\n }\n }\n\n return null;\n }\n };\n definition.form.fieldDefinition[CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber] = {\n label: i18next.t(\"CorrectiveInvoicesShared:Form.ExternalDocument\"),\n isVisible: (args: IGetValueArgs) => {\n return isExternalCorrectiveDoc(args.storage as FormStorage);\n },\n isRequired: (args: IGetValueArgs) => {\n return isExternalCorrectiveDoc(args.storage as FormStorage);\n },\n width: BasicInputSizes.XXL,\n additionalProperties: [\n { id: `/${CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentType}` }\n ]\n };\n\n // change behavior of CREATE_RECEIPT_PATH\n const createReceiptDef = definition.form.fieldDefinition[CREATE_RECEIPT_PATH];\n const isCreateReceiptDisabled: TGetValueFn = (args: IGetValueArgs) => {\n const entity = args.storage.getEntity();\n\n if (isExternalCorrectiveDoc(args.storage as FormStorage)) {\n // only allow clearing for the DontClear type\n return getQueryParameters()[QueryParam.Type] !== ExternalCorrectedDocumentTypeCode.DontClear;\n }\n\n return !!entity[clearOriginalDocumentSwitchPath];\n };\n createReceiptDef.isDisabled = createReceiptDef.isDisabled ? ifAny(createReceiptDef.isDisabled, isCreateReceiptDisabled) : isCreateReceiptDisabled;\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n const tabTable = getDocumentPairedTable({\n selectQuery: `TypeCode in (${transformToODataString(correctiveDocumentLinkTypes, ValueType.String)})`,\n isCbaCompany: isCashBasisAccountingCompany(context)\n });\n\n if (isReceivableDocType) {\n const numberTheirCol = {\n id: \"PairedDocument/NumberTheirs\"\n };\n const pairedDocIndex = tabTable.columns.findIndex(col => col.id === \"PairedDocument\");\n\n if (pairedDocIndex >= 0) {\n tabTable.columns.splice(pairedDocIndex + 1, 0, numberTheirCol);\n } else {\n tabTable.columns.push(numberTheirCol);\n }\n }\n\n tabsGroup.tabs.push({\n id: \"correctedDocs\",\n title: i18next.t(\"Document:FormTab.Corrections\"),\n table: tabTable\n });\n};\n\nexport const onBeforeCorrectiveFormSave = (storage: FormStorage): TCorrectiveDocumentEntity => {\n const clonedEntity: TCorrectiveDocumentEntity = cloneDeep(storage.data.entity) as TCorrectiveDocumentEntity;\n const origEntity: TCorrectiveDocumentEntity = cloneDeep(storage.data.origEntity) as TCorrectiveDocumentEntity;\n const correctedDocuments = clonedEntity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments] ?? [];\n const shouldClearOriginalDoc = clonedEntity[clearOriginalDocumentSwitchPath];\n const docLinkType = shouldClearOriginalDoc ? DocumentLinkTypeCode.CorrectiveWithClearing : DocumentLinkTypeCode.CorrectiveWithoutClearing;\n\n clonedEntity.DocumentLinks = [];\n\n for (const correctedDocument of correctedDocuments) {\n let link: IDocumentLinkEntity;\n const oldLink = origEntity.DocumentLinks?.find(link => link.TargetDocument.Id === correctedDocument.Id);\n\n if (oldLink) {\n // copy the link if already exists\n link = oldLink;\n } else {\n // add the link if it didn't exist before\n link = {\n TargetDocument: {\n Id: correctedDocument.Id,\n _metadata: correctedDocument?._metadata\n }\n };\n }\n\n // set Type based on the current clearOriginalDocumentSwitchPath\n delete link.Type;\n link = {\n ...link,\n TypeCode: docLinkType\n };\n clonedEntity.DocumentLinks.push(link);\n }\n\n // again, prevent bc navigation errors\n delete clonedEntity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments];\n\n if (isExternalCorrectiveDoc(storage)) {\n // otherwise, yup validation would fail on the null value\n delete storage.data.entity[CorrectiveInvoiceReceivedEntity.CorrectedDocuments];\n }\n\n return clonedEntity;\n};\n\n// ! needed so that we can check which rows to disable when pairing\nexport const correctedDocAdditionalProperties = [\n { id: createPath(DocumentDraftEntity.BusinessPartner, BusinessPartnerEntity.Name) },\n { id: createPath(DocumentDraftEntity.BusinessPartner, BusinessPartnerEntity.LegalNumber) },\n { id: DocumentDraftEntity.TransactionCurrency },\n { id: DocumentDraftEntity.Currency },\n { id: PaymentDocumentEntity.PostedStatus },\n { id: DocumentDraftEntity.DocumentStatus },\n { id: DocumentDraftEntity.ExchangeRatePerUnit }\n];\n\n/** Checks whether two different documents are applicable to be paired with one corrective documents.\n * Compares BusinessPartner,TransactionCurrency or ExchangeRate. If same, then applicable. */\nexport const areDocumentsApplicableForSameCorrectiveDoc = (doc1: IDocumentEntity, doc2: IDocumentEntity) => {\n const transactionCurrencyIsSame = doc1.TransactionCurrencyCode === doc2.TransactionCurrencyCode;\n const businessPartnerIsSame = doc1.BusinessPartner.Name === doc2.BusinessPartner.Name\n && doc1.BusinessPartner.LegalNumber === doc2.BusinessPartner.LegalNumber;\n\n return transactionCurrencyIsSame && businessPartnerIsSame;\n};","import { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\n\nimport { Sort } from \"../../../enums\";\nimport { ISplitPageTableDef, ITableDefTabData, SECONDARY_FILTERS_ALL } from \"../../../views/table/TableView.utils\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { DocumentStatusLocalPath, StatusEntities } from \"../../reports/CommonDefs\";\nimport { getDocumentStatusColumnDefinition } from \"../DocumentCommonDefs\";\nimport { getDocumentStatusFilterDefinition } from \"../DocumentDef\";\nimport { correctedDocAdditionalProperties } from \"./CommonCorrectiveSharedUtils\";\n\nconst getWithoutCorrectiveDocumentFilter = (args: IGetValueArgs) => {\n let filter = `CorrectiveDocument eq null`;\n // this is called from both form (for select) and DialogPage TableView (for pairing dialog)\n // => get the correct storage\n const storage = (args.storage as TSmartODataTableStorage).getCustomData().rootStorage ?? args.storage;\n const isNew = storage.data.bindingContext.isNew();\n\n if (!isNew) {\n filter = `(${filter} OR CorrectiveDocument/Id eq ${storage.data.entity.Id})`;\n }\n\n return filter;\n};\n\n\nexport const getReceivedDocsWithoutCorrectionFilter = (args: IGetValueArgs): string => {\n return `${getWithoutCorrectiveDocumentFilter(args)} AND DocumentTypeCode in (${[`'${DocumentTypeCode.InvoiceReceived}'`, `'${DocumentTypeCode.OtherLiability}'`].join(\",\")})`;\n};\n\n\nexport const getIssuedDocsWithoutCorrectionFilter = (args: IGetValueArgs): string => {\n return `${getWithoutCorrectiveDocumentFilter(args)} AND DocumentTypeCode in (${[`'${DocumentTypeCode.InvoiceIssued}'`, `'${DocumentTypeCode.OtherReceivable}'`].join(\",\")})`;\n};\n\nexport const getDefinition = (isReceivableDocType?: boolean): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"DocumentType\",\n ...(isReceivableDocType ? [\"NumberTheirs\"] : []),\n \"Amount\",\n \"BusinessPartner\",\n DocumentStatusLocalPath\n ],\n filterDefinition: {\n ...withDisplayName(\"DocumentType\"),\n ...(isReceivableDocType ? { NumberTheirs: {} } : {}),\n NumberOurs: {},\n Amount: {},\n ...withDisplayName(\"BusinessPartner\"),\n ...getDocumentStatusFilterDefinition(StatusEntities),\n ...withDisplayName(\"TransactionCurrency\"),\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {}\n\n }\n }];\n\n const tabs: ITableDefTabData[] = [{\n id: SECONDARY_FILTERS_ALL,\n title: i18next.t(\"Components:FilterBar.All\")\n },\n {\n id: isReceivableDocType ? DocumentTypeCode.InvoiceReceived : DocumentTypeCode.InvoiceIssued,\n title: i18next.t(`Common:GlobalSearchGroups.${isReceivableDocType ? EntityTypeName.InvoiceReceived : EntityTypeName.InvoiceIssued}`)\n },\n {\n id: isReceivableDocType ? DocumentTypeCode.OtherLiability : DocumentTypeCode.OtherReceivable,\n title: i18next.t(`Common:GlobalSearchGroups.${isReceivableDocType ? EntityTypeName.OtherLiability : EntityTypeName.OtherReceivable}`)\n }\n ];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n preventStoreVariant: true,\n tabs,\n tabsSettings: {\n filterFieldName: \"DocumentTypeCode\"\n },\n id: \"CorrectiveDocumentPairingSpecialTable\",\n // todo get the definition from already existing document defs?\n columnDefinition: {\n NumberOurs: { id: \"NumberOurs\" },\n // commented lines are not included in PayingDocuments\n // DateAccountingTransaction: { id: \"DateAccountingTransaction\" },\n DateDue: { id: \"DateDue\" },\n // PaymentMethodCode: { id: \"PaymentMethodCode\" },\n SymbolVariable: { id: \"SymbolVariable\" },\n // SymbolSpecific: { id: \"SymbolSpecific\" },\n // SymbolConstant: { id: \"SymbolConstant\" },\n // \"BankAccount/AccountNumber\": {},\n // \"BankAccount/BankCode\": {},\n Amount: {},\n TransactionAmountDue: {},\n Note: {},\n ...getDocumentStatusColumnDefinition(),\n BusinessPartner: {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {},\n // \"AccountAssignmentSelection/AccountAssignment\": {\n // id: \"AccountAssignmentSelection/AccountAssignment\",\n // fieldSettings: {\n // displayName: \"Name\"\n // }\n // },\n // ...getCommonTableColumnsDefs(),\n DocumentType: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n DateIssued: {},\n DateCreated: {},\n ...(isReceivableDocType ? { NumberTheirs: {} } : {})\n },\n columns: [\n \"NumberOurs\",\n DocumentStatusLocalPath,\n \"DocumentType\",\n ...(isReceivableDocType ? [\"NumberTheirs\"] : []),\n \"BusinessPartner\",\n \"DateIssued\",\n \"DateDue\",\n \"Amount\",\n \"TransactionAmountDue\",\n \"SymbolVariable\",\n \"Note\"\n ],\n filter: isReceivableDocType ? getReceivedDocsWithoutCorrectionFilter : getIssuedDocsWithoutCorrectionFilter,\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }],\n additionalProperties: correctedDocAdditionalProperties\n };\n\n return {\n entitySet: EntitySetName.PayingDocuments,\n table\n };\n};","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\n\nimport { withDomManipulator } from \"../../../../contexts/domManipulator/withDomManipulator\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { withAccruals } from \"../../extensions/accruals/withAccruals\";\nimport { withTimeResolution } from \"../../extensions/timeResolution/withTimeResolution\";\nimport IssuedDocumentBaseFormView from \"../../IssuedDocumentBaseFormView\";\nimport {\n handleClearOriginalDocumentSwitchChange,\n onAfterCorrectiveInvoiceCorrectedDocumentLoad,\n onAfterCorrectiveInvoiceInitialLoad,\n onBeforeCorrectiveFormSave\n} from \"../CommonCorrectiveSharedUtils\";\n\n\nclass CorrectiveInvoicesIssuedFormView extends IssuedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.CorrectiveInvoiceIssued;\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n await super.onAfterLoad(hasPreloadedData);\n const { storage } = this.props;\n\n if (!hasPreloadedData) {\n onAfterCorrectiveInvoiceInitialLoad(storage);\n } else {\n onAfterCorrectiveInvoiceCorrectedDocumentLoad(storage, this.refreshCurrencyExchangeRateAfterDateChange);\n }\n storage.setBusy(false);\n }\n\n documentSpecificChangeHandlers(e: ISmartFieldChange): void {\n super.documentSpecificChangeHandlers(e);\n\n handleClearOriginalDocumentSwitchChange(e, this.props.storage);\n }\n\n onBeforeSave = (): IEntity => {\n return onBeforeCorrectiveFormSave(this.props.storage);\n };\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withTimeResolution(withAccruals({ isExpense: false })(withPermissionContext(withDomManipulator(CorrectiveInvoicesIssuedFormView))))));","import { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../../model/Model\";\nimport { commonDocumentTranslations } from \"../../Document.utils\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../../DocumentDef\";\nimport { addItemsSummaryDef } from \"../../extensions/itemsSummary/ItemsSummary.utils\";\nimport { enhanceIssuedDocDefinition } from \"../../invoicesIssued/InvoicesIssuedDef\";\nimport { addCorrectionDefinition } from \"../CommonCorrectiveSharedUtils\";\nimport CorrectiveInvoicesIssuedFormView from \"./CorrectiveInvoicesIssuedFormView\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.CorrectiveInvoicesIssued,\n documentType: DocumentTypeCode.CorrectiveInvoiceIssued,\n tableId: `${EntityTypeName.CorrectiveInvoiceIssued}Table`,\n formId: `${EntityTypeName.CorrectiveInvoiceIssued}Form`,\n formControl: CorrectiveInvoicesIssuedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"CorrectiveInvoicesIssued:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"CorrectiveInvoicesIssued:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesIssued],\n context\n }));\n\n enhanceIssuedDocDefinition(definition, {\n docType: DocumentTypeCode.CorrectiveInvoiceIssued,\n transFile: \"CorrectiveInvoicesIssued\",\n withoutAmountDueSummary: false,\n hasAccountAssignment,\n withoutAccruals: true,\n context\n });\n\n addItemsSummaryDef(definition, context, true);\n addCorrectionDefinition(definition, context);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"CorrectiveInvoicesIssued\", \"CorrectiveInvoicesShared\", ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.CorrectiveInvoiceIssued, getDefinitions);","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { withTimeResolution } from \"../../extensions/timeResolution/withTimeResolution\";\nimport { withDomManipulator } from \"../../../../contexts/domManipulator/withDomManipulator\";\nimport { withAccruals } from \"../../extensions/accruals/withAccruals\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport {\n handleClearOriginalDocumentSwitchChange,\n onAfterCorrectiveInvoiceCorrectedDocumentLoad,\n onAfterCorrectiveInvoiceInitialLoad,\n onBeforeCorrectiveFormSave\n} from \"../CommonCorrectiveSharedUtils\";\nimport ReceivedDocumentBaseFormView from \"../../ReceivedDocumentBaseFormView\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass CorrectiveInvoicesReceivedFormView extends ReceivedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.CorrectiveInvoiceReceived;\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n await super.onAfterLoad(hasPreloadedData);\n const { storage } = this.props;\n\n if (!hasPreloadedData) {\n onAfterCorrectiveInvoiceInitialLoad(storage);\n } else {\n onAfterCorrectiveInvoiceCorrectedDocumentLoad(storage, this.refreshCurrencyExchangeRateAfterDateChange);\n }\n storage.setBusy(false);\n }\n\n documentSpecificChangeHandlers(e: ISmartFieldChange): void {\n super.documentSpecificChangeHandlers(e);\n\n handleClearOriginalDocumentSwitchChange(e, this.props.storage);\n }\n\n onBeforeSave = (): IEntity => {\n return onBeforeCorrectiveFormSave(this.props.storage);\n };\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withTimeResolution(withAccruals({ isExpense: true })(withPermissionContext(withDomManipulator(CorrectiveInvoicesReceivedFormView))))));","import { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../../model/Model\";\nimport { commonDocumentTranslations } from \"../../Document.utils\";\nimport { addPaymentOrderTableDefs } from \"../../DocumentCommonDefs\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../../DocumentDef\";\nimport { addItemsSummaryDef } from \"../../extensions/itemsSummary/ItemsSummary.utils\";\nimport { enhanceReceivedDocDefinition } from \"../../invoicesReceived/InvoicesReceivedDef\";\nimport { addCorrectionDefinition } from \"../CommonCorrectiveSharedUtils\";\nimport CorrectiveInvoicesReceivedFormView from \"./CorrectiveInvoicesReceivedFormView\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.CorrectiveInvoicesReceived,\n documentType: DocumentTypeCode.CorrectiveInvoiceReceived,\n tableId: `${EntityTypeName.CorrectiveInvoiceReceived}Table`,\n formId: `${EntityTypeName.CorrectiveInvoiceReceived}Form`,\n formControl: CorrectiveInvoicesReceivedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"CorrectiveInvoicesReceived:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"CorrectiveInvoicesReceived:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesReceived],\n context\n }));\n\n enhanceReceivedDocDefinition(definition, {\n docType: DocumentTypeCode.CorrectiveInvoiceReceived,\n transFile: \"CorrectiveInvoicesReceived\",\n hasAccountAssignment,\n withoutAccruals: true,\n context\n });\n\n addItemsSummaryDef(definition, context, true);\n addCorrectionDefinition(definition, context, true);\n addPaymentOrderTableDefs(definition);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"CorrectiveInvoicesReceived\", \"CorrectiveInvoicesShared\", \"InvoicesReceived\", ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.CorrectiveInvoiceReceived, getDefinitions);","import { dateAccountingCustomValidator } from \"@pages/documents/DocumentDef\";\nimport i18next from \"i18next\";\n\nimport { ifAll, IFieldDef, IGetValueArgs, not, TInfoValue } from \"../../../components/smart/FieldInfo\";\nimport { getLabelsDef } from \"../../../components/smart/GeneralFieldDefinition\";\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, NavigationSource, ValidatorType, ValueType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { createPath } from \"../../../odata/BindingContext\";\nimport {\n DocumentAccountAssignmentSelectionDraftEntity,\n DocumentCbaCategoryDraftEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemVatClassificationEntity,\n DocumentItemVatClassificationSelectionDraftEntity,\n EntitySetName,\n ICbaCategoryTaxImpactEntity,\n VatClassificationEntity\n} from \"../../../odata/GeneratedEntityTypes\";\nimport {\n CbaCategoryTaxImpactCode,\n DocumentTypeCode,\n MultiplePostingDateAccountingTypeCode,\n PayableReceivableTypeCode,\n VatReverseChargeCode\n} from \"../../../odata/GeneratedEnums\";\nimport { IFormatOptions } from \"../../../odata/OData.utils\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { hasEverBeenVatRegisteredCompany, isCashBasisAccountingCompany } from \"../../../utils/CompanyUtils\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { getAccountSelectionFieldsDef } from \"../../accountAssignment/AccountAssignment.utils\";\nimport {\n getVatDependentFields,\n getVatFieldsDef,\n getVatGroupRowsDef,\n VAT_REVERSE_CHARGE_SELECT_PATH\n} from \"../../admin/vatRules/VatRules.utils\";\nimport { getCashBasisAccountingFieldsDef } from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { IDefinition, IGetDefinition, TFieldDefinition } from \"../../PageUtils\";\nimport { isIssued, isReceived, validateDecisiveDate } from \"../Document.utils\";\nimport { DateAccountingTypePath, DateReceivedTypePath, NoVatItem } from \"./DraftMassAccountingDialog.utils\";\nimport { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\n\nconst isCashBasis: TInfoValue = (args: IGetValueArgs): boolean => {\n return isCashBasisAccountingCompany(args.context);\n};\n\nconst isReceivedCallback: TInfoValue = (args: IGetValueArgs): boolean => {\n return !isIssued(args.storage.data.entity[DocumentDraftEntity.DocumentTypeCode]);\n};\n\n// todo: may be add it to BE enum\nexport const TODAY = \"today\";\n\nexport const getDefinitionFnWithDocType = (docType: DocumentTypeCode): IGetDefinition => {\n const _isIssued = isIssued(docType);\n const payableReceivableTypeCode = docType === DocumentTypeCode.InternalDocument ? PayableReceivableTypeCode.InternalDocument : isReceived(docType) ? PayableReceivableTypeCode.Payable : PayableReceivableTypeCode.Receivable;\n\n const cbaFieldsDef = getCashBasisAccountingFieldsDef(DocumentEntity.CbaCategory, false, _isIssued);\n\n const getDefinition: IGetDefinition = (context: IAppContext): IDefinition => {\n let groupRows: (IFieldDef[])[];\n\n if (!isCashBasisAccountingCompany(context)) {\n groupRows = [\n [{ id: DateAccountingTypePath }, { id: DocumentDraftEntity.DateAccountingTransaction }],\n // temporarily removed\n // [{ id: DocumentDraftEntity.Labels }],\n // has to be in solo row, because we use collapsed rows for bothAccountAssignment and VatClassification\n [\n { id: createPath(DocumentDraftEntity.AccountAssignmentSelection, DocumentAccountAssignmentSelectionDraftEntity.AccountAssignment) }\n ],\n [\n { id: createPath(DocumentDraftEntity.VatClassificationSelection, DocumentItemVatClassificationSelectionDraftEntity.VatClassification) }\n ]\n ];\n } else {\n if (_isIssued) {\n groupRows = [\n // temporarily removed\n // [{ id: DocumentDraftEntity.Labels }],\n [{ id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.Category) }],\n [{ id: createPath(DocumentDraftEntity.VatClassificationSelection, DocumentItemVatClassificationSelectionDraftEntity.VatClassification) }]\n ];\n } else {\n groupRows = [\n [{ id: DateReceivedTypePath }, { id: DocumentDraftEntity.DateAccountingTransaction }],\n // temporarily removed\n // [{ id: DocumentDraftEntity.Labels }],\n [\n { id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.Category) }\n ],\n [\n { id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxImpact) }\n ],\n [\n { id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.IsAssetAcquisition) },\n { id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxPercentage) }\n ],\n [\n { id: createPath(DocumentDraftEntity.VatClassificationSelection, DocumentItemVatClassificationSelectionDraftEntity.VatClassification) }\n ]\n ];\n }\n }\n\n if (!hasEverBeenVatRegisteredCompany(context) || docType === DocumentTypeCode.InternalDocument) {\n // filter out VatClassification field\n groupRows = groupRows.map(row => row.filter(field => field.id !== createPath(DocumentDraftEntity.VatClassificationSelection, DocumentItemVatClassificationSelectionDraftEntity.VatClassification)));\n groupRows = groupRows.filter(v => v.length > 0);\n }\n\n const sharedDateDef: TFieldDefinition = {\n type: FieldType.ComboBox,\n isRequired: true,\n width: BasicInputSizes.M,\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Components:DraftMassAccountingDialog.Today\"),\n id: TODAY\n },\n {\n label: i18next.t(\"Components:DraftMassAccountingDialog.DateTypeDateIssued\"),\n id: MultiplePostingDateAccountingTypeCode.IssuedDate\n },\n {\n label: i18next.t(\"Components:DraftMassAccountingDialog.Own\"),\n id: MultiplePostingDateAccountingTypeCode.ExplicitDate\n }\n ]\n },\n defaultValue: TODAY,\n affectedFields: [{ id: DocumentDraftEntity.DateAccountingTransaction }]\n };\n\n const prefix = \"VatClassificationSelection/VatClassification/\";\n const vatFieldsDef = getVatFieldsDef(true, payableReceivableTypeCode, prefix);\n\n for (const fieldDef of Object.values(vatFieldsDef)) {\n // todo this is also temporary fix,\n // because apparently we want the fields to be editable\n // => meaning the behavior has to be a bit different from document form and\n // all the callbacks that are used in VatRules.utils will have to be modified somehow to support this case as well\n\n fieldDef.isVisible = (args: IGetValueArgs): boolean => {\n const value = args.storage.getValue(args.bindingContext);\n\n // special condition for reverse charge select field\n if (args.bindingContext.getPath() === VAT_REVERSE_CHARGE_SELECT_PATH) {\n const val = args.storage.getValue(args.storage.data.bindingContext.navigate(`${prefix}${VatClassificationEntity.VatReverseChargeCode}`));\n\n return !!val && val !== VatReverseChargeCode.Ne;\n }\n // for other values,\n // set isVisible to true when value exists\n // WILL HAVE TO BE CHANGED once the fields are made editable\n return !!value;\n };\n // all of the fields should always be disabled\n // fieldDef.isDisabled = true;\n fieldDef.isReadOnly = true;\n }\n\n // TODO this is a temporary fix,\n // once we remove isReadOnly from the vat fields, we should only show relevant items in the dropdown..\n // problem is all the vat field callbacks expects document entity structure\n // and things like BusinessPartner present, to be able to tell whether to show VATRegistered related fields etc...\n vatFieldsDef[`${prefix}${VatClassificationEntity.VatStatementSection}`].fieldSettings.itemsForRender = (items) => {\n return items;\n };\n vatFieldsDef[`${prefix}${VatClassificationEntity.VatControlStatementSection}`].fieldSettings.itemsForRender = (items) => {\n return items;\n };\n\n const accountAssignmentFieldsDef = getAccountSelectionFieldsDef(docType, {\n skipNoneItem: true\n });\n const accAssFieldDef = accountAssignmentFieldsDef[\"AccountAssignmentSelection/AccountAssignment\"];\n\n accountAssignmentFieldsDef[\"AccountAssignmentSelection/AccountAssignment\"] = {\n ...accAssFieldDef,\n isRequired: true,\n width: BasicInputSizes.XL,\n isVisible: not(isCashBasis),\n defaultValue: null\n };\n\n const form: IFormDef = {\n id: \"DraftMassAccountingDialogSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n [DateAccountingTypePath]: {\n ...sharedDateDef,\n label: i18next.t(\"Components:DraftMassAccountingDialog.DateAccounting\"),\n isVisible: not(isCashBasis)\n },\n [DateReceivedTypePath]: {\n ...sharedDateDef,\n label: i18next.t(\"Components:DraftMassAccountingDialog.DateReceived\"),\n isVisible: ifAll(isCashBasis, isReceivedCallback)\n },\n // use DateAccountTransaction as the main date field,\n // it is used internally by some of the account assignment util functions,\n // and it's just easier to work with it\n [DocumentDraftEntity.DateAccountingTransaction]: {\n label: i18next.t(\"Components:DraftMassAccountingDialog.DateTypeDate\"),\n type: FieldType.Date,\n valueType: ValueType.Date,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs) => {\n return !isCashBasis(args) ? dateAccountingCustomValidator(value, args) : validateDecisiveDate(value, args);\n }\n }\n },\n isRequired: true,\n width: BasicInputSizes.M,\n defaultValue: () => getUtcDate(),\n isVisible: (args: IGetValueArgs): boolean => {\n return (args.storage.getValueByPath(DateAccountingTypePath) === MultiplePostingDateAccountingTypeCode.ExplicitDate)\n || args.storage.getValueByPath(DateReceivedTypePath) === MultiplePostingDateAccountingTypeCode.ExplicitDate;\n }\n },\n ...accountAssignmentFieldsDef,\n ...vatFieldsDef,\n [DocumentDraftEntity.Labels]: {\n ...getLabelsDef(\"Document\")\n },\n [createPath(DocumentDraftEntity.VatClassificationSelection, DocumentItemVatClassificationSelectionDraftEntity.VatClassification)]: {\n label: i18next.t(\"Components:DraftMassAccountingDialog.DefaultVatRule\"),\n type: FieldType.ComboBox,\n isRequired: true,\n width: BasicInputSizes.XL,\n fieldSettings: {\n entitySet: EntitySetName.VatClassifications,\n displayName: \"Name\",\n shouldDisplayAdditionalColumns: true,\n noRecordText: i18next.t(\"Common:Select.NoRecord\"),\n showTabularHeader: false,\n additionalItems: [\n {\n id: NoVatItem,\n label: i18next.t(\"Document:Vat.None\"),\n groupId: SelectGroups.Default\n }\n ],\n localDependentFields: getVatDependentFields(NavigationSource.Root),\n // merge system items that differs only in the VatStatus\n transformFetchedItems: (items: ISelectItem[]) => {\n const propertiesToCheck = [\n VatClassificationEntity.PayableReceivableTypeCode, VatClassificationEntity.CountryClassificationCode,\n VatClassificationEntity.VatStatementSectionCode, VatClassificationEntity.VatControlStatementSectionCode,\n VatClassificationEntity.Name\n ];\n const fnIsSameSystemItem = (item1: ISelectItem, item2: ISelectItem): boolean => {\n for (const prop of propertiesToCheck) {\n if (item1.additionalData[prop] !== item2.additionalData[prop]) {\n return false;\n }\n }\n\n return true;\n };\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const isSystemItem = item.additionalData.Id < 0;\n\n if (isSystemItem) {\n for (let j = i + 1; j < items.length; j++) {\n const nextItem = items[j];\n\n if (fnIsSameSystemItem(item, nextItem)) {\n item.tabularData[1] = DASH_CHARACTER;\n item.additionalData[VatClassificationEntity.PayableReceivableType] = null;\n item.additionalData[VatClassificationEntity.PayableReceivableTypeCode] = null;\n items.splice(j, 1);\n j--;\n }\n }\n }\n }\n\n // sort system items to the start\n items.sort((a, b) => {\n if (a.additionalData.Id < 0) {\n return -1;\n } else if (b.additionalData.Id < 0) {\n return 1;\n }\n\n return 0;\n });\n\n return items;\n }\n },\n isVisible: (args: IGetValueArgs): boolean => {\n const docTypeCode = args.storage.data.entity[DocumentDraftEntity.DocumentTypeCode] as DocumentTypeCode;\n\n return docTypeCode !== DocumentTypeCode.InternalDocument && hasEverBeenVatRegisteredCompany(args.storage.context);\n },\n defaultValue: null,\n filter: {\n select: (args: IGetValueArgs): string => {\n return `${VatClassificationEntity.PayableReceivableTypeCode} eq '${payableReceivableTypeCode}'`;\n }\n },\n columns: [\n {\n id: VatClassificationEntity.Name\n },\n {\n id: VatClassificationEntity.IsVatRegistered,\n formatter: (val: TValue, args?: IFormatOptions): string => {\n return i18next.t(`Components:DraftMassAccountingDialog.${val ? \"VatRegistered\" : \"NotVatRegistered\"}`);\n }\n },\n {\n id: VatClassificationEntity.CountryClassification,\n fieldSettings: {\n displayName: \"Name\"\n },\n // take everything, just to be sure...\n additionalProperties: Object.values(DocumentItemVatClassificationEntity)\n .map(prop => ({ id: `/${prop}` }))\n }\n ],\n collapsedRows: getVatGroupRowsDef({\n prefix: \"VatClassificationSelection/VatClassification/\",\n addNonTaxAccount: !_isIssued\n })\n },\n [createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.Category)]: {\n ...cbaFieldsDef[createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.Category)],\n width: BasicInputSizes.XL,\n isVisible: isCashBasis\n },\n [createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxImpact)]: {\n ...cbaFieldsDef[createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxImpact)],\n label: i18next.t(\"Components:DraftMassAccountingDialog.TaxImpact\"),\n width: BasicInputSizes.XL,\n isVisible: isCashBasis,\n affectedFields: [\n { id: createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.IsAssetAcquisition) }\n ]\n },\n [createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.IsAssetAcquisition)]: {\n ...cbaFieldsDef[createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.IsAssetAcquisition)],\n isVisible: (args: IGetValueArgs) => {\n const taxImpact = args.storage.getValueByPath(createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxImpact)) as ICbaCategoryTaxImpactEntity;\n\n return isCashBasis(args) && taxImpact?.Code === CbaCategoryTaxImpactCode.Nontax;\n }\n },\n [createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxPercentage)]: {\n ...cbaFieldsDef[createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxPercentage)],\n isVisible: (args: IGetValueArgs) => {\n const taxImpact = args.storage.getValueByPath(createPath(DocumentDraftEntity.CbaCategory, DocumentCbaCategoryDraftEntity.TaxImpact)) as ICbaCategoryTaxImpactEntity;\n\n return isCashBasis(args) && taxImpact?.Code === CbaCategoryTaxImpactCode.Partial;\n }\n }\n },\n groups: [\n {\n id: \"Common\",\n rows: groupRows\n }\n ]\n };\n\n\n return {\n form\n };\n };\n\n getDefinition.translationFiles = [\"Components\", \"Common\", \"AccountAssignment\", \"Document\"];\n\n return getDefinition;\n};","export const DateAccountingTypePath = \"##DateAccountingType##\";\nexport const DateReceivedTypePath = \"##DateReceivedType##\";\nexport const DraftIdsPath = \"##DraftIds##\";\n\nexport const NoVatItem = \"NoVatItem\";","import { IDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport { REST_API_URL } from \"../../../../constants\";\nimport { DocumentLinkTypeCode } from \"@odata/GeneratedEnums\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { getDocumentPairedTable } from \"../../Document.utils\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\n\nexport const PROCESS_ACCRUAL_URL = `${REST_API_URL}/AccruedProcessing/Process`;\nexport const ACCRUALS_FORM_TAB = \"Accruals\";\nexport const FUTURE_REVENUES_FORM_TAB = \"FutureRevenues\";\nexport const FUTURE_EXPENSES_FORM_TAB = \"FutureExpenses\";\nexport const ACCRUED_DOC_LINK_TYPES: DocumentLinkTypeCode[] = [\n DocumentLinkTypeCode.AccruedExpense, DocumentLinkTypeCode.AccruedRevenue,\n DocumentLinkTypeCode.EstimatedAccruedRevenue, DocumentLinkTypeCode.EstimatedAccruedExpense\n];\nexport const ACCRUED_DOC_LINK_SETTLEMENT_TYPES: DocumentLinkTypeCode[] = [\n DocumentLinkTypeCode.AccruedExpenseSettlement, DocumentLinkTypeCode.AccruedRevenueSettlement,\n DocumentLinkTypeCode.EstimatedAccruedRevenueSettlement, DocumentLinkTypeCode.EstimatedAccruedExpenseSettlement\n];\nexport const ACCRUED_DOC_LINK_ALL_TYPES: DocumentLinkTypeCode[] = [\n ...ACCRUED_DOC_LINK_SETTLEMENT_TYPES, ...ACCRUED_DOC_LINK_TYPES\n];\nexport const ACCRUAL_DOC_LINK_FILTER = `TypeCode in (${[DocumentLinkTypeCode.EstimatedAccruedExpense, DocumentLinkTypeCode.EstimatedAccruedExpenseSettlement,\n DocumentLinkTypeCode.EstimatedAccruedRevenue, DocumentLinkTypeCode.EstimatedAccruedRevenueSettlement].map(linkType => `'${linkType}'`).join(\", \")})`;\nexport const FUTURE_REVENUES_DOC_LINK_FILTER = `TypeCode in (${[DocumentLinkTypeCode.AccruedRevenue, DocumentLinkTypeCode.AccruedRevenueSettlement].map(linkType => `'${linkType}'`).join(\", \")})`;\nexport const FUTURE_EXPENSES_DOC_LINK_FILTER = `TypeCode in (${[DocumentLinkTypeCode.AccruedExpense, DocumentLinkTypeCode.AccruedExpenseSettlement].map(linkType => `'${linkType}'`).join(\", \")})`;\nexport const CONNECT_ACCRUALS_ACTION = \"connectAccruals\";\nexport const CONNECT_REVENUES_ACTION = \"connectRevenues\";\nexport const CONNECT_EXPENSES_ACTION = \"connectExpenses\";\n\ninterface IAddAccrualsSettings {\n addAction?: boolean;\n isExpense?: boolean;\n isRevenue?: boolean;\n}\n\nexport enum AccrualDialogType {\n Accruals = \"Accruals\",\n Revenues = \"Revenues\",\n Expenses = \"Expenses\"\n}\n\nexport const getAccrualDialogTypeFromHeaderAction = (actionId: string) => {\n switch (actionId) {\n case CONNECT_ACCRUALS_ACTION:\n return AccrualDialogType.Accruals;\n case CONNECT_REVENUES_ACTION:\n return AccrualDialogType.Revenues;\n case CONNECT_EXPENSES_ACTION:\n return AccrualDialogType.Expenses;\n }\n\n return null;\n};\n\nexport const addAccrualsDef = (definition: IDefinition, settings: IAddAccrualsSettings = {}): void => {\n if (settings.addAction) {\n definition.form.customHeaderActions = definition.form.customHeaderActions ?? [];\n\n\n definition.form.customHeaderActions.push({\n id: CONNECT_ACCRUALS_ACTION,\n label: i18next.t(\"Document:Form.OpenAccrualsLabel\"),\n iconName: \"PairingAccruedItems\",\n isVisible: (args) => {\n return !(args.storage as FormStorage).isReadOnly && !args.storage.data.bindingContext.isNew();\n }\n });\n\n if (settings.isRevenue) {\n definition.form.customHeaderActions.push({\n id: CONNECT_REVENUES_ACTION,\n label: i18next.t(\"Document:Form.OpenRevenuesLabel\"),\n iconName: \"PairingExpenses\",\n isVisible: (args) => {\n return !(args.storage as FormStorage).isReadOnly && !args.storage.data.bindingContext.isNew();\n }\n });\n }\n\n if (settings.isExpense) {\n definition.form.customHeaderActions.push({\n id: CONNECT_EXPENSES_ACTION,\n label: i18next.t(\"Document:Form.OpenExpensesLabel\"),\n iconName: \"PairingExpenses\",\n isVisible: (args) => {\n return !(args.storage as FormStorage).isReadOnly && !args.storage.data.bindingContext.isNew();\n }\n });\n }\n }\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n\n tabsGroup.tabs.push(getAccrualsTab());\n\n if (settings.isRevenue) {\n tabsGroup.tabs.push(getFutureRevenuesTab());\n }\n\n if (settings.isExpense) {\n tabsGroup.tabs.push(getFutureExpensesTab());\n }\n};\n\nconst getAccrualsTab = (): IFormGroupDef => {\n return {\n id: ACCRUALS_FORM_TAB,\n title: i18next.t(\"Document:FormTab.Accruals\"),\n table: getDocumentPairedTable({\n selectQuery: ACCRUAL_DOC_LINK_FILTER,\n addAmountColumn: true,\n isCbaCompany: false\n })\n };\n};\n\nconst getFutureRevenuesTab = (): IFormGroupDef => {\n return {\n id: FUTURE_REVENUES_FORM_TAB,\n title: i18next.t(\"Document:FormTab.FutureRevenues\"),\n table: getDocumentPairedTable({\n selectQuery: FUTURE_REVENUES_DOC_LINK_FILTER,\n addAmountColumn: true,\n isCbaCompany: false\n })\n };\n};\n\nconst getFutureExpensesTab = (): IFormGroupDef => {\n return {\n id: FUTURE_EXPENSES_FORM_TAB,\n title: i18next.t(\"Document:FormTab.FutureExpenses\"),\n table: getDocumentPairedTable({\n selectQuery: FUTURE_EXPENSES_DOC_LINK_FILTER,\n addAmountColumn: true,\n isCbaCompany: false\n })\n };\n};\n","import { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { DocumentStatusLocalPath, StatusEntities } from \"@pages/reports/CommonDefs\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../../enums\";\nimport { ISplitPageTableDef } from \"../../../../views/table/TableView.utils\";\nimport { getDocumentStatusColumnDefinition } from \"../../DocumentCommonDefs\";\nimport { DocumentStatusFilterNames, getDocumentStatusFilterDefinition } from \"../../DocumentDef\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext, isExpense: boolean): IDefinition => {\n const entitySet = EntitySetName.InternalDocuments;\n\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"NumberOurs\",\n ...DocumentStatusFilterNames,\n \"DateAccountingTransaction\",\n \"Amount\",\n ],\n filterDefinition: {\n NumberOurs: {},\n ...getDocumentStatusFilterDefinition(StatusEntities),\n DateAccountingTransaction: {},\n Amount: {}\n }\n }],\n id: \"accrualsPairingSpecialTable\",\n columns: [\n \"NumberOurs\",\n DocumentStatusLocalPath,\n \"DateAccountingTransaction\",\n \"Amount\",\n \"Explanation\"\n ],\n columnDefinition: {\n NumberOurs: {\n additionalProperties: [\n { id: \"/DocumentLinks/TargetDocument\" },\n { id: \"/DocumentLinks/TypeCode\" }\n ]\n },\n ...getDocumentStatusColumnDefinition(),\n DateAccountingTransaction: {},\n Amount: {},\n Explanation: {},\n DateCreated: {}\n },\n // set dynamically in PairingAccrualsTableView\n title: null,\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n return {\n entitySet,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Accruals\", \"Documents\", \"Common\"];\nsetDefForTesting(\"AccrualsPairing\", getDefinitions);","import { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IconButton } from \"@components/button\";\nimport { getIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { getRow, TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IActionRendererArgs, IRowAction, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { IDocumentEntity, IDocumentLinkEntity, IInvoiceReceivedEntity } from \"@odata/GeneratedEntityTypes\";\nimport { AccruedProcessingTypeCode, DocumentLinkTypeCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { PropertyTranslationCache } from \"@odata/PropertyTranslationCache\";\nimport {\n ACCRUAL_ACCOUNT_ACTIVE,\n ACCRUAL_ACCOUNT_PASSIVE,\n CLOSING_ACCOUNTS_PREFIX,\n FUTURE_EXPENSES_ACCOUNT,\n FUTURE_REVENUES_ACCOUNT\n} from \"@utils/accounting\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { ChainedIcon, IProps as IIconProps, UnchainedIcon } from \"../../../../components/icon\";\nimport ReadOnlyList from \"../../../../components/readOnlyList/ReadOnlyList\";\nimport { SmartTable } from \"../../../../components/smart/smartTable\";\nimport { ActionState, BackendErrorCode, IconSize, RowAction, Status } from \"../../../../enums\";\nimport { ColoredText, ToolbarStaticText } from \"../../../../global.style\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { ROUTE_BUSINESS_PARTNER } from \"../../../../routes\";\nimport { formatCurrency } from \"../../../../types/Currency\";\nimport DateType from \"../../../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../../../utils/customFetch\";\nimport memoizeOne from \"../../../../utils/memoizeOne\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../../../views/table/TableToolbar.utils\";\nimport TableView, { IHandleCustomActionArgs, ITableViewBaseProps } from \"../../../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../../../views/table/TableView.render.utils\";\nimport { SecondaryTableViewTitle, TableWrapper } from \"../../../../views/table/TableView.styles\";\nimport { createCustomTableToolbarItem } from \"../../../../views/table/TableView.utils\";\nimport View from \"../../../../views/View\";\nimport { isReceived } from \"../../Document.utils\";\nimport {\n AccrualDialogType,\n ACCRUALS_FORM_TAB,\n ACCRUED_DOC_LINK_ALL_TYPES,\n ACCRUED_DOC_LINK_TYPES,\n FUTURE_EXPENSES_FORM_TAB,\n FUTURE_REVENUES_FORM_TAB,\n PROCESS_ACCRUAL_URL\n} from \"./Accruals.utils\";\n\nconst PAIR_ACCRUALS_ACTION_ID = \"PairAccrualsAction\";\n\nexport interface IProps extends ITableViewBaseProps, WithBusyIndicator {\n dialogType?: AccrualDialogType;\n}\n\nclass PairingAccrualsTableView extends TableView {\n _selectedItems: BindingContext[];\n _itemsAmount = 0;\n\n constructor(props: IProps) {\n super(props);\n\n this.handleCustomAction = this.handleCustomAction.bind(this);\n\n const docId = props.rootStorage.data.bindingContext.getKey();\n const account = this.isEstimate ? this.isExpense ? ACCRUAL_ACCOUNT_PASSIVE : ACCRUAL_ACCOUNT_ACTIVE : this.isExpense ? FUTURE_EXPENSES_ACCOUNT : FUTURE_REVENUES_ACCOUNT;\n\n const getFilterPath = (prefix = \"\", isExpenseOverride = this.isExpense) => {\n return `${prefix}AccountAssignmentSelection/AccountAssignment/${isExpenseOverride ? \"Credit\" : \"Debit\"}Account/Number`;\n };\n\n const getStartsWithFilter = (prefix = \"\", isExpenseOverride = this.isExpense) => {\n return `startswith(${getFilterPath(prefix, isExpenseOverride)},'${account}')`;\n };\n\n const getNotStartsWithInitialAccountFilter = (prefix = \"\", isExpenseOverride = !this.isExpense) => {\n return `not(startswith(${getFilterPath(prefix, isExpenseOverride)},'${CLOSING_ACCOUNTS_PREFIX}'))`;\n };\n\n let filter = `DocumentTypeCode eq '${DocumentTypeCode.InternalDocument}'`;\n filter += ` AND DocumentLinks/all(link: not(link/TypeCode in (${ACCRUED_DOC_LINK_ALL_TYPES.map(type => `'${type}'`).join(\",\")})) OR (link/TargetDocument/Id eq ${docId}) AND link/TypeCode in (${ACCRUED_DOC_LINK_TYPES.map(type => `'${type}'`).join(\",\")}))`;\n filter += ` AND ((${getStartsWithFilter()} AND ${getNotStartsWithInitialAccountFilter(\"\", !this.isExpense)}) OR Items/any(item: (${getStartsWithFilter(\"item/\")} AND ${getNotStartsWithInitialAccountFilter(\"item/\", !this.isExpense)})))`;\n\n this.setTableAction(PAIR_ACCRUALS_ACTION_ID, true);\n props.storage.store({ customSecondaryFilter: filter });\n props.storage.data.definition.title = i18next.t(`Accruals:Dialog.${this.isEstimate ? \"SecondaryTitleAccruals\" : this.isExpense ? \"SecondaryTitleExpenses\" : \"SecondaryTitleRevenues\"}`);\n }\n\n\n shouldComponentUpdate(nextProps: IProps): boolean {\n return this.props.busy !== nextProps.busy;\n }\n\n get isExpense(): boolean {\n return isReceived(this.props.rootStorage.data.entity.DocumentTypeCode as DocumentTypeCode);\n }\n\n get isEstimate(): boolean {\n return this.props.dialogType === AccrualDialogType.Accruals;\n }\n\n getHeaderData = (): IReadOnlyListItem[] => {\n const bc = this.props.rootStorage.data.bindingContext;\n const entity = this.props.rootStorage.data.entity as IInvoiceReceivedEntity;\n const numberOursBc = bc.navigate(\"NumberOurs\");\n const datePath = this.isExpense ? \"DateReceived\" : \"DateIssued\";\n\n return [\n {\n // NumberOurs is used as summary item with custom label => label in fieldInfo isn't the one we want\n label: PropertyTranslationCache.getCachedTranslation(numberOursBc.getProperty()),\n value: entity.NumberOurs\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"BusinessPartner/BusinessPartner\")).label,\n value: getIntentLink(entity.BusinessPartner.Name, {\n route: `${ROUTE_BUSINESS_PARTNER}/${entity.BusinessPartner.BusinessPartner.Id}`,\n context: this.props.rootStorage.context,\n storage: this.props.rootStorage\n })\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(datePath)).label,\n value: DateType.format(entity[datePath])\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"Amount\")).label,\n value: formatCurrency(entity.Amount, entity.Currency?.Code)\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"AmountNet\")).label,\n value: formatCurrency(entity.AmountNet, entity.Currency?.Code)\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"TransactionAmountDue\")).label,\n value: formatCurrency(entity.TransactionAmountDue, entity.TransactionCurrency?.Code)\n }\n ];\n };\n\n handleTableLoad(): void {\n this._selectedItems = [];\n\n const docId = this.props.rootStorage.data.bindingContext.getKey();\n const tableRows = this.props.storage.tableAPI.getRowsArray();\n\n\n for (const row of tableRows) {\n const docLinks = row.customData.entity.DocumentLinks as IDocumentLinkEntity[];\n const rowHasAccrualLink = docLinks.find(docLink => ACCRUED_DOC_LINK_TYPES.includes(docLink.TypeCode as DocumentLinkTypeCode) && docLink.TargetDocument.Id === docId);\n\n if (rowHasAccrualLink) {\n this._selectedItems.push(row.id as BindingContext);\n }\n }\n\n super.handleTableLoad();\n }\n\n renderHeader = (): React.ReactElement => {\n return (\n <>\n \n {this.props.storage.data.definition.title}\n \n );\n };\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n this.setTableAction(action, true, false);\n if (update) {\n this.forceUpdate();\n }\n }\n\n handleToolbarConfirm = async () => {\n const affectedRows = await this.props.storage.tableAPI.getAffectedRows();\n const affectedRowsBc = affectedRows.map(affectedRow => affectedRow.bc);\n const isEstimate = this.isEstimate;\n const isExpense = this.isExpense;\n const invoiceId = this.props.rootStorage.data.bindingContext.getKey();\n const anyRowAdded = !!affectedRowsBc.find(bc => !this._selectedItems.find(origBc => bc.toString() === origBc.toString()));\n const anyRowRemoved = !!this._selectedItems.find(origBc => !affectedRowsBc.find(bc => bc.toString() === origBc.toString()));\n let processingCode: string;\n\n this.props.setBusy(true);\n\n if (isExpense) {\n processingCode = isEstimate ? AccruedProcessingTypeCode.EstimatedAccruedExpense : AccruedProcessingTypeCode.AccruedExpense;\n } else {\n processingCode = isEstimate ? AccruedProcessingTypeCode.EstimatedAccruedRevenue : AccruedProcessingTypeCode.AccruedRevenue;\n }\n\n const res = await customFetch(`${PROCESS_ACCRUAL_URL}/${invoiceId}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n AccruedProcessingTypeCode: processingCode,\n OriginalAccruedDocumentIds: affectedRowsBc.map(bc => bc.getKey())\n })\n });\n\n if (res.status < 300) {\n this._selectedItems = affectedRowsBc;\n\n const isRemoval = anyRowRemoved && !anyRowAdded;\n const typeKey = isEstimate ? \"Estimate\" : isExpense ? \"Expense\" : \"Revenue\";\n\n this.setTableAction(null);\n this.props.rootStorage.updateTabsVisibility([ACCRUALS_FORM_TAB, FUTURE_REVENUES_FORM_TAB, FUTURE_EXPENSES_FORM_TAB]);\n this._itemsAmount = 0;\n\n this.props.storage.setTableAlert({\n status: Status.Success,\n title: this.props.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.props.storage.t(`Accruals:Dialog.${isRemoval ? `RemoveSuccess${typeKey}` : `Success${typeKey}`}`)\n });\n } else {\n const error: ODataError = await parseResponse(res);\n\n this.props.storage.setTableAlert({\n status: Status.Error,\n title: this.props.storage.t(\"Common:Errors.ErrorHappened\"),\n subTitle: error._code === BackendErrorCode.ValidationError ? error._validationMessages[0].message : error._message\n });\n }\n\n this.props.setBusy(false);\n };\n\n handleToolbarCancel(): void {\n this._itemsAmount = 0;\n super.handleToolbarCancel();\n }\n\n getConfirmText(tableAction: TableButtonsAction | string): string | React.ReactElement {\n const activeRowActionCount = this.props.storage.tableAPI?.getState().activeRows.size;\n\n if (tableAction === PAIR_ACCRUALS_ACTION_ID) {\n return getConfirmationActionText(this.props.storage.t(`Accruals:Dialog.PairActionText`), activeRowActionCount);\n }\n\n return super.getConfirmText(tableAction);\n }\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [\n TableButtonsAction.Settings\n ];\n }\n\n get customToolbarItems(): IToolbarItem[] {\n const action = this.getTableAction();\n\n return [createCustomTableToolbarItem({\n tableAction: action,\n id: PAIR_ACCRUALS_ACTION_ID,\n iconName: this.isEstimate ? \"PairingAccruedItems\" : \"PairingExpenses\",\n label: this.props.storage.t(`Accruals:Dialog.PairActionText`) as string\n })];\n }\n\n getStaticToolbarItems = (): TToolbarItem[] => {\n if (this.getTableAction() !== PAIR_ACCRUALS_ACTION_ID) {\n return [];\n }\n\n const formattedAmount = formatCurrency(this._itemsAmount, getCompanyCurrency(this.props.storage.context));\n return [(\n \n {this.props.storage.t(\"Accruals:Dialog.SumOfSelected\")}: {formattedAmount}\n \n )];\n };\n\n handleActiveRowActionCountChange = async (): Promise => {\n const rows = this.props.storage.tableAPI.getState().rows;\n const selectedRows = await this.props.storage.tableAPI.getAffectedRows();\n this._itemsAmount = selectedRows.reduce((sum: number, item) => {\n const row = getRow(rows, item.bc);\n const values = row.customData.entity as IDocumentEntity;\n\n return sum + values.Amount;\n }, 0);\n\n // refresh would reload secondary query filters, we just need to rerender confirmation buttons\n this.forceUpdate();\n };\n\n getIcon = (isActive: boolean) => isActive ? ChainedIcon : UnchainedIcon;\n\n getCustomRowAction = memoizeOne((): TCustomRowAction => {\n return {\n actionType: RowAction.Custom,\n render: (args: IActionRendererArgs) => {\n const isActive = args.actionState === ActionState.Active;\n const Icon = this.getIcon(isActive);\n return (\n \n \n \n );\n }\n };\n });\n\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n if (rowAction) {\n return null;\n }\n\n return (this._selectedItems?.find(item => item.toString() === id.toString())) && this.getIcon(true);\n };\n\n render() {\n if (this.props.busy) {\n return this.props.busyIndicator;\n }\n return (\n \n {this.renderHeader()}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.renderToolbar()}\n \n \n \n {this.renderCustomizationDialog()}\n \n );\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PairingAccrualsTableView);","import React, { useCallback, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport DialogPage from \"../../../DialogPage\";\nimport { PageViewMode } from \"../../../../enums\";\nimport Dialog from \"../../../../components/dialog/Dialog\";\nimport PairingAccrualsTableView from \"./PairingAccrualsTableView\";\nimport { getDefinitions } from \"./AccrualsDef\";\nimport {\n AccrualDialogType,\n CONNECT_ACCRUALS_ACTION,\n CONNECT_EXPENSES_ACTION,\n CONNECT_REVENUES_ACTION,\n getAccrualDialogTypeFromHeaderAction\n} from \"./Accruals.utils\";\n\nexport interface WithAccruals {\n onCustomHeaderAction?: (actionId: string, storage: FormStorage) => Promise;\n}\n\ninterface WithAccrualsProps {\n onCustomHeaderAction?: (actionId: string, storage: FormStorage) => Promise;\n}\n\ntype TWithAccruals

    = Omit & WithAccrualsProps;\n\n\nexport interface WithAccrualsSettings {\n isExpense?: boolean;\n}\n\nexport const withAccruals = (settings: WithAccrualsSettings = {}) => (\n

    (Component: React.ComponentType

    ): React.ComponentType> => {\n return React.forwardRef((props: TWithAccruals

    , ref) => {\n const { t, ready: tReady } = useTranslation(getDefinitions.translationFiles);\n const [dialogType, setDialogType] = useState(null);\n const formStorage = useRef(null);\n\n const handleCustomHeaderAction = useCallback(async (actionId: string, storage: FormStorage) => {\n formStorage.current = storage;\n\n if ([CONNECT_ACCRUALS_ACTION, CONNECT_REVENUES_ACTION, CONNECT_EXPENSES_ACTION].includes(actionId)) {\n setDialogType(getAccrualDialogTypeFromHeaderAction(actionId));\n return null;\n } else {\n return props.onCustomHeaderAction?.(actionId, storage);\n }\n }, []);\n\n const handleClose = useCallback(() => {\n setDialogType(null);\n }, []);\n\n return (\n <>\n \n {dialogType &&\n

    \n \n \n }\n \n );\n }) as any;\n }\n);","import Clickable from \"@components/clickable\";\nimport { lighten } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nimport { T_PLAIN_small } from \"../../../../global.style\";\n\nexport const StyledItemsSummary = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;\n\nexport const StyledRoundText = styled(Clickable)`\n ${T_PLAIN_small};\n text-align: right;\n font-style: italic;\n color: ${props => props.theme.C_ACT_main};\n padding: 0 12px;\n cursor: pointer;\n line-height: 30px;\n`;\n\nexport const UnderTableText = styled.div`\n ${T_PLAIN_small};\n text-align: right;\n white-space: pre-wrap;\n padding: 12px 0;\n line-height: 30px;\n color: ${props => lighten(0.15, props.theme.C_TEXT_primary)};\n`;","import { HOTSPOT_ID_ATTR } from \"@components/hotspots/Hotspots.utils\";\nimport { addNewLineItem } from \"@components/smart/smartFastEntryList\";\nimport { IColumn, TCellValue } from \"@components/table\";\nimport { IDocumentEntity, IRegularDocumentItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CurrencyCode, DocumentTypeCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport {\n isDocumentReverseCharged,\n isInAutomatedVatInclusionMode,\n ITEMS_VAT_DEDUCTION_PATH,\n SAVED_VATS_PATH\n} from \"@pages/admin/vatRules/VatRules.utils\";\nimport { getCompanyCurrencyCode } from \"@pages/companies/Company.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isDefined, roundToDecimalPlaces, sortCompareBooleanFn } from \"@utils/general\";\nimport Big from \"big.js\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport SimpleTable, { ISimpleTableRow } from \"../../../../components/simpleTable/SimpleTable\";\nimport { DASH_CHARACTER } from \"../../../../constants\";\nimport { AppContext, IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { RowType, TextAlign } from \"../../../../enums\";\nimport { ColoredText } from \"../../../../global.style\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport TestIds from \"../../../../testIds\";\nimport CurrencyType, { formatCurrency } from \"../../../../types/Currency\";\nimport NumberType from \"../../../../types/Number\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport {\n calcLineItemValues,\n isIssued,\n setDefaultLabelsFromEntityToItems,\n shouldDocumentBehaveLikeVatRegisteredCompany\n} from \"../../Document.utils\";\nimport { IDocumentExtendedEntity } from \"../../DocumentInterfaces\";\nimport { IProformaEntity } from \"../../proformaInvoices/ProformaInvoice.utils\";\nimport { RELATED_PROFORMA_ADDITIONAL_RESULT_IDX } from \"../proforma/Proforma.utils\";\nimport { StyledItemsSummary, StyledRoundText, UnderTableText } from \"./ItemsSummary.styles\";\n\nexport const ItemsSummaryPath = BindingContext.localContext(\"ItemsSummary\");\n\ninterface IProps extends WithTranslation {\n storage: FormStorage;\n}\n\nfunction proformaFormatter(value: string): TCellValue {\n return {\n value: (\n {value}\n ),\n tooltip: value\n };\n}\n\nclass ItemsSummary extends React.Component {\n static contextType = AppContext;\n\n constructor(props: IProps) {\n super(props);\n\n // register ItemsSummary on storage, so that it can be refreshed as any other field\n props.storage.addRef(this, props.storage.data.bindingContext.navigate(ItemsSummaryPath));\n }\n\n componentWillUnmount() {\n this.props.storage.removeRef(this, this.props.storage.data.bindingContext.navigate(ItemsSummaryPath));\n }\n\n createRoundingItem = () => {\n // works only on CZK documents\n const { storage } = this.props;\n const document = storage.data.entity as IDocumentExtendedEntity;\n const minorUnit = document.Currency?.MinorUnit ?? 2;\n\n const total = roundToDecimalPlaces(minorUnit, document.Items.reduce((totalAmount, item) => totalAmount + item.TransactionAmount, 0));\n const roundItemValue = roundToDecimalPlaces(minorUnit, Math.round(total) - total);\n\n const newValues = calcLineItemValues({\n TransactionAmount: roundItemValue,\n Quantity: 1,\n Vat: 0\n }, \"TransactionAmount\", \"TransactionAmountNet\", 2);\n\n const newItem = addNewLineItem(this.props.storage, \"Items\", \"Items\", null, {\n ...newValues,\n Vat: null,\n Description: \"Zaokrouhlení\",\n [SAVED_VATS_PATH]: SelectionCode.Default,\n [ITEMS_VAT_DEDUCTION_PATH]: SelectionCode.Default\n });\n\n if (newItem.AccountAssignmentSelection) {\n newItem.AccountAssignmentSelection.Selection = { Code: SelectionCode.Default };\n }\n\n newItem.LabelSelection = {\n Selection: {\n Code: SelectionCode.Default\n },\n SelectionCode: SelectionCode.Default\n };\n storage.setDirty(storage.data.bindingContext.navigate(\"Items\").addKey(newItem)); // so it is not removed on save\n setDefaultLabelsFromEntityToItems(storage);\n storage.refresh();\n };\n\n render() {\n const { storage } = this.props;\n const document = storage.data.entity as IDocumentEntity;\n const items = storage.data.entity.Items as IRegularDocumentItemEntity[];\n const itemsBc = storage.data.bindingContext.navigate(\"Items\");\n const currency = document.Currency?.Code ?? document.CurrencyCode ?? getCompanyCurrencyCode(storage.context);\n const transactionCurrency = document.TransactionCurrency?.Code ?? document.TransactionCurrencyCode;\n const exchangeRate = transactionCurrency === getCompanyCurrency(storage.context) ? 1 : document.ExchangeRatePerUnit;\n const isExchangeRateValid = NumberType.isValid(exchangeRate);\n const rates: Record> = {};\n const isIssuedType = isIssued(this.props.storage.data.bindingContext.getEntityType().getName() as DocumentTypeCode);\n const vatReverseChargeSet = isIssuedType && isDocumentReverseCharged({\n storage: this.props.storage,\n bindingContext: this.props.storage.data.bindingContext\n });\n const automatedVatInclusionModeSet = isInAutomatedVatInclusionMode({\n storage: this.props.storage,\n bindingContext: this.props.storage.data.bindingContext\n });\n const isVatRegistered = shouldDocumentBehaveLikeVatRegisteredCompany({\n storage: this.props.storage,\n context: this.props.storage.context,\n bindingContext: this.props.storage.data.bindingContext,\n data: document\n });\n\n const minorUnit = document.Currency?.MinorUnit ?? 2;\n\n const columns: IColumn[] = [\n isVatRegistered ? {\n id: \"Vat\",\n label: this.props.t(\"Document:ItemsSummary.Vat\"),\n textAlign: TextAlign.Right\n } : null,\n isVatRegistered ? {\n id: \"AmountNet\",\n label: this.props.t(\"Document:ItemsSummary.Base\"),\n textAlign: TextAlign.Right\n } : null,\n isVatRegistered ? {\n id: \"AmountVat\",\n label: this.props.t(\"Document:ItemsSummary.VatSum\"),\n textAlign: TextAlign.Right\n } : null,\n { id: \"Amount\", label: this.props.t(\"Document:ItemsSummary.Sum\"), textAlign: TextAlign.Right }\n ].filter(v => v);\n\n let isEmpty = true;\n\n for (const item of (items ?? [])) {\n const itemBc = itemsBc.addKey(item);\n\n if (storage.getError(itemBc.navigate(\"TransactionAmountNet\")) || storage.getError(itemBc.navigate(\"TransactionAmountVat\")) || storage.getError(itemBc.navigate(\"TransactionAmount\"))) {\n continue;\n }\n\n const rate = item.Vat?.Rate ?? \"0\";\n\n if (!rates[rate]) {\n rates[rate] = {\n TransactionAmountNet: 0, TransactionAmountVat: 0, TransactionAmount: 0\n };\n }\n\n // use Transaction values and then multiply them with exchangeRate\n // we cannot use Amount values directly, ItemsSummary is used even for draft and those values doesn't have to be present\n rates[rate].TransactionAmountNet += isNaN(item.TransactionAmountNet) ? 0 : item.TransactionAmountNet;\n rates[rate].TransactionAmountVat += isNaN(item.TransactionAmountVat) ? 0 : item.TransactionAmountVat;\n rates[rate].TransactionAmount += isNaN(item.TransactionAmount) ? 0 : item.TransactionAmount;\n\n if (isDefined(item.TransactionAmountNet) || isDefined(item.TransactionAmountVat) || isDefined(item.TransactionAmount)) {\n isEmpty = false;\n }\n }\n\n if (!isExchangeRateValid) {\n isEmpty = true;\n }\n\n let rows: ISimpleTableRow[];\n\n if (isEmpty && Object.keys(rates).length) {\n rows = [{\n id: \"empty\",\n values: {\n AmountNet: DASH_CHARACTER,\n AmountVat: DASH_CHARACTER,\n Amount: DASH_CHARACTER,\n Vat: DASH_CHARACTER\n }\n }];\n } else {\n rows = Object.keys(rates).map(rate => parseInt(rate)).sort().reverse().map((rate) => {\n const amountNet = roundToDecimalPlaces(minorUnit, rates[rate].TransactionAmountNet * exchangeRate);\n const amountVat = roundToDecimalPlaces(minorUnit, rates[rate].TransactionAmountVat * exchangeRate);\n const amount = new Big(amountNet).add(amountVat).toNumber();\n return {\n id: rate,\n values: {\n AmountNet: formatCurrency(amountNet, currency),\n AmountVat: isVatRegistered ? formatCurrency(amountVat, currency) : null,\n Amount: formatCurrency(amount, currency),\n Vat: `${rate} %`\n }\n };\n });\n }\n\n const ddoppSum = {\n TransactionAmountNet: 0,\n TransactionAmount: 0,\n TransactionAmountVat: 0\n };\n let proformaSumAmount = 0;\n const proformaDocuments = ((storage.data.additionalResults[RELATED_PROFORMA_ADDITIONAL_RESULT_IDX] ?? []) as IProformaEntity[])\n .sort((a, b) => sortCompareBooleanFn(a.IsTaxDocument, b.IsTaxDocument)) ?? [];\n\n if (proformaDocuments.length > 0 && rows.length > 0) {\n rows[rows.length - 1].isUnderlined = true;\n }\n\n for (const doc of proformaDocuments) {\n if (doc.IsTaxDocument) {\n ddoppSum.TransactionAmount += doc.TransactionAmount;\n ddoppSum.TransactionAmountVat += doc.TransactionAmountVat;\n ddoppSum.TransactionAmountNet += doc.TransactionAmountNet;\n } else {\n proformaSumAmount += roundToDecimalPlaces(minorUnit, doc.TransactionAmountNet * exchangeRate) + roundToDecimalPlaces(minorUnit, doc.TransactionAmountVat * exchangeRate);\n }\n }\n if (ddoppSum.TransactionAmount) {\n const amountNetDdopp = roundToDecimalPlaces(minorUnit, ddoppSum.TransactionAmountNet * exchangeRate);\n const amountVatDdopp = roundToDecimalPlaces(minorUnit, ddoppSum.TransactionAmountVat * exchangeRate);\n const amountDdopp = new Big(amountNetDdopp).add(amountVatDdopp).toNumber();\n rows.push({\n id: `proforma_ddopp`,\n values: {\n AmountNet: proformaFormatter(formatCurrency(-1 * amountNetDdopp, currency)),\n AmountVat: proformaFormatter(formatCurrency(-1 * amountVatDdopp, currency)),\n Amount: proformaFormatter(formatCurrency(-1 * amountDdopp, currency)),\n Vat: \"\"\n }\n });\n }\n if (proformaSumAmount > 0) {\n const negProformaSumAmount = new Big(proformaSumAmount).neg().toNumber();\n rows.push({\n id: `proforma`,\n values: {\n AmountNet: \"\",\n AmountVat: \"\",\n Amount: proformaFormatter(formatCurrency(negProformaSumAmount, currency)),\n Vat: \"\"\n }\n });\n } else if (!isVatRegistered) {\n // for non vatRegistered company without proformaSum,\n // only show the summary row => remove everything else\n rows = [];\n }\n\n // if (isEmpty && !rows.length) {\n // return null;\n // }\n\n const Summary = {\n id: \"sum\",\n type: RowType.Aggregation,\n values: {\n AmountVat: DASH_CHARACTER,\n Amount: DASH_CHARACTER\n }\n };\n\n let sumValue = 0;\n let totalAmount = 0;\n\n if (!isEmpty) {\n const totalAmountVat = new Big(Object.values(rates).reduce((sum, current) => {\n return new Big(sum).add(roundToDecimalPlaces(minorUnit, current[\"TransactionAmountVat\"] * exchangeRate)).toNumber();\n }, 0)).toNumber();\n const totalAmountVatWithDDOPP = new Big(totalAmountVat).minus(roundToDecimalPlaces(minorUnit, ddoppSum[\"TransactionAmountVat\"] * exchangeRate)).toNumber();\n\n const totalAmountNet = new Big(Object.values(rates).reduce((sum, current) => {\n return new Big(sum).add(roundToDecimalPlaces(minorUnit, current[\"TransactionAmountNet\"] * exchangeRate)).toNumber();\n }, 0)).toNumber();\n\n const totalAmountNetWithDDOPP = new Big(totalAmountNet).minus(roundToDecimalPlaces(minorUnit, ddoppSum[\"TransactionAmountNet\"] * exchangeRate)).toNumber();\n\n totalAmount = new Big(totalAmountVat).add(totalAmountNet).toNumber();\n sumValue = new Big(totalAmountVatWithDDOPP).add(totalAmountNetWithDDOPP).minus(proformaSumAmount).toNumber();\n\n Summary.values[\"AmountVat\"] = formatCurrency(totalAmountVatWithDDOPP, currency);\n Summary.values[\"Amount\"] = formatCurrency(sumValue, currency);\n }\n\n rows.push(Summary);\n\n\n let underTableText = \"\";\n\n if (vatReverseChargeSet) {\n underTableText += this.props.t(\"Document:ItemsSummary.VatReverseChargeInfo\");\n } else if (automatedVatInclusionModeSet) {\n underTableText += this.props.t(\"Document:ItemsSummary.AutomatedVatInclusionInfo\");\n }\n\n if (isExchangeRateValid && transactionCurrency !== getCompanyCurrency(storage.context)) {\n if (underTableText) {\n underTableText += \"\\n\";\n }\n\n const currencyUsedByCompany = (this.context as IAppContext).getData().currenciesUsedByCompany?.find(c => c.FromCurrencyCode === transactionCurrency);\n const currencyAmount = currencyUsedByCompany?.Amount ?? 1;\n const transactionCurrencyFormatted = formatCurrency(currencyAmount, transactionCurrency);\n const currencyFormatted = CurrencyType.format(exchangeRate * currencyAmount, {\n currency,\n // we don't want to round the currency, but that is not option of Intl\n // => use maximum value possible to avoid rounding\n maximumFractionDigits: 20\n });\n\n underTableText += this.props.t(\"Document:ItemsSummary.UsedExchangeRate\", { exchangeRate: `${transactionCurrencyFormatted} / ${currencyFormatted}` });\n }\n\n const itemsDisabledMetadata = storage.getBackendDisabledFieldMetadata(itemsBc);\n // this functionality should be used only for CZK, we dont want to round other currencies\n // also use totalAmount and not sum value, as proforma invoices should not have impact on rounding\n const canRound = transactionCurrency === CurrencyCode.CzechKoruna && !this.props.storage.isReadOnly\n && roundToDecimalPlaces(minorUnit, totalAmount) !== Math.round(totalAmount);\n // rounding should be disabled when Items disabled\n const isRoundDisabled = !!itemsDisabledMetadata;\n\n\n return (\n \n \n {canRound &&\n \n {this.props.t(\"Document:ItemsSummary.Round\")}\n \n }\n {underTableText &&\n {underTableText}}\n \n );\n }\n\n}\n\nexport default withTranslation([\"Document\"])(ItemsSummary);","import React from \"react\";\nimport { FormStorage } from \"../../../../../views/formView/FormStorage\";\nimport {\n ICorrectiveInvoiceIssuedEntity,\n ICorrectiveInvoiceReceivedEntity,\n IRegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { RowType, TextAlign } from \"../../../../../enums\";\nimport SimpleTable from \"../../../../../components/simpleTable/SimpleTable\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { DASH_CHARACTER } from \"../../../../../constants\";\nimport { formatCurrency } from \"../../../../../types/Currency\";\nimport BindingContext from \"../../../../../odata/BindingContext\";\nimport { IDocumentExtendedEntity } from \"../../../DocumentInterfaces\";\n\nexport const CorrectiveItemsSummaryPath = BindingContext.localContext(\"CorrectiveItemsSummary\");\n\ninterface IProps extends WithTranslation {\n storage: FormStorage;\n}\n\nclass CorrectiveItemsSummary extends React.Component {\n constructor(props: IProps) {\n super(props);\n\n // register CorrectiveItemsSummary on storage, so that it can be refreshed as any other field\n props.storage.addRef(this, props.storage.data.bindingContext.navigate(CorrectiveItemsSummaryPath));\n }\n\n componentWillUnmount() {\n this.props.storage.removeRef(this, this.props.storage.data.bindingContext.navigate(CorrectiveItemsSummaryPath));\n }\n\n render() {\n const document = this.props.storage.data.entity as (ICorrectiveInvoiceReceivedEntity | ICorrectiveInvoiceIssuedEntity);\n const originalDocuments: IDocumentExtendedEntity[] = document.CorrectedDocuments ?? [];\n const allOriginalItems = originalDocuments.flatMap(document => document.DocumentItems ?? document.Items).filter(v => v);\n const correctionItems = document.Items as IRegularDocumentItemEntity[];\n const currency = document.TransactionCurrency?.Code ?? document.TransactionCurrencyCode;\n\n let taxBaseOriginal = 0;\n let taxBaseCorrection = 0;\n let vatOriginal = 0;\n let vatCorrection = 0;\n const isEmpty = !allOriginalItems || allOriginalItems.length === 0;\n\n if (!isEmpty) {\n for (const origItem of allOriginalItems) {\n // skip items with wrong values\n if (Number.isNaN(origItem.TransactionAmountNet) || Number.isNaN(origItem.TransactionAmountVat)) {\n continue;\n }\n\n taxBaseOriginal += origItem.TransactionAmountNet ?? 0;\n vatOriginal += origItem.TransactionAmountVat ?? 0;\n }\n\n for (const correctiveItem of (correctionItems ?? [])) {\n // skip items with wrong values\n if (Number.isNaN(correctiveItem.TransactionAmountNet) || Number.isNaN(correctiveItem.TransactionAmountVat)) {\n continue;\n }\n\n taxBaseCorrection += correctiveItem.TransactionAmountNet ?? 0;\n vatCorrection += correctiveItem.TransactionAmountVat ?? 0;\n }\n }\n\n const columns: IColumn[] = [\n { id: \"Special\", label: \"\", textAlign: TextAlign.Right, isBold: true, ignoreDividers: true },\n {\n id: \"Original\",\n label: this.props.t(\"Document:CorrectiveItemsSummary.Original\"),\n textAlign: TextAlign.Right\n },\n {\n id: \"Correction\",\n label: this.props.t(\"Document:CorrectiveItemsSummary.Correction\"),\n textAlign: TextAlign.Right\n },\n {\n id: \"AfterCorrection\",\n label: this.props.t(\"Document:CorrectiveItemsSummary.AfterCorrection\"),\n textAlign: TextAlign.Right\n }\n ];\n\n const taxBaseSum = taxBaseOriginal + taxBaseCorrection;\n const vatSum = vatOriginal + vatCorrection;\n const rows: IRow[] = [];\n\n rows.push(\n {\n id: \"taxBase\",\n values: {\n Special: this.props.t(\"Document:CorrectiveItemsSummary.TaxBase\") as string,\n Original: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseOriginal, currency),\n Correction: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseCorrection, currency),\n AfterCorrection: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseSum, currency)\n }\n },\n {\n id: \"vat\",\n values: {\n Special: this.props.t(\"Document:CorrectiveItemsSummary.Vat\") as string,\n Original: isEmpty ? DASH_CHARACTER : formatCurrency(vatOriginal, currency),\n Correction: isEmpty ? DASH_CHARACTER : formatCurrency(vatCorrection, currency),\n AfterCorrection: isEmpty ? DASH_CHARACTER : formatCurrency(vatSum, currency)\n }\n },\n {\n id: \"sum\",\n type: RowType.Aggregation,\n values: {\n Special: \"\",\n Original: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseOriginal + vatOriginal, currency),\n Correction: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseCorrection + vatCorrection, currency),\n AfterCorrection: isEmpty ? DASH_CHARACTER : formatCurrency(taxBaseSum + vatSum, currency)\n }\n }\n );\n\n return ;\n }\n\n}\n\nexport default withTranslation([\"Document\"])(CorrectiveItemsSummary);","import { IDefinition } from \"@pages/PageUtils\";\nimport ItemsSummary, { ItemsSummaryPath } from \"./ItemsSummary\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport React from \"react\";\nimport CorrectiveItemsSummary, {\n CorrectiveItemsSummaryPath\n} from \"../../corrective/extensions/correctiveItemsSummary/CorrectiveItemsSummary\";\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\n\nexport const ItemsSummariesPaths = [ItemsSummaryPath, CorrectiveItemsSummaryPath];\n\nexport const addItemsSummaryDef = (definition: IDefinition, context: IAppContext, addCorrectiveItemsSummary?: boolean) => {\n const itemsGroup = definition.form.groups.find(group => group.id === \"Items\");\n const itemsSummaryWrapperStyle: React.CSSProperties = {\n flex: \"1 1 auto\",\n alignItems: \"flex-end\",\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: \"60px\",\n marginLeft: \"38px\"\n };\n\n itemsGroup.lineItems.itemsSummaryRenderer = (args) => {\n return (\n
    \n \n {addCorrectiveItemsSummary && }\n
    \n );\n };\n\n // default value, controlled by variant management\n // by default true, isVatRegisteredCompany behavior handled in ItemsSummary directly\n itemsGroup.lineItems.shouldShowItemsSummary = true;\n};","import { getInfoByPath, not, TValidatorFn } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { getNewItemsMaxId, setDirtyFlag } from \"@odata/Data.utils\";\nimport {\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n DocumentLinkEntity,\n EntitySetName,\n EntityTypeName,\n IDocumentCbaCategoryEntity,\n IDocumentEntity,\n IDocumentLabelEntity,\n IDocumentLinkEntity,\n IDocumentVatClassificationSelectionEntity,\n IRegularDocumentItemEntity,\n ProformaInvoiceIssuedEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentLinkTypeCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { isBatchResultOk, OData } from \"@odata/OData\";\nimport { prepareQueryForBatch } from \"@odata/OData.utils\";\nimport { refreshAccountIdsForActualFiscalYear } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport {\n getDefaultPropName,\n getDefaultVatRuleFromBP,\n getDefaultVatRuleFromItems,\n getVatDependentFields,\n isVatRuleSame,\n ITEMS_VAT_DEDUCTION_PATH,\n SAVED_VATS_PATH\n} from \"@pages/admin/vatRules/VatRules.utils\";\nimport { isSameCbaCategory } from \"@pages/cashBasisAccounting/CashBasisAccounting.utils\";\nimport { DOCUMENT_TABLES_GROUP_ID } from \"@pages/documents/DocumentDef\";\nimport { compareLabels } from \"@pages/labelsHierarchy/Labels.utils\";\nimport { IDefinition } from \"@pages/PageUtils\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { forEachKey, isDefined, isNotDefined, isObjectEmpty, sortCompareFn } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { TFetchFn } from \"@utils/oneFetch\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { ValidatorType } from \"../../../../enums\";\nimport { ModelEvent } from \"../../../../model/Model\";\nimport BindingContext, { createPath, IEntity } from \"../../../../odata/BindingContext\";\nimport { isFormReadOnly } from \"../../../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport {\n calcLineItemValues,\n getDocumentPairedTable,\n isDocumentLocked,\n isProformaBc,\n isReceivedBc\n} from \"../../Document.utils\";\nimport { IProformaEntity } from \"../../proformaInvoices/ProformaInvoice.utils\";\nimport { getRenderedItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\n\n\nexport const DEDUCT_DEPOSIT_ACTION = \"deductDeposit\";\nexport const PROFORMA_FORM_TAB = \"Proformas\";\nexport const PROFORMA_DOC_LINK_FILTER = `TypeCode eq '${DocumentLinkTypeCode.ProformaInvoiceDeduction}'`;\nexport const RELATED_PROFORMA_ADDITIONAL_RESULT_IDX = 0;\n\nconst hasSameCurrencyAsProforma: TValidatorFn = (value, args) => {\n const storage = args.storage as FormStorage;\n return !storage.data?.additionalResults?.[RELATED_PROFORMA_ADDITIONAL_RESULT_IDX]\n .find((row: IProformaEntity) => row.TransactionCurrencyCode !== value);\n};\n\nconst getProformaTab = (isCbaCompany: boolean): IFormGroupDef => {\n return {\n id: PROFORMA_FORM_TAB,\n title: i18next.t(\"Document:FormTab.Proforma\"),\n table: getDocumentPairedTable({\n selectQuery: PROFORMA_DOC_LINK_FILTER,\n addTransactionAmountColumn: true,\n isCbaCompany\n })\n };\n};\n\nexport const addProformaDef = (definition: IDefinition, hasAccountAssignment: boolean): void => {\n\n definition.form.customHeaderActions = definition.form.customHeaderActions ?? [];\n\n definition.form.customHeaderActions.push({\n id: DEDUCT_DEPOSIT_ACTION,\n label: i18next.t(\"Proforma:Pairing.DeductDeposit\"),\n iconName: \"PairingDeposit\",\n isVisible: not(isFormReadOnly),\n isDisabled: isDocumentLocked\n });\n\n definition.form.additionalProperties.push({\n id: DocumentEntity.DocumentLinks,\n additionalProperties: [\n { id: DocumentLinkEntity.Amount },\n { id: DocumentLinkEntity.TransactionAmount },\n { id: DocumentLinkEntity.TypeCode },\n { id: createPath(DocumentLinkEntity.TargetDocument, DocumentEntity.Id) }\n ]\n });\n\n const currencyDef = definition.form.fieldDefinition.TransactionCurrency;\n if (currencyDef.validator) {\n logger.error(\"Resolve validator conflict on TransactionCurrency with Proforma Currency validator\");\n }\n\n currencyDef.validator = {\n type: ValidatorType.Custom,\n settings: {\n customValidator: [{\n validator: hasSameCurrencyAsProforma,\n message: i18next.t(\"Error:ProformaInvoiceShouldHaveSameTransactionCurrencyAsInvoice\")\n }]\n }\n };\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === DOCUMENT_TABLES_GROUP_ID);\n tabsGroup.tabs.push(getProformaTab(!hasAccountAssignment));\n};\n\nexport async function loadRelatedProformas(bindingContext: BindingContext, oData: OData, proformaBcs?: BindingContext[], oneFetch?: TFetchFn): Promise {\n if ((bindingContext.isNew() || isProformaBc(bindingContext)) && !proformaBcs) {\n return [];\n }\n const isExpense = isReceivedBc(bindingContext);\n const entitySet = isExpense ? EntitySetName.ProformaInvoicesReceived : EntitySetName.ProformaInvoicesIssued;\n let filter: string;\n\n if (!isDefined(proformaBcs)) {\n // load all saved links according to invoice BC\n const docId = bindingContext.getKey();\n filter = `OppositeDocumentLinks/any(link: link/TypeCode in ('${DocumentLinkTypeCode.ProformaInvoiceDeduction}') AND link/SourceDocument/Id eq ${docId})`;\n } else if (proformaBcs?.length) {\n // load explicit Ids specified in 3rd parameter\n const ids = proformaBcs.map(bc => bc.getKey());\n filter = `Id in (${ids.join(\",\")})`;\n } else {\n // nothing to load (proformaBcs was specified, but is empty)\n return [];\n }\n\n const res = await oData.getEntitySetWrapper(entitySet).query()\n .filter(filter)\n .select(\"Id\", \"IsTaxDocument\", \"TransactionCurrencyCode\", \"TransactionAmount\", \"TransactionAmountNet\", \"TransactionAmountVat\")\n .fetchData(oneFetch);\n\n return res.value;\n}\n\nexport function createProformaDocumentLink(bc: BindingContext, entity: IProformaEntity): IDocumentLinkEntity {\n const type = bc.getEntitySet().getType().getFullName();\n return {\n TargetDocument: {\n _metadata: {\n \"\": { type: `#${type}` }\n },\n Id: parseInt(bc.getKey() as string)\n },\n TypeCode: DocumentLinkTypeCode.ProformaInvoiceDeduction,\n Amount: -1 * entity.Amount,\n TransactionAmount: -1 * entity.TransactionAmount\n };\n}\n\n\nexport const fetchAndApplyProformaInvoice = async (storage: FormStorage, proformaBcs: BindingContext[]): Promise => {\n if (proformaBcs.length === 0) {\n logger.error(\"fetchAndApplyProformaInvoice was called with empty proformaBcs array -> nothing to be copied from\");\n return;\n }\n const SUM_FIELDS = [ProformaInvoiceIssuedEntity.TransactionAmount, ProformaInvoiceIssuedEntity.TransactionAmountNet, ProformaInvoiceIssuedEntity.AmountNet, ProformaInvoiceIssuedEntity.Amount] as const;\n // fields to copy from proforma to invoice - just prefixes, so all fields with these prefixes from definition will be copied\n const COPY_FIELDS = [\n \"Items\",\n DocumentEntity.TransactionCurrency,\n DocumentEntity.BusinessPartner,\n DocumentEntity.VatClassificationSelection,\n DocumentEntity.Labels,\n ...SUM_FIELDS\n ];\n\n const isCBACompany = isCashBasisAccountingCompany(storage.context);\n const hasAccountAssignment = isAccountAssignmentCompany(storage.context);\n\n if (isCBACompany) {\n // in case of CBA company, we don't want to copy the cashbox\n COPY_FIELDS.push(DocumentEntity.CbaCategory);\n }\n\n const invoiceMergedDef = cloneDeep((storage as FormStorage).data.mergedDefinition);\n\n forEachKey(invoiceMergedDef, (key) => {\n if (BindingContext.isLocalContextPath(key) || !COPY_FIELDS.find(name => key.toString().startsWith(name))) {\n delete invoiceMergedDef[key];\n }\n });\n\n // don't copy any of the date fields\n const dateGroup = storage.data.definition.groups.find(group => group.id === \"date\");\n\n for (const row of dateGroup.rows) {\n for (const field of row) {\n delete invoiceMergedDef[field.id];\n }\n }\n\n // columns prepared from document mergedDef, so all configured fields in the variant are populated\n const mergedDefColumns = storage.convertMergedDefToColumns(invoiceMergedDef);\n const documentTypeCode = storage.data.entity.DocumentTypeCode;\n const bpDefaultPropName = getDefaultPropName(documentTypeCode);\n // add extra columns, which is needed to do the calculations, but are not copied to the document\n const extraColumns = [\n { id: ProformaInvoiceIssuedEntity.CalculateVat },\n { id: ProformaInvoiceIssuedEntity.IsTaxDocument },\n { id: ProformaInvoiceIssuedEntity.DateIssued },\n { id: createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner, bpDefaultPropName) }\n ];\n\n const columns = [...mergedDefColumns, ...extraColumns];\n const batch = storage.oData.batch();\n batch.beginAtomicityGroup(\"queryInvoices\");\n\n proformaBcs.forEach(proformaBc => {\n prepareQueryForBatch({\n batch,\n bindingContext: proformaBc,\n fieldDefs: columns\n });\n });\n const results = await batch.execute();\n\n const invoices: IProformaEntity[] = [];\n let businessPartnerId: number | null = undefined,\n hasSameBP = true;\n let labels: IDocumentLabelEntity[] = undefined,\n hasSameLabels = true;\n let cbaCategory: IDocumentCbaCategoryEntity = undefined,\n hasSameCBACategory = isCBACompany;\n\n const _compareData = (data: IEntity, allowEmpty = false) => {\n const currentBPId = data.BusinessPartner?.BusinessPartner?.Id;\n const currentLabels = data.Labels;\n const currentCBACategory = data.CbaCategory;\n\n // There is different logic for BP. If empty, it's skipped in comparison.\n if (businessPartnerId === undefined) {\n businessPartnerId = isDefined(currentBPId) ? currentBPId : undefined;\n } else {\n hasSameBP = hasSameBP && (isNotDefined(currentBPId) || businessPartnerId === currentBPId);\n }\n\n // we cannot skip not set labels of proformas, because even empty labels may change value of item with \"Default\" selection\n // the only labels, which can be skipped are on main invoice document without filled items\n if (labels === undefined) {\n labels = (!currentLabels || currentLabels?.length === 0) ? (allowEmpty ? undefined : []) : currentLabels;\n } else {\n hasSameLabels = hasSameLabels && compareLabels(labels, currentLabels ?? null);\n }\n\n if (cbaCategory === undefined) {\n // we ignore first (defaulted) CBA category, because there are no items, which would be affected by it\n cbaCategory = allowEmpty ? undefined : (currentCBACategory ?? null);\n } else {\n hasSameCBACategory = hasSameCBACategory && isSameCbaCategory(cbaCategory, currentCBACategory);\n }\n };\n\n const _canReplaceHeaderItemsData = storage.data.bindingContext.isNew() && !storage.isDirtyPath(\"Items\");\n _compareData(storage.data.entity, _canReplaceHeaderItemsData);\n\n results.forEach((result, idx) => {\n if (isBatchResultOk(result)) {\n const proformaInvoice = result.body.value ?? {};\n invoices.push(proformaInvoice);\n\n _compareData(proformaInvoice);\n }\n });\n\n // sort according to issuedDate\n invoices.sort((a: IProformaEntity, b: IProformaEntity) => {\n const diff = sortCompareFn(a.DateIssued, b.DateIssued);\n if (diff === 0) {\n return sortCompareFn(a.Id, b.Id);\n }\n return diff;\n });\n\n // prefer to copy data from tax document, if available, because it has more data to copy (e.g. VAT rule)\n const invoiceToCopy: IProformaEntity = cloneDeep(invoices.find(invoice => invoice.IsTaxDocument) ?? invoices[0]);\n const isCopyOfTaxDocument = invoiceToCopy.IsTaxDocument;\n\n extraColumns.forEach(col => {\n delete invoiceToCopy[col.id as keyof IProformaEntity];\n });\n\n if (!hasSameLabels) {\n delete invoiceToCopy.Labels;\n }\n if (!hasSameCBACategory || isObjectEmpty(cbaCategory)) {\n delete invoiceToCopy.CbaCategory;\n }\n\n // if all documents has same BP, we:\n // 1. apply it on the document\n // 2. get available vat rules for that BP\n // 3. get default rule from the BP or default rule from available rules\n // 4. we can check if all documents has same rule, if not, we can't assume the correct one -> clear it\n // if all documents don't have same BP, we get the available rules from current formView and check the default rule from it:\n const info = getInfoByPath(storage, SAVED_VATS_PATH);\n const canReplaceVatRule = _canReplaceHeaderItemsData && !storage.isDirtyPath(SAVED_VATS_PATH);\n\n if (hasSameBP) {\n // set BP data to storage entity, so we can obtain available VAT rules\n storage.setValueByPath(DocumentEntity.BusinessPartner, invoiceToCopy.BusinessPartner);\n // invalidate items, so we get new VAT rules according to the BP\n if (info.fieldSettings.items) {\n delete info.fieldSettings.items;\n }\n // default VAT rule according to BP in case there are no items changed locally or saved and rule is not Saved\n if (canReplaceVatRule) {\n const availableVatRules = await getRenderedItemsByInfo(storage, info);\n\n const BPDefaultRule = hasSameBP ? getDefaultVatRuleFromBP(invoiceToCopy.BusinessPartner, documentTypeCode) : null;\n const defaultVatRule = getDefaultVatRuleFromItems(availableVatRules, BPDefaultRule);\n const savedVatsBc = storage.data.bindingContext.navigate(SAVED_VATS_PATH);\n storage.setValue(savedVatsBc, defaultVatRule?.id);\n if (defaultVatRule) {\n storage.processDependentField(getVatDependentFields(), defaultVatRule.additionalData, savedVatsBc);\n } else {\n storage.setValueByPath(\"VatClassificationSelection\", {});\n }\n }\n } else {\n // do not\n delete invoiceToCopy.BusinessPartner;\n }\n\n let vatRule: IDocumentVatClassificationSelectionEntity = undefined,\n hasSameVatRule = true;\n\n const _compareVatData = (data: IEntity, isMainInvoice = false): void => {\n if (!isMainInvoice && !data.IsTaxDocument) {\n // skip comparison for non-tax documents as they don't have VAT rules\n return;\n }\n const currentRule = data.VatClassificationSelection;\n if (vatRule === undefined) {\n // first proforma, nothing to compare, just fill values\n vatRule = (isMainInvoice && canReplaceVatRule) ? undefined : (currentRule ?? null);\n } else {\n // comparison\n hasSameVatRule = hasSameVatRule && isVatRuleSame(vatRule, currentRule);\n }\n };\n\n _compareVatData(storage.data.entity, true);\n\n invoices.forEach((proformaInvoice) => {\n _compareVatData(proformaInvoice);\n });\n\n if (!hasSameVatRule) {\n // when user picks proformas with different VAT rules, we can't assume the correct one,\n // so set it empty to force user to select some and think about it\n invoiceToCopy.VatClassificationSelection = {};\n storage.setValueByPath(SAVED_VATS_PATH, null);\n } else if (isCopyOfTaxDocument) {\n // delete just IDs, so new objects are created on BE\n // correct item ID is added in onAfterLoad\n delete invoiceToCopy.VatClassificationSelection?.Id;\n delete invoiceToCopy.VatClassificationSelection?.VatClassification?.Id;\n } else {\n // keep default vat rule on the invoice document\n delete invoiceToCopy.VatClassificationSelection;\n }\n // set SAVED_VATS_PATH dirty, so it's not redefaulted in onAfterLoad\n storage.setDirty(storage.data.bindingContext.navigate(SAVED_VATS_PATH));\n\n storage.clearEmptyLineItems(\"Items\");\n const originalItemsLength = storage.data.entity.Items?.length ?? 0;\n invoiceToCopy.Items = [...storage.data.entity.Items];\n\n const itemToOriginalProforma: IProformaEntity[] = [];\n\n let maxNewId = getNewItemsMaxId(storage.data.entity.Items);\n let maxOrder = originalItemsLength ? storage.data.entity.Items?.[originalItemsLength - 1].Order : 0;\n\n const _applyItemFn = (invoice: IProformaEntity, { Id, ...itemProps }: IRegularDocumentItemEntity) => {\n itemToOriginalProforma.push(invoice);\n itemProps.Order = ++maxOrder;\n // remove ID from items, so new IDs are created on BE\n return BindingContext.createNewEntity(++maxNewId, itemProps);\n };\n\n const summaryFields: Partial = {};\n SUM_FIELDS.forEach(field => {\n summaryFields[field] = storage.data.entity[field] ?? 0;\n });\n\n // concatenate items from all Proformas\n for (let i = 0; i < invoices.length; i++) {\n SUM_FIELDS.forEach(field => {\n summaryFields[field] += (invoices[i][field] ?? 0);\n });\n const copiedItems = invoices[i].Items?.map(_applyItemFn.bind(null, invoices[i])) ?? [];\n invoiceToCopy.Items = [...invoiceToCopy.Items, ...copiedItems];\n }\n\n // delete original proforma ID\n delete invoiceToCopy.Id;\n\n storage.data.entity = {\n ...storage.data.entity,\n ...invoiceToCopy,\n ...summaryFields\n };\n\n const bc = storage.data.bindingContext.navigate(\"Items\");\n const items = (storage.data.entity.Items ?? []) as IRegularDocumentItemEntity[];\n\n items.forEach((item, idx) => {\n if (idx < originalItemsLength) {\n // we do not process items, which was already in the invoice\n return;\n }\n const itemBc = bc.addKey(item);\n const origProforma = itemToOriginalProforma[idx - originalItemsLength];\n let newItemValues: IEntity = {};\n\n // remove AccountAssignment as it does not make sense to copy it from Proforma\n delete item.AccountAssignmentSelection;\n if (hasAccountAssignment) {\n newItemValues.AccountAssignmentSelection = { Selection: { Code: SelectionCode.Default }, SelectionCode: SelectionCode.Default };\n }\n\n if (!origProforma.IsTaxDocument) {\n if (!origProforma.CalculateVat) {\n const itemVatBc = itemBc.navigate(\"Vat\");\n storage.setDefaultValue(itemVatBc);\n const vat = storage.getValue(itemVatBc, { useDirectValue: true });\n const decimalPlaces = storage.data.entity.Currency?.MinorUnit ?? 2;\n newItemValues = {\n ...newItemValues,\n ...calcLineItemValues({\n Quantity: item.Quantity,\n TransactionUnitPrice: item.TransactionUnitPrice,\n Vat: (vat?.Code && vat?.Rate) ?? 0\n }, \"TransactionUnitPrice\", null, decimalPlaces)\n };\n\n delete newItemValues.Vat;\n }\n\n // always set default selection for Items, if not taxDocument, where selection is already selected\n newItemValues[ITEMS_VAT_DEDUCTION_PATH] = SelectionCode.Default;\n } else {\n // handle VatRule for tax documents\n if (!hasSameVatRule && item.VatClassificationSelection.SelectionCode === SelectionCode.Default) {\n // in case VatRule is not same on all documents and item is using default, transfer possible setting to the item rule\n const origRule = origProforma.VatClassificationSelection.VatClassification;\n if (origRule.VatDeductionTypeCode) {\n newItemValues.VatClassificationSelection = {\n SelectionCode: SelectionCode.Own,\n VatClassification: BindingContext.createNewEntity(++maxNewId, {\n VatDeductionTypeCode: origRule.VatDeductionTypeCode,\n VatDeductionType: {\n Code: origRule.VatDeductionTypeCode,\n Name: getEnumDisplayValue(EntityTypeName.VatDeductionType, origRule.VatDeductionTypeCode)\n },\n VatProportionalDeduction: origRule.VatProportionalDeduction,\n NonTaxAccount: origRule.NonTaxAccount\n })\n };\n newItemValues[ITEMS_VAT_DEDUCTION_PATH] = origRule.VatDeductionTypeCode;\n } else {\n // nothing to transfer, just set Default selection\n newItemValues.VatClassificationSelection = {\n SelectionCode: SelectionCode.Default,\n VatClassification: null\n };\n newItemValues[ITEMS_VAT_DEDUCTION_PATH] = SelectionCode.Default;\n }\n }\n }\n\n // handle CbaCategory\n if (isCBACompany && !hasSameCBACategory && isObjectEmpty(item.CbaCategory)) {\n const { Id, ...origCategory } = origProforma.CbaCategory;\n newItemValues.CbaCategory = BindingContext.createNewEntity(++maxNewId, origCategory);\n }\n\n // handle labels\n let labelsCode = item.LabelSelection?.SelectionCode;\n if (!hasSameLabels && item.LabelSelection.SelectionCode === SelectionCode.Default) {\n labelsCode = SelectionCode.Own;\n }\n newItemValues.LabelSelection = labelsCode ? {\n SelectionCode: labelsCode,\n Labels: item.LabelSelection.Labels?.map(({ Id, ...labelProps }) =>\n BindingContext.createNewEntity(++maxNewId, { ...labelProps }))\n } : null;\n\n storage.setValue(itemBc, {\n ...item,\n ...(newItemValues ?? {}),\n });\n\n storage.setDirty(itemBc.navigate(ITEMS_VAT_DEDUCTION_PATH));\n });\n\n // in case proforma is from different FY than the new invoice, we need to correct IDs of account\n // assignments to match the new FY (NonTaxAccount on VatRule)\n await refreshAccountIdsForActualFiscalYear(storage, storage.data.entity.FiscalYear);\n\n // set fields as dirty to work correctly\n BindingContext.each(storage.data.entity, storage.data.bindingContext, (_, bc) => {\n // only set for fields, not their \"parent\" bc\n if (!bc.getKey()) {\n setDirtyFlag(storage, bc);\n }\n\n return true;\n });\n\n // call DocumentFormView.onAfterLoad to call all necessary handlers\n // it should remove the storage busy state as well\n storage.emitter.emit(ModelEvent.AfterLoad, true);\n};","import { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { EntitySetName, ProformaInvoiceIssuedEntity, ProformaInvoiceReceivedEntity } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentLinkTypeCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { DocumentStatusLocalPath } from \"@pages/reports/CommonDefs\";\nimport { hasEverBeenVatRegisteredCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { FieldType, Sort } from \"../../../../enums\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { ISplitPageTableDef } from \"../../../../views/table/TableView.utils\";\nimport { DocumentStatusFilterNames, getDocumentStatusFilterDefinition, getUsedStatuses } from \"../../DocumentDef\";\nimport {\n getDefinitions as getProformaInvoicesIssuedDef\n} from \"../../proformaInvoices/issued/ProformaInvoicesIssuedDef\";\nimport {\n getDefinitions as getProformaInvoicesReceivedDef\n} from \"../../proformaInvoices/received/ProformaInvoicesReceivedDef\";\n\nexport const NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH = BindingContext.localContext(\"NOT_PAIRED_PROFORMAS\");\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext, isIssuedType: boolean): IDefinition => {\n\n const entitySet = isIssuedType ? EntitySetName.ProformaInvoicesIssued : EntitySetName.ProformaInvoicesReceived;\n const baseDef = isIssuedType ? getProformaInvoicesIssuedDef(context) : getProformaInvoicesReceivedDef(context);\n const ProformaEntity = isIssuedType ? ProformaInvoiceIssuedEntity : ProformaInvoiceReceivedEntity;\n const isVatPayer = hasEverBeenVatRegisteredCompany(context);\n const isCbaCompany = isCashBasisAccountingCompany(context);\n\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n ProformaEntity.NumberOurs,\n isCbaCompany ? ProformaEntity.DateCbaDocument : ProformaEntity.DateAccountingTransaction,\n ProformaEntity.BusinessPartner,\n ProformaEntity.Amount,\n ...DocumentStatusFilterNames,\n ProformaEntity.TransactionCurrency,\n NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH\n ],\n filterDefinition: {\n ...(baseDef.table.filterBarDef[0].filterDefinition),\n ...getDocumentStatusFilterDefinition(getUsedStatuses(context, DocumentTypeCode.ProformaInvoiceIssued)),\n DateAccountingTransaction: {},\n DateCbaDocument: {},\n ...withDisplayName(\"TransactionCurrency\"),\n // Filters only cleared proforma invoices without relation to any document or\n // if proforma id is listed in the filter value, which is used to add exception for proformas linked with current document\n [NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH]: {\n id: NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH,\n // there is no field visible, it's only used as predefined filter value\n type: FieldType.Custom,\n render: null,\n isValueHelp: false,\n formatter: () => i18next.t(`Proforma:Pairing.${isVatPayer ? \"NotPairedProformasAndDDOPP\" : \"NotPairedProformas\"}`),\n label: i18next.t(\"Proforma:Pairing.FilterLabel\"),\n filter: {\n buildFilter: (item, settings) => {\n let filter = `OppositeDocumentLinks/all(link: not(link/TypeCode in ('${DocumentLinkTypeCode.ProformaInvoiceDeduction}')))`;\n if (item.value && item.value !== true) {\n filter = `((${filter}) OR Id in (${item.value}))`;\n }\n\n return filter;\n }\n },\n }\n }\n }],\n id: `${entitySet}PairingSpecialTable`,\n preventStoreVariant: true,\n columns: [\n ProformaEntity.NumberOurs,\n DocumentStatusLocalPath,\n ProformaEntity.BusinessPartner,\n isCbaCompany ? ProformaEntity.DateCbaDocument : ProformaEntity.DateAccountingTransaction,\n ProformaEntity.Amount\n ],\n additionalProperties: [\n // we need this for document link creating when pairing with new invoice\n { id: \"TransactionAmount\" },\n { id: \"TransactionAmountNet\" },\n { id: \"TransactionAmountVat\" },\n { id: \"TransactionCurrency\" }\n ],\n columnDefinition: {\n ...(baseDef.table.columnDefinition),\n DateCbaDocument: {},\n NumberOurs: {\n additionalProperties: [\n { id: \"/OppositeDocumentLinks/SourceDocument\" },\n { id: \"/OppositeDocumentLinks/TypeCode\" }\n ]\n }\n },\n title: i18next.t(\"Proforma:Pairing.Title\"),\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n return {\n entitySet,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Proforma\", \"Documents\", \"Common\"];\nsetDefForTesting(\"ProformaPairing\", getDefinitions);","import { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { Button } from \"@components/button\";\nimport { ConditionType, createFilterRow } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport Dialog from \"@components/dialog\";\nimport { getIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport SelectionTableViewBase, { THeaderDataGetter } from \"@components/smart/SelectionTableViewBase\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, TId } from \"@components/table\";\nimport {\n DocumentEntity,\n EntityTypeName,\n IDocumentEntity,\n IDocumentLinkEntity,\n IInvoiceIssuedEntity,\n IInvoiceReceivedEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, DocumentLinkTypeCode, DocumentTypeCode, PostedStatusCode } from \"@odata/GeneratedEnums\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { PropertyTranslationCache } from \"@odata/PropertyTranslationCache\";\nimport { DocumentStatusLocalPath, getStatusFilterId } from \"@pages/reports/CommonDefs\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER } from \"../../../../constants\";\nimport { RowAction, Status, ValueType } from \"../../../../enums\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { ROUTE_BUSINESS_PARTNER } from \"../../../../routes\";\nimport { formatCurrency } from \"../../../../types/Currency\";\nimport DateType from \"../../../../types/Date\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../../../views/table/TableToolbar.utils\";\nimport { ITableViewBaseProps } from \"../../../../views/table/TableView\";\nimport {\n DOCUMENT_CLEARING_FORM_TAB_ID,\n getDocumentLinkBcs,\n isNotSavedDocument,\n isReceived,\n refreshExchangeRate,\n setNotPostedStatusFilter\n} from \"../../Document.utils\";\nimport { IProformaEntity } from \"../../proformaInvoices/ProformaInvoice.utils\";\nimport {\n createProformaDocumentLink,\n fetchAndApplyProformaInvoice,\n loadRelatedProformas,\n PROFORMA_FORM_TAB,\n RELATED_PROFORMA_ADDITIONAL_RESULT_IDX\n} from \"./Proforma.utils\";\nimport { NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH } from \"./ProformaDef\";\n\n\nexport interface IProps extends ITableViewBaseProps, WithBusyIndicator {\n onConfirm?: () => void;\n}\n\ninterface IState {\n isConfirmDialogOpened: boolean;\n rowsData?: IRow[];\n}\n\ntype IInvoiceEntity = IInvoiceReceivedEntity | IInvoiceIssuedEntity;\n\nclass PairingProformaTableView extends SelectionTableViewBase {\n _originalLinks: IDocumentLinkEntity[];\n\n get title(): string {\n return this.props.rootStorage.t(this.props.rootStorage.data.definition.title);\n }\n\n get secondaryTitle(): string {\n return this.props.storage.data.definition.title;\n }\n\n get selectionConfirmText(): string {\n return this.props.storage.t(\"Proforma:Pairing.PairActionText\");\n }\n\n get headerData(): THeaderDataGetter {\n const bc = this.props.rootStorage.data.bindingContext;\n const entity = this.props.rootStorage.data.entity as IInvoiceEntity;\n const numberOursBc = bc.navigate(\"NumberOurs\");\n const datePath = (this.isExpense ? \"DateReceived\" : \"DateIssued\") as keyof IInvoiceEntity;\n const emptyValue = DASH_CHARACTER;\n const transactionCurrency = entity.TransactionCurrencyCode ?? entity.TransactionCurrency?.Code;\n\n return [\n {\n // NumberOurs is used as summary item with custom label => label in fieldInfo isn't the one we want\n label: PropertyTranslationCache.getCachedTranslation(numberOursBc.getProperty()),\n value: entity.NumberOurs ?? emptyValue\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"BusinessPartner/BusinessPartner\")).label,\n value: entity.BusinessPartner?.BusinessPartner?.Id ? getIntentLink(entity.BusinessPartner.Name, {\n route: `${ROUTE_BUSINESS_PARTNER}/${entity.BusinessPartner.BusinessPartner?.Id}`,\n context: this.props.rootStorage.context,\n storage: this.props.rootStorage\n }) : emptyValue\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(datePath)).label,\n value: entity[datePath] ? DateType.format(entity[datePath] as Date) : emptyValue\n },\n {\n label: this.props.storage.t(\"Proforma:Pairing.TransactionAmount\"),\n value: formatCurrency(entity.TransactionAmount ? entity.TransactionAmount : emptyValue, transactionCurrency)\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"TransactionAmountNet\")).label,\n value: formatCurrency(entity.TransactionAmountNet ? entity.TransactionAmountNet : emptyValue, transactionCurrency)\n },\n {\n label: this.props.rootStorage.getInfo(bc.navigate(\"TransactionAmountDue\")).label,\n value: formatCurrency(entity.TransactionAmountDue ? entity.TransactionAmountDue : emptyValue, transactionCurrency)\n }\n ];\n }\n\n get isExpense(): boolean {\n return isReceived(this.props.rootStorage.data.entity.DocumentTypeCode as DocumentTypeCode);\n }\n\n constructor(props: IProps) {\n super(props);\n\n this.prepareInitialData();\n }\n\n shouldComponentUpdate(nextProps: IProps, nextState: IState): boolean {\n return super.shouldComponentUpdate(nextProps, nextState) || this.state.isConfirmDialogOpened !== nextState.isConfirmDialogOpened;\n }\n\n isDraftView = (): boolean => {\n return false;\n };\n\n prepareInitialData() {\n const { rootStorage } = this.props;\n const document = rootStorage.data.entity as IDocumentEntity;\n const links = document.DocumentLinks ?? [];\n\n const proformaLinks = links.filter(link => link.TypeCode === DocumentLinkTypeCode.ProformaInvoiceDeduction);\n\n this._originalLinks = [...(proformaLinks ?? [])];\n this._selectedItems = getDocumentLinkBcs(rootStorage.oData, proformaLinks) ?? [];\n }\n\n presetDefaultFilters() {\n const { rootStorage, storage } = this.props;\n\n const pairedProformas = rootStorage.data.additionalResults[RELATED_PROFORMA_ADDITIONAL_RESULT_IDX];\n const pairedProformaIds = pairedProformas?.map((item: IProformaEntity) => item.Id) ?? [];\n // empty array is considered as \"not set\", so we need to use \"true\" by default\n const pairedProformaIdQuery = pairedProformaIds.length > 0 ? transformToODataString(pairedProformaIds, ValueType.Number) : true;\n\n storage.store({\n predefinedFilters: {\n [NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH]: pairedProformaIdQuery\n }\n });\n storage.setFilterValueByPath(NOT_PAIRED_PROFORMAS_LOCAL_FILTER_PATH, pairedProformaIdQuery);\n\n // initiate default filters\n const { data } = rootStorage;\n\n if (!isNotSavedDocument(rootStorage) || rootStorage.isDirtyPath(DocumentEntity.TransactionCurrency)) {\n // user already selects some data in form -> we should match them:\n // -> prefilter proformas by currency\n storage.setFilterValueByPath(DocumentEntity.TransactionCurrency, [data.entity.TransactionCurrency?.Code]);\n }\n\n if (rootStorage.data.entity.BusinessPartner?.BusinessPartner?.Id) {\n // preselect business partner in filters\n storage.setFilterValueByPath(DocumentEntity.BusinessPartner, [data.entity.BusinessPartner?.Name]);\n }\n\n if (isAccountAssignmentCompany(this.props.rootStorage.context)) {\n setNotPostedStatusFilter(storage);\n }\n\n if (isCashBasisAccountingCompany(this.props.rootStorage.context)) {\n storage.setFilterValueByPath(DocumentStatusLocalPath, [\n createFilterRow({\n type: ConditionType.Included,\n value: [\n getStatusFilterId(EntityTypeName.ClearedStatus, ClearedStatusCode.Cleared)\n ]\n })\n ]);\n }\n\n storage.applyFilters();\n }\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n const currentDocument = row.customData.entity as IDocumentEntity;\n const isNotPosted = currentDocument.PostedStatusCode === PostedStatusCode.NotPosted;\n\n return isNotPosted;\n }\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [\n TableButtonsAction.Sorting,\n TableButtonsAction.Settings\n ];\n }\n\n handleToolbarConfirm = async () => {\n const { rootStorage } = this.props;\n const { tableAPI } = this.props.storage;\n const { entity } = rootStorage.data;\n\n const affectedRows = await tableAPI.getAffectedRows();\n\n // Validate currency that it's not mismatched and is same as document (if it won't be changed potentially)\n const tableState = tableAPI.getState();\n const rowsData = affectedRows.map(row => getRow(tableState.rows, row.bc));\n const mandatoryCurrency = isNotSavedDocument(this.props.rootStorage) ? rowsData?.[0].customData.entity.TransactionCurrencyCode\n : entity.TransactionCurrency?.Code;\n\n const rowWithInvalidCurrency = rowsData.find(rowData => rowData.customData.entity.TransactionCurrencyCode !== mandatoryCurrency);\n if (rowWithInvalidCurrency) {\n this.setAlert({\n status: Status.Error,\n subTitle: rootStorage.t(\"Proforma:Pairing.DifferentCurrencies\")\n });\n this.forceUpdate();\n return;\n } else if (mandatoryCurrency !== entity.TransactionCurrency?.Code) {\n // set currency to document, refresh exchangeRate and recalculate amounts\n rootStorage.setValueByPath(DocumentEntity.TransactionCurrency, mandatoryCurrency);\n await refreshExchangeRate(rootStorage);\n }\n\n this.setState({\n rowsData\n }, () => {\n // wait for the rowsData to be set, consequent actions are dependent on it\n if (affectedRows.length > 0) {\n // ask user if he wants to copy data from proforma to invoice\n this.setState({ isConfirmDialogOpened: true });\n } else {\n // directly pair without copying as there are no rows - user may be just unpair some rows\n this.handlePairingWithoutDataCopy();\n }\n });\n };\n\n async pairProformaInvoices(withDataCopy: boolean) {\n const { rootStorage } = this.props;\n const { tableAPI } = this.props.storage;\n\n const affectedRows = await tableAPI.getAffectedRows();\n const { rowsData } = this.state;\n\n this.handleCancelDialog();\n this.props.setBusy(true);\n\n if (withDataCopy) {\n const links = (rootStorage.data.entity as IDocumentEntity).DocumentLinks;\n // User can decide to copy or not to copy the data. If so, we copy same data\n // to invoice header and always all line items\n const copyDataBcs = affectedRows\n .filter(row => !links?.find((link: IDocumentLinkEntity) => link.TargetDocument?.Id.toString() === row.bc.getKey().toString()))\n .map(row => row.bc);\n await fetchAndApplyProformaInvoice(rootStorage, copyDataBcs);\n }\n\n const entity = rootStorage.data.entity as IDocumentEntity;\n const newLinks: IDocumentLinkEntity[] = [];\n\n // Keep all links, which are not proforma link type...\n (entity.DocumentLinks ?? []).forEach(link => {\n if (link.TypeCode !== DocumentLinkTypeCode.ProformaInvoiceDeduction) {\n newLinks.push(link);\n }\n });\n // ... adds selected proforma links\n rowsData.forEach(rowData => {\n newLinks.push(createProformaDocumentLink(rowData.id as BindingContext, rowData.customData.entity));\n });\n\n rootStorage.setDirty(rootStorage.data.bindingContext);\n entity.DocumentLinks = newLinks;\n\n // load related proformas\n const affectedRowsBc = affectedRows.map(affectedRow => affectedRow.bc);\n const res = await Promise.all([\n rootStorage.updateTabsVisibility([PROFORMA_FORM_TAB, DOCUMENT_CLEARING_FORM_TAB_ID], true),\n loadRelatedProformas(rootStorage.data.bindingContext, rootStorage.oData, affectedRowsBc)\n ]);\n rootStorage.data.additionalResults[RELATED_PROFORMA_ADDITIONAL_RESULT_IDX] = res[1];\n rootStorage.refresh();\n\n this.prepareInitialData();\n\n this.props.setBusy(false);\n\n this.setAlert({\n status: Status.Success,\n subTitle: this.props.storage.t(\"Proforma:Pairing.SuccessSubtitle\")\n });\n this.props.storage.tableAPI?.reloadTable();\n\n this.props.onConfirm?.();\n }\n\n handlePairingWithoutDataCopy = this.pairProformaInvoices.bind(this, false);\n handlePairingWithDataCopy = this.pairProformaInvoices.bind(this, true);\n\n handleCancelDialog = () => {\n this.setState({ isConfirmDialogOpened: false, rowsData: null });\n };\n\n renderConfirmationDialog(): React.ReactElement {\n return (\n \n \n \n \n }>\n {this.props.storage.t(\"Proforma:Pairing.ConfirmCopyDataContent\")}\n \n );\n }\n\n renderDefaultDialogs(): React.ReactElement {\n return (\n <>\n {super.renderDefaultDialogs()}\n {this.state.isConfirmDialogOpened && this.renderConfirmationDialog()}\n \n );\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PairingProformaTableView);\n","import Dialog from \"@components/dialog/Dialog\";\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport { PageViewMode } from \"../../../../enums\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport DialogPage from \"../../../DialogPage\";\nimport PairingProformaTableView from \"./PairingProformaTableView\";\nimport { DEDUCT_DEPOSIT_ACTION } from \"./Proforma.utils\";\nimport { getDefinitions } from \"./ProformaDef\";\n\nexport interface WithProforma {\n onCustomHeaderAction?: (actionId: string, storage: FormStorage) => Promise;\n}\n\ninterface WithProformaProps {\n onCustomHeaderAction?: (actionId: string, storage: FormStorage) => Promise;\n}\n\ntype TWithProforma

    = Omit & WithProformaProps;\n\n\nexport interface WithProformaSettings {\n isIssuedType: boolean;\n}\n\nexport const withProforma = (settings: WithProformaSettings) => (\n

    (Component: React.ComponentType

    ): React.ComponentType> => {\n let promiseResolve: (value: boolean) => void;\n\n return React.forwardRef((props: TWithProforma

    , ref) => {\n const { onCustomHeaderAction } = props;\n\n const [isOpen, setOpen] = useState(false);\n const formStorage = useRef(null);\n\n const handleCustomHeaderAction = useCallback(async (actionId: string, storage: FormStorage) => {\n formStorage.current = storage;\n\n if (DEDUCT_DEPOSIT_ACTION === actionId) {\n setOpen(true);\n return new Promise(function (resolve) {\n promiseResolve = resolve;\n });\n } else {\n return onCustomHeaderAction?.(actionId, storage);\n }\n }, [onCustomHeaderAction]);\n\n const handleClose = useCallback(() => {\n promiseResolve(false);\n setOpen(false);\n }, []);\n\n const handleConfirm = () => {\n promiseResolve(true);\n };\n\n return (\n <>\n \n {isOpen &&\n

    \n \n \n }\n \n );\n }) as any;\n }\n);","import { EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { TValue } from \"../../../../global.types\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport Currency from \"../../../../types/Currency\";\nimport { getUtcDate } from \"../../../../types/Date\";\nimport { IFormDef } from \"../../../../views/formView/Form\";\nimport { getTimeResAccountFieldDef } from \"./TimeResolution.utils\";\n\nexport const getDefinition: IGetDefinition = (context: IAppContext, receivable: boolean): IDefinition => {\n const entitySet = EntitySetName.DeferredPlans;\n\n const form: IFormDef = {\n id: \"cancelTimeResolutionSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n Account: getTimeResAccountFieldDef(receivable),\n [BindingContext.localContext(\"fullAmount\")]: {\n label: i18next.t(\"TimeResolution:EndForm.Amount\"),\n isReadOnly: true,\n formatter: (val: TValue, args: IFormatOptions) => {\n return Currency.format(val, { currency: getCompanyCurrency(context) });\n },\n useForComparison: false\n },\n DateStart: {\n label: i18next.t(\"TimeResolution:EndForm.AccountingTransaction\"),\n defaultValue: getUtcDate()\n },\n Description: {\n isReadOnly: true,\n defaultValue: i18next.t(\"TimeResolution:Form.Description\")\n }\n },\n groups: [\n {\n id: \"accounting\",\n title: \"\",\n rows: [\n [\n { id: \"DateStart\" },\n { id: \"Account\" }\n ]\n ],\n isSmallBottomMargin: true\n },\n {\n id: \"bottom\",\n rows: [\n [\n { id: BindingContext.localContext(\"fullAmount\") },\n { id: \"Description\" }\n ]\n ]\n }\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinition.translationFiles = [\"TimeResolution\", \"Documents\", \"Common\"];\nsetDefForTesting(\"CancelTimeResolution\", getDefinition);","/** Adds time resolution definitions to document definition */\nimport { IDefinition, TFieldDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport memoizeOne from \"../../../../utils/memoizeOne\";\nimport { isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { Sort } from \"../../../../enums\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport {\n DeferredPlanPostingTypeCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n PeriodDayCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport {\n EntitySetName,\n ICompanyEntity,\n IDeferredPlanEntity,\n IDocumentAccountAssignmentEntity,\n IDocumentEntity,\n IDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\nimport BindingContext, { IEntity } from \"../../../../odata/BindingContext\";\nimport { addLineActionInfoValueCallback } from \"../../../../views/formView/Form.utils\";\nimport { getAccountSelectionFieldsDef } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { isIssued, isReceived } from \"../../Document.utils\";\nimport { getUtcDayjs } from \"../../../../types/Date\";\n\nexport const TIME_RES_ACTION = \"timeResolution\";\nexport const REMOVE_TIME_RES_ACTION = \"removeTimeResolution\";\nexport const DEFERRED_PLANS_LINK_TYPES = [DocumentLinkTypeCode.DeferredExpense, DocumentLinkTypeCode.DeferredRevenue];\n\nconst accSelFieldsDef = getAccountSelectionFieldsDef(DocumentTypeCode.InternalDocument, {\n skipCreateCustom: true,\n skipNoneItem: true,\n skipNoRecordText: true,\n isLabelWithoutDefaultPrefix: true\n});\nexport const timeResDebitAccountPath = \"AccountAssignmentSelection/AccountAssignment/DebitAccount\";\n\nexport const getTimeResAccountFieldDef = (receivable: boolean): TFieldDefinition => {\n return {\n ...accSelFieldsDef[timeResDebitAccountPath],\n isRequired: true,\n label: i18next.t(`Document:Form.${receivable ? \"DebitAccount\" : \"CreditAccount\"}`),\n filter: {\n // enhance original filter with another filter\n select: (args, other) => {\n const originalFilter = (accSelFieldsDef[timeResDebitAccountPath].filter.select as string);\n\n return `${originalFilter} AND startswith(Number,'${receivable ? \"5\" : \"6\"}')`;\n }\n },\n additionalProperties: accSelFieldsDef[timeResDebitAccountPath].additionalProperties.filter(obj => !obj.id.startsWith(`/${timeResDebitAccountPath}`))\n };\n};\nconst isItemSelectable = (args: IGetValueArgs) => {\n const itemId = args.item.Id;\n const storage = args.storage as FormStorage;\n const documentTypeCode = args.storage.data.entity.DocumentTypeCode as DocumentTypeCode;\n // actions works with already saved forms (origData)\n const origEntity = storage.data.origEntity as IDocumentEntity;\n const origItem = ((origEntity as any).Items)?.find((item: IDocumentItemEntity) => item.Id === itemId);\n let accountAssignment: IDocumentAccountAssignmentEntity;\n\n // disable if item is already part of any deferred plan\n if (!origItem || (origEntity.DeferredPlans && getDeferredPlanForItem(origEntity.DeferredPlans, itemId))) {\n return false;\n }\n\n if (origItem.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Default) {\n accountAssignment = origEntity.AccountAssignmentSelection?.AccountAssignment;\n } else {\n accountAssignment = origItem.AccountAssignmentSelection?.AccountAssignment;\n }\n\n if (isReceived(documentTypeCode)) {\n const debitAccount = accountAssignment?.DebitAccount;\n\n return debitAccount?.Number?.startsWith(\"381\");\n } else if (isIssued(documentTypeCode)) {\n const creditAccount = accountAssignment?.CreditAccount;\n\n return creditAccount?.Number?.startsWith(\"384\");\n }\n\n return false;\n};\n\nexport function addTimeResolutionDef(definition: IDefinition): void {\n // Add LineItems actions for time resolution\n const itemsGroup = definition.form.groups.find(group => group.id === \"Items\");\n\n addLineActionInfoValueCallback(itemsGroup, \"isItemSelectable\", [TIME_RES_ACTION], isItemSelectable);\n\n itemsGroup.lineItems.actions = itemsGroup.lineItems.actions ?? [];\n itemsGroup.lineItems.actions.push(\n {\n id: TIME_RES_ACTION,\n label: i18next.t(\"Document:Form.TimeResolution\"),\n iconName: \"LastUpdated\",\n confirmLabel: i18next.t(\"Document:Form.TimeResolutionConfirm\"),\n isDisabled: (args: IGetValueArgs) => {\n const items = args.storage.getValue(args.bindingContext) ?? [];\n // at least one item has to be selectable for the action to be enabled\n return !items.some((item: IEntity) => {\n return isItemSelectable({\n ...args,\n item\n });\n });\n }\n }\n );\n itemsGroup.lineItems.customActionButtons = [{\n id: REMOVE_TIME_RES_ACTION,\n title: i18next.t(\"Document:Form.TimeResolutionConfirmCancel\"),\n isVisible: (args) => {\n return !!args.storage.data.entity?.DeferredPlans && args.storage.data.entity.DeferredPlans.length !== 0;\n }\n }];\n\n if (!definition.form.additionalProperties) {\n definition.form.additionalProperties = [];\n }\n\n definition.form.additionalProperties.push({\n id: \"DeferredPlans\",\n additionalProperties: [\n { id: \"DateStart\" },\n { id: \"OriginalDocumentItems\", additionalProperties: [{ id: \"OriginalDocumentItem\" }] }\n ]\n });\n\n const timeResTab: IFormGroupDef = getTimeResTab(definition.entitySet as string);\n\n // Add time res tab\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n tabsGroup.tabs.push(timeResTab);\n}\n\nexport const getTimeResTab = (formEntitySet: string, isTargetDocument?: boolean): IFormGroupDef => {\n return {\n id: \"TimeResolution\",\n title: i18next.t(\"Document:FormTab.TimeResolution\"),\n table: {\n id: `timeResolution_${formEntitySet}`,\n entitySet: EntitySetName.DeferredDocuments,\n parentKey: \"Document/Id\",\n filter: ({ storage }) => (\n `${!isTargetDocument ? \"OriginalDocument\" : \"TargetDocument\"}/Id eq ${storage.data?.entity?.Id}`\n ),\n initialSortBy: [{\n id: \"DateAccountingTransaction\",\n sort: Sort.Asc\n }],\n columns: [\n { id: \"DateAccountingTransaction\" },\n {\n id: `${!isTargetDocument ? \"TargetDocument\" : \"OriginalDocument\"}/DocumentType`,\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Document:PairedDocuments.DocumentType\"),\n formatter: (val, args) => {\n if (isNotDefined(val)) {\n return i18next.t(\"TimeResolution:TimePlanTable.PlannedDocument\") as string;\n }\n\n return val as string;\n }\n },\n {\n id: !isTargetDocument ? \"TargetDocument\" : \"OriginalDocument\",\n fieldSettings: {\n displayName: \"NumberOurs\"\n }\n },\n {\n id: \"DocumentLinkType\",\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Document:PairedDocuments.Type\")\n },\n { id: \"Amount\" }\n ]\n }\n };\n};\n\nexport interface IDeferredItemTemplate {\n dateAccountingTransaction: Date;\n amount: number;\n}\n\nexport const getFullAmount = (deferredPlan: IDeferredPlanEntity) => {\n return (deferredPlan as any)[BindingContext.localContext(\"fullAmount\")] ?? 0;\n};\n\nexport const getDeferredItems = (deferredPlan: IDeferredPlanEntity, company: ICompanyEntity): IDeferredItemTemplate[] => {\n const amount = getFullAmount(deferredPlan);\n const items = computeDeferredItems(amount, deferredPlan.DateStart, deferredPlan.DateEnd, deferredPlan.PostingType.Code as DeferredPlanPostingTypeCode, deferredPlan.PeriodDay.Code as PeriodDayCode);\n\n return items;\n};\n\nexport const computeDeferredItems = memoizeOne(\n (amount: number, dateStart: Date, dateEnd: Date, postingType: DeferredPlanPostingTypeCode, periodDay: PeriodDayCode): IDeferredItemTemplate[] => {\n const items: IDeferredItemTemplate[] = [];\n\n if (!dateStart || !dateEnd) {\n return items;\n }\n\n const start = getUtcDayjs(dateStart).startOf(\"day\");\n const end = getUtcDayjs(dateEnd).startOf(\"day\");\n const periodName = postingType === DeferredPlanPostingTypeCode.Monthly ? \"month\" : \"year\";\n const numOfDays = end.diff(start, \"days\") + 1;\n let periodStart = start;\n let roundedItemsSum = 0;\n\n while (periodStart.isSameOrBefore(end, \"date\")) {\n const nextPeriodStart = periodStart.add(1, periodName).startOf(periodName);\n const isLastItem = nextPeriodStart.isAfter(end);\n const thisPeriodEnd = isLastItem ? end : nextPeriodStart.subtract(1, \"day\");\n const itemAmount = (amount * (thisPeriodEnd.diff(periodStart, \"days\") + 1)) / numOfDays;\n let dateAccTrans = periodDay === PeriodDayCode.LastDay ? periodStart.endOf(periodName) : periodStart.startOf(periodName);\n let itemAmountRounded = Math.ceil(itemAmount);\n\n // dateAccTrans cannot be before dateStart, but it can be after dateEnd\n if (dateAccTrans.isBefore(start)) {\n dateAccTrans = start;\n }\n\n if (!isLastItem) {\n roundedItemsSum += itemAmountRounded;\n } else {\n // round as well, to prevent js funny rounding errors\n itemAmountRounded = roundToDecimalPlaces(2, amount - roundedItemsSum);\n }\n\n items.push({\n dateAccountingTransaction: dateAccTrans.toDate(),\n amount: itemAmountRounded\n });\n\n periodStart = nextPeriodStart;\n }\n\n return items;\n }\n);\n\n// returns deferred plan that contains item with given id\nexport const getDeferredPlanForItem = (deferredPlans: IDeferredPlanEntity[], itemId: number) => {\n return deferredPlans.find((plan: IDeferredPlanEntity) => plan.OriginalDocumentItems.some(item => item.OriginalDocumentItem.Id === itemId));\n};","import React from \"react\";\nimport SimpleTable from \"../../../../components/simpleTable\";\nimport { IDeferredItemTemplate } from \"./TimeResolution.utils\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { useTranslation } from \"react-i18next\";\nimport { RowType } from \"../../../../enums\";\nimport DateType, { DateFormat, getUtcDayjs } from \"../../../../types/Date\";\nimport { formatCurrency } from \"../../../../types/Currency\";\n\ninterface IProps {\n items: IDeferredItemTemplate[];\n currency: string;\n}\n\nexport const TimePlanTable: React.FunctionComponent = (props) => {\n const { t } = useTranslation([\"TimeResolution\"]);\n const columns: IColumn[] = [\n { id: \"period\", label: `${t(\"TimeResolution:TimePlanTable.Period\")}:` },\n { id: \"docType\", label: `${t(\"TimeResolution:TimePlanTable.DocType\")}:` },\n { id: \"amount\", label: `${t(\"TimeResolution:TimePlanTable.Amount\")}:` }\n ];\n const today = getUtcDayjs().startOf(\"day\");\n const rows: IRow[] = [];\n const itemsByYears: Record = {};\n let firstYear: string;\n\n for (const item of props.items) {\n const year = DateType.format(item.dateAccountingTransaction, DateFormat.year);\n\n if (!firstYear) {\n firstYear = year;\n }\n\n if (!itemsByYears[year]) {\n itemsByYears[year] = [];\n }\n\n itemsByYears[year].push(item);\n }\n\n for (const year of Object.keys(itemsByYears)) {\n const childRows: IRow[] = [];\n\n for (const item of itemsByYears[year]) {\n childRows.push({\n id: item.dateAccountingTransaction.toString(),\n values: {\n period: DateType.format(item.dateAccountingTransaction),\n docType: t(`TimeResolution:TimePlanTable.${getUtcDayjs(item.dateAccountingTransaction).isSameOrBefore(today, \"date\") ? \"InternalDocument\" : \"PlannedDocument\"}`) as string,\n amount: formatCurrency(item.amount, props.currency)\n }\n });\n }\n\n rows.push({\n id: year,\n values: { period: year },\n type: RowType.Group,\n rows: childRows,\n open: true\n });\n }\n\n return (\n \n );\n};","import { IFieldDefFn } from \"@components/smart/FieldInfo\";\nimport { EntitySetName, EntityTypeName, IDeferredPlanEntity } from \"@odata/GeneratedEntityTypes\";\nimport { DeferredPlanPostingTypeCode, PeriodDayCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport CollapsibleSection, {\n CollapsibleSectionTitleLook\n} from \"../../../../components/collapsibleSection/CollapsibleSection\";\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { CacheStrategy, FieldType, LabelStatus } from \"../../../../enums\";\nimport { TValue } from \"../../../../global.types\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport Currency from \"../../../../types/Currency\";\nimport { IFormDef } from \"../../../../views/formView/Form\";\nimport { getConfirmationActionText } from \"../../../../views/table/TableView.render.utils\";\nimport { TimePlanTable } from \"./TimePlanTable\";\nimport { getDeferredItems, getTimeResAccountFieldDef } from \"./TimeResolution.utils\";\n\nconst planAffectedFields = [{ id: BindingContext.localContext(\"plan\") }];\n\nexport const getDefinition: IGetDefinition = (context: IAppContext, receivable: boolean): IDefinition => {\n const entitySet = EntitySetName.DeferredPlans;\n\n const form: IFormDef = {\n id: `${EntityTypeName.DeferredPlan}Form`,\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n Account: getTimeResAccountFieldDef(receivable),\n [BindingContext.localContext(\"fullAmount\")]: {\n label: i18next.t(\"TimeResolution:Form.FullAmount\"),\n isReadOnly: true,\n formatter: (val: TValue, args: IFormatOptions) => {\n return Currency.format(val, { currency: getCompanyCurrency(context) });\n },\n useForComparison: false\n },\n DateStart: {\n affectedFields: planAffectedFields\n },\n DateEnd: {\n affectedFields: planAffectedFields\n },\n PostingType: {\n type: FieldType.SegmentedButton,\n labelStatus: LabelStatus.Removed,\n defaultValue: DeferredPlanPostingTypeCode.Yearly,\n affectedFields: planAffectedFields,\n fieldSettings: {\n items: [\n {\n id: DeferredPlanPostingTypeCode.Yearly,\n label: i18next.t(\"TimeResolution:Form.Yearly\")\n },\n {\n id: DeferredPlanPostingTypeCode.Monthly,\n label: i18next.t(\"TimeResolution:Form.Monthly\")\n }\n ]\n }\n },\n PeriodDay: {\n type: FieldType.ComboBox,\n defaultValue: PeriodDayCode.LastDay,\n affectedFields: planAffectedFields,\n fieldSettings: {\n displayName: \"Name\",\n entitySet: EntitySetName.PeriodDays\n },\n cacheStrategy: CacheStrategy.EndOfTime\n },\n Description: {\n isReadOnly: true,\n defaultValue: i18next.t(\"TimeResolution:Form.Description\")\n },\n [BindingContext.localContext(\"plan\")]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n const entity = args.storage.data.entity as IDeferredPlanEntity;\n const items = getDeferredItems(entity, args.storage.context.getCompany());\n\n return (\n \n \n \n );\n },\n useForComparison: false\n }\n },\n groups: [\n {\n id: \"top\",\n rows: [[\n { id: BindingContext.localContext(\"fullAmount\") },\n { id: \"DateStart\" }, { id: \"DateEnd\" }\n ]]\n },\n {\n id: \"accounting\",\n title: i18next.t(\"TimeResolution:Form.AccountingGroup\"),\n rows: [\n [{ id: \"PostingType\" }]\n\n ]\n },\n {\n id: \"accounting\",\n title: \"\",\n rows: [\n [\n { id: \"PeriodDay\" },\n { id: \"Account\" }\n ]\n ],\n isSmallBottomMargin: true\n },\n {\n id: \"bottom\",\n rows: [\n [{ id: \"Description\" }],\n [{ id: BindingContext.localContext(\"plan\") }]\n ]\n }\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinition.translationFiles = [\"TimeResolution\", \"Documents\", \"Common\"];\nsetDefForTesting(\"TimeResolution\", getDefinition);","import { withConfirmationDialog, WithConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { AppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport {\n EntitySetName,\n IDeferredPlanEntity,\n IDeferredPlanOriginalDocumentItemEntity,\n IJournalEntryEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { cloneDeep } from \"lodash\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { getDeferredItems } from \"./TimeResolution.utils\";\nimport DialogFormView, { IDialogFormViewProps } from \"../../../../views/formView/DialogFormView\";\nimport { ValidationErrorType } from \"../../../../enums\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport { DocumentTypeCode, VatStatementStatusCode } from \"@odata/GeneratedEnums\";\nimport { getActiveChartOfAccountsId } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { getUtcDayjs } from \"../../../../types/Date\";\n\ninterface IProps extends IDialogFormViewProps, WithConfirmationDialog {\n\n}\n\nclass TimeResolutionDialogFormView extends DialogFormView {\n static contextType = AppContext;\n\n onAfterLoad = async () => {\n\n const items: IDeferredPlanOriginalDocumentItemEntity[] = this.props.storage.data.entity.OriginalDocumentItems;\n\n const deferredDocuments = (await this.props.storage.oData.getEntitySetWrapper(EntitySetName.JournalEntries).query()\n .filter(`DocumentItem/Id in (${items.map(item => item.OriginalDocumentItem.Id).join(\", \")}) AND not(startswith(CreditAccount/Number, '343')) AND not(startswith(DebitAccount/Number, '343'))`)\n .fetchData()).value;\n const fullAmount = deferredDocuments.reduce((sum, item) => {\n return sum + item.Amount;\n }, 0);\n\n this.props.storage.setValue(this.props.storage.data.bindingContext.navigate(BindingContext.localContext(\"fullAmount\")), fullAmount);\n this.props.storage.refresh();\n return super.onAfterLoad();\n };\n\n\n handleChange = (e: ISmartFieldChange) => {\n super.handleChange(e);\n\n this.handleDateChange(e);\n };\n\n handleDateChange = (e: ISmartFieldChange) => {\n if (![\"DateStart\", \"DateEnd\"].includes(e.bindingContext.getPath())) {\n return;\n }\n\n const dateStart = this.props.storage.data.entity.DateStart;\n const dateEnd = this.props.storage.data.entity.DateEnd;\n\n if (dateStart && dateEnd && getUtcDayjs(dateStart).isSameOrAfter(dateEnd, \"date\")) {\n this.props.storage.setErrorByPath(\"DateEnd\", {\n errorType: ValidationErrorType.Field,\n message: this.props.storage.t(\"TimeResolution:Form.DateEndSmall\")\n });\n } else if (dateEnd) {\n this.props.storage.clearErrorByPath(\"DateEnd\");\n }\n };\n\n onBeforeSave = (): IDeferredPlanEntity => {\n const deferredPlan = cloneDeep(this.props.storage.data.entity as IDeferredPlanEntity);\n const items = getDeferredItems(deferredPlan, this.props.storage.context.getCompany());\n const entitySet = getEntitySetByDocumentType(deferredPlan.OriginalDocument.DocumentTypeCode as DocumentTypeCode);\n const entityTypeName = this.props.storage.oData.getMetadata().getTypeForPath(entitySet).getName();\n\n deferredPlan.ChartOfAccounts = { Id: getActiveChartOfAccountsId(this.context) };\n deferredPlan.Company = { Id: this.context.getCompany().Id };\n deferredPlan.DeferredDocuments = items.map(item => {\n return {\n Amount: item.amount,\n DateAccountingTransaction: item.dateAccountingTransaction\n };\n });\n\n // prevent saving problem - OriginalDocument looks like Document, not InvoiceReceived => bc navigation errors\n // only keep necessary properties\n deferredPlan.OriginalDocument = {\n Id: deferredPlan.OriginalDocument.Id,\n _metadata: {\n \"\": { type: `#Solitea.Evala.DomainModel.${entityTypeName}` }\n }\n };\n\n const originalDocument = this.props.storage.data.entity.OriginalDocument;\n const withoutVat = originalDocument.VatStatementStatusCode === VatStatementStatusCode.N_A;\n\n deferredPlan.OriginalDocumentItems = deferredPlan.OriginalDocumentItems.map((item, index) => {\n return BindingContext.createNewEntity(index, {\n OriginalDocumentItem: {\n Id: item.OriginalDocumentItem.Id,\n _metadata: {\n \"\": { type: `#Solitea.Evala.DomainModel.${entityTypeName === DocumentTypeCode.InternalDocument ? \"Internal\" : \"Regular\"}DocumentItem` }\n }\n },\n Amount: withoutVat ? item?.OriginalDocumentItem?.Amount : item?.OriginalDocumentItem?.AmountNet\n });\n });\n\n return deferredPlan;\n };\n}\n\nexport default withConfirmationDialog(withPermissionContext(TimeResolutionDialogFormView));","import React from \"react\";\nimport { withConfirmationDialog, WithConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { AppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport DialogFormView, { IDialogFormViewProps } from \"../../../../views/formView/DialogFormView\";\nimport Alert from \"../../../../components/alert\";\nimport { Status } from \"../../../../enums\";\nimport { EntitySetName, IDeferredDocumentEntity, IDeferredPlanEntity } from \"@odata/GeneratedEntityTypes\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { REST_API_URL } from \"../../../../constants\";\nimport customFetch, { getDefaultPostParams } from \"../../../../utils/customFetch\";\nimport { IFormStorageSaveResult } from \"../../../../views/formView/FormStorage\";\nimport { getActiveChartOfAccountsId } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport BindingContext from \"../../../../odata/BindingContext\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\n\nimport { ODataError } from \"@odata/Data.types\";\n\ninterface IProps extends IDialogFormViewProps, WithConfirmationDialog, WithTranslation {\n\n}\n\nconst CLOSE_PLANS_URL = `${REST_API_URL}/DeferredPlanProcessing/ClosePlans`;\n\nclass CloseTimeResDialogFormView extends DialogFormView {\n static contextType = AppContext;\n\n onAfterLoad = async () => {\n\n\n // load DeferredDocuments which are not by default loaded with the document\n // we need them to compute fullAmount\n const deferredDocuments = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.DeferredDocuments).query()\n .expand(\"TargetDocument\")\n .filter(`OriginalDocument/Id eq ${this.props.storage.data.entity.OriginalDocument.Id}`)\n .fetchData();\n\n // take amount of items that don't have TargetDocument created for them yet\n const fullAmount = deferredDocuments.value.reduce((amount, doc) => {\n let sum = amount;\n\n if (isObjectEmpty(doc.TargetDocument)) {\n sum += doc.Amount;\n }\n\n return sum;\n\n }, 0);\n\n this.props.storage.setValue(this.props.storage.data.bindingContext.navigate(BindingContext.localContext(\"fullAmount\")), fullAmount);\n this.props.storage.refreshFields();\n return super.onAfterLoad();\n };\n\n async save(): Promise {\n const data = this.props.storage.data.entity as IDeferredPlanEntity;\n const body: any = {\n DateAccountingTransaction: data.DateStart,\n AccountId: data.Account.Id,\n ChartOfAccountsId: getActiveChartOfAccountsId(this.context)\n };\n\n const res = await customFetch(`${CLOSE_PLANS_URL}/${data.OriginalDocument.Id}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(body)\n });\n\n if (!res.ok) {\n const error: ODataError = await parseResponse(res);\n\n this.props.storage.handleOdataError({\n error,\n bindingContext: this.props.storage.data.bindingContext\n });\n\n return null;\n }\n\n return {\n bindingContext: this.props.storage.data.bindingContext,\n data: res,\n response: res\n };\n }\n\n renderForm() {\n return (\n <>\n \n {super.renderForm()}\n \n );\n }\n}\n\nexport default withConfirmationDialog(withTranslation([\"TimeResolution\"], { withRef: true })(withPermissionContext(CloseTimeResDialogFormView)));","import React, { useCallback, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport {\n FormStorage,\n IValidateAndSave,\n TCustomResponseHandler,\n TShouldUseCustomResHandler\n} from \"../../../../views/formView/FormStorage\";\nimport { getDeferredPlanForItem, REMOVE_TIME_RES_ACTION, TIME_RES_ACTION } from \"./TimeResolution.utils\";\nimport PlugAndPlayForm from \"../../../../views/formView/PlugAndPlayForm\";\nimport { getDefinition } from \"./TimeResolutionDef\";\nimport TimeResolutionDialogFormView from \"./TimeResolutionDialogFormView\";\nimport { Status } from \"../../../../enums\";\nimport { useConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport CancelTimeResDialogFormView from \"./CloseTimeResDialogFormView\";\nimport { getDefinition as getCancelTimeResDefinition } from \"./CloseTimeResDef\";\nimport { EntitySetName, IDeferredPlanEntity, IDocumentEntity, IDocumentItemEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction, isReceived } from \"../../Document.utils\";\nimport { FiscalYearStatusCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest, IBatchResult } from \"@odata/OData\";\nimport { isEqual } from \"lodash\";\nimport { getUtcDayjs } from \"../../../../types/Date\";\n\nimport { ODataError } from \"@odata/Data.types\";\n\nexport interface WithTimeResolution {\n onLineItemsAction?: (args: ISmartFastEntriesActionEvent, storage: FormStorage) => Promise;\n customResponseHandler: TCustomResponseHandler;\n shouldUseCustomResponseHandler: TShouldUseCustomResHandler;\n}\n\ninterface WithTimeResolutionProps {\n onLineItemsAction?: (args: ISmartFastEntriesActionEvent, storage: FormStorage) => Promise;\n customResponseHandler?: TCustomResponseHandler;\n shouldUseCustomResponseHandler?: TShouldUseCustomResHandler;\n}\n\ntype TWithTimeResolution

    = Omit & WithTimeResolutionProps;\n\nenum TimeResDialogType {\n New = \"New\",\n End = \"End\"\n}\n\nexport const withTimeResolution =

    (Component: React.ComponentType

    ): React.ComponentType> => {\n return React.forwardRef((props: TWithTimeResolution

    , ref) => {\n const { t, ready: tReady } = useTranslation(getDefinition.translationFiles);\n const documentStorage = useRef(null);\n const confDialog = useConfirmationDialog();\n\n const [dialogType, setDialogType] = useState(null);\n const [initialData, setInitialData] = useState>(null);\n\n const fnRemoveDeferredPlans = async (plansForRemoval: IDeferredPlanEntity[]) => {\n documentStorage.current.setBusy(true);\n documentStorage.current.refresh();\n\n const batch = documentStorage.current.oData.batch();\n const entityWrapper = batch.getEntitySetWrapper(EntitySetName.DeferredPlans);\n\n for (const deferredPlan of plansForRemoval) {\n entityWrapper.delete(deferredPlan.Id);\n }\n\n const result = await batch.execute();\n\n if (result[0]?.status === 200) {\n // docStorage.clearAndSetValueByPath(\"DeferredPlans\", []);\n // docStorage.data.origEntity.DeferredPlans = [];\n // docStorage.refresh();\n // this way, SmartTable in deferred plans tab will get updated as well\n await documentStorage.current.reload({\n preserveInfos: true\n });\n documentStorage.current.setFormAlert({\n status: Status.Success,\n title: t(\"Common:Validation.SuccessTitle\"),\n subTitle: t(\"TimeResolution:CloseForm.Removed\")\n });\n } else {\n documentStorage.current.handleOdataError({\n error: result[0].body as ODataError,\n bindingContext: documentStorage.current.data.bindingContext\n });\n documentStorage.current.setBusy(false);\n documentStorage.current.refresh();\n }\n };\n\n const handleLineItemsAction = useCallback(async (args: ISmartFastEntriesActionEvent, docStorage: FormStorage) => {\n let shouldInterrupt = false;\n\n documentStorage.current = docStorage;\n\n if (args.actionType === ActionType.Custom && args.customActionType === TIME_RES_ACTION) {\n // we should work with originalData => find original items for the selected items\n const items = docStorage.data.origEntity.Items.filter((origItem: IDocumentItemEntity) => args.items.find((item: IDocumentItemEntity) => item.Id === origItem.Id));\n\n setInitialData({\n OriginalDocument: docStorage.data.origEntity,\n OriginalDocumentItems: items.map((item: IDocumentItemEntity) => ({\n OriginalDocumentItem: item\n })),\n DateStart: docStorage.data.origEntity.DateAccountingTransaction,\n DateEnd: getUtcDayjs(docStorage.data.origEntity.DateAccountingTransaction).add(1, \"year\").toDate()\n });\n setDialogType(TimeResDialogType.New);\n shouldInterrupt = true;\n } else if (args.actionType === ActionType.Custom && args.customActionType === REMOVE_TIME_RES_ACTION) {\n const deferredPlans = docStorage.data.entity.DeferredPlans;\n\n // it should be enough to check that DateStart of each plan\n // is in Active FiscalYear\n const arePlansRemovable = () => {\n let plansRemovable = true;\n\n for (const plan of deferredPlans as IDeferredPlanEntity[]) {\n // it should be enough to check just first item\n const fiscalYearData = getFiscalDataCorrespondingToDateAccountingTransaction(docStorage, plan.DateStart);\n\n if (fiscalYearData?.fiscalYear && fiscalYearData.fiscalYear.StatusCode !== FiscalYearStatusCode.Active) {\n plansRemovable = false;\n break;\n }\n }\n\n return plansRemovable;\n };\n\n if (arePlansRemovable()) {\n handleTimeResRemove(docStorage);\n } else {\n handleTimeResEnd(docStorage);\n }\n\n shouldInterrupt = true;\n } else if (props.onLineItemsAction) {\n if (args.actionType === ActionType.Remove) {\n // if the line item has time resolution remove it\n const [removedItem] = args.affectedItems as IDocumentItemEntity[]; // todo: should we handle here multiple items?\n const deferredPlans = docStorage.data.entity.DeferredPlans as IDeferredPlanEntity[];\n const plan = deferredPlans?.find(plan => plan.OriginalDocumentItems.find(item => item.OriginalDocumentItem.Id === removedItem.Id));\n\n if (plan) {\n const isConfirmed = await confDialog.open({\n content: (\n <>\n \n {t(\"TimeResolution:CloseForm.CancelSingleText\")}\n \n

    \n \n {t(\"TimeResolution:CloseForm.ConfirmationText\")}\n \n \n )\n });\n\n if (!isConfirmed) {\n shouldInterrupt = true;\n } else {\n await fnRemoveDeferredPlans([plan]);\n }\n }\n }\n\n if (!shouldInterrupt) {\n // to enable chaining of multiple HOC wrappers, we need to propagate onLineItemsAction\n shouldInterrupt = await props.onLineItemsAction(args, docStorage);\n }\n }\n\n return shouldInterrupt;\n }, [tReady]);\n\n const handleTimeResRemove = useCallback(async (docStorage: FormStorage) => {\n documentStorage.current = docStorage;\n\n const isConfirmed = await confDialog.open({\n content: (\n <>\n \n {t(\"TimeResolution:CloseForm.CancelText\")}\n \n

    \n \n {t(\"TimeResolution:CloseForm.ConfirmationText\")}\n \n \n )\n });\n\n if (!isConfirmed) {\n return;\n }\n\n await fnRemoveDeferredPlans(documentStorage.current.data.entity.DeferredPlans as IDeferredPlanEntity[]);\n }, [tReady]);\n\n const handleTimeResEnd = useCallback(async (docStorage: FormStorage) => {\n documentStorage.current = docStorage;\n\n setInitialData({\n OriginalDocument: docStorage.data.entity\n });\n\n setDialogType(TimeResDialogType.End);\n }, []);\n\n const handleConfirm = useCallback(async (data: IDeferredPlanEntity) => {\n if (data) {\n const subTitle = dialogType === TimeResDialogType.New ? t(\"TimeResolution:Form.SaveSuccess\") : t(\"TimeResolution:EndForm.SaveSuccess\");\n\n setDialogType(null);\n await documentStorage.current.reload({\n preserveInfos: true\n });\n documentStorage.current.setFormAlert({\n status: Status.Success,\n title: t(\"Common:Validation.SuccessTitle\"),\n subTitle: subTitle\n });\n // TODO don't reload whole form, just fill the data with the returned \"data\"\n // once BE is able to return even navigation properties as a result of POST request\n // const deferredPlans = [...(documentStorage.current.data.entity.DeferredPlans ?? []), data];\n // documentStorage.current.setValueByPath(\"DeferredPlans\", deferredPlans);\n // documentStorage.current.data.origEntity.DeferredPlans = deferredPlans;\n // documentStorage.current.refresh();\n }\n }, [tReady]);\n\n const handleClose = useCallback(() => {\n setDialogType(null);\n }, []);\n\n const shouldUseCustomResponseHandler = useCallback(\n (batchResults: IBatchResult[]) => {\n // to enable chaining of multiple HOC wrappers, we need to propagate shouldUseCustomResponseHandler\n if (props.shouldUseCustomResponseHandler) {\n const should = props.shouldUseCustomResponseHandler(batchResults);\n\n if (should) {\n return true;\n }\n }\n\n if (batchResults[0].status < 300) {\n return false;\n }\n\n const err = batchResults[0].body as ODataError;\n const code = err?._validationMessages?.[0]?.code;\n\n return [\"DeferredPlanNeedsToBeRecalculated\", \"AccountAssignmentSelectionOfDocumentItemIsAssociatedWithDeferredPlanCannotBeChanged\"].includes(code);\n\n }, []);\n\n const customResponseHandler: TCustomResponseHandler = useCallback(\n async (batchResults: IBatchResult[], args: IValidateAndSave, docStorage: FormStorage) => {\n const err = batchResults[0].body as ODataError;\n const code = err?._validationMessages?.[0]?.code;\n\n if (code === \"DeferredPlanNeedsToBeRecalculated\") {\n const isConfirmed = await confDialog.open({\n confirmText: t(\"TimeResolution:DialogRecalculate.ConfirmAction\"),\n content: (\n <>\n {t(\"TimeResolution:DialogRecalculate.Description\")}\n

    \n {t(\"TimeResolution:DialogRecalculate.ConfirmQuestion\")}\n \n )\n });\n\n if (!isConfirmed) {\n return null;\n }\n\n return await docStorage.validateAndSave({\n ...args,\n queryParams: {\n ...args.queryParams,\n forceDeferredPlanRecalculation: true\n }\n });\n } else if (code === \"AccountAssignmentSelectionOfDocumentItemIsAssociatedWithDeferredPlanCannotBeChanged\") {\n const isConfirmed = await confDialog.open({\n confirmText: t(\"TimeResolution:DialogAccAssChanged.ConfirmAction\"),\n content: (\n <>\n {t(\"TimeResolution:DialogAccAssChanged.Description\")}\n

    \n {t(\"TimeResolution:DialogAccAssChanged.ConfirmQuestion\")}\n \n )\n });\n\n if (!isConfirmed) {\n return null;\n }\n\n return await docStorage.validateAndSave({\n ...args,\n onBeforeExecute: async (batch: BatchRequest) => {\n args.onBeforeExecute?.(batch);\n\n const queryableEntity = batch.fromPath(EntitySetName.DeferredPlans);\n const entity: IDocumentEntity = docStorage.data.entity;\n const items: IDocumentItemEntity[] = docStorage.data.entity.Items;\n const origItems: IDocumentItemEntity[] = docStorage.data.origEntity.Items;\n const plansForRemoval: number[] = [];\n\n // only remove deferredPlans for items with changed account assignment\n // or for removed items.\n // the item also has to have plan...\n for (const origItem of origItems) {\n const currentItem = items.find(item => item.Id === origItem.Id);\n const origAccAss = { ...origItem.AccountAssignmentSelection };\n const currentAccAss = { ...currentItem.AccountAssignmentSelection };\n\n // don't compare AccountAssignment.Id, that is somehow changed dynamically in doc form view\n delete origAccAss.AccountAssignment.Id;\n delete currentAccAss.AccountAssignment.Id;\n\n if (!currentItem || !isEqual(origItem.AccountAssignmentSelection, currentItem.AccountAssignmentSelection)) {\n const plan = getDeferredPlanForItem(entity.DeferredPlans, origItem.Id);\n\n if (plan && !plansForRemoval.includes(plan.Id)) {\n plansForRemoval.push(plan.Id);\n }\n }\n }\n\n for (const deferredPlanId of plansForRemoval) {\n queryableEntity.delete(deferredPlanId, { index: 0 });\n }\n }\n });\n } else if (props.customResponseHandler) {\n // to enable chaining of multiple HOC wrappers, we need to propagate customResponseHandler\n return props.customResponseHandler(batchResults, args, docStorage);\n }\n }, []);\n\n return (\n <>\n \n {dialogType &&\n \n }\n \n );\n }) as any;\n};","import { withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { ConditionType, createFilterRow } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TId } from \"@components/table\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { getNewItemsMaxId, setNestedValue } from \"@odata/Data.utils\";\nimport {\n EntityTypeName,\n IInternalDocumentEntity,\n IInternalDocumentItemEntity,\n IPayingDocumentEntity,\n IPaymentDocumentItemEntity,\n PayingDocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, CompanyPermissionCode, DocumentTypeCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport { isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React, { ReactElement } from \"react\";\n\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { SAVED_VATS_PATH } from \"../../admin/vatRules/VatRules.utils\";\nimport { docOnlyAmountPaidFormatter } from \"../../banks/bankTransactions/BankTransactionDocumentPairDef\";\nimport { IBankCustomData } from \"../../banks/bankTransactions/BankTransactions.utils\";\nimport { getCorrectExchangeRate, getCorrectTranAmount } from \"../../banks/Pair.utils\";\nimport { AmountDialog } from \"../../banks/PairTableAmountDialog\";\nimport {\n IPairTableViewBaseProps,\n IPaymentDocumentItemEntityExpanded,\n PairTableViewBaseForExtend\n} from \"../../banks/PairTableViewBase\";\nimport { DocumentStatusLocalPath, getStatusFilterId } from \"../../reports/CommonDefs\";\n\nclass InternalDocumentPairTableView extends PairTableViewBaseForExtend {\n constructor(props: IPairTableViewBaseProps) {\n super(props);\n\n this.presetDefaultFilters = this.presetDefaultFilters.bind(this);\n\n this.presetDefaultFilters();\n }\n\n getAmountPaidFormatterFn = () => {\n return docOnlyAmountPaidFormatter;\n };\n\n setOriginItems(): void {\n const { rootStorage, storage } = this.props;\n const entity: IInternalDocumentEntity = rootStorage.data.entity;\n const pairedDocuments: Record = {};\n\n for (const item of (entity.Items || [])) {\n if (item.LinkedDocument?.Id) {\n const key = item.LinkedDocument.Id;\n pairedDocuments[key] = {\n ...pairedDocuments[key],\n Description: item.Description,\n LinkedDocument: item.LinkedDocument,\n Amount: item.Amount,\n Id: item.Id,\n TransactionAmount: item.TransactionAmount,\n AccountAssignmentSelection: item.AccountAssignmentSelection\n };\n }\n }\n\n this.origPairedDocuments = { ...pairedDocuments };\n\n storage.setCustomData({\n rootStorage,\n pairedDocuments\n });\n\n (rootStorage as FormStorage).setCustomData({\n pairedStorage: storage\n });\n }\n\n savePairChanges = async (storage: FormStorage, pairedDocs: Record): Promise => {\n const entity = storage.data.entity as IInternalDocumentEntity;\n if (!entity.Items) {\n entity.Items = [];\n }\n\n const items = entity.Items.filter((item: IEntity) => !item.LinkedDocument?.Id);\n const newItems = [];\n\n let maxId = getNewItemsMaxId(entity.Items) + 1;\n\n for (const [key, link] of Object.entries(pairedDocs)) {\n let item = entity.Items.find((item) => item.LinkedDocument?.Id?.toString() === key);\n let isNew = false;\n\n if (!item) {\n isNew = true;\n item = BindingContext.createNewEntity(maxId++, link);\n }\n\n item.Description = item.Description ?? this.props.rootStorage.t(\"InternalDocument:Form.DocumentClearing\");\n item.Amount = link.Amount;\n item.TransactionAmount = link.TransactionAmount;\n item.TransactionCurrencyCode = (link as IInternalDocumentItemEntity).LinkedDocument.TransactionCurrencyCode;\n\n\n item.LinkedDocument = {\n ...item.LinkedDocument,\n ExchangeRatePerUnit: (link as IInternalDocumentItemEntity).LinkedDocument.ExchangeRatePerUnit\n };\n\n delete (item as IPaymentDocumentItemEntity).ExchangeRate;\n\n if (isObjectEmpty(item.AccountAssignmentSelection)) {\n item.AccountAssignmentSelection = {\n Selection: {\n Code: SelectionCode.Default\n },\n AccountAssignment: {\n ...this.props.rootStorage.getValueByPath(\"AccountAssignmentSelection/AccountAssignment\"),\n Id: SelectionCode.Default as unknown as number\n }\n };\n }\n\n\n if (isObjectEmpty(item.LabelSelection)) {\n item.LabelSelection = {\n SelectionCode: SelectionCode.Default\n };\n }\n\n setNestedValue(SelectionCode.Default, SAVED_VATS_PATH, item);\n isNew ? newItems.push(item) : items.push(item);\n }\n\n storage.data.entity.Items = [...items, ...newItems];\n storage.handleFirstChange();\n };\n\n presetDefaultFilters() {\n const storage = this.props.storage;\n\n storage.setFilterValueByPath(DocumentStatusLocalPath, [\n createFilterRow({\n type: ConditionType.Excluded,\n value: [\n getStatusFilterId(EntityTypeName.ClearedStatus, ClearedStatusCode.Cleared)\n ]\n })\n ]);\n\n storage.setFilterValueByPath(PayingDocumentEntity.DocumentType, [createFilterRow({\n value: [DocumentTypeCode.InvoiceReceived, DocumentTypeCode.InvoiceIssued,\n DocumentTypeCode.OtherLiability, DocumentTypeCode.OtherReceivable,\n DocumentTypeCode.CorrectiveInvoiceIssued, DocumentTypeCode.CorrectiveInvoiceReceived]\n })\n ]);\n\n this.props.storage.applyFilters();\n }\n\n canRowBePaired = (rowId: TId) => {\n const row = getRow(this.props.storage.tableAPI.getState().rows, rowId);\n const isPaired = !!this.origPairedDocuments?.[(rowId as BindingContext)?.getKey?.()];\n\n if (!isPaired && row?.customData) {\n const entity: IPayingDocumentEntity = row.customData.entity as IPayingDocumentEntity;\n const isNotCleared = entity.ClearedStatusCode !== ClearedStatusCode.Cleared;\n\n return isNotCleared;\n }\n\n return true;\n };\n\n get secondaryTitle(): string {\n return i18next.t(\"InternalDocument:Form.ClearedDocument\");\n }\n\n get successSubtitle(): string {\n return i18next.t(\"InternalDocument:Form.Paired\");\n }\n\n get addMenuConfiguration() {\n return [\n { id: \"InvoicesReceived\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"InvoicesIssued\", permission: CompanyPermissionCode.InvoicesIssued },\n { id: \"OtherLiabilities\", permission: CompanyPermissionCode.Reports },\n { id: \"OtherReceivables\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"CorrectiveInvoicesReceived\", permission: CompanyPermissionCode.InvoicesReceived },\n { id: \"CorrectiveInvoicesIssued\", permission: CompanyPermissionCode.InvoicesIssued }\n ];\n }\n\n handleRowPairClick = async (rowId: TId): Promise => {\n const bc = rowId as BindingContext;\n const key = bc.getKey();\n const pairedDoc = this.getPairedDocuments();\n\n if (pairedDoc[key]) {\n delete pairedDoc[key];\n } else {\n const type = this.props.rootStorage.oData.metadata.getTypeForPath(this.getRowEntitySet(bc));\n const row = getRow(this.props.storage.tableAPI.getState().rows, bc);\n const document = row?.customData?.entity;\n const numberOurs = document.NumberOurs;\n\n const docCurrency = document?.TransactionCurrency?.Code;\n const docAmount = getCorrectTranAmount(this.props.rootStorage, document.Id, document.TransactionAmountDue, docCurrency);\n const docDate = document?.DateAccountingTransaction;\n\n this.props.setBusy(true);\n\n const docExchangeRate = await getCorrectExchangeRate({\n id: document?.Id,\n date: docDate ?? getUtcDate(),\n currency: docCurrency\n }, this.props.storage.context);\n\n const amount = roundToDecimalPlaces(2, docAmount * docExchangeRate);\n const transactionAmount = docAmount;\n\n pairedDoc[key] = {\n Amount: amount,\n TransactionAmount: transactionAmount,\n LinkedDocument: {\n TransactionAmount: document?.TransactionAmount,\n ExchangeRatePerUnit: docExchangeRate,\n TransactionCurrencyCode: docCurrency,\n DateAccountingTransaction: docDate,\n TransactionCurrency: {\n Code: docCurrency\n },\n TransactionAmountDue: document?.TransactionAmountDue,\n Id: parseInt(key as string),\n NumberOurs: numberOurs as string,\n DocumentTypeCode: document?.DocumentType.Code,\n _metadata: {\n \"\": { type: `#${type.getFullName()}` }\n }\n }\n };\n }\n\n this.props.storage.setCustomData({ pairedDocuments: pairedDoc });\n this.props.setBusy(false);\n\n this.forceUpdate();\n this.rerenderTable();\n };\n\n // forceUpdate won't re-render table, because no table props has changed\n // call tableApi.forceUpdate directly, to re-render just the table\n rerenderTable = () => {\n this.props.storage.tableAPI.forceUpdate();\n };\n\n renderAmountDialog = (): ReactElement => {\n return {\n this.needConfirmDialog = null;\n this.forceUpdate();\n this.rerenderTable();\n }}\n storage={this.props.storage}/>;\n };\n}\n\nexport default withPermissionContext(withBusyIndicator({ isDelayed: true, passBusyIndicator: true })(InternalDocumentPairTableView));","import { DocumentFormViewForExtend } from \"../DocumentFormView\";\nimport { IDocumentCustomData, IDocumentExtendedEntity } from \"../DocumentInterfaces\";\nimport { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentLinkTypeCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { WithDomManipulator, withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ADD_CLEARING_ITEM } from \"./InternalDocumentDef\";\nimport { AccountAssignmentDialog } from \"../../accountAssignment/AccountAssignmentDialog\";\nimport React, { ReactElement } from \"react\";\nimport Dialog from \"../../../components/dialog/Dialog\";\nimport DialogPage from \"../../DialogPage\";\nimport { PageViewMode } from \"../../../enums\";\nimport { getDefinitions } from \"./InternalDocumentPairDef\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport InternalDocumentPairTableView from \"./InternalDocumentPairTableView\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { cloneDeep } from \"lodash\";\nimport { DocumentEntity, IInternalDocumentEntity, InternalDocumentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { IFormViewProps } from \"../../../views/formView/FormView\";\nimport { WithMinorAssetPairing } from \"../../asset/minorAsset/withMinorAssetPairing\";\nimport { WithTimeResolution } from \"../extensions/timeResolution/withTimeResolution\";\nimport { WithAccruals } from \"../extensions/accruals/withAccruals\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { WithPromisedComponent, withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\nexport enum IDItemPairingDataValues {\n PairedDialogOpened = \"pairedDialogOpened\",\n}\n\ninterface IInternalDocumentCustomData extends IDocumentCustomData {\n pairedDialogOpened?: boolean;\n}\n\ninterface IInternalDocumentFormViewProps extends IFormViewProps, WithConfirmationDialog,\n WithMinorAssetPairing, WithTimeResolution, WithAccruals, WithDomManipulator, WithPromisedComponent {\n}\n\n\nclass InternalDocumentFormView extends DocumentFormViewForExtend {\n documentTypeCode = DocumentTypeCode.InternalDocument;\n\n get datePropForNumberRange(): string {\n if (isCashBasisAccountingCompany(this.context)) {\n return InternalDocumentEntity.DateCbaEntry;\n }\n return DocumentEntity.DateAccountingTransaction;\n }\n\n\n prepareSavedAccounts = () => {\n // override document form => we don't want this to be called for InternalDocument\n };\n\n handleCustomLineItemAction = async (args: ISmartFastEntriesActionEvent): Promise => {\n if (args.customActionType === ADD_CLEARING_ITEM) {\n this.props.storage.setCustomData({ pairedDialogOpened: true });\n this.props.storage.refresh();\n }\n };\n\n handleClosePairing = () => {\n const { storage } = this.props;\n storage.setCustomData({ [IDItemPairingDataValues.PairedDialogOpened]: false });\n storage.clearEmptyLineItems(\"Items\");\n storage.refresh();\n };\n\n handleLineAmountChange = (args: ISmartFieldChange) => {\n if (args.bindingContext.getPath() === \"Amount\") {\n const bc = args.bindingContext.getParent();\n const item = this.props.storage.getValue(bc);\n const exchangeRate = item.LinkedDocument?.ExchangeRatePerUnit ?? 1;\n const transValue = roundToDecimalPlaces(2, Number(args.value) / exchangeRate);\n\n this.props.storage.setValue(bc.navigate(\"TransactionAmount\"), transValue);\n }\n };\n\n handleLineItemsChange(args: ISmartFieldChange): void {\n super.handleLineItemsChange(args);\n\n this.handleLineAmountChange(args);\n }\n\n renderClearingDialog = (): ReactElement => {\n const storage = this.props.storage;\n\n if (!storage.getCustomData().pairedDialogOpened) {\n return null;\n }\n return \n \n ;\n };\n\n onBeforeSave(data: IInternalDocumentEntity): IEntity {\n const entity = cloneDeep(data);\n // don't change DocumentLinks of other types, we just manage InternalDocumentClearing here\n const documentLinks = (entity.DocumentLinks ?? []).filter(link => link.TypeCode !== DocumentLinkTypeCode.InternalDocumentClearing);\n\n for (const item of entity.Items) {\n if (item.LinkedDocument?.Id) {\n const documentLink = entity.DocumentLinks?.find(link => link.TargetDocument?.Id === item.LinkedDocument.Id);\n\n if (documentLink) {\n documentLinks.push({\n ...documentLink,\n TransactionAmount: item.TransactionAmount\n });\n } else {\n documentLinks.push({\n TypeCode: DocumentLinkTypeCode.InternalDocumentClearing,\n TransactionAmount: item.TransactionAmount,\n TargetDocument: item.LinkedDocument\n });\n }\n }\n\n item.AmountNet = item.Amount;\n item.TransactionAmountNet = item.TransactionAmount;\n\n if (isNotDefined(item.TransactionAmountVat)) {\n item.TransactionAmountVat = 0;\n }\n }\n\n entity.DocumentLinks = documentLinks;\n\n return entity;\n }\n\n render() {\n if (!this.isReady()) {\n return null;\n }\n\n return (\n <>\n {this.renderForm()}\n \n {this.renderCustomCbaCategoryDialog()}\n {this.renderVatDialog()}\n {this.renderClearingDialog()}\n \n );\n }\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withPermissionContext(withDomManipulator(InternalDocumentFormView))));\n","import { IFieldDef, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getLinks, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { TCellValue } from \"@components/table\";\nimport {\n CbaCategoryEntity,\n CbaEntryEntity,\n ClearedStatusEntity,\n DocumentAccountAssignmentEntity,\n DocumentAccountAssignmentSelectionEntity,\n DocumentEntity,\n DocumentLinkEntity,\n EntitySetName,\n EntityTypeName,\n IInternalDocumentItemEntity,\n InternalDocumentEntity,\n InternalDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n CbaCategoryTaxImpactCode,\n CbaEntryTypeCode,\n CompanyPermissionCode,\n DocumentTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n accruedExpenseFilter,\n accruedRevenueFilter,\n excludeInitialBalancesFilter,\n FUTURE_EXPENSES_ACCOUNT,\n FUTURE_REVENUES_ACCOUNT,\n getOpenAccrualFilter\n} from \"@utils/accounting\";\nimport { isAccountAssignmentCompany, isCashBasisAccountingCompany, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert, isDefined, isObjectEmpty } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { EditableTextSizes, FastEntryInputSizes, FieldType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { createPath } from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IChangedFilter } from \"../../../views/table/TableView.utils\";\nimport {\n getAccAssignmentGroup,\n getDocumentFilterByUsedAccountNumber\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport { addAssetDef, AssetTranslations } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { SAVED_ACCOUNTS_PATH } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { isPairAmountReadOnly } from \"../../banks/Pair.utils\";\nimport {\n CBA_CATEGORY_PATH,\n CbaSelectionCode,\n getCashBasisAccountingGroup\n} from \"../../cashBasisAccounting/CashBasisAccounting.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport {\n commonDocumentTranslations,\n getCurrencyUnit,\n readOnlyCurrencyItemFormatter,\n VAT_ASSIGNMENT_GROUP_ID\n} from \"../Document.utils\";\nimport { addAccountAssignmentTableDefs, draftInfoPath } from \"../DocumentCommonDefs\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../DocumentDef\";\nimport { addAccrualsDef } from \"../extensions/accruals/Accruals.utils\";\nimport { getTimeResTab } from \"../extensions/timeResolution/TimeResolution.utils\";\nimport InternalDocumentFormView from \"./InternalDocumentFormView\";\n\nexport const ADD_CLEARING_ITEM = \"addClearingItem\";\nexport const ACCRUED_DOCUMENTS_FILTERNAME = \"##AccruedDocuments##\";\nexport const EXPENSES_AND_REVENUES_FILTERNAME = \"##ExpensesAndRevenuesFilter##\";\n\nexport enum AccrualFilterTypes {\n Open = \"Open\",\n Closed = \"Closed\",\n Passive = \"Passive\",\n Active = \"Active\"\n}\n\nexport enum ExpensesAndRevenuesFilterTypes {\n Expenses = \"Expenses\",\n Revenues = \"Revenues\"\n}\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.InternalDocuments,\n documentType: DocumentTypeCode.InternalDocument,\n tableId: `${EntityTypeName.InternalDocument}Table`,\n formId: `${EntityTypeName.InternalDocument}Form`,\n formControl: InternalDocumentFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"InternalDocument:Breadcrumbs.New\"),\n storage.data.entity?.NumberOurs && i18next.t(\"InternalDocument:Breadcrumbs.WithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InternalAndCorrectiveDocuments],\n context\n }));\n\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n const isCbaCompany = isCashBasisAccountingCompany(context);\n\n delete definition.form.fieldDefinition[SAVED_ACCOUNTS_PATH];\n\n definition.form.fieldDefinition[InternalDocumentEntity.TransactionCurrency].isReadOnly = true;\n\n delete definition.table.additionalProperties;\n definition.form.additionalProperties = [\n ...(definition.form.additionalProperties ?? []),\n { id: createPath(InternalDocumentEntity.DocumentLinks, DocumentLinkEntity.Type) },\n { id: createPath(InternalDocumentEntity.DocumentLinks, DocumentLinkEntity.Amount) },\n { id: createPath(InternalDocumentEntity.DocumentLinks, DocumentLinkEntity.TargetDocument) }\n ];\n\n definition.table.columns = [\n draftInfoPath,\n InternalDocumentEntity.NumberOurs,\n InternalDocumentEntity.DateCreated,\n InternalDocumentEntity.Amount,\n InternalDocumentEntity.Explanation,\n InternalDocumentEntity.Attachments,\n InternalDocumentEntity.Note\n ];\n definition.table.columnDefinition.Explanation = { id: InternalDocumentEntity.Explanation };\n delete definition.table.tabs;\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n Explanation: {}\n };\n\n if (hasAccountAssignment) {\n const numberOursIndex = definition.table.columns.findIndex(col => col === InternalDocumentEntity.NumberOurs);\n\n definition.table.columns = arrayInsert(definition.table.columns, InternalDocumentEntity.DateAccountingTransaction, numberOursIndex + 1);\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n [ACCRUED_DOCUMENTS_FILTERNAME]: {\n label: i18next.t(\"InternalDocument:Form.Accruals\"),\n type: FieldType.MultiSelect,\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"InternalDocument:Form.OpenAccruals\"),\n id: AccrualFilterTypes.Open\n },\n {\n label: i18next.t(\"InternalDocument:Form.ClosedAccruals\"),\n id: AccrualFilterTypes.Closed\n },\n {\n label: i18next.t(\"InternalDocument:Form.ActiveAccruals\"),\n id: AccrualFilterTypes.Active\n },\n {\n label: i18next.t(\"InternalDocument:Form.PassiveAccruals\"),\n id: AccrualFilterTypes.Passive\n }\n ]\n },\n isValueHelp: false,\n filter: {\n buildFilter: (item: IChangedFilter): string => {\n const filterValues = (Array.isArray(item.value) ? item.value : [item.value]) as AccrualFilterTypes[];\n\n const orFilters = [];\n const andFilters = [];\n\n if (filterValues.includes(AccrualFilterTypes.Active)) {\n orFilters.push(accruedRevenueFilter);\n }\n if (filterValues.includes(AccrualFilterTypes.Passive)) {\n orFilters.push(accruedExpenseFilter);\n }\n\n const isOpen = filterValues.includes(AccrualFilterTypes.Open);\n const isClosed = filterValues.includes(AccrualFilterTypes.Closed);\n if (isOpen && isClosed) {\n // this means \"all\" -> use not filter\n } else if (isClosed) {\n andFilters.push(getOpenAccrualFilter(false));\n } else if (isOpen) {\n andFilters.push(getOpenAccrualFilter());\n }\n\n // if user selects open, closed of both and nothing else, he wants to see accruals (not all ID),\n // so we add implicitly both conditions for accruals if not present\n if (!orFilters.length && andFilters.length) {\n orFilters.push(accruedExpenseFilter, accruedRevenueFilter);\n }\n\n if (orFilters.length) {\n andFilters.push(`(${orFilters.join(\" OR \")})`);\n }\n return andFilters.length ? `(${andFilters.join(\" AND \")} AND ${excludeInitialBalancesFilter})` : \"\";\n }\n }\n },\n [EXPENSES_AND_REVENUES_FILTERNAME]: {\n label: i18next.t(\"InternalDocument:Form.ExpensesAndRevenues\"),\n type: FieldType.MultiSelect,\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"InternalDocument:Form.Expenses\"),\n id: ExpensesAndRevenuesFilterTypes.Expenses\n },\n {\n label: i18next.t(\"InternalDocument:Form.Revenues\"),\n id: ExpensesAndRevenuesFilterTypes.Revenues\n }\n ]\n },\n isValueHelp: false,\n filter: {\n buildFilter: (item: IChangedFilter): string => {\n const filterValues = (Array.isArray(item.value) ? item.value : [item.value]) as ExpensesAndRevenuesFilterTypes[];\n\n const filters = [];\n\n if (filterValues.includes(ExpensesAndRevenuesFilterTypes.Expenses)) {\n filters.push(getDocumentFilterByUsedAccountNumber(DocumentAccountAssignmentEntity.CreditAccount, FUTURE_EXPENSES_ACCOUNT));\n }\n if (filterValues.includes(ExpensesAndRevenuesFilterTypes.Revenues)) {\n filters.push(getDocumentFilterByUsedAccountNumber(DocumentAccountAssignmentEntity.DebitAccount, FUTURE_REVENUES_ACCOUNT));\n }\n\n return filters.length ? `((${filters.join(\" OR \")}) AND ${excludeInitialBalancesFilter})` : \"\";\n }\n }\n }\n };\n } else if (isCbaCompany) {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n \"DateCbaEntry\": {},\n ...withDisplayName(InternalDocumentEntity.CbaEntryType)\n };\n definition.table.columns = arrayInsert(definition.table.columns, InternalDocumentEntity.DateCbaEntry, 2);\n }\n\n definition.table.filterBarDef[0].filterDefinition[createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.Amount)] = {\n label: i18next.t(\"Common:General.Amount\")\n };\n\n definition.form.summary = definition.form.summary.filter((item) => item.id !== createPath(InternalDocumentEntity.ClearedStatus, ClearedStatusEntity.Code));\n\n const itemsGroup = {\n ...definition.form.groups.find(group => group.id === \"Items\")\n };\n\n definition.form.fieldDefinition[createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.Amount)] = {\n label: i18next.t(\"Common:General.Amount\"),\n additionalProperties: [{ id: `/${createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.TransactionAmount)}` }, { id: `/${createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.TransactionCurrencyCode)}` }],\n width: FastEntryInputSizes.S,\n isReadOnly: (args: IGetValueArgs) => {\n return isPairAmountReadOnly(args.storage as FormStorage, args.bindingContext);\n },\n formatter: readOnlyCurrencyItemFormatter,\n fieldSettings: {\n unit: getCurrencyUnit\n }\n };\n\n definition.form.fieldDefinition[createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.Note)] = {};\n definition.form.fieldDefinition[createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.LinkedDocument, DocumentEntity.NumberOurs)] = {\n additionalProperties: [{ id: `/${createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.LinkedDocument, DocumentEntity.DocumentTypeCode)}` }],\n isVisible: args => {\n return args.storage.data.entity?.Items?.some((item: IInternalDocumentItemEntity) => !!item.LinkedDocument?.Id);\n },\n formatter: (val: TValue, args?: IFormatOptions) => {\n const row = args.storage.getValue(args.bindingContext.getParent());\n const code = getLinks(args, [{\n LinkedDocument: row\n }]);\n\n return code.fragment as TCellValue;\n },\n label: i18next.t(\"Document:FormTab.PairedDocument\"),\n isRequired: false,\n isReadOnly: true,\n customizationData: {\n useForCustomization: hasAccountAssignment\n }\n };\n definition.form.fieldDefinition[createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.TransactionCurrencyCode)] = {\n clearIfInvisible: false,\n customizationData: {\n useForCustomization: false\n }\n };\n\n itemsGroup.lineItems.columns = [\n { id: InternalDocumentItemEntity.Description },\n { id: InternalDocumentItemEntity.Amount },\n { id: createPath(InternalDocumentItemEntity.LinkedDocument, DocumentEntity.NumberOurs) }\n ];\n\n itemsGroup.lineItems.isItemCloneable = args => {\n return isObjectEmpty(args.item.LinkedDocument);\n };\n\n if (hasAccountAssignment) {\n definition.table.filterBarDef[0].defaultFilters.splice(1, 0, InternalDocumentEntity.DateAccountingTransaction);\n\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns,\n { id: createPath(InternalDocumentItemEntity.AccountAssignmentSelection, DocumentAccountAssignmentSelectionEntity.AccountAssignment) },\n 2);\n\n itemsGroup.lineItems.customActionButtons = [{\n id: ADD_CLEARING_ITEM,\n title: i18next.t(\"Document:Form.AddClearingItem\"),\n isDisabled: args => {\n return args.storage.isDisabled || !!(args.storage as FormStorage).getBackendDisabledFieldMetadata(args.storage.data.bindingContext.navigate(\"Items\"));\n }\n }];\n } else if (isCbaCompany) {\n const additionalItems = definition.form.fieldDefinition[`Items/${CBA_CATEGORY_PATH}`].fieldSettings.additionalItems;\n const ownIndex = additionalItems?.findIndex(item => item.id === CbaSelectionCode.Own);\n const idx = isDefined(ownIndex) ? ownIndex : additionalItems.length - 1;\n if (isVatRegisteredCompany(context)) {\n additionalItems.splice(idx, 0, {\n id: CbaCategoryTaxImpactCode.VATCorrection,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.VatCorr\")\n });\n const taxImpactPaths = [\n createPath(InternalDocumentEntity.CbaCategory, CbaCategoryEntity.TaxImpact),\n createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.CbaCategory, CbaCategoryEntity.TaxImpact)\n ];\n taxImpactPaths.forEach(path => {\n definition.form.fieldDefinition[path].fieldSettings.items.push({\n id: CbaCategoryTaxImpactCode.VATCorrection,\n label: i18next.t(\"Categories:CbaCategoryTaxImpactCode.VatCorr\")\n });\n });\n }\n\n itemsGroup.lineItems.columns = arrayInsert(itemsGroup.lineItems.columns, { id: CBA_CATEGORY_PATH }, 2);\n definition.table.filterBarDef[0].defaultFilters.splice(1, 0, InternalDocumentEntity.DateCbaEntry);\n }\n\n definition.form.additionalProperties = [\n ...definition.form.additionalProperties,\n {\n id: createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.LinkedDocument, DocumentEntity.ExchangeRatePerUnit)\n }, {\n id: createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.LinkedDocument, DocumentEntity.TransactionAmount)\n }, {\n id: createPath(InternalDocumentEntity.Items, InternalDocumentItemEntity.LinkedDocument, DocumentEntity.ClearedStatusCode)\n }\n ];\n\n definition.form.fieldDefinition[InternalDocumentEntity.Explanation] = {\n id: \"Explanation\",\n type: FieldType.EditableText,\n isConfirmable: true,\n isRequired: true,\n width: EditableTextSizes.M,\n fieldSettings: {\n placeholder: i18next.t(\"InternalDocument:Form.ExplanationPlaceholder\")\n }\n };\n\n const vatsGroup = definition.form.groups.find(group => group.id === VAT_ASSIGNMENT_GROUP_ID);\n // Vat fields should not be in the form by default, but let keep the empty group to make life easier\n // when user want to add some fields\n if (vatsGroup) {\n vatsGroup.rows = [[]];\n }\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n\n if (isCbaCompany) {\n const cbaEntryTabDef = tabsGroup.tabs.find(group => group.id.startsWith(\"cbaEntryLedger_\"));\n cbaEntryTabDef.table.parentKey = `${CbaEntryEntity.InternalDocument}/Id`;\n }\n\n tabsGroup.tabs.push(getTimeResTab(EntitySetName.InternalDocuments, true));\n\n definition.form.groups = [\n definition.form.groups.find(group => group.id === \"Note\"),\n vatsGroup,\n itemsGroup,\n tabsGroup\n ].filter(val => val);\n\n\n if (hasAccountAssignment) {\n const informationGroupRows: IFieldDef[][] = [[\n { id: InternalDocumentEntity.DateAccountingTransaction },\n { id: InternalDocumentEntity.TransactionCurrency },\n { id: InternalDocumentEntity.Labels }\n ], [\n { id: InternalDocumentEntity.Explanation }\n ]];\n\n // has to have id \"Vat\" to be controlled by DocumentFormView.handleAccAssignmentChange\n const informationGroup: IFormGroupDef = {\n id: \"Information\",\n title: i18next.t(\"InternalDocument:Form.InformationGroup\"),\n isSmallBottomMargin: true,\n rows: informationGroupRows\n };\n\n\n definition.form.groups = arrayInsert(definition.form.groups, informationGroup, 1);\n definition.form.groups = arrayInsert(definition.form.groups, {\n ...getAccAssignmentGroup()\n }, 2);\n\n addAccountAssignmentTableDefs(definition);\n } else if (isCbaCompany) {\n const selectItems = getEnumSelectItems(EntityTypeName.CbaEntryType);\n definition.form.fieldDefinition[InternalDocumentEntity.CbaEntryType] = {\n type: FieldType.SegmentedButton,\n defaultValue: CbaEntryTypeCode.Expense,\n fieldSettings: {\n displayName: \"Name\",\n items: [\n selectItems.find(i => i.id === CbaEntryTypeCode.Income),\n selectItems.find(i => i.id === CbaEntryTypeCode.Expense)\n ]\n }\n };\n\n definition.form.fieldDefinition[InternalDocumentEntity.DateCbaEntry] = {\n isRequired: true,\n defaultValue: getUtcDate()\n };\n\n const informationGroup: IFormGroupDef = {\n id: \"Information\",\n title: i18next.t(\"InternalDocument:Form.InformationGroup\"),\n isSmallBottomMargin: true,\n rows: [[\n { id: InternalDocumentEntity.CbaEntryType },\n { id: InternalDocumentEntity.DateCbaEntry },\n { id: InternalDocumentEntity.TransactionCurrency },\n { id: InternalDocumentEntity.Labels }\n ], [\n { id: InternalDocumentEntity.Explanation }\n ]]\n };\n\n definition.form.groups = arrayInsert(definition.form.groups, informationGroup, 1);\n definition.form.groups = arrayInsert(definition.form.groups, {\n ...getCashBasisAccountingGroup()\n }, 2);\n }\n\n addAssetDef(definition);\n addAccrualsDef(definition, { isExpense: true, isRevenue: true });\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"InternalDocument\", ...AssetTranslations, ...commonDocumentTranslations, getEnumNameSpaceName(EntityTypeName.CbaEntryType)];\nsetDefByEntityType(EntityTypeName.InternalDocument, getDefinitions);","import { getCommonTableColumnsDefs, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { docOnlyAmountPaidFormatter } from \"../../banks/bankTransactions/BankTransactionDocumentPairDef\";\nimport { IDefinition } from \"../../PageUtils\";\nimport { DocumentStatusLocalPath } from \"../../reports/CommonDefs\";\nimport { getDocumentStatusColumnDefinition } from \"../DocumentCommonDefs\";\nimport { getDocumentStatusFilterDefinition, getUsedStatuses } from \"../DocumentDef\";\n\n\nexport const getDefinitions = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n \"ClearedStatus\",\n \"DocumentType\",\n \"NumberOurs\",\n \"TransactionAmount\",\n \"TransactionCurrency\",\n \"BusinessPartner\",\n \"TransactionAmountToPay\",\n \"TransactionAmountToReceive\",\n DocumentStatusLocalPath\n ],\n filterDefinition: {\n TransactionAmountToPay: {},\n TransactionAmountToReceive: {},\n ...getDocumentStatusFilterDefinition(getUsedStatuses(context)),\n ...withDisplayName(\"DocumentType\"),\n NumberOurs: {},\n TransactionAmount: {},\n ...withDisplayName(\"BusinessPartner\"),\n ...withDisplayName(\"TransactionCurrency\", \"Name\"),\n \"BusinessPartner/Street\": {},\n \"BusinessPartner/City\": {},\n \"BusinessPartner/PostalCode\": {},\n \"BusinessPartner/Country\": {},\n \"BusinessPartner/FirstName\": {},\n \"BusinessPartner/LastName\": {},\n \"BusinessPartner/Email\": {},\n \"BusinessPartner/PhoneNumber\": {}\n }\n }];\n\n const accAssAdditionalProperties = hasAccountAssignment ? [{ id: \"AccountAssignment\" }, { id: \"AccountAssignment/ShortName\" },\n { id: \"AccountAssignment/CreditAccount/Id\" }, { id: \"AccountAssignment/DebitAccount/Id\" }, { id: \"AccountAssignment/CreditAccount/Name\" },\n { id: \"AccountAssignment/CreditAccount/Number\" }, { id: \"AccountAssignment/DebitAccount/Name\" },\n { id: \"AccountAssignment/DebitAccount/Number\" }] : [];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n preventStoreVariant: true,\n id: \"TransactionDocumentPairingSpecialTable\",\n additionalProperties: [{ id: \"TransactionCurrency\" }, { id: \"TransactionCurrency/MinorUnit\" }, { id: \"Currency\" },\n { id: \"TransactionAmountDue\" }, { id: \"ExchangeRatePerUnit\" }, { id: \"Amount\" }, { id: \"TransactionAmount\" },\n { id: \"DateAccountingTransaction\" }, ...accAssAdditionalProperties],\n columnDefinition: {\n TransactionAmountToPay: {},\n TransactionAmountToReceive: {},\n NumberOurs: { id: \"NumberOurs\" },\n DateDue: { id: \"DateDue\" },\n PaymentMethodCode: { id: \"PaymentMethodCode\" },\n SymbolVariable: {},\n \"BankAccount/AccountNumber\": {},\n \"BankAccount/BankCode\": {},\n TransactionAmountDue: {\n // formatter: bankAmountDueFormatter\n },\n Note: { id: \"Note\" },\n ...getDocumentStatusColumnDefinition(),\n BusinessPartner: {\n id: \"BusinessPartner\",\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n ...getCommonTableColumnsDefs(),\n DocumentType: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n DateIssued: {},\n [BindingContext.localContext(\"AmountPaid\")]: {\n label: i18next.t(\"Banks:Pairing.AmountPaid\"),\n fieldSettings: {\n disableSort: true\n },\n formatter: docOnlyAmountPaidFormatter\n }\n },\n columns: [\n \"DocumentType\",\n \"DateIssued\",\n \"NumberOurs\",\n BindingContext.localContext(\"AmountPaid\"),\n \"TransactionAmountDue\",\n DocumentStatusLocalPath,\n \"SymbolVariable\",\n \"BusinessPartner\"\n ],\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Desc }]\n };\n\n if (hasAccountAssignment) {\n table.columnDefinition.AccountAssignment = {\n additionalProperties: [{ id: \"ShortName\" }, { id: \"CreditAccount/Id\" }, { id: \"DebitAccount/Id\" }, { id: \"CreditAccount/Name\" }, { id: \"CreditAccount/Number\" }, { id: \"DebitAccount/Name\" }, { id: \"DebitAccount/Number\" }],\n formatter: (val: TValue, args: IFormatOptions) => {\n const value = args.item.AccountAssignment?.ShortName;\n return {\n value: <>{value},\n tooltip: value\n };\n }\n };\n }\n\n return {\n entitySet: EntitySetName.PayingDocuments,\n table\n };\n};","import { getWorkDate } from \"@components/inputs/date/utils\";\nimport { EntitySetName, EntityTypeName, InvoiceIssuedEntity, InvoiceReceivedEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { hasEverBeenVatRegisteredCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../model/Model\";\nimport { SAVED_VATS_PATH } from \"../../admin/vatRules/VatRules.utils\";\nimport { addAssetDef, AssetTranslations } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { addMinorAssetDef } from \"../../asset/minorAsset/MinorAsset.utils\";\nimport { BankAccountAdditionalProps, visibleForAllButCash } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { commonDocumentTranslations, shouldFieldBeVisibleForIdentifiedPerson } from \"../Document.utils\";\nimport {\n addAccountAssignmentTableDefs,\n addAmountsTableDefs,\n addBankAccountTableDefs,\n addBusinessPartnerFieldDefs,\n addBusinessPartnerTableDefs,\n addCommonDocumentDefs,\n addCorrectiveDocument\n} from \"../DocumentCommonDefs\";\nimport {\n addDateGroupDateField,\n clearEmptyDateGroupDateFields,\n getDefinitions as getDocumentDefinitions\n} from \"../DocumentDef\";\nimport { addAccrualsDef } from \"../extensions/accruals/Accruals.utils\";\nimport { addItemsSummaryDef } from \"../extensions/itemsSummary/ItemsSummary.utils\";\nimport { addProformaDef } from \"../extensions/proforma/Proforma.utils\";\nimport { addTimeResolutionDef } from \"../extensions/timeResolution/TimeResolution.utils\";\nimport { addDateIssued } from \"../invoicesReceived/InvoicesReceivedDef\";\nimport InvoicesIssuedFormView from \"./InvoicesIssuedFormView\";\n\n// DateTaxableSupply for AR documents\nexport const addDateTaxableSupplyForAR = (definition: IDefinition, context: IAppContext, isDefault?: boolean, isRequired?: boolean): void => {\n definition.table.columnDefinition.DateTaxableSupply = {};\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateTaxableSupply: {}\n };\n\n definition.form.fieldDefinition.DateTaxableSupply = {\n defaultValue: () => (getWorkDate()),\n affectedFields: [\n { id: SAVED_VATS_PATH }\n ],\n isVisible: shouldFieldBeVisibleForIdentifiedPerson\n };\n\n if (isRequired) {\n definition.form.fieldDefinition.DateTaxableSupply.isRequired = true;\n }\n\n // Replaces whole date group with different dates (with defaults) for issued invoice\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateIssued);\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateDue);\n\n if (hasEverBeenVatRegisteredCompany(context)) {\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateTaxableSupply);\n if (isDefault) {\n definition.table.columns.splice(3, 0, InvoiceIssuedEntity.DateTaxableSupply);\n }\n }\n};\n\n\nconst changeSymbolVariableVisibility = (definition: IDefinition) => {\n definition.form.fieldDefinition.SymbolVariable.isVisible = visibleForAllButCash;\n};\n\nexport const enhanceIssuedDocDefinition = (\n definition: IDefinition,\n settings: {\n docType: DocumentTypeCode;\n transFile: string;\n withoutAmountDueSummary?: boolean;\n isBusinessPartnerOptional?: boolean;\n hasAccountAssignment: boolean;\n withoutAccruals?: boolean;\n context: IAppContext;\n }\n): void => {\n addCommonDocumentDefs(definition, settings.docType, settings.context);\n addBankAccountTableDefs(definition);\n addBusinessPartnerTableDefs(definition);\n addAmountsTableDefs(definition, settings.withoutAmountDueSummary);\n addDateIssued(definition, true, true);\n addAssetDef(definition);\n addMinorAssetDef(definition, settings.context, false);\n addDateTaxableSupplyForAR(definition, settings.context);\n addBusinessPartnerFieldDefs(definition, settings.docType, settings.transFile, settings.isBusinessPartnerOptional);\n\n changeSymbolVariableVisibility(definition);\n\n if (settings.hasAccountAssignment) {\n addTimeResolutionDef(definition);\n addAccountAssignmentTableDefs(definition);\n\n if (!settings.withoutAccruals) {\n addAccrualsDef(definition, { isRevenue: true, addAction: true });\n }\n }\n\n definition.form.additionalProperties.push(...BankAccountAdditionalProps);\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.InvoicesIssued,\n documentType: DocumentTypeCode.InvoiceIssued,\n tableId: `${EntityTypeName.InvoiceIssued}Table`,\n formId: `${EntityTypeName.InvoiceIssued}Form`,\n formControl: InvoicesIssuedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"InvoicesIssued:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"InvoicesIssued:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesIssued],\n context\n }));\n\n enhanceIssuedDocDefinition(definition, {\n docType: DocumentTypeCode.InvoiceIssued,\n transFile: \"InvoicesIssued\",\n hasAccountAssignment,\n context\n });\n\n addCorrectiveDocument(definition, hasAccountAssignment);\n addItemsSummaryDef(definition, context);\n addProformaDef(definition, hasAccountAssignment);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"InvoicesIssued\", ...AssetTranslations, ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.InvoiceIssued, getDefinitions);","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport IssuedDocumentBaseFormView from \"../IssuedDocumentBaseFormView\";\n\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { withTimeResolution } from \"../extensions/timeResolution/withTimeResolution\";\nimport { withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { withAccruals } from \"../extensions/accruals/withAccruals\";\nimport { withProforma } from \"../extensions/proforma/withProforma\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass InvoicesIssuedFormView extends IssuedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.InvoiceIssued;\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withTimeResolution(withAccruals({ isExpense: false })(withProforma({ isIssuedType: true })(withPermissionContext(withDomManipulator(InvoicesIssuedFormView)))))));\n","import { getWorkDate, getWorkDateCallback } from \"@components/inputs/date/utils\";\nimport { IGetValueArgs, TValidatorFn } from \"@components/smart/FieldInfo\";\nimport { EntitySetName, EntityTypeName, InvoiceReceivedEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { hasEverBeenVatRegisteredCompany, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport { ValidationError } from \"yup\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { ValidationErrorType, ValidatorType } from \"../../../enums\";\nimport { Model } from \"../../../model/Model\";\nimport { isNumberTheirsAndVatIdMandatory, SAVED_VATS_PATH } from \"../../admin/vatRules/VatRules.utils\";\nimport { addAssetDef, AssetTranslations } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { addMinorAssetDef } from \"../../asset/minorAsset/MinorAsset.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { commonDocumentTranslations, shouldFieldBeVisibleForIdentifiedPerson } from \"../Document.utils\";\nimport {\n addAccountAssignmentTableDefs,\n addAmountsTableDefs,\n addBankAccountTableDefs,\n addBusinessPartnerFieldDefs,\n addBusinessPartnerTableDefs,\n addCommonDocumentDefs,\n addCorrectiveDocument,\n addPaymentOrderTableDefs\n} from \"../DocumentCommonDefs\";\nimport {\n addDateGroupDateField,\n clearEmptyDateGroupDateFields,\n getDefinitions as getDocumentDefinitions\n} from \"../DocumentDef\";\nimport { addAccrualsDef } from \"../extensions/accruals/Accruals.utils\";\nimport { addItemsSummaryDef } from \"../extensions/itemsSummary/ItemsSummary.utils\";\nimport { addProformaDef } from \"../extensions/proforma/Proforma.utils\";\nimport { addTimeResolutionDef } from \"../extensions/timeResolution/TimeResolution.utils\";\nimport InvoicesReceivedFormView from \"./InvoicesReceivedFormView\";\n\n\nexport const addDateIssued = (definition: IDefinition, definitionOnly?: boolean, isDefault?: boolean): void => {\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateIssued: {}\n };\n\n definition.table.columnDefinition.DateIssued = { id: InvoiceReceivedEntity.DateIssued };\n definition.form.fieldDefinition.DateIssued = {\n id: InvoiceReceivedEntity.DateIssued,\n isRequired: true,\n defaultValue: () => (getWorkDate())\n };\n if (definition.table.massEditableDef) {\n definition.table.massEditableDef[InvoiceReceivedEntity.DateIssued] = {};\n }\n\n if (!definitionOnly) {\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateIssued);\n }\n\n if (isDefault) {\n const businessPartnerIndex = definition.table.columns.findIndex(column => column === InvoiceReceivedEntity.BusinessPartner);\n\n definition.table.filterBarDef[0].defaultFilters.splice(1, 0, InvoiceReceivedEntity.DateIssued);\n definition.table.columns.splice(businessPartnerIndex + 1, 0, InvoiceReceivedEntity.DateIssued);\n }\n};\n\ninterface IAddNumberTheirsOptions {\n definitionOnly?: boolean;\n addVatValidation?: boolean;\n}\n\nconst numberTheirsOnInvoiceReceivedValidator: TValidatorFn = (value, { storage }) => {\n if (isNumberTheirsAndVatIdMandatory({ storage }) && !value) {\n return new ValidationError(i18next.t(\"Document:Form.NumberTheirsValidation\"), value, \"\", ValidationErrorType.Form);\n }\n return true;\n};\n\n\nexport const addNumberTheirs = (definition: IDefinition, props?: IAddNumberTheirsOptions): void => {\n definition.table.columnDefinition[InvoiceReceivedEntity.NumberTheirs] = { id: InvoiceReceivedEntity.NumberTheirs };\n\n if (!props?.definitionOnly) {\n const numberOursIndex = definition.table.columns.findIndex(column => column === InvoiceReceivedEntity.NumberOurs);\n\n definition.table.columns.splice(numberOursIndex + 1, 0, InvoiceReceivedEntity.NumberTheirs);\n }\n if (definition.table.massEditableDef) {\n definition.table.massEditableDef[InvoiceReceivedEntity.NumberTheirs] = {};\n }\n definition.form.fieldDefinition[InvoiceReceivedEntity.NumberTheirs] = {\n id: InvoiceReceivedEntity.NumberTheirs,\n isRequired: isNumberTheirsAndVatIdMandatory,\n ...(props?.addVatValidation ? {\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: [{\n validator: numberTheirsOnInvoiceReceivedValidator\n }]\n }\n }\n } : {})\n };\n definition.form.groups.find(group => group.id === \"document\").rows[0].splice(0, 0, { id: InvoiceReceivedEntity.NumberTheirs });\n definition.table.filterBarDef[0].defaultFilters.splice(1, 0, InvoiceReceivedEntity.NumberTheirs);\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n NumberTheirs: {}\n };\n};\n\nexport const addDateReceived = (definition: IDefinition, isDefault?: boolean): void => {\n definition.table.columnDefinition[InvoiceReceivedEntity.DateReceived] = { id: InvoiceReceivedEntity.DateReceived };\n\n if (isDefault) {\n const businessPartnerIndex = definition.table.columns.findIndex(column => column === InvoiceReceivedEntity.BusinessPartner);\n\n definition.table.filterBarDef[0].defaultFilters.splice(2, 0, InvoiceReceivedEntity.DateReceived);\n definition.table.columns.splice(businessPartnerIndex + 1, 0, InvoiceReceivedEntity.DateReceived);\n }\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateReceived: {}\n };\n\n if (definition.table.massEditableDef) {\n definition.table.massEditableDef[InvoiceReceivedEntity.DateReceived] = {};\n }\n definition.form.fieldDefinition[InvoiceReceivedEntity.DateReceived] = {\n id: InvoiceReceivedEntity.DateReceived,\n defaultValue: () => (getWorkDate())\n };\n\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateReceived);\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateDue);\n};\n\nexport const addDateVATDeduction = (definition: IDefinition, context: IAppContext, definitionOnly?: boolean): void => {\n definition.table.columnDefinition[InvoiceReceivedEntity.DateVatDeduction] = {};\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateVatDeduction: {}\n };\n\n definition.form.fieldDefinition[InvoiceReceivedEntity.DateVatDeduction] = {\n id: InvoiceReceivedEntity.DateVatDeduction,\n isRequired: true,\n defaultValue: () => (getWorkDate()),\n affectedFields: [\n { id: SAVED_VATS_PATH }\n ],\n isVisible: (args: IGetValueArgs) => {\n return shouldFieldBeVisibleForIdentifiedPerson(args);\n },\n clearIfInvisible: false\n };\n\n if (hasEverBeenVatRegisteredCompany(context, false) && !definitionOnly) {\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateVatDeduction);\n }\n};\n\n// DateTaxableSupply for AP documents\nexport const addDateTaxableSupplyForAP = (definition: IDefinition, hasAccountAssignment: boolean, context: IAppContext, isRequired?: boolean): void => {\n definition.table.columnDefinition.DateTaxableSupply = {};\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateTaxableSupply: {}\n };\n\n // read only field with value mirroring DateAccountingTransaction\n definition.form.fieldDefinition.DateTaxableSupply = {\n defaultValue: !hasAccountAssignment ? getWorkDateCallback : definition.form.fieldDefinition.DateAccountingTransaction?.defaultValue ?? getWorkDateCallback,\n affectedFields: [\n { id: SAVED_VATS_PATH }\n ],\n isVisible: (args: IGetValueArgs) => {\n return shouldFieldBeVisibleForIdentifiedPerson(args);\n }\n };\n\n if (isRequired) {\n definition.form.fieldDefinition.DateTaxableSupply.isRequired = true;\n }\n\n if (hasEverBeenVatRegisteredCompany(context)) {\n addDateGroupDateField(definition.form, InvoiceReceivedEntity.DateTaxableSupply);\n }\n};\n\nexport const enhanceReceivedDocDefinition = (\n definition: IDefinition,\n settings: {\n docType: DocumentTypeCode;\n transFile: string;\n isBusinessPartnerOptional?: boolean;\n hasAccountAssignment: boolean;\n withoutAccruals?: boolean;\n context: IAppContext;\n }\n): void => {\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition\n };\n\n addCommonDocumentDefs(definition, settings.docType, settings.context);\n addBankAccountTableDefs(definition);\n addBusinessPartnerTableDefs(definition);\n addAmountsTableDefs(definition);\n addNumberTheirs(definition, { addVatValidation: true });\n addDateReceived(definition, true);\n addDateVATDeduction(definition, settings.context);\n addDateIssued(definition);\n addBusinessPartnerFieldDefs(definition, settings.docType, settings.transFile, settings.isBusinessPartnerOptional);\n addAssetDef(definition);\n addMinorAssetDef(definition, settings.context);\n addDateTaxableSupplyForAP(definition, settings.hasAccountAssignment, settings.context);\n\n if (settings.hasAccountAssignment) {\n addAccountAssignmentTableDefs(definition);\n addTimeResolutionDef(definition);\n\n if (!settings.withoutAccruals) {\n addAccrualsDef(definition, { isExpense: true, addAction: true });\n }\n }\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.InvoicesReceived,\n documentType: DocumentTypeCode.InvoiceReceived,\n tableId: `${EntityTypeName.InvoiceReceived}Table`,\n formId: `${EntityTypeName.InvoiceReceived}Form`,\n formControl: InvoicesReceivedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"InvoicesReceived:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"InvoicesReceived:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesReceived],\n context\n }));\n\n enhanceReceivedDocDefinition(definition, {\n docType: DocumentTypeCode.InvoiceReceived,\n transFile: \"InvoicesReceived\",\n hasAccountAssignment,\n context\n });\n\n addCorrectiveDocument(definition, hasAccountAssignment);\n addPaymentOrderTableDefs(definition);\n addItemsSummaryDef(definition, context);\n addProformaDef(definition, hasAccountAssignment);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"InvoicesReceived\", ...AssetTranslations, ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.InvoiceReceived, getDefinitions);","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\n\nimport { withMinorAssetPairing } from \"../../asset/minorAsset/withMinorAssetPairing\";\nimport ReceivedDocumentBaseFormView from \"../ReceivedDocumentBaseFormView\";\nimport { withTimeResolution } from \"../extensions/timeResolution/withTimeResolution\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { withAccruals } from \"../extensions/accruals/withAccruals\";\nimport { withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { withProforma } from \"../extensions/proforma/withProforma\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass InvoicesReceivedFormView extends ReceivedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.InvoiceReceived;\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withMinorAssetPairing(withTimeResolution(withAccruals({ isExpense: true })(withProforma({ isIssuedType: false })(withPermissionContext(withDomManipulator(InvoicesReceivedFormView))))))));\n","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport ReceivedDocumentBaseFormView from \"../ReceivedDocumentBaseFormView\";\n\nimport { withMinorAssetPairing } from \"../../asset/minorAsset/withMinorAssetPairing\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { withTimeResolution } from \"../extensions/timeResolution/withTimeResolution\";\nimport { withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { withAccruals } from \"../extensions/accruals/withAccruals\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass OtherLiabilityFormView extends ReceivedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.OtherLiability;\n documentTypePropName = \"LiabilityType\";\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withMinorAssetPairing(withTimeResolution(withAccruals({ isExpense: true })(withPermissionContext(withDomManipulator(OtherLiabilityFormView)))))));\n","import { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../model/Model\";\nimport { AssetTranslations } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { commonDocumentTranslations } from \"../Document.utils\";\nimport { addCorrectiveDocument, addPaymentOrderTableDefs } from \"../DocumentCommonDefs\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../DocumentDef\";\nimport { addItemsSummaryDef } from \"../extensions/itemsSummary/ItemsSummary.utils\";\nimport { enhanceReceivedDocDefinition } from \"../invoicesReceived/InvoicesReceivedDef\";\nimport OtherLiabilityFormView from \"./OtherLiabilityFormView\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.OtherLiabilities,\n documentType: DocumentTypeCode.OtherLiability,\n tableId: `${EntityTypeName.OtherLiability}Table`,\n formId: `${EntityTypeName.OtherLiability}Form`,\n formControl: OtherLiabilityFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"OtherLiabilities:Breadcrumbs.NewLiability\"),\n storage.data.entity?.NumberOurs && i18next.t(\"OtherLiabilities:Breadcrumbs.LiabilityWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.Reports],\n context\n }));\n\n enhanceReceivedDocDefinition(definition, {\n docType: DocumentTypeCode.OtherLiability,\n transFile: \"OtherLiabilities\",\n isBusinessPartnerOptional: true,\n hasAccountAssignment,\n context\n });\n\n addCorrectiveDocument(definition, hasAccountAssignment);\n addItemsSummaryDef(definition, context);\n addPaymentOrderTableDefs(definition);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"OtherLiabilities\", \"InvoicesReceived\", ...AssetTranslations, ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.OtherLiability, getDefinitions);","import { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport IssuedDocumentBaseFormView from \"../IssuedDocumentBaseFormView\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\n\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { withTimeResolution } from \"../extensions/timeResolution/withTimeResolution\";\nimport { withDomManipulator } from \"../../../contexts/domManipulator/withDomManipulator\";\nimport { withAccruals } from \"../extensions/accruals/withAccruals\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass OtherReceivableFormView extends IssuedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.OtherReceivable;\n documentTypePropName = \"ReceivableType\";\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withTimeResolution(withAccruals({ isExpense: false })(withPermissionContext(withDomManipulator(OtherReceivableFormView))))));\n","import { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../model/Model\";\nimport { AssetTranslations } from \"../../asset/fixedAsset/FixedAsset.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { commonDocumentTranslations } from \"../Document.utils\";\nimport { addCorrectiveDocument } from \"../DocumentCommonDefs\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../DocumentDef\";\nimport { addItemsSummaryDef } from \"../extensions/itemsSummary/ItemsSummary.utils\";\nimport { enhanceIssuedDocDefinition } from \"../invoicesIssued/InvoicesIssuedDef\";\nimport OtherReceivableFormView from \"./OtherReceivableFormView\";\n\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const hasAccountAssignment = !isCashBasisAccountingCompany(context);\n\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.OtherReceivables,\n documentType: DocumentTypeCode.OtherReceivable,\n tableId: `${EntityTypeName.OtherReceivable}Table`,\n formId: `${EntityTypeName.OtherReceivable}Form`,\n formControl: OtherReceivableFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"OtherReceivables:Breadcrumbs.NewReceivable\"),\n storage.data.entity?.NumberOurs && i18next.t(\"OtherReceivables:Breadcrumbs.ReceivableWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesReceived],\n context\n }));\n\n enhanceIssuedDocDefinition(definition, {\n docType: DocumentTypeCode.OtherReceivable,\n transFile: \"OtherReceivables\",\n isBusinessPartnerOptional: true,\n hasAccountAssignment,\n context\n });\n\n addCorrectiveDocument(definition, hasAccountAssignment);\n addItemsSummaryDef(definition, context);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"OtherReceivables\", ...AssetTranslations, ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.OtherReceivable, getDefinitions);","import { getWorkDate, isValidDate } from \"@components/inputs/date/utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport {\n getInfoValue,\n getSimpleBoolSelectItems,\n ifAll,\n ifAny,\n IFieldInfoProperties,\n IGetValueArgs,\n not\n} from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport {\n ClearingDocumentLinkEntity,\n DocumentAccountAssignmentEntity,\n DocumentDraftEntity,\n DocumentEntity,\n DocumentItemAccountAssignmentEntity,\n EntityTypeName,\n IClearingDocumentLinkEntity,\n IDocumentEntity,\n IProformaInvoiceIssuedEntity,\n IProformaInvoiceReceivedEntity,\n ProformaInvoiceIssuedEntity,\n ProformaInvoiceReceivedEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, DocumentTypeCode, SelectionCode, VatStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n hasEverBeenVatRegisteredCompany,\n isAccountAssignmentCompany,\n isCashBasisAccountingCompany,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { forEachKey, getValue } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { endsWith } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { IconSelectClean } from \"../../../components/inputs/select/IconSelect\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, LabelStatus, QueryParam, ToolbarItemType, ValueType } from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport DateType from \"../../../types/Date\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { ICustomButtonDefArgs, TableActionOrder } from \"../../../views/table/TableToolbar.utils\";\nimport {\n CreateCustomAssignmentPath,\n ItemCreateCustomAssignmentBc,\n processAccountAssignmentSelection,\n setDefaultAccountAssignment\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport {\n correctVatSelectionFields,\n ITEMS_VAT_DEDUCTION_PATH,\n IVatClassificationExtendedEntity,\n SAVED_VATS_PATH,\n VAT_REVERSE_CHARGE_SELECT_PATH,\n VatSelectionFields\n} from \"../../admin/vatRules/VatRules.utils\";\nimport { CREATE_RECEIPT_PATH } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport {\n FiscalPeriodForNumberRangePath,\n FiscalYearForNumberRangePath,\n NumberOursSummaryBindingContext,\n replaceWildcardsAfterDateChange\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, TFieldsDefinition } from \"../../PageUtils\";\nimport {\n enhancedDocumentTypeWithDDOPP,\n getDocumentClearingTableDef,\n getDocumentPairedTable,\n getFiscalDataCorrespondingToDateAccountingTransaction,\n getFormDefGroup,\n hasMetadataRule,\n MetadataLockType\n} from \"../Document.utils\";\nimport {\n addBankAccountTableDefs,\n addBusinessPartnerFieldDefs,\n addBusinessPartnerTableDefs,\n addCommonDocumentDefs,\n addTransactionAmountDue\n} from \"../DocumentCommonDefs\";\nimport { addDateGroupDateField, dateAccountingCustomValidator } from \"../DocumentDef\";\nimport { DocumentFormViewForExtend } from \"../DocumentFormView\";\nimport { addItemsSummaryDef } from \"../extensions/itemsSummary/ItemsSummary.utils\";\nimport { PROFORMA_DOC_LINK_FILTER } from \"../extensions/proforma/Proforma.utils\";\nimport { addDateTaxableSupplyForAR } from \"../invoicesIssued/InvoicesIssuedDef\";\nimport { addDateIssued, addDateTaxableSupplyForAP } from \"../invoicesReceived/InvoicesReceivedDef\";\n\nexport type IProformaEntity = (IProformaInvoiceReceivedEntity | IProformaInvoiceIssuedEntity) & {\n [SAVED_VATS_PATH]?: TValue\n};\n\nexport function isDDOP({ data, storage }: IGetValueArgs): boolean {\n const entity = (data ?? (storage as FormStorage).data?.entity) as IProformaEntity;\n return !!entity.IsTaxDocument;\n}\n\nexport function isConvertingToDDOPP({ data, storage }: IGetValueArgs): boolean {\n const entity = (data ?? (storage as FormStorage).data?.entity) as IProformaEntity;\n const originalEntity = (storage as FormStorage).data?.origEntity as IProformaEntity;\n // isTaxDocument is set and wasn't set before -> converting to DDOPP\n return entity.IsTaxDocument && !originalEntity?.IsTaxDocument && !storage.data.bindingContext.isNew();\n}\n\nexport const shouldNotAllowDDOPP = (storage: FormStorage): boolean => {\n // only care about new documents,\n // user could've switched company to vat payer, create document, and revert it back..\n // the created document should still be accessible\n const isNew = storage.data?.bindingContext?.isNew();\n // VatDeductionDate has to be set unless we can't make a decision...\n return isNew && isValidDate(storage.data.entity.DateVatDeduction) &&\n isDDOP({ storage }) && !hasEverBeenVatRegisteredCompany(storage.context);\n};\n\nexport function isCleared({ storage }: IGetValueArgs): boolean {\n const doc = storage.data.entity as IProformaEntity;\n return [ClearedStatusCode.PartiallyCleared, ClearedStatusCode.Cleared].includes(doc.ClearedStatusCode as ClearedStatusCode);\n}\n\n// proformas, which are already linked to real invoice, can't be converted to DDOPP anymore\nexport function hasLinkedDocumentLock({ storage }: IGetValueArgs): boolean {\n return hasMetadataRule(storage as FormStorage, MetadataLockType.CannotEditLinkedProforma);\n}\n\nexport function canConvertToDDOP(args: IGetValueArgs): boolean {\n if (!isVatRegisteredCompany(args.storage.context)) {\n return false;\n }\n const document = args.storage.data.entity as IProformaEntity;\n if (document.DocumentTypeCode === DocumentTypeCode.ProformaInvoiceReceived && document.BusinessPartner.VatStatusCode === VatStatusCode.NotVATRegistered) {\n return false;\n }\n const isCleared = (args.storage.data.entity as IProformaEntity).ClearedStatusCode === ClearedStatusCode.Cleared;\n return !isDDOP(args) && !hasLinkedDocumentLock(args) && isCleared && !args.storage.isDirty();\n}\n\nexport enum ProformaType {\n Proforma = \"Proforma\",\n DDOP = \"DDOP\"\n}\n\nexport const PROFORMA_ADD_BUTTON = \"ProformaAddButton\";\n\nexport function getToolbarAddButtonConfig(isReceived: boolean, storage: TableStorage, ref: React.RefObject, args?: ICustomButtonDefArgs): IToolbarItem {\n const transFile = isReceived ? \"ProformaInvoicesReceived\" : \"ProformaInvoicesIssued\";\n const iconName = isReceived ? \"ProformaInvoicesReceivedPlain\" : \"ProformaInvoicesIssuedPlain\";\n return {\n id: PROFORMA_ADD_BUTTON,\n itemType: ToolbarItemType.IconSelect,\n iconName: \"Add\",\n label: i18next.t(`${transFile}:Table.NewDocument`),\n order: TableActionOrder.Add,\n itemProps: {\n isTransparent: true,\n headerText: i18next.t(`${transFile}:Table.NewDocument`),\n selectProps: {\n isActive: storage.data.addingRow || args?.isActive,\n isDisabled: !!storage.tableAction || args?.isDisabled,\n ref\n },\n items: [\n {\n id: ProformaType.Proforma,\n label: i18next.t(`${transFile}:Table.Proforma`),\n iconName\n },\n {\n id: ProformaType.DDOP,\n label: i18next.t(`${transFile}:Table.DDOP`),\n iconName: \"TaxDocument\"\n }\n ]\n }\n };\n}\n\n/**\n * Cleared documents is opposite relation to Clearing documents, so we display invoices,\n * which are cleared by current document\n */\nexport const CLEARED_DOCUMENTS_TAB = \"ClearedDocuments\";\n\nfunction addClearedDocumentsTab(definition: IDefinition, hasAccountAssignment: boolean): void {\n const clearedDocumentsTab = {\n id: CLEARED_DOCUMENTS_TAB,\n title: i18next.t(\"Document:FormTab.ClearedDocuments\"),\n table: getDocumentPairedTable({\n selectQuery: PROFORMA_DOC_LINK_FILTER,\n addAmountColumn: true,\n isCbaCompany: !hasAccountAssignment\n })\n };\n\n const tabsGroup: IFormGroupDef = definition.form.groups.find(group => group.id === \"Tabs\");\n tabsGroup.tabs.push(clearedDocumentsTab);\n}\n\nfunction addDateProcessed(definition: IDefinition): void {\n definition.table.columnDefinition.DateProcessed = {};\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n DateProcessed: {}\n };\n\n definition.form.fieldDefinition[\"DateProcessed\"] = {\n isRequired: true, // todo: move to BE flag\n defaultValue: () => {\n return getWorkDate();\n }\n };\n}\n\nconst DDOPP_NUMBER_SUFFIX = \"-DD\";\n\nexport function changeNumberOursSummary(definition: IDefinition): void {\n const numberOursSummaryDef = definition.form.summary.find(item => item.id === NumberOursSummaryBindingContext);\n\n const _origFormatter = numberOursSummaryDef.formatter;\n\n numberOursSummaryDef.formatter = (val: TValue, data?: IFormatOptions) => {\n const { storage } = data ?? {};\n const doc = (data?.entity ?? {}) as IDocumentEntity;\n if (isDDOP({\n data: doc,\n storage\n }) && doc.NumberRange?.Id && doc.NumberOurs && !endsWith(doc.NumberOurs, DDOPP_NUMBER_SUFFIX)) {\n return `${doc.NumberOurs}${DDOPP_NUMBER_SUFFIX}`;\n }\n return _origFormatter?.(val, data);\n };\n}\n\nfunction enhanceProformaItemsGroupDef(definition: IDefinition, context: IAppContext): void {\n addItemsSummaryDef(definition, context);\n const itemsGroup = getFormDefGroup(definition.form, \"Items\");\n\n // stores original summaryRenderer to local prop and wraps it to render the summary conditionally ->\n // if Vat fields are not visible (Vat is not calculated on proforma), we don't want to show the summary\n const summaryRenderer = itemsGroup.lineItems.itemsSummaryRenderer;\n itemsGroup.lineItems.itemsSummaryRenderer = (args, ...rest) => {\n if (hasVatFieldsVisible(args) || isDDOP(args)) {\n return getValue(summaryRenderer, args, ...rest);\n }\n return null;\n };\n\n // it seems to work (not needed to be disabled) DEV-26258\n // itemsGroup.lineItems.isItemDisabled = ifAll(isDDOP, isCleared);\n // itemsGroup.lineItems.isAddDisabled = ifAll(isDDOP, isCleared);\n}\n\nfunction setCorrectBreadcrumbs(definition: IDefinition): void {\n definition.form.getItemBreadCrumbText = (storage: Model) => {\n const proforma = storage.data.entity as IProformaEntity;\n const prefix = proforma.IsTaxDocument ? \"DDOPP\" : \"Proforma\";\n return getItemBreadCrumbsText(storage, i18next.t(`Proforma:Breadcrumbs.${prefix}_NewInvoice`),\n storage.data.entity?.NumberOurs && i18next.t(`Proforma:Breadcrumbs.${prefix}_InvoiceWithNumber`, { number: storage.data.entity.NumberOurs }));\n };\n}\n\nasync function getOldestClearingDate(storage: FormStorage) {\n let clearingDate: Date;\n try {\n const def = getDocumentClearingTableDef();\n const filter = getInfoValue(def, \"filter\", { storage });\n const query = storage.oData.getEntitySetWrapper(def.entitySet).query()\n .filter(filter)\n .select(ClearingDocumentLinkEntity.DateClearing)\n .orderBy(ClearingDocumentLinkEntity.DateClearing)\n .top(1);\n\n const result = await query.fetchData();\n clearingDate = result.value[0]?.DateClearing;\n } catch (e) {\n // fall silently\n logger.error(\"Clearing date fetch failed\", e);\n }\n return clearingDate;\n}\n\n// Adds DateProcessed and DateIssued to date group\nfunction rearrangeDateGroup(definition: IDefinition, docType: DocumentTypeCode): void {\n if (docType === DocumentTypeCode.ProformaInvoiceReceived) {\n addDateGroupDateField(definition.form, ProformaInvoiceReceivedEntity.DateIssued);\n }\n\n addDateGroupDateField(definition.form, ProformaInvoiceReceivedEntity.DateProcessed);\n\n const dateAccountingTransactionField = definition.form.fieldDefinition[DocumentEntity.DateAccountingTransaction];\n if (dateAccountingTransactionField) {\n dateAccountingTransactionField.defaultValue = () => getWorkDate();\n\n // proforma invoice doesn't have visible DateAccountingTransaction, so skip the validation\n definition.form.fieldDefinition[DocumentEntity.DateAccountingTransaction].validator.settings.customValidator = (value: TValue, args: IGetValueArgs) => {\n if (!isDDOP(args)) {\n return true;\n }\n return dateAccountingCustomValidator(value, args);\n };\n }\n}\n\n\nconst accountAssignmentPath = \"AccountAssignmentSelection/AccountAssignment\";\n// this fields are visible only for DDOP and are editable in this state (along with shared fields)\nconst DDOPP_FIELDS = [\n // AccountAssignment related fields\n accountAssignmentPath,\n createPath(accountAssignmentPath, DocumentAccountAssignmentEntity.DebitAccount),\n createPath(accountAssignmentPath, DocumentAccountAssignmentEntity.CreditAccount),\n createPath(accountAssignmentPath, DocumentAccountAssignmentEntity.Name),\n CreateCustomAssignmentPath,\n SAVED_VATS_PATH,\n VAT_REVERSE_CHARGE_SELECT_PATH,\n createPath(ProformaInvoiceIssuedEntity.Items, SAVED_VATS_PATH),\n createPath(ProformaInvoiceIssuedEntity.Items, ITEMS_VAT_DEDUCTION_PATH),\n createPath(ProformaInvoiceIssuedEntity.Items, accountAssignmentPath),\n createPath(ProformaInvoiceIssuedEntity.Items, accountAssignmentPath, ItemCreateCustomAssignmentBc),\n createPath(ProformaInvoiceIssuedEntity.Items, accountAssignmentPath, DocumentItemAccountAssignmentEntity.DebitAccount),\n createPath(ProformaInvoiceIssuedEntity.Items, accountAssignmentPath, DocumentItemAccountAssignmentEntity.CreditAccount),\n // Date fields\n ProformaInvoiceIssuedEntity.DateTaxableSupply,\n ProformaInvoiceIssuedEntity.DatePaymentReceived,\n ProformaInvoiceIssuedEntity.DateAccountingTransaction,\n ProformaInvoiceIssuedEntity.FiscalPeriod,\n ProformaInvoiceIssuedEntity.DateVatDeduction,\n // Vat selection fields\n ...VatSelectionFields.map(id => `VatClassificationSelection/VatClassification/${id}`)\n];\n\n// this fields are visible only for proforma\nconst PROFORMA_FIELDS: string[] = [\n ProformaInvoiceIssuedEntity.DateDue,\n ProformaInvoiceIssuedEntity.DateProcessed\n];\n\n// this fields are editable in both states DDOP and ProformaInvoice\nconst SHARED_FIELDS: string[] = [\n ProformaInvoiceIssuedEntity.DateIssued,\n ProformaInvoiceReceivedEntity.DateReceived\n];\n\n// Fields, which are hidden when we don't calculate VAT on Proforma\nconst VAT_RELATED_FIELDS = [\n createPath(ProformaInvoiceIssuedEntity.Items, RegularDocumentItemEntity.Vat),\n createPath(ProformaInvoiceIssuedEntity.Items, RegularDocumentItemEntity.TransactionAmountNet),\n createPath(ProformaInvoiceIssuedEntity.Items, RegularDocumentItemEntity.TransactionAmountVat)\n];\n\n\nfunction setFieldFlags(definition: IDefinition) {\n const { fieldDefinition } = definition.form;\n\n forEachKey(fieldDefinition, (id) => {\n switch (true) {\n case DDOPP_FIELDS.includes(id):\n fieldDefinition[id].isVisible = ifAll(isDDOP, fieldDefinition[id].isVisible);\n // todo: useForCustomization cannot be conditional - it's same form, if user customize DDOPP,\n // these fields will be then missing on proforma form and vice versa\n // if (isNotDefined(fieldDefinition[id].customizationData?.useForCustomization)) {\n // fieldDefinition[id].customizationData = {\n // useForCustomization: isDDOP\n // };\n // }\n break;\n case PROFORMA_FIELDS.includes(id):\n fieldDefinition[id].isVisible = ifAll(not(isDDOP), fieldDefinition[id].isVisible);\n // if (isNotDefined(fieldDefinition[id].customizationData?.useForCustomization)) {\n // fieldDefinition[id].customizationData = {\n // useForCustomization: not(isDDOP)\n // };\n // }\n break;\n case VAT_RELATED_FIELDS.includes(id):\n // VAT related fields are visible on DDOP or Proforma if Vat calculation is turned on\n fieldDefinition[id].isVisible = ifAll(fieldDefinition[id].isVisible, ifAny(hasVatFieldsVisible, isDDOP));\n if (id !== \"Items/Vat\") {\n // User can change only Vat. Amounts should be automatically calculated when DDOPP is created\n // from Proforma, because the whole paid amount must remain same.\n fieldDefinition[id].isReadOnly = ifAny(fieldDefinition[id].isReadOnly, isConvertingToDDOPP);\n }\n break;\n case SHARED_FIELDS.includes(id):\n // shared fields are visible/read-only as they are originally defined, no change here\n break;\n default:\n // rest of the fields are visible and editable on Proforma, read-only on DDOPP\n fieldDefinition[id].isReadOnly = ifAny(fieldDefinition[id].isReadOnly, isConvertingToDDOPP);\n break;\n }\n });\n}\n\n/**\n * Function to prepare common proforma (received/issued) definitions\n * @param definition\n * @param docType\n * @param transFile\n * @param context\n */\nexport function enhanceWithCommonProformaDefinitions(definition: IDefinition, docType: DocumentTypeCode, transFile: string, context: IAppContext): void {\n addCommonDocumentDefs(definition, docType, context);\n const hasAccountAssignment = isAccountAssignmentCompany(context);\n addBankAccountTableDefs(definition);\n addBusinessPartnerTableDefs(definition);\n addBusinessPartnerFieldDefs(definition, docType, transFile);\n\n addDateIssued(definition, true);\n addDateProcessed(definition);\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n IsTaxDocument: {\n type: FieldType.MultiSelect,\n valueType: ValueType.Boolean,\n isValueHelp: false,\n label: i18next.t(\"Proforma:DDOPP\"),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n }\n };\n\n if (docType === DocumentTypeCode.ProformaInvoiceReceived) {\n addDateTaxableSupplyForAP(definition, hasAccountAssignment, context, true);\n } else {\n addDateTaxableSupplyForAR(definition, context, false, true);\n definition.form.fieldDefinition[ProformaInvoiceIssuedEntity.DatePaymentReceived] = {\n defaultValue: () => (getWorkDate()),\n isRequired: true\n };\n addDateGroupDateField(definition.form, ProformaInvoiceIssuedEntity.DatePaymentReceived);\n }\n\n rearrangeDateGroup(definition, docType);\n // todo: check if addAmountsTableDefs should not be called instead\n addTransactionAmountDue(definition, true);\n\n enhanceProformaItemsGroupDef(definition, context);\n setCorrectBreadcrumbs(definition);\n\n // proforma fields\n addInvoiceTypeSwitch(definition, context);\n addIsTaxDocumentFlag(definition);\n addIsTaxDocumentTableDefs(definition);\n\n changeNumberOursSummary(definition);\n\n setFieldFlags(definition);\n\n // Proforma has different definition of Cleared status than CREATE_RECEIPT_PATH expects\n // update isVisible callback\n const origIsVisible = definition.form.fieldDefinition[CREATE_RECEIPT_PATH].isVisible;\n definition.form.fieldDefinition[CREATE_RECEIPT_PATH].isVisible = (args: IGetValueArgs) => {\n if (isCleared(args)) {\n return false;\n }\n\n return getValue(origIsVisible, args);\n };\n\n if (hasAccountAssignment) {\n // set default account assignment for DDOPP\n let Number: string, Name: string;\n if (docType === DocumentTypeCode.ProformaInvoiceIssued) {\n Number = \"324\";\n Name = \"Přijaté provozní zálohy\";\n } else {\n Number = \"314\";\n Name = \"Poskytnuté zálohy - dlouhodobé a krátkodobé\";\n }\n definition.form.fieldDefinition[\"AccountAssignmentSelection/AccountAssignment\"].defaultValue = {\n DebitAccount: { Number },\n CreditAccount: { Number },\n Name\n };\n }\n\n addClearedDocumentsTab(definition, hasAccountAssignment);\n}\n\nexport const CALCULATE_VAT_PATH = ProformaInvoiceIssuedEntity.CalculateVat;\nconst VAT_INFO_PATH = BindingContext.localContext(\"VatInfo\");\n\nfunction addInvoiceTypeSwitch(definition: IDefinition, context: IAppContext): void {\n if (!isVatRegisteredCompany(context)) {\n return;\n }\n\n const { fieldDefinition } = definition.form;\n\n // switch definition\n fieldDefinition[CALCULATE_VAT_PATH] = {\n type: FieldType.Switch,\n label: i18next.t(\"Proforma:Form.CalculateVat\"),\n isVisible: not(isDDOP),\n fieldSettings: {\n type: SwitchType.YesNo\n },\n customizationData: {\n useForCustomization: false\n }\n };\n\n fieldDefinition[VAT_INFO_PATH] = {\n labelStatus: LabelStatus.Removed,\n isReadOnly: true,\n isVisible: ifAll(hasVatFieldsVisible, not(isDDOP)),\n formatter: () => i18next.t(\"Proforma:Form.VatInfo\").toString(),\n customizationData: {\n useForCustomization: false\n }\n };\n\n const itemsGroup = getFormDefGroup(definition.form, \"Items\");\n itemsGroup.rows = [[\n { id: CALCULATE_VAT_PATH, isCollectionField: false },\n { id: VAT_INFO_PATH, isCollectionField: false }\n ]];\n}\n\nexport interface IIsTaxDocumentCustomData extends IFormStorageDefaultCustomData {\n IsDDOP?: boolean;\n}\n\nfunction addIsTaxDocumentTableDefs(definition: IDefinition): void {\n const commonSettings: IFieldInfoProperties = {\n label: i18next.t(\"Proforma:ProformaType\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n return i18next.t(`Proforma:${val ? \"DDOPP\" : \"Proforma\"}`).toString();\n }\n };\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n IsTaxDocument: {\n id: \"IsTaxDocument\",\n ...commonSettings\n }\n };\n\n definition.table.filterBarDef[0].filterDefinition = {\n ...definition.table.filterBarDef[0].filterDefinition,\n \"IsTaxDocument\": {\n ...commonSettings,\n width: BasicInputSizes.M\n }\n };\n}\n\nfunction addIsTaxDocumentFlag(definition: IDefinition): void {\n const { fieldDefinition, additionalProperties } = definition.form;\n\n fieldDefinition.IsTaxDocument = {\n isVisible: false,\n clearIfInvisible: false,\n defaultValue: (args: IGetValueArgs) => {\n const isDDOP = (args.storage as FormStorage).getCustomData().IsDDOP;\n return isDDOP || getQueryParameters()[QueryParam.Type] === ProformaType.DDOP;\n },\n customizationData: {\n useForCustomization: false\n }\n };\n\n additionalProperties.push({ id: \"IsTaxDocument\" });\n}\n\nexport function hasVatFieldsVisible(args: IGetValueArgs): boolean {\n const { storage } = args;\n return !!storage.getValue(storage.data.bindingContext.navigate(CALCULATE_VAT_PATH));\n}\n\n\n/**\n * ---- FormView callbacks ----\n */\n\nexport function handleInvoiceTypeSwitchChange(storage: FormStorage, e: ISmartFieldChange): void {\n if (e.bindingContext.getPath() === CALCULATE_VAT_PATH) {\n // refresh all items to recalculate fields visibility\n storage.refresh();\n }\n}\n\nexport async function handleDateProcessedChange(formView: DocumentFormViewForExtend, e: ISmartFieldChange): Promise {\n const path = e.bindingContext.getPath();\n if (formView.datePropForCurrencyExchangeRate === DocumentEntity.DateAccountingTransaction) {\n // DateAccountingTransaction change is handled in base DocumentFormView\n return;\n }\n if (path === formView.datePropForCurrencyExchangeRate && e.triggerAdditionalTasks) {\n const { storage } = formView.props;\n\n const isValid = !await storage.validateField(e.bindingContext);\n if (!isValid || !e.value) {\n return;\n }\n\n await formView.refreshCurrencyExchangeRateAfterDateChange();\n\n storage.refreshFields();\n }\n}\n\nexport async function handleCalculateVatChange(formView: DocumentFormViewForExtend, e: ISmartFieldChange): Promise {\n if (e.bindingContext.getPath() === CALCULATE_VAT_PATH) {\n // refresh all items to recalculate fields visibility\n formView.recalculateAllItems(RegularDocumentItemEntity.TransactionAmount, true, true);\n }\n}\n\nexport function handleDocumentSpecificBlurHandlers(formView: DocumentFormViewForExtend, e: ISmartFieldBlur, isIssued: boolean): void {\n const { storage } = formView.props;\n const path = e.bindingContext.getPath();\n const value = storage.getValue(e.bindingContext);\n const _isDDOPP = isDDOP({ storage });\n const ProformaEntity = isIssued ? ProformaInvoiceIssuedEntity : ProformaInvoiceReceivedEntity;\n\n const shouldSyncDateProcessed = storage.data.bindingContext.isNew();\n if (e.wasChanged && DateType.isValid(value)) {\n if (path === formView.datePropForNumberRange && _isDDOPP && shouldSyncDateProcessed) {\n // keep dateProcessed in sync\n storage.setValueByPath(ProformaEntity.DateProcessed, value);\n }\n }\n}\n\nexport function getSuccessMessage(storage: FormStorage, isPosted: boolean, isClosed: boolean): string {\n const namespace = storage.data.definition.translationFiles[0];\n const prefix = isDDOP({ storage }) ? \"DDOP\" : \"Proforma\";\n let key: string;\n if (isPosted) {\n key = isClosed ? \"SuccessSubtitlePostedClosedFiscalYear\" : \"SuccessSubtitlePosted\";\n } else {\n key = \"Saved\";\n }\n return storage.t(`${namespace}:Validation.${prefix}_${key}`).toString();\n}\n\nexport function getProformaFormTitle(storage: FormStorage): string {\n const _isDDOP = isDDOP({ storage });\n return storage.t(`${storage.data.definition.translationFiles[0]}:${_isDDOP ? \"DDOP\" : \"Proforma\"}_TitleSingular`).toString();\n}\n\nexport function setFiscalYearForNumberRangeWithoutFiscalYear(storage: FormStorage, date: Date): boolean {\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, date);\n const currentFY = storage.getValueByPath(FiscalYearForNumberRangePath);\n // Period may change even if FY hasn't, keep it out of the if\n storage.setValueByPath(FiscalPeriodForNumberRangePath, fiscalData.fiscalPeriod ?? {});\n storage.setValueByPath(FiscalYearForNumberRangePath, fiscalData.fiscalYear ?? {});\n\n return currentFY?.Id !== fiscalData.fiscalYear?.Id;\n}\n\nexport const setMatchingNumberRangeForDocumentWithoutFiscalYear = (storage: FormStorage, date: Date, forceReload?: boolean): void => {\n // set FY for NumberRange\n // set actual FY specific for NumberRange according to DateProcessed instead on DateAccountingTransaction\n const didChange = setFiscalYearForNumberRangeWithoutFiscalYear(storage, date);\n\n if (!didChange && !forceReload) {\n replaceWildcardsAfterDateChange(storage);\n }\n};\n\n\nexport function onBeforeSave(storage: FormStorage, data: IProformaEntity, formView: DocumentFormViewForExtend): IProformaEntity {\n data = data ?? cloneDeep(storage.data.entity);\n\n if (!data.IsTaxDocument) {\n data.VatClassificationSelection = null;\n (data as IVatClassificationExtendedEntity)[SAVED_VATS_PATH] = null;\n data.AccountAssignmentSelection = null;\n data.DateTaxableSupply = null;\n data.DateAccountingTransaction = null;\n data.DateVatDeduction = null;\n data.FiscalPeriod = null;\n\n data.Items.forEach(item => {\n if (!data.CalculateVat) {\n // clear Vat fields if not calculated\n item.Vat = null;\n item.VatCode = null;\n item.TransactionAmountNet = item.TransactionAmount;\n item.TransactionAmountVat = 0;\n item.TransactionUnitPriceNet = item.TransactionUnitPrice;\n item.TransactionUnitPriceVat = 0;\n }\n item.VatClassificationSelection = null;\n (item as IVatClassificationExtendedEntity)[SAVED_VATS_PATH] = null;\n item.AccountAssignmentSelection = null;\n });\n } else {\n // https://solitea-cz.atlassian.net/wiki/spaces/IRIS/pages/2314764398/F0023.1+-+pravy+datumov+ch+field\n // DateDue is supposed to be hidden, but BE fails if it is empty\n if (!data?.DateDue) {\n data.DateDue = data.DateIssued;\n }\n // DateProcessed might not be set when DDOPP is created as draft on BE,\n // so we must fill it on save as it is required (and not visible on DDOPP form)\n if (!data?.DateProcessed) {\n data.DateProcessed = storage.getValueByPath(formView.datePropForNumberRange);\n }\n }\n\n return data;\n}\n\nexport async function onAfterLoad(storage: FormStorage, formView: DocumentFormViewForExtend): Promise {\n if (!storage.data.bindingContext.isNew()) {\n // For new entities, setMatchingNumberRangeForDocument is called which also sets the FY for NumberRange.\n // Call it here just for the old ones.\n setFiscalYearForNumberRangeWithoutFiscalYear(storage, storage.getEntity()[formView.datePropForNumberRange]);\n } else {\n // init new document\n if (isDDOP({ storage }) && isAccountAssignmentCompany(storage.context)) {\n await setDefaultAccountAssignment(storage, getEntitySetByDocumentType(formView.documentTypeCode));\n }\n }\n}\n\nexport async function handleConvertToDDOP(formView: DocumentFormViewForExtend): Promise {\n const { storage } = formView.props;\n storage.setBusy(true);\n // mark the storage as dirty, so there is \"change\" button in the form footer\n storage.setDirty(storage.data.bindingContext);\n\n const clearingDate = (await getOldestClearingDate(storage)) ?? getWorkDate();\n\n // set correct data to storage for DDOPP\n storage.setValueByPath(ProformaInvoiceIssuedEntity.IsTaxDocument, true);\n if (isAccountAssignmentCompany(storage.context)) {\n storage.setDefaultValueByPath(ProformaInvoiceIssuedEntity.DateAccountingTransaction);\n for (const item of storage.data.entity.Items) {\n processAccountAssignmentSelection(item, true, true);\n }\n\n await setDefaultAccountAssignment(storage, getEntitySetByDocumentType(formView.documentTypeCode), true);\n }\n\n storage.setDefaultValueByPath(DocumentDraftEntity.DateVatDeduction);\n storage.setDefaultValueByPath(DocumentDraftEntity.DateTaxableSupply);\n if (storage.data.entity.DocumentTypeCode === DocumentTypeCode.ProformaInvoiceIssued) {\n storage.setValueByPath(ProformaInvoiceIssuedEntity.DatePaymentReceived, clearingDate);\n }\n const dateProp = isCashBasisAccountingCompany(storage.context) ? ProformaInvoiceIssuedEntity.DateCbaDocument : ProformaInvoiceIssuedEntity.DateAccountingTransaction;\n storage.setValueByPath(dateProp, clearingDate);\n\n for (const item of storage.data.entity.Items) {\n item[SAVED_VATS_PATH] = SelectionCode.Default;\n item[ITEMS_VAT_DEDUCTION_PATH] = SelectionCode.Default;\n }\n\n const reDefaultVat = storage.getValueByPath(CALCULATE_VAT_PATH) !== true;\n formView.recalculateAllItems(formView.defaultItemLastChangedProp, true, reDefaultVat);\n\n await Promise.all([\n formView.refreshFormAfterDecisiveDateChange(formView.datePropForNumberRange, true),\n correctVatSelectionFields({\n storage,\n documentTypeCode: formView.documentTypeCode,\n forceDefaultValue: true\n })\n ]);\n\n // validate all fields in the form to show possible errors (or hide previous ones, which are not valid anymore)\n await storage.validateAll();\n\n storage.handleFirstChange();\n\n // refresh also footer buttons\n storage.setBusy(false, true);\n}\n\nexport function enhancedDocumentTypeByDDOPPFilterFormatter(val: TValue, args: IFormatOptions): string {\n // val can be either object {Code, Name} or direct code\n const code = (val as TRecordAny)?.Code ?? val;\n\n if ([DocumentTypeCode.ProformaInvoiceReceived, DocumentTypeCode.ProformaInvoiceIssued].includes(code as DocumentTypeCode)) {\n const ddoppSuffix = isVatRegisteredCompany(args.context) ? \"OrDDOPP\" : \"\";\n return i18next.t(`Document:Types.${code}${ddoppSuffix}`, { count: 1 }).toString();\n }\n return getEnumDisplayValue(EntityTypeName.DocumentType, code);\n}\n\nexport function enhancedDocumentTypeByDDOPPFormatter(val: TValue, args: IFormatOptions): string {\n const entity = args.item as IDocumentEntity;\n return enhancedDocumentTypeWithDDOPP(entity, val as string);\n}\n\nexport const getEnhancedDocumentTypeByDDOPPDef = (): TFieldsDefinition => ({\n DocumentType: {\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: enhancedDocumentTypeByDDOPPFormatter\n }\n});","import IssuedDocumentBaseFormView from \"../../IssuedDocumentBaseFormView\";\nimport { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withDomManipulator } from \"../../../../contexts/domManipulator/withDomManipulator\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport {\n IProformaInvoiceIssuedEntity,\n IRegularDocumentItemEntity,\n ProformaInvoiceIssuedEntity,\n ProformaInvoiceReceivedEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n canConvertToDDOP,\n getProformaFormTitle,\n getSuccessMessage,\n handleCalculateVatChange,\n handleConvertToDDOP,\n handleDateProcessedChange,\n handleDocumentSpecificBlurHandlers,\n handleInvoiceTypeSwitchChange,\n isDDOP,\n onAfterLoad,\n onBeforeSave,\n setMatchingNumberRangeForDocumentWithoutFiscalYear,\n shouldNotAllowDDOPP\n} from \"../ProformaInvoice.utils\";\nimport React from \"react\";\nimport { Button } from \"../../../../components/button\";\nimport { IDocumentFormViewProps } from \"../../DocumentInterfaces\";\nimport { NoPermission } from \"../../../../views/notFound\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\nclass ProformaInvoicesIssuedFormView extends IssuedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.ProformaInvoiceIssued;\n\n constructor(props: IDocumentFormViewProps) {\n super(props);\n\n this.setMatchingNumberRangeForDocument = this.setMatchingNumberRangeForDocument.bind(this);\n }\n\n get preventDraftSave(): boolean {\n return super.preventDraftSave || !this.props.storage.afterLoaded;\n }\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n const { storage } = this.props;\n\n await super.onAfterLoad(hasPreloadedData);\n onAfterLoad(storage, this);\n // use delayed refresh instead of sync, so that preventDraftSave has afterLoaded already set to true\n storage.refresh(true);\n }\n\n get hasAccountAssignment(): boolean {\n return isAccountAssignmentCompany(this.context) && isDDOP({ storage: this.props.storage });\n }\n\n // keep price with VAT by default when recalculating prices\n get defaultItemLastChangedProp(): keyof IRegularDocumentItemEntity {\n return RegularDocumentItemEntity.TransactionAmount;\n }\n\n get datePropForNumberRange(): keyof IProformaInvoiceIssuedEntity {\n return this.isCashBasisAccountingCompany ? ProformaInvoiceIssuedEntity.DateIssued\n : (isDDOP({ storage: this.props.storage }) ? ProformaInvoiceIssuedEntity.DateAccountingTransaction\n : ProformaInvoiceReceivedEntity.DateProcessed);\n }\n\n get datePropForCurrencyExchangeRate(): keyof IProformaInvoiceIssuedEntity {\n return this.datePropForNumberRange;\n }\n\n getFormTitle = (): string => {\n return getProformaFormTitle(this.props.storage);\n };\n\n async setMatchingNumberRangeForDocument(forceReload?: boolean) {\n setMatchingNumberRangeForDocumentWithoutFiscalYear(this.props.storage, this.props.storage.getEntity()[this.datePropForNumberRange] as Date, forceReload);\n\n await super.setMatchingNumberRangeForDocument(forceReload);\n this.props.storage.refresh();\n }\n\n handleConvertToDDOP = () => {\n handleConvertToDDOP(this);\n };\n\n renderSaveButtons(): React.ReactElement {\n const saveButtons = super.renderSaveButtons();\n if (canConvertToDDOP({ storage: this.props.storage })) {\n return (<>\n \n {saveButtons}\n );\n }\n return saveButtons;\n }\n\n documentSpecificChangeHandlers = (e: ISmartFieldChange) => {\n this.handleDateIssuedChange(e);\n handleInvoiceTypeSwitchChange(this.props.storage, e);\n handleDateProcessedChange(this, e);\n handleCalculateVatChange(this, e);\n };\n\n documentSpecificBlurHandlers = (e: ISmartFieldBlur) => {\n handleDocumentSpecificBlurHandlers(this, e, true);\n };\n\n getSuccessMessage(isPosted: boolean, isClosed: boolean): string {\n return getSuccessMessage(this.props.storage, isPosted, isClosed);\n }\n\n onBeforeSave(): IEntity {\n const data: IProformaInvoiceIssuedEntity = super.onBeforeSave();\n return onBeforeSave(this.props.storage, data, this);\n }\n\n render(): JSX.Element {\n if (shouldNotAllowDDOPP(this.props.storage)) {\n // don't allow access to DDOPP for non vat payer\n return ;\n }\n\n return super.render();\n }\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withPermissionContext(withDomManipulator(ProformaInvoicesIssuedFormView))));\n","import { EntitySetName, EntityTypeName, ProformaInvoiceIssuedEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { hasEverBeenVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../../model/Model\";\nimport { commonDocumentTranslations } from \"../../Document.utils\";\nimport {\n addDateGroupDateField,\n clearEmptyDateGroupDateFields,\n getDefinitions as getDocumentDefinitions\n} from \"../../DocumentDef\";\nimport { addDateIssued } from \"../../invoicesReceived/InvoicesReceivedDef\";\nimport { enhanceWithCommonProformaDefinitions } from \"../ProformaInvoice.utils\";\nimport ProformaInvoicesIssuedFormView from \"./ProformaInvoicesIssuedFormView\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.ProformaInvoicesIssued,\n documentType: DocumentTypeCode.ProformaInvoiceIssued,\n tableId: `${EntityTypeName.ProformaInvoiceIssued}Table`,\n formId: `${EntityTypeName.ProformaInvoiceIssued}Form`,\n formControl: ProformaInvoicesIssuedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"ProformaInvoicesIssued:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"ProformaInvoicesIssued:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesIssued],\n context\n }));\n\n if (!hasEverBeenVatRegisteredCompany(context)) {\n definition.table.title = i18next.t(`ProformaInvoicesIssued:Title_WithoutVat`);\n }\n\n enhanceWithCommonProformaDefinitions(definition, DocumentTypeCode.ProformaInvoiceIssued, getDefinitions.translationFiles[0], context);\n\n addDateIssued(definition, false, true);\n\n addDateGroupDateField(definition.form, ProformaInvoiceIssuedEntity.DateDue);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"ProformaInvoicesIssued\", \"Proforma\", ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.ProformaInvoiceIssued, getDefinitions);","import ReceivedDocumentBaseFormView from \"../../ReceivedDocumentBaseFormView\";\nimport { withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { withDomManipulator } from \"../../../../contexts/domManipulator/withDomManipulator\";\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport {\n IProformaInvoiceReceivedEntity,\n IRegularDocumentItemEntity,\n ProformaInvoiceIssuedEntity,\n ProformaInvoiceReceivedEntity,\n RegularDocumentItemEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n canConvertToDDOP,\n getProformaFormTitle,\n getSuccessMessage,\n handleCalculateVatChange,\n handleConvertToDDOP,\n handleDateProcessedChange,\n handleDocumentSpecificBlurHandlers,\n handleInvoiceTypeSwitchChange,\n isDDOP,\n onAfterLoad,\n onBeforeSave,\n setFiscalYearForNumberRangeWithoutFiscalYear,\n shouldNotAllowDDOPP\n} from \"../ProformaInvoice.utils\";\nimport React from \"react\";\nimport { Button } from \"../../../../components/button\";\nimport { IDocumentFormViewProps } from \"../../DocumentInterfaces\";\nimport { replaceWildcardsAfterDateChange } from \"@pages/numberRange/NumberRange.utils\";\nimport { NoPermission } from \"../../../../views/notFound\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { isReadOnlyByPath } from \"@components/smart/FieldInfo\";\nimport { withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\n\n\nclass ProformaInvoicesReceivedFormView extends ReceivedDocumentBaseFormView {\n documentTypeCode = DocumentTypeCode.ProformaInvoiceReceived;\n\n constructor(props: IDocumentFormViewProps) {\n super(props);\n\n this.setMatchingNumberRangeForDocument = this.setMatchingNumberRangeForDocument.bind(this);\n }\n\n get preventDraftSave(): boolean {\n return super.preventDraftSave || !this.props.storage.afterLoaded;\n }\n\n async onAfterLoad(hasPreloadedData?: boolean): Promise {\n const { storage } = this.props;\n\n await super.onAfterLoad(hasPreloadedData);\n await onAfterLoad(storage, this);\n // use delayed refresh instead of sync, so that preventDraftSave has afterLoaded already set to true\n storage.refresh(true);\n }\n\n get hasAccountAssignment(): boolean {\n return isAccountAssignmentCompany(this.context) && isDDOP({ storage: this.props.storage });\n }\n\n // keep price with VAT by default when recalculating prices\n get defaultItemLastChangedProp(): keyof IRegularDocumentItemEntity {\n return RegularDocumentItemEntity.TransactionAmount;\n }\n\n get datePropForNumberRange(): keyof IProformaInvoiceReceivedEntity {\n return this.isCashBasisAccountingCompany ? ProformaInvoiceReceivedEntity.DateReceived\n : (isDDOP({ storage: this.props.storage }) ? ProformaInvoiceReceivedEntity.DateAccountingTransaction\n : ProformaInvoiceReceivedEntity.DateProcessed);\n }\n\n get datePropForCurrencyExchangeRate(): keyof IProformaInvoiceReceivedEntity {\n return this.datePropForNumberRange;\n }\n\n getFormTitle = (): string => {\n return getProformaFormTitle(this.props.storage);\n };\n\n async setMatchingNumberRangeForDocument(forceReload?: boolean) {\n // set FY for NumberRange\n const { storage } = this.props;\n\n if (isReadOnlyByPath(storage, ProformaInvoiceIssuedEntity.NumberOurs)) {\n return;\n }\n\n // set actual FY specific for NumberRange according to DateProcessed instead on DateAccountingTransaction\n const didChange = setFiscalYearForNumberRangeWithoutFiscalYear(storage, this.props.storage.getEntity()[this.datePropForNumberRange] as Date);\n\n if (!didChange && !forceReload) {\n replaceWildcardsAfterDateChange(storage, this.datePropForNumberRange);\n }\n\n await super.setMatchingNumberRangeForDocument(forceReload);\n storage.refresh();\n }\n\n handleConvertToDDOP = () => {\n handleConvertToDDOP(this);\n };\n\n renderSaveButtons(): React.ReactElement {\n const saveButtons = super.renderSaveButtons();\n if (canConvertToDDOP({ storage: this.props.storage })) {\n return (<>\n \n {saveButtons}\n );\n }\n return saveButtons;\n }\n\n documentSpecificChangeHandlers(e: ISmartFieldChange) {\n super.documentSpecificChangeHandlers(e);\n\n handleInvoiceTypeSwitchChange(this.props.storage, e);\n handleDateProcessedChange(this, e);\n handleCalculateVatChange(this, e);\n }\n\n documentSpecificBlurHandlers = (e: ISmartFieldBlur) => {\n handleDocumentSpecificBlurHandlers(this, e, false);\n this.handleSpecificNumberTheirsBlur(e);\n };\n\n getSuccessMessage(isPosted: boolean, isClosed: boolean): string {\n return getSuccessMessage(this.props.storage, isPosted, isClosed);\n }\n\n onBeforeSave(): IEntity {\n const data: IProformaInvoiceReceivedEntity = super.onBeforeSave();\n return onBeforeSave(this.props.storage, data, this);\n }\n\n render(): JSX.Element {\n if (shouldNotAllowDDOPP(this.props.storage)) {\n // don't allow access to DDOP for non vat payer\n return ;\n }\n\n return super.render();\n }\n}\n\nexport default withPromisedComponent(withConfirmationDialog(withPermissionContext(withDomManipulator(ProformaInvoicesReceivedFormView))));\n","import { IEntity } from \"@odata/BindingContext\";\nimport { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { hasEverBeenVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { Model } from \"../../../../model/Model\";\nimport { commonDocumentTranslations } from \"../../Document.utils\";\nimport { addPaymentOrderTableDefs } from \"../../DocumentCommonDefs\";\nimport { clearEmptyDateGroupDateFields, getDefinitions as getDocumentDefinitions } from \"../../DocumentDef\";\nimport { addDateReceived, addDateVATDeduction, addNumberTheirs } from \"../../invoicesReceived/InvoicesReceivedDef\";\nimport { enhanceWithCommonProformaDefinitions } from \"../ProformaInvoice.utils\";\nimport ProformaInvoicesReceivedFormView from \"./ProformaInvoicesReceivedFormView\";\n\nconst getItemBreadCrumbText = (entity: IEntity) => {\n const value = entity.NumberOurs;\n return value\n ? i18next.t(\"ProformaInvoicesReceived:Breadcrumbs.InvoiceWithNumber\", { number: value })\n : i18next.t(\"ProformaInvoicesReceived:Breadcrumbs.NewInvoice\");\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.ProformaInvoicesReceived,\n documentType: DocumentTypeCode.ProformaInvoiceReceived,\n tableId: `${EntityTypeName.ProformaInvoiceReceived}Table`,\n formId: `${EntityTypeName.ProformaInvoiceReceived}Form`,\n formControl: ProformaInvoicesReceivedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"ProformaInvoicesReceived:Breadcrumbs.NewInvoice\"),\n storage.data.entity?.NumberOurs && i18next.t(\"ProformaInvoicesReceived:Breadcrumbs.InvoiceWithNumber\", { number: storage.data.entity.NumberOurs })),\n permissions: [CompanyPermissionCode.InvoicesReceived],\n context\n }));\n\n if (!hasEverBeenVatRegisteredCompany(context)) {\n definition.table.title = i18next.t(`ProformaInvoicesReceived:Title_WithoutVat`);\n }\n\n addDateVATDeduction(definition, context);\n enhanceWithCommonProformaDefinitions(definition, DocumentTypeCode.ProformaInvoiceReceived, getDefinitions.translationFiles[0], context);\n\n // Specific definitions for received proforma / DDOP\n addNumberTheirs(definition);\n addDateReceived(definition, true);\n addPaymentOrderTableDefs(definition);\n\n return clearEmptyDateGroupDateFields(definition);\n};\n\ngetDefinitions.translationFiles = [\"ProformaInvoicesReceived\", \"Proforma\", \"InvoicesReceived\", ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.ProformaInvoiceReceived, getDefinitions);\n","import { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { isODataError } from \"@odata/Data.types\";\nimport {\n DocumentAccountAssignmentEntity,\n DocumentAccountAssignmentSelectionEntity,\n DocumentEntity,\n ElectronicSubmissionEntity,\n EntitySetName,\n EntityTypeName,\n IDocumentEntity,\n IElectronicSubmissionEntity,\n IElectronicSubmissionsLockParameters,\n InternalDocumentEntity,\n OdataActionName,\n ODataActionPath\n} from \"@odata/GeneratedEntityTypes\";\nimport { OData, ODataQueryBuilder } from \"@odata/OData\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport memoizeOne from \"@utils/memoizeOne\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { saveAs } from \"file-saver\";\n\nimport { REST_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n ElectronicSubmissionSubmissionTypeCode,\n ElectronicSubmissionTypeCode,\n VatStatementFrequencyCode,\n VatStatusCode\n} from \"../../odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"../../odata/GeneratedEnums.utils\";\nimport { getUtcDate, getUtcDateBy, getUtcDayjs } from \"../../types/Date\";\nimport { getCompanyVatStatusesSorted } from \"../../utils/CompanyUtils\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport { createVatStatementPeriod, getDayjsUnit, VatStatementPeriod } from \"../companies/Company.utils\";\nimport { getMostCurrentFiscalYear, getOldestActiveFY, getSortedFYs } from \"../fiscalYear/FiscalYear.utils\";\nimport { IDateRangeParam } from \"../reports/Report.utils\";\n\nconst ELECTRONIC_SUBMISSION_REST_API = `${REST_API_URL}/ElectronicSubmissions`;\n\nexport const REGULAR_SUBMISSION_THRESHOLD_DATE = 25;\n\nexport enum ElectronicSubmissionDateRangeType {\n Regular = \"Regular\",\n Corrective = \"Corrective\"\n}\n\nexport enum SubmissionStatus {\n Locked = \"Locked\",\n Unlocked = \"Unlocked\",\n // white background\n // - submission can exist at that time, but user is not supposed to be able to create it yet\n Empty = \"Empty\",\n // without background\n // - submission of that type can't exist at that time\n NonExisting = \"NonExisting\"\n}\n\nexport interface ISubmissionInfo {\n status: SubmissionStatus;\n // key for ISubmissionOverviewData.submissions object to get the submission entity\n submissionId: string;\n frequency: VatStatementFrequencyCode;\n isSelected?: boolean;\n isCorrective?: boolean;\n // quarterly VatVies that will be split into monthly when unlocked\n isSplittable?: boolean;\n}\n\n// array instead of just one value, because there can be multiple (corrective) submissions for the same period\n// the last one in the array is the current one\nexport type TSubmissionsMap = Map;\n\nexport interface ISubmissionOverviewRow {\n month: number;\n [ElectronicSubmissionTypeCode.VatStatement]?: ISubmissionInfo;\n [ElectronicSubmissionTypeCode.VatControlStatement]?: ISubmissionInfo;\n [ElectronicSubmissionTypeCode.VatVIESStatement]?: ISubmissionInfo;\n}\n\n// export interface ISubmissionOverviewData {\n// rows: ISubmissionOverviewRow[];\n//\n// }\n\nexport const SubmissionTypeColumnOrder = {\n [ElectronicSubmissionTypeCode.VatStatement]: 1,\n [ElectronicSubmissionTypeCode.VatControlStatement]: 2,\n [ElectronicSubmissionTypeCode.VatVIESStatement]: 3\n\n};\n\nexport const ElectronicSubmissionNamespaces = [\n \"Common\", \"Audit\", \"ElectronicSubmission\", \"Document\", getEnumNameSpaceName(EntityTypeName.VatStatementStatus), getEnumNameSpaceName(EntityTypeName.ElectronicSubmissionSubmissionType)\n];\n\nexport function isSubmissionLocked(submission: IElectronicSubmissionEntity): boolean {\n // no IsLocked property anymore, any existing submission is considered locked\n return !!submission?.Id;\n}\n\ninterface IGetSubmissionFileUrl {\n context: IAppContext;\n type: ElectronicSubmissionTypeCode;\n submission: IElectronicSubmissionEntity;\n}\n\nexport function getSubmissionEpoFileUrl(args: IGetSubmissionFileUrl): string {\n const ident = args.submission?.Id;\n return `${REST_API_URL}/VatStatementEpo/${ident}?CompanyId=${args.context.getCompany().Id}`;\n}\n\nexport async function downloadSubmissionXmlFile(args: IGetSubmissionFileUrl, fileName?: string): Promise {\n const file = await FileStorage.get(args.submission.FileMetadata.Id, { fileName: fileName ? `${fileName}.xml` : null });\n\n if (file) {\n saveAs(file);\n }\n}\n\nexport async function getLastSubmissionByType(oData: OData, type?: ElectronicSubmissionTypeCode): Promise {\n try {\n const filters = [];\n\n if (type) {\n filters.push(`ElectronicSubmissionTypeCode eq '${ElectronicSubmissionTypeCode.VatStatement}'`);\n }\n\n const query = oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions).query()\n .filter(filters.join(\" AND \"))\n .orderBy(\"DatePeriodStart\", false);\n\n const res = await query.fetchData();\n\n return res?.value?.[0];\n } catch (e) {\n return null;\n }\n}\n\ninterface IGetElectronicSubmissionArgs {\n oData: OData;\n year?: number;\n type?: ElectronicSubmissionTypeCode;\n}\n\nexport async function getElectronicSubmissions({\n oData,\n year,\n type\n }: IGetElectronicSubmissionArgs): Promise {\n let query = oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions)\n .query()\n .expand(ElectronicSubmissionEntity.FileMetadata)\n // we can have multiple (amended) submissions for the same period,\n // => order them by submission date so that the last one is used in the submissions map as the current one\n .orderBy(ElectronicSubmissionEntity.DateSubmission);\n\n query = expandElectronicSubmissionEntityForVat(query);\n\n let filter = \"\";\n\n if (year) {\n filter = `${ElectronicSubmissionEntity.DatePeriodStart} qe '${year}-01-01' AND ${ElectronicSubmissionEntity.DatePeriodStart} le '${year}-12-31'`;\n }\n\n if (type) {\n if (filter) {\n filter += \" AND \";\n }\n\n filter += `${ElectronicSubmissionEntity.ElectronicSubmissionTypeCode} eq '${type}'`;\n }\n\n if (filter) {\n query.filter(filter);\n }\n\n query.orderBy(ElectronicSubmissionEntity.DatePeriodStart);\n\n const res = await query.fetchData();\n\n return res?.value;\n}\n\nexport interface IPossibleSubmissionRange {\n DateStart: Date;\n DateEnd: Date;\n Type: ElectronicSubmissionDateRangeType[];\n CanBeLocked: boolean;\n}\n\nexport type TPossibleSubmissions = Partial>;\n\nexport const fetchPossibleSubmissions = async (year: number): Promise => {\n const url = `${ELECTRONIC_SUBMISSION_REST_API}/GetUnlockedSubmissions/${year}`;\n const res = await customFetch(url);\n const possibleSubmissions: TPossibleSubmissions = {};\n\n if (res.ok) {\n const value = await res.json() as TPossibleSubmissions;\n // parse dates for every possible submission\n for (const key of Object.keys(value)) {\n possibleSubmissions[key as ElectronicSubmissionTypeCode] = value[key as ElectronicSubmissionTypeCode]\n .map(s => ({\n ...s,\n DateStart: getUtcDate(s.DateStart),\n DateEnd: getUtcDate(s.DateEnd)\n }));\n }\n }\n\n return possibleSubmissions;\n};\n\ninterface IFetchSubmissionData {\n context: IAppContext;\n oData: OData;\n year?: number;\n}\n\nexport const fetchSubmissionData = async (args: IFetchSubmissionData): Promise<{\n firstVatPeriodDate: Dayjs;\n lastVatPeriodDate: Dayjs;\n submissions: TSubmissionsMap;\n submissionsRows: IElectronicSubmissionEntity[];\n possibleSubmissions: TPossibleSubmissions;\n year: number;\n}> => {\n const rows = await getElectronicSubmissions({ oData: args.oData });\n let year = args.year;\n\n // if year not set, call twice, first without possibleSubmission, to get the year,\n // then with possibleSubmission to get the correct locked submissions\n if (!year) {\n const { lastVatPeriodDate } = getInitSubmissionsData({\n submissions: rows,\n context: args.context\n });\n\n year = lastVatPeriodDate.year();\n\n const fiscalYears = getSortedFYs(args.context);\n const fiscalYear = fiscalYears.find(fy => fy.DateStart.getFullYear() === year);\n\n if (!fiscalYear) {\n // if there is no fiscal year for the year, get closest one to today\n year = getMostCurrentFiscalYear(args.context)?.DateStart.getFullYear();\n }\n }\n\n const possibleSubmissions = await fetchPossibleSubmissions(year);\n\n const { firstVatPeriodDate, lastVatPeriodDate, submissions } = getInitSubmissionsData({\n submissions: rows,\n possibleSubmissions,\n context: args.context\n });\n\n return {\n firstVatPeriodDate,\n lastVatPeriodDate,\n submissions,\n submissionsRows: rows,\n possibleSubmissions,\n year\n };\n};\n\nexport function getSubmissionIdBy(type: ElectronicSubmissionTypeCode, dateStart: Date): string {\n return `${type}-${dateStart.getFullYear()}-${dateStart.getMonth()}`;\n}\n\nexport function getSubmissionId(entity: IElectronicSubmissionEntity): string {\n const dateStart = getUtcDate(entity.DatePeriodStart);\n\n return getSubmissionIdBy(entity.ElectronicSubmissionTypeCode as ElectronicSubmissionTypeCode, dateStart);\n}\n\nexport function parseSubmissionId(submissionId: string): {\n type: ElectronicSubmissionTypeCode,\n year: number,\n month: number\n} {\n const [type, year, month] = submissionId.split(\"-\");\n\n return {\n type: type as ElectronicSubmissionTypeCode,\n year: parseInt(year),\n month: parseInt(month)\n };\n}\n\nexport function getVatStatementFrequencyFromSubmission(submission: IElectronicSubmissionEntity): VatStatementFrequencyCode {\n // third parameter is true to get the decimal value\n // round up to ensure correct months diff\n const periodLength = getUtcDayjs(submission.DatePeriodEnd).add(1, \"day\").diff(submission.DatePeriodStart, \"months\", true);\n\n return Math.round(periodLength) === 3 ? VatStatementFrequencyCode.Quarterly : VatStatementFrequencyCode.Monthly;\n}\n\nexport function getVatStatementFrequencyFromDateRange(dateRange: IDateRangeParam): VatStatementFrequencyCode {\n const periodLength = getUtcDayjs(dateRange.DateEnd).add(1, \"day\").diff(dateRange.DateStart, \"months\", true);\n\n return Math.round(periodLength) === 3 ? VatStatementFrequencyCode.Quarterly : VatStatementFrequencyCode.Monthly;\n}\n\ninterface IGetVatStatementFrequencyForSubmissionTypeArgs {\n type: ElectronicSubmissionTypeCode;\n month: number;\n submission: IElectronicSubmissionEntity;\n possibleSubmissions: TPossibleSubmissions;\n}\n\nexport function getVatStatementFrequencyForSubmissionType(args: IGetVatStatementFrequencyForSubmissionTypeArgs): VatStatementFrequencyCode {\n const { type, month, submission, possibleSubmissions } = args;\n\n if (submission) {\n return getVatStatementFrequencyFromSubmission(submission);\n }\n\n const possibleSubmission = getPossibleSubmission(possibleSubmissions, type, month);\n\n if (!possibleSubmission) {\n return null;\n }\n\n return possibleSubmission.DateEnd.getMonth() - possibleSubmission.DateStart.getMonth() === 0 ? VatStatementFrequencyCode.Monthly : VatStatementFrequencyCode.Quarterly;\n}\n\n\nfunction expandElectronicSubmissionEntityForVat(query: ODataQueryBuilder): ODataQueryBuilder {\n return query\n .expand(ElectronicSubmissionEntity.VatClearingDocument, (q) => q.select(InternalDocumentEntity.Id, InternalDocumentEntity.NumberOurs))\n .expand(ElectronicSubmissionEntity.VatStatementDocument, (q) => {\n q.select(DocumentEntity.Id, DocumentEntity.NumberOurs, DocumentEntity.Amount, DocumentEntity.CurrencyCode, DocumentEntity.DocumentTypeCode, DocumentEntity.DateCreated);\n q.expand(DocumentEntity.AccountAssignmentSelection, (qq) => {\n qq.expand(DocumentAccountAssignmentSelectionEntity.AccountAssignment, (qqq) => {\n qqq.expand(DocumentAccountAssignmentEntity.ChartOfAccounts);\n qqq.expand(DocumentAccountAssignmentEntity.CreditAccount);\n qqq.expand(DocumentAccountAssignmentEntity.DebitAccount);\n });\n });\n });\n}\n\nexport async function unlockSubmission(oData: OData, submission: IElectronicSubmissionEntity): Promise {\n const wrapper = oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions);\n\n const action = ODataActionPath[OdataActionName.ElectronicSubmissionUnlock];\n const query = expandElectronicSubmissionEntityForVat(wrapper.query(submission.Id, action));\n\n const result = await query.fetchData();\n const updatedSubmission = result.value;\n // if BE adds removing the submission entity, it won't return the updated entity most likely\n // -> return the original one with the updated IsLocked flag, so we know which entity was unlocked and\n // for which we can process the handlers\n return updatedSubmission?.Id ? updatedSubmission : { ...submission, Id: null };\n}\n\nexport function getVatStatementPeriod(forDate: Date, frequency: VatStatementFrequencyCode): VatStatementPeriod {\n const unit = getDayjsUnit(frequency);\n const periodDate = getUtcDayjs(forDate);\n\n return createVatStatementPeriod(periodDate, unit);\n}\n\ninterface ICreateLockedVatStatementSubmissionArgs {\n context: IAppContext;\n oData: OData;\n date: Date;\n vatSubmissionType: ElectronicSubmissionTypeCode;\n vatSubmissionSubmissionType: ElectronicSubmissionSubmissionTypeCode;\n freq: VatStatementFrequencyCode;\n dateCorrectionDiscovered?: Date;\n correctionReason?: string;\n referenceNumber?: string;\n}\n\nexport async function createLockedVatStatementSubmission(args: ICreateLockedVatStatementSubmissionArgs): Promise {\n const period = getVatStatementPeriod(args.date, args.freq);\n const data: IElectronicSubmissionsLockParameters = {\n DatePeriodStart: formatDateToDateString(period.from),\n DatePeriodEnd: formatDateToDateString(period.to),\n ElectronicSubmissionTypeCode: args.vatSubmissionType,\n ElectronicSubmissionSubmissionTypeCode: args.vatSubmissionSubmissionType,\n Company: { Id: args.context.getCompanyId() }\n };\n const wrapper = args.oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions);\n const query = expandElectronicSubmissionEntityForVat(wrapper.query(null, ODataActionPath[OdataActionName.ElectronicSubmissionsLock]));\n\n\n if (args.dateCorrectionDiscovered) {\n data.DateCorrectionDiscovered = formatDateToDateString(args.dateCorrectionDiscovered);\n data.CorrectionReason = args.correctionReason;\n data.ReferenceNumberOfNotice = args.referenceNumber;\n }\n\n const res = await query.fetchData(null, null, data);\n return res.value;\n}\n\nexport async function createVatSubmissionDocuments(submission: IElectronicSubmissionEntity, amount: number, dateAccountingTransaction?: Date, accountNumber?: string): Promise {\n const url = `${ELECTRONIC_SUBMISSION_REST_API}/CreateVatDocuments/${submission.Id}`;\n const params: {\n CustomVatLiability: number;\n DateAccountingTransaction?: string;\n AccountNumber?: string;\n } = {\n CustomVatLiability: amount\n };\n\n if (dateAccountingTransaction) {\n params.DateAccountingTransaction = formatDateToDateString(dateAccountingTransaction);\n }\n\n if (accountNumber) {\n params.AccountNumber = accountNumber;\n }\n\n const res = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify(params)\n });\n const body = await parseResponse(res);\n if (isODataError(body)) {\n throw body;\n }\n return body;\n}\n\nexport async function removeVatSubmissionDocuments(submission: IElectronicSubmissionEntity): Promise {\n const url = `${ELECTRONIC_SUBMISSION_REST_API}/RemoveVatDocuments/${submission.Id}`;\n const res = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify({})\n });\n return res.ok;\n}\n\n\nexport const getNextPeriodStart = (prevPeriodEndDate: Date, context: IAppContext) => {\n const preferred = getUtcDayjs(prevPeriodEndDate).add(1, \"day\");\n const preferredDate = preferred.toDate();\n const FYs = getSortedFYs(context);\n const lastFY = FYs[FYs.length - 1];\n\n if (preferred.isAfter(lastFY.DateEnd)) {\n return null;\n }\n\n const vatStatuses = getCompanyVatStatusesSorted(context.getCompany());\n const nextVatRegisteredStatus = vatStatuses.find(status => status.DateValidTo > preferredDate && status.VatStatusCode === VatStatusCode.VATRegistered);\n\n return nextVatRegisteredStatus ? dayjs.max(preferred, getUtcDayjs(nextVatRegisteredStatus.DateValidFrom)).startOf(\"month\") : null;\n};\n\nexport const getClosestVisiblePeriod = (submission: IElectronicSubmissionEntity, context: IAppContext) => {\n const previousPeriodEndDate = getUtcDayjs(submission.DatePeriodStart).subtract(1, \"day\");\n // find next period according to previous date as it could be the submission itself or next start of VatRegistered period\n return getNextPeriodStart(previousPeriodEndDate.toDate(), context);\n};\n\n\ninterface ICreateSubmissionDataFromSubmissionsArgs {\n submissions: IElectronicSubmissionEntity[];\n possibleSubmissions?: TPossibleSubmissions;\n context: IAppContext;\n // year?: number;\n}\n\nexport const getInitSubmissionsData = (args: ICreateSubmissionDataFromSubmissionsArgs): {\n firstVatPeriodDate: Dayjs;\n lastVatPeriodDate: Dayjs;\n submissions: TSubmissionsMap;\n} => {\n const { submissions, context } = args;\n const possibleSubmissions = args.possibleSubmissions ?? {\n [ElectronicSubmissionTypeCode.VatStatement]: [],\n [ElectronicSubmissionTypeCode.VatControlStatement]: [],\n [ElectronicSubmissionTypeCode.VatVIESStatement]: []\n };\n\n const submissionsMap = new Map();\n\n let firstVatPeriodDate: Dayjs;\n // last vat period after the last locked submission,\n // locked submissions means all the different vat submission columns are locked in the period\n let lastVatPeriodDate: Dayjs;\n // arbitrary submission type that is locked, latest in time\n let lastLockedVatPeriod: IElectronicSubmissionEntity;\n // VatSubmission that is locked and all related VatControlStatement and VatVIESStatement are locked for the same period\n let lastLockedAllVatTypesPeriod: IElectronicSubmissionEntity;\n let firstUnlockedVatPeriod: IElectronicSubmissionEntity;\n\n submissions.forEach(submission => {\n if (!firstVatPeriodDate || firstVatPeriodDate.isAfter(submission.DatePeriodStart)) {\n firstVatPeriodDate = getUtcDayjs(submission.DatePeriodStart);\n }\n\n if (isSubmissionLocked(submission)) {\n if (!lastLockedVatPeriod || getUtcDayjs(lastLockedVatPeriod.DatePeriodStart).isBefore(submission.DatePeriodStart)) {\n lastLockedVatPeriod = submission;\n }\n } else {\n if (!firstUnlockedVatPeriod || getUtcDayjs(firstUnlockedVatPeriod.DatePeriodStart).isAfter(submission.DatePeriodStart)) {\n firstUnlockedVatPeriod = submission;\n }\n }\n\n // to determine if all types of VAT statements are locked,\n // so that we know whether we can move lastVatPeriodDate to the next period or not,\n // we need to check if all other VAT statements types related to the VatStatement are locked\n if (submission.ElectronicSubmissionTypeCode === ElectronicSubmissionTypeCode.VatStatement && isSubmissionLocked(submission)) {\n const periodStart = getUtcDayjs(submission.DatePeriodStart);\n const periodEnd = getUtcDayjs(submission.DatePeriodEnd);\n const fnGetRelatedSubmissions = (relatedType: ElectronicSubmissionTypeCode) => {\n return submissions.filter(s => s.ElectronicSubmissionTypeCode === relatedType\n && periodStart.isSameOrBefore(s.DatePeriodStart) && periodEnd.isSameOrAfter(s.DatePeriodEnd))\n .sort((a, b) => getUtcDayjs(a.DatePeriodStart).diff(getUtcDayjs(b.DatePeriodStart)));\n };\n const fnGetRelatedPossible = (relatedType: ElectronicSubmissionTypeCode) => {\n return possibleSubmissions[relatedType]?.filter(s => {\n return s.Type.includes(ElectronicSubmissionDateRangeType.Regular) && periodStart.isSameOrBefore(s.DateStart) && periodEnd.isSameOrAfter(s.DateEnd);\n }) ?? [];\n };\n const relatedTypes = [ElectronicSubmissionTypeCode.VatControlStatement, ElectronicSubmissionTypeCode.VatVIESStatement];\n let allRelatedLocked = false;\n\n for (const type of relatedTypes) {\n const relatedSubmissions = fnGetRelatedSubmissions(type);\n\n if (relatedSubmissions.length > 0) {\n // either all related submissions in that period are locked\n // different types can have different frequency, validate not only that all of them are locked,\n // but also that they cover the same period\n if (relatedSubmissions.every(relatedVatControlStatements => isSubmissionLocked(relatedVatControlStatements))\n && periodStart.isSame(relatedSubmissions[0].DatePeriodStart) && periodEnd.isSame(relatedSubmissions.slice(-1)[0].DatePeriodEnd)) {\n allRelatedLocked = true;\n break;\n }\n } else {\n // or there are no related possible submission at all for that period\n if (relatedSubmissions.length === 0 && args.possibleSubmissions && fnGetRelatedPossible(type).length === 0) {\n allRelatedLocked = true;\n break;\n }\n }\n }\n\n if (allRelatedLocked) {\n lastLockedAllVatTypesPeriod = submission;\n }\n }\n submissionsMap.set(getSubmissionId(submission), [...(submissionsMap.get(getSubmissionId(submission)) || []), submission]);\n });\n\n\n if (!firstVatPeriodDate) {\n const FY = getOldestActiveFY(context);\n const fyDateStart = getUtcDayjs(FY?.DateStart);\n const dateFromLastPeriod = fyDateStart.subtract(1, \"day\");\n\n // take first VAT period that takes places after oldest active FY\n firstVatPeriodDate = getNextPeriodStart(dateFromLastPeriod.toDate(), context) || fyDateStart;\n }\n\n if (firstUnlockedVatPeriod) {\n lastVatPeriodDate = getClosestVisiblePeriod(firstUnlockedVatPeriod, context);\n } else if (lastLockedVatPeriod) {\n if (lastLockedAllVatTypesPeriod && getUtcDayjs(lastLockedAllVatTypesPeriod.DatePeriodEnd).isSameOrAfter(lastLockedVatPeriod.DatePeriodEnd)) {\n lastVatPeriodDate = getNextPeriodStart(lastLockedVatPeriod.DatePeriodEnd, context);\n } else {\n lastVatPeriodDate = getUtcDayjs(lastLockedVatPeriod.DatePeriodStart);\n }\n\n // in case user has some locked periods, but is no longer VAT registered, there is no next period\n // => show last locked period...\n if (!lastVatPeriodDate) {\n lastVatPeriodDate = dayjs(lastLockedVatPeriod.DatePeriodStart);\n }\n } else {\n lastVatPeriodDate = firstVatPeriodDate;\n }\n\n return {\n firstVatPeriodDate,\n lastVatPeriodDate,\n submissions: submissionsMap\n };\n};\n\nexport const getPossibleSubmission = (possibleSubmissions: TPossibleSubmissions, type: ElectronicSubmissionTypeCode, month: number): IPossibleSubmissionRange => {\n return possibleSubmissions[type]?.find(s => s.DateStart.getMonth() <= month && s.DateEnd.getMonth() >= month);\n};\n\ninterface IGetSubmissionInfoArgs {\n type: ElectronicSubmissionTypeCode;\n submissions: TSubmissionsMap;\n possibleSubmissions: TPossibleSubmissions;\n date: Date;\n firstVatPeriodDate: Dayjs,\n lastVatPeriodDate: Dayjs\n previousInfoRows: ISubmissionOverviewRow[];\n context: IAppContext;\n}\n\nexport const getSubmissionInfo = (args: IGetSubmissionInfoArgs): ISubmissionInfo => {\n const {\n type,\n date,\n submissions,\n possibleSubmissions,\n context,\n firstVatPeriodDate,\n lastVatPeriodDate,\n previousInfoRows\n } = args;\n\n const monthIndex = date.getMonth();\n const submissionId = getSubmissionIdBy(type, date);\n const submission = submissions.get(submissionId)?.slice(-1)[0];\n const frequency = getVatStatementFrequencyForSubmissionType({\n submission,\n possibleSubmissions,\n month: monthIndex,\n type\n });\n let status: SubmissionStatus;\n const possibleSubmission = getPossibleSubmission(possibleSubmissions, type, monthIndex);\n const isSplittable = type === ElectronicSubmissionTypeCode.VatVIESStatement && frequency === VatStatementFrequencyCode.Quarterly && possibleSubmission && getVatStatementFrequencyFromDateRange({\n DateStart: possibleSubmission?.DateStart,\n DateEnd: possibleSubmission?.DateEnd\n }) === VatStatementFrequencyCode.Monthly;\n const isCorrective = !!possibleSubmission?.Type?.includes(ElectronicSubmissionDateRangeType.Corrective);\n\n\n if (frequency === VatStatementFrequencyCode.Quarterly && monthIndex % 3 !== 0) {\n status = SubmissionStatus.NonExisting;\n } else {\n if (submission) {\n status = isSubmissionLocked(submission) ? SubmissionStatus.Locked : SubmissionStatus.Unlocked;\n } else {\n if (!possibleSubmission) {\n status = SubmissionStatus.NonExisting;\n } else {\n let isPossibleSubmissionPartOfQuarterlySubmission = false;\n\n // backend returns possible corrective submission with Monthly frequency,\n // even if it is part of existing quarterly submission\n // => in that case, we need to set the existing submission as corrective,\n // and return current info as NonExisting to prevent breaking Quarterly grid into monthly\n if (frequency === VatStatementFrequencyCode.Monthly) {\n for (let i = monthIndex - (monthIndex % 3); i < monthIndex; i++) {\n const previousSubmission = previousInfoRows[i][type];\n\n if (previousSubmission.frequency === VatStatementFrequencyCode.Quarterly) {\n isPossibleSubmissionPartOfQuarterlySubmission = true;\n if (args.type === ElectronicSubmissionTypeCode.VatVIESStatement) {\n previousSubmission.isSplittable = true;\n } else {\n previousSubmission.isCorrective = true;\n }\n status = SubmissionStatus.NonExisting;\n }\n }\n }\n\n if (!isPossibleSubmissionPartOfQuarterlySubmission) {\n status = possibleSubmission.CanBeLocked ? SubmissionStatus.Unlocked : SubmissionStatus.Empty;\n }\n }\n }\n }\n\n return {\n submissionId,\n frequency,\n status,\n isCorrective,\n isSplittable\n };\n};\n\nexport interface IGetSubmissionInfoRowsForYearArgs {\n submissions: TSubmissionsMap;\n possibleSubmissions: TPossibleSubmissions;\n context: IAppContext;\n year: number;\n firstVatPeriodDate: Dayjs;\n lastVatPeriodDate: Dayjs;\n}\n\nexport const getSubmissionInfoRowsForYear = memoizeOne((args: IGetSubmissionInfoRowsForYearArgs): ISubmissionOverviewRow[] => {\n const getSubmissionsInfoSharedArgs = {\n submissions: args.submissions,\n possibleSubmissions: args.possibleSubmissions,\n context: args.context,\n firstVatPeriodDate: args.firstVatPeriodDate,\n lastVatPeriodDate: args.lastVatPeriodDate\n };\n const rows: ISubmissionOverviewRow[] = [];\n const possibleColumns = Object.keys(args.possibleSubmissions) as ElectronicSubmissionTypeCode[];\n\n for (let i = 0; i < 12; i++) {\n const date = getUtcDateBy(args.year, i, 1);\n\n const row: ISubmissionOverviewRow = {\n month: i\n };\n\n for (const column of possibleColumns) {\n row[column] = getSubmissionInfo({\n ...getSubmissionsInfoSharedArgs, date, type: column,\n previousInfoRows: rows\n });\n }\n\n rows.push(row);\n }\n\n return rows;\n});\n","import BindingContext from \"@odata/BindingContext\";\nimport { AccountEntity, IEntityBase } from \"@odata/GeneratedEntityTypes\";\nimport { AccountCategoryCode } from \"@odata/GeneratedEnums\";\n\nexport interface IOnVatLockOverrideConfirmDialogFinish {\n date: Date;\n accountNumber: string;\n}\n\nexport const VatLockOverrideConfirmDialogPath = BindingContext.localContext(\"VatLockOverrideConfirmDialog\");\nexport const VatLockOverrideDatePath = \"##DateAccountingTransaction##\";\nexport const VatLockOverrideAccountPath = \"##Account##\";\n\nexport interface IVatLockOverrideDialogEntity extends IEntityBase {\n [VatLockOverrideDatePath]?: Date;\n [VatLockOverrideAccountPath]?: string;\n}\n\nexport const getBalanceSheetAccountsFilter = (): string => {\n return `${AccountEntity.CategoryCode} eq '${AccountCategoryCode.BalanceSheet}'`;\n};","import { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { fetchItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { IAccountEntity, IElectronicSubmissionEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getChoAIdBasedOnDate, loadAccountsBasedOnDate } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { isMatchingAccount } from \"@pages/documents/Document.utils\";\nimport {\n getBalanceSheetAccountsFilter,\n IVatLockOverrideDialogEntity,\n VatLockOverrideAccountPath,\n VatLockOverrideDatePath\n} from \"@pages/electronicSubmission/VatLockOverrideConfirmDialog.utils\";\n\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { AwaitedArray, toTuple } from \"../../global.types\";\nimport { IContextInitArgs } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\n\ninterface IProps extends IFormViewProps {\n previousSubmission?: IElectronicSubmissionEntity;\n showAccountField?: boolean;\n}\n\nclass VatLockOverrideConfirmDialogFormView extends FormViewForExtend {\n chartOfAccountsId: number = null;\n\n getAdditionalLoadPromise = (args: IContextInitArgs) => {\n if (!this.props.showAccountField) {\n return toTuple([]);\n }\n\n return toTuple([\n loadAccountsBasedOnDate(this.props.storage, this.entity[VatLockOverrideDatePath], getBalanceSheetAccountsFilter()) as Promise\n ]);\n };\n\n getAdditionalResults(): AwaitedArray> {\n return this.props.storage.data.additionalResults;\n }\n\n onAfterLoad(): Promise {\n const isAccountUsed = this.props.storage.data.definition?.groups[0]?.rows.find(row => row.find(field => field.id === VatLockOverrideAccountPath));\n\n if (isAccountUsed) {\n // use acount number from the last submission document,\n // or 349 based on this task https://solitea-cz.atlassian.net/browse/DEV-33136?focusedCommentId=35336\n let defaultAccountNumber = \"349\";\n\n if (this.props.previousSubmission?.VatStatementDocument?.AccountAssignmentSelection?.AccountAssignment) {\n const accountType: \"DebitAccount\" | \"CreditAccount\" = this.props.previousSubmission.VatLiability < 0 ? \"DebitAccount\" : \"CreditAccount\";\n\n defaultAccountNumber = this.props.previousSubmission?.VatStatementDocument?.AccountAssignmentSelection?.AccountAssignment?.[accountType]?.Number;\n }\n\n const loadedAccounts = this.getAdditionalResults()[0];\n const defaultAccount = loadedAccounts.find(a => a.Number === defaultAccountNumber)?.Id;\n\n this.props.storage.setValue(this.props.storage.data.bindingContext.navigate(VatLockOverrideAccountPath), defaultAccount);\n this.chartOfAccountsId = getChoAIdBasedOnDate(this.props.storage, this.entity[VatLockOverrideDatePath]);\n }\n\n return super.onAfterLoad();\n }\n\n handleAccountChange = (e: ISmartFieldChange): void => {\n this.props.storage.setValue(e.bindingContext, e.value);\n this.props.storage.refreshFields();\n };\n\n handleDateChange = async (e: ISmartFieldChange): Promise => {\n if (e.bindingContext.getPath() !== VatLockOverrideDatePath || !e.triggerAdditionalTasks || !this.props.showAccountField) {\n return;\n }\n\n const date = e.value as Date;\n const oldCoA = this.chartOfAccountsId;\n const newCoA = getChoAIdBasedOnDate(this.props.storage, date);\n\n if (oldCoA === newCoA) {\n return;\n }\n\n this.props.storage.setBusy(true);\n\n const dateFieldInfo = this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(VatLockOverrideAccountPath));\n const currentAccount = dateFieldInfo.fieldSettings.items.find(item => item.id === this.entity[VatLockOverrideAccountPath])?.additionalData as IAccountEntity;\n const accountsItems = await fetchItemsByInfo(this.props.storage, dateFieldInfo);\n const matchingAccountItem = accountsItems.find(item => isMatchingAccount(item.additionalData, currentAccount));\n\n dateFieldInfo.fieldSettings.items = accountsItems;\n this.props.storage.setValue(this.props.storage.data.bindingContext.navigate(VatLockOverrideAccountPath), matchingAccountItem?.additionalData.Id ?? null);\n this.chartOfAccountsId = newCoA;\n\n this.props.storage.setBusy(false);\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === VatLockOverrideAccountPath) {\n // use manual handling to prevent the select from trying to set nested local dependent fields which we don't have and don't use here\n this.handleAccountChange(e);\n return;\n }\n\n this.handleDateChange(e);\n\n return super.handleChange(e);\n };\n}\n\nexport default withPermissionContext(VatLockOverrideConfirmDialogFormView);\n","import Dialog from \"@components/dialog/Dialog\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport BindingContext, { createBindingContext } from \"@odata/BindingContext\";\nimport { IAccountEntity, IElectronicSubmissionEntity } from \"@odata/GeneratedEntityTypes\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { getSingleAccountFieldDef } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { dateAccountingCustomValidator } from \"@pages/documents/DocumentDef\";\nimport {\n getBalanceSheetAccountsFilter,\n IOnVatLockOverrideConfirmDialogFinish,\n IVatLockOverrideDialogEntity,\n VatLockOverrideAccountPath,\n VatLockOverrideConfirmDialogPath,\n VatLockOverrideDatePath\n} from \"@pages/electronicSubmission/VatLockOverrideConfirmDialog.utils\";\nimport VatLockOverrideConfirmDialogFormView from \"@pages/electronicSubmission/VatLockOverrideConfirmDialogFormView\";\nimport { IDefinition, IGetDefinitionOptionalTranslation } from \"@pages/PageUtils\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, ValidatorType, ValueType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { getUtcDate } from \"../../types/Date\";\nimport { FormViewForExtend } from \"../../views/formView/FormView\";\nimport PlugAndPlayForm from \"../../views/formView/PlugAndPlayForm\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\n\ninterface IProps extends WithTranslation, WithOData {\n onFinish: (result: IOnVatLockOverrideConfirmDialogFinish) => void;\n title: string;\n dateFieldLabel: string;\n showAccountField?: boolean;\n previousSubmission?: IElectronicSubmissionEntity;\n}\n\n\nclass VatLockOverrideConfirmDialog extends React.PureComponent {\n _formRef = React.createRef>();\n\n handleConfirm = async () => {\n const storage = this._formRef.current.props.storage;\n await storage.validateAll();\n storage.refresh();\n\n if (!storage.isAnyError()) {\n const entity = storage.data.entity;\n let accountNumber: string = null;\n\n if (this.props.showAccountField) {\n const accountFieldInfo = storage.getInfo(storage.data.bindingContext.navigate(VatLockOverrideAccountPath));\n const accountItem = accountFieldInfo.fieldSettings.items.find(item => item.id === entity[VatLockOverrideAccountPath]);\n\n accountNumber = (accountItem?.additionalData as IAccountEntity)?.Number;\n }\n\n this.props.onFinish({\n date: entity[VatLockOverrideDatePath],\n accountNumber: accountNumber\n });\n }\n };\n\n handleCancel = () => {\n this.props.onFinish(null);\n };\n\n getBindingContext = (): BindingContext => {\n return createBindingContext(VatLockOverrideConfirmDialogPath, this.props.oData.getMetadata());\n };\n\n renderButtons = () => {\n return (\n \n );\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst getDefinition = (dateLabel: string, showAccountField: boolean): IGetDefinitionOptionalTranslation => {\n return (context: IAppContext) => {\n const accountFieldDef = getSingleAccountFieldDef({\n datePath: VatLockOverrideDatePath,\n fallbackToActiveChOA: true\n });\n\n const def: IDefinition = {\n entitySet: VatLockOverrideConfirmDialogPath,\n form: {\n id: \"VatLockOverrideConfirmDialogSpecialForm\",\n groups: [{\n id: \"Main\",\n rows: [\n [{ id: VatLockOverrideDatePath }]\n ]\n }],\n fieldDefinition: {\n [VatLockOverrideDatePath]: {\n width: BasicInputSizes.M,\n label: dateLabel,\n isRequired: true,\n type: FieldType.Date,\n valueType: ValueType.Date,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs) => {\n return dateAccountingCustomValidator(value, args, true);\n }\n }\n },\n defaultValue: getUtcDate()\n },\n [VatLockOverrideAccountPath]: {\n ...accountFieldDef,\n width: BasicInputSizes.XL,\n label: i18next.t(\"ElectronicSubmission:VatLockOverrideDialog.Account\"),\n isRequired: true,\n fieldSettings: {\n ...accountFieldDef.fieldSettings,\n preloadItems: true\n },\n filter: {\n select: () => {\n return getBalanceSheetAccountsFilter();\n }\n }\n }\n },\n translationFiles: [\"Document\"]\n }\n };\n\n if (showAccountField && !isCashBasisAccountingCompany(context)) {\n def.form.groups[0].rows.push([{ id: VatLockOverrideAccountPath }]);\n }\n\n return def;\n };\n};\n\nexport default withTranslation([\"Document\", \"Common\", \"ElectronicSubmission\"])(withOData(VatLockOverrideConfirmDialog));","import {\n Condition,\n ConditionType,\n PredefinedFilter\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString, isSameMonth } from \"@components/inputs/date/utils\";\nimport { EMPTY_DASH } from \"@components/readOnlyList/ReadOnlyList\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { TFormTable } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { fetchReportTableData, IFetchReportTableDataArgs } from \"@components/smart/smartTable/SmartReportTable.utils\";\nimport { ICellValueObject } from \"@components/table\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n CompanyEntity,\n CompanyVatReducedCoefficientEntity,\n DocumentEntity,\n EntitySetName,\n EntityTypeName,\n ICompanyEntity,\n ICompanyVatReducedCoefficientEntity,\n IDocumentEntity,\n IElectronicSubmissionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n DocumentTypeCode,\n ElectronicSubmissionTypeCode,\n PostedStatusCode,\n VatStatementFrequencyCode,\n VatStatementStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { DOCUMENT_JOURNAL_PATH, DocumentJournalProps } from \"@pages/reports/documentJournal/DocumentJournalDef\";\nimport {\n VAT_CONTROL_STATEMENT_REPORT_PATH\n} from \"@pages/reports/vatControlStatementReport/VatControlStatementReportDef\";\nimport { VatReportProps } from \"@pages/reports/VatReport.utils\";\nimport { VAT_STATEMENT_REPORT_PATH } from \"@pages/reports/vatStatementReport/VatStatementReportDef\";\nimport { VAT_VIES_STATEMENT_REPORT_PATH } from \"@pages/reports/vatVIESStatementReport/VatVIESStatementReportDef\";\nimport { isAccountAssignmentCompanyValue, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { TFetchFn } from \"@utils/oneFetch\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { LogicOperator, ReportTableRowType, Sort } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport {\n ROUTE_DOCUMENT_JOURNAL,\n ROUTE_VAT_CONTROL_STATEMENT_REPORT,\n ROUTE_VAT_STATEMENT_REPORT,\n ROUTE_VAT_VIES_STATEMENT_REPORT\n} from \"../../routes\";\nimport DateType, { DATE_MAX, DATE_MIN, DateFormat, getUtcDate, getUtcDayjs } from \"../../types/Date\";\nimport { VatStatementPeriod } from \"../companies/Company.utils\";\nimport { CommonReportProps, getStatusFilterId } from \"../reports/CommonDefs\";\nimport { IReportData, ReportColumnType, ReportFilterNodeColumnType, ReportNodeOperator } from \"../reports/Report.utils\";\n\nexport interface IVatSubmissionCountArgs {\n submission?: IElectronicSubmissionEntity;\n from?: Date;\n to?: Date;\n drillDown?: boolean;\n}\n\ninterface IGetDocumentJournalFilterDef {\n id: string;\n value: TValue;\n type: ReportColumnType;\n}\n\nexport const PREVIOUS_SUBMISSIONS_TABLE_ID = \"ElectronicSubmissionsTabsTable\";\n\nexport function getDocumentJournalStatusFilter(statusType: EntityTypeName.VatStatementStatus | EntityTypeName.ClearedStatus | EntityTypeName.PostedStatus, values: (ClearedStatusCode | VatStatementStatusCode | PostedStatusCode)[]): IGetDocumentJournalFilterDef {\n return {\n id: BindingContext.localContext(\"DocumentStatus\"),\n value: [{\n type: ConditionType.Included,\n filter: PredefinedFilter.Value,\n condition: Condition.Equals,\n value: values.map(code => getStatusFilterId(statusType, code))\n }],\n type: ReportColumnType.String\n };\n}\n\nexport type TVatSubmissionDocumentsData = Partial>;\n\ninterface IGetVatSubmissionReportArgs {\n type: ElectronicSubmissionTypeCode;\n isLocked: boolean;\n isCorrective?: boolean;\n isDrilldown?: boolean;\n}\n\nexport const getVatSubmissionReportArgs = ({\n type,\n isLocked,\n isCorrective,\n isDrilldown\n }: IGetVatSubmissionReportArgs) => {\n let path: string;\n const vatStatementStatus: string[] = [];\n\n vatStatementStatus.push(isLocked ? VatStatementStatusCode.Filed : VatStatementStatusCode.NotFiled);\n\n if (isLocked || isCorrective) {\n vatStatementStatus.push(VatStatementStatusCode.FiledAndModified);\n }\n\n switch (type) {\n case ElectronicSubmissionTypeCode.VatStatement:\n path = isDrilldown ? ROUTE_VAT_STATEMENT_REPORT : VAT_STATEMENT_REPORT_PATH;\n break;\n case ElectronicSubmissionTypeCode.VatControlStatement:\n path = isDrilldown ? ROUTE_VAT_CONTROL_STATEMENT_REPORT : VAT_CONTROL_STATEMENT_REPORT_PATH;\n break;\n case ElectronicSubmissionTypeCode.VatVIESStatement:\n path = isDrilldown ? ROUTE_VAT_VIES_STATEMENT_REPORT : VAT_VIES_STATEMENT_REPORT_PATH;\n break;\n }\n\n return {\n path, value: vatStatementStatus\n };\n};\n\nexport const getDocumentJournalReportArgs = ({\n type,\n isLocked,\n isCorrective,\n isDrilldown\n }: IGetVatSubmissionReportArgs) => {\n const vatStatementStatus: string[] = [];\n\n vatStatementStatus.push(isLocked ? VatStatementStatusCode.Filed : VatStatementStatusCode.NotFiled);\n\n if (isLocked || isCorrective) {\n vatStatementStatus.push(VatStatementStatusCode.FiledAndModified);\n }\n\n let columnName: string;\n\n switch (type) {\n case ElectronicSubmissionTypeCode.VatStatement:\n columnName = \"VatStatementStatus_Name\";\n break;\n case ElectronicSubmissionTypeCode.VatControlStatement:\n columnName = \"VatControlStatementStatus_Name\";\n break;\n case ElectronicSubmissionTypeCode.VatVIESStatement:\n columnName = \"VatViesStatementStatus_Name\";\n break;\n }\n\n return {\n path: isDrilldown ? ROUTE_DOCUMENT_JOURNAL : DOCUMENT_JOURNAL_PATH,\n value: vatStatementStatus,\n columnName\n };\n};\n\ninterface IGetVatSubmissionDocumentsDataArgs {\n subArgs: IVatSubmissionCountArgs;\n type: ElectronicSubmissionTypeCode;\n isLocked: boolean;\n isCorrective?: boolean;\n fetchFn?: TFetchFn;\n}\n\nexport async function getVatSubmissionDocumentsData(args: IGetVatSubmissionDocumentsDataArgs): Promise {\n const { type, isLocked, isCorrective, subArgs } = args;\n const { path, value } = getVatSubmissionReportArgs({\n type, isLocked, isCorrective\n });\n const fetchArgs: IFetchReportTableDataArgs = {\n path,\n settings: {\n [BindingContext.cleanLocalContext(VatReportProps.vatStatementPeriod)]: {\n DateStart: subArgs.submission?.DatePeriodStart ?? subArgs?.from,\n DateEnd: subArgs.submission?.DatePeriodEnd ?? subArgs?.to\n },\n [VatReportProps.vatStatementStatus]: value\n },\n reportHierarchy: {\n Aggregate: false,\n Columns: [\n { ColumnAlias: \"Document_NumberOurs\" }\n ],\n Groups: [],\n Aggregations: []\n }\n };\n\n const response = await fetchReportTableData(fetchArgs, args.fetchFn);\n\n\n const retVal: TVatSubmissionDocumentsData = {};\n\n if (response?.ok) {\n const data = (await response.json()) as IReportData;\n const uniqueIds = new Set();\n\n (data.Rows ?? []).forEach((row) => {\n if (row.Type === ReportTableRowType.Value) {\n // one document can be in multiple rows, so we need to only count unique ids\n uniqueIds.add(row.Value.Document_NumberOurs as string);\n }\n });\n\n retVal[type] = uniqueIds.size;\n }\n\n return retVal;\n}\n\nexport async function getDocumentJournalDocumentsData(args: IGetVatSubmissionDocumentsDataArgs): Promise {\n const { type, isLocked, isCorrective, subArgs } = args;\n const { path, value, columnName } = getDocumentJournalReportArgs({\n type, isLocked, isCorrective\n });\n const dateStart = subArgs.submission?.DatePeriodStart ?? subArgs?.from;\n const dateEnd = subArgs.submission?.DatePeriodEnd ?? subArgs?.to;\n\n const fetchArgs: IFetchReportTableDataArgs = {\n path,\n settings: {\n [BindingContext.cleanLocalContext(CommonReportProps.dateRange)]: {\n DateStart: formatDateToDateString(DATE_MIN),\n DateEnd: formatDateToDateString(DATE_MAX)\n },\n [BindingContext.cleanLocalContext(DocumentJournalProps.dateClearingStatusTo)]: formatDateToDateString(getUtcDate()),\n Filter: {\n \"Type\": ReportFilterNodeColumnType.Logic,\n \"Operator\": LogicOperator.And,\n \"Left\": {\n \"Type\": ReportFilterNodeColumnType.Logic,\n \"Operator\": LogicOperator.And,\n \"Left\": {\n \"Type\": ReportFilterNodeColumnType.Date,\n \"Operator\": ReportNodeOperator.GreaterOrEqual,\n \"Left\": {\n \"ColumnAlias\": \"Document_DateDocumentVatStatement\"\n },\n \"Right\": {\n \"Value\": formatDateToDateString(getUtcDayjs(dateStart))\n }\n },\n \"Right\": {\n \"Type\": ReportFilterNodeColumnType.Date,\n \"Operator\": ReportNodeOperator.LessOrEqual,\n \"Left\": {\n \"ColumnAlias\": \"Document_DateDocumentVatStatement\"\n },\n \"Right\": {\n \"Value\": formatDateToDateString(getUtcDayjs(dateEnd))\n }\n }\n },\n \"Right\": {\n \"Type\": ReportFilterNodeColumnType.Logic,\n \"Operator\": LogicOperator.Or,\n \"Left\": {\n \"Left\": {\n \"ColumnAlias\": columnName\n },\n \"Right\": {\n // todo use enum id instead of label once its ready on backend\n \"Value\": getEnumDisplayValue(EntityTypeName.VatStatementStatus, VatStatementStatusCode.FiledAndModified)\n },\n \"Type\": ReportFilterNodeColumnType.String,\n \"Operator\": ReportNodeOperator.Equal\n },\n \"Right\": {\n \"Left\": {\n \"ColumnAlias\": columnName\n },\n \"Right\": {\n // todo use enum id instead of label once its ready on backend\n \"Value\": getEnumDisplayValue(EntityTypeName.VatStatementStatus, VatStatementStatusCode.NotFiled)\n },\n \"Type\": ReportFilterNodeColumnType.String,\n \"Operator\": ReportNodeOperator.Equal\n }\n }\n }\n },\n reportHierarchy: {\n Aggregate: false,\n Columns: [\n { ColumnAlias: \"Document_NumberOurs\" },\n { ColumnAlias: \"Document_DateDocumentVatStatement\" },\n { ColumnAlias: columnName }\n ],\n Groups: [],\n Aggregations: []\n }\n };\n\n\n const response = await fetchReportTableData(fetchArgs, args.fetchFn);\n\n\n const retVal: TVatSubmissionDocumentsData = {};\n\n if (response?.ok) {\n const data = (await response.json()) as IReportData;\n const uniqueIds = new Set();\n\n (data.Rows ?? []).forEach((row) => {\n if (row.Type === ReportTableRowType.Value) {\n // one document can be in multiple rows, so we need to only count unique ids\n uniqueIds.add(row.Value.Document_NumberOurs as string);\n }\n });\n\n retVal[type] = uniqueIds.size;\n }\n\n return retVal;\n}\n\nexport async function getVatSubmissionClearingRatio(oData: OData, context: IAppContext, year: number): Promise {\n const companyId = context.getCompanyId();\n const query = oData.getEntitySetWrapper(EntitySetName.Companies)\n .query(companyId)\n .select(CompanyEntity.UseVatReducedDeduction, CompanyEntity.Id)\n .expand(CompanyEntity.VatReducedCoefficients, q =>\n q.filter(`${CompanyVatReducedCoefficientEntity.Year} eq ${year}`).select(CompanyVatReducedCoefficientEntity.VatReducedCoefficient, CompanyVatReducedCoefficientEntity.Id));\n\n const result = await query.fetchData();\n const company = result.value;\n\n if (company.UseVatReducedDeduction) {\n return company.VatReducedCoefficients?.[0] ?? {\n Year: year,\n VatReducedCoefficient: 0\n };\n }\n return null;\n}\n\nexport async function changeVatSubmissionClearingRatio(oData: OData, context: IAppContext, coeff: ICompanyVatReducedCoefficientEntity): Promise {\n const companyId = context.getCompanyId();\n\n await oData.getEntitySetWrapper(EntitySetName.Companies).update(companyId, {\n [`${CompanyEntity.VatReducedCoefficients}@odata.delta`]: [coeff]\n });\n}\n\nexport const getLiabilityDocumentTableDef = (context: IAppContext): TFormTable => {\n return {\n id: `LiabilityDocumentTable`,\n entitySet: EntitySetName.Documents,\n initialSortBy: [\n { id: \"DateAccountingTransaction\", sort: Sort.Asc }\n ],\n columns: [\n {\n id: DocumentEntity.DateAccountingTransaction,\n label: i18next.t(\"ElectronicSubmission:Tax.Date\"),\n isVisible: isAccountAssignmentCompanyValue\n },\n {\n id: DocumentEntity.DateCbaDocument,\n label: i18next.t(\"ElectronicSubmission:Tax.Date\"),\n isVisible: (args: IGetValueArgs) => isCashBasisAccountingCompany(args.context)\n },\n {\n\n id: DocumentEntity.DocumentType,\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"ElectronicSubmission:Tax.DocumentType\")\n },\n {\n id: DocumentEntity.NumberOurs,\n label: i18next.t(\"ElectronicSubmission:Tax.Document\"),\n formatter: (val: TValue, args?: IFormatOptions) => {\n const { item } = args;\n const { Id, NumberOurs } = item ?? {};\n\n return Id ? getTableIntentLink(NumberOurs, {\n route: `${getRouteByDocumentType(item.DocumentTypeCode as DocumentTypeCode)}/${Id}`,\n context\n }) : null;\n }\n },\n {\n id: DocumentEntity.Amount,\n label: i18next.t(\"ElectronicSubmission:Tax.Amount\")\n }\n ]\n };\n};\n\nfunction isVatStatementPeriod(value: any): value is VatStatementPeriod {\n return value?.from && value?.to;\n}\n\nexport function getVatSubmissionFrequencyFromPeriod(period: IElectronicSubmissionEntity | VatStatementPeriod): VatStatementFrequencyCode {\n let from: Date, to: Date;\n if (isVatStatementPeriod(period)) {\n from = period.from?.toDate();\n to = period.to?.toDate();\n } else {\n from = period.DatePeriodStart;\n to = period.DatePeriodEnd;\n }\n return isSameMonth(from, to) ? VatStatementFrequencyCode.Monthly : VatStatementFrequencyCode.Quarterly;\n}\n\nexport function getVatSubmissionPeriodSortValue(date: Date | Dayjs, frequency: VatStatementFrequencyCode): TValue {\n if (!frequency || !date) {\n return DATE_MIN;\n }\n return getUtcDayjs(date).startOf(frequency === VatStatementFrequencyCode.Monthly ? \"month\" : \"quarter\").toDate();\n}\n\nexport function getVatSubmissionPeriodTableCell(date: Date | Dayjs, frequency: VatStatementFrequencyCode, numeric?: boolean): ICellValueObject {\n if (!frequency || !date) {\n return { value: EMPTY_DASH, tooltip: EMPTY_DASH };\n }\n let value: string;\n const periodDate = getUtcDayjs(date);\n switch (frequency) {\n case VatStatementFrequencyCode.Quarterly:\n const quarter = periodDate.quarter();\n const year = periodDate.get(\"year\");\n value = numeric ? `${periodDate.get(\"year\")}/Q${periodDate.quarter()}`\n : i18next.t(\"ElectronicSubmission:VatSubmission.Quarter\", { count: quarter, year, ordinal: true });\n break;\n case VatStatementFrequencyCode.Monthly:\n value = numeric ? periodDate.format(\"M/YY\") : DateType.format(periodDate, DateFormat.monthAndYear);\n break;\n }\n return { value, tooltip: value };\n}\n\nexport function getVatSubmissionPeriodName(date: Date | Dayjs, frequency: VatStatementFrequencyCode, numeric?: boolean): string {\n return getVatSubmissionPeriodTableCell(date, frequency, numeric).value as string;\n}\n\nexport function isSubmissionLastPeriod(vatFrequency: VatStatementFrequencyCode, monthIndex: number): boolean {\n return vatFrequency === VatStatementFrequencyCode.Monthly ? monthIndex === 11 : monthIndex === 9;\n}","import styled from \"styled-components/macro\";\n\nimport Clickable from \"../../components/clickable\";\nimport { T_PLAIN_big, T_TITLE_2 } from \"../../global.style\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\n\nexport const StyledVatSubmissionDetail = styled.div`\n padding-bottom: ${VIEW_PADDING_VALUE}px;\n ${T_PLAIN_big};\n`;\n\nexport const StyledHeading = styled.h2`\n ${T_TITLE_2};\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n`;\n\nexport const StyledParagraph = styled.p`\n ${T_PLAIN_big};\n margin-bottom: 17px;\n`;\n\nexport const HeaderSubtitle = styled.div`\n ${T_TITLE_2};\n`;\n\nexport const LinksGrid = styled.div`\n width: fit-content;\n margin-bottom: 24px;\n ${T_PLAIN_big};\n display: grid;\n grid-template-columns: auto auto auto;\n row-gap: 12px;\n column-gap: 25px;\n`;\n\nexport const ClickableWrapper = styled.div`\n display: flex;\n gap: 30px;\n margin-bottom: 30px;\n`;\n\nexport const DocumentCountWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport const TaxFileLabelTitle = styled.div `\n font-weight: bold;\n`;\n\nexport const TaxFileValue = styled.div `\n`;\n\nexport const ClickableStyled = styled(Clickable)`\n display: inline-flex;\n align-items: center;\n\n & > svg {\n margin-left: 5px;\n }\n`;\n\nexport const TableWrapperStyled = styled.div`\n margin-bottom: 42px;\n`;\n\nexport const CustomFormWrapper = styled.div`\n padding-bottom: 38px; // todo: how much padding??\n`;","import { IconButton } from \"@components/button\";\nimport { CaretIcon } from \"@components/icon\";\nimport styled from \"styled-components/macro\";\n\nimport { T_HEADER_small } from \"../../global.style\";\n\nexport const YearSwitcherStyled = styled.div`\n display: flex;\n align-items: self-end;\n position: relative;\n left: 13px;\n`;\n\nexport const CaretIconLeft = styled(CaretIcon)`\n transform: rotate(90deg);\n`;\n\nexport const CaretIconRight = styled(CaretIcon)`\n transform: rotate(270deg);\n`;\n\nexport const Year = styled.div`\n ${T_HEADER_small};\n position: relative;\n user-select: none;\n`;\n\nexport const Line = styled.div`\n position: absolute;\n bottom: -2px;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: ${props => props.theme.C_BTN_4L_emph_bg_selected};\n`;\n\nexport const IconWrapperLeft = styled(IconButton) `\n margin-right: 8px;\n`;\n\nexport const IconWrapperRight = styled(IconButton) `\n margin-left: 8px;\n`;","import {\n Condition,\n ConditionType,\n IComplexFilter,\n PredefinedFilter\n} from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getDateFromDateOrDayjs, isDateBetween } from \"@components/inputs/date/utils\";\nimport { DocumentEntity, IFiscalPeriodEntity, IFiscalYearEntity } from \"@odata/GeneratedEntityTypes\";\nimport { FiscalYearStatusCode } from \"@odata/GeneratedEnums\";\nimport { uuidv4 } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport BindingContext, { IEntity, TEntityKey } from \"../../odata/BindingContext\";\nimport { getUtcDate, getUtcDayjs } from \"../../types/Date\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { getFiscalDataCorrespondingToDateAccountingTransaction } from \"../documents/Document.utils\";\n\nexport enum FiscalYearDefaultPeriod {\n Monthly = \"Monthly\",\n Quarterly = \"Quarterly\",\n Custom = \"Custom\"\n}\n\nexport const DefaultPeriodsPath = \"##DefaultPeriods##\";\n\nexport interface IFiscalYearEntityExtendedEntity extends IFiscalYearEntity {\n [DefaultPeriodsPath]?: FiscalYearDefaultPeriod;\n}\n\nexport const getDefaultFiscalYearDateStart = (): Date => {\n // start of the next month\n return getUtcDayjs().startOf(\"month\").startOf(\"day\").add(1, \"month\").toDate();\n};\n\nexport const getDefaultFiscalYearDateEnd = (): Date => {\n // end of the same month, next year\n return getUtcDayjs().endOf(\"month\").startOf(\"day\").add(1, \"year\").toDate();\n};\n\nexport interface ICreateDefaultPeriods {\n dateStart: Date;\n dateEnd: Date;\n step?: number;\n includeIds?: boolean;\n fiscalYearNumber?: string;\n}\n\nexport const createDefaultPeriods = ({\n dateStart,\n dateEnd,\n step = 1,\n includeIds,\n fiscalYearNumber\n }: ICreateDefaultPeriods): IFiscalPeriodEntity[] => {\n const periods: IEntity[] = [];\n\n if (dateStart && dateEnd) {\n const dayJsdateStart = getUtcDayjs(dateStart);\n const dayJsdateEnd = getUtcDayjs(dateEnd);\n let monthDiff = dayJsdateEnd.diff(dayJsdateStart, \"month\");\n const fiscalYear = fiscalYearNumber ?? dayJsdateEnd.year().toString();\n\n if (dayJsdateEnd.diff(dayJsdateStart) < 0) {\n monthDiff = -1;\n }\n\n for (let i = 0; i <= monthDiff; i += step) {\n const newPeriod: IFiscalPeriodEntity = includeIds ? BindingContext.createNewEntity(i + 1) : {};\n\n let endMonth = i + step - 1;\n\n // last period should always end with the dayEnd month\n if (i + step > monthDiff) {\n endMonth = monthDiff;\n }\n\n newPeriod.Number = getFiscalPeriodNumber(fiscalYear, i / step);\n newPeriod.Name = getFiscalPeriodName(fiscalYear, i / step);\n newPeriod.IsLockedForAP = false;\n newPeriod.IsLockedForAR = false;\n newPeriod.DateStart = dayJsdateStart.add(i, \"month\").toDate();\n newPeriod.DateEnd = dayJsdateStart.add(endMonth, \"month\").endOf(\"month\").toDate();\n\n periods.push(newPeriod);\n }\n }\n\n return periods;\n};\n\nexport const getFiscalPeriodName = (fiscalYear: string, index: number): string => {\n return `${fiscalYear}/${String(index + 1).padStart(3, \"0\")}`;\n};\n\nexport const getFiscalPeriodNumber = (fiscalYear: string, index: number): string => {\n if (!fiscalYear) {\n return \"\";\n }\n\n return `${fiscalYear}/${String(index + 1).padStart(3, \"0\")}`;\n};\n\nexport function updatePeriodNumbers(storage: FormStorage, number: string): void {\n const { bindingContext, entity } = storage.data;\n const defaultPeriods = storage.getValue(bindingContext.navigate(DefaultPeriodsPath));\n\n let index = 0;\n for (const element of bindingContext.iterateNavigation(\"Periods\", entity.Periods)) {\n if (defaultPeriods !== FiscalYearDefaultPeriod.Custom) {\n storage.clearAndSetValue(element.bindingContext.navigate(\"Name\"), getFiscalPeriodName(number, index));\n }\n storage.clearAndSetValue(element.bindingContext.navigate(\"Number\"), getFiscalPeriodNumber(number, index));\n\n index++;\n }\n}\n\nexport function getFiscalYearNumbers(dateStart: Date, dateEnd: Date, otherFiscalYears: IFiscalYearEntity[]): string[] {\n const numbers: string[] = [];\n\n const periodStart = getUtcDayjs(dateStart);\n const periodEnd = getUtcDayjs(dateEnd);\n\n let endYear: number, startYear: number;\n const findSameFiscalYearNumber = (number: string) => {\n return otherFiscalYears?.find((fiscalYear: IEntity) => fiscalYear.Number === number);\n };\n\n if (periodEnd.isValid()) {\n endYear = periodEnd.get(\"year\");\n\n if (!findSameFiscalYearNumber(endYear.toString())) {\n numbers.push(endYear.toString());\n }\n }\n\n if (endYear && periodStart.isValid() && periodEnd.diff(periodStart, \"month\") <= 24) {\n startYear = periodStart.get(\"year\");\n\n for (let i = endYear - 1; i >= startYear; i--) {\n if (!findSameFiscalYearNumber(i.toString())) {\n numbers.push(i.toString());\n }\n }\n }\n\n if (!numbers.length && endYear) {\n const shortenFiscalYearNumber = `${endYear}/Z`;\n if (!findSameFiscalYearNumber(shortenFiscalYearNumber)) {\n numbers.push(shortenFiscalYearNumber);\n }\n }\n\n return numbers;\n}\n\nexport const getFiscalYearNumber = (dateStart: Date, dateEnd: Date, otherFiscalYears: IFiscalYearEntity[] = []): string => {\n const possibleNumbers = getFiscalYearNumbers(dateStart, dateEnd, otherFiscalYears);\n\n // fiscal year number has to be unique https://solitea-cz.atlassian.net/browse/DEV-3723\n return possibleNumbers ? possibleNumbers[0] : null;\n}; // finds and sets fiscalPeriod matching to selected dateAccountingTransaction\n\nexport const getFiscalYears = (context: IAppContext, throwError = false): IFiscalYearEntity[] => {\n const fiscalYears = context?.getData().fiscalYears;\n\n if (!fiscalYears && throwError) {\n throw new Error(\"context.getFYPromise() has to be awaited before getFiscalYears\");\n }\n\n return fiscalYears;\n};\n\nexport const refreshFiscalYears = async (context: IAppContext): Promise => {\n return context.updateFiscalYears();\n};\n\nexport const getSortedFYs = memoizeOne((context: IAppContext, order: Sort = Sort.Asc): IFiscalYearEntity[] => {\n return [...getFiscalYears(context, true)]\n .sort((f1, f2) => (order === Sort.Desc ? 1 : -1) * (f2.DateStart?.getTime() - f1.DateStart?.getTime()));\n}, (context: IAppContext, order: Sort = Sort.Asc) => [context.getData().fiscalYears]);\n\nexport const isFiscalYearActive = (FY: IFiscalYearEntity): boolean => FY?.StatusCode === FiscalYearStatusCode.Active;\nexport const isFiscalYearClosed = (FY: IFiscalYearEntity): boolean => FY?.StatusCode === FiscalYearStatusCode.Closed;\nexport const isFiscalYearOpen = (FY: IFiscalYearEntity): boolean => FY && FY?.StatusCode !== FiscalYearStatusCode.Closed;\nexport const isFiscalYearUsed = (FY: IFiscalYearEntity): boolean => FY && FY?.StatusCode !== FiscalYearStatusCode.NotUsed;\n\nexport const hasClosedFY = (context: IAppContext): boolean => {\n const firstFY = getSortedFYs(context)?.[0];\n return isFiscalYearClosed(firstFY);\n};\n\nexport const getNewestInactiveFY = (context: IAppContext): IFiscalYearEntity =>\n getSortedFYs(context, Sort.Desc).find(isFiscalYearClosed);\n\nexport const getOldestActiveFY = (context: IAppContext): IFiscalYearEntity =>\n getSortedFYs(context).find(isFiscalYearActive);\n\nexport const getActiveFiscalYears = memoizeOne((context: IAppContext, order: Sort = Sort.Asc) => {\n const sortedFiscalYearsOfCurrentCompany = getSortedFYs(context, order);\n return sortedFiscalYearsOfCurrentCompany.filter(isFiscalYearActive);\n}, (context) => {\n return [getFiscalYears(context)];\n});\n\n// returns both active and not used fiscal years\nexport const getOpenFiscalYears = memoizeOne((context: IAppContext) => {\n const fiscalYearsOfCurrentCompany = getSortedFYs(context);\n return fiscalYearsOfCurrentCompany.filter(isFiscalYearOpen);\n}, (context: IAppContext) => {\n return [getFiscalYears(context)];\n});\n\nexport const isInFYorPeriod = (FY: Pick, day: Date): boolean => {\n if (!FY) {\n return false;\n }\n return isDateBetween(FY.DateStart, FY.DateEnd, day as Date);\n};\n\nexport const getMostCurrentFiscalYearBy = memoizeOne(\n (context: IAppContext, getFilteredFiscalYears: (context: IAppContext) => IFiscalYearEntity[]): IFiscalYearEntity => {\n const now = getUtcDate();\n const nowDayjs = getUtcDayjs();\n const FYs = getFilteredFiscalYears?.(context);\n // if more than one FY is active, pick the one related to currentDate (will be in most cases useful)\n // fallbacks to one closest to the current date\n return (FYs ?? []).find(FY => isInFYorPeriod(FY, now))\n ?? FYs.sort((a, b) => {\n return nowDayjs.diff(a.DateStart) - nowDayjs.diff(b.DateStart);\n })[0];\n }, (context: IAppContext) => [context?.getCompanyId()]);\n\nexport const getMostCurrentFiscalYear = (context: IAppContext): IFiscalYearEntity => {\n return getMostCurrentFiscalYearBy(context, (context: IAppContext) => getSortedFYs(context));\n};\n\nexport const getActiveFiscalYear = (context: IAppContext): IFiscalYearEntity => {\n return getMostCurrentFiscalYearBy(context, getActiveFiscalYears);\n};\n\nexport const getOpenedFiscalYear = (context: IAppContext): IFiscalYearEntity => {\n return getMostCurrentFiscalYearBy(context, getOpenFiscalYears);\n};\n\nexport const getFiscalYearByDate = (context: IAppContext, date: Date | Dayjs): IFiscalYearEntity => {\n const FYs = getSortedFYs(context);\n // don't use dayjs, it's slow\n const current = getDateFromDateOrDayjs(date);\n\n return FYs.find(FY => isInFYorPeriod(FY, current));\n};\n\nexport function getFiscalYearByChartOfAccount(context: IAppContext, choaId: TEntityKey): IFiscalYearEntity {\n const FYs = getSortedFYs(context);\n return FYs.find(FY => FY.ChartOfAccounts?.Id === choaId);\n}\n\nexport const getActiveChartOfAccountsId = (context: IAppContext): number => {\n return getActiveFiscalYear(context)?.ChartOfAccounts?.Id;\n};\n\n// finds and sets fiscalPeriod matching to selected dateAccountingTransaction\nexport const setMatchingFiscalPeriod = (storage: FormStorage, dateTransaction?: Date): void => {\n const fiscalData = getFiscalDataCorrespondingToDateAccountingTransaction(storage, dateTransaction);\n\n storage.setValueByPath(\"FiscalPeriod\", fiscalData?.fiscalPeriod ?? {});\n // We need to store also Fiscal Year to be able to work with it on that granularity, e.g. for getting related NumberRanges\n storage.setValueByPath(\"FiscalYear\", fiscalData?.fiscalYear ?? {});\n};\n\n/**\n * Creates filter for DateAccountingTransaction from given FiscalYear\n */\nexport function getDateFilterFromFY(fiscalYear: IFiscalYearEntity, dateProp: string = DocumentEntity.DateAccountingTransaction): TRecordAny {\n const _createFilter = (condition: Condition, value: Date): IComplexFilter => ({\n id: uuidv4(),\n type: ConditionType.Included,\n filter: PredefinedFilter.Value,\n condition, value\n });\n return {\n [dateProp]: [\n _createFilter(Condition.IsAfterOrEqualsTo, fiscalYear.DateStart),\n _createFilter(Condition.IsBeforeOrEqualsTo, fiscalYear.DateEnd)\n ]\n };\n}","import styled from \"styled-components/macro\";\n\nexport const AddButtonWrapper = styled.div`\n display: flex;\n align-self: flex-start;\n`;","import { Button } from \"@components/button\";\nimport { PlusIcon, StatusLockedIcon, StatusPartlyLockedIcon, StatusUnlockedIcon } from \"@components/icon\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { AuditTrailFieldMode, IFieldDefFn, IGetValueArgs, not } from \"@components/smart/FieldInfo\";\nimport {\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem, ISummaryItemEditProps } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { getNewItemsMaxId } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n FiscalPeriodEntity,\n FiscalYearEntity,\n IFiscalPeriodEntity,\n IFiscalYearStatusEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { FiscalYearStatusCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { AddButtonWrapper } from \"@pages/fiscalYear/FiscalYear.styles\";\nimport { isDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\nimport * as yup from \"yup\";\n\nimport Dialog from \"../../components/dialog/Dialog\";\nimport SmartField, { ISmartFieldChange } from \"../../components/smart/smartField/SmartField\";\nimport { FieldType, GroupedField, IconSize, LabelStatus, Sort, Status, TextAlign, ValidatorType } from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { IFilterQuery } from \"../../model/TableStorage\";\nimport { ValidationMessage } from \"../../model/Validator.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { getUtcDateBy, getUtcDayjs } from \"../../types/Date\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { IChangedFilter, ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport {\n DefaultPeriodsPath,\n FiscalYearDefaultPeriod,\n getDefaultFiscalYearDateStart,\n getFiscalPeriodNumber,\n getFiscalYearNumbers,\n updatePeriodNumbers\n} from \"./FiscalYear.utils\";\nimport FiscalYearFormView from \"./FiscalYearFormView\";\n\nconst yearFilterPath = BindingContext.localContext(\"year\");\n\nconst getStatusColor = (StatusCode: string): keyof DefaultTheme => {\n switch (StatusCode) {\n case FiscalYearStatusCode.Active:\n return \"C_SEM_text_good\";\n case FiscalYearStatusCode.NotUsed:\n return \"C_SEM_text_warning\";\n }\n return null;\n};\n\nconst statusFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions): TCellValue => {\n const title = val?.toString() ?? \"\";\n const color: keyof DefaultTheme = getStatusColor(args.entity.Status?.Code);\n\n const colorWrapper = {val};\n\n return { tooltip: title, value: colorWrapper };\n};\n\nexport const getFiscalYearStatus = (status: FiscalYearStatusCode): Status => {\n switch (status) {\n case FiscalYearStatusCode.Active:\n return Status.Success;\n case FiscalYearStatusCode.NotUsed:\n return Status.Warning;\n }\n return null;\n};\n\nconst lockFormatter = (val: TValue, values: IEntity, property: string): TCellValue => {\n let anyUnlocked = false;\n let anyLocked = false;\n\n if (isDefined(values[property])) { // current entity is one of the nested fiscal periods\n anyUnlocked = !values[property];\n anyLocked = values[property];\n } else { // current entity is fiscal year that averages the values from all the periods\n for (const period of values.Periods) {\n anyUnlocked = anyUnlocked || !period[property];\n anyLocked = anyLocked || period[property];\n\n if (anyUnlocked && anyLocked) {\n break;\n }\n }\n }\n\n let Icon;\n let title;\n\n if (anyUnlocked && !anyLocked) {\n Icon = StatusUnlockedIcon;\n title = i18next.t(\"FiscalYear:Table.Unlocked\");\n } else if (anyLocked && anyUnlocked) {\n Icon = StatusPartlyLockedIcon;\n title = i18next.t(\"FiscalYear:Table.PartiallyUnlocked\");\n } else {\n Icon = StatusLockedIcon;\n title = i18next.t(\"FiscalYear:Table.Locked\");\n }\n\n return { tooltip: title, value: };\n};\n\nconst lockedApFormatter = (val: TValue, args?: IFormatOptions): TCellValue => {\n return lockFormatter(val, args.entity, \"IsLockedForAP\");\n};\n\nconst lockedArFormatter = (val: TValue, args?: IFormatOptions): TCellValue => {\n return lockFormatter(val, args.entity, \"IsLockedForAR\");\n};\n\nconst periodNameFormatter = (val: TValue, args?: IFormatOptions): TCellValue => {\n return args.entity.Name;\n};\n\nconst yearFormatter = (val: TValue, args?: IFormatOptions): string => {\n const startYear = args.entity.DateStart.getFullYear();\n const endYear = args.entity.DateEnd.getFullYear();\n\n return startYear === endYear ? startYear.toString() : `${startYear}/${endYear}`;\n};\n\n// field is editable even in active FiscalYear\nconst isReadOnlyLoose = (args: IGetValueArgs) => {\n return args.storage.data.entity?.StatusCode === FiscalYearStatusCode.Closed;\n};\n\nconst isCustomPeriod = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(DefaultPeriodsPath) === FiscalYearDefaultPeriod.Custom;\n};\n\nconst fiscalPeriodYearPath = BindingContext.localContext(\"Year\");\n\nfunction getFiscalYearNumberItems(storage: FormStorage): ISelectItem[] {\n const { entity, bindingContext, additionalResults } = storage.data;\n const fiscalYearId = bindingContext.getKey();\n const otherFiscalYears = (additionalResults[1]?.value ?? [])\n .filter((fiscalYear: IEntity) => bindingContext.isNew() || fiscalYear.Id !== fiscalYearId);\n\n const possibleNumbers = getFiscalYearNumbers(entity.DateStart, entity.DateEnd, otherFiscalYears);\n\n return possibleNumbers.map(number => ({ id: number, label: number }));\n}\n\nconst getLockItems = () => (\n [\n {\n label: i18next.t(\"FiscalYear:Table.Unlocked\"),\n id: false\n },\n {\n label: i18next.t(\"FiscalYear:Table.Locked\"),\n id: true\n }\n ]\n);\n\nconst AddButtonPath = BindingContext.localContext(\"addButton\");\n\nconst handleAddPeriod = (storage: FormStorage) => {\n const periods = [...storage.data.entity.Periods ?? []];\n const previousPeriod = periods[periods.length - 1];\n const maxNewId = getNewItemsMaxId(periods);\n const newPeriod = BindingContext.createNewEntity(maxNewId + 1);\n\n newPeriod.Number = getFiscalPeriodNumber(storage.data.entity.Number, periods.length);\n\n if (previousPeriod && previousPeriod.DateEnd) {\n newPeriod.DateStart = getUtcDayjs(previousPeriod.DateEnd).add(1, \"month\").startOf(\"month\").toDate();\n }\n\n periods.push(newPeriod);\n storage.data.entity.Periods = periods;\n storage.refresh();\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"Number\",\n \"Periods/Name\",\n yearFilterPath,\n \"Status\",\n \"Periods/IsLockedForAP\",\n \"Periods/IsLockedForAR\"\n ],\n filterDefinition: {\n Number: {\n id: \"Number\", isValueHelp: false, filterName: [\"\", `/Periods/Number`],\n // get around Number MaxLength 4 (Periods/Number doesn't have this restriction)\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: (args: IGetValueArgs) => {\n return yup.string()\n .test(\"required\", ValidationMessage.Required,\n function (this: yup.TestContext, value: TValue) {\n return true;\n }).nullable();\n }\n }\n }\n },\n \"Periods/Name\": {\n id: \"Periods/Name\", isValueHelp: false, description: false\n },\n DateStart: {\n id: \"DateStart\", isValueHelp: false, filterName: [\"\", `/Periods/DateStart`]\n },\n DateEnd: {\n id: \"DateEnd\", isValueHelp: false, filterName: [\"\", `/Periods/DateEnd`]\n },\n [yearFilterPath]: {\n id: yearFilterPath,\n label: i18next.t(\"FiscalYear:Columns.Year\"),\n isValueHelp: false,\n filter: {\n buildFilter: (item: IChangedFilter): IFilterQuery | string => {\n const year = item.value as number;\n\n if (!year) {\n return \"\";\n }\n\n const yearDate = getUtcDayjs(getUtcDateBy(year));\n const yearStart = formatDateToDateString(yearDate.startOf(\"year\"));\n const yearEnd = formatDateToDateString(yearDate.endOf(\"year\"));\n\n const mainQuery = `DateStart ge ${yearStart} AND DateEnd le ${yearEnd}`;\n const nestedQuery = `(${mainQuery} OR Periods/any(x: x/DateStart ge ${yearStart} AND x/DateEnd le ${yearEnd}))`;\n\n return {\n query: nestedQuery,\n collectionQueries: {\n Periods: { query: mainQuery }\n }\n };\n }\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: () => yup.number().typeError(ValidationMessage.NotAYear).nullable().positive(ValidationMessage.NotAYear).integer(ValidationMessage.NotAYear)\n }\n }\n },\n ...withDisplayName(\"Status\"),\n \"Periods/IsLockedForAP\": {\n id: \"Periods/IsLockedForAP\",\n description: false,\n isValueHelp: false,\n type: FieldType.ComboBox,\n fieldSettings: { items: getLockItems(), noRecordText: i18next.t(\"Common:Select.All\") }\n },\n \"Periods/IsLockedForAR\": {\n id: \"Periods/IsLockedForAR\",\n description: false,\n isValueHelp: false,\n type: FieldType.ComboBox,\n fieldSettings: { items: getLockItems(), noRecordText: i18next.t(\"Common:Select.All\") }\n },\n ...getCommonFilterDefs()\n },\n\n isValueHelp: true\n }],\n id: `${EntityTypeName.FiscalYear}Table`,\n initialSortBy: [{ id: \"Number\", sort: Sort.Desc }],\n columns: [\n \"Number\",\n \"Periods/Name\",\n \"DateStart\",\n \"DateEnd\",\n \"Status\",\n // virtual column without representation in metadata\n fiscalPeriodYearPath,\n \"Periods/IsLockedForAP\",\n \"Periods/IsLockedForAR\"\n ],\n columnDefinition: {\n Number: { id: \"Number\", isDisabled: true, isRequired: true },\n DateStart: { id: \"DateStart\" },\n DateEnd: { id: \"DateEnd\" },\n Status: { id: \"Status\", fieldSettings: { displayName: \"Name\" }, formatter: statusFormatter },\n ...getCommonTableColumnsDefs(),\n [fiscalPeriodYearPath]: {\n label: i18next.t(\"FiscalYear:Columns.Year\"),\n formatter: yearFormatter,\n fieldSettings: { disableSort: true },\n additionalProperties: [{ id: \"/DateStart\" }, { id: \"/DateEnd\" }]\n\n },\n \"Periods/Name\": {\n id: \"Periods/Name\",\n formatter: periodNameFormatter,\n // so far, SmartTable and export don't support sort on children\n fieldSettings: {\n disableSort: true\n }\n },\n \"Periods/IsLockedForAP\": {\n id: \"Periods/IsLockedForAP\", textAlign: TextAlign.Center, formatter: lockedApFormatter,\n // we have to add additionalProperties to some of the columns to load all the needed properties of Periods\n additionalProperties: [{\n id: \"/Periods/Name\"\n }, {\n id: \"/Periods/Number\"\n }, {\n id: \"/Periods/DateStart\"\n }, {\n id: \"/Periods/DateEnd\"\n }],\n fieldSettings: { disableSort: true }\n },\n \"Periods/IsLockedForAR\": {\n id: \"Periods/IsLockedForAR\",\n textAlign: TextAlign.Center,\n formatter: lockedArFormatter,\n fieldSettings: { disableSort: true }\n }\n },\n title: i18next.t(\"FiscalYear:Title\"),\n hierarchy: \"Periods\"\n };\n\n const summary: ISummaryItem[] = [\n {\n id: \"Number\",\n isReadOnly: (args: IGetValueArgs) => {\n if (args.data.StatusCode === FiscalYearStatusCode.NotUsed) {\n const items = getFiscalYearNumberItems(args.storage as FormStorage);\n return items.length === 1;\n }\n return true;\n },\n renderEdit: (args: ISummaryItemEditProps) => {\n const onChange = (event: ISmartFieldChange) => {\n args.storage.handleTemporalChange(event);\n args.storage.refreshFields();\n };\n\n const onClose = () => {\n args.storage.cancelFields([args.bindingContext]);\n args.onClose();\n };\n\n const onConfirm = async () => {\n if (!args.storage.getValue(args.bindingContext)) {\n args.storage.cancelFields([args.bindingContext]);\n args.onClose();\n return;\n }\n\n await args.storage.confirmFields([args.bindingContext]);\n\n const number = args.storage.getValue(args.bindingContext);\n updatePeriodNumbers(args.storage, number);\n\n args.storage.refreshFields();\n args.onClose();\n };\n\n const items = getFiscalYearNumberItems(args.storage);\n\n return (\n

    }>\n \n \n );\n }\n },\n {\n id: \"Status\", label: i18next.t(\"FiscalYear:Columns.Status\"),\n formatter: (value: TValue, args: IFormatOptions) => {\n return (value as IFiscalYearStatusEntity)?.Name;\n },\n colorFormatter: (value: TValue, args: IFormatOptions) => {\n return getStatusColor((value as IFiscalYearStatusEntity)?.Code);\n }\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.FiscalYear}Form`,\n translationFiles: getDefinitions.translationFiles,\n summary,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"FiscalYear:NewPeriod\"),\n storage.data.entity?.Name ?? storage.data.entity?.Number),\n formControl: FiscalYearFormView,\n isReadOnly: isReadOnlyLoose,\n\n // we need to load ChartOfAccounts and Company to perform check for activate button\n additionalProperties: [\n { id: FiscalYearEntity.ChartOfAccounts },\n { id: FiscalYearEntity.Company },\n { id: FiscalYearEntity.StatusCode },\n {\n id: FiscalYearEntity.Periods,\n additionalProperties: [\n { id: FiscalPeriodEntity.Number },\n { id: FiscalPeriodEntity.IsLockedForAP },\n { id: FiscalPeriodEntity.IsLockedForAR }\n ]\n },\n { id: \"Status/Name\" }],\n fieldDefinition: {\n StatusCode: {\n customizationData: {\n useForCustomization: false\n },\n defaultValue: FiscalYearStatusCode.NotUsed,\n // present only for saving purposes, not supposed to be edited\n isVisible: false,\n clearIfInvisible: false\n },\n DateStart: {\n type: FieldType.MonthYear,\n defaultValue: () => {\n return getDefaultFiscalYearDateStart();\n }\n },\n DateEnd: {\n type: FieldType.MonthYear\n },\n [DefaultPeriodsPath]: {\n backendPath: FiscalYearEntity.Periods,\n type: FieldType.SegmentedButton,\n isRequired: true,\n label: i18next.t(\"FiscalYear:Form.Period\"),\n labelStatus: LabelStatus.Removed,\n auditTrailMode: AuditTrailFieldMode.Hidden,\n customizationData: {\n useForCustomization: false\n },\n fieldSettings: {\n items: [\n {\n id: FiscalYearDefaultPeriod.Monthly,\n label: i18next.t(\"FiscalYear:DefaultPeriods.Monthly\")\n },\n {\n id: FiscalYearDefaultPeriod.Quarterly,\n label: i18next.t(\"FiscalYear:DefaultPeriods.Quarterly\")\n },\n {\n id: FiscalYearDefaultPeriod.Custom,\n label: i18next.t(\"FiscalYear:DefaultPeriods.Custom\")\n }\n ]\n }\n },\n [AddButtonPath]: {\n type: FieldType.Custom,\n isVisible: (args) => {\n return args.storage.data.entity?.StatusCode === FiscalYearStatusCode.NotUsed && isCustomPeriod(args);\n },\n customizationData: {\n useForCustomization: false\n },\n render: (args: IFieldDefFn) => {\n return \n \n ;\n }\n },\n\n \"Periods/Name\": {\n isReadOnly: isReadOnlyLoose,\n isVisible: isCustomPeriod,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Periods/DateStart\": {\n type: FieldType.MonthYear,\n isReadOnly: not(isCustomPeriod),\n customizationData: {\n useForCustomization: false\n }\n },\n \"Periods/DateEnd\": {\n type: FieldType.MonthYear,\n isReadOnly: not(isCustomPeriod),\n customizationData: {\n useForCustomization: false\n }\n },\n \"Periods/IsLockedForAP\": {\n type: FieldType.Checkbox,\n fieldSettings: {\n checkBoxFieldLabel: i18next.t(\"FiscalYear:Form.Lock\")\n },\n isRequired: false,\n isVisible: (args) => {\n return !args.storage.context.getAddingNewCompany();\n },\n isReadOnly: isReadOnlyLoose,\n groupedField: GroupedField.MultiStart,\n customizationData: {\n useForCustomization: false\n }\n },\n \"Periods/IsLockedForAR\": {\n type: FieldType.Checkbox,\n labelStatus: LabelStatus.Hidden,\n isRequired: false,\n isVisible: (args) => {\n return !args.storage.context.getAddingNewCompany();\n },\n isReadOnly: isReadOnlyLoose,\n groupedField: GroupedField.MultiEnd,\n customizationData: {\n useForCustomization: false\n }\n }\n },\n groups: [\n {\n id: \"basic\",\n rows: [\n [{ id: FiscalYearEntity.DateStart }, { id: FiscalYearEntity.DateEnd }]\n ]\n },\n {\n id: \"defaultPeriods\",\n title: i18next.t(\"FiscalYear:Form.Periods\"),\n customizationData: {\n useForCustomization: false\n },\n rows: [\n [{ id: DefaultPeriodsPath }]\n ]\n },\n {\n id: \"Periods\",\n collection: FiscalYearEntity.Periods,\n collectionOrder: FiscalPeriodEntity.DateStart,\n showGroupDivider: false,\n customizationData: {\n useForCustomization: false\n },\n isVisible: (args) => {\n return !args.storage.context.getAddingNewCompany() || isCustomPeriod(args);\n },\n isRemovable: (args) => {\n return args.storage.data.entity?.StatusCode === FiscalYearStatusCode.NotUsed && isCustomPeriod(args);\n },\n // use common title because of customization\n title: i18next.t(\"FiscalYear:Form.Period\"),\n\n collectionItemTitle: (index: number, item: IEntity) => {\n const period = item as IFiscalPeriodEntity;\n return `${index + 1}. ${i18next.t(\"FiscalYear:Form.Period\")} - ${period.Number}`;\n },\n rows: [\n [{ id: FiscalPeriodEntity.Name }, { id: FiscalPeriodEntity.DateStart }, { id: FiscalPeriodEntity.DateEnd }]\n ],\n afterContent: [{ id: FiscalPeriodEntity.IsLockedForAP }, { id: FiscalPeriodEntity.IsLockedForAR }]\n\n },\n {\n id: \"actions\",\n customizationData: {\n useForCustomization: false\n },\n rows: [\n [{ id: AddButtonPath }]\n ]\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.FiscalYears,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"FiscalYear\"];\nsetDefByEntityType(EntityTypeName.FiscalYear, getDefinitions);","import { isSameDay, isSameMonth, isValidDate } from \"@components/inputs/date/utils\";\nimport { ISmartFieldChange, ISmartFieldValidationError } from \"@components/smart/smartField/SmartField\";\nimport {\n FiscalPeriodEntity,\n FiscalYearEntity,\n IChartOfAccountsEntity,\n IFiscalYearEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { FiscalYearStatusCode } from \"@odata/GeneratedEnums\";\nimport React from \"react\";\n\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport SmartFormDeleteButton from \"../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FormMode, Sort, ValidationErrorType } from \"../../enums\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { FormStorage, IFormStorageSaveResult, ISaveArgs } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend } from \"../../views/formView/FormView\";\nimport { createChartOfAccountsFromChartOfAccounts } from \"../chartOfAccounts/ChartOfAccounts.utils\";\nimport {\n createDefaultPeriods,\n DefaultPeriodsPath,\n FiscalYearDefaultPeriod,\n getActiveFiscalYears,\n getFiscalPeriodNumber,\n getFiscalYearNumber,\n getSortedFYs,\n IFiscalYearEntityExtendedEntity,\n refreshFiscalYears\n} from \"./FiscalYear.utils\";\n\n\nclass FiscalYearFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"FiscalYear:TitleSingular\",\n formProps: {\n shouldHideVariant: true\n }\n };\n\n onAfterLoad = async () => {\n if (this.props.storage.formMode !== FormMode.AuditTrail) {\n if (this.props.storage.data.bindingContext.isNew()) {\n await this.setDefaultInterval();\n\n // default periods should be monthly by default\n this.setDefaultPeriods(FiscalYearDefaultPeriod.Monthly);\n this.createDefaultPeriods(FiscalYearDefaultPeriod.Monthly);\n this.props.storage.refreshFields();\n } else {\n const currentDataLook = this.getCurrentDataLook();\n\n this.setDefaultPeriods(currentDataLook);\n }\n\n this.revalidatePeriods(true);\n }\n\n this.props.storage.refresh();\n return super.onAfterLoad();\n };\n\n correctPeriodNumbers(storage: FormStorage) {\n const { entity, bindingContext } = storage.data;\n // correct possible wrong period numbers, so they match with FY\n entity.Periods?.forEach((period: IEntity, idx) => {\n const periodNumberBc = bindingContext.navigate(FiscalYearEntity.Periods).addKey(period).navigate(FiscalPeriodEntity.Number);\n storage.setValue(periodNumberBc, getFiscalPeriodNumber(entity.Number, idx));\n });\n }\n\n getFiscalYears = (): IFiscalYearEntity[] => {\n return getSortedFYs(this.context);\n };\n\n getOtherFiscalYears = (): IFiscalYearEntity[] => {\n return this.getFiscalYears().filter((fiscalYear: IFiscalYearEntity) => fiscalYear.Number !== this.props.storage.data.entity.Number);\n };\n\n setDefaultInterval = async (): Promise => {\n // force reload FYs in case there were some change in the meantime, so we have actual data\n await refreshFiscalYears(this.props.storage.context);\n // get last active fiscal year, check every other after it\n const fiscalYears = this.getFiscalYears();\n if (fiscalYears?.length) {\n let newStartDate = undefined;\n let newEndDate = undefined;\n let i = fiscalYears.findIndex((year: IEntity) => year.StatusCode === FiscalYearStatusCode.Active);\n for (i; i < fiscalYears.length; i++) {\n const end = getUtcDayjs(fiscalYears[i].DateEnd);\n if (i === (fiscalYears.length - 1)) {\n newStartDate = end.add(1, \"day\");\n newEndDate = end.add(12, \"month\").endOf(\"month\"); // end of month because of leap years;\n } else {\n const start = getUtcDayjs(fiscalYears[i + 1]?.DateStart);\n const monthDiff = end.diff(start, \"month\");\n if (monthDiff < 0) {\n newStartDate = end.add(1, \"day\");\n newEndDate = start.subtract(1, \"day\");\n if (newEndDate.diff(newStartDate, \"month\") > 11) {\n newEndDate = newEndDate = end.add(12, \"month\").endOf(\"month\"); // end of month because of leap years\n }\n break;\n }\n }\n }\n this.props.storage.setValueByPath(FiscalYearEntity.DateStart, newStartDate.toDate());\n this.props.storage.setValueByPath(FiscalYearEntity.DateEnd, newEndDate.toDate());\n const newFiscalYearNumber = getFiscalYearNumber(newStartDate.toDate(), newEndDate.toDate(), this.getOtherFiscalYears());\n this.props.storage.setValueByPath(FiscalYearEntity.Number, newFiscalYearNumber);\n this.props.storage.refreshGroupByKey(\"basic\");\n }\n };\n\n createDefaultPeriods = (defaultPeriod: FiscalYearDefaultPeriod) => {\n const fiscalYear = this.props.storage.data.entity;\n const periods: IEntity[] = createDefaultPeriods({\n dateStart: fiscalYear.DateStart,\n dateEnd: fiscalYear.DateEnd,\n includeIds: true,\n step: defaultPeriod === FiscalYearDefaultPeriod.Quarterly ? 3 : 1,\n fiscalYearNumber: fiscalYear.Number\n });\n\n const bindingContext = this.props.storage.data.bindingContext;\n this.props.storage.setValue(bindingContext.navigate(FiscalYearEntity.Periods), periods);\n };\n\n /**\n * Tests if the current data of FiscalYear looks like data generated by the createDefaultPeriods\n * We don't store default periods state on backend, but we need the switch to be initialized in its correct state\n */\n getCurrentDataLook = () => {\n if (this.hasDefaultLook()) {\n return FiscalYearDefaultPeriod.Monthly;\n } else if (this.hasDefaultLook(true)) {\n return FiscalYearDefaultPeriod.Quarterly;\n } else {\n return FiscalYearDefaultPeriod.Custom;\n }\n };\n\n hasDefaultLook = (quarterly?: boolean) => {\n const { DateStart, DateEnd, Periods } = this.props.storage.data.entity;\n\n const defaultPeriods: IEntity[] = createDefaultPeriods({\n dateStart: DateStart,\n dateEnd: DateEnd,\n step: quarterly ? 3 : 1,\n fiscalYearNumber: this.entity.Number\n });\n\n if (defaultPeriods?.length !== Periods?.length) {\n return false;\n }\n\n for (const p of Periods) {\n const defaultPeriod = defaultPeriods.find((dp: IEntity) => {\n return isSameDay(dp.DateStart, p.DateStart) && isSameDay(dp.DateEnd, p.DateEnd) && dp.Name === p.Name;\n });\n if (!defaultPeriod) {\n return false;\n }\n }\n\n\n return true;\n };\n\n getDefaultPeriods = () => {\n return this.props.storage.getValue(this.props.storage.data.bindingContext.navigate(DefaultPeriodsPath));\n };\n\n setFieldError = (bindingContext: BindingContext, message: string) => {\n const error: ISmartFieldValidationError = {\n bindingContext: bindingContext,\n data: null\n };\n if (message) {\n error.data = {\n errorType: ValidationErrorType.Field,\n message: message\n };\n }\n this.props.storage.handleValidationError(error);\n };\n\n clearPeriodsErrors = () => {\n const bindingContext = this.props.storage.data.bindingContext;\n\n for (const element of bindingContext.iterateNavigation(FiscalYearEntity.Periods, this.props.storage.data.entity.Periods)) {\n for (const path of [FiscalPeriodEntity.DateStart, FiscalPeriodEntity.DateEnd, FiscalPeriodEntity.Name]) {\n const pathBc = element.bindingContext.navigate(path);\n\n this.setFieldError(pathBc, null);\n }\n }\n };\n\n revalidatePeriods = (ignoreErrors?: boolean) => {\n const bindingContext = this.props.storage.data.bindingContext;\n let firstPeriodStartBc, monthsValid: boolean;\n let lastPeriodEndBc: BindingContext = undefined;\n for (const element of bindingContext.iterateNavigation(FiscalYearEntity.Periods, this.props.storage.data.entity.Periods)) {\n const start = element.bindingContext.navigate(FiscalYearEntity.DateStart);\n if (!firstPeriodStartBc) {\n firstPeriodStartBc = start;\n }\n if (lastPeriodEndBc) {\n const lastDate = this.props.storage.getValue(lastPeriodEndBc) as Date;\n const startDate = this.props.storage.getValue(start) as Date;\n const nextMonth = getUtcDayjs(lastDate).add(1, \"month\").toDate();\n\n monthsValid = isSameMonth(startDate, nextMonth);\n\n if (!ignoreErrors) {\n if (monthsValid) {\n this.setFieldError(lastPeriodEndBc, null);\n this.setFieldError(start, null);\n } else {\n this.setFieldError(lastPeriodEndBc, this.props.storage.t(\"FiscalYear:Errors.NextPeriodDoesNotFollow\"));\n this.setFieldError(start, this.props.storage.t(\"FiscalYear:Errors.LastPeriodDoesNotFollow\"));\n }\n }\n }\n lastPeriodEndBc = element.bindingContext.navigate(FiscalPeriodEntity.DateEnd);\n }\n\n const periodStart = bindingContext.navigate(FiscalYearEntity.DateStart);\n const startDate = this.props.storage.getValue(periodStart) as Date;\n const firstDate = firstPeriodStartBc ? this.props.storage.getValue(firstPeriodStartBc) as Date : null;\n\n monthsValid = isSameMonth(startDate, firstDate);\n\n if (!ignoreErrors) {\n if (!firstPeriodStartBc || monthsValid) {\n this.setFieldError(periodStart, null);\n\n if (firstPeriodStartBc) {\n this.setFieldError(firstPeriodStartBc, null);\n }\n } else {\n this.setFieldError(firstPeriodStartBc, this.props.storage.t(\"FiscalYear:Errors.FirstPeriodError\"));\n }\n }\n\n\n const periodEnd = bindingContext.navigate(\"DateEnd\");\n const endDate = this.props.storage.getValue(periodEnd) as Date;\n const lastDate = lastPeriodEndBc ? this.props.storage.getValue(lastPeriodEndBc) as Date : null;\n\n monthsValid = isSameMonth(endDate, lastDate);\n\n if (!ignoreErrors) {\n if (!lastPeriodEndBc || monthsValid) {\n this.setFieldError(periodEnd, null);\n\n if (lastPeriodEndBc) {\n this.setFieldError(lastPeriodEndBc, null);\n }\n } else {\n // this.setFieldError(periodEnd, this.props.storage.t(\"FiscalYear:Errors.LastPeriodError\"));\n this.setFieldError(lastPeriodEndBc, this.props.storage.t(\"FiscalYear:Errors.LastPeriodError\"));\n }\n }\n };\n\n handleDefaultPeriodsChange = (e: ISmartFieldChange) => {\n if (e.bindingContext.getNavigationPath() === DefaultPeriodsPath) {\n const currentDefaultPeriods = this.getDefaultPeriods();\n\n if (e.value === currentDefaultPeriods) {\n return;\n }\n\n switch (e.value) {\n case FiscalYearDefaultPeriod.Monthly:\n this.createDefaultPeriods(FiscalYearDefaultPeriod.Monthly);\n break;\n case FiscalYearDefaultPeriod.Quarterly:\n this.createDefaultPeriods(FiscalYearDefaultPeriod.Quarterly);\n break;\n case FiscalYearDefaultPeriod.Custom:\n this.createDefaultPeriods(FiscalYearDefaultPeriod.Monthly);\n break;\n }\n\n this.clearPeriodsErrors();\n this.revalidatePeriods(true);\n this.props.storage.refresh();\n }\n };\n\n handleEndDateValues = (e: ISmartFieldChange) => {\n if (e.bindingContext.getPath() === \"DateEnd\" && e.value) {\n //End dates must be the end of given month\n e.value = getUtcDayjs(e.value as Date).endOf(\"month\").toDate();\n }\n };\n\n handleFiscalYearEndDateChange = (e: ISmartFieldChange) => {\n if (e.bindingContext.getNavigationPath(true) === \"DateEnd\") {\n const { storage } = this.props;\n const { entity } = storage.data;\n\n const newFiscalYearNumber = getFiscalYearNumber(entity.DateStart, e.value as Date, this.getOtherFiscalYears());\n storage.setValueByPath(FiscalYearEntity.Number, newFiscalYearNumber);\n this.correctPeriodNumbers(storage);\n }\n };\n\n cancelDefaultPeriodsIfCriticalChange = (e: ISmartFieldChange) => {\n const criticalProps = [\"Periods/Name\", \"Periods/DateStart\", \"Periods/DateEnd\"];\n const path = e.bindingContext.getNavigationPath(true);\n\n if (criticalProps.includes(path)) {\n this.setDefaultPeriods(FiscalYearDefaultPeriod.Custom);\n this.props.storage.refreshFields();\n }\n };\n\n handleFiscalYearDateChange = (e: ISmartFieldChange) => {\n const path = e.bindingContext.getPath(true);\n\n if (path === \"DateStart\" || path === \"DateEnd\") {\n const parentContext = e.bindingContext.getParent();\n const dateStartBc = parentContext.navigate(\"DateStart\");\n const dateStart = this.props.storage.getValue(dateStartBc);\n const dateStartError = this.props.storage.getError(dateStartBc);\n const dateStartErrorOk = dateStartError?.errorType !== ValidationErrorType.TypeError;\n const dateEndBc = parentContext.navigate(\"DateEnd\");\n const dateEnd = this.props.storage.getValue(dateEndBc);\n const dateEndError = this.props.storage.getError(dateEndBc);\n const dateEndErrorOk = dateEndError?.errorType !== ValidationErrorType.TypeError;\n const datesValid = isValidDate(dateStart) && isValidDate(dateEnd);\n\n if (datesValid && dateStart >= dateEnd) {\n this.setFieldError(dateStartBc, this.props.storage.t(\"FiscalYear:Errors.StartDateTooBig\"));\n } else if (datesValid && getUtcDayjs(dateEnd).diff(dateStart, \"month\") > 24) {\n this.setFieldError(dateEndBc, this.props.storage.t(\"FiscalYear:Errors.FiscalYearRangeTooBig\"));\n } else {\n if (dateStartErrorOk) {\n this.setFieldError(dateStartBc, null);\n }\n\n if (dateEndErrorOk) {\n this.setFieldError(dateEndBc, null);\n }\n\n if (dateStartErrorOk && dateEndErrorOk) {\n const defaultPeriods = this.getDefaultPeriods();\n\n if (defaultPeriods !== FiscalYearDefaultPeriod.Custom) {\n this.createDefaultPeriods(defaultPeriods);\n this.props.storage.refresh();\n }\n }\n }\n this.revalidatePeriods(true);\n }\n };\n\n handleChange = async (e: ISmartFieldChange) => {\n // handlers BEFORE handleChange is called\n this.handleEndDateValues(e);\n this.cancelDefaultPeriodsIfCriticalChange(e);\n this.handleDefaultPeriodsChange(e);\n // so far, isn't supposed to be used\n // this.handlePeriodStartDateChange(e);\n this.handleFiscalYearEndDateChange(e);\n\n this.props.storage.handleChange(e);\n\n // handlers AFTER handleChange is called that need already updated data\n this.handleFiscalYearDateChange(e);\n\n this.props.storage.refreshFields();\n };\n\n handleRemove = (bc: BindingContext) => {\n this.props.storage.handleRemove(bc);\n this.revalidatePeriods(true);\n this.props.storage.refresh();\n };\n\n setDefaultPeriods = (defaultPeriods: FiscalYearDefaultPeriod) => {\n this.props.storage.setValue(this.props.storage.data.bindingContext.navigate(DefaultPeriodsPath), defaultPeriods);\n };\n\n getFiscalYearStatus = () => {\n return this.props.storage.data?.entity?.StatusCode;\n };\n\n onBeforeSave(): IFiscalYearEntity {\n const entity = this.entity;\n if (this.props.storage.getValueByPath(DefaultPeriodsPath) === FiscalYearDefaultPeriod.Custom) {\n entity.Periods = entity.Periods?.map((period: IEntity, idx: number) => {\n period.Number = getFiscalPeriodNumber(this.entity.Number, idx);\n return period;\n });\n }\n\n return entity;\n }\n\n save = async (args: ISaveArgs = {}) => {\n const fnOnFail = () => {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n };\n\n const data = args.data ?? this.onBeforeSave();\n this.props.onBeforeSave?.();\n\n this.revalidatePeriods();\n\n if (await this.props.storage.validate()) {\n fnOnFail();\n return null;\n }\n\n let result: IFormStorageSaveResult;\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n if (isNew) {\n // inject current company to new fiscal year\n this.props.storage.data.entity.Company = { Id: this.context.getCompany().Id };\n\n const name = this.props.storage.getValueByPath(\"Number\");\n let newChartOfAccounts: IChartOfAccountsEntity;\n\n try {\n const activeFiscalYears = getActiveFiscalYears(this.context, Sort.Desc);\n const newestActiveFiscalYear = activeFiscalYears?.[0];\n\n if (newestActiveFiscalYear) {\n newChartOfAccounts = await createChartOfAccountsFromChartOfAccounts(\n newestActiveFiscalYear.ChartOfAccounts.Id.toString(),\n name,\n this.props.storage.data.entity,\n this.props.storage.oData);\n\n result = {\n bindingContext: this.props.storage.data.bindingContext.removeKey().addKey(newChartOfAccounts.Id.toString()),\n data: newChartOfAccounts,\n response: newChartOfAccounts\n };\n }\n } catch (e) {\n this.props.storage.handleOdataError({\n error: e,\n bindingContext: this.props.storage.data.bindingContext\n });\n fnOnFail();\n return result;\n }\n\n this.props.storage.store({\n bindingContext: this.props.storage.data.bindingContext.removeKey().addKey(newChartOfAccounts.FiscalYear.Id)\n });\n\n this.props.storage.displaySaveOkMessage(this.props.storage.t(\"FiscalYear:Validation.Saved\"));\n // todo better solution\n this.props.storage._preserveAlert = true;\n } else {\n result = await this.props.storage.save({\n data,\n successSubtitle: this.props.storage.t(\"FiscalYear:Validation.Saved\")\n });\n\n if (!result) {\n fnOnFail();\n return result;\n }\n }\n\n // clear cached fiscal years to retrieve new/updated data\n refreshFiscalYears(this.props.storage.context);\n\n // refreshWholeTable because form doesn't change only one entity, but fiscal year and all of its periods\n this.onAfterSave(isNew, false);\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n return result;\n };\n\n async setFYStatus(StatusCode: FiscalYearStatusCode) {\n this.props.storage.setBusy(true);\n\n await this.save({ data: { StatusCode } });\n }\n\n async handleDelete(): Promise {\n await super.handleDelete();\n await refreshFiscalYears(this.props.storage.context);\n }\n\n renderButtons = () => {\n const fiscalYearStatus = this.getFiscalYearStatus();\n return (\n \n \n {this.isDeletable &&\n \n }\n {!this.props.storage.data.bindingContext.isNew() &&\n <>\n {fiscalYearStatus === FiscalYearStatusCode.NotUsed &&\n {this.props.storage.t(\"Common:General.Activate\")}\n }\n {fiscalYearStatus === FiscalYearStatusCode.Active &&\n {this.props.storage.t(\"Common:General.Deactivate\")}\n }\n \n }\n {fiscalYearStatus !== FiscalYearStatusCode.Closed &&\n \n }\n \n );\n };\n}\n\nexport default withPermissionContext(FiscalYearFormView);","import { AttachmentsAdditionalProperties, AttachmentsDef } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n EntitySetName,\n EntityTypeName,\n FiscalYearCloseAdvanceTaxEntity,\n FiscalYearCloseEntity,\n FiscalYearCloseExchangeRateEntity,\n FiscalYearCloseInventoryEntity,\n FiscalYearCloseSectionEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { setDefForTesting } from \"@pages/getDefByEntityType\";\n\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { documentProps } from \"./FiscalYearClose.utils\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const form: IFormDef = {\n id: `${EntityTypeName.FiscalYearClose}Form`,\n files: AttachmentsDef,\n translationFiles: getDefinitions.translationFiles,\n fieldDefinition: {},\n additionalProperties: [\n {\n id: FiscalYearCloseEntity.ExchangeRates,\n additionalProperties: [{\n id: FiscalYearCloseExchangeRateEntity.CurrencyCode\n }]\n },\n { id: FiscalYearCloseEntity.ExpenseTaxRateCode },\n { id: FiscalYearCloseEntity.InventoryTypeCode },\n { id: FiscalYearCloseEntity.HasTaxAdvisor },\n { id: FiscalYearCloseEntity.DateClosed },\n { id: FiscalYearCloseEntity.LegalEntityCategoryCode },\n {\n id: FiscalYearCloseEntity.Sections,\n additionalProperties: [{\n id: FiscalYearCloseSectionEntity.IsChecked\n }, {\n id: FiscalYearCloseSectionEntity.Type\n }\n ]\n },\n { id: FiscalYearCloseEntity.ClosedByUser, additionalProperties: [{ id: UserEntity.Name }] },\n documentProps(FiscalYearCloseEntity.BalanceSheetClose),\n documentProps(FiscalYearCloseEntity.IncomeExpenseTransfer),\n documentProps(FiscalYearCloseEntity.NextYearBalanceSheetOpen),\n documentProps(FiscalYearCloseEntity.NextYearProfitOrLossTransfer),\n documentProps(FiscalYearCloseEntity.ProfitOrLoss),\n documentProps(FiscalYearCloseEntity.ExchangeRateDocuments),\n documentProps(FiscalYearCloseEntity.IncomeTaxDocument),\n documentProps(FiscalYearCloseEntity.InventoryClearingDocument),\n documentProps(FiscalYearCloseEntity.InventoryCheckDocument),\n documentProps(FiscalYearCloseEntity.IncomeTaxPaymentOrReturnDocument, DocumentTypeCode.OtherLiability),\n { id: FiscalYearCloseEntity.IncomeTaxAmount},\n { id: FiscalYearCloseEntity.IncomeTaxPaidAdvanceAmount },\n { id: FiscalYearCloseEntity.InventoryAccounts,\n additionalProperties: [{\n id: FiscalYearCloseInventoryEntity.Amount\n }, {\n id: FiscalYearCloseInventoryEntity.InventoryAccount\n }, {\n id: FiscalYearCloseInventoryEntity.ConsumptionAccount\n }, {\n id: FiscalYearCloseInventoryEntity.ChartOfAccounts\n }]\n },\n {\n id: FiscalYearCloseEntity.AdvanceTaxPayments,\n additionalProperties: [documentProps(FiscalYearCloseAdvanceTaxEntity.CreatedDocument, DocumentTypeCode.OtherLiability, true)]\n },\n ...AttachmentsAdditionalProperties\n ]\n };\n\n return {\n form,\n entitySet: EntitySetName.FiscalYearCloses\n };\n};\n\ngetDefinitions.translationFiles = [];\nsetDefForTesting(EntityTypeName.FiscalYearClose, getDefinitions);","import { StyledButtonGroup } from \"@components/button\";\nimport { LockFilledIcon } from \"@components/icon\";\nimport { StyledFieldsWrapper } from \"@components/inputs/field/FieldsWrapper.styles\";\nimport { TableCellStretchedContent } from \"@components/table/Rows.styles\";\nimport { ellipsis } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nimport { ScrollBar } from \"../../components/scrollBar\";\nimport { getFocusBorderElement, T_PLAIN_big, T_PLAIN_big_hig, T_TITLE_4_NORMAL } from \"../../global.style\";\n\nexport const IconWrapper = styled.div`\n padding: 0 14px;\n`;\n\nexport const Circle = styled.div`\n border: 1px solid ${props => props.theme.C_TEXT_primary};\n border-radius: 23px;\n height: 22px;\n width: 22px;\n margin: 0 2px;\n background: ${props => props.theme.C_BG_floorplan};\n`;\n\nexport const CaretWrapper = styled.div`\n position: absolute;\n right: 4px;\n cursor: pointer;\n`;\n\nexport const TaskRowWrapper = styled.div<{\n isSelected?: boolean\n}>`\n display: flex;\n position: relative;\n align-items: center;\n width: 100%;\n height: 50px;\n overflow: visible;\n\n & > ${LockFilledIcon} {\n position: absolute;\n top: 15px;\n left: -5px;\n }\n\n ${IconWrapper} {\n circle {\n fill: ${props => props.theme.C_BG_floorplan};\n }\n }\n\n ${CaretWrapper} {\n display: ${props => props.isSelected ? \"block\" : \"none\"};\n }\n\n &:hover {\n ${CaretWrapper} {\n display: block;\n }\n }\n`;\n\nexport const TaskRowStyled = styled.div<{\n isChecked: boolean,\n isSelected?: boolean,\n isClosing?: boolean\n}>`\n background: ${props => props.theme.C_BG_row_field};\n width: 100%;\n height: 100%;\n padding: 5px 26px;\n font-weight: bold;\n font-size: 16px;\n ${ellipsis()};\n display: inline-flex;\n align-items: center;\n letter-spacing: 0.14px;\n border-radius: ${props => props.theme.borderRadius};\n position: relative;\n cursor: pointer;\n box-shadow: ${props => props.isSelected ? \"0 0 15px 0 rgba(0, 0, 0, 0.15)\" : \"0 0 5px 0 rgba(0, 0, 0, 0.05)\"};\n\n ${props => props.isChecked && `\n &:after {\n border-top-left-radius: ${props.theme.borderRadius};\n border-bottom-left-radius: ${props.theme.borderRadius};\n content: \"\";\n width: 6px;\n top: 0;\n left: 0;\n height: 100%;\n position: absolute;\n background-color: ${props.theme.C_SEM_el_good};\n }`}\n ${IconWrapper} {\n position: absolute;\n left: 0;\n top: 14px;\n\n ${Circle} {\n background: none;\n }\n\n circle {\n fill: none;\n }\n }\n\n ${props => props.isClosing && `\n padding-left: 54px;\n `}\n &:hover {\n background-color: ${props => props.theme.C_BG_row_field_hover}; // C_ACT_hover combined with C_BG_row_field\n }\n\n ${getFocusBorderElement({ offset: 0, keyboardOnly: true })}\n`;\n\nexport const TableWrapper = styled.div<{\n $marginBottom?: number\n}>`\n height: fit-content;\n margin-bottom: ${props => props.$marginBottom ?? 20}px;\n width: 100%;\n\n & + ${StyledButtonGroup} {\n margin-top: ${props => 60 - (props.$marginBottom ?? 20)}px;\n }\n`;\n\nexport const TasksWrapper = styled.div`\n display: flex;\n flex-direction: column;\n row-gap: 12px;\n padding: 0 14px;\n position: relative;\n\n &:before {\n position: absolute;\n content: \"\";\n left: 40px;\n top: 40px;\n width: 0;\n height: calc(100% - 90px);\n border-left: dotted 3px #efe2ea;\n }\n`;\n\nexport const SmallHeaderStyled = styled.h2`\n font-size: 22px;\n font-weight: bold;\n\n &:not(:first-of-type) {\n margin-top: 20px;\n }\n\n margin-bottom: 15px;\n`;\n\nexport const SmallHeaderStyledWithInfo = styled.div`\n font-size: 22px;\n font-weight: bold;\n\n &:not(:first-of-type) {\n margin-top: 20px;\n }\n\n margin-bottom: 15px;\n ${SmallHeaderStyled};\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport const TextStyled = styled.p`\n ${T_TITLE_4_NORMAL};\n margin: 0 0 20px 0;\n`;\n\nexport const CellContentStyled = styled.div<{ isBold: boolean }>`\n display: flex;\n align-items: center;\n font-weight: ${props => props.isBold ? \"bold\" : \"normal\"};\n ${TableCellStretchedContent};\n\n [data-icon=\"Caret\"] {\n display: none;\n }\n`;\n\nexport const InventoryGrid = styled.div<{ $isLoading: boolean }>`\n display: grid;\n grid-template-columns: auto auto auto auto auto;\n row-gap: 12px;\n margin: 20px 0 30px 0;\n width: 100%;\n overflow-x: auto;\n flex-shrink: 0;\n position: relative;\n min-height: ${props => props.$isLoading ? \"200px\" : 0};\n\n & > div:nth-child(5n+1) {\n padding-left: 12px !important;\n }\n\n a {\n margin-top: -1px;\n ${T_PLAIN_big}\n }\n`;\n\nexport const AdditionalAccountInfoTable = styled.div`\n display: inline-grid; // inline grid to prevent additional line break after the table\n width: 100%;\n grid-template-columns: auto auto;\n color: ${props => props.theme.C_TEXT_primary};\n margin-top: 15px;\n text-align: left;\n row-gap: 5px;\n\n div:nth-of-type(2n) {\n text-align: right;\n }\n\n div {\n position: relative;\n padding-right: 5px;\n ${T_PLAIN_big}\n }\n\n div:nth-of-type(0), div:nth-of-type(1) {\n ${T_PLAIN_big_hig}\n }\n`;\n\nexport const AccountNamesTableStyled = styled.div`\n margin-top: 10px;\n`;\n\nexport const AccountNameStyled = styled.div`\n position: relative;\n & > a {\n ${T_PLAIN_big}\n }\n`;\n\nexport const SwitchWrapperStyled = styled(StyledFieldsWrapper)`\n justify-content: flex-end;\n flex-grow: 0;\n margin-top: 16px;\n padding-bottom: 36px;\n`;\n\nexport const StyledFieldsWrapperWithMargin = styled(StyledFieldsWrapper)`\n margin-bottom: 20px;\n flex-grow: 0;\n`;\n\nexport const Gap = styled.span`\n display: inline-block;\n width: 30px;\n height: 1px;\n margin: 0;\n`;\n\nexport const StyledScrollBar = styled(ScrollBar)`\n left: -15px;\n padding-top: 15px;\n`;\n\nexport const StyledRadioLabel = styled.div<{\n size: number;\n}>`\n display: inline-block;\n text-align: right;\n min-width: ${props => `${props.size - 1}ch`}; // ch is size of digit \"0\", -1 because of decimal point and space before unit\n`;","import { AlertAction, IAlertProps } from \"@components/alert/Alert\";\nimport { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getDrillDownLink, getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { IFieldDef } from \"@components/smart/FieldInfo\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { getEntitySetByDocumentType, getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport {\n DocumentEntity,\n EntityTypeName,\n IDocumentEntity,\n IFiscalYearCloseEntity,\n IFiscalYearEntity,\n IInternalDocumentEntity,\n InternalDocumentEntity,\n IOtherLiabilityEntity,\n IOtherReceivableEntity,\n OtherLiabilityEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode, FiscalYearCloseSectionTypeCode, LegalEntityCategoryCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport {\n accruedExpenseFilter,\n accruedRevenueFilter,\n excludeInitialBalancesFilter,\n getOpenAccrualFilter\n} from \"@utils/accounting\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { arrayInsert } from \"@utils/general\";\nimport i18next, { TFunction } from \"i18next\";\nimport React, { Fragment, ReactElement } from \"react\";\n\nimport TableWithAutoSizedColumns from \"../../components/table/TableWithAutoSizedColumns\";\nimport Tabs from \"../../components/tabs\";\nimport { REST_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Status, TextAlign } from \"../../enums\";\nimport { TRecordString } from \"../../global.types\";\nimport { ROUTE_ACCOUNT_ANALYSIS, ROUTE_CHARTS_OF_ACCOUNTS } from \"../../routes\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport DateType, { getUtcDayjs } from \"../../types/Date\";\nimport customFetch from \"../../utils/customFetch\";\nimport memoize from \"../../utils/memoize\";\nimport { AccountAnalysisProps, ClosingAccounts } from \"../reports/accountAnalysis/AccountAnalysisDef\";\nimport { CommonReportProps } from \"../reports/CommonDefs\";\nimport {\n AccountNamesTableStyled,\n AccountNameStyled,\n AdditionalAccountInfoTable,\n TableWrapper\n} from \"./FiscalYearClose.styles\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IWithAlertSettings } from \"@components/alert/withAlert\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport const FISCAL_YEAR_PROCESSING_URL = `${REST_API_URL}/FiscalYearProcessing`;\nexport const STEP_VALIDATION_URL = `${FISCAL_YEAR_PROCESSING_URL}/ValidateOnClose`;\n\nexport const openAccrualsRevenueFilter = `${getOpenAccrualFilter()} AND ${accruedRevenueFilter} AND ${excludeInitialBalancesFilter}`;\nexport const openAccrualsExpenseFilter = `${getOpenAccrualFilter()} AND ${accruedExpenseFilter} AND ${excludeInitialBalancesFilter}`;\n\nexport const getFYDateRangeDrilldownFilter = (fy: IFiscalYearEntity): IValueInterval => {\n const previousYearDateRange: IValueInterval = {\n from: formatDateToDateString(fy?.DateStart),\n to: formatDateToDateString(fy?.DateEnd)\n };\n\n return previousYearDateRange;\n};\n\nexport interface IBaseFiscalYearCloseState {\n loading: boolean;\n switchBusy?: boolean;\n rows?: IRow[];\n}\n\ntype IFYCloseGeneratedDoc = (IInternalDocumentEntity | IOtherLiabilityEntity);\n\nexport const renderDocumentsTab = (docs: IFYCloseGeneratedDoc[], t: TFunction, context: IAppContext, isLoading: boolean): ReactElement => {\n const isOnlyID = !docs?.find(d => d.DocumentTypeCode !== DocumentTypeCode.InternalDocument);\n return <>\n \n {renderDocTable(docs, t, context, isLoading, !isOnlyID)}\n ;\n};\n\nexport const documentProps = (id: string, documentTypeCode = DocumentTypeCode.InternalDocument, useDateDue = false): IFieldDef => {\n const def: IFieldDef = {\n id,\n additionalProperties: [\n { id: DocumentEntity.DateAccountingTransaction },\n { id: DocumentEntity.NumberOurs },\n { id: documentTypeCode === DocumentTypeCode.InternalDocument ? InternalDocumentEntity.Explanation : DocumentEntity.Note },\n { id: DocumentEntity.DateCreated },\n { id: DocumentEntity.Amount },\n { id: DocumentEntity.DocumentTypeCode },\n { id: DocumentEntity.DateCbaDocument }\n ]\n };\n\n if (useDateDue) {\n def.additionalProperties = [\n ...def.additionalProperties,\n { id: OtherLiabilityEntity.DateDue }\n ];\n }\n\n return def;\n};\n\n\nexport const renderDocTable = (docs: (IInternalDocumentEntity | IOtherLiabilityEntity)[], t: TFunction, context: IAppContext, isLoading: boolean, renderExtraColumns?: boolean): ReactElement => {\n let columns: IColumn[] = [\n { id: \"date\", label: t(\"FiscalYearClose:Final.Date\"), textAlign: TextAlign.Left },\n { id: \"doc\", label: t(\"FiscalYearClose:Final.Doc\"), textAlign: TextAlign.Left },\n { id: \"name\", label: t(\"FiscalYearClose:Final.Relation\"), textAlign: TextAlign.Left },\n { id: \"sum\", label: t(\"FiscalYearClose:Final.Sum\"), textAlign: TextAlign.Right }\n ];\n\n if (renderExtraColumns) {\n columns = arrayInsert(columns, {\n id: \"docType\",\n label: t(\"FiscalYearClose:Final.DocumentType\"),\n textAlign: TextAlign.Left\n }, 1);\n columns = arrayInsert(columns, {\n id: \"dueDate\",\n label: t(\"FiscalYearClose:Final.ProposedDueDate\"),\n textAlign: TextAlign.Right\n }, 1);\n }\n\n const rows = docs?.sort(sortByDate).map(doc => ({\n id: doc.Id,\n values: {\n date: DateType.format(doc.DateAccountingTransaction ?? doc.DateCbaDocument),\n doc: getTableIntentLink(doc.NumberOurs, {\n route: `${getRouteByDocumentType(doc.DocumentTypeCode as DocumentTypeCode)}/${doc.Id}`,\n context\n }),\n dueDate: DateType.format((doc as IOtherLiabilityEntity).DateDue),\n docType: getEnumDisplayValue(EntityTypeName.DocumentType, doc.DocumentTypeCode),\n name: (doc as IInternalDocumentEntity).Explanation ?? doc.Note,\n sum: formatCurrency(doc.Amount, getCompanyCurrency(context))\n }\n }));\n\n return \n \n ;\n};\n\ninterface AccountInfo {\n AccountName: string,\n AccountNumber: string,\n AccountBalance: string,\n ChartOfAccountsId: number,\n AccountId: number\n}\n\nexport interface IFYCloseValidationError {\n AccountInfos: AccountInfo[],\n ErrorParameters: TRecordString,\n ErrorCode: string,\n SectionCode: string\n}\n\nconst renderAdditionalErrorDataTable = (e: IFYCloseValidationError, fiscalYear: IFiscalYearEntity, context: IAppContext): ReactElement => {\n const accountInfosSortFn = (a: AccountInfo, b: AccountInfo) => {\n if (a?.AccountNumber < b?.AccountNumber) {\n return -1;\n }\n if (a?.AccountNumber > b?.AccountNumber) {\n return 1;\n }\n return 0;\n };\n\n if (e.AccountInfos?.some(info => info.AccountBalance)) {\n const dateRange: IValueInterval = {\n from: formatDateToDateString(fiscalYear?.DateStart),\n to: formatDateToDateString(fiscalYear?.DateEnd)\n };\n\n return (\n \n
    {i18next.t(\"FiscalYearClose:Account\")}
    \n
    {i18next.t(\"FiscalYearClose:Balance\")}
    \n {e.AccountInfos.sort(accountInfosSortFn).map((info, i) => {\n return \n
    {`${info.AccountNumber} - ${info.AccountName}`}
    \n
    \n {getDrillDownLink(formatCurrency(info.AccountBalance, getCompanyCurrency(context)), {\n route: ROUTE_ACCOUNT_ANALYSIS,\n context,\n filters: {\n [AccountAnalysisProps.accounts]: [info.AccountNumber],\n [CommonReportProps.dateRange]: CUSTOM_DATE_RANGE_ID,\n [CommonReportProps.dateRangeCustomValue]: dateRange,\n [AccountAnalysisProps.closingAccounts]: ClosingAccounts.Show,\n [AccountAnalysisProps.sumAmounts]: true\n }\n })}\n
    \n
    ;\n })}\n
    \n );\n } else if (e.AccountInfos?.length) {\n return (\n \n {e.AccountInfos.sort(accountInfosSortFn).map(info => {\n return \n {getDrillDownLink(`${info.AccountNumber} - ${info.AccountName}`, {\n route: `${ROUTE_CHARTS_OF_ACCOUNTS}/${info.ChartOfAccountsId}/Accounts/${info.AccountId}`,\n context\n })}\n ;\n })\n }\n \n );\n }\n return null;\n};\n\nexport const validateStep = async (type: FiscalYearCloseSectionTypeCode, fy: IFiscalYearEntity, context: IAppContext): Promise<{\n alert: IAlertProps,\n sections?: FiscalYearCloseSectionTypeCode[]\n}> => {\n const res = await customFetch(`${STEP_VALIDATION_URL}/${fy.Id}/${type}`);\n const errors: IFYCloseValidationError[] = await res.json();\n if (errors?.length) {\n return {\n alert: {\n status: Status.Error,\n title: i18next.t(`FiscalYearClose:ImpermeableError`, { count: errors.length }),\n subTitle: errors.map((e: IFYCloseValidationError) => {\n return <>\n {i18next.t(`Error:${e.ErrorCode}`, e.ErrorParameters)}\n {renderAdditionalErrorDataTable(e, fy, context)}\n ;\n }),\n action: AlertAction.None\n },\n sections: errors.map(e => e.SectionCode) as FiscalYearCloseSectionTypeCode[]\n };\n }\n\n return {\n alert: null\n };\n};\n\nconst sortByDate = (doc1: IDocumentEntity, doc2: IDocumentEntity) => {\n return getUtcDayjs(doc1.DateAccountingTransaction ?? doc1.DateCbaDocument).diff(doc2.DateAccountingTransaction ?? doc2.DateCbaDocument);\n};\n\nexport const getTaxStatementDocs = (fyClose: IFiscalYearCloseEntity): IDocumentEntity[] => {\n const { IncomeTaxPaymentOrReturnDocument, IncomeTaxDocument, AdvanceTaxPayments } = fyClose;\n const documents = [IncomeTaxPaymentOrReturnDocument, IncomeTaxDocument]\n .filter(doc => !!doc?.Id);\n for (const payment of (AdvanceTaxPayments ?? [])) {\n if (!!payment.CreatedDocument?.Id) {\n documents.push(payment.CreatedDocument);\n }\n }\n return documents;\n};\n\nconst sortedLegalEntityCategory = [\n LegalEntityCategoryCode.Micro,\n LegalEntityCategoryCode.Small,\n LegalEntityCategoryCode.Medium,\n LegalEntityCategoryCode.Large\n];\n\nexport const getLegalEntityCategoryItems = memoize((): ISelectItem[] => {\n return Object.values(sortedLegalEntityCategory).map((val: string) => {\n return {\n id: val,\n label: i18next.t(`FiscalYearClose:TaxStatement.${val}`)\n };\n });\n});\n\nexport const fycAlertSettings: IWithAlertSettings = { style: { marginBottom: \"20px\" }, };\n\nexport const sortedFYCTasks = [\n FiscalYearCloseSectionTypeCode.PayableReceivable,\n FiscalYearCloseSectionTypeCode.Bank,\n FiscalYearCloseSectionTypeCode.CashBox,\n FiscalYearCloseSectionTypeCode.Accrued,\n FiscalYearCloseSectionTypeCode.DeferredPlan,\n FiscalYearCloseSectionTypeCode.Asset,\n FiscalYearCloseSectionTypeCode.ReceivableAdjustments,\n FiscalYearCloseSectionTypeCode.Inventory,\n FiscalYearCloseSectionTypeCode.ForeignCurrencies,\n FiscalYearCloseSectionTypeCode.TaxStatement,\n FiscalYearCloseSectionTypeCode.FinalClosure\n];\n\nexport const sortedFYCTasksForCba = [\n FiscalYearCloseSectionTypeCode.ExchangeRates,\n FiscalYearCloseSectionTypeCode.PayableReceivable,\n FiscalYearCloseSectionTypeCode.Bank,\n FiscalYearCloseSectionTypeCode.CashBox,\n FiscalYearCloseSectionTypeCode.Asset,\n FiscalYearCloseSectionTypeCode.TaxStatement,\n FiscalYearCloseSectionTypeCode.FinalClosure\n];\n\nexport const getPaymentScreenCommonColumns = (commonCols: IColumn[], fyNumber: string, hasAccounting: boolean, t: TFunction): IColumn[] => {\n const result = [...commonCols];\n if (hasAccounting) {\n result.push({ id: \"balance\", label: t(\"FiscalYearClose:AccountingBalance\"), textAlign: TextAlign.Right });\n } else {\n result.push({\n id: \"cbaBalance\",\n label: t(\"FiscalYearClose:Balance\"),\n info: t(\"FiscalYearClose:CbaBalanceInfo\", { number: fyNumber }),\n textAlign: TextAlign.Right\n });\n }\n return result;\n};\n\n/* IncomeTaxPaymentOrReturnDocument has type Document in metadata, because it is either IOtherReceivableEntity or IOtherLiabilityEntity,\n* and those don't have any other common parent model. Yet we need DateDue which is not present in Document model, and normal expand would fail */\nexport const loadDateDue = async (doc: (IOtherReceivableEntity | IOtherLiabilityEntity), oData: OData) => {\n if (doc?.Id) {\n const docRes = await oData.getEntitySetWrapper(getEntitySetByDocumentType(doc.DocumentTypeCode as DocumentTypeCode))\n .query(doc.Id)\n .select(OtherLiabilityEntity.DateDue)\n .fetchData<(IOtherReceivableEntity | IOtherLiabilityEntity)>();\n doc.DateDue = docRes.value?.DateDue;\n }\n};\n","import { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\n\nimport { IGetDefinition } from \"./PageUtils\";\n\nconst DefByEntityType: Partial> = {};\n\nexport const setDefByEntityType = (entityType: EntityTypeName, definition: IGetDefinition): void => {\n DefByEntityType[entityType] = definition;\n};\n\n// keep in standalone module to prevent circular dependency\nexport const getDefByEntityType = (entityType: EntityTypeName): IGetDefinition => {\n return DefByEntityType[entityType];\n};\n\nexport const getAllEntityTypes = (): EntityTypeName[] => {\n return Object.values(EntityTypeName).filter(key => DefByEntityType[key]);\n};\n\nexport const getAllDefinitions = (): IGetDefinition[] => {\n return Object.values(DefByEntityType);\n};\n\n// definitions for stuffs like forms in dialogs, that don't have variants\n// ==> we don't want to test them for existing systemVariant,\n// but we still want to verify the definition integrity\nconst DefsForTesting: Record = {};\n\nexport const setDefForTesting = (name: string, definition: IGetDefinition): void => {\n DefsForTesting[name] = definition;\n};\n\nexport const getDefsForTesting = () => {\n return DefsForTesting;\n};\n\n/** Import all definition files, must be on global level, cannot be in a function, this will download all bundles\n * Works in browser.\n *\n * */\nexport const importAllDefinitionsBrowser = (): void => {\n function requireAll(r: __WebpackModuleApi.RequireContext) {\n r.keys().forEach(r);\n }\n\n requireAll(require.context(\"@pages/\", true, /^.*(\\.def|Def)\\..*$/));\n};","import styled from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { T_HEADER_bold, T_PLAIN_small, T_TITLE_2_2 } from \"../../../global.style\";\nimport { ellipsis } from \"polished\";\nimport { getDashboardBoxShadow } from \"../../dashboard/Dashboard.styles\";\n\nconst BusinessCardLeftPadding = 32;\nconst AvatarSize = 64;\n\nexport const StyledBusinessCardTile = styled(DashboardTileBackground)`\n position: relative;\n margin-left: ${BusinessCardLeftPadding}px;\n padding-left: 44px;\n`;\n\nexport const BusinessCardAvatar = styled.div`\n ${T_TITLE_2_2};\n position: absolute;\n top: 50%;\n left: 0;\n transform: translate(-50%, -50%);\n width: ${AvatarSize}px;\n height: ${AvatarSize}px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n z-index: 1;\n color: ${props => props.theme.C_SEM_text_good};\n background-color: ${props => props.theme.C_LAB_green};\n ${props => getDashboardBoxShadow(props)};\n`;\n\nexport const Heading = styled.h3`\n ${T_HEADER_bold};\n ${ellipsis()};\n margin: 8px 0 24px;\n`;\n\nexport const Contact = styled.a`\n ${T_PLAIN_small};\n ${ellipsis()};\n align-self: flex-start;\n color: ${props => props.theme.C_TEXT_primary};\n margin-bottom: 3px;\n`;\n","import React, { useCallback, useContext } from \"react\";\nimport { BusinessCardAvatar, Contact, Heading, StyledBusinessCardTile } from \"./BusinessCardTile.styles\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { initials } from \"@utils/string\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { phoneNumberInputFormatter } from \"../../smart/GeneralFieldDefinition\";\n\nconst BusinessCardTile: React.FC = ({ inEditMode }) => {\n const context = useContext(AppContext);\n\n const { FirstName, LastName, Email, PhoneNumber } = context.getCompany()?.CommunicationContact ?? {};\n const Name = `${FirstName} ${LastName}`;\n\n const preventEventInEditMode = useCallback((e) => {\n if (inEditMode) {\n e.preventDefault();\n }\n }, [inEditMode]);\n\n return (\n \n \n {initials(Name)}\n \n {Name}\n \n {phoneNumberInputFormatter(PhoneNumber)}\n \n \n {Email}\n \n \n );\n};\n\nexport default BusinessCardTile;","import styled, { css, keyframes } from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { PureTextArea } from \"../../inputs/textArea/TextArea\";\nimport { T_PLAIN_small } from \"../../../global.style\";\nimport { ScrollBar } from \"../../scrollBar\";\nimport Checkbox from \"../../inputs/checkbox\";\nimport { DashboardTileHorizontalPadding, DashboardTileVerticalPadding } from \"../../dashboard/Dashboard.styles\";\nimport { transparentize } from \"polished\";\nimport { isDefined } from \"@utils/general\";\n\nexport const StyledTodoListTile = styled(DashboardTileBackground)`\n align-items: stretch;\n justify-content: flex-start;\n padding: 0;\n`;\n\nexport const StyledTodoList = styled(ScrollBar)`\n padding: 0 ${DashboardTileHorizontalPadding}px ${DashboardTileVerticalPadding}px;\n flex: 1 1 auto;\n height: 0;\n`;\n\nconst remove = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n\nexport const StyledTodoListItem = styled.div<{ $hideAnimationDelay: number }>`\n position: relative;\n padding-left: 30px;\n ${props => isDefined(props.$hideAnimationDelay) && css`\n animation: ${remove} .3s ease-out;\n animation-delay: ${props.$hideAnimationDelay}s;\n `};\n`;\n\nexport const CheckboxStyled = styled(Checkbox)`\n position: absolute;\n top: 15px;\n left: 0;\n transform: translate(0, -50%);\n`;\n\nconst getDashImage = (color: string) =>\n `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:svgjs='http://svgjs.com/svgjs' width='6' height='30' preserveAspectRatio='none' viewBox='0 0 6 30'%3e%3cg%3e%3crect width='2' height='1' x='0' y='27' fill='${color}'%3e%3c/rect%3e%3c/g%3e%3c/svg%3e\")`;\n\nexport const PureTextAreaStyled = styled(PureTextArea)`\n background: ${props => props.theme.C_ACT_hover_without_opacity} ${getDashImage(\"rgba(0,0,0,0.1)\")} top left repeat;\n\n textarea {\n ${T_PLAIN_small};\n padding: 0;\n line-height: 30px;\n border: none;\n background-color: transparent;\n color: ${props => props.theme.C_TEXT_primary};\n max-height: unset;\n }\n\n textarea::selection {\n background-color: ${props => transparentize(0.5, props.theme.C_BG_menu)};\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { CheckboxStyled, PureTextAreaStyled, StyledTodoListItem } from \"./TodoList.styles\";\nimport { ICheckboxChange } from \"../../inputs/checkbox\";\nimport { IInputOnChangeEvent } from \"../../inputs/input\";\nimport { KeyName } from \"../../../keyName\";\nimport { isDefined } from \"@utils/general\";\n\nexport interface IEditEndArgs {\n hasChanged: boolean;\n addNext?: boolean;\n remove?: boolean;\n}\n\nexport interface ITodoListItemProps {\n id: string;\n isActive?: boolean;\n isCompleted?: boolean;\n isDisabled?: boolean;\n text: string;\n onEditEnd?: (id: string, value: string, args?: IEditEndArgs) => void;\n onComplete?: (id: string, isCompleted: boolean) => void;\n onNavigate?: (id: string, dir: number) => void;\n removeAnimationDelay?: number;\n onAnimationEnd?: (id: string) => void;\n}\n\nconst TodoListItem: React.FC = (props) => {\n const { id, isActive, isCompleted, text, onEditEnd, onComplete, onNavigate } = props;\n const textarea = useRef();\n\n const [currentValue, setCurrentValue] = useState(text);\n\n const handleComplete = useCallback((args: ICheckboxChange) => {\n onComplete(id, args.value);\n }, [onComplete, id]);\n\n const handleChange = useCallback((e: IInputOnChangeEvent) => {\n setCurrentValue(e.value);\n }, [setCurrentValue]);\n\n const handleBlur = useCallback(() => {\n // trigger the callback only in case there is a change or there is no value (newItem)\n if (text !== currentValue || !text) {\n onEditEnd(id, currentValue, { hasChanged: true, remove: !currentValue });\n }\n }, [onEditEnd, id, currentValue, text]);\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n const addNext = event.key === KeyName.Enter;\n const remove = event.key === KeyName.Backspace && !currentValue;\n const hasChanged = text !== currentValue;\n if (addNext || remove) {\n event.preventDefault();\n onEditEnd(id, currentValue, { addNext, remove, hasChanged });\n } else if (event.key === KeyName.ArrowUp || event.key === KeyName.ArrowDown) {\n event.preventDefault();\n onNavigate(id, event.key === KeyName.ArrowUp ? 1 : -1);\n }\n }, [onNavigate, onEditEnd, id, currentValue, text]);\n\n const handleAnimationEnd = useCallback(() => {\n if (isDefined(props.removeAnimationDelay)) {\n props.onAnimationEnd(id);\n }\n }, [props, id]);\n\n useEffect(() => {\n if (isActive) {\n textarea.current?.focus();\n }\n }, [isActive]);\n\n return (\n \n \n\n \n \n );\n};\n\nexport default TodoListItem;","import React from \"react\";\nimport TodoListItem, { ITodoListItemProps } from \"./TodoListItem\";\nimport { StyledTodoList } from \"./TodoList.styles\";\nimport { ITodoListItem } from \"./TodoList.utils\";\n\ninterface IProps extends Pick {\n items: ITodoListItem[];\n active: string;\n isDisabled?: boolean;\n toBeRemoved: string[];\n}\n\nconst TodoList: React.FC = ({ items, active, toBeRemoved, ...passProps }) => {\n return (\n \n {items?.map(task => (\n \n ))}\n \n );\n};\n\nexport default TodoList;","import { TEntityKey } from \"@odata/BindingContext\";\nimport { EntitySetName, IDashboardTaskEntity } from \"@odata/GeneratedEntityTypes\";\nimport { OData } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport {\n isDefined,\n isNotDefined,\n roundToDecimalPlaces,\n sortCompareBooleanFn,\n sortCompareFn,\n uuidv4\n} from \"@utils/general\";\n\nimport { Sort } from \"../../../enums\";\nimport { getLocalTimeDate } from \"../../../types/Date\";\n\n\nexport interface ITodoListItem extends IDashboardTaskEntity {\n}\n\n// increment new sequence numbers by higher value, so there is enough space to put some items in between\nconst SequenceIncrement = 512;\n\nexport const isNewItemId = (id: TEntityKey): boolean => isNotDefined(id);\nexport const isNewItem = (item: ITodoListItem): boolean => isNewItemId(item?.Id);\n\nexport function createTodoListItem(allItems: ITodoListItem[], insertAfter?: ITodoListItem): ITodoListItem {\n let nextSequenceNumber: number;\n // Find two items in sequence and insert the new one between them or if insertAfter is not defined,\n // find the highest order number and inserts the new item before it. If allItems are empty array,\n // returns zero as first order number.\n allItems.forEach(item => {\n if ((!insertAfter || insertAfter.SequenceOrder > item.SequenceOrder) &&\n (isNotDefined(nextSequenceNumber) || item.SequenceOrder > nextSequenceNumber)) {\n nextSequenceNumber = item.SequenceOrder;\n }\n });\n switch (true) {\n case insertAfter && isDefined(nextSequenceNumber):\n // Two items have been found, we place the new one between\n nextSequenceNumber = roundToDecimalPlaces(4, (insertAfter.SequenceOrder + nextSequenceNumber) / 2.0);\n break;\n case !!insertAfter:\n // insertAfter is defined, but we haven't found any item after it - put it at the end\n nextSequenceNumber = insertAfter.SequenceOrder - SequenceIncrement;\n break;\n case isDefined(nextSequenceNumber):\n // insert at the beginning (increment highest found number\n nextSequenceNumber += SequenceIncrement;\n break;\n default:\n // nothing in the list, initialize the Sequence\n nextSequenceNumber = 0;\n break;\n }\n\n return {\n Id: null,\n Description: \"\",\n SequenceOrder: nextSequenceNumber,\n DateCreated: getLocalTimeDate(),\n TemporaryGuid: uuidv4(),\n };\n}\n\n// returns true if item is completed, but not recently - recently completed items should be rendered at the same place\nfunction isCompleted(item: ITodoListItem, toBeCompleted: string[]): boolean {\n return item.DateCompleted && !toBeCompleted?.includes(item.TemporaryGuid);\n}\n\nexport function sortTodoListItems(items: ITodoListItem[], toBeCompleted: string[]): ITodoListItem[] {\n return items.sort((a, b) => {\n const aCompleted = isCompleted(a, toBeCompleted),\n bCompleted = isCompleted(b, toBeCompleted);\n if (aCompleted && bCompleted) {\n return sortCompareFn(a.DateCompleted, b.DateCompleted, Sort.Desc);\n } else if (!aCompleted && !bCompleted) {\n return sortCompareFn(a.SequenceOrder, b.SequenceOrder, Sort.Desc);\n }\n return sortCompareBooleanFn(!a.DateCompleted, !b.DateCompleted);\n });\n}\n\n\nexport function updateItemInList(items: ITodoListItem[], guid: string, data: Partial): ITodoListItem[] {\n let changedItem: ITodoListItem;\n const restItems = items.filter(item => {\n if (item.TemporaryGuid === guid) {\n changedItem = item;\n return false;\n }\n return true;\n });\n changedItem = {\n ...changedItem,\n ...data\n };\n return [changedItem, ...restItems];\n}\n\nexport function loadTodoListItems(oData: OData, signal?: AbortSignal): Promise {\n return oData.getEntitySetWrapper(EntitySetName.DashboardTasks).query()\n .fetchData(null, { signal })\n .then(res => res.value.map(item => ({ ...item, TemporaryGuid: uuidv4() })));\n}\n\nexport async function saveItem(oData: OData, item: ITodoListItem, diff: Partial): Promise {\n const wrapper = oData.getEntitySetWrapper(EntitySetName.DashboardTasks);\n let res: ODataQueryResult;\n if (isNewItem(item)) {\n const { Description, DateCompleted, SequenceOrder, TemporaryGuid } = item;\n res = await wrapper.create({\n Description,\n DateCompleted,\n SequenceOrder,\n TemporaryGuid, ...diff\n }) as ODataQueryResult;\n } else {\n res = await wrapper.update(item.Id, diff) as ODataQueryResult;\n }\n return res?.value;\n}\n\nexport async function removeItem(oData: OData, id: TEntityKey): Promise {\n if (!isNewItemId(id)) {\n await oData.getEntitySetWrapper(EntitySetName.DashboardTasks).delete(id);\n }\n}","import { WithOData, withOData } from \"@odata/withOData\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { TRecordType } from \"../../../global.types\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport TodoList from \"./TodoList\";\nimport { StyledTodoListTile } from \"./TodoList.styles\";\nimport {\n createTodoListItem,\n isNewItem,\n ITodoListItem,\n loadTodoListItems,\n removeItem,\n saveItem,\n sortTodoListItems,\n updateItemInList\n} from \"./TodoList.utils\";\nimport { IEditEndArgs } from \"./TodoListItem\";\n\nenum TodoListHeaderAction {\n ShowCompleted = \"ShowCompleted\",\n AddNew = \"AddNew\"\n}\n\ninterface IProps extends IDashboardTileComponentProps, WithOData, WithTranslation {\n}\n\ninterface IState {\n items?: ITodoListItem[];\n toBeCompleted?: string[];\n active?: string;\n isCompletedVisible?: boolean;\n isLoading?: boolean;\n hasError?: boolean;\n}\n\nclass TodoListTile extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n state: IState = {\n isCompletedVisible: false,\n items: [],\n active: null,\n isLoading: true,\n hasError: false\n };\n\n _newItemPromises: TRecordType> = {};\n _mounted = true;\n _companyId: string = null;\n\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n if (this.context.getCompanyId() !== this._companyId) {\n this.init();\n }\n }\n\n componentWillUnmount() {\n this._mounted = false;\n }\n\n async init(): Promise {\n let items: ITodoListItem[] = [];\n let hasError = false;\n this._companyId = this.context.getCompanyId();\n\n try {\n items = await loadTodoListItems(this.props.oData);\n } catch (e) {\n hasError = true;\n }\n if (this._mounted) {\n this.setState({ items, isLoading: false, hasError });\n }\n }\n\n getUncompletedItems = memoizeOne(() => this.state.items.filter((item) => !item.DateCompleted || this.state.toBeCompleted?.includes(item.TemporaryGuid)),\n () => [this.state.items, this.state.toBeCompleted]);\n\n getSortedItems = memoizeOne(() => sortTodoListItems(this.state.isCompletedVisible ? this.state.items : this.getUncompletedItems(), this.state.toBeCompleted),\n () => [this.state.isCompletedVisible, this.state.items, this.getUncompletedItems(), this.state.toBeCompleted]);\n\n getActions = memoizeOne(() => {\n return [{\n id: TodoListHeaderAction.ShowCompleted,\n label: this.props.t(\"Home:TodoList.ShowCompleted\"),\n iconName: this.state.isCompletedVisible ? \"VisibleFilled\" : \"Visible\",\n isVisible: this.getUncompletedItems()?.length !== this.state.items.length,\n isDisabled: this.props.inEditMode\n }, {\n id: TodoListHeaderAction.AddNew,\n label: this.props.t(\"Home:TodoList.AddNew\"),\n iconName: \"Plus\",\n isDisabled: this.props.inEditMode\n }];\n }, () => [this.state.isCompletedVisible, this.getUncompletedItems(), this.state.items, this.props.inEditMode]);\n\n saveItem(currentItem: ITodoListItem, diff: Partial) {\n if (isNewItem(currentItem) && this._newItemPromises[currentItem.TemporaryGuid]) {\n this._newItemPromises[currentItem.TemporaryGuid]\n .then(savedItem => this.saveItem(savedItem, diff));\n return;\n }\n\n const promise = saveItem(this.props.oData, currentItem, diff);\n\n if (isNewItem(currentItem)) {\n this._newItemPromises[currentItem.TemporaryGuid] = promise;\n // update Id in the list\n promise.then((savedItem) => {\n this.setState(({ items }) => ({\n items: updateItemInList(items, currentItem.TemporaryGuid, { Id: savedItem.Id })\n }));\n });\n }\n }\n\n handleEditEnd = (guid: string, value: string, args: IEditEndArgs) => {\n const { addNext, remove, hasChanged } = args;\n\n this.setState((state) => {\n const sortedItems = sortTodoListItems(state.items, state.toBeCompleted);\n const currentIdx = sortedItems.findIndex(item => item.TemporaryGuid === guid);\n const itemToChange = sortedItems[currentIdx];\n\n if (remove) {\n removeItem(this.props.oData, itemToChange.Id);\n // set previous as active, or nothing if the removed item was the first one\n const nextActive = currentIdx > 0 ? sortedItems[currentIdx - 1].TemporaryGuid : null;\n return {\n items: state.items.filter(i => i.TemporaryGuid !== guid),\n active: nextActive\n };\n }\n\n let changedItems: ITodoListItem[] = state.items;\n let active: string = null;\n\n if (hasChanged) {\n const diff = { Description: value };\n changedItems = updateItemInList(state.items, guid, diff);\n this.saveItem(itemToChange, diff);\n }\n if (addNext) {\n const newItem = createTodoListItem(changedItems, itemToChange);\n changedItems = [newItem, ...changedItems];\n active = newItem.TemporaryGuid;\n }\n\n return {\n items: changedItems,\n active\n };\n });\n };\n\n handleNavigation = (guid: string, dir: number) => {\n const sortedItems = this.getSortedItems();\n const currentIdx = sortedItems.findIndex((item) => item.TemporaryGuid === guid);\n const newIdx = currentIdx - dir;\n if (newIdx >= 0 && newIdx < sortedItems.length) {\n this.setState({ active: sortedItems[newIdx].TemporaryGuid });\n }\n };\n\n handleComplete = (guid: string, value: boolean) => {\n this.setState(({ items, isCompletedVisible, toBeCompleted }) => {\n const itemToChange = items.find(item => item.TemporaryGuid === guid);\n const DateCompleted = value ? getUtcDate() : null;\n const diff = { DateCompleted };\n this.saveItem(itemToChange, diff);\n\n if (!isCompletedVisible) {\n toBeCompleted = [...(toBeCompleted ?? []), guid];\n }\n\n // when completion is removed\n if (!DateCompleted) {\n const hasAnotherCompletedTask = items?.find(item => item.DateCompleted && item.TemporaryGuid !== guid);\n if (!hasAnotherCompletedTask) {\n isCompletedVisible = false;\n }\n // -> if it was removed recently, clear it from toBeCompleted list\n toBeCompleted = toBeCompleted?.filter(id => id !== guid);\n }\n\n return {\n items: updateItemInList(items, guid, diff),\n isCompletedVisible,\n toBeCompleted\n };\n });\n };\n\n handleAnimationEnd = (guid: string) => {\n this.setState(({ toBeCompleted }) => ({\n toBeCompleted: toBeCompleted.filter(id => id !== guid)\n }));\n };\n\n handleHeaderAction = (actionId: string) => {\n if (actionId === TodoListHeaderAction.ShowCompleted) {\n this.setState(({ isCompletedVisible }) => ({ isCompletedVisible: !isCompletedVisible }));\n } else if (actionId === TodoListHeaderAction.AddNew) {\n this.setState(({ items }) => {\n const newItem = createTodoListItem(items);\n return {\n items: [newItem, ...items],\n active: newItem.TemporaryGuid\n };\n });\n }\n };\n\n render() {\n return (\n \n \n {this.props.t(\"Home:TodoList.Heading\")}\n \n\n \n \n );\n }\n}\n\nexport default withOData(withTranslation(\"Home\")(TodoListTile));","import { DashboardTileType, IDashboardDefinition, TTileDefinition } from \"@components/dashboard\";\nimport { EMPTY_DASH } from \"@components/readOnlyList/ReadOnlyList\";\nimport { ifAll, IGetValueArgs, not } from \"@components/smart/FieldInfo\";\nimport { EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, ElectronicSubmissionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getCompanyCurrency, isCashBasisAccountingCompany, isOnOrganizationLevel } from \"@utils/CompanyUtils\";\nimport { fetchUnfinishedDocumentsCounts, getUnfinishedDocumentsTableData } from \"@utils/DraftUtils\";\nimport i18next from \"i18next\";\nimport { capitalize } from \"lodash\";\n\nimport BusinessCardTile from \"../../components/tiles/businessCardTile\";\nimport TodoListTile from \"../../components/tiles/todoList/TodoListTile\";\nimport { VAT_ASSESSMENT_TURNOVER_LIMIT } from \"../../constants\";\nimport { Status } from \"../../enums\";\nimport { ROUTE_ELECTRONIC_SUBMISSION } from \"../../routes\";\nimport Currency from \"../../types/Currency\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport NumberType from \"../../types/Number\";\nimport { getSortedDocumentEntityTypeNamesWithPermission } from \"../documents/Document.utils\";\nimport { getLastSubmissionByType } from \"../electronicSubmission/ElectronicSubmission.utils\";\nimport {\n getVatSubmissionFrequencyFromPeriod,\n getVatSubmissionPeriodName\n} from \"../electronicSubmission/VatSubmission.utils\";\nimport { currencyScaleFormatter, getLinkTileConfig, linkConfigs, ticketsWidgetId } from \"./CustomerDashboardDef\";\nimport {\n agendaIsVatRegistered,\n getAgendaWorkOverviewTileDef,\n getAgendaWorkOverviewTileDefCashBasisAccounting,\n getBankAccountsTileDef,\n getCashBoxTileDef,\n getCustomerSupportTileDef,\n getDemoTenantTileDef,\n getEstimatedAccrualsDef,\n getFutureExpensesAndRevenuesDef,\n getInboxTileDef,\n getIncomeExpenseOverviewTileDef,\n getKeyboardShortcutsTileDef,\n getManualsDef,\n getNextElectronicSubmissionDate,\n getNotClearedDocumentsDef,\n getPaymentDocumentTileDef,\n getPurchaseTileDef,\n getTicketsInfoTileDef,\n getVatAssessmentTurnoverData,\n getVatOverviewChartTileData,\n getVideoHelpTileDef,\n getWelcomeTileDef,\n hasAnyCompanyPermission,\n isInCustomerPortal\n} from \"./Home.utils\";\n\n/**\n * Dashboard configuration for accountant with specific selected agenda\n */\nexport function getDashboardDefinition(): IDashboardDefinition {\n const isCba = (args: IGetValueArgs) => { // TODO: temporary, figure out how this should work on cba company\n return isCashBasisAccountingCompany(args.context);\n };\n\n const tileDefinition: TTileDefinition = {\n Welcome: getWelcomeTileDef(),\n Purchase: getPurchaseTileDef(),\n IncomeExpenseOverview: getIncomeExpenseOverviewTileDef(),\n VatOverview: {\n type: DashboardTileType.Chart,\n title: i18next.t(\"Home:VatOverviewChart.Heading\"),\n size: { w: 4, h: 2 },\n chartData: getVatOverviewChartTileData,\n formatter: currencyScaleFormatter,\n isVisible: ifAll(agendaIsVatRegistered, not(isCba))\n },\n TodoList: {\n title: i18next.t(\"Home:TodoList.Heading\"),\n type: DashboardTileType.Custom,\n component: TodoListTile,\n size: { w: 2, h: 2 }\n },\n VideoHelp: getVideoHelpTileDef(),\n BusinessCard: {\n title: i18next.t(\"Home:BusinessCard.Heading\"),\n type: DashboardTileType.Custom,\n size: { w: 2, h: 1 },\n component: BusinessCardTile\n },\n VatAssessmentTurnover: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:VatAssessmentTurnover.Heading\"),\n infoData: async ({ oData, context }) => {\n const current = await getVatAssessmentTurnoverData(oData, isCashBasisAccountingCompany(context));\n return [\n {\n value: NumberType.format(current, { maximumFractionDigits: 0 }),\n unit: \"Kč\",\n severity: current > VAT_ASSESSMENT_TURNOVER_LIMIT ? Status.Error : Status.Success,\n label: i18next.t(\"Home:VatAssessmentTurnover.From\", { number: Currency.format(VAT_ASSESSMENT_TURNOVER_LIMIT, { currency: getCompanyCurrency(context) }) })\n }\n ];\n },\n isVisible: not(agendaIsVatRegistered),\n size: { w: 2, h: 1 }\n },\n ValueAddedTaxDates: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:ValueAddedTaxDates.Heading\"),\n infoData: async ({ oData, context }) => {\n const [lastSubmission,] = await Promise.all([\n getLastSubmissionByType(oData, ElectronicSubmissionTypeCode.VatStatement),\n i18next.loadNamespaces(\"ElectronicSubmission\")\n ]);\n const lastSubmissionStartDate = lastSubmission?.DatePeriodStart;\n const {\n period,\n submissionDate\n } = await getNextElectronicSubmissionDate(lastSubmissionStartDate, oData, context);\n const now = getUtcDayjs();\n const lastSubmissionPeriodName = lastSubmissionStartDate ? getVatSubmissionPeriodName(lastSubmissionStartDate, getVatSubmissionFrequencyFromPeriod(lastSubmission)) : EMPTY_DASH;\n return [\n {\n value: period ? capitalize(getVatSubmissionPeriodName(period.from, getVatSubmissionFrequencyFromPeriod(period))) : EMPTY_DASH,\n severity: submissionDate && now.isAfter(submissionDate) ? Status.Error : null,\n label: i18next.t(\"Home:ValueAddedTaxDates.Last\", { date: lastSubmissionPeriodName })\n }\n ];\n },\n isVisible: ifAll(agendaIsVatRegistered, hasAnyCompanyPermission(CompanyPermissionCode.VatStatement)),\n size: { w: 2, h: 1 },\n link: ROUTE_ELECTRONIC_SUBMISSION\n },\n UnfinishedDocuments: {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:UnfinishedDocuments.Heading\"),\n size: { w: 4, h: 3 },\n tableData: async ({ context, oData }) => {\n const sortedDocEntityTypes = getSortedDocumentEntityTypeNamesWithPermission(context, false);\n\n const [counts] = await Promise.all([\n fetchUnfinishedDocumentsCounts(oData, sortedDocEntityTypes),\n i18next.loadNamespaces([\"FiscalYearClose\", \"Document\"])\n ]);\n return getUnfinishedDocumentsTableData(context, sortedDocEntityTypes, counts, {\n addDocumentIcon: false,\n hideStatusIcon: true,\n showEmptyLines: true\n });\n }\n },\n BankTransactions: getPaymentDocumentTileDef(EntitySetName.BankTransactions),\n CashReceipts: getPaymentDocumentTileDef(EntitySetName.CashReceipts),\n BankAccounts: getBankAccountsTileDef(),\n CashBoxes: getCashBoxTileDef(),\n NotClearedDocuments: getNotClearedDocumentsDef(),\n KeyboardShortcuts: getKeyboardShortcutsTileDef(),\n AgendaWorkOverview: getAgendaWorkOverviewTileDef(false),\n AgendaWorkOverviewCashBasisAccounting: getAgendaWorkOverviewTileDefCashBasisAccounting(),\n FutureExpensesAndRevenues: getFutureExpensesAndRevenuesDef(),\n EstimatedAccruals: getEstimatedAccrualsDef(),\n TicketsOverview: getTicketsInfoTileDef(),\n Inbox: getInboxTileDef(),\n DemoTenant: getDemoTenantTileDef(),\n CustomerSupport: getCustomerSupportTileDef(),\n Manuals: getManualsDef(),\n [ticketsWidgetId]: getLinkTileConfig(ticketsWidgetId, linkConfigs[ticketsWidgetId])\n };\n\n const optionalTiles: (keyof TTileDefinition)[] = [\"FutureExpensesAndRevenues\", \"EstimatedAccruals\", \"TicketsOverview\", \"Inbox\", \"DemoTenant\"];\n const defaultTiles = Object.keys(tileDefinition).filter(key => !optionalTiles.includes(key));\n\n return {\n tileDefinition,\n isVisible: ifAll(not(isOnOrganizationLevel), not(isInCustomerPortal)),\n groups: [{\n id: \"all\",\n title: i18next.t(\"Home:AgendaTitle\"),\n tiles: defaultTiles,\n allTiles: [...defaultTiles, ...optionalTiles]\n }]\n };\n}\n","import { ChartType } from \"@components/charts\";\nimport { TChartValueFormatterFn } from \"@components/charts/Charts.types\";\nimport {\n DashboardTileType,\n IChartTileInfo,\n IDashboardDefinition,\n IGetTileDataArgs,\n ILinkTileInfo,\n ITableTileData,\n TTileDefinition\n} from \"@components/dashboard\";\nimport { GrowthNegativeIcon, GrowthPositiveIcon, GrowthZeroIcon } from \"@components/icon\";\nimport {\n formatDateToDateString,\n getSlidingInterval,\n IDateInterval,\n IDayjsInterval\n} from \"@components/inputs/date/utils\";\nimport { EMPTY_DASH } from \"@components/readOnlyList/ReadOnlyList\";\nimport { ifAll, IGetValueArgs, not } from \"@components/smart/FieldInfo\";\nimport { IReportRowDef } from \"@components/smart/smartTable\";\nimport { IColumn, IRow, TCellValue } from \"@components/table\";\nimport { IChartTileData } from \"@components/tiles/chartTile/ChartTile\";\nimport { infoTileCurrencyFormatter } from \"@components/tiles/infoTile\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n BusinessPartnerEntity,\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n EntitySetName,\n EntityTypeName,\n IDocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CurrencyCode, DocumentTypeCode, ElectronicSubmissionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isAccountAssignmentCompanyValue, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { forEachKey, ifPositive } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport {\n AGING_AP_API_URL,\n AGING_AR_API_URL,\n ASSET_DEPRECIATION_MONTH_API_URL,\n CBA_INCOME_EXPENSE_OVERVIEW_API_URL\n} from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { IconSize, Status, TextAlign, ValueType } from \"../../enums\";\nimport { TRecordType } from \"../../global.types\";\nimport {\n ROUTE_ACCOUNTING_JOURNAL,\n ROUTE_AGING_AP,\n ROUTE_AGING_AR,\n ROUTE_ASSET_ANALYSIS,\n ROUTE_BALANCE_SHEET,\n ROUTE_CBA_ENTRY_LEDGER,\n ROUTE_CUSTOMER_PORTAL_PAYMENT,\n ROUTE_DOCUMENT_JOURNAL,\n ROUTE_GENERAL_LEDGER,\n ROUTE_INBOX_CUSTOMER_APPROVAL,\n ROUTE_INBOX_SEND_TO_ACCOUNTANT,\n ROUTE_INCOME_STATEMENT,\n ROUTE_PAYMENT_JOURNAL,\n ROUTE_TICKETS\n} from \"../../routes\";\nimport { formatCurrency, getCurrencyScale } from \"../../types/Currency\";\nimport DateType, { getUtcDate, getUtcDayjs, TDateLike } from \"../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport memoize from \"../../utils/memoize\";\nimport { getUnpaidDocumentsForPayment } from \"../customerPortalPayment/CustomerPortalPaymentUtils\";\nimport { getLastSubmissionByType } from \"../electronicSubmission/ElectronicSubmission.utils\";\nimport { getActiveFiscalYear, getOldestActiveFY } from \"../fiscalYear/FiscalYear.utils\";\nimport { getInboxForApprovalCount } from \"../inbox/Inbox.utils\";\nimport { AgingIssuedTypes, AgingReceivedTypes, AgingType } from \"../reports/aging/AgingBase\";\nimport { afterDueDateDefaultRange } from \"../reports/customFilterComponents/AgingInterval\";\nimport {\n CbaIncomeExpenseType,\n IReportData,\n IReportSettings,\n NumberAggregationFunction,\n TimeAggregationFunction\n} from \"../reports/Report.utils\";\nimport { getUnfinishedTicketCount } from \"../tickets/Tickets.utils\";\nimport { PercentageWrapper, SemanticText } from \"./Home.style\";\nimport {\n getAssetAnalysisData,\n getChartLabels,\n getIncomeExpenseOverviewTileDef,\n getInfoDataTileCellValueWithSeverity,\n getJournalSummaryData,\n getLinkTileDef,\n getWelcomeTileDef,\n isInCustomerPortal,\n timeAggregationToOpUnitType,\n VAT_ACCOUNT_PREFIX\n} from \"./Home.utils\";\n\ntype TBasicLinkTileConfig = Partial & Pick;\n\nconst _isVatPayer = (args: IGetValueArgs) => isVatRegisteredCompany(args.context);\n\nexport const linkConfigs: TRecordType = {\n Tickets: { link: ROUTE_TICKETS, count: getUnfinishedTicketCount },\n CustomerPortalPayment: { link: ROUTE_CUSTOMER_PORTAL_PAYMENT, count: getUnpaidDocumentsForPayment },\n Inbox: { link: ROUTE_INBOX_CUSTOMER_APPROVAL, count: getInboxForApprovalCount },\n SendToAccountant: { link: ROUTE_INBOX_SEND_TO_ACCOUNTANT },\n AccountingJournal: { link: ROUTE_ACCOUNTING_JOURNAL, isVisible: isAccountAssignmentCompanyValue },\n CbaEntryLedger: { link: ROUTE_CBA_ENTRY_LEDGER, isVisible: not(isAccountAssignmentCompanyValue) },\n BalanceSheet: { link: ROUTE_BALANCE_SHEET, isVisible: isAccountAssignmentCompanyValue },\n // not ready, hidden\n // CustomerPortalInvoicing: { link: ROUTE_CONNECT_WITH_IDOKLAD },\n GeneralLedger: { link: ROUTE_GENERAL_LEDGER, isVisible: isAccountAssignmentCompanyValue },\n IncomeStatement: { link: ROUTE_INCOME_STATEMENT, isVisible: isAccountAssignmentCompanyValue },\n DocumentJournal: { link: ROUTE_DOCUMENT_JOURNAL },\n PaymentJournal: { link: ROUTE_PAYMENT_JOURNAL }\n};\n\nexport const ticketsWidgetId: keyof typeof linkConfigs = \"Tickets\";\nexport const customerPortalPaymentId: keyof typeof linkConfigs = \"CustomerPortalPayment\";\n\nexport const getLinkTileConfig = (id: string, cfg: TBasicLinkTileConfig): ILinkTileInfo =>\n getLinkTileDef(`Home:CustomerPortalLink.${id}`, cfg.link, id, cfg);\n\n\n// todo: unify with ExchangeRateDiffScreen.tsx\nfunction getBestBusinessPartnerTableDataCellValues(name: string, thisYearValue: number, lastYearValue: number, context: IAppContext): TRecordType {\n const formattedValue = formatCurrency(thisYearValue, getCompanyCurrency(context));\n\n const diff = thisYearValue - lastYearValue;\n const severity = ifPositive(diff, Status.Success, Status.Error, Status.Warning);\n const Icon = ifPositive(diff, GrowthPositiveIcon, GrowthNegativeIcon, GrowthZeroIcon);\n const percentage = thisYearValue !== 0 && lastYearValue !== 0 ? Math.abs(Math.round(100 * thisYearValue / lastYearValue - 100)) : 100;\n\n return {\n Name: {\n tooltip: name,\n value: ({name})\n },\n Value: formattedValue,\n Difference: {\n tooltip: `${percentage} %`,\n value: (\n \n \n {percentage} %\n \n )\n }\n };\n}\n\nconst REVENUES_ACCOUNT_PREFIX = \"6\";\nconst EXPENSES_ACCOUNT_PREFIX = \"5\";\n\nfunction getCbaEntryLedgerParams(interval: IDateInterval, aggregationFn?: TimeAggregationFunction, onlyIncome = false): IReportSettings {\n const Groups = aggregationFn ? [{\n ColumnAlias: \"CbaIncomeExpenseOverview_DocumentDate\",\n AggregationFunction: aggregationFn\n }] : [];\n\n const Type = onlyIncome ? CbaIncomeExpenseType.Income : CbaIncomeExpenseType.All;\n\n return {\n DateRange: {\n DateStart: formatDateToDateString(interval.from),\n DateEnd: formatDateToDateString(interval.to)\n },\n IncludeUnrelatedToBusiness: false,\n Type,\n ReportHierarchy: {\n Aggregate: true,\n Groups,\n Columns: [],\n Aggregations: [{\n ColumnAlias: \"CbaIncomeExpenseOverview_AmountTaxed\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n };\n}\n\nconst getCbaEntryLedgerSummaryData = memoize(async (interval: IDateInterval, aggregationFn: TimeAggregationFunction, onlyIncome = false): Promise => {\n const aggregatedPoints = getChartLabels(interval, aggregationFn, \"YYYY-MM-DD\");\n const opUnit = timeAggregationToOpUnitType(aggregationFn);\n\n const _extractAggregatedData = (rows: IReportRowDef[]): number[] => {\n return aggregatedPoints.map(formattedDate => {\n const groupedResult = rows?.find(row => row.Type === \"MergedGroup\" && getUtcDayjs(row.Value[`CbaIncomeExpenseOverview_DocumentDate_${aggregationFn}`] as TDateLike).isSame(getUtcDayjs(formattedDate), opUnit));\n return groupedResult ? groupedResult.Value[`CbaIncomeExpenseOverview_AmountTaxed_SUM`] as number : 0;\n });\n };\n\n let ret: number[] = [];\n\n try {\n const params = getCbaEntryLedgerParams(interval, aggregationFn, onlyIncome);\n\n ret = await customFetch(CBA_INCOME_EXPENSE_OVERVIEW_API_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify(params)\n })\n .then(response => response.json())\n .then((data: IReportData) => _extractAggregatedData(data.Rows));\n\n } catch (e) {\n // todo: handleError\n throw e;\n }\n\n return ret;\n}, (interval, aggregationFn) => [interval.from, interval.to, aggregationFn]);\n\nasync function getJournalDataForCurrentFYForInfoTile(account: string, trPrefix: string, {\n context\n}: IGetTileDataArgs) {\n const currentFY = getActiveFiscalYear(context);\n const currentFYInterval = {\n from: getUtcDayjs(currentFY?.DateStart),\n to: getUtcDayjs(currentFY?.DateEnd)\n };\n const [value] = await getJournalSummaryData(account, currentFYInterval);\n return [{\n ...getInfoDataTileCellValueWithSeverity(value),\n label: i18next.t(`Home:${trPrefix}.Label`),\n unit: \"Kč\"\n }];\n}\n\nasync function getRevenueGrowthChartTileData(): Promise> {\n const dataSetLabels = [\"LastYear\", \"ThisYear\"].map(key => i18next.t(`Home:RevenueGrowth.${key}`));\n const step = TimeAggregationFunction.Month;\n const { previous, current } = getSlidingInterval(getUtcDayjs().endOf(timeAggregationToOpUnitType(step)), \"year\");\n const labels = getChartLabels(current, step);\n\n const values = await Promise.all([previous, current].map(interval => getJournalSummaryData(REVENUES_ACCOUNT_PREFIX, interval, step)));\n\n return {\n type: ChartType.Line,\n chartProps: {\n labels,\n filled: true,\n dataSetLabels,\n colors: [\"C_CHART_orange\", \"C_CHART_red\"],\n values\n }\n };\n}\n\nasync function getRevenueExpenseDiffChartTileData(): Promise> {\n const step = TimeAggregationFunction.Month;\n const { current } = getSlidingInterval(getUtcDayjs().endOf(timeAggregationToOpUnitType(step)), \"year\");\n const labels = getChartLabels(current, step);\n\n const [revenues, expenses] = await Promise.all([REVENUES_ACCOUNT_PREFIX, EXPENSES_ACCOUNT_PREFIX].map(account => getJournalSummaryData(account, current, step)));\n const values = revenues.map((revenue, idx) => revenue + expenses[idx]);\n\n return {\n type: ChartType.Line,\n chartProps: {\n labels,\n colors: [\"C_CHART_green\"],\n values: [values]\n }\n };\n}\n\nasync function getCbaRevenueGrowthChartTileData(): Promise> {\n const dataSetLabels = [\"LastYear\", \"ThisYear\"].map(key => i18next.t(`Home:CbaRevenueGrowth.${key}`));\n const step = TimeAggregationFunction.Month;\n const { previous, current } = getSlidingInterval(getUtcDayjs().endOf(timeAggregationToOpUnitType(step)), \"year\");\n const labels = getChartLabels(current, step);\n\n const values = await Promise.all([previous, current].map(interval => getCbaEntryLedgerSummaryData(interval, step, true)));\n\n return {\n type: ChartType.Line,\n chartProps: {\n labels,\n filled: true,\n dataSetLabels,\n colors: [\"C_CHART_orange\", \"C_CHART_red\"],\n values\n }\n };\n}\n\nasync function getCbaRevenueExpenseDiffChartTileData(): Promise> {\n const step = TimeAggregationFunction.Month;\n const { current } = getSlidingInterval(getUtcDayjs().endOf(timeAggregationToOpUnitType(step)), \"year\");\n const labels = getChartLabels(current, step);\n\n const values = await getCbaEntryLedgerSummaryData(current, step);\n\n return {\n type: ChartType.Line,\n chartProps: {\n labels,\n colors: [\"C_CHART_green\"],\n values: [values]\n }\n };\n}\n\nasync function getBusinessPartnersTableData(oData: OData, context: IAppContext, interval: IDayjsInterval, types: DocumentTypeCode[] = [], businessPartnerIds: number[] = null): Promise[]> {\n const bpPath = createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner, BusinessPartnerEntity.Id);\n const filters = [\n `${DocumentEntity.DateAccountingTransaction} ge ${transformToODataString(interval.from, ValueType.Date)}`,\n `${DocumentEntity.DateAccountingTransaction} le ${transformToODataString(interval.to, ValueType.Date)}`,\n `${bpPath} ne null`,\n ];\n const resultCount = 5;\n const isVatPayer = _isVatPayer({ context });\n\n if (types?.length) {\n const docTypesQuery = transformToODataString(types, ValueType.String);\n filters.push(`${DocumentEntity.DocumentTypeCode} in (${docTypesQuery})`);\n }\n\n businessPartnerIds = businessPartnerIds?.filter(item => !!item);\n if (businessPartnerIds?.length) {\n filters.push(`${bpPath} in (${transformToODataString(businessPartnerIds, ValueType.Number)})`);\n }\n\n const query = oData.getEntitySetWrapper(EntitySetName.Documents).query()\n .groupBy(\n createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner, BusinessPartnerEntity.Id),\n createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.BusinessPartner, BusinessPartnerEntity.Name)\n )\n .aggregate(`${isVatPayer ? DocumentEntity.AmountNet : DocumentEntity.Amount} with sum as ${DocumentEntity.Amount}`)\n .orderBy(DocumentEntity.Amount, false)\n .top(resultCount)\n .filter(filters.join(\" AND \"));\n\n const data = await query.fetchData();\n\n return data.value.map(item => ({ ...item, ...item.BusinessPartner }));\n}\n\nexport async function getBestBusinessPartnersTableData(key: \"BestSuppliers\" | \"BestCustomers\", {\n oData,\n context\n}: IGetTileDataArgs): Promise {\n const columns: IColumn[] = [{\n id: \"Name\",\n label: i18next.t(`Home:${key}.Name`),\n textAlign: TextAlign.Left,\n width: 165\n }, {\n id: \"Value\",\n label: i18next.t(`Home:${key}.Value`),\n textAlign: TextAlign.Right\n }, {\n id: \"Difference\",\n label: i18next.t(`Home:${key}.Difference`),\n textAlign: TextAlign.Right,\n stretchContent: true\n }];\n const rows: IRow[] = [];\n\n const isExpense = key === \"BestSuppliers\";\n const docTypes = isExpense ? [DocumentTypeCode.InvoiceReceived, DocumentTypeCode.OtherLiability, DocumentTypeCode.CashReceiptReceived, DocumentTypeCode.CorrectiveInvoiceReceived]\n : [DocumentTypeCode.InvoiceIssued, DocumentTypeCode.OtherReceivable, DocumentTypeCode.CashReceiptIssued, DocumentTypeCode.CorrectiveInvoiceIssued];\n\n const { current, previous } = getSlidingInterval(getUtcDayjs(), \"year\");\n const currentData = await getBusinessPartnersTableData(oData, context, current, docTypes);\n\n if (currentData.length) {\n const BPIds = currentData.map(doc => doc.BusinessPartner.Id);\n const previousData = await getBusinessPartnersTableData(oData, context, previous, docTypes, BPIds);\n\n currentData.forEach(row => {\n const { Id, Name } = row.BusinessPartner;\n const Value = row.Amount ?? 0;\n const Difference = previousData.find(prevRow => prevRow.BusinessPartner.Id === Id)?.Amount ?? 0;\n\n rows.push({ id: Id, values: getBestBusinessPartnerTableDataCellValues(Name, Value, Difference, context) });\n });\n }\n\n return { columns, rows };\n}\n\ninterface IAssetDepreciationSummary {\n CurrentMonthDepreciation: number;\n PreviousMonthDepreciation: number;\n}\n\nasync function getAssetDepreciationData(): Promise {\n let data: IAssetDepreciationSummary;\n try {\n const response = await customFetch(ASSET_DEPRECIATION_MONTH_API_URL);\n data = await response.json();\n } catch (e) {\n // todo: handle error\n }\n return {\n CurrentMonthDepreciation: data?.CurrentMonthDepreciation ?? 0,\n PreviousMonthDepreciation: data?.PreviousMonthDepreciation ?? 0\n };\n}\n\ninterface IAgingReportData {\n labels: string[];\n values: number[];\n}\n\nasync function getAgingReportData(type: AgingType, toDate: Date): Promise {\n const params: IReportSettings = {\n CalculateToDate: formatDateToDateString(toDate),\n CalculationDecisiveDate: \"DateDue\",\n AgingIntervals: afterDueDateDefaultRange,\n AgingIntervalUnit: \"Day\",\n Currency: \"CZK\",\n DocumentTypes: type === AgingType.AP ? AgingReceivedTypes : AgingIssuedTypes,\n Sort: [],\n ReportHierarchy: {\n Aggregate: true,\n Groups: [],\n Columns: [],\n Aggregations: [{\n ColumnAlias: \"Document_TransactionAmountDue\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n };\n if (type === AgingType.AP) {\n params[\"AgingAPReportType\"] = \"PayablsAfterDueDate\";\n } else {\n params[\"AgingARReportType\"] = \"RcvblsAfterDueDate\";\n }\n\n const labels: string[] = [];\n const values: number[] = [];\n\n try {\n const url = type === AgingType.AP ? AGING_AP_API_URL : AGING_AR_API_URL;\n const response = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify(params)\n });\n\n const data = await response.json() as IReportData;\n const totalRow = data.Rows.find(row => row.Type === \"Total\");\n\n data.Columns.forEach(col => {\n if (col.AggregationFunction) {\n return;\n }\n labels.push(col.Label);\n values.push(totalRow.Value[col.ColumnAlias] as number);\n });\n\n } catch (e) {\n // todo: error state\n }\n\n return { labels, values };\n}\n\nasync function getAgingChartData(type: AgingType, {\n context,\n oData\n}: IGetTileDataArgs): Promise> {\n const { labels, values } = await getAgingReportData(type, getUtcDate());\n\n return {\n type: ChartType.Doughnut,\n chartProps: {\n labels, values,\n colors: [\"C_CHART_purple\", \"C_CHART_blue\", \"C_CHART_green\", \"C_CHART_yellow\"]\n }\n };\n}\n\nexport const currencyScaleFormatter: TChartValueFormatterFn = (axis, value, idx) => {\n if (axis === \"y\") {\n return getCurrencyScale(value as number, CurrencyCode.CzechKoruna);\n } else if (!axis) {\n // exact value\n return formatCurrency(value, CurrencyCode.CzechKoruna);\n }\n return `${value}`;\n};\n\nconst getAgingChartTileInfo = (type: AgingType): IChartTileInfo => ({\n type: DashboardTileType.Chart,\n title: i18next.t(`Home:${type === AgingType.AP ? \"AgingAP\" : \"AgingAR\"}.Heading`),\n size: { w: 2, h: 2 },\n link: type === AgingType.AP ? ROUTE_AGING_AP : ROUTE_AGING_AR,\n chartData: getAgingChartData.bind(null, type),\n formatter: currencyScaleFormatter\n});\n\n/**\n * Dashboard configuration for customer - visible on customer portal and on agenda level\n */\nexport function getDashboardDefinition(): IDashboardDefinition {\n\n const linkTiles: TTileDefinition = {};\n forEachKey(linkConfigs, (id) => {\n linkTiles[id] = getLinkTileConfig(id, linkConfigs[id]);\n });\n\n const tileDefinition: TTileDefinition = {\n Welcome: getWelcomeTileDef(),\n ...linkTiles,\n IncomeExpenseOverview: getIncomeExpenseOverviewTileDef(),\n LastSubmission: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:LastSubmission.Heading\"),\n infoData: async ({ oData, context }) => {\n const lastSubmission = await getLastSubmissionByType(oData, ElectronicSubmissionTypeCode.VatStatement);\n return [{\n value: lastSubmission?.DateSubmission ? DateType.format(lastSubmission?.DateSubmission) : EMPTY_DASH,\n label: lastSubmission?.ElectronicSubmissionTypeCode ? getEnumDisplayValue(EntityTypeName.ElectronicSubmissionType, lastSubmission?.ElectronicSubmissionTypeCode)\n : i18next.t(\"Home:LastSubmission.None\")\n }];\n },\n isVisible: ifAll(_isVatPayer, isAccountAssignmentCompanyValue),\n size: { w: 2, h: 1 }\n },\n AssetAnalysis: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:AssetAnalysis.Heading\"),\n link: ROUTE_ASSET_ANALYSIS,\n infoData: async ({ context }) => {\n const fy = getActiveFiscalYear(context);\n const value = await getAssetAnalysisData(fy?.Id);\n return [{\n value,\n label: i18next.t(\"Home:AssetAnalysis.Label\"),\n unit: \"Kč\"\n }];\n },\n formatter: infoTileCurrencyFormatter,\n isVisible: not(isAccountAssignmentCompanyValue),\n size: { w: 2, h: 1 }\n },\n VatOverview: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:VatOverview.Heading\"),\n infoData: async ({ oData, context }) => {\n // When FY is closed, accounts are zeroed and there is new entry at the first day of new fiscalYear to\n // set initial account balance, so we can show only summary on accounts of opened fiscalYears till now\n const _fromFY = getOldestActiveFY(context);\n const interval: IDateInterval = {\n from: _fromFY.DateStart,\n to: getUtcDate()\n };\n const [value] = await getJournalSummaryData(VAT_ACCOUNT_PREFIX, interval);\n\n return [{\n // we display green color for negative values so we invert the sign, the method use abs for value anyway so we can do that\n ...getInfoDataTileCellValueWithSeverity(value * -1),\n label: i18next.t(`Home:VatOverview.${ifPositive(value, \"VatLiability\", \"VatReceivable\", \"NoVat\")}`),\n unit: \"Kč\"\n }];\n },\n formatter: infoTileCurrencyFormatter,\n isVisible: ifAll(_isVatPayer, isAccountAssignmentCompanyValue),\n size: { w: 2, h: 1 }\n },\n Expenses: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:Expenses.Heading\"),\n infoData: getJournalDataForCurrentFYForInfoTile.bind(null, EXPENSES_ACCOUNT_PREFIX, \"Expenses\"),\n formatter: infoTileCurrencyFormatter,\n isVisible: isAccountAssignmentCompanyValue,\n size: { w: 2, h: 1 }\n },\n Revenues: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:Revenues.Heading\"),\n infoData: getJournalDataForCurrentFYForInfoTile.bind(null, REVENUES_ACCOUNT_PREFIX, \"Revenues\"),\n formatter: infoTileCurrencyFormatter,\n isVisible: isAccountAssignmentCompanyValue,\n size: { w: 2, h: 1 }\n },\n // AverageMaturity: {\n // type: DashboardTileType.Info,\n // title: i18next.t(\"Home:AverageMaturity.Heading\"),\n // infoData: async ({ oData, context }) => {\n // const revenues = 14,\n // expenses = 7;\n // return [{\n // value: revenues,\n // label: i18next.t(\"Home:AverageMaturity.Revenues\"),\n // unit: i18next.t(\"Home:AverageMaturity.day\", { count: revenues })\n // }, {\n // value: expenses,\n // label: i18next.t(\"Home:AverageMaturity.Expenses\"),\n // unit: i18next.t(\"Home:AverageMaturity.day\", { count: expenses })\n // }];\n // },\n // size: { w: 2, h: 1 }\n // },\n AssetDepreciation: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:AssetDepreciation.Heading\"),\n link: ROUTE_ASSET_ANALYSIS,\n isVisible: isAccountAssignmentCompanyValue,\n infoData: async ({ oData, context }) => {\n const { CurrentMonthDepreciation, PreviousMonthDepreciation } = await getAssetDepreciationData();\n return [{\n value: CurrentMonthDepreciation,\n label: i18next.t(\"Home:AssetDepreciation.ThisMonth\"),\n unit: \"Kč\"\n }, {\n value: PreviousMonthDepreciation,\n label: i18next.t(\"Home:AssetDepreciation.NextMonth\"),\n unit: \"Kč\"\n }];\n },\n formatter: infoTileCurrencyFormatter,\n size: { w: 4, h: 1 }\n },\n BestSuppliers: {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:BestSuppliers.Heading\"),\n size: { w: 3, h: 2 },\n tooltip: i18next.t(\"Home:BestSuppliers.Tooltip\"),\n tableData: getBestBusinessPartnersTableData.bind(null, \"BestSuppliers\")\n },\n BestCustomers: {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:BestCustomers.Heading\"),\n size: { w: 3, h: 2 },\n tooltip: i18next.t(\"Home:BestCustomers.Tooltip\"),\n tableData: getBestBusinessPartnersTableData.bind(null, \"BestCustomers\")\n },\n AgingAP: getAgingChartTileInfo(AgingType.AP),\n AgingAR: getAgingChartTileInfo(AgingType.AR),\n RevenueGrowth: {\n type: DashboardTileType.Chart,\n title: i18next.t(\"Home:RevenueGrowth.Heading\"),\n size: { w: 4, h: 2 },\n chartData: getRevenueGrowthChartTileData,\n formatter: currencyScaleFormatter,\n isVisible: isAccountAssignmentCompanyValue\n },\n RevenueExpenseDiff: {\n type: DashboardTileType.Chart,\n title: i18next.t(\"Home:RevenueExpenseDiff.Heading\"),\n size: { w: 4, h: 2 },\n chartData: getRevenueExpenseDiffChartTileData,\n formatter: currencyScaleFormatter,\n isVisible: isAccountAssignmentCompanyValue\n },\n CbaRevenueGrowth: {\n type: DashboardTileType.Chart,\n title: i18next.t(\"Home:CbaRevenueGrowth.Heading\"),\n size: { w: 4, h: 2 },\n chartData: getCbaRevenueGrowthChartTileData,\n formatter: currencyScaleFormatter,\n isVisible: not(isAccountAssignmentCompanyValue)\n },\n CbaRevenueExpenseDiff: {\n type: DashboardTileType.Chart,\n title: i18next.t(\"Home:CbaRevenueExpenseDiff.Heading\"),\n size: { w: 4, h: 2 },\n chartData: getCbaRevenueExpenseDiffChartTileData,\n formatter: currencyScaleFormatter,\n isVisible: not(isAccountAssignmentCompanyValue)\n }\n };\n\n const optionalTiles: (keyof TTileDefinition)[] = [];\n const defaultTiles = Object.keys(tileDefinition).filter(key => !optionalTiles.includes(key));\n\n return {\n groups: [\n {\n id: \"all\",\n title: i18next.t(\"Home:CustomerTitle\"),\n tiles: defaultTiles,\n allTiles: [...defaultTiles, ...optionalTiles]\n }\n ],\n tileDefinition,\n isVisible: isInCustomerPortal\n };\n}\n","import { IGetTileDataArgs } from \"@components/dashboard\";\nimport { CustomerPortalPaymentEntity, EntitySetName } from \"@odata/GeneratedEntityTypes\";\n\nexport async function getUnpaidDocumentsForPayment(args: IGetTileDataArgs): Promise {\n const { oData, signal } = args;\n\n const query = oData.getEntitySetWrapper(EntitySetName.CustomerPortalPayments)\n .query()\n .filter(`${CustomerPortalPaymentEntity.IsPaid} eq false`)\n .count();\n\n const data = await query.fetchData(null, { signal });\n\n return data?._metadata?.count ?? 0;\n}\n","const CUSTOMER_PORTAL_KEY = \"CustomerPortal\";\n\ninterface ICustomerPortalData {\n isActive?: boolean;\n}\n\nexport class CustomerPortalSettings {\n data: ICustomerPortalData = {};\n\n constructor() {\n try {\n const data = JSON.parse(sessionStorage.getItem(CUSTOMER_PORTAL_KEY)) as ICustomerPortalData;\n this.data = data ?? {};\n } catch (e) {\n /* fall silently */\n }\n }\n\n __save(): void {\n try {\n sessionStorage.setItem(CUSTOMER_PORTAL_KEY, JSON.stringify(this.data));\n } catch (e) { /* fall silently */\n }\n }\n\n get isActive(): boolean {\n return this.data.isActive;\n }\n\n set isActive(value: boolean) {\n this.data.isActive = value;\n this.__save();\n }\n}\n\nexport const CustomerPortal = new CustomerPortalSettings();\n","import { IDashboardDefinition, IDashboardLayoutConfig, TDashboardLayout } from \"@components/dashboard\";\nimport {\n createLayout,\n createLayoutFromDefinition,\n createTileFromDefinition,\n getOrderFromLayout,\n insertTileToLayout\n} from \"@components/dashboard/Dashboard.utils\";\nimport { getInfoValue } from \"@components/smart/FieldInfo\";\nimport { forEachKey } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { ContextEvents, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { P13nType } from \"../../enums\";\nimport { TRecordType } from \"../../global.types\";\n\nexport interface IDashboardManager {\n companyId: number;\n name: string;\n definition: IDashboardDefinition;\n config: IDashboardLayoutConfig;\n originalConfig: IDashboardLayoutConfig;\n availableTiles: Set;\n\n subscribe: (ref: React.Component) => (() => void);\n setOriginalConfig: () => void;\n restoreOriginalConfig: () => void;\n updateLayout: (layout: IDashboardLayoutConfig) => void;\n toggleTile: (id: string, isVisible: boolean) => void;\n sync: () => void;\n removeConfig: () => void;\n language: string;\n}\n\nexport function removeAllSavedDashboards(context: IAppContext): Promise {\n return context.p13n.delete(P13nType.SavedDashboards);\n}\n\nexport class DashboardManager {\n static managers: TRecordType = {};\n\n static get(name: string): IDashboardManager {\n return DashboardManager.managers[name];\n }\n\n static register(name: string, manager: IDashboardManager): void {\n DashboardManager.managers[name] = manager;\n }\n\n /**\n * Clears the DashboardManager's managers object (cache).\n *\n * @returns {void}\n */\n static clear(): void {\n DashboardManager.managers = {};\n }\n}\n\nfunction getDashboardId(name: string, companyId?: number) {\n const suffix = companyId ? `(${companyId})` : \"\";\n return `${name}${suffix}`;\n}\n\nexport async function DashboardManagerFactory(name: string, getDef: () => IDashboardDefinition, context: IAppContext): Promise {\n let manager = DashboardManager.get(name);\n\n if (manager && i18next.language === manager.language) {\n return manager;\n }\n\n const definition = getDef();\n\n const subscribedComponents: React.Component[] = [];\n\n const subscribe = (ref: React.Component) => {\n subscribedComponents.push(ref);\n return /*unsubscribe*/() => {\n const index = subscribedComponents.findIndex(item => item === ref);\n subscribedComponents.splice(index, 1);\n };\n };\n\n const refresh = () => {\n subscribedComponents.forEach(component => component.forceUpdate());\n };\n\n manager = {\n companyId: null,\n name,\n definition,\n config: null,\n originalConfig: null,\n restoreOriginalConfig: null,\n setOriginalConfig: null,\n subscribe,\n availableTiles: null,\n updateLayout: null,\n toggleTile: null,\n sync: null,\n removeConfig: null,\n language: i18next.language\n };\n\n const loadConfig = async () => {\n const companyId = context.getCompanyId();\n\n const getVisibleTiles = () => {\n const visibleSet = new Set();\n forEachKey(definition.tileDefinition, (id) => {\n try {\n if (getInfoValue(definition.tileDefinition[id], \"isVisible\", { context }) !== false) {\n visibleSet.add(id);\n }\n } catch (e) {\n // fall silently -> in case there is error in \"isVisible\" callback,\n // we should not fail to initialize whole dashboard, just consider the tile as invisible\n logger.error(\"DashboardTile misconfiguration: \" + e.toString());\n }\n });\n return visibleSet;\n };\n\n // tiles, which are available for current user\n const availableTiles = getVisibleTiles();\n\n let savedConfig: IDashboardLayoutConfig;\n try {\n savedConfig = await context.p13n.get(P13nType.SavedDashboards, getDashboardId(name, companyId));\n\n if (savedConfig) {\n // filter out only tiles, which are present in the definition in case definition has changed since last save\n savedConfig.layout = savedConfig.layout?.filter(item => availableTiles.has(item.i));\n }\n } catch (e) { /*fall silently*/\n }\n\n manager.config = savedConfig ?? {\n cols: 0,\n layout: createLayoutFromDefinition(definition, availableTiles)\n };\n manager.availableTiles = availableTiles;\n manager.companyId = companyId;\n };\n\n manager.setOriginalConfig = () => {\n manager.originalConfig = {\n ...manager.config\n };\n };\n\n manager.restoreOriginalConfig = () => {\n manager.config = {\n ...manager.originalConfig\n };\n };\n\n manager.sync = () => {\n try {\n const layoutToSave = manager.config.layout.map(({ i, w, h, x, y }) => ({ i, w, h, x, y }));\n const configToSave = {\n cols: manager.config.cols,\n layout: layoutToSave\n };\n context.p13n.update>(P13nType.SavedDashboards, getDashboardId(name, manager.companyId), configToSave);\n } catch (e) { /*fall silently*/\n }\n };\n\n manager.removeConfig = () => {\n context.p13n.update>(P13nType.SavedDashboards, getDashboardId(name, manager.companyId), null);\n };\n\n manager.updateLayout = (newConfig: IDashboardLayoutConfig) => {\n manager.config = {\n ...newConfig\n };\n refresh();\n };\n\n manager.toggleTile = (id: string, isVisible: boolean) => {\n let layout: TDashboardLayout;\n let { cols } = manager.config;\n if (isVisible) {\n if (!manager.config.layout.find(item => item.i === id)) {\n layout = [...manager.config.layout];\n const tile = createTileFromDefinition(id, definition.tileDefinition[id]);\n if (tile.w > cols) {\n cols = tile.w;\n }\n insertTileToLayout(layout, cols, tile);\n }\n } else {\n layout = manager.config.layout.filter(item => item.i !== id);\n const orderedTiles = getOrderFromLayout(layout);\n const recalculated = createLayout(orderedTiles, cols);\n layout = recalculated.layout;\n cols = recalculated.cols;\n }\n manager.config = {\n cols,\n layout\n };\n refresh();\n };\n\n context.eventEmitter.on(ContextEvents.CompanyChanged, async () => {\n const currentCompanyId = context.getCompanyId();\n if (currentCompanyId !== manager.companyId) {\n // reload tile config on dashboard when company changes\n await loadConfig();\n refresh();\n }\n });\n\n // initialLoad...\n await loadConfig();\n\n DashboardManager.register(name, manager);\n return manager;\n}","import { TilePadding } from \"@components/dashboard/Dashboard.styles\";\nimport { Header } from \"@components/formGroup\";\nimport { StyledCheckbox } from \"@components/inputs/checkbox/Checkbox.styles\";\nimport { SeparatorLabel, StyledSeparator } from \"@components/separator/Separator.styles\";\nimport { TableCellStretchedContent } from \"@components/table/Rows.styles\";\nimport { ellipsis } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nimport { Button } from \"../../components/button\";\nimport Checkbox from \"../../components/inputs/checkbox\";\nimport { Status } from \"../../enums\";\nimport {\n getSemanticTextColor,\n LayoutStackOrder,\n LocalStackOrder,\n T_HEADER_bold,\n T_PLAIN_big_hig,\n T_PLAIN_tiny,\n T_TITLE_1,\n T_TITLE_3_normal,\n T_TITLE_4\n} from \"../../global.style\";\nimport { SmartHeaderStyled } from \"../../views/formView/FormView.styles\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\n\nexport const StyledHome = styled.div<{ $inEditMode: boolean }>`\n position: relative;\n height: 0;\n flex: 1 1 auto;\n /* Over bottom wave illustration */\n z-index: ${props => props.$inEditMode ? LayoutStackOrder.DashboardConfiguration : LocalStackOrder.Tooltips};\n margin-top: 70px;\n`;\n\nexport const StyledHomeBackground = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.C_BG_menu};\n\n display: flex;\n flex-direction: column;\n`;\n\nexport const HomeSmartHeaderStyled = styled(SmartHeaderStyled)`\n padding: ${VIEW_PADDING_VALUE}px ${VIEW_PADDING_VALUE}px 0;\n`;\n\nexport const InnerWrapper = styled.div`\n max-height: 100%;\n overflow: auto;\n`;\n\nexport const UserResearchWrapper = styled.div`\n width: 100%;\n max-width: 500px;\n min-width: 300px;\n margin: 0 auto 0;\n`;\n\nexport const HomeDashboardHeaderStyled = styled(Header)`\n ${T_HEADER_bold};\n margin: 30px 0 20px;\n\n &:first-child {\n // there is additional padding in the wrapper, which is needed to keep shadow of tiles \n // visible if there is no header\n margin-top: ${30 - TilePadding}px;\n }\n`;\n\nexport const HomeEditButtonFooter = styled.div`\n padding: ${VIEW_PADDING_VALUE}px;\n text-align: right;\n z-index: ${LayoutStackOrder.DashboardConfiguration};\n`;\n\nexport const CloseButton = styled(Button) `\n margin-right: 14px;\n`;\n\nexport const ConfigurationHeader = styled.h3`\n ${T_TITLE_1};\n color: ${props => props.theme.C_TEXT_dialogue};\n margin-bottom: 75px;\n`;\n\nexport const ConfigurationCheckboxStyled = styled(Checkbox)`\n height: 70px;\n padding: 0 16px 0 67px;\n border-radius: 10px;\n background-color: rgba(0, 0, 0, 0.2);\n margin-bottom: 12px;\n color: ${props => props.theme.C_TEXT_dialogue};\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: center;\n\n &:hover {\n background-color: ${props => props.theme.C_ACT_hover}\n }\n\n ${StyledCheckbox} {\n position: absolute;\n top: 50%;\n left: 16px;\n transform: translate(0, -50%);\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const StyledTitle = styled.div`\n ${T_TITLE_3_normal};\n ${ellipsis()};\n`;\n\nexport const StyledSubtitle = styled.div`\n ${T_PLAIN_tiny};\n ${ellipsis()};\n margin-top: 4px;\n`;\n\nexport const ConfigurationSectionHeaderStyled = styled(Header)`\n ${T_PLAIN_big_hig};\n\n &:not(:empty) {\n margin: 30px 0 20px;\n }\n\n &:first-of-type {\n margin-top: 0;\n }\n\n color: ${props => props.theme.C_TEXT_dialogue};\n text-transform: uppercase;\n\n ${StyledSeparator} {\n margin-right: 0;\n width: 100%;\n\n ${SeparatorLabel} {\n margin: 0;\n ${T_TITLE_4};\n }\n }\n`;\n\nexport const SemanticText = styled.span<{ severity: Status; isBold?: boolean; }>`\n color: ${props => getSemanticTextColor(props.theme, props.severity)};\n font-weight: ${props => props.isBold ? \"bold\" : \"normal\"};\n`;\n\nexport const PercentageWrapper = styled.span`\n display: flex;\n align-items: center;\n ${TableCellStretchedContent};\n`;\n\nexport const CloseCustomerPortalButtonStyled = styled(Button)`\n position: absolute;\n right: ${VIEW_PADDING_VALUE}px;\n top: ${VIEW_PADDING_VALUE}px;\n`;","import { WithOData, withOData } from \"@odata/withOData\";\nimport { getJournalEntriesLastMonthDef, getPostedDocumentsLastMonthDef } from \"@pages/home/Home.utils\";\nimport React, { memo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport InfoTile from \"../infoTile\";\nimport {\n GroupedInfoTileBackground,\n GroupedInfoTileContentWrapper,\n GroupInfoTileHeader\n} from \"../infoTile/InfoTile.styles\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst AgendaPerformanceOverview: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n const postedDocumentsLastMonth = getPostedDocumentsLastMonthDef();\n const journalEntriesLastMonthDef = getJournalEntriesLastMonthDef();\n return (\n \n \n {t(\"Home:AgendaPerformanceOverview.Title\")}\n \n\n \n \n \n \n \n );\n};\n\nexport default memo(withOData(AgendaPerformanceOverview));\n","import styled from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { DashboardTileRadius, DashboardTileRadiusPx } from \"../../dashboard/Dashboard.styles\";\nimport { T_HEADER_bold } from \"../../../global.style\";\n\nconst BorderWidth = 3;\n\nexport const StyledDemoTenantTile = styled(DashboardTileBackground)`\n justify-content: space-around;\n`;\n\nexport const CreateDemoTenant = styled.div`\n z-index: 1;\n text-align: center;\n ${T_HEADER_bold};\n font-weight: 600;\n letter-spacing: 0.18px;\n\n &::before, &::after {\n display: block;\n position: absolute;\n content: \" \";\n z-index: -1;\n\n border-radius: ${DashboardTileRadiusPx};\n }\n\n &::after {\n border-radius: ${DashboardTileRadius - BorderWidth}px;\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n top: ${BorderWidth}px;\n left: ${BorderWidth}px;\n bottom: ${BorderWidth}px;\n right: ${BorderWidth}px;\n }\n\n &::before {\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: ${props => props.theme.C_MAIN_brand_gradient};\n }\n`;","import DemoTenantWrapper from \"@components/tiles/demoTenant/DemoTenantWrapper\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport React, { memo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { DemoTenantIcon } from \"../../icon\";\nimport { IconHeight, IconWidth, StyledLinkTileTitle, StyledLinkTileTitleWrapper } from \"../linkTile/LinkTile.styles\";\nimport { CreateDemoTenant, StyledDemoTenantTile } from \"./DemoTenant.styles\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst DemoTenant: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n\n return (\n {({ handleClick, isLoading, isNotCreated }) => (\n \n {isNotCreated ? (\n {t(\"DemoTenant.Create\")}\n ) : (<>\n \n \n {t(\"DemoTenant.Title\")}\n \n )}\n \n )}\n );\n};\n\nexport default memo(withOData(DemoTenant));\n","import { CompanyPermissionCode } from \"@odata/GeneratedEnums\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport {\n getEstimatedAccrualsDef,\n getFutureExpensesAndRevenuesDef,\n getInboxTileDef,\n getTicketsInfoTileDef\n} from \"@pages/home/Home.utils\";\nimport { isCashBasisAccountingCompany, isOnOrganizationLevel } from \"@utils/CompanyUtils\";\nimport React, { memo, useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { ROUTE_AGENDA_WORK_OVERVIEW } from \"../../../routes\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport InfoTile from \"../infoTile\";\nimport {\n GroupedInfoTileBackground,\n GroupedInfoTileContentWrapper,\n GroupInfoTileHeader\n} from \"../infoTile/InfoTile.styles\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst AgendaWorkOverview: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n const context = useContext(AppContext);\n const futureExpensesAndRevenuesInfo = getFutureExpensesAndRevenuesDef(true);\n const estimatedAccrualsInfo = getEstimatedAccrualsDef(true);\n const ticketsInfo = getTicketsInfoTileDef(true);\n const inboxInfo = getInboxTileDef(true);\n const isCrossCompany = isOnOrganizationLevel({ context });\n\n const showInternalDocRelated = isCrossCompany || context.getCompanyPermissions().has(CompanyPermissionCode.InternalAndCorrectiveDocuments);\n const showInboxRelated = isCrossCompany || context.getCompanyPermissions().has(CompanyPermissionCode.SortingFilesFromAPhotoFile);\n const isCashBasis = isCashBasisAccountingCompany(context);\n const cols = isCashBasis ? 1 : 2;\n\n return (\n \n \n {t(`Home:AgendaWorkOverview.${isCrossCompany ? \"Title\" : \"SingleCompanyTitle\"}`)}\n \n\n \n {!isCashBasis &&\n <>\n {showInternalDocRelated &&\n }\n {showInternalDocRelated &&\n }\n \n }\n \n {showInboxRelated && }\n \n \n );\n};\n\nexport default memo(withOData(AgendaWorkOverview));","import styled from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport { DashboardTileHorizontalPadding } from \"../../dashboard/Dashboard.styles\";\nimport { T_HEADER_bold, T_PLAIN_small } from \"../../../global.style\";\n\n\nexport const StyledCustomerSupportTile = styled(DashboardTileBackground)`\n position: relative;\n padding: 24px ${DashboardTileHorizontalPadding}px 0 72px;\n\n svg {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n dl {\n margin: 0;\n padding: 0;\n ${T_PLAIN_small};\n\n dt {\n float: left;\n padding-right: 3px;\n }\n\n dd {\n margin-left: 0;\n margin-bottom: 3px;\n }\n }\n`;\n\nexport const Heading = styled.h2`\n margin-bottom: 24px;\n\n ${T_HEADER_bold};\n`;\n","import { WithOData, withOData } from \"@odata/withOData\";\nimport React, { memo, useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { CustomerSupportIcon } from \"../../icon\";\nimport { Heading, StyledCustomerSupportTile } from \"./CustomerSupportTile.styles\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst CustomerSupportTile: React.FC = ({ inEditMode, info, oData }) => {\n const { t } = useTranslation(\"Home\");\n\n const context = useContext(AppContext);\n const { CustomerSupportPin } = context.getData().userSettings;\n\n return (\n \n \n {t(\"CustomerSupport.Heading\")}\n
    \n \n );\n};\n\nexport default memo(withOData(CustomerSupportTile));","import DashboardTileBackground from \"@components/dashboard/DashboardTileBackground\";\nimport { Value } from \"@components/tiles/infoTile/InfoTile.styles\";\nimport styled from \"styled-components/macro\";\n\nexport enum TitleSize {\n small = 1,\n medium = 2,\n large = 3,\n}\n\nexport const StyledGroupedInfoTileBackground = styled(DashboardTileBackground)<{ $fontSize: TitleSize }>`\n position: relative;\n\n & ${Value} {\n white-space: nowrap;\n font-size: ${props => props.$fontSize === TitleSize.small ? \"21px\" : props.$fontSize === TitleSize.medium ? \"24px\" : \"30px\"};\n }\n`;","import {\n StyledGroupedInfoTileBackground,\n TitleSize\n} from \"@components/tiles/incomeExpenseOverview/IncomeExpenseOverview.styles\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { CbaEntryLedgerVariants } from \"@pages/reports/cbaEntryLedger/CbaEntryLedgerDef\";\nimport React, { memo, useContext, useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Status } from \"../../../enums\";\nimport { ROUTE_CBA_ENTRY_LEDGER } from \"../../../routes\";\nimport { DashboardTileType, IDashboardTileComponentProps, IInfoTileInfo } from \"../../dashboard\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport { getDrillDownNavParams } from \"../../drillDown/DrillDown.utils\";\nimport InfoTile, { infoTileCurrencyFormatter } from \"../infoTile/InfoTile\";\nimport { GroupedInfoTileContentWrapper, GroupInfoTileHeader } from \"../infoTile/InfoTile.styles\";\nimport { getIncomeExpenseOverviewData, IIncomeExpenseOverviewData } from \"./IncomeExpenseOverview.utils\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nconst IncomeExpenseOverview: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n const context = useContext(AppContext);\n\n\n const [loadedData, setData] = useState(null);\n const [isLoading, setLoading] = useState(true);\n\n useEffect(() => {\n let mounted = true;\n\n try {\n getIncomeExpenseOverviewData(context)\n .then(data => mounted && setData(data))\n .finally(() => mounted && setLoading(false));\n } catch (e) {\n if (mounted) {\n setData(null);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [context]);\n\n const incomeInfo: IInfoTileInfo = useMemo(() => ({\n type: DashboardTileType.Info,\n size: { w: 2, h: 1 },\n title: t(\"Home:IncomeExpenseOverview.Income\"),\n infoData: [{\n value: loadedData?.income?.tax,\n formatter: infoTileCurrencyFormatter,\n label: t(\"Home:IncomeExpenseOverview.Tax\"),\n severity: Status.Success,\n unit: \"Kč\"\n }, {\n value: loadedData?.income?.nontax,\n formatter: infoTileCurrencyFormatter,\n label: t(\"Home:IncomeExpenseOverview.NonTax\"),\n unit: \"Kč\"\n }],\n }), [t, loadedData]);\n\n const expenseInfo: IInfoTileInfo = useMemo(() => ({\n type: DashboardTileType.Info,\n size: { w: 2, h: 1 },\n title: t(\"Home:IncomeExpenseOverview.Expense\"),\n infoData: [{\n value: loadedData?.expense?.tax,\n formatter: infoTileCurrencyFormatter,\n label: t(\"Home:IncomeExpenseOverview.Tax\"),\n unit: \"Kč\"\n }, {\n value: loadedData?.expense?.nontax,\n formatter: infoTileCurrencyFormatter,\n label: t(\"Home:IncomeExpenseOverview.NonTax\"),\n unit: \"Kč\"\n }],\n }), [t, loadedData]);\n\n const titleSize: TitleSize = useMemo(() => {\n const expenseLength = (loadedData?.expense?.tax ?? 0).toString().length + (loadedData?.expense?.nontax ?? 0).toString().length;\n const incomeLength = (loadedData?.income?.tax ?? 0).toString().length + (loadedData?.income?.nontax ?? 0).toString().length;\n const width = Math.max(expenseLength, incomeLength, 10);\n return width < 16 ? width < 11 ? TitleSize.large : TitleSize.medium : TitleSize.small;\n }, [loadedData]);\n\n return (\n \n \n {t(\"Home:IncomeExpenseOverview.Heading\")}\n \n\n {!isLoading && (\n \n \n \n \n )}\n \n );\n};\n\nexport default memo(withOData(IncomeExpenseOverview));","import styled from \"styled-components/macro\";\nimport { T_PLAIN_small, T_TITLE_6 } from \"../../../global.style\";\nimport DashboardTileBackground from \"@components/dashboard/DashboardTileBackground\";\nimport DashboardTileHeader from \"@components/dashboard/DashboardTileHeader\";\n\nexport const KeyboardShortcutTileGrid = styled.div`\n display: grid;\n grid-template-columns: max-content auto;\n row-gap: 15px;\n padding-right: 16px;\n column-gap: 30px;\n\n margin-top: 25px;\n\n ${T_PLAIN_small};\n`;\n\nexport const ItemGroupHeader = styled.h3`\n ${T_TITLE_6};\n color: ${props => props.theme.C_ACT_main};\n grid-column: 1 / span 2;\n margin-top: 15px;\n margin-bottom: -5px;\n`;\n\nexport const ShortcutDescription = styled.div`\n position: relative;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 2px;\n left: -8px;\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n`;\n\nexport const DashboardTileBackgroundStyled = styled (DashboardTileBackground) `\n padding-right: 0px;\n`;\n\nexport const DashboardTileHeaderStyled = styled(DashboardTileHeader) `\n margin-bottom: 5px;\n`;","import { ScrollBar } from \"@components/scrollBar\";\nimport { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport {\n DashboardTileBackgroundStyled,\n DashboardTileHeaderStyled,\n ItemGroupHeader,\n KeyboardShortcutTileGrid,\n ShortcutDescription\n} from \"./KeyboardShortcutsTile.styles\";\n\ninterface IProps extends IDashboardTileComponentProps, WithTranslation {\n\n}\n\n\ninterface IKeyboardShortcutItemProps {\n shortcut: string;\n description: string;\n}\n\nconst KeyboardShortcutItem: React.FC = (props) => {\n return (\n <>\n
    {props.shortcut}
    \n {props.description}\n \n );\n};\n\nconst getMainShortcuts = (t: TFunction): IKeyboardShortcutItemProps[] => {\n return [\n { shortcut: \"ALT + N\", description: t(\"Home:KeyboardShortcuts.ALT_N\") },\n { shortcut: \"ALT + C\", description: t(\"Home:KeyboardShortcuts.ALT_C\") },\n { shortcut: \"ALT + S\", description: t(\"Home:KeyboardShortcuts.ALT_S\") },\n { shortcut: \"ALT + SHIFT + S\", description: t(\"Home:KeyboardShortcuts.ALT_SHIFT_S\") },\n { shortcut: \"ALT + D\", description: t(\"Home:KeyboardShortcuts.ALT_D\") }\n ];\n};\n\nconst getItemShortcuts = (t: TFunction): IKeyboardShortcutItemProps[] => {\n return [\n { shortcut: \"ALT + R\", description: t(\"Home:KeyboardShortcuts.ALT_R\") },\n { shortcut: \"ALT + X\", description: t(\"Home:KeyboardShortcuts.ALT_X\") },\n { shortcut: \"ALT + C\", description: t(\"Home:KeyboardShortcuts.ALT_C_ITEMS\") },\n { shortcut: \"ALT + ↓\", description: t(\"Home:KeyboardShortcuts.ALT_DOWN_ARROW\") },\n { shortcut: \"ALT + ↑\", description: t(\"Home:KeyboardShortcuts.ALT_UP_ARROW\") }\n ];\n};\n\n\nconst KeyboardShortcutsTile: React.FC = (props) => {\n return (\n \n {props.info.title}\n \n \n {getMainShortcuts(props.t).map(shortcut =>\n \n )}\n\n\n {props.t(\"Home:KeyboardShortcuts.GroupItemsHeader\")}\n {getItemShortcuts(props.t).map(shortcut =>\n \n )}\n \n\n \n \n );\n};\n\nexport default withTranslation([\"Home\"])(React.memo(KeyboardShortcutsTile));","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPurchaseTileMountains(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 330 330\",\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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 5197\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Mask Group 105\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 5169\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 5131\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4918\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4917\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4916\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4915\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4914\",\n opacity: 0.3\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 4913\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M266.767 246.484a40.284 40.284 0 11-40.284-40.284 40.284 40.284 0 0140.284 40.284\",\n fill: \"#fff\",\n \"data-name\": \"Path 10929\"\n })))))))), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Mask Group 100\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-7.495 253.391l6.955-4.786a83.212 83.212 0 0010.751.042c1.572-.164 4.323-.671 7.06-1.221l3.913 2.771 10.732.645 5.614 2.053 7.922 4.993 7.864 2.827 3.441 7.486 25.92-4.078 8.651-3.669 5.768 1.311 9.7-2.1 5.768 3.408 9.437 2.1 11.489 10.3 8.682 3.1 4.574-1.192 6.773-2.321 4.966-2.738 8.252-1.143 4.417-2.839c3.662-.581 7.87-1.671 8.766-2.3a7.285 7.285 0 013.428-.69s8.975-2.102 13.237-4.345 4.762-1.439 7.142-2.159 4.1-5.915 4.648-6.687 7.988-4.233 9.836-4.7 5.338-3.258 7.464-4.246 8.116.492 8.116.492 8.116.491 10.481.3 6.342-1.656 8.453-2.121a17.691 17.691 0 014.477-.661c1.31.037 5.757.426 5.757.426s3.842 3.255 6.477 2.806 10.9 3.981 15.828 5.956 8.116.491 8.116.491 4.484-.922 5.787-.622 7.5 3.622 8.806 3.92 7.022 2.035 8.587 2.342 7.33.469 9.427.529 3.218-2.532 5.061-2.742 3.616 1.938 5.451 1.99a31.955 31.955 0 015.495.417c.779.285 8.994 6.549 8.994 6.549v93.118H-25.286l13.471-98.675z\",\n fill: \"#fff\",\n \"data-name\": \"Path 11581\"\n })))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPurchaseTileMountains);\nexport default __webpack_public_path__ + \"static/media/purchaseTileMountains.1365ec2b2202d404494021504a48ea02.svg\";\nexport { ForwardRef as ReactComponent };","import styled from \"styled-components/macro\";\nimport { T_TITLE_1, T_TITLE_3 } from \"../../../global.style\";\nimport purchaseTileMountains from \"../../../static/images/purchaseTileMountains.svg\";\n\nconst BorderRadius = 30;\nconst BorderWidth = 3;\n\nexport const StyledPurchaseTile = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: ${props => props.theme.C_ACT_hover_without_opacity} url(${purchaseTileMountains}) bottom left no-repeat;\n background-size: auto 330px;\n background-position: -25px -30px;\n width: calc(100% - ${2 * BorderWidth}px);\n height: calc(100% - ${2 * BorderWidth}px);\n border-radius: ${BorderRadius}px;\n cursor: pointer;\n\n &::before {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: -${BorderWidth}px;\n left: -${BorderWidth}px;\n bottom: -${BorderWidth}px;\n right: -${BorderWidth}px;\n /* Adjust border-radius for the pseudo-element */\n border-radius: calc(${BorderRadius}px + ${BorderWidth}px);\n background: ${props => props.theme.C_MAIN_brand_gradient};\n }\n\n gap: 14px;\n`;\n\nexport const DaysLeftText = styled.div`\n white-space: pre-wrap;\n text-align: center;\n ${T_TITLE_3};\n`;\n\nexport const BuyEvalaTitle = styled.h3`\n ${T_TITLE_1};\n margin: 0;\n position: relative;\n`;","import React, { useCallback, useContext } from \"react\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { useTranslation } from \"react-i18next\";\nimport { BuyEvalaTitle, DaysLeftText, StyledPurchaseTile } from \"./PurchaseTile.styles\";\nimport { usePromisedComponent } from \"../../dialog/withPromisedComponent\";\nimport PurchaseWizardDialog from \"../../purchaseWizardDialog/PurchaseWizardDialog\";\nimport { getRemainingTrialPeriodDays } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\n\nconst PurchaseTile: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n const { component, openComponent } = usePromisedComponent();\n const context = useContext(AppContext);\n const handleTileClick = useCallback(async () => {\n await openComponent((onFinish) => {\n return (\n \n );\n });\n }, [openComponent]);\n\n return (\n <>\n \n \n {t(\"Home:Purchase.Title\")}\n \n \n {t(\"Home:Purchase.DemoTimeLeft\", { count: getRemainingTrialPeriodDays(context.getData().subscription) })}\n \n \n {component}\n \n );\n};\n\nexport default PurchaseTile;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWelcome(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: 0,\n y: 0,\n viewBox: \"0 0 282 238\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2_00000131364529179228932420000009134063357248385194_\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_1_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000048484128720038876660000016964141891125649567_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_1_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000048484128720038876660000016964141891125649567_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M282.3 177.9s-13.3-5.6-14.5-5.6-8.6 1-8.6 1-11.9-2.9-12.9-3.6c-1-.7-11.6-.8-12.4-.8s-8.7 2-10.4 2.2-8.2.7-8.9.2-5.9-1.2-7.4-.7-7.7.5-7.7.5-3-.5-4.5-1.5-4.7-2.2-6.2-2-3.2 3.2-5.9 3.5c-2.7.2-9.2.2-9.2.2s-7.7-2.5-10.4-1-8.9 3.7-10.4 4.5c-1.5.7-8.9.7-8.9.7s-4 .7-5 .2-5.2-2.7-5.9-3.2-3.5-1.5-4.7-1.7-5.9-2.7-5.9-2.7-3-1-3.7-1-8.4 0-9.7-.7c-1.2-.7-9.4-2.2-9.4-2.2s-3.2-2.5-3.7-3.2-4.2-2.7-4.2-2.7-5.7-1.7-6.4-2.5c-.7-.7-5-1.7-5-1.7l-4 3s-4.2 2.5-5.2 2.7-7.7-1.5-7.7-1.5l-2-2.2-3.2-.5-7.2 4-4.5 1-2.5 2.7-4.2 1.5-5.7 1.5-3 2.5-8.7.7-5.2 3-6.2 2-13.6 4.2v55.5l283.9 11.2.9-67.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M244.2 184.3l.3 1.7h-1.4v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M242 184.3l-.4 1.7h1.5v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M243.1 175.5l-6.9 9.4 4.5-1.2 2.4 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M243.1 172.5l-5.8 7.9 3.8-1 2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M243.1 170.4l-4.3 5.9 2.8-.7 1.5.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M243.1 175.5l6.8 9.4-4.5-1.1-2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M243.1 172.5l5.7 7.9-3.7-1-2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M243.1 170.4l4.3 5.9-2.8-.7-1.5.6z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M-22.1 189.9l6.6-4.5s6.4.4 10.2 0c1.5-.2 4.1-.6 6.7-1.2l3.7 2.6 10.1.6 5.3 1.9L28 194l7.4 2.7 3.2 7.1 24.5-3.9 8.2-3.5 5.4 1.2 9.2-2 5.4 3.2 8.9 2 10.9 9.7 8.2 2.9 4.3-1.1 6.4-2.2 4.7-2.6 7.8-1.1 4.2-2.7c3.5-.5 7.4-1.6 8.3-2.2 1-.7 3.2-.7 3.2-.7s8.5-2 12.5-4.1 4.5-1.4 6.7-2c2.2-.7 3.9-5.6 4.4-6.3s7.5-4 9.3-4.4c1.7-.4 5-3.1 7-4s7.7.5 7.7.5 7.7.5 9.9.3 6-1.6 8-2 3-.7 4.2-.6c1.2 0 5.4.4 5.4.4s3.6 3.1 6.1 2.7c2.5-.4 10.3 3.8 15 5.6 4.7 1.9 7.7.5 7.7.5s4.2-.9 5.5-.6c1.2.3 7.1 3.4 8.3 3.7 1.2.3 6.6 1.9 8.1 2.2s6.9.4 8.9.5 3-2.4 4.8-2.6c1.7-.2 3.4 1.8 5.1 1.9 1.7 0 4.5.1 5.2.4.7.3 8.5 6.2 8.5 6.2l-2 72.3-342.6-9.7 1.9-67.8 4.1-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M354.3 241.6l-24.7-7.5-10.9.8-10.6-5.2-11.9-1.3-5.9-3.7h-4l-1-.2-1.7-2-5.3-2.6-7.5-.5-6.4 4.4-6.9 1.5-4.6 1.7-3.9-1.9-4.5 2.6-2.8 1.5-7.4.2-6.9-1.5-14.9 1.8-8.1 1.7-10.4-.5-9-3.7-8.6-3.2H165l-5-4-6.2-2.5-4.7-1.7-3.7-2.5-7.4-1.2-9.4-4.4-5.1.8-5.7-2.5h-6.7l-6.5 2.6-6.7.5-5.2-1.6-5.2 2.9-8.2 1.7h-.7l-4.1-3.1-4.5.6-5.6-3.9-8.9-3.7-4.8-1.9-9.5-1.9-4.5-2.7-6.2 2.1-10.8-2.7-7.5 1.4-6.2 2.9-9.9 2-2 1.7-9.4 5-2 4.7-6.6 2.5-4.5 2.7-4.2 3-5 3.2-7.4 6.2.1 49.7h399.5z\"\n })), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000150071184426249806380000000140343989852134022_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000149344655914174517050000007030233815684707774_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000150071184426249806380000000140343989852134022_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000149344655914174517050000007030233815684707774_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M231.6 185.5l.4 1.7h-1.5v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M229.4 185.5l-.3 1.7h1.4v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M230.5 176.7l-6.8 9.4 4.4-1.2 2.4 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M230.5 173.7l-5.8 7.8 3.8-.9 2 .8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M230.5 171.6l-4.3 5.9 2.8-.8 1.5.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M230.5 176.7l6.9 9.4-4.5-1.2-2.4 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M230.5 173.7l5.8 7.8-3.8-.9-2 .8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M230.5 171.6l4.3 5.9-2.8-.8-1.5.7z\"\n })), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000003081601855338942010000000273192997707859856_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000162329060676253222450000008354585258381210794_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000003081601855338942010000000273192997707859856_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000162329060676253222450000008354585258381210794_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M258.4 193.5l.3 1.2h-1.1v-1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.8 193.5l-.2 1.2h1v-1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M257.6 187l-5 6.9 3.3-.8 1.7.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M257.6 184.8l-4.2 5.8 2.8-.7 1.4.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M257.6 183.2l-3.1 4.4 2-.6 1.1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M257.6 187l5.1 6.9-3.3-.8-1.8.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M257.6 184.8l4.3 5.8-2.8-.7-1.5.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M257.6 183.2l3.2 4.4-2.1-.6-1.1.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000048493139620776666570000001147427250312255156_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000166650832665175002340000008889637919222878628_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000048493139620776666570000001147427250312255156_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000166650832665175002340000008889637919222878628_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M68.3 213.8l.4 1.7h-1.5v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.1 213.8l-.3 1.7h1.4v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M67.2 205l-6.8 9.4 4.5-1.1 2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M67.2 202l-5.8 7.9 3.8-1 2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M67.2 199.9l-4.3 5.9 2.8-.7 1.5.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M67.2 205l6.9 9.4-4.5-1.1-2.4 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M67.2 202l5.8 7.9-3.8-1-2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M67.2 199.9l4.3 5.9-2.8-.7-1.5.6z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000155114139047202803890000002360698401131399611_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000073703178955881246190000002091681737218589850_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000155114139047202803890000002360698401131399611_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000073703178955881246190000002091681737218589850_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M49.2 208.7l.5 2.4h-2.1v-2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.1 208.7l-.5 2.4h2v-2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M47.6 196l-9.8 13.5 6.4-1.6 3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M47.6 191.7L39.3 203l5.4-1.4 2.9 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M47.6 188.7l-6.2 8.5 4.1-1.1 2.1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M47.6 196l9.9 13.5-6.5-1.6-3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M47.6 191.7l8.3 11.3-5.4-1.4-2.9 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M47.6 188.7l6.2 8.5-4-1.1-2.2 1z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000047765788469665384040000001416516502712638864_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000061442683036853786090000003297421269637083046_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000047765788469665384040000001416516502712638864_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000061442683036853786090000003297421269637083046_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M200.7 188.5l.5 2.4h-2.1v-2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M197.5 188.5l-.5 2.4h2.1v-2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M199.1 175.8l-9.9 13.5 6.5-1.6 3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M199.1 171.5l-8.3 11.3 5.4-1.4 2.9 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M199.1 168.5l-6.2 8.5 4.1-1.1 2.1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M199.1 175.8l9.9 13.5-6.5-1.6-3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M199.1 171.5l8.3 11.3-5.4-1.4-2.9 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M199.1 168.5l6.2 8.5-4.1-1.1-2.1.9z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"SVGID_00000150096864483918684450000007271070508535858324_\",\n d: \"M252 238H30c-16.6 0-30-13.4-30-30V30C0 13.4 13.4 0 30 0h222c16.6 0 30 13.4 30 30v178c0 16.6-13.4 30-30 30z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"SVGID_00000093869718286020420490000004801749494061722021_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#SVGID_00000150096864483918684450000007271070508535858324_\",\n overflow: \"visible\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#SVGID_00000093869718286020420490000004801749494061722021_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M219.6 195.6l.4 1.7h-1.5v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M217.4 195.6l-.3 1.7h1.4v-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M218.5 186.8l-6.8 9.4 4.5-1.2 2.3 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M218.5 183.8l-5.7 7.9 3.7-1 2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M218.5 181.7l-4.3 5.9 2.8-.7 1.5.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M218.5 186.8l6.9 9.4-4.5-1.2-2.4 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M218.5 183.8l5.8 7.9-3.8-1-2 .9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M218.5 181.7l4.3 5.9-2.8-.7-1.5.6z\"\n }))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWelcome);\nexport default __webpack_public_path__ + \"static/media/welcome.6056c9c2f93cb44499685678e3d52682.svg\";\nexport { ForwardRef as ReactComponent };","import styled from \"styled-components/macro\";\n\nimport { T_PLAIN_small, T_TITLE_2, T_TITLE_3_normal } from \"../../../global.style\";\nimport welcome from \"../../../static/images/welcome.svg\";\nimport { getDashboardBoxShadow } from \"../../dashboard/Dashboard.styles\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\n\nconst WelcomeTileTopPadding = 44;\nexport const WelcomeAvatarSize = 82;\nconst AvatarBorderWidth = 3;\n\nexport const StyledWelcomeTile = styled(DashboardTileBackground)`\n position: relative;\n margin-top: ${WelcomeTileTopPadding}px;\n height: calc(100% - ${WelcomeTileTopPadding}px);\n background: ${props => props.theme.C_BG_menu} url(${welcome}) bottom left no-repeat;\n background-size: auto 100%;\n\n align-items: center;\n justify-content: flex-start;\n`;\n\nexport const WelcomeAvatar = styled.span`\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${WelcomeAvatarSize}px;\n height: ${WelcomeAvatarSize}px;\n display: flex;\n align-items: center;\n justify-content: center;\n ${T_TITLE_2};\n\n &, &::before, &::after {\n border-radius: 100%;\n }\n\n &::before, &::after {\n display: block;\n content: \" \";\n position: absolute;\n z-index: -1;\n background: ${props => props.theme.C_BG_menu};\n }\n\n &::after {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n &::before {\n top: -${AvatarBorderWidth}px;\n left: -${AvatarBorderWidth}px;\n bottom: -${AvatarBorderWidth}px;\n right: -${AvatarBorderWidth}px;\n background: ${props => props.theme.C_MAIN_brand_gradient};\n ${props => getDashboardBoxShadow(props)};\n }\n`;\n\nexport const Heading = styled.h3`\n ${T_TITLE_2};\n margin: 44px auto 20px;\n`;\n\nexport const UserName = styled.span`\n ${T_TITLE_3_normal};\n margin-bottom: 4px;\n`;\n\nexport const Role = styled.span`\n ${T_PLAIN_small};\n opacity: 0.5;\n`;\n","import React, { useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { EvalaPlainIcon } from \"../../icon\";\nimport { Heading, Role, StyledWelcomeTile, UserName, WelcomeAvatar, WelcomeAvatarSize } from \"./Welcome.styles\";\n\nconst Welcome: React.FC = ({ inEditMode }) => {\n const { t } = useTranslation(\"Home\");\n const context = useContext(AppContext);\n\n const { Name, GeneralRoles } = context.getData().userSettings;\n const defaultRole = (GeneralRoles ?? []).find(role => role.GeneralRole.IsDefaultRole) ?? GeneralRoles?.[0];\n\n return (\n \n \n \n \n {t(\"Home:Welcome.Heading\")},\n {Name}\n {defaultRole?.GeneralRole?.GeneralRoleName}\n \n );\n};\n\nexport default Welcome;","import { ChartType } from \"@components/charts\";\nimport { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport {\n DashboardTileType,\n ICustomTileInfo,\n IGetTileDataArgs,\n IInfoTileDataCell,\n IInfoTileInfo,\n ILinkTileInfo,\n ITableTileData,\n ITableTileInfo\n} from \"@components/dashboard\";\nimport { getDrillDownNavParams, IGetDrillDownParams } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString, IDateInterval, isSameMonth } from \"@components/inputs/date/utils\";\nimport { getInfoValue, ifAny, IGetValueArgs, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { IReportRowDef } from \"@components/smart/smartTable\";\nimport { IColumn, IRow } from \"@components/table\";\nimport AgendaPerformanceOverview from \"@components/tiles/agendaPerformanceOverview\";\nimport { IChartTileData } from \"@components/tiles/chartTile/ChartTile\";\nimport DemoTenant from \"@components/tiles/demoTenant\";\nimport { infoTileCurrencyFormatter } from \"@components/tiles/infoTile\";\nimport { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n AccountEntity,\n BankTransactionEntity,\n CashBoxEntity,\n CashReceiptEntity,\n CompoundJournalEntryEntity,\n DocumentBusinessPartnerEntity,\n DocumentEntity,\n ElectronicSubmissionEntity,\n EntitySetName,\n EntityTypeName,\n IBankTransactionEntity,\n ICashBoxEntity,\n ICashReceiptEntity,\n ICompoundJournalEntryEntity,\n IDocumentEntity,\n IElectronicSubmissionEntity,\n IFiscalYearEntity,\n IUserEntity,\n JournalEntryEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountingCode,\n ClearedStatusCode,\n CompanyPermissionCode,\n CountryCode,\n DocumentTypeCode,\n ElectronicSubmissionTypeCode,\n GeneralPermissionCode,\n PaymentStatusCode,\n VatStatementFrequencyCode,\n VatStatementStatusCode\n} from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\nimport {\n isAccountAssignmentCompanyValue,\n isCashBasisAccountingCompany,\n isDemoTenant,\n isOnOrganizationLevel,\n isVatRegisteredCompany\n} from \"@utils/CompanyUtils\";\nimport { forEachKey, ifPositive, isDefined } from \"@utils/general\";\nimport { UnitType } from \"dayjs\";\nimport i18next from \"i18next\";\nimport React, { lazy } from \"react\";\nimport { LinkProps } from \"react-router-dom\";\n\nimport AgendaWorkOverview from \"../../components/tiles/agendaWorkOverview\";\nimport CustomerSupportTile from \"../../components/tiles/customerSupportTile\";\nimport IncomeExpenseOverview from \"../../components/tiles/incomeExpenseOverview\";\nimport KeyboardShortcutsTile from \"../../components/tiles/keyboardShortcutsTile/KeyboardShortcutsTile\";\nimport PurchaseTile from \"../../components/tiles/purchaseTile/PuchaseTile\";\nimport Welcome from \"../../components/tiles/welcome\";\nimport { ACCOUNTING_JOURNAL_API_URL, DASHBOARD_DATA_API, REST_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Sort, Status, TextAlign, ValueType } from \"../../enums\";\nimport { TRecordAny, TRecordType } from \"../../global.types\";\nimport {\n ROUTE_AGENDA_WORK_OVERVIEW,\n ROUTE_BANK_TRANSACTIONS,\n ROUTE_CASH_RECEIPTS,\n ROUTE_DOCUMENT_JOURNAL,\n ROUTE_INBOX,\n ROUTE_INTERNAL_DOCUMENT,\n ROUTE_JOURNAL_ENTRIES_LAST_MONTH,\n ROUTE_POSTED_DOCUMENTS_LAST_MONTH,\n ROUTE_TICKETS\n} from \"../../routes\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport DateType, { DATE_MAX, DATE_MIN, DateFormat, getUtcDayjs, TDateLike } from \"../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport memoize from \"../../utils/memoize\";\nimport { isNotYetPayedForSubscription } from \"../admin/subscriptions/Subscriptions.utils\";\nimport { CustomerGeneralRoleId, isUserOwner } from \"../admin/users/Users.utils\";\nimport { userNameWithAvatarFormatter } from \"../admin/users/UsersDef\";\nimport { getCompanyVatStatementPeriod, VatStatementPeriod } from \"../companies/Company.utils\";\nimport {\n AccrualFilterTypes,\n ACCRUED_DOCUMENTS_FILTERNAME,\n EXPENSES_AND_REVENUES_FILTERNAME,\n ExpensesAndRevenuesFilterTypes\n} from \"../documents/internalDocument/InternalDocumentDef\";\nimport {\n getDocumentJournalStatusFilter,\n getVatSubmissionPeriodName\n} from \"../electronicSubmission/VatSubmission.utils\";\nimport { getDateFilterFromFY, getOldestActiveFY, getSortedFYs } from \"../fiscalYear/FiscalYear.utils\";\nimport { CommonReportProps } from \"../reports/CommonDefs\";\nimport {\n IReportData,\n IReportSettings,\n NumberAggregationFunction,\n ReportFilterNodeColumnType,\n ReportNodeOperator,\n TimeAggregationFunction\n} from \"../reports/Report.utils\";\nimport { getLinkTileConfig, ticketsWidgetId } from \"./CustomerDashboardDef\";\nimport { CustomerPortal } from \"./CustomerPortal.utils\";\nimport { IDashboardManager } from \"./DashboardManager\";\n\nconst CrossCompanyPrefix = \"CrossCompany\";\n\nconst INBOX_DATA_ENDPOINT = \"Inbox\";\nconst TICKETS_DATA_ENDPOINT = \"Tickets\";\nconst ACCRUED_DATA_ENDPOINT = \"Accrued\";\nconst OPEN_ACCRUED_DATA_ENDPOINT = \"OpenAccrued\";\nconst ELECTRONIC_SUBMISSION_DATA_ENDPOINT = \"ElectronicSubmission\";\n\nconst POSTED_DOCUMENTS_LAST_MONTH = \"DocumentCount\";\nconst JOURNAL_ENTRIES_LAST_MONTH = \"JournalEntryCount\";\nconst POSTED_DOCUMENTS_LAST_MONTH_PER_USER = \"UserDocumentCount\";\n\nexport const VAT_ACCOUNT_PREFIX = \"343\";\nexport type TAccountType = JournalEntryEntity.CreditAccount | JournalEntryEntity.DebitAccount;\n\n\nexport function hasAnyAgenda(args: IGetValueArgs): boolean {\n const { context } = args;\n return !!context.getData()?.companies?.length;\n}\n\nexport function isInCustomerPortal(): boolean {\n return CustomerPortal.isActive;\n}\n\nexport function agendaIsVatRegistered(args: IGetValueArgs): boolean {\n return isVatRegisteredCompany(args.context);\n}\n\nexport function hasAnyCompanyPermission(...permissions: CompanyPermissionCode[]): (args: IGetValueArgs) => boolean {\n return ({ context }) => {\n const userPermissions = context.getCompanyPermissions();\n return !!permissions.find(permission => userPermissions?.has(permission));\n };\n}\n\nexport function hasAnyGeneralPermission(...permissions: GeneralPermissionCode[]): (args: IGetValueArgs) => boolean {\n return ({ context }) => {\n const userPermissions = context.getGeneralPermissions();\n return !!permissions.find(permission => userPermissions?.has(permission));\n };\n}\n\nexport function getVisibleDashboards(managers: IDashboardManager[], context: IAppContext): IDashboardManager[] {\n return managers.filter(manager => getInfoValue(manager.definition, \"isVisible\", { context }));\n}\n\nexport function companyOverviewPageOr(fallbackRoute: LinkProps[\"to\"]): (args: IGetValueArgs) => LinkProps[\"to\"] {\n return (args) => {\n if (isOnOrganizationLevel(args)) {\n return ROUTE_AGENDA_WORK_OVERVIEW;\n }\n return fallbackRoute;\n };\n}\n\nexport function drilldownLinkIfOnCompanyLevel(params: IGetDrillDownParams): (args: IGetValueArgs) => LinkProps[\"to\"] {\n return (args) => {\n if (params && !isOnOrganizationLevel(args)) {\n return getDrillDownNavParams(params);\n }\n return null;\n };\n}\n\nexport function getInfoDataTileCellValueWithSeverity(value: number): IInfoTileDataCell {\n return {\n value: Math.abs(value),\n severity: ifPositive(value, Status.Success, Status.Error)\n };\n}\n\n/**\n * Common function to obtain data for dashboard tile in two modes - for exact company or cross all companies,\n * user is allowed to view\n * @param endpoint\n * @param oData\n * @param context\n * @param signal\n */\nasync function getDashboardData(endpoint: string, oData: OData, context: IAppContext, signal?: AbortSignal): Promise {\n const prefix = isOnOrganizationLevel({ context }) ? CrossCompanyPrefix : \"\";\n const url = `${DASHBOARD_DATA_API}/${prefix}${endpoint}`;\n\n const res = await customFetch(url, { signal });\n\n return (await res.json()) as T;\n}\n\n/**\n * Function to obtain data for some widgets (Inbox, Accrued and OpenAccrued widgets) and overview page\n */\nasync function getSummaryData(endpoint: string, isCrossCompany: boolean): Promise {\n const prefix = isCrossCompany ? CrossCompanyPrefix : \"\";\n const url = `${DASHBOARD_DATA_API}/${prefix}${endpoint}`;\n\n const res = await customFetch(url);\n return res.json();\n}\n\nasync function getSummaryDataSummed(endpoint: string, context: IAppContext, infoPropName: string, additionalProps?: string[]): Promise {\n const data = await getSummaryData(endpoint, isOnOrganizationLevel({ context }));\n\n const ret: Record = {};\n\n const _add = (row: TRecordType>) => {\n const info = row?.[infoPropName];\n info && forEachKey(info, (key) => {\n ret[key] = (ret[key] ?? 0) + info[key];\n });\n };\n\n if (Array.isArray(data)) {\n data.forEach((row) => _add(row));\n } else {\n if (Array.isArray(additionalProps)) {\n additionalProps.forEach(prop => ret[prop] = data[prop]);\n }\n _add(data);\n }\n\n return ret as R;\n}\n\nexport const getManualsDef = (): ILinkTileInfo => getLinkTileDef(\"Home:Links.Manuals\", \"https://www.evala.cz/navody\", \"Manual\");\n\n/**\n * Inbox tile definition & data --------------------------------------------------------------------\n */\ninterface IInboxDashboardData {\n Sorted: number;\n Received: number;\n}\n\nconst getInboxData = (context: IAppContext) => getSummaryDataSummed(INBOX_DATA_ENDPOINT, context, \"InboxInfo\");\n\nexport function getInboxTileDef(withoutLink?: boolean): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:Inbox.Heading\"),\n link: withoutLink ? null : companyOverviewPageOr(null),\n infoData: async ({ context }) => {\n const data = await getInboxData(context);\n return [{\n value: data.Received,\n severity: data.Received > 0 ? Status.Warning : Status.Success,\n label: i18next.t(\"Home:Inbox.Unsorted\", { count: data.Received }),\n link: drilldownLinkIfOnCompanyLevel({ route: ROUTE_INBOX, context })\n }, {\n value: data.Sorted,\n severity: data.Sorted > 0 ? Status.Warning : Status.Success,\n label: i18next.t(\"Home:Inbox.Sorted\", { count: data.Sorted }),\n link: drilldownLinkIfOnCompanyLevel({ route: ROUTE_INBOX, context })\n }];\n },\n size: { w: 2, h: 1 }\n };\n}\n\ninterface IVatSubmissionDashboardData extends Pick {\n NextPeriodFrequencyCode: VatStatementFrequencyCode;\n}\n\ninterface ITicketsDashboardData {\n OpenTickets: number;\n UnreadTickets: number;\n}\n\nconst getTicketsData = (context: IAppContext) => getSummaryDataSummed(TICKETS_DATA_ENDPOINT, context, \"TicketsInfo\");\n\n// link tile info with just badge indicating open tickets count\nexport function getTicketsTileDef(): ILinkTileInfo {\n return getLinkTileConfig(ticketsWidgetId, {\n link: companyOverviewPageOr(ROUTE_TICKETS),\n count: async (args: IGetTileDataArgs): Promise => {\n const { context } = args;\n const data = await getTicketsData(context);\n return data.OpenTickets;\n }\n });\n}\n\n// info tile with open and unread tickets count\nexport function getTicketsInfoTileDef(withoutLink?: boolean): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:Tickets.Title\"),\n link: withoutLink ? null : companyOverviewPageOr(null),\n infoData: async ({ context }) => {\n const data = await getTicketsData(context);\n return [{\n value: data.UnreadTickets,\n severity: data.UnreadTickets > 0 ? Status.Warning : null,\n label: i18next.t(\"Home:Tickets.Unread\", { count: data.UnreadTickets }),\n link: drilldownLinkIfOnCompanyLevel({ route: ROUTE_TICKETS, context })\n }, {\n value: data.OpenTickets,\n label: i18next.t(\"Home:Tickets.Open\", { count: data.OpenTickets }),\n link: drilldownLinkIfOnCompanyLevel({ route: ROUTE_TICKETS, context })\n }];\n },\n size: { w: 2, h: 1 }\n };\n}\n\n/**\n * Users' agenda data -----------------------------------------------------------------------------\n */\nexport const getUsersAgendaData = async (oData: OData): Promise => {\n const rows: IRow[] = [];\n const columns: IColumn[] = [\n { id: \"name\", label: \"\", textAlign: TextAlign.Left, width: 180 },\n { id: \"count\", label: \"\", textAlign: TextAlign.Right, width: 62 }\n ];\n\n const res = await oData.getEntitySetWrapper(EntitySetName.Users).query()\n .filter(`Id ge 0 AND GeneralRoles/all(x: x/GeneralRole/Id ne ${CustomerGeneralRoleId})`)\n .select(\"Id\", \"FirstName\", \"LastName\", \"Name\")\n .expand(\"CompanyRoles\", (q) => {\n q.count().top(0);\n }).fetchData();\n\n for (const r of res.value) {\n rows.push({\n id: r.Id,\n values: {\n name: userNameWithAvatarFormatter(r.FirstName, { entity: r }, {\n isBold: true,\n withLink: false\n }),\n count: r._metadata.CompanyRoles.count\n }\n });\n }\n\n return { rows, columns };\n};\n\n/**\n * Vat assessment turnover data - Invoice issued amount summary for last 12 months as limit if agenda becomes\n * automatically VatPayer\n */\ninterface AggregatedTotalObject {\n Amount: number;\n}\n\nexport async function getVatAssessmentTurnoverData(oData: OData, isCBA = false): Promise {\n const from = getUtcDayjs().subtract(1, \"year\");\n const to = getUtcDayjs();\n const propName = isCBA ? DocumentEntity.DateCbaDocument : DocumentEntity.DateAccountingTransaction;\n const query = oData.getEntitySetWrapper(EntitySetName.Documents).query()\n .filter(`${createPath(DocumentEntity.BusinessPartner, DocumentBusinessPartnerEntity.CountryCode)} eq '${CountryCode.CzechRepublic}' \n AND (\n ${DocumentEntity.DocumentTypeCode} in (${transformToODataString([DocumentTypeCode.InvoiceIssued, DocumentTypeCode.CorrectiveInvoiceIssued], ValueType.String)})\n OR (${DocumentEntity.DocumentTypeCode} eq ${transformToODataString(DocumentTypeCode.OtherReceivable, ValueType.String)} AND \n ${DocumentEntity.DocumentVatStatementStatusCode} ne '${VatStatementStatusCode.N_A}' AND ${DocumentEntity.DocumentVatStatementStatusCode} ne '${VatStatementStatusCode.Undefined}')\n ) AND ${propName} gt ${transformToODataString(from, ValueType.Date)} \n AND ${propName} le ${transformToODataString(to, ValueType.Date)}`)\n .aggregate(`${DocumentEntity.Amount} with sum as ${DocumentEntity.Amount}`);\n\n const res = await query.fetchData();\n\n return res.value?.[0]?.Amount ?? 0;\n}\n\ninterface INextSubmission {\n period: VatStatementPeriod;\n submissionDate: Date;\n}\n\n// Next electronic submission date\nexport async function getNextElectronicSubmissionDate(lastSubmission: Date, oData: OData, context: IAppContext): Promise {\n let nextTaxPeriod: VatStatementPeriod;\n\n // FY is needed to get correct nextElectronicSubmissionDate\n await context.getFYPromise();\n\n if (lastSubmission) {\n nextTaxPeriod = getCompanyVatStatementPeriod(context, lastSubmission, 1);\n } else {\n const firstActiveFY = getOldestActiveFY(context);\n nextTaxPeriod = firstActiveFY && getCompanyVatStatementPeriod(context, firstActiveFY.DateStart);\n }\n\n let submissionDate: Date;\n if (nextTaxPeriod) {\n // get 25. day of month, which is after nextTaxPeriod.to\n submissionDate = getUtcDayjs(nextTaxPeriod.to).add(1, \"day\").set(\"date\", 25).toDate();\n }\n\n return { period: nextTaxPeriod, submissionDate };\n}\n\n/**\n * Future expenses and revenues tile definition & data --------------------------------------------------------------------\n */\ninterface IAccruedDashboardData {\n Expense: number;\n Revenue: number;\n}\n\nconst getAccruedData = (context: IAppContext) => getSummaryDataSummed(ACCRUED_DATA_ENDPOINT, context, \"AccruedInfo\");\n\nexport const getFutureExpensesAndRevenuesDrilldownParams = (context: IAppContext, type: ExpensesAndRevenuesFilterTypes): IGetDrillDownParams => ({\n route: ROUTE_INTERNAL_DOCUMENT,\n context,\n filters: {\n [EXPENSES_AND_REVENUES_FILTERNAME]: [type]\n }\n});\n\nexport function getFutureExpensesAndRevenuesDef(withoutLink?: boolean): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:FutureExpensesAndRevenues.Heading\"),\n link: withoutLink ? null : companyOverviewPageOr(null),\n infoData: async ({ context }) => {\n const { Expense, Revenue } = await getAccruedData(context);\n return [{\n value: Expense ?? 0,\n label: i18next.t(\"Home:FutureExpensesAndRevenues.Expenses\"),\n link: drilldownLinkIfOnCompanyLevel(getFutureExpensesAndRevenuesDrilldownParams(context, ExpensesAndRevenuesFilterTypes.Expenses))\n }, {\n value: Revenue ?? 0,\n label: i18next.t(\"Home:FutureExpensesAndRevenues.Revenues\"),\n link: drilldownLinkIfOnCompanyLevel(getFutureExpensesAndRevenuesDrilldownParams(context, ExpensesAndRevenuesFilterTypes.Revenues))\n }];\n },\n isVisible: ifAny(isAccountAssignmentCompanyValue, isOnOrganizationLevel),\n size: { w: 2, h: 1 }\n };\n}\n\n/**\n * estimated accruals tile definition & data --------------------------------------------------------------------\n */\ninterface IOpenAccruedDashboardDataFiscalYearInfo {\n Id: number;\n DateEnd: Date;\n DateStart: Date;\n}\n\ninterface IOpenAccruedDashboardData {\n ThisFiscalYear: number;\n LastFiscalYear: number;\n ThisFiscalYearInfo?: IOpenAccruedDashboardDataFiscalYearInfo;\n LastFiscalYearInfo?: IOpenAccruedDashboardDataFiscalYearInfo;\n}\n\nconst getOpenAccruedData = (context: IAppContext) => getSummaryDataSummed(OPEN_ACCRUED_DATA_ENDPOINT, context, \"OpenAccruedInfo\", [\"ThisFiscalYearInfo\", \"LastFiscalYearInfo\"]);\n\nconst getOpenAccruedFilterDrilldownParams = (context: IAppContext, filters: TRecordAny): IGetDrillDownParams => ({\n route: ROUTE_INTERNAL_DOCUMENT,\n context,\n filters: {\n [ACCRUED_DOCUMENTS_FILTERNAME]: [AccrualFilterTypes.Open],\n ...filters\n }\n});\n\ninterface IOpenAccruedDrilldowns {\n ThisFiscalYearParams: IGetDrillDownParams;\n LastFiscalYearParams: IGetDrillDownParams;\n}\n\nexport function getOpenAccruedDrilldowns(context: IAppContext, info?: Pick): IOpenAccruedDrilldowns {\n let FYs: Partial[];\n if (info) {\n FYs = [info?.ThisFiscalYearInfo, info?.LastFiscalYearInfo];\n } else {\n FYs = getSortedFYs(context, Sort.Desc)\n .filter(fy => getUtcDayjs().isSameOrAfter(fy.DateStart, \"date\")); // filter out future fiscalYears\n }\n\n const [thisFY, lastFY] = FYs ?? [];\n\n const LastFiscalYearParams = lastFY && getOpenAccruedFilterDrilldownParams(context, { ...getDateFilterFromFY(lastFY) });\n const ThisFiscalYearParams = thisFY && getOpenAccruedFilterDrilldownParams(context, { ...getDateFilterFromFY(thisFY) });\n\n return { ThisFiscalYearParams, LastFiscalYearParams };\n}\n\nexport function getEstimatedAccrualsDef(withoutLink?: boolean): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:EstimatedAccruals.Heading\"),\n link: withoutLink ? null : companyOverviewPageOr(null),\n infoData: async ({ context, oData }): Promise => {\n const companyId = context.getCompanyId();\n const [data] = await Promise.all([getOpenAccruedData(context)]);\n if (companyId !== context.getCompanyId()) {\n // User switched company in the meantime, stop processing it then as getOpenAccruedDrilldowns\n // may fail on missing FYs\n return [];\n }\n\n const { ThisFiscalYear, LastFiscalYear, ThisFiscalYearInfo, LastFiscalYearInfo } = data;\n const {\n ThisFiscalYearParams,\n LastFiscalYearParams\n } = getOpenAccruedDrilldowns(context, { ThisFiscalYearInfo, LastFiscalYearInfo });\n\n return [{\n value: LastFiscalYear ?? 0,\n label: i18next.t(\"Home:EstimatedAccruals.LastYear\"),\n link: drilldownLinkIfOnCompanyLevel(LastFiscalYearParams)\n }, {\n value: ThisFiscalYear ?? 0,\n label: i18next.t(\"Home:EstimatedAccruals.ThisYear\"),\n link: drilldownLinkIfOnCompanyLevel(ThisFiscalYearParams)\n }];\n },\n isVisible: ifAny(isAccountAssignmentCompanyValue, isOnOrganizationLevel),\n size: { w: 2, h: 1 }\n };\n}\n\nexport interface IAgendaWorkOverviewData extends Partial {\n}\n\nexport type TAgendaWorkOverviewDataMap = Map;\n\n/**\n * Data for agenda work overview\n */\nexport async function getAgendaWorkOverviewData(): Promise {\n const [inboxData, ticketsData, accruedData, openAccruedData, electronicSubmissionData] = await Promise.all([\n getSummaryData(INBOX_DATA_ENDPOINT, true),\n getSummaryData(TICKETS_DATA_ENDPOINT, true),\n getSummaryData(ACCRUED_DATA_ENDPOINT, true),\n getSummaryData(OPEN_ACCRUED_DATA_ENDPOINT, true),\n getSummaryData(ELECTRONIC_SUBMISSION_DATA_ENDPOINT, true)\n ]);\n\n const ret = new Map();\n\n const _extractRow = (row: TRecordAny, propName: string, additionalInfos?: (\"ThisFiscalYearInfo\" | \"LastFiscalYearInfo\")[]) => {\n const companyId = row.CompanyId as number;\n const data = (ret.get(companyId) ?? {}) as IAgendaWorkOverviewData;\n row[propName] && forEachKey(row[propName], (key) => {\n // @ts-ignore\n data[key] = row[propName][key];\n additionalInfos?.forEach((additionalKey) => {\n if (row.hasOwnProperty(additionalKey)) {\n data[additionalKey] = row[additionalKey];\n }\n });\n });\n ret.set(companyId, data);\n };\n\n inboxData?.forEach?.((row: TRecordAny) => _extractRow(row, \"InboxInfo\"));\n ticketsData?.forEach?.((row: TRecordAny) => _extractRow(row, \"TicketsInfo\"));\n accruedData?.forEach?.((row: TRecordAny) => _extractRow(row, \"AccruedInfo\"));\n openAccruedData?.forEach?.((row: TRecordAny) => _extractRow(row, \"OpenAccruedInfo\", [\"ThisFiscalYearInfo\", \"LastFiscalYearInfo\"]));\n electronicSubmissionData?.forEach?.((row: TRecordAny) => _extractRow(row, \"ElectronicSubmissionInfo\"));\n\n return ret;\n}\n\ninterface IPostedDocumentsLastMonthDashboardData {\n Count: number;\n DateRange: {\n DateStart: string;\n DateEnd: string;\n };\n}\n\nconst getPostedDocumentsLastMonth = (...args: [OData, IAppContext, AbortSignal]) => getDashboardData(POSTED_DOCUMENTS_LAST_MONTH, ...args);\n\nexport function getPostedDocumentsLastMonthDef(): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:PostedDocumentsLastMonth.Heading\"),\n link: ROUTE_POSTED_DOCUMENTS_LAST_MONTH,\n infoData: async ({ context, oData, signal }) => {\n const { Count, DateRange } = await getPostedDocumentsLastMonth(oData, context, signal);\n const { DateEnd } = DateRange;\n const period = DateType.format(getUtcDayjs(DateEnd), DateFormat.monthAndYear);\n return [{\n value: Count,\n label: i18next.t(\"Home:PostedDocumentsLastMonth.Label\", { period })\n }];\n },\n size: { w: 2, h: 1 },\n isVisible: hasAnyGeneralPermission(GeneralPermissionCode.CompanyManagement)\n };\n}\n\ninterface IJournalEntriesLastMonthLastMonthDashboardData {\n Count: number;\n DateRange: {\n DateStart: string;\n DateEnd: string;\n };\n}\n\nconst getJournalEntriesLastMonth = (...args: [OData, IAppContext, AbortSignal]) => getDashboardData(JOURNAL_ENTRIES_LAST_MONTH, ...args);\n\nexport function getJournalEntriesLastMonthDef(): IInfoTileInfo {\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:JournalEntriesLastMonth.Heading\"),\n link: ROUTE_JOURNAL_ENTRIES_LAST_MONTH,\n infoData: async ({ context, oData, signal }) => {\n const { Count, DateRange } = await getJournalEntriesLastMonth(oData, context, signal);\n const { DateEnd } = DateRange;\n const period = DateType.format(getUtcDayjs(DateEnd), DateFormat.monthAndYear);\n return [{\n value: Count,\n label: i18next.t(\"Home:JournalEntriesLastMonth.Label\", { period })\n }];\n },\n size: { w: 2, h: 1 },\n isVisible: hasAnyGeneralPermission(GeneralPermissionCode.CompanyManagement)\n };\n}\n\ninterface IPostedDocumentsLastMonthPerUserDashboardData {\n User: string;\n Count: number;\n}\n\nconst getPostedDocumentsLastMonthPerUser = (...args: [OData, IAppContext, AbortSignal]) => getDashboardData(POSTED_DOCUMENTS_LAST_MONTH_PER_USER, ...args);\n\nexport function getPostedDocumentsLastMonthPerUserDef(): ITableTileInfo {\n return {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:PostedDocumentsLastMonthPerUser.Heading\"),\n size: { w: 3, h: 3 },\n tooltip: i18next.t(\"Home:PostedDocumentsLastMonthPerUser.Info\"),\n tableData: async ({ context, oData, signal }) => {\n const data = await getPostedDocumentsLastMonthPerUser(oData, context, signal);\n const columns: IColumn[] = [\n {\n id: \"name\",\n label: i18next.t(\"Home:PostedDocumentsLastMonthPerUser.Name\"),\n textAlign: TextAlign.Left\n },\n {\n id: \"docsCount\",\n label: i18next.t(\"Home:PostedDocumentsLastMonthPerUser.DocsCount\"),\n textAlign: TextAlign.Right\n }\n ];\n const rows: IRow[] = [];\n\n for (const row of data) {\n rows.push({\n id: rows.length + 1,\n values: {\n name: row.User,\n docsCount: row.Count\n }\n });\n }\n\n return {\n rows,\n columns\n };\n },\n isVisible: hasAnyGeneralPermission(GeneralPermissionCode.CompanyManagement)\n };\n}\n\nexport function getWelcomeTileDef(): ICustomTileInfo {\n return {\n title: i18next.t(\"Home:Welcome.Title\"),\n type: DashboardTileType.Custom,\n size: { w: 2, h: 2 },\n component: Welcome\n };\n}\n\nexport function getVideoHelpTileDef(): ICustomTileInfo {\n return {\n title: i18next.t(\"Home:VideoHelp.Title\"),\n type: DashboardTileType.Custom,\n size: { w: 2, h: 2 },\n component: lazy(() => import(\"@components/tiles/videoHelpTile/VideoHelpTile\"))\n };\n}\n\nexport function getLinkTileDef(title: string, link: TInfoValue, iconName: string, props?: Partial): ILinkTileInfo {\n return {\n type: DashboardTileType.Link,\n size: { w: 1, h: 1 },\n title: i18next.t(title), link, iconName,\n ...(props ?? {})\n };\n}\n\nexport function getPurchaseTileDef(): ICustomTileInfo {\n return {\n title: i18next.t(\"Home:Purchase.Title\"),\n type: DashboardTileType.Custom,\n size: { w: 2, h: 2 },\n component: PurchaseTile,\n isVisible: (args: IGetValueArgs) => {\n const data = args.context.getData();\n\n if (!isUserOwner(data?.userSettings)) {\n return false;\n }\n\n const subscription = data?.subscription;\n\n return isNotYetPayedForSubscription(subscription);\n },\n cannotBeRemovedInSettings: true\n };\n}\n\nexport function getKeyboardShortcutsTileDef(): ICustomTileInfo {\n return {\n title: i18next.t(\"Home:KeyboardShortcuts.Heading\"),\n type: DashboardTileType.Custom,\n size: { w: 2, h: 3 },\n component: KeyboardShortcutsTile\n };\n}\n\nexport function getBankAccountsTileDef(): ITableTileInfo {\n return {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:BankAccounts.Heading\"),\n size: { w: 3, h: 2 },\n tableData: args => getBalancesData(args, EntitySetName.CompanyBankAccounts),\n isVisible: hasAnyCompanyPermission(CompanyPermissionCode.CustomerSettings)\n };\n}\n\nexport function getPaymentDocumentTileDef(entitySet: EntitySetName): IInfoTileInfo {\n const entity = entitySet === EntitySetName.BankTransactions ? BankTransactionEntity : CashReceiptEntity;\n return {\n type: DashboardTileType.Info,\n title: i18next.t(`Home:${entitySet}.Heading`),\n link: entitySet === EntitySetName.BankTransactions ? ROUTE_BANK_TRANSACTIONS : ROUTE_CASH_RECEIPTS,\n infoData: async ({ oData }) => {\n const res = await oData.getEntitySetWrapper(entitySet)\n .query()\n .filter(`${entity.PaymentStatusCode} in ('${PaymentStatusCode.NeedsApproval}', '${PaymentStatusCode.WaitsForProcessing}', '${PaymentStatusCode.PartiallyProcessed}')`)\n .select(`${entity.ExchangeRatePerUnit}, ${entity.TransactionAmountDue}`)\n .fetchData<(IBankTransactionEntity | ICashReceiptEntity)[]>();\n\n const transactions = res.value ?? [];\n const totalAmountDue = transactions.reduce((sum: number, t) => {\n sum += Math.abs(t.TransactionAmountDue) * t.ExchangeRatePerUnit;\n return sum;\n }, 0);\n\n return [{\n value: transactions.length,\n severity: transactions.length ? Status.Warning : Status.Success,\n label: i18next.t(`Home:${entitySet}.Documents`, { count: transactions.length })\n }, {\n value: totalAmountDue,\n formatter: infoTileCurrencyFormatter,\n label: i18next.t(`Home:${entitySet}.Amount`),\n unit: \"Kč\",\n size: 2\n }];\n },\n size: { w: 3, h: 1 },\n isVisible: hasAnyCompanyPermission(entitySet === EntitySetName.BankTransactions ? CompanyPermissionCode.Bank : CompanyPermissionCode.CashBox)\n };\n}\n\nexport function getCashBoxTileDef(): ITableTileInfo {\n return {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:CashBox.Heading\"),\n size: { w: 3, h: 2 },\n tableData: args => getBalancesData(args, EntitySetName.CashBoxes),\n isVisible: hasAnyCompanyPermission(CompanyPermissionCode.CashBox)\n };\n}\n\nexport function getCustomerSupportTileDef(): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(\"Home:CustomerSupport.Heading\"),\n size: { w: 2, h: 1 },\n component: CustomerSupportTile\n };\n}\n\nconst getBalancesData = async (args: IGetTileDataArgs, entitySet: EntitySetName): Promise => {\n const tKey = entitySet === EntitySetName.CompanyBankAccounts ? \"BankAccounts\" : \"CashBox\";\n const columns: IColumn[] = [\n { id: \"name\", label: i18next.t(`Home:${tKey}.Name`), textAlign: TextAlign.Left },\n { id: \"balance\", label: i18next.t(`Home:${tKey}.Balance`), textAlign: TextAlign.Right }\n ];\n\n const res = await args.oData.getEntitySetWrapper(entitySet)\n .query()\n .select(CashBoxEntity.Id, CashBoxEntity.Name, CashBoxEntity.Balance, CashBoxEntity.TransactionCurrencyCode)\n .expand(CashBoxEntity.Balance)\n .fetchData();\n\n const rows: IRow[] = [];\n\n for (const acc of res.value) {\n rows.push({\n id: acc.Id,\n values: {\n name: {\n tooltip: acc.Name,\n value: ({acc.Name})\n },\n balance: formatCurrency(acc.Balance?.TransactionBalance, acc.TransactionCurrencyCode)\n }\n });\n }\n\n return { rows, columns };\n};\n\nexport function getNotClearedDocumentsDef(): IInfoTileInfo {\n const filteredStatuses = [ClearedStatusCode.NotCleared, ClearedStatusCode.PartiallyCleared];\n\n return {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:NotClearedDocuments.Heading\"),\n link: ({ context }: IGetValueArgs) => {\n const journalFilter = getDocumentJournalStatusFilter(EntityTypeName.ClearedStatus, filteredStatuses);\n const previousYearDateRange: IValueInterval = {\n from: formatDateToDateString(DATE_MIN),\n to: formatDateToDateString(DATE_MAX)\n };\n\n return getDrillDownNavParams({\n route: ROUTE_DOCUMENT_JOURNAL,\n context,\n filters: {\n [journalFilter.id]: journalFilter.value,\n [CommonReportProps.dateRange]: CUSTOM_DATE_RANGE_ID,\n [CommonReportProps.dateRangeCustomValue]: previousYearDateRange\n }\n });\n },\n infoData: async ({ oData }) => {\n const res = await oData.getEntitySetWrapper(EntitySetName.Documents)\n .query()\n .filter(`${DocumentEntity.ClearedStatusCode} in (${transformToODataString(filteredStatuses, ValueType.String)})`)\n .select(`${DocumentEntity.Id}`)\n .count()\n .top(0)\n .fetchData();\n\n const count = res._metadata.count ?? 0;\n\n return [{\n value: count,\n label: i18next.t(\"Home:NotClearedDocuments.Label\", { count }),\n severity: Status.Warning\n }];\n },\n size: { w: 2, h: 1 },\n isVisible: hasAnyCompanyPermission(CompanyPermissionCode.Reports)\n };\n}\n\nexport function getIncomeExpenseOverviewTileDef(): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(\"Home:IncomeExpenseOverview.Heading\"),\n isVisible: (args: IGetValueArgs) => {\n return isCashBasisAccountingCompany(args.context);\n },\n component: IncomeExpenseOverview,\n size: { w: 3, h: 2 }\n };\n}\n\nexport function getAgendaWorkOverviewTileDef(isCrossCompany: boolean): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(`Home:AgendaWorkOverview.${isCrossCompany ? \"Title\" : \"SingleCompanyTitle\"}`),\n component: AgendaWorkOverview,\n size: { w: 4, h: 2 },\n isVisible: (args: IGetValueArgs) => {\n return !isCashBasisAccountingCompany(args.context);\n }\n };\n}\n\nexport function getAgendaWorkOverviewTileDefCashBasisAccounting(): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(\"Home:AgendaWorkOverview.SingleCompanyTitle\"),\n component: AgendaWorkOverview,\n size: { w: 2, h: 2 },\n isVisible: (args: IGetValueArgs) => {\n return isCashBasisAccountingCompany(args.context);\n }\n };\n}\n\nexport function getAgendaPerformanceOverviewTileDef(): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(\"Home:AgendaPerformanceOverview.Title\"),\n component: AgendaPerformanceOverview,\n size: { w: 2, h: 2 }\n };\n}\n\nexport function getDemoTenantTileDef(): ICustomTileInfo {\n return {\n type: DashboardTileType.Custom,\n title: i18next.t(\"Home:DemoTenant.Title\"),\n isVisible: (args: IGetValueArgs) => {\n return !isDemoTenant(args.context);\n },\n component: DemoTenant,\n size: { w: 1, h: 1 }\n };\n}\n\nexport async function getVatOverviewChartTileData(args: IGetTileDataArgs): Promise> {\n const electronicSubmissionsRes = await args.oData.getEntitySetWrapper(EntitySetName.ElectronicSubmissions).query()\n .filter(`${ElectronicSubmissionEntity.ElectronicSubmissionTypeCode} eq '${ElectronicSubmissionTypeCode.VatStatement}'`)\n .orderBy(ElectronicSubmissionEntity.DatePeriodEnd, false)\n .top(12)\n .fetchData();\n const electronicSubmissions = electronicSubmissionsRes.value?.reverse() ?? [];\n let entries: ICompoundJournalEntryEntity[] = [];\n if (electronicSubmissions[0]?.DatePeriodStart) {\n const dateESVSpath = createPath(CompoundJournalEntryEntity.Document, DocumentEntity.DateDocumentVatStatement);\n const entriesRes = await args.oData.getEntitySetWrapper(EntitySetName.CompoundJournalEntries).query()\n .filter(`startswith(${CompoundJournalEntryEntity.Account}/${AccountEntity.Number}, '${VAT_ACCOUNT_PREFIX}')\n AND ${dateESVSpath} ge ${transformToODataString(electronicSubmissions[0]?.DatePeriodStart, ValueType.Date)} AND ${createPath(CompoundJournalEntryEntity.Document, DocumentEntity.VatStatementStatusCode)} in ('${VatStatementStatusCode.Filed}','${VatStatementStatusCode.FiledAndModified}')`)\n .groupBy(dateESVSpath)\n .aggregate(`${CompoundJournalEntryEntity.CreditAmount} with sum as CreditAmount, ${CompoundJournalEntryEntity.DebitAmount} with sum as DebitAmount`)\n .fetchData();\n\n entries = entriesRes.value;\n }\n const labels = electronicSubmissions.map(es => {\n const freq = isSameMonth(es.DatePeriodStart, es.DatePeriodEnd) ? VatStatementFrequencyCode.Monthly : VatStatementFrequencyCode.Quarterly;\n return getVatSubmissionPeriodName(es.DatePeriodStart, freq, true);\n }) ?? [];\n\n const credit: number[] = electronicSubmissions.map((es) => {\n let sum = 0;\n for (const entry of entries) {\n if (getUtcDayjs(entry.Document.DateDocumentVatStatement).isBetween(es.DatePeriodStart, es.DatePeriodEnd, \"day\", \"[]\")) {\n sum += entry.CreditAmount;\n }\n }\n return sum;\n });\n\n const debit: number[] = electronicSubmissions.map((es) => {\n let sum = 0;\n for (const entry of entries) {\n if (getUtcDayjs(entry.Document.DateDocumentVatStatement).isBetween(es.DatePeriodStart, es.DatePeriodEnd, \"day\", \"[]\")) {\n sum += entry.DebitAmount;\n }\n }\n return sum;\n });\n\n return {\n type: ChartType.Bar,\n chartProps: {\n labels,\n values: [credit, debit],\n colors: [\"C_CHART_green\", \"C_CHART_red\"],\n dataSetLabels: [i18next.t(\"Home:VatOverviewChart.Income\"), i18next.t(\"Home:VatOverviewChart.Expense\")]\n }\n };\n}\n\n\nexport function timeAggregationToOpUnitType(aggregation: TimeAggregationFunction): UnitType {\n switch (aggregation) {\n case TimeAggregationFunction.Day:\n return \"day\";\n case TimeAggregationFunction.Month:\n return \"month\";\n case TimeAggregationFunction.Year:\n return \"year\";\n case TimeAggregationFunction.Week:\n case TimeAggregationFunction.Quarter:\n console.error(\"Not supported aggregation\", aggregation);\n return null;\n }\n}\n\nexport function getChartLabels(interval: IDateInterval, step: TimeAggregationFunction = TimeAggregationFunction.Month, format = \"M/YY\"): string[] {\n const labels: string[] = [];\n let i = getUtcDayjs(interval.from);\n const unit = timeAggregationToOpUnitType(step);\n while (i.isSameOrBefore(interval.to, unit)) {\n labels.push(DateType.format(i, format));\n i = i.add(1, unit);\n }\n return labels;\n}\n\nfunction getAccountingJournalParams(type: TAccountType, account: string, interval: IDateInterval, aggregationFn?: TimeAggregationFunction): IReportSettings {\n const filterColumn = {\n ColumnAlias: type === JournalEntryEntity.CreditAccount ? \"CreditAccount_Number\" : \"DebitAccount_Number\"\n };\n const Groups = aggregationFn ? [{\n ColumnAlias: \"JournalEntry_DateAccountingTransaction\",\n AggregationFunction: aggregationFn\n }] : [];\n\n return {\n DateRange: {\n DateStart: formatDateToDateString(interval.from),\n DateEnd: formatDateToDateString(interval.to)\n },\n Filter: {\n Left: filterColumn,\n Right: { Value: account },\n Type: ReportFilterNodeColumnType.String,\n Operator: ReportNodeOperator.StartsWith\n },\n ReportHierarchy: {\n Aggregate: true,\n Groups,\n Columns: [filterColumn],\n Aggregations: [{\n ColumnAlias: \"JournalEntry_Amount\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n };\n}\n\n/**\n * Returns summary for journalEntries per account\n * @param account\n * @param interval\n * @param aggregationFn\n */\nexport const getJournalSummaryData = memoize(async (account: string, interval: IDateInterval, aggregationFn?: TimeAggregationFunction): Promise => {\n const types = [JournalEntryEntity.CreditAccount, JournalEntryEntity.DebitAccount] as TAccountType[];\n const aggregatedPoints = getChartLabels(interval, aggregationFn, \"YYYY-MM-DD\");\n const opUnit = isDefined(aggregationFn) ? timeAggregationToOpUnitType(aggregationFn) : null;\n\n const _extractTotalRowAmount = (rows: IReportRowDef[]): number => {\n const totalRow = rows?.find(row => row.Type === \"Total\");\n return (totalRow?.Value[\"JournalEntry_Amount_SUM\"] ?? 0) as number;\n };\n\n const _extractAggregatedData = (rows: IReportRowDef[]): number[] => {\n return aggregatedPoints.map(formattedDate => {\n const groupedResult = rows?.find(row => row.Type === \"Group\" && getUtcDayjs(row.Value[`JournalEntry_DateAccountingTransaction_${aggregationFn}`] as TDateLike).isSame(getUtcDayjs(formattedDate), opUnit));\n return groupedResult ? _extractTotalRowAmount(groupedResult.Rows) : 0;\n });\n };\n\n const ret: number[] = [];\n\n try {\n const promises = types.map(accountType => {\n const params = getAccountingJournalParams(accountType, account, interval, aggregationFn);\n\n return customFetch(ACCOUNTING_JOURNAL_API_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify(params)\n })\n .then(response => response.json())\n .then((data: IReportData) => aggregationFn ? _extractAggregatedData(data.Rows) : [_extractTotalRowAmount(data.Rows)]);\n });\n\n const [credit, debit] = await Promise.all(promises);\n credit.forEach((num, idx) => {\n ret.push(num - debit[idx]);\n });\n\n } catch (e) {\n // todo: handleError\n throw e;\n }\n\n return ret;\n}, (account, interval, aggregationFn) => [account, interval.from, interval.to, aggregationFn]);\n\nexport interface IFyCloseOverviewData {\n AccountingCode: AccountingCode;\n Company: string;\n CompanyId: number;\n DateEnd: Date;\n DateStart: Date;\n FiscalYearNumber: string;\n SectionCount: number;\n SectionDone: number;\n}\n\nexport type TFyCloseOverviewData = Map;\n\nexport const getFYcloseOverviewData = async (): Promise => {\n const res = await customFetch(`${REST_API_URL}/DashboardData/CrossCompanyFiscalYearClosed`);\n const fycData = await res.json() as IFyCloseOverviewData[];\n const ret = new Map();\n fycData?.forEach((row) => {\n ret.set(row.CompanyId, row);\n });\n\n return ret;\n};\n\nexport const getAssetAnalysisData = memoize(async (FYId: number): Promise => {\n const assetAnalysisProps: TRecordAny = {\n \"FiscalYearId\": FYId,\n \"ReportHierarchy\": {\n \"Aggregate\": true,\n \"Groups\": [],\n \"Columns\": [],\n \"Aggregations\": [{\n ColumnAlias: \"Asset_CalculatedPrice\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n };\n\n const res = await customFetch(`${REST_API_URL}/AssetAnalysis`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(assetAnalysisProps)\n });\n\n const data = await res.json();\n\n return data?.Rows?.[0]?.Value?.[\"Asset_CalculatedPrice_SUM\"] ?? 0;\n});","import styled, { css } from \"styled-components/macro\";\nimport DashboardTileBackground from \"../../dashboard/DashboardTileBackground\";\nimport {\n DashboardTileHeading,\n DashboardTileHorizontalPadding,\n DashboardTileRadiusPx,\n DashboardTileVerticalPadding\n} from \"../../dashboard/Dashboard.styles\";\nimport { T_BOLD_tiny, T_PLAIN_big, T_PLAIN_small } from \"../../../global.style\";\nimport { ellipsis } from \"polished\";\nimport { Button } from \"../../button\";\n\nexport const ItemSpacing = 12;\n\n\nexport const StyledTaxCalendarTile = styled(DashboardTileBackground)`\n position: relative;\n padding: 0;\n`;\n\nexport const SubHeading = styled(DashboardTileHeading)`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 27px 0 22px;\n`;\n\nexport const HeaderListItemStyledButton = styled(Button)`\n // it would be nice to just use Button,\n // but for some reason, this components uses different text size and color\n ${T_PLAIN_big};\n\n ${props => props.isTransparent && css`\n color: ${props.theme.C_TEXT_primary};\n `}\n`;\n\nexport const HeaderListGroup = styled.div`\n display: flex;\n justify-content: flex-start;\n\n // weird custom button styles,\n // it would be nicer to use ButtonGroup and support ButtonSize.Small margin on it\n\n button + button {\n margin-left: 8px;\n }\n`;\n\nexport const TaxCalendarHeader = styled.div`\n position: relative;\n z-index: 1;\n padding: ${DashboardTileVerticalPadding}px ${DashboardTileHorizontalPadding}px;\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.12);\n border-top-left-radius: ${DashboardTileRadiusPx};\n border-top-right-radius: ${DashboardTileRadiusPx};\n`;\n\nexport const Label = styled.dt`\n ${T_PLAIN_small};\n float: left;\n clear: left;\n ${ellipsis()};\n max-width: 107px;\n`;\n\nexport const Content = styled.dd`\n margin-left: 112px;\n padding-left: 5px;\n border-left: 2px solid ${props => props.theme.C_ACT_hover_without_opacity};\n`;\n\nexport const BodyWrapper = styled.div`\n flex: 1 1 auto;\n height: 0;\n`;\n\nexport const Body = styled.dl`\n z-index: 0;\n padding: ${DashboardTileVerticalPadding}px ${DashboardTileHorizontalPadding}px;\n\n ${Content} + ${Content} {\n padding-top: ${ItemSpacing}px;\n }\n\n ${Content} + ${Label}, ${Label}:not(:first-child) + ${Content} {\n margin-top: ${ItemSpacing}px;\n }\n`;\n\nexport const ContentHeading = styled.h4`\n ${T_BOLD_tiny};\n color: ${props => props.theme.C_ACT_main};\n`;\n\nexport const ContentText = styled.div`\n ${T_PLAIN_big};\n`;\n","import React, { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { IDashboardTileComponentProps } from \"../../dashboard\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Body,\n BodyWrapper,\n Content,\n ContentHeading,\n ContentText,\n HeaderListGroup,\n HeaderListItemStyledButton,\n ItemSpacing,\n Label,\n StyledTaxCalendarTile,\n SubHeading,\n TaxCalendarHeader\n} from \"./TaxCalendar.styles\";\nimport { DashboardTileVerticalPadding } from \"../../dashboard/Dashboard.styles\";\nimport { ScrollBar } from \"../../scrollBar\";\nimport { CountryCode } from \"@odata/GeneratedEnums\";\nimport { withOData, WithOData } from \"@odata/withOData\";\nimport { ITaxCalendarEntity } from \"@odata/GeneratedEntityTypes\";\nimport { TRecordType } from \"../../../global.types\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport { Dayjs } from \"dayjs\";\nimport { scrollIntoView } from \"@utils/dom.utils\";\nimport DashboardTileHeader from \"../../dashboard/DashboardTileHeader\";\nimport { getTaxCalendarData } from \"./TaxCalendar.utils\";\nimport { ButtonSize } from \"../../button/Button.utils\";\nimport MonthYearSelector from \"../../inputs/date/MonthYearSelector\";\nimport { IInputOnChangeEvent } from \"../../inputs/input\";\n\ninterface IProps extends IDashboardTileComponentProps, WithOData {\n}\n\nfunction getDayLabelId(date: Dayjs): string {\n return `D_${date.get(\"date\")}`;\n}\n\ninterface IHeaderListItemProps {\n firstVisibleId: string;\n date: Dayjs;\n onClick: (id: string) => void;\n}\n\nconst HeaderListItem: React.FC = ({ date, onClick, firstVisibleId }) => {\n\n const handleClick = useCallback(() => {\n onClick(getDayLabelId(date));\n }, [date, onClick]);\n const isActive = firstVisibleId === getDayLabelId(date);\n\n return (\n \n {date.get(\"date\")}\n \n );\n};\n\ninterface IMappedData {\n key: string;\n data?: ITaxCalendarEntity[];\n date: Dayjs;\n}\n\nconst TaxCalendar: React.FC = ({ inEditMode, info, oData }) => {\n const { t } = useTranslation(\"Home\");\n const wrapperRef = useRef();\n const bodyRef = useRef();\n const scrollRef = useRef();\n\n const [loadedData, setData] = useState(null);\n const [isLoading, setLoading] = useState(true);\n const [hasError, setError] = useState(false);\n const [firstVisible, setFirstVisible] = useState(null);\n const [currentDate, setCurrentDate] = useState(getUtcDayjs());\n\n const Country = CountryCode.CzechRepublic;\n\n const [data, first, last] = useMemo(() => {\n let first: Dayjs, last: Dayjs;\n const monthStart = currentDate.startOf(\"month\");\n const monthEnd = currentDate.endOf(\"month\");\n const data: ITaxCalendarEntity[] = [];\n\n loadedData?.forEach(item => {\n const d = getUtcDayjs(item.Date);\n if (!first || first.isAfter(d, \"day\")) {\n first = d;\n }\n if (!last || last.isBefore(d, \"day\")) {\n last = d;\n }\n if (d.isBetween(monthStart, monthEnd, \"day\", \"[]\")) {\n data.push(item);\n }\n });\n\n return [data, first, last];\n }, [loadedData, currentDate]);\n\n useEffect(() => {\n let mounted = true;\n\n try {\n getTaxCalendarData(oData, { country: Country })\n .then(data => mounted && setData(data))\n .finally(() => mounted && setLoading(false));\n } catch (e) {\n if (mounted) {\n setError(true);\n setData(null);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [Country, oData]);\n\n const dataMap = useMemo(() => {\n const dataMap: TRecordType = {};\n\n data?.forEach(item => {\n const key = item.Date.toString();\n if (!dataMap[key]) {\n dataMap[key] = {\n key,\n data: [],\n date: getUtcDayjs(key)\n };\n }\n dataMap[key].data.push(item);\n });\n\n return dataMap;\n }, [data]);\n\n const Labels = useMemo(() => Object.keys(dataMap), [dataMap]);\n\n const handleNavClick = useCallback((id: string) => {\n const label = document.getElementById(id);\n if (label) {\n scrollIntoView(scrollRef.current, label, { behavior: \"smooth\" }, { top: -1 * ItemSpacing });\n }\n }, []);\n\n const handleChange = useCallback((e: IInputOnChangeEvent) => {\n setCurrentDate(getUtcDayjs(e.value));\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const handleScroll = useCallback(() => {\n const { scrollTop } = scrollRef.current;\n const labels = bodyRef.current.getElementsByTagName(\"dt\");\n const currentLabel = Array.from(labels)?.find(label => label.offsetTop > scrollTop);\n setFirstVisible(currentLabel?.id);\n }, []);\n\n const scrollbarProps = useMemo(() => ({\n ref: scrollRef,\n onScroll: handleScroll\n }), [handleScroll]);\n\n useLayoutEffect(() => {\n const body = bodyRef.current;\n if (body?.children?.length && wrapperRef.current) {\n body.style.paddingBottom = \"0\";\n const wrapperHeight = wrapperRef.current.getBoundingClientRect().height;\n const labels = body.getElementsByTagName(\"dt\");\n const addPadding = wrapperHeight - (body.getBoundingClientRect().height + DashboardTileVerticalPadding + ItemSpacing - labels[labels.length - 1].offsetTop);\n if (!isNaN(addPadding) && addPadding > 0) {\n body.style.paddingBottom = `${addPadding}px`;\n }\n handleScroll();\n }\n }, [data, handleScroll]);\n\n return (\n \n \n {t(\"Home:TaxCalendar.Heading\")}\n \n \n \n \n {Labels.map(l => (\n \n ))}\n \n \n \n \n \n {Labels.map(l => (\n \n \n {dataMap[l].data.map(d => (\n \n {d.TaxType.Name}\n {d.Description}\n \n ))}\n \n ))}\n \n \n \n \n );\n};\n\nexport default memo(withOData(TaxCalendar));","import { OData } from \"@odata/OData\";\nimport { CountryCode, TaxCalendarTaxTypeCode } from \"@odata/GeneratedEnums\";\nimport { EntitySetName, ITaxCalendarEntity } from \"@odata/GeneratedEntityTypes\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { ValueType } from \"../../../enums\";\n\n\ninterface IGetTaxCalendarDataArgs {\n country: CountryCode;\n from?: Date;\n to?: Date;\n type?: TaxCalendarTaxTypeCode;\n limit?: number;\n}\n\n// Next electronic submission date\nexport async function getTaxCalendarData(oData: OData, args: IGetTaxCalendarDataArgs): Promise {\n const filterQueries: string[] = [];\n\n filterQueries.push(`CountryCode eq '${args.country}'`);\n\n if (args.from) {\n filterQueries.push(`Date ge ${transformToODataString(args.from, ValueType.Date)}`);\n }\n if (args.to) {\n filterQueries.push(`Date ge ${transformToODataString(args.to, ValueType.Date)}`);\n }\n if (args.type) {\n filterQueries.push(`TaxTypeCode eq '${args.type}'`);\n }\n\n const query = oData.getEntitySetWrapper(EntitySetName.TaxCalendars).query()\n .filter(filterQueries.join(\" AND \"))\n .select(\"Id\", \"Date\", \"Description\")\n .expand(\"TaxType\", (query) =>\n query.select(\"Name\"))\n .orderBy(\"Date\", true);\n\n if (args.limit) {\n query.top(args.limit);\n }\n const res = await query.fetchData();\n\n return res.value;\n}","import { DashboardTileType, IDashboardDefinition, TTileDefinition } from \"@components/dashboard\";\nimport { ifAll, not } from \"@components/smart/FieldInfo\";\nimport { GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { isOnOrganizationLevel } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport TaxCalendar from \"../../components/tiles/taxCalendar\";\nimport { Status } from \"../../enums\";\nimport { ROUTE_FISCAL_YEAR_CLOSE_OVERVIEW } from \"../../routes\";\nimport {\n getAgendaPerformanceOverviewTileDef,\n getAgendaWorkOverviewTileDef,\n getCustomerSupportTileDef,\n getDemoTenantTileDef,\n getEstimatedAccrualsDef,\n getFutureExpensesAndRevenuesDef,\n getFYcloseOverviewData,\n getInboxTileDef,\n getJournalEntriesLastMonthDef,\n getKeyboardShortcutsTileDef,\n getManualsDef,\n getPostedDocumentsLastMonthDef,\n getPostedDocumentsLastMonthPerUserDef,\n getPurchaseTileDef,\n getTicketsInfoTileDef,\n getUsersAgendaData,\n getVideoHelpTileDef,\n getWelcomeTileDef,\n hasAnyGeneralPermission,\n isInCustomerPortal\n} from \"./Home.utils\";\n\n/**\n * Dashboard configuration for accountant, when switched to Organization level to get overview about all agendas\n */\nexport function getDashboardDefinition(): IDashboardDefinition {\n const tileDefinition: TTileDefinition = {\n Welcome: getWelcomeTileDef(),\n Purchase: getPurchaseTileDef(),\n ManagedAgendas: {\n type: DashboardTileType.Table,\n title: i18next.t(\"Home:ManagedAgendas.Heading\"),\n tableData: async (args) => {\n return await getUsersAgendaData(args.oData);\n },\n size: { w: 2, h: 2 },\n isVisible: hasAnyGeneralPermission(GeneralPermissionCode.CompanyManagement)\n },\n VideoHelp: getVideoHelpTileDef(),\n FiscalYearCloseOverview: {\n type: DashboardTileType.Info,\n title: i18next.t(\"Home:FiscalYearCloses.Heading\"),\n link: ROUTE_FISCAL_YEAR_CLOSE_OVERVIEW,\n infoData: async () => {\n const data = await getFYcloseOverviewData();\n let notStarted = 0;\n let pending = 0;\n let finished = 0;\n\n for (const fyc of [...(data?.values() ?? [])]) {\n if (fyc.SectionDone === fyc.SectionCount) {\n finished += 1;\n } else if (fyc.SectionDone === 0) {\n notStarted += 1;\n } else {\n pending += 1;\n }\n }\n\n return [\n {\n value: notStarted,\n label: i18next.t(\"Home:FiscalYearCloses.NotStartedLabel\", { count: notStarted })\n },\n {\n value: pending,\n severity: Status.Warning,\n label: i18next.t(\"Home:FiscalYearCloses.PendingLabel\", { count: pending })\n },\n {\n value: finished,\n severity: Status.Success,\n label: i18next.t(\"Home:FiscalYearCloses.FinishedLabel\", { count: finished })\n }\n ];\n },\n size: { w: 3, h: 1 }\n },\n TaxCalendar: {\n title: i18next.t(\"Home:TaxCalendar.Heading\"),\n type: DashboardTileType.Custom,\n component: TaxCalendar,\n size: { w: 4, h: 4 }\n },\n // EvalaWorkingTime: {\n // title: i18next.t(\"Home:EvalaWorkingTimeTile.Heading\"),\n // type: DashboardTileType.Table,\n // isVisible: hasAnyGeneralPermission(\n // GeneralPermissionCode.OrganizationManagement,\n // GeneralPermissionCode.EmployeePerformance\n // ),\n // size: { w: 2, h: 2 }\n // },\n PostedDocumentsLastMonth: getPostedDocumentsLastMonthDef(),\n JournalEntriesLastMonth: getJournalEntriesLastMonthDef(),\n AgendaPerformanceOverview: getAgendaPerformanceOverviewTileDef(),\n PostedDocumentsLastMonthPerUser: getPostedDocumentsLastMonthPerUserDef(),\n KeyboardShortcuts: getKeyboardShortcutsTileDef(),\n AgendaWorkOverview: getAgendaWorkOverviewTileDef(true),\n FutureExpensesAndRevenues: getFutureExpensesAndRevenuesDef(),\n EstimatedAccruals: getEstimatedAccrualsDef(),\n Tickets: getTicketsInfoTileDef(),\n CustomerSupport: getCustomerSupportTileDef(),\n Manuals: getManualsDef(),\n Inbox: getInboxTileDef(),\n DemoTenant: getDemoTenantTileDef()\n };\n\n const optionalTiles: (keyof TTileDefinition)[] = [\n \"FutureExpensesAndRevenues\",\n \"EstimatedAccruals\",\n \"Tickets\",\n \"Inbox\",\n \"PostedDocumentsLastMonth\",\n \"JournalEntriesLastMonth\"\n ];\n const ownerTiles = [\"ManagedAgendas\"];\n const defaultTiles = Object.keys(tileDefinition).filter(key => !optionalTiles.includes(key) && !ownerTiles.includes(key));\n\n // todo: change default order of tiles to have better dashboard layout on different screens\n return {\n title: i18next.t(\"Home:TenantDashboardTitle\"),\n tileDefinition,\n isVisible: ifAll(isOnOrganizationLevel, not(isInCustomerPortal)),\n // todo: preferred default tile order regardless groups\n groups: [{\n id: \"agendaOverview\",\n title: i18next.t(\"Home:Groups.AgendaOverview\"),\n tiles: defaultTiles,\n allTiles: [...defaultTiles, ...optionalTiles]\n }, {\n id: \"owner\",\n title: i18next.t(\"Home:Groups.Owner\"),\n tiles: ownerTiles,\n allTiles: ownerTiles\n }\n ]\n };\n}\n","import { StyledChat } from \"@components/chat/Chat.styles\";\nimport { StyledFileStrip } from \"@components/fileStrip/FileStrip.styles\";\nimport { DropArea, DROPAREA_PADDING, DropAreaWithPadding } from \"@components/fileUploader/FileUploader.styles\";\nimport { StyledFileViewer } from \"@components/fileViewers/FileViewers.styles\";\nimport {\n Bubble,\n BubbleWrapper,\n PaneGradient,\n ShadowStyles,\n Splitter,\n StyledSplitLayout\n} from \"@components/splitLayout/SplitLayout.styles\";\nimport { RowShadow, StyledValueRow } from \"@components/table/Rows.styles\";\nimport { BeforeRowContentWrapper } from \"@components/table/Table.styles\";\nimport { ApprovalStatusTypeCode } from \"@odata/GeneratedEnums\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport Clickable from \"../../components/clickable\";\nimport ProgressBar from \"../../components/progressBar\";\nimport { Pane, SplitLayout } from \"../../components/splitLayout\";\nimport { LocalStackOrder, T_TITLE_2, T_TITLE_5 } from \"../../global.style\";\nimport { Theme } from \"../../theme\";\nimport { TableWrapper } from \"../../views/table/TableView.styles\";\nimport View from \"../../views/View\";\nimport { StyledViewWrapper, VIEW_PADDING_VALUE } from \"../../views/View.styles\";\n\nconst COLLAPSED_SPLITTER_WIDTH = 38;\nconst HOVER_SPLITTER_WIDTH = 53;\nexport const InboxFakeSplitterStyled = styled(Clickable)`\n height: 100%;\n flex: 0 0 ${COLLAPSED_SPLITTER_WIDTH}px;\n transition: flex-basis .2s ease-in-out;\n transition-delay: 0s;\n ${ShadowStyles};\n\n ${BubbleWrapper} {\n left: 100%;\n }\n\n &, ${Bubble} {\n background-color: ${props => props.theme.C_BG_floorplan};\n }\n\n &:hover {\n flex-basis: ${HOVER_SPLITTER_WIDTH}px;\n transition-delay: .4s;\n\n &, ${Bubble} {\n background-color: ${props => props.theme.C_SPLIT_LAYOUT_BUBBLE};\n }\n }\n`;\n\nexport const InboxSplitPageStyled = styled.div<{ $stripOnTheLeft: boolean }>`\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n\n ${StyledSplitLayout} {\n overflow: visible;\n }\n\n ${InboxFakeSplitterStyled}, ${StyledFileStrip}, ${StyledSplitLayout} {\n position: relative;\n }\n\n ${InboxFakeSplitterStyled} {\n z-index: ${LocalStackOrder.AboveContent + 1};\n }\n\n ${StyledFileStrip} {\n ${props => props.$stripOnTheLeft && ShadowStyles};\n z-index: ${LocalStackOrder.AboveContent};\n flex: 1 1 0;\n }\n\n ${StyledSplitLayout}, ${Splitter} {\n z-index: ${props => LocalStackOrder.AboveContent + (props.$stripOnTheLeft ? -1 : 1)};\n }\n\n ${StyledSplitLayout} {\n flex: 1 1 0;\n }\n`;\n\nexport const TableWrapperStyled = styled(TableWrapper)<{ isDragging: boolean }>`\n ${DropArea} {\n height: 100%;\n ${DropAreaWithPadding};\n }\n\n ${props => props.isDragging && css`\n ${BeforeRowContentWrapper}, ${StyledValueRow}, ${RowShadow} {\n &[aria-selected=\"true\"] {\n opacity: 0;\n }\n }\n `}\n`;\n\nexport const SendToAccountantListStyled = styled(View)`\n ${DropArea} {\n ${DropAreaWithPadding};\n margin-top: ${DROPAREA_PADDING}px;\n }\n`;\n\nexport const ProgressBarStyled = styled(ProgressBar)`\n min-width: 340px;\n`;\n\nexport const ProgressBarWrapper = styled.div <{ isVisible: boolean }>`\n margin-top: -15px;\n margin-bottom: -18px;\n visibility: ${props => props.isVisible ? 'visible' : 'hidden'};\n`;\nexport const SplitLayoutStyled = styled(SplitLayout)`\n overflow: visible;\n`;\n\nexport const PaneStyled = styled(Pane)<{\n order: number;\n addShadow?: boolean;\n addBackground?: boolean;\n}>`\n position: relative;\n // first panes in DOM needs to be above the next ones as the shadows are on right side\n z-index: ${props => 10 - props.order};\n\n ${props => props.addBackground && `background-color: ${props.theme.C_BG_floorplan}`};\n ${props => props.addShadow && ShadowStyles};\n`;\n\ninterface IStatus {\n _status: ApprovalStatusTypeCode;\n}\n\nexport const FileIconWithStatusStyled = styled.div`\n position: relative;\n\n ::before {\n display: block;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translate(0, -50%);\n content: \" \";\n width: 2px;\n height: 23px;\n border-radius: 1px;\n background-color: ${props => props.theme[getStatusColor(props._status)]};\n }\n`;\n\nexport function getStatusColor(status: ApprovalStatusTypeCode): keyof Theme {\n switch (status) {\n case ApprovalStatusTypeCode.Pending:\n return \"C_SEM_text_warning\";\n case ApprovalStatusTypeCode.Rejected:\n return \"C_SEM_text_bad\";\n default:\n return \"C_SEM_text_good\";\n }\n}\n\nexport const StatusText = styled.span`\n color: ${props => props.theme[getStatusColor(props._status)]};\n text-transform: uppercase;\n`;\n\nexport const OtherFolderWindowStyled = styled.div`\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n align-items: stretch;\n justify-content: stretch;\n\n ${PaneGradient};\n\n ${StyledFileStrip} {\n ${ShadowStyles};\n flex: 0 0 auto;\n }\n\n ${StyledViewWrapper} {\n flex: 1 1 auto;\n }\n`;\n\nexport const StyledTextInDialog = styled.pre<{ $isPlaceholder: boolean; }>`\n text-align: ${props => props.$isPlaceholder ? \"center\" : \"left\"};\n white-space: pre-wrap;\n padding: 19px;\n ${props => props.$isPlaceholder && css`\n font-style: italic;\n `}\n`;\n\nexport const InboxFileDetailStyled = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n max-height: 100%;\n max-width: 100%;\n padding: ${VIEW_PADDING_VALUE}px;\n\n ${StyledFileViewer} {\n flex: 1 1 auto;\n height: 0;\n margin-bottom: 15px;\n }\n\n ${StyledChat} {\n flex: 0 0 auto;\n height: fit-content;\n }\n`;\n\nexport const NoAttachmentText = styled.em`\n font-style: italic;\n color: ${props => props.theme.C_ACT_thick_line};\n`;\n\nexport const MultipleFileSelectionWrapper = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n // todo: temporary\n ${T_TITLE_2};\n`;\n\nexport const InboxApprovalStatusTooltip = styled.div`\n ${T_TITLE_5};\n color: ${props => props.theme[getStatusColor(props._status)]};\n`;\n","import { AlertAction, IAlertProps, IBaseAlertProps } from \"@components/alert/Alert\";\nimport { IGetTileDataArgs } from \"@components/dashboard\";\nimport { WithConfirmationDialogContext } from \"@components/dialog/ConfirmationDialogProvider\";\nimport { IFileStripItem } from \"@components/fileStrip/FileStrip.utils\";\nimport { formatDateToDateString, getWorkDateFromLocalStorage } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { getRow } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport BindingContext, { createBindingContext, IEntity } from \"@odata/BindingContext\";\nimport { isODataError } from \"@odata/Data.types\";\nimport {\n CompanySettingEntity,\n EntitySetName,\n EntityTypeName,\n FileMetadataEntity,\n ICompanySettingEntity,\n IInboxCommunicationEntity,\n IInboxFileEntity,\n InboxCommunicationEntity,\n InboxFileEntity,\n UserCompanyRoleEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ApprovalStatusTypeCode,\n CommunicationTypeCode,\n InboxEntityTypeCode,\n InboxFileSourceCode\n} from \"@odata/GeneratedEnums\";\nimport { isBatchResultOk, OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { InboxApprovalStatusTooltip } from \"@pages/inbox/Inbox.styles\";\nimport { IUploadedFile } from \"@pages/inbox/InboxSendToAccountantSplitPage\";\nimport { hasEverBeenVatRegisteredCompany, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { logger } from \"@utils/log\";\nimport memoizeOne from \"@utils/memoizeOne\";\nimport { initials } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { IProps as WriteLineProps } from \"../../components/inputs/writeLine\";\nimport { ATTACH_INBOX_FILE_URL, FILES_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, IconSize, Status, TextAlign, ToolbarItemType, ValueType } from \"../../enums\";\nimport { TRecordAny, TRecordType } from \"../../global.types\";\nimport { ITableStorageDefaultCustomData } from \"../../model/TableStorage\";\nimport { Theme } from \"../../theme\";\nimport { getUtcDate } from \"../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { ISplitPageTableDef, ITableDef } from \"../../views/table/TableView.utils\";\nimport { currentUserIsCustomer } from \"../admin/users/Users.utils\";\nimport { ISplitPagePaneData } from \"../Page\";\nimport { IDefinition } from \"../PageUtils\";\n\n\nexport const getInboxFilesBindingContext = memoizeOne((oData: OData) => {\n return createBindingContext(EntitySetName.InboxFiles, oData.getMetadata());\n});\n\nexport enum InboxFilter {\n Unsorted = \"Unsorted\",\n Other = \"Other\", // InboxEntityTypeCode.Other\n Entity = \"Entity\",\n ForApprove = \"ForApprove\"\n}\n\nexport enum InboxAction {\n AskForApproval = \"AskForApproval\",\n CancelApproval = \"CancelApproval\"\n}\n\nexport const INBOX_ACTIONS_GROUP_ID = \"InboxActionsGroup\";\n\nexport interface IInboxTableCustomData extends ITableStorageDefaultCustomData {\n type?: InboxFilter;\n entityType?: InboxEntityTypeCode;\n}\n\nexport interface IAttachFileResult {\n alert: IBaseAlertProps;\n shouldRefreshTable: boolean;\n}\n\nexport const SEARCH_ID = \"Search\";\n\nexport function getSearchBoxToolbarItem(value?: string, props?: TRecordAny): IToolbarItem {\n const itemProps: WriteLineProps = {\n textAlign: TextAlign.Left,\n placeholder: i18next.t(\"Inbox:TableView.SearchPlaceholder\"),\n maxWidth: BasicInputSizes.L,\n minWidth: BasicInputSizes.S,\n withClearButton: true,\n value,\n ...props\n };\n return {\n id: SEARCH_ID,\n itemType: ToolbarItemType.WriteLine,\n itemProps\n };\n}\n\nexport function getPaneIcon(hasFiles: boolean): string {\n return hasFiles ? \"DocumentFilled\" : \"Document\";\n}\n\nexport function getInboxFilterByType(type: InboxFilter, entityType?: InboxEntityTypeCode): string {\n switch (type) {\n case InboxFilter.Unsorted:\n return `${InboxFileEntity.EntityType} eq null AND ${InboxFileEntity.IsSorted} eq false`;\n case InboxFilter.Other:\n return `(${InboxFileEntity.EntityTypeCode} eq '${InboxEntityTypeCode.Other}' OR ${InboxFileEntity.EntityType} eq null) AND ${InboxFileEntity.IsSorted} eq true`;\n case InboxFilter.Entity:\n return `${InboxFileEntity.EntityTypeCode} eq '${entityType}'`;\n case InboxFilter.ForApprove:\n return `${InboxFileEntity.ApprovalStatusTypeCode} eq '${ApprovalStatusTypeCode.Pending}'`;\n }\n}\n\nexport function getInboxTableDef(definition: IDefinition, type: InboxFilter, entityType?: InboxEntityTypeCode): ITableDef {\n const def = cloneDeep(definition.table);\n def.filter = getInboxFilterByType(type, entityType);\n def.id = `${def.id}#${type}${entityType ? \"#\" + entityType : \"\"}SpecialTable`;\n\n if (type === InboxFilter.ForApprove) {\n def.title = i18next.t(\"Inbox:ForApproval\");\n } else if (type === InboxFilter.Unsorted) {\n def.title = i18next.t(\"Inbox:Title\");\n }\n return def;\n}\n\nexport const getSupportedInboxEntities = memoizeOne(async (context: IAppContext, oData: OData): Promise => {\n const supported = [\n InboxEntityTypeCode.InvoicesReceived, InboxEntityTypeCode.InvoicesIssued,\n // DEV-16661 it's currently not possible to create draft for BankStatement EntityTypeName.BankStatement,\n InboxEntityTypeCode.CashReceiptsReceived, InboxEntityTypeCode.CashReceiptsIssued,\n InboxEntityTypeCode.ProformaInvoicesReceived, InboxEntityTypeCode.TaxDocumentsReceived,\n InboxEntityTypeCode.ProformaInvoicesIssued, InboxEntityTypeCode.TaxDocumentsIssued,\n InboxEntityTypeCode.OtherLiabilities, InboxEntityTypeCode.OtherReceivables,\n InboxEntityTypeCode.Other\n ];\n if (!isVatRegisteredCompany(context)) {\n let taxRelatedFolders = [InboxEntityTypeCode.TaxDocumentsIssued, InboxEntityTypeCode.TaxDocumentsReceived];\n if (hasEverBeenVatRegisteredCompany(context)) {\n // if company was once VAT registered, we need to check\n // if there are some data in TAX folder and if so, show these folders.\n const counts = await getFolderItemCounts(oData, null, taxRelatedFolders);\n taxRelatedFolders = taxRelatedFolders.filter(entityType => counts[entityType] > 0);\n }\n return supported.filter(entityType => !taxRelatedFolders.includes(entityType));\n }\n return supported;\n}, (context: IAppContext) => [context.getCompanyId()]);\n\nexport const getDefaultVisibleItems = memoizeOne(async (context: IAppContext, oData: OData): Promise => {\n const supported = await getSupportedInboxEntities(context, oData);\n const defaultVisibleItems = [\n InboxEntityTypeCode.InvoicesReceived, InboxEntityTypeCode.InvoicesIssued,\n InboxEntityTypeCode.ProformaInvoicesReceived, InboxEntityTypeCode.ProformaInvoicesIssued,\n InboxEntityTypeCode.OtherLiabilities, InboxEntityTypeCode.OtherReceivables,\n InboxEntityTypeCode.TaxDocumentsIssued, InboxEntityTypeCode.TaxDocumentsReceived,\n InboxEntityTypeCode.Other\n ];\n\n return defaultVisibleItems.filter(item => supported.includes(item));\n});\n\nexport const getIconName = (type: InboxEntityTypeCode): string => {\n const _iconName = (shortcut: string) => `Folder${shortcut}`;\n switch (type) {\n case InboxEntityTypeCode.InvoicesIssued:\n return _iconName(\"FV\");\n case InboxEntityTypeCode.InvoicesReceived:\n return _iconName(\"FP\");\n case InboxEntityTypeCode.OtherReceivables:\n return _iconName(\"PD\");\n case InboxEntityTypeCode.CashReceiptsReceived:\n return _iconName(\"PPD\");\n // case InboxEntityTypeCode.BankStatements:\n // return _iconName(\"VBU\");\n case InboxEntityTypeCode.CashReceiptsIssued:\n return _iconName(\"VPD\");\n case InboxEntityTypeCode.OtherLiabilities:\n return _iconName(\"ZD\");\n case InboxEntityTypeCode.ProformaInvoicesReceived:\n return _iconName(\"ZFP\");\n case InboxEntityTypeCode.ProformaInvoicesIssued:\n return _iconName(\"ZFV\");\n case InboxEntityTypeCode.TaxDocumentsReceived:\n return _iconName(\"PDDOPP\");\n case InboxEntityTypeCode.TaxDocumentsIssued:\n return _iconName(\"VDDOPP\");\n case InboxEntityTypeCode.Other:\n return _iconName(\"Dots\");\n default:\n return null;\n }\n};\n\nexport function getInboxFolderFileStripeItem(entityType: InboxEntityTypeCode, withIcon = true, count?: number): IFileStripItem {\n const label = i18next.t(`Inbox:Folder.${entityType}`);\n const shortcut = initials(label);\n const iconName = withIcon && getIconName(entityType);\n return {\n id: entityType,\n shortcut,\n iconName,\n label,\n count\n };\n}\n\nexport const getEntityTypeFileStripItems = memoizeOne((supportedEntities: InboxEntityTypeCode[], withIcon = true, fileStripItemsCounts?: TRecordType): IFileStripItem[] => {\n return supportedEntities\n .map((entityTypeName) => getInboxFolderFileStripeItem(entityTypeName, withIcon, fileStripItemsCounts?.[entityTypeName]));\n}, (supportedEntities: InboxEntityTypeCode[], withIcon = true, fileStripItemsCounts?: TRecordType) => [...supportedEntities, withIcon, fileStripItemsCounts]);\n\nexport function getFilterAndEntityTypeFromSelectItem(item: ISelectItem): {\n type: InboxFilter,\n entityType?: InboxEntityTypeCode\n} {\n let type: InboxFilter,\n entityType: InboxEntityTypeCode;\n switch (item.id) {\n case InboxFilter.Other:\n case InboxFilter.Unsorted:\n type = item.id as InboxFilter;\n entityType = item.id === InboxFilter.Other ? InboxEntityTypeCode.Other : null;\n break;\n default:\n type = InboxFilter.Entity;\n entityType = item.id as InboxEntityTypeCode;\n break;\n }\n\n return { type, entityType };\n}\n\nexport function getInboxFile(rowProps: IRowProps | IRow): IInboxFileEntity {\n return rowProps?.customData?.entity as IInboxFileEntity;\n}\n\nexport function getApprovalStatus(inboxFile: IInboxFileEntity): ApprovalStatusTypeCode {\n return inboxFile?.ApprovalStatusTypeCode as ApprovalStatusTypeCode;\n}\n\nexport function getStatusFromApprovalStatus(status: ApprovalStatusTypeCode): Status {\n switch (status) {\n case ApprovalStatusTypeCode.Pending:\n return Status.Warning;\n case ApprovalStatusTypeCode.Rejected:\n return Status.Error;\n default:\n // no status for approved and when approval not needed\n // or in case data are not yet loaded\n return null;\n }\n}\n\nexport function getStatusTooltipFromApprovalStatus(status: ApprovalStatusTypeCode): React.ReactNode {\n const key = status === ApprovalStatusTypeCode.Rejected ? \"Denied\" : \"WaitingForApproval\";\n\n return (\n {i18next.t(`Inbox:TableView.${key}`)}\n );\n}\n\ninterface IAttachInboxFileData {\n InboxFileId: number;\n EntityType: string;\n EntityId?: number;\n}\n\nexport async function attachInboxFile(fileIds: TId[], EntityType: InboxEntityTypeCode | EntityTypeName, EntityId?: number): Promise {\n if (fileIds.length === 0) {\n return true;\n }\n\n const workDate = getWorkDateFromLocalStorage();\n const data: IAttachInboxFileData[] = fileIds\n .map((id) => ({\n InboxFileId: parseInt(id.toString()),\n EntityType,\n EntityId,\n WorkDate: workDate ? formatDateToDateString(workDate) : null\n }));\n\n const response = await customFetch(ATTACH_INBOX_FILE_URL, {\n ...getDefaultPostParams(),\n body: JSON.stringify(data)\n });\n\n const body = await parseResponse(response);\n if (!response.ok) {\n throw body;\n }\n return body;\n}\n\nexport async function loadInboxFileDetail(bc: BindingContext, oData: OData): Promise {\n\n const query = oData.getEntitySetWrapper(EntitySetName.InboxFiles).query(bc.getKey())\n .select(InboxFileEntity.Id, InboxFileEntity.Body, InboxFileEntity.ApprovalStatusTypeCode, InboxFileEntity.InboxFileSourceCode, InboxFileEntity.EntityTypeCode, InboxFileEntity.Sender)\n .expand(InboxFileEntity.Communications, (query) =>\n query.select(InboxCommunicationEntity.Id, InboxCommunicationEntity.Body, InboxCommunicationEntity.CommunicationTypeCode, InboxCommunicationEntity.DateCreated)\n .expand(InboxCommunicationEntity.CreatedBy, (q2) => q2.select(UserEntity.Id, UserEntity.Name)\n .expand(UserEntity.CompanyRoles, (q3) => q3\n .expand(UserCompanyRoleEntity.Company).expand(UserCompanyRoleEntity.CompanyRole)))\n )\n .expand(InboxFileEntity.FileMetadata);\n\n const response = await query.fetchData();\n\n return response.value;\n}\n\nexport async function loadInboxFileMetadata(oData: OData, inboxFileIds: TId[]): Promise {\n const query = oData.getEntitySetWrapper(EntitySetName.InboxFiles)\n .query()\n .filter(`${InboxFileEntity.Id} in (${transformToODataString(inboxFileIds, ValueType.Number)})`)\n .select(InboxFileEntity.Id)\n .expand(InboxFileEntity.FileMetadata, (subQuery) =>\n subQuery\n .expand(FileMetadataEntity.CreatedBy)\n .expand(FileMetadataEntity.LastModifiedBy));\n\n const response = await query.fetchData();\n\n return response.value;\n}\n\nexport async function createInboxFileMessage(oData: OData, inboxBc: BindingContext, message: string, status: ApprovalStatusTypeCode): Promise {\n const entitySet = inboxBc.getEntitySet();\n const queryable = oData.fromPath(entitySet.getName());\n const newCommunication: IInboxCommunicationEntity = message && {\n Body: message,\n CommunicationTypeCode: CommunicationTypeCode.User\n };\n try {\n const postData: TRecordAny = {\n [InboxFileEntity.ApprovalStatusTypeCode]: status\n };\n if (newCommunication) {\n postData[`${InboxFileEntity.Communications}@odata.delta`] = [newCommunication];\n }\n await queryable.update(inboxBc.getKey(), postData);\n } catch (e) {\n return false;\n }\n return true;\n}\n\nexport async function renameInboxAttachment(oData: OData, inboxBc: BindingContext, inboxFile: IInboxFileEntity, newName: string): Promise {\n const bc = inboxBc.navigate(InboxFileEntity.FileMetadata);\n const metadataEntitySet = bc.getEntitySet();\n const queryable = oData.fromPath(metadataEntitySet.getName());\n\n await queryable.update(inboxFile.FileMetadata.Id, { Name: newName });\n}\n\nexport async function deleteInboxFile(bc: BindingContext, oData: OData): Promise {\n const result = await oData.getEntitySetWrapper(EntitySetName.InboxFiles).delete(bc.getKey());\n return !!result;\n}\n\nexport async function handleRenameInboxFile(storage: TSmartODataTableStorage, bc: BindingContext, newName: string): Promise {\n const tableState = storage.tableAPI.getState();\n const row = getRow(tableState.rows, bc);\n const inboxFile = row.customData.entity as IInboxFileEntity;\n try {\n await renameInboxAttachment(storage.oData, bc, inboxFile, newName);\n await storage.tableAPI.reloadRow(bc);\n } catch (error) {\n // todo: handle error\n return false;\n }\n return true;\n}\n\nexport async function handleDeleteFile(storage: TSmartODataTableStorage, dialog: WithConfirmationDialogContext, id: BindingContext): Promise {\n const isConfirmed = await dialog.open({\n content: storage.t(\"Common:Confirmations.ConfirmDelete\")\n });\n\n if (isConfirmed) {\n if (await deleteInboxFile(id, storage.oData)) {\n // we don't wait for table reload, action is already done\n // TableAPI also might not be initialized if we delete from InboxFileDetail\n // -> Table is reloaded after viewer is closed\n storage.tableAPI?.reloadTable();\n return true;\n }\n }\n return false;\n}\n\nexport function getDragImage(fileNames: string[], theme: Theme, fallback?: string): HTMLCanvasElement {\n const gap = 5;\n const iconSize = IconSize.asNumber(\"M\");\n const maxWidth = 500;\n const textY = iconSize / 2 + 3;\n const textX = iconSize + 5;\n const fontSize = 14;\n\n const baseIconSize = 42.5;\n const icon = new Path2D(`M33.8,15.2l-9-9.9h-15c-0.6,0-1.1,0.5-1.1,1.1v29.7c0,0.6,0.5,1.1,1.1,1.1h22.8c0.6,0,1.1-0.5,1.1-1.1 v-1.9V15.2l-9,0V5.3`);\n const m = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix();\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = maxWidth;\n const rows = fileNames.length; // Math.min(fileNames.length, 10);\n const extra = fileNames.length - rows;\n canvas.height = 2 * (extra ? rows + 1 : rows) * (iconSize + gap);\n const ctx = canvas.getContext(\"2d\");\n ctx.font = `${fontSize}px Lato`;\n ctx.textBaseline = \"middle\";\n ctx.strokeStyle = theme.C_ACT_main;\n\n const _drawIcon = (x: number, y: number) => {\n const p = new Path2D();\n const translation = m.translate(x, y + 2).scale(iconSize / baseIconSize);\n p.addPath(icon, translation);\n ctx.fillStyle = theme.C_BG_floorplan;\n ctx.fill(p);\n ctx.stroke(p);\n };\n\n const _drawTextWithBG = (txt: string, x: number, y: number) => {\n // background\n const width = ctx.measureText(txt).width;\n const height = fontSize + gap;\n ctx.beginPath();\n ctx.fillStyle = theme.C_TEXT_bg_DnD;\n ctx.roundRect(x, y - (height / 2), width + 2 * gap, height, 3);\n ctx.fill();\n ctx.closePath();\n // text\n ctx.fillStyle = theme.C_ACT_light_line;\n ctx.fillText(txt, x + gap, y, maxWidth - x);\n };\n\n const rowHeight = iconSize + gap;\n for (let idx = 0; idx < rows; idx++) {\n const name = fileNames[idx];\n const y = idx * rowHeight;\n _drawIcon(0, y);\n _drawTextWithBG(name ?? fallback, textX, y + textY);\n }\n if (extra) {\n _drawTextWithBG(`+${extra} ${i18next.t(\"Inbox:TableView.More\")}`, textX, rows * rowHeight + textY);\n }\n\n return canvas;\n}\n\nexport function isRowWithFile(rowProps: IRowProps): boolean {\n return !!(rowProps?.customData?.entity as IInboxFileEntity)?.FileMetadata?.Id;\n}\n\nexport async function handleAttachFiles(successKey: string, callback: (() => Promise)): Promise {\n let resolution = null;\n const error = {\n status: Status.Error,\n title: i18next.t(\"Common:Errors.ErrorHappened\"),\n subTitle: i18next.t(\"Inbox:TableView.CompleteErrorOther\"),\n action: AlertAction.Close\n };\n\n try {\n resolution = await callback();\n } catch (e) {\n if (isODataError(e)) {\n return {\n ...getAlertFromError(e),\n title: i18next.t(\"Common:Errors.ErrorHappened\")\n };\n }\n return error;\n }\n return !!resolution ? {\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: i18next.t(successKey)\n } : error;\n}\n\nexport async function getInboxForApprovalCount(args: IGetTileDataArgs): Promise {\n const { oData, signal } = args;\n\n const query = oData.getEntitySetWrapper(EntitySetName.InboxFiles)\n .query()\n .filter(getInboxFilterByType(InboxFilter.ForApprove))\n .count();\n\n const data = await query.fetchData(null, { signal });\n\n return data?._metadata?.count ?? 0;\n}\n\nexport async function changeInboxFileApprovalStatus(oData: OData, keys: string[], status: ApprovalStatusTypeCode): Promise {\n const batch = oData.batch();\n batch.beginAtomicityGroup(\"names\");\n for (const key of keys) {\n batch.getEntitySetWrapper(EntitySetName.InboxFiles).update(key, {\n [InboxFileEntity.ApprovalStatusTypeCode]: status\n });\n }\n const result = await batch.execute();\n const hasError = result.find((res) => !isBatchResultOk(res));\n return !hasError;\n}\n\nexport async function approveInboxFiles(oData: OData, keys: string[]): Promise {\n return changeInboxFileApprovalStatus(oData, keys, ApprovalStatusTypeCode.Approved);\n}\n\nasync function createInboxFile(context: IAppContext, oData: OData, file: File, name: string, source?: InboxFileSourceCode): Promise {\n const url = `${FILES_API_URL}/uploadinboxfile`;\n const metadata = await FileStorage.upload({ file, name, url });\n await oData.getEntitySetWrapper(EntitySetName.InboxFiles).create({\n [InboxFileEntity.FileMetadata]: { \"@odata.id\": `${EntitySetName.FilesMetadata}(${metadata.Id})` },\n [InboxFileEntity.InboxFileSourceCode]: source ?? InboxFileSourceCode.CustomerPortal,\n [InboxFileEntity.DateReceived]: formatDateToDateString(getUtcDate()),\n [InboxFileEntity.Company]: { \"@odata.id\": `${EntitySetName.Companies}(${context.getCompanyId()})` }\n });\n}\n\nexport function createInboxFilesFromNamedUploads(context: IAppContext, oData: OData, files: IUploadedFile[], reportProgress?: (cnt: number) => void): Promise {\n return createInboxFilesFromUploads(context, oData, files.map(item => item.file), files.map(item => item.name), reportProgress);\n}\n\nexport async function createInboxFilesFromUploads(context: IAppContext, oData: OData, files: File[], names?: string[], reportProgress?: (cnt: number) => void): Promise {\n const isCustomer = currentUserIsCustomer(context);\n const source = isCustomer ? InboxFileSourceCode.CustomerPortal : InboxFileSourceCode.UploadedByAccountant;\n let finishedCount = 0;\n const promises = files.map((f: File, idx: number) => {\n return createInboxFile(context, oData, f, (names?.[idx] ?? f.name), source)\n .then(() => reportProgress(++finishedCount));\n });\n await Promise.all(promises);\n}\n\nexport function getPaneData(definition: IDefinition, type: InboxFilter, entityType?: InboxEntityTypeCode): ISplitPagePaneData {\n return {\n def: getInboxTableDef(definition, type, entityType),\n entitySet: definition.entitySet as EntitySetName,\n customData: {\n type, entityType\n }\n };\n}\n\nexport function isSupportedFolderForDataMining(folder: string): boolean {\n return folder && ![InboxEntityTypeCode.CashReceiptsReceived, InboxEntityTypeCode.CashReceiptsIssued].includes(folder as InboxEntityTypeCode);\n}\n\nexport const getInboxFileContextMenuItems = (isReadOnly = false, status: ApprovalStatusTypeCode, canApproveInbox: boolean): ISelectItem[] => {\n const isPending = status === ApprovalStatusTypeCode.Pending;\n const showAction = isPending || [ApprovalStatusTypeCode.Canceled, ApprovalStatusTypeCode.NotNeeded].includes(status);\n return [\n ...(!isReadOnly && showAction ? [\n {\n id: InboxAction.AskForApproval,\n label: i18next.t(\"Inbox:TableView.AskForApproval\"),\n isDisabled: isPending || !canApproveInbox\n // iconName: \"Edit\"\n },\n {\n id: InboxAction.CancelApproval,\n label: i18next.t(\"Inbox:TableView.CancelApproval\"),\n isDisabled: !isPending\n // iconName: \"Edit\"\n }\n ] : [])\n ];\n};\n\ntype TInboxFileItemCounts = TRecordType;\n\nexport async function getFolderItemCounts(oData: OData, byStatuses?: ApprovalStatusTypeCode[], byEntities?: InboxEntityTypeCode[]): Promise {\n const filters = [];\n\n if (byEntities?.length) {\n const entityFilter = `${InboxFileEntity.EntityTypeCode} in (${transformToODataString(byEntities, ValueType.String)})`;\n filters.push(entityFilter);\n }\n if (byStatuses?.length) {\n const statusFilter = `(${InboxFileEntity.ApprovalStatusType} eq null OR ${InboxFileEntity.ApprovalStatusTypeCode} in (${transformToODataString(byStatuses, ValueType.String)}))`;\n filters.push(statusFilter);\n }\n const query = oData.getEntitySetWrapper(EntitySetName.InboxFiles).query()\n .filter(filters.join(\" and \"))\n .groupBy(InboxFileEntity.IsSorted, InboxFileEntity.EntityTypeCode)\n .aggregate(\"$count as @odata.count\");\n\n const fileStripItemsCounts: TInboxFileItemCounts = {};\n\n try {\n const res = await query.fetchData();\n\n if (res) {\n for (const item of res.value) {\n const type = (item.EntityTypeCode as InboxEntityTypeCode) ?? (item.IsSorted ? InboxFilter.Other : InboxFilter.Unsorted);\n fileStripItemsCounts[type] = item._metadata[\"\"].count;\n }\n }\n\n } catch (e) {\n logger.error(\"Fail to fetch item counts\", e);\n }\n\n return fileStripItemsCounts;\n}\n\nexport const hasInboxApprovers = async (oData: OData): Promise => {\n const query = oData.getEntitySetWrapper(EntitySetName.CompanySettings).query()\n .expand(CompanySettingEntity.InboxApprovers, (q) => q.select(UserEntity.Id))\n .top(1);\n\n const result = await query.fetchData();\n const companySettings = result.value?.[0];\n\n return companySettings?.InboxApprovers?.length > 0;\n};\n","import { fileNameFormatter, strongTextFormatter } from \"@components/fileUploader/File.utils\";\nimport { StatusIsdocIcon, StatusNoDataReadIcon, StatusRossumIcon } from \"@components/icon\";\nimport { emailFormatter } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { smartStrongTextFormatter, TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { ICellValueObject, TCellValue } from \"@components/table\";\nimport { EntitySetName, EntityTypeName, IInboxFileEntity, InboxFileEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ApprovalStatusTypeCode, InboxFileSourceCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { isRossumModuleActivated } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport { isFileRossumEligible } from \"@utils/Rossum.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IconSize, ODataFilterFunction, Sort, TextAlign } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { NoAttachmentText } from \"./Inbox.styles\";\nimport {\n getStatusTooltipFromApprovalStatus,\n IInboxTableCustomData,\n isSupportedFolderForDataMining\n} from \"./Inbox.utils\";\n\n\nfunction inboxFileNameFormatter(value: TValue, { entity }: IFormatOptions): TCellValue {\n let cell: ICellValueObject;\n if (!entity?.FileMetadata?.Id) {\n const text = i18next.t(\"Inbox:TableView.WithoutAttachment\");\n cell = {\n tooltip: text,\n value: (\n {text}\n )\n };\n } else {\n cell = fileNameFormatter(value);\n }\n const status = entity?.ApprovalStatusTypeCode as ApprovalStatusTypeCode;\n if (entity.IsSorted && [ApprovalStatusTypeCode.Rejected, ApprovalStatusTypeCode.Pending].includes(status)) {\n cell.tooltip = getStatusTooltipFromApprovalStatus(status);\n cell.onlyShowTooltipWhenChildrenOverflowing = false;\n }\n return cell;\n}\n\nconst dataRetrievalFormatter: TFormatterFn = (value: TValue, options: IFormatOptions): TCellValue => {\n const inboxFile = options.entity;\n const { FileMetadata } = inboxFile;\n const storage = options.storage as TSmartODataTableStorage;\n const showIcon = !inboxFile.IsSorted || isSupportedFolderForDataMining(inboxFile.EntityTypeCode);\n\n let titleKey, Icon;\n switch (true) {\n case showIcon && FileMetadata.IsIsdocReadable:\n titleKey = \"HasIsdoc\";\n Icon = StatusIsdocIcon;\n break;\n case showIcon && isRossumModuleActivated(storage) && isFileRossumEligible(FileMetadata):\n titleKey = \"HasRossum\";\n Icon = StatusRossumIcon;\n break;\n default:\n titleKey = \"NoDataRead\";\n Icon = StatusNoDataReadIcon;\n }\n\n const title = i18next.t(`Inbox:TableView.${titleKey}`);\n\n return {\n tooltip: title,\n value: \n };\n};\n\nexport function subjectFormatter(value: TValue, options: IFormatOptions): TCellValue {\n if (!value && [InboxFileSourceCode.CustomerPortal, InboxFileSourceCode.UploadedByAccountant].includes(options.entity?.InboxFileSourceCode)) {\n const subject = i18next.t(`Inbox:TableView.${options.entity?.InboxFileSourceCode}Subject`);\n return {\n tooltip: `${subject}`,\n value: (\n {subject}\n )\n };\n }\n return strongTextFormatter(value);\n}\n\nexport const InboxFilterId = \"Sender\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [InboxFilterId],\n filterDefinition: {\n /* Note: InboxTableView doesn't display real filterBar. But we use this definition\n to show custom fulltext filter */\n Sender: {\n id: InboxFilterId,\n isValueHelp: false,\n filterName: [\"\", `/FileMetadata/Name`],\n filter: {\n stringFilterFn: ODataFilterFunction.Contains\n }\n }\n }\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.InboxFile}Table`,\n columns: [\n \"FileMetadata/Name\", \"FileMetadata/IsIsdocReadable\", \"Sender\", \"DateReceived\", \"Subject\"\n ],\n columnDefinition: {\n \"FileMetadata/Name\": {\n formatter: inboxFileNameFormatter\n },\n \"FileMetadata/IsIsdocReadable\": {\n label: i18next.t(\"Inbox:TableView.DataRetrievalLabel\"),\n formatter: dataRetrievalFormatter,\n textAlign: TextAlign.Center,\n additionalProperties: [{ id: \"/EntityTypeCode\" }, { id: \"/FileMetadata/IsRossumReadable\" }]\n },\n Sender: {\n formatter: (value: TValue, opts: IFormatOptions) => {\n let name: string = null;\n if ([InboxFileSourceCode.UploadedByAccountant, InboxFileSourceCode.CustomerPortal].includes(opts.entity?.InboxFileSourceCode)) {\n name = opts.entity?.CreatedBy?.Name;\n }\n return emailFormatter(value, { customArgs: { name } });\n },\n additionalProperties: [{ id: \"/CreatedBy/Name\" }]\n },\n DateReceived: {\n formatter: smartStrongTextFormatter,\n additionalProperties: [{ id: \"/ApprovalStatusTypeCode\" }]\n },\n Subject: {\n formatter: subjectFormatter,\n additionalProperties: [{ id: \"/InboxFileSourceCode\" }]\n }\n },\n additionalProperties: [{ id: InboxFileEntity.IsSorted }],\n initialSortBy: [{\n id: \"DateReceived\", sort: Sort.Desc\n }],\n filterBarDef,\n preventStoreVariant: true\n };\n\n return {\n entitySet: EntitySetName.InboxFiles,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"Inbox\", \"Common\"];\nsetDefByEntityType(EntityTypeName.InboxFile, getDefinitions);\n","import { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n IInboxItemLogEntity,\n InboxItemLogEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { InboxFileSourceCode, InboxItemLogStateCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { Sort, ValueType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport DateType, { DateFormat } from \"../../types/Date\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { universalPersonNameFormatter } from \"../admin/users/Users.utils\";\n\n/**\n * On customer approval screen, we want only to see log of actions done on that screen.\n */\nfunction getCustomerApprovalLogFilter(): string {\n const states = [\n InboxItemLogStateCode.ApprovedByUser, InboxItemLogStateCode.RejectedByUser,\n InboxItemLogStateCode.ApprovementCanceledByUser, InboxItemLogStateCode.ApprovementResumedByUser,\n ];\n return `${InboxItemLogEntity.InboxItemLogStateCode} in (${transformToODataString(states, ValueType.String)})`;\n}\n\nexport function getInboxItemLogDefinition(isCustomerApproval: boolean): ISplitPageTableDef {\n\n const filter = isCustomerApproval ? getCustomerApprovalLogFilter() : null;\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n isValueHelp: true,\n defaultFilters: [\n InboxItemLogEntity.Name,\n InboxItemLogEntity.DateReceived,\n InboxItemLogEntity.InboxFileSource,\n InboxItemLogEntity.InboxItemLogState,\n InboxItemLogEntity.Sender,\n InboxItemLogEntity.Subject,\n InboxItemLogEntity.DateCreated,\n InboxItemLogEntity.CreatedBy\n ],\n filterDefinition: {\n [InboxItemLogEntity.Name]: {},\n [InboxItemLogEntity.DateReceived]: {},\n [InboxItemLogEntity.InboxFileSource]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [InboxItemLogEntity.InboxItemLogState]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [InboxItemLogEntity.Sender]: {},\n [InboxItemLogEntity.Subject]: {},\n DateCreated: {\n label: i18next.t(\"Inbox:Audit.DateCreated\")\n },\n ...withDisplayName(InboxItemLogEntity.CreatedBy, \"Name\", {\n label: i18next.t(\"Inbox:Audit.CreatedBy\")\n })\n }\n }];\n\n return {\n filterBarDef,\n additionalProperties: [\n { id: createPath(InboxItemLogEntity.User, UserEntity.FirstName) },\n { id: createPath(InboxItemLogEntity.User, UserEntity.LastName) },\n { id: InboxItemLogEntity.EntityType }\n ],\n initialSortBy: [{\n id: InboxItemLogEntity.DateCreated,\n sort: Sort.Desc\n }],\n filter,\n columns: [\n InboxItemLogEntity.Name,\n InboxItemLogEntity.DateReceived,\n InboxItemLogEntity.InboxFileSource,\n InboxItemLogEntity.InboxItemLogState,\n InboxItemLogEntity.Sender,\n InboxItemLogEntity.Subject,\n InboxItemLogEntity.DateCreated,\n InboxItemLogEntity.CreatedBy\n ],\n columnDefinition: {\n [InboxItemLogEntity.Name]: {},\n [InboxItemLogEntity.DateReceived]: {},\n [InboxItemLogEntity.InboxItemLogState]: {\n fieldSettings: {\n displayName: \"Name\"\n },\n formatter: (val: TValue, options: IFormatOptions) => {\n const entity = options.entity as IInboxItemLogEntity;\n const logState = entity.InboxItemLogStateCode;\n const text = val as string;\n const regex = /\\{0}/;\n\n switch (logState) {\n case InboxItemLogStateCode.ApprovedByUser:\n case InboxItemLogStateCode.RejectedByUser:\n case InboxItemLogStateCode.IncludedByUser:\n case InboxItemLogStateCode.ApprovementCanceledByUser:\n case InboxItemLogStateCode.ApprovementResumedByUser:\n case InboxItemLogStateCode.DeletedByUser:\n return text.replace(regex, universalPersonNameFormatter(entity.User));\n case InboxItemLogStateCode.IncludedIn:\n return text.replace(regex, entity.EntityType?.Name ?? i18next.t(\"Inbox:DotsLabel\"));\n case InboxItemLogStateCode.ApprovedAutomaticallyDeliveredFromTrustedAddress:\n return text.replace(regex, entity.Sender);\n case InboxItemLogStateCode.ApprovedAutomaticallyDeliveredFromCustomerPortal:\n return text.replace(regex, \"\");\n }\n\n return val as string;\n }\n },\n [InboxItemLogEntity.Sender]: {\n formatter: (val: TValue, options: IFormatOptions) => {\n const entity = options.entity as IInboxItemLogEntity;\n\n if (entity.InboxFileSourceCode === InboxFileSourceCode.Email) {\n return val as string;\n }\n\n return \"\";\n }\n },\n [InboxItemLogEntity.Subject]: {},\n ...withDisplayName(InboxItemLogEntity.InboxFileSource, \"Name\"),\n DateCreated: {\n label: i18next.t(\"Inbox:Audit.DateCreated\"),\n formatter: (val: TValue) => {\n return DateType.localFormat(val as Date, DateFormat.dateAndTime);\n }\n },\n ...withDisplayName(InboxItemLogEntity.CreatedBy, \"Name\", {\n label: i18next.t(\"Inbox:Audit.CreatedBy\")\n })\n },\n id: `${EntityTypeName.InboxItemLog}Table`,\n title: i18next.t(\"Audit:AuditTrail\"),\n entitySet: EntitySetName.InboxItemLogs,\n preventStoreVariant: true\n };\n}","import React, { PureComponent } from \"react\";\nimport FileStrip, { IFileStripProps } from \"../../fileStrip/FileStrip\";\nimport { IFileStripItem } from \"../../fileStrip/FileStrip.utils\";\nimport CustomizationDialog from \"../smartFilterBar/CustomizationDialog\";\nimport { ICheckboxGroupChange } from \"../../inputs/checkboxGroup/CheckboxGroup\";\nimport { getDefaultVisibleItems } from \"@pages/inbox/Inbox.utils\";\nimport { AppContext, IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { OData } from \"@odata/OData\";\nimport { InboxEntityTypeCode } from \"@odata/GeneratedEnums\";\n\n\ninterface IProps extends Pick {\n dialogTitle: string;\n oData: OData;\n}\n\ninterface IState {\n visibleFolders?: string[]; // folders actually visible in the strip\n selectedItems?: string[]; // folders selected in the customization dialog\n showAddDialog?: boolean;\n}\n\nexport class SmartFileStrip extends PureComponent {\n static contextType = AppContext;\n\n state: IState = {\n visibleFolders: null,\n selectedItems: [],\n };\n\n componentDidMount() {\n this.loadData(this.context);\n }\n\n loadData = async (context: IAppContext): Promise => {\n const settings = context.getData()?.personalizationSettings;\n let visibleFolders = settings?.selectedInboxFolders as InboxEntityTypeCode[];\n if (!visibleFolders) {\n visibleFolders = await getDefaultVisibleItems(context, this.props.oData);\n }\n\n this.setState({\n visibleFolders,\n });\n };\n\n getVisibleFolderItems(selectedIds: string[]): IFileStripItem[] {\n return this.props.items?.filter(item => item.isRequired || selectedIds?.includes(item.id)) ?? [];\n }\n\n getCustomizableItems(): IFileStripItem[] {\n return this.props.items\n .filter(item => !item.isRequired);\n }\n\n handleAddItems = (): void => {\n this.setState((currentState) => ({\n selectedItems: this.getCustomizableItems()\n .filter(item => currentState.visibleFolders?.includes(item.id))\n .map(item => item.id) ?? [],\n showAddDialog: true\n }));\n };\n\n handleFolderCustomization = (args: ICheckboxGroupChange): void => {\n this.setState({ selectedItems: args.values });\n };\n\n handleClose = (): void => {\n this.setState({ showAddDialog: false });\n };\n\n handleConfirm = (): void => {\n // InboxLocalSettings.set(SettingsId, { selectedFolders: this.state.selectedItems });\n this.context.changePersonalizationSetting(\"selectedInboxFolders\", this.state.selectedItems);\n\n if (!this.state.selectedItems.includes(this.props.selectedId)) {\n this.props.onSelectionChange?.(null);\n }\n\n this.setState((state) => ({\n visibleFolders: this.getVisibleFolderItems(state.selectedItems).map(item => item.id),\n selectedItems: [],\n showAddDialog: false\n }));\n };\n\n renderCustomizationDialog(): React.ReactElement {\n return ;\n }\n\n render() {\n const { dialogTitle, items, ...passProps } = this.props;\n const { visibleFolders } = this.state;\n const isLoaded = visibleFolders !== null;\n return (\n <>\n {isLoaded &&\n }\n {this.state.showAddDialog && this.renderCustomizationDialog()}\n \n );\n }\n}","import React from \"react\";\nimport { Bubble, BubbleIconWrapper, BubbleWrapper } from \"@components/splitLayout/SplitLayout.styles\";\nimport { IconSize } from \"../../enums\";\nimport { getIcon } from \"@components/icon\";\nimport { InboxFakeSplitterStyled } from \"./Inbox.styles\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n onClick: () => void;\n iconName: string;\n}\n\nconst InboxFakeSplitter: React.FC = ({ iconName, onClick }) => {\n const Icon = getIcon(iconName);\n return (\n \n \n \n \n {Icon &&\n \n }\n \n \n \n \n );\n};\n\nexport default InboxFakeSplitter;","import React, { useCallback, useState } from \"react\";\nimport { InboxFileDetailStyled } from \"./Inbox.styles\";\nimport CustomResizeObserver from \"../../components/customResizeObserver\";\n\ninterface IProps {\n children: (width: number, height: number) => React.ReactElement;\n}\n\ninterface ISize {\n width?: number;\n height?: number;\n}\n\nconst InboxFileDetailLayout: React.FC = ({ children }) => {\n const [size, setSize] = useState({});\n\n const _recalculate = useCallback((width: number, height: number) => {\n width = Math.floor(width);\n height = Math.floor(height);\n if (width && height && (width !== size.width || height !== size.height)) {\n setSize({ width, height });\n }\n }, [size, setSize]);\n\n const setRef = useCallback((node: HTMLDivElement) => {\n if (node !== null) {\n const { width, height } = node.getBoundingClientRect();\n _recalculate(width, height);\n }\n }, [_recalculate]);\n\n const handleResize = useCallback((entries: readonly ResizeObserverEntry[]) => {\n const { width, height } = entries?.[0]?.contentRect ?? {};\n _recalculate(width, height);\n }, [_recalculate]);\n\n return (\n \n {children(size.width, size.height)}\n \n \n );\n};\n\nexport default InboxFileDetailLayout;\n","import styled from \"styled-components/macro\";\nimport Clickable from \"../clickable\";\n\n\nexport const TextExpandableStyled = styled.div`\n`;\n\nexport const ClickableStyled = styled(Clickable)`\n margin-left: .5em;\n`;","import React, { useCallback, useState } from \"react\";\nimport { ClickableStyled, TextExpandableStyled } from \"./TextExpandable.styles\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps {\n maxLength?: number;\n text: string;\n onMouseEnter?: (event: React.MouseEvent) => void;\n onMouseLeave?: (event: React.MouseEvent) => void;\n}\n\nconst TextExpandable = React.forwardRef(({ maxLength, text, ...pass }, ref) => {\n const { t } = useTranslation(\"Components\");\n const [isExpanded, expand] = useState(false);\n const ellipsis = \"...\";\n const isExpandable = text.length > maxLength;\n\n const isShortened = isExpandable && !isExpanded;\n const renderedText = isShortened ? `${text.slice(0, maxLength)}${ellipsis}` : text;\n\n const handleToggle = useCallback(() => {\n expand(!isExpanded);\n }, [expand, isExpanded]);\n\n return (\n \n {renderedText}\n {isExpandable &&\n \n {t(`Components:TextExpandable.${isExpanded ? \"HideText\" : \"ShowWholeText\"}`)}\n \n }\n \n );\n});\n\nexport default TextExpandable;","import { doesElementContainsElement } from \"@utils/general\";\nimport { delay } from \"lodash\";\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport TestIds from \"../../testIds\";\nimport DateType from \"../../types/Date\";\nimport TextExpandable from \"../textExpandable/TextExpandable\";\nimport { CenteredIcon, Header, MessageContentWrapper, MessageIconWrapper, StyledMessage } from \"./Chat.styles\";\n\n\nexport interface IChatMessageProps {\n icon: React.ReactNode;\n created?: Date;\n createdBy?: string;\n hasIconBorder?: boolean;\n hasDisabledIcon?: boolean;\n hasSolidBorder?: boolean;\n text?: string;\n wrapContent?: boolean;\n align?: 'bottom';\n testId?: string;\n}\n\n\nconst Message: React.FC = (props) => {\n const {\n icon,\n hasIconBorder,\n hasDisabledIcon,\n hasSolidBorder,\n created,\n createdBy,\n wrapContent,\n align,\n text,\n testId\n } = props;\n const [isVisible, show] = useState(false);\n const textRef = useRef();\n const timer = useRef();\n\n const handleMouseEnter = useCallback((event: React.MouseEvent) => {\n timer.current = delay(show, 1000, true);\n }, [show]);\n\n const handleMouseLeave = useCallback((event: React.MouseEvent) => {\n if (!doesElementContainsElement(textRef.current, event.relatedTarget as Element)) {\n clearTimeout(timer.current);\n show(false);\n }\n }, [show]);\n\n let content = props.children ?? (\n \n );\n \n if (wrapContent !== false) {\n content = (\n \n {content}\n \n );\n }\n\n return (\n \n \n {icon}\n \n {content}\n {(created || createdBy) &&\n {DateType.localFormat(created, DateType.defaultDateTimeFormat)} ({createdBy})}\n \n );\n};\n\nexport default Message;\n","import React, { useCallback } from \"react\";\nimport { StyledTextInDialog } from \"./Inbox.styles\";\nimport { useConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport Clickable from \"../../components/clickable\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps {\n text: string;\n}\n\nconst LinkWithTextInDialog: React.FC = ({ text }) => {\n const dialog = useConfirmationDialog();\n const { t } = useTranslation(\"Inbox\");\n\n const title = t(\"EmailText.Title\");\n\n const handleOpen = useCallback(() => {\n const hasText = !!text;\n const contents = hasText ? text : t(\"EmailText.Empty\");\n dialog.open({\n content: (\n {contents}\n ),\n allowCancel: false,\n confirmText: t(\"EmailText.Close\"),\n dialogProps: {\n title,\n removePadding: true\n }\n });\n }, [dialog, text, title, t]);\n\n return (\n {title}\n );\n};\n\nexport default LinkWithTextInDialog;\n","import { ColoredIcon, EmailIcon } from \"@components/icon\";\nimport React from \"react\";\n\nimport Message from \"../../components/chat/Message\";\nimport LinkWithTextInDialog from \"./LinkWithTextInDialog\";\n\ninterface IProps {\n text: string;\n createdBy?: string;\n created?: Date;\n}\n\nconst EmailBodyMessage: React.FC = ({ text, created,createdBy }) => {\n return (\n } createdBy={createdBy} created={created}>\n \n \n );\n};\n\nexport default EmailBodyMessage;","import React, { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport {\n ButtonGroupStyled,\n EditableTextStyled,\n HALF_ICON_SIZE,\n ICON_SIZE,\n MessageStreamWrapper,\n NewMessageWrapper,\n StyledChat,\n ToggleButton\n} from \"./Chat.styles\";\nimport { useTranslation } from \"react-i18next\";\nimport { CaretIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport Message from \"./Message\";\nimport { IEditableTextChangeEvent } from \"../inputs/editableText\";\nimport { Button } from \"../button\";\nimport { ScrollBar } from \"../scrollBar\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport SimpleBar from \"simplebar-react\";\nimport { getMessageIcon } from \"@pages/tickets/Tickets.utils\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { currentUserIsCustomer } from \"@pages/admin/users/Users.utils\";\nimport TestIds from \"../../testIds\";\n\n\ninterface IProps {\n currentValue: string;\n onChange: (value: string) => void;\n onSendMessage?: () => void;\n placeholder?: string;\n customButtons?: React.ReactNode;\n maxHeight?: number;\n isDisabled?: boolean;\n hideNewMessage?: boolean;\n}\n\nconst Chat: React.FC = (props) => {\n const { isDisabled, currentValue, onChange, onSendMessage, placeholder, customButtons, hideNewMessage } = props;\n const { t } = useTranslation(\"Components\");\n\n const context = useContext(AppContext);\n\n const [maxHeight, setMaxHeight] = useState(0);\n const [minHeight, setMinHeight] = useState(0);\n const [isCollapsed, collapse] = useState(true);\n let childMessagesCnt = 0;\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n childMessagesCnt++;\n }\n });\n const isCollapsible = childMessagesCnt > 1;\n\n const scrollRef = useRef();\n\n const _getMessagesHeight = () => {\n let height = maxHeight;\n if (isCollapsed) {\n height = minHeight;\n } else if (props.maxHeight) {\n height = Math.min(props.maxHeight, maxHeight);\n }\n return height ? `${height}px` : \"100%\";\n };\n\n const _recalculateSize = useCallback((): void => {\n const list = scrollRef.current.getContentElement();\n const { height: calcMaxHeight } = list.getBoundingClientRect();\n const lastItem = list.children[list.children.length - 1];\n const { height: calcMinHeight } = lastItem.getBoundingClientRect();\n\n if (calcMaxHeight !== maxHeight || calcMinHeight !== minHeight) {\n setMaxHeight(calcMaxHeight);\n setMinHeight(calcMinHeight);\n }\n }, [minHeight, setMinHeight, maxHeight, setMaxHeight]);\n\n const handleToggle = useCallback(() => {\n collapse(!isCollapsed);\n }, [isCollapsed, collapse]);\n\n const handleChange = useCallback((event: IEditableTextChangeEvent) => {\n onChange(event.value);\n }, [onChange]);\n\n useEffect(() => {\n _recalculateSize();\n });\n\n useEffect(() => {\n if (isCollapsed) {\n const scrollEl = scrollRef.current.getScrollElement();\n scrollEl.scrollTop = scrollEl.scrollHeight;\n }\n }, [maxHeight, isCollapsed]);\n\n const hideChatBorder = hideNewMessage && !isCollapsible;\n\n return (\n \n {!hideChatBorder &&\n \n \n }\n \n \n \n {props.children}\n \n \n {!hideNewMessage &&\n \n \n \n \n {customButtons || (\n \n )}\n \n \n }\n \n );\n};\n\nexport default Chat;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { IInboxFileEntity, IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ApprovalStatusTypeCode } from \"@odata/GeneratedEnums\";\nimport { isDefined } from \"@utils/general\";\nimport React, { useCallback, useContext, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Button } from \"../../components/button\";\nimport Chat from \"../../components/chat/Chat\";\nimport Message from \"../../components/chat/Message\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { Status } from \"../../enums\";\nimport { isAgendaCustomer } from \"../admin/users/Users.utils\";\nimport { getMessageIcon } from \"../tickets/Tickets.utils\";\nimport EmailBodyMessage from \"./EmailBodyMessage\";\nimport { getApprovalStatus } from \"./Inbox.utils\";\n\n\ninterface IProps {\n isAgendaCustomer?: boolean;\n file: IInboxFileEntity;\n maxHeight?: number;\n showEmailText?: boolean;\n onCreateMessage?: (message: string, status: ApprovalStatusTypeCode) => Promise;\n}\n\nfunction getName(user: IUserEntity) {\n return user.Name ?? [user.FirstName, user.LastName].filter(isDefined).join(' ');\n}\n\nconst InboxChat: React.FC = ({\n file,\n maxHeight,\n onCreateMessage,\n isAgendaCustomer: _isAgendaCustomer,\n showEmailText\n }) => {\n const [newMessage, setNewMessage] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const { t, ready: tReady } = useTranslation(\"Inbox\");\n\n const context = useContext(AppContext);\n\n const handleSendMessage = useCallback(async (status?: ApprovalStatusTypeCode) => {\n setBusy(true);\n const success = await onCreateMessage(newMessage, status);\n if (success) {\n setNewMessage(\"\");\n }\n setBusy(false);\n }, [onCreateMessage, newMessage]);\n\n const handleAskForApproval = useCallback(() => {\n handleSendMessage(ApprovalStatusTypeCode.Pending);\n }, [handleSendMessage]);\n\n const handleReject = useCallback(() => {\n handleSendMessage(ApprovalStatusTypeCode.Rejected);\n }, [handleSendMessage]);\n\n const handleApprove = useCallback(async () => {\n handleSendMessage(ApprovalStatusTypeCode.Approved);\n }, [handleSendMessage]);\n\n const hoverAlert = useMemo((): IAlertProps => ({\n status: Status.Warning,\n title: t(\"Inbox:Chat.RejectReason\"),\n isSmall: true\n }), [t, tReady]);\n\n const status = getApprovalStatus(file);\n let customButtons;\n switch (status) {\n case ApprovalStatusTypeCode.Pending:\n customButtons = _isAgendaCustomer && (<>\n \n \n );\n break;\n case ApprovalStatusTypeCode.Rejected:\n customButtons = !_isAgendaCustomer && (\n \n );\n break;\n }\n\n const hideNewMessage = !customButtons;\n\n return (\n \n {showEmailText && }\n {file.Communications?.map((message, idx) => {\n const _isAgendaMessage = isAgendaCustomer(context, message.CreatedBy);\n return (\n \n );\n })}\n \n );\n};\n\nexport default InboxChat;\n","import React from \"react\";\nimport { IInboxFileEntity } from \"@odata/GeneratedEntityTypes\";\nimport { fileNameToMime } from \"@components/fileUploader/File.utils\";\nimport {\n createInboxFileMessage,\n handleDeleteFile,\n handleRenameInboxFile,\n IInboxTableCustomData,\n InboxFilter,\n loadInboxFileDetail\n} from \"./Inbox.utils\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport { FileToolbarItem, getFileViewer, IFileViewerProps } from \"@components/fileViewers/FileViewers.utils\";\nimport { FILES_API_URL } from \"../../constants\";\nimport FileRenameWriteLine from \"../../views/fileView/FileRenameWriteLine\";\nimport InboxFileDetailLayout from \"./InboxFileDetailLayout\";\nimport EmailBodyMessage from \"./EmailBodyMessage\";\nimport InboxChat from \"./InboxChat\";\nimport { ISmartODataTableAPI } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { withConfirmationDialog, WithConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { currentUserIsCustomer } from \"../admin/users/Users.utils\";\nimport { ApprovalStatusTypeCode, InboxFileSourceCode } from \"@odata/GeneratedEnums\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { AlertPosition } from \"@components/alert/Alert\";\nimport { Status } from \"../../enums\";\n\nexport interface IProps extends WithConfirmationDialog, WithAlert {\n storage: TableStorage;\n bindingContext: BindingContext;\n onAfterRemoveFiles?: (bcs: BindingContext[]) => void;\n}\n\ninterface IState {\n fileData: IInboxFileEntity;\n}\n\nclass InboxFileDetail extends React.PureComponent {\n\n constructor(props: IProps) {\n super(props);\n\n this.loadFileDetail();\n }\n\n componentDidUpdate(prevProps: IProps) {\n if (prevProps.bindingContext?.getKey() !== this.props.bindingContext?.getKey()) {\n this.loadFileDetail();\n }\n }\n\n get type(): InboxFilter {\n return this.props.storage.getCustomData().type;\n }\n\n get inboxFile(): IInboxFileEntity {\n return this.state?.fileData;\n }\n\n get selectedFileHasContents(): boolean {\n return !!this.inboxFile?.FileMetadata?.Id;\n }\n\n currentUserIsCustomer = memoizeOne(() => {\n return currentUserIsCustomer(this.props.storage.context);\n });\n\n loadFileDetail = async (): Promise => {\n const fileData = await this.getFileDetail();\n this.setState({ fileData });\n };\n\n handleSelectedFileRemove = async (): Promise => {\n const bc = this.props.bindingContext;\n if (await handleDeleteFile(this.props.storage, this.props.confirmationDialog, bc)) {\n this.props.onAfterRemoveFiles?.([bc]);\n }\n };\n\n // inboxFileData enhanced with detail information, communication, etc...\n getFileDetail(): Promise {\n return loadInboxFileDetail(this.props.bindingContext, this.props.storage.oData);\n }\n\n getFileViewer = memoizeOne((): React.ReactElement => {\n const mime = this.inboxFile.FileMetadata?.Name && fileNameToMime(this.inboxFile.FileMetadata.Name);\n const src = this.inboxFile.FileMetadata?.Id && `${FILES_API_URL}/${this.inboxFile.FileMetadata?.Id}`;\n const hiddenItems = [FileToolbarItem.Dashboard];\n if (!src) {\n hiddenItems.push(FileToolbarItem.Download);\n }\n\n const props: IFileViewerProps = {\n src,\n hiddenItems,\n isReadOnly: false,\n onFileRemove: this.handleSelectedFileRemove\n };\n\n return (\n getFileViewer(mime, props)\n );\n }, () => [this.inboxFile]);\n\n handleFileNameChangeConfirm = async (newName: string): Promise => {\n if (!newName) {\n return false;\n }\n\n if (await handleRenameInboxFile(this.props.storage, this.props.bindingContext, newName)) {\n this.inboxFile.FileMetadata.Name = newName;\n return true;\n }\n return false;\n };\n\n handleCreateMessage = async (message: string, status?: ApprovalStatusTypeCode): Promise => {\n const { storage, bindingContext } = this.props;\n const newStatus = (status ?? this.state.fileData.ApprovalStatusTypeCode) as ApprovalStatusTypeCode;\n const result = await createInboxFileMessage(storage.oData, bindingContext, message, newStatus);\n if (!result) {\n // show error message\n // todo: ...\n this.props.setAlert({\n status: Status.Error,\n title: this.props.storage.t(\"Common:General.Error\")\n });\n return false;\n }\n const promises = [storage.tableAPI.reloadTable()];\n if (status && [ApprovalStatusTypeCode.Approved, ApprovalStatusTypeCode.Rejected].includes(status)) {\n this.props.onAfterRemoveFiles([bindingContext]);\n } else {\n await this.loadFileDetail();\n }\n await Promise.all(promises);\n return true;\n };\n\n renderFileNameChange(): React.ReactNode {\n return (\n \n );\n }\n\n render() {\n const isUnsorted = this.type === InboxFilter.Unsorted;\n\n if (!this.inboxFile) {\n return (\n \n );\n }\n\n const showEmailText = this.inboxFile.InboxFileSourceCode === InboxFileSourceCode.Email;\n\n return (<>\n \n {(width: number, height: number) => width && height && (<>\n {this.selectedFileHasContents && this.renderFileNameChange()}\n {this.getFileViewer()}\n {isUnsorted\n ? (showEmailText && )\n : \n }\n )}\n \n {this.props.alert}\n );\n }\n}\n\nexport default withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom\n})(withConfirmationDialog(InboxFileDetail));\n","import React from \"react\";\nimport { AntAnimStyled, NoPreviewStyled, NoPreviewTextStyled } from \"./FileViewers.styles\";\nimport TestIds from \"../../testIds\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps {\n text: string;\n}\n\nconst NoPreviewAnt: React.FC = ({ text }) => {\n const { t } = useTranslation(\"Components\");\n\n return (\n \n \n \n {text ?? t(\"Components:FileViewers.NoPreviewText\")}\n \n \n );\n};\n\nexport default NoPreviewAnt;","import React from \"react\";\nimport { MultipleFileSelectionWrapper } from \"./Inbox.styles\";\nimport NoPreviewAnt from \"../../components/fileViewers/NoPreviewAnt\";\nimport i18next from \"i18next\";\n\ninterface IProps {\n count: number;\n}\n\nconst InboxMultipleFilesSelected: React.FC = ({ count }) => {\n return (\n \n \n \n );\n};\n\nexport default InboxMultipleFilesSelected;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { getFileContextMenuItems } from \"@components/fileUploader/File.utils\";\nimport { GroupDividerSize, ISelectGroup, ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { getRow, updateRowsArray } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { IInboxFileEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ApprovalStatusTypeCode, GeneralPermissionCode, InboxEntityTypeCode } from \"@odata/GeneratedEnums\";\nimport { doesElementContainsElement } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport FileUploadButton from \"../../components/fileUploadButton/FileUploadButton\";\nimport FileDropArea from \"../../components/fileUploader/FileDropArea\";\nimport FileInfoDialog, { IFileInfoDialogDataProps } from \"../../components/fileUploader/FileInfoDialog\";\nimport FileRenameDialog from \"../../components/fileUploader/FileRenameDialog\";\nimport { SmartTable } from \"../../components/smart/smartTable/SmartTable\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FileAction, RowAction, Status, ToolbarItemType } from \"../../enums\";\nimport { IModifierKeys, TValue } from \"../../global.types\";\nimport BindingContext, { createBindingContext } from \"../../odata/BindingContext\";\nimport { AUDIT_TRAIL, ROUTE_INBOX, ROUTE_INBOX_CUSTOMER_APPROVAL } from \"../../routes\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport memoize from \"../../utils/memoize\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { SmartHeaderStyled } from \"../../views/formView/FormView.styles\";\nimport { ICustomButtonDefArgs, TableButtonsAction, TableButtonsActionType } from \"../../views/table/TableToolbar.utils\";\nimport TableView, {\n IHandleCustomActionArgs,\n ITableViewBaseProps,\n ITableViewBaseState\n} from \"../../views/table/TableView\";\nimport { getConfirmationActionText } from \"../../views/table/TableView.render.utils\";\nimport { createCustomTableToolbarItem } from \"../../views/table/TableView.utils\";\nimport { currentUserIsCustomer } from \"../admin/users/Users.utils\";\nimport { ProgressBarStyled, TableWrapperStyled } from \"./Inbox.styles\";\nimport {\n approveInboxFiles,\n changeInboxFileApprovalStatus,\n createInboxFilesFromUploads,\n getApprovalStatus,\n getEntityTypeFileStripItems,\n getInboxFile,\n getInboxFileContextMenuItems,\n getSearchBoxToolbarItem,\n getStatusFromApprovalStatus,\n getStatusTooltipFromApprovalStatus,\n handleDeleteFile,\n handleRenameInboxFile,\n hasInboxApprovers,\n IAttachFileResult,\n IInboxTableCustomData,\n INBOX_ACTIONS_GROUP_ID,\n InboxAction,\n InboxFilter,\n isRowWithFile,\n loadInboxFileDetail,\n SEARCH_ID\n} from \"./Inbox.utils\";\nimport { InboxFilterId } from \"./InboxDef\";\n\nexport const COMPLETE_ACTION_ID = \"Complete\";\nexport const APPROVE_ACTION_ID = \"Approve\";\nexport const UPLOAD_ACTION_ID = \"UploadInboxFile\";\n\nexport interface IInboxTableViewProps extends ITableViewBaseProps, WithBusyIndicator, WithConfirmationDialog, WithPermissionContext {\n selectedRows?: BindingContext[];\n\n onDragStart?: (selectedRows: BindingContext[], fileNames: string[], event: React.DragEvent) => void;\n onDragEnter?: () => void;\n onDragLeave?: () => void;\n onDrop?: (event: React.DragEvent) => void;\n onContextMenu?: (selectedRows: BindingContext[], item: ISelectItem) => void;\n onAttachFiles?: (inboxFiles: TId[]) => Promise;\n onAfterRemoveFiles?: (bcs: BindingContext[]) => void;\n onAfterUpdateFile?: () => void;\n isDragging?: boolean;\n // when used inside editableWindow dialog, actions should always be preselected\n inEditableWindow?: boolean;\n folderId?: string;\n\n supportedEntities: InboxEntityTypeCode[];\n}\n\ninterface IState extends ITableViewBaseState {\n isDraggingSource?: boolean;\n fileInfoMetadata?: IFileInfoDialogDataProps;\n renameFile?: BindingContext;\n sendCount?: number;\n doneCount?: number;\n canApproveInboxFiles?: boolean;\n}\n\nconst defaultState: IState = {\n isDraggingSource: false\n};\n\nclass InboxTableView extends TableView {\n _tableWrapperRef = React.createRef();\n _viewRef = React.createRef();\n\n constructor(props: IInboxTableViewProps) {\n super(props);\n\n this.handleCustomAction = this.handleCustomAction.bind(this);\n\n this.state = {\n ...this.state,\n ...defaultState\n };\n }\n\n isCustomerUser = memoizeOne(() => currentUserIsCustomer(this.props.storage.context),\n () => [this.props.storage.context]);\n\n get type(): InboxFilter {\n return this.props.storage.getCustomData().type;\n }\n\n get entityType(): InboxEntityTypeCode {\n return this.props.storage.getCustomData().entityType;\n }\n\n get isApproval(): boolean {\n return this.type === InboxFilter.ForApprove;\n }\n\n get isUnsorted(): boolean {\n return InboxFilter.Unsorted === this.type;\n }\n\n get shouldRenderBreadcrumbs(): boolean {\n return !this.props.inEditableWindow;\n }\n\n get isTableEmpty() {\n return !this.props.storage.tableAPI?.getState().rowCount;\n }\n\n get searchFilterString(): string {\n return this.props.storage.getAdditionalFieldData(this.filterBc, \"parsedValue\") as string;\n }\n\n get isFilteredBySearch() {\n return !!this.searchFilterString;\n }\n\n get completionButton(): IToolbarItem {\n const action = this.getTableAction();\n return createCustomTableToolbarItem({\n tableAction: action,\n id: COMPLETE_ACTION_ID,\n iconName: \"AddTo\",\n label: this.getConfirmTextLabel(COMPLETE_ACTION_ID),\n forceDisabled: this.isTableEmpty\n });\n }\n\n get showCompletionButton(): boolean {\n return !!this.props.onAttachFiles;\n }\n\n get approvalButton(): IToolbarItem {\n const action = this.getTableAction();\n return createCustomTableToolbarItem({\n tableAction: action,\n id: APPROVE_ACTION_ID,\n iconName: \"Confirm\",\n label: this.getConfirmTextLabel(APPROVE_ACTION_ID),\n forceDisabled: this.isTableEmpty || !this.isCustomerUser()\n });\n }\n\n get isDragging(): boolean {\n return this.state.isDraggingSource && this.props.isDragging;\n }\n\n get shouldHandleDragOver(): boolean {\n return this.props.onDrop && !this.state.isDraggingSource;\n }\n\n // InboxTableView is never draftView\n isDraftView = (): boolean => {\n return false;\n };\n\n componentDidMount() {\n super.componentDidMount();\n document.addEventListener(\"click\", this.handleDocumentClick);\n\n this.loadInboxApprovers();\n\n this.setViewBreadcrumbs();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (prevProps.isDragging !== this.props.isDragging && !this.props.isDragging && this.state.isDraggingSource) {\n // dragging can be turned off from \"outside\"\n this.setState({ isDraggingSource: false });\n }\n\n if (prevProps.folderId !== this.props.folderId) {\n this.setTableAction(null);\n }\n\n this.setViewBreadcrumbs();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n document.removeEventListener(\"click\", this.handleDocumentClick);\n }\n\n shouldComponentUpdate(nextProps: IInboxTableViewProps, nextState: IState): boolean {\n return this.props.isDragging !== nextProps.isDragging\n || this.state.fileInfoMetadata !== nextState.fileInfoMetadata\n || this.state.renameFile !== nextState.renameFile\n || this.state.sendCount !== nextState.sendCount\n || this.state.doneCount !== nextState.doneCount\n || this.props.folderId !== nextProps.folderId\n || this.props.selectedRows !== nextProps.selectedRows;\n }\n\n setViewBreadcrumbs(): void {\n const key = `Inbox_${this.type}`;\n let link: string;\n let title: string;\n\n switch (this.type) {\n case InboxFilter.Other:\n title = \"Inbox:DotsLabel\";\n link = InboxFilter.Other;\n break;\n case InboxFilter.Entity:\n link = this.entityType;\n title = `Inbox:Folder.${link}`;\n break;\n case InboxFilter.Unsorted:\n case InboxFilter.ForApprove:\n // No view breadcrumbs\n break;\n }\n\n this.props.storage.context.setViewBreadcrumbs({\n items: title ? [{ key, title: i18next.t(title), link: `${ROUTE_INBOX}/${link}` }] : [],\n lockable: false\n });\n }\n\n loadInboxApprovers = async () => {\n const canApproveInboxFiles = await hasInboxApprovers(this.props.storage.oData);\n this.setState({ canApproveInboxFiles });\n };\n\n getToolbarButtons(): TableButtonsActionType[] {\n if (this.props.inEditableWindow) {\n return [];\n }\n const buttons = this.isApproval ? [APPROVE_ACTION_ID] : [TableButtonsAction.Remove];\n if (this.isUnsorted) {\n buttons.push(UPLOAD_ACTION_ID);\n }\n return buttons;\n }\n\n getConfirmTextLabel = (action: TableButtonsActionType) => {\n let key: string;\n switch (action) {\n case APPROVE_ACTION_ID:\n key = \"Approve\";\n break;\n case COMPLETE_ACTION_ID:\n key = this.type === InboxFilter.Entity ? \"Complete\" : \"Attach\";\n break;\n }\n return this.props.storage.t(`Inbox:TableView.${key}`).toString();\n };\n\n getConfirmText = (tableAction: TableButtonsAction | string): string | React.ReactElement => {\n if ([COMPLETE_ACTION_ID, APPROVE_ACTION_ID].includes(tableAction)) {\n const count = this.props.storage.tableAPI?.getState().activeRows.size ?? 0;\n return getConfirmationActionText(this.getConfirmTextLabel(tableAction), count);\n }\n\n return super.getConfirmText(tableAction);\n };\n\n getContextMenuGroups = memoizeOne((): ISelectGroup[] => {\n return [\n { id: SelectGroups.Default },\n { id: INBOX_ACTIONS_GROUP_ID, dividerSize: GroupDividerSize.Small },\n { id: SelectGroups.Action }\n ];\n });\n\n getContextMenuItems = () => {\n const contextMenuItems: ISelectItem[] = [];\n const { selectedRows, storage } = this.props;\n const isBasicInboxTableView = !this.isApproval && !this.props.inEditableWindow;\n\n if (this.getTableAction()) {\n // no context menu items when table action is active\n return contextMenuItems;\n }\n\n if (storage.tableAPI && selectedRows?.length <= 1) {\n const rowBc = selectedRows?.[0];\n let hasFileContents = true;\n let approvalStatus: ApprovalStatusTypeCode = null;\n if (rowBc) {\n const rowProps = getRow(storage.tableAPI.getState().rows, rowBc);\n hasFileContents = isRowWithFile(rowProps);\n approvalStatus = getApprovalStatus(getInboxFile(rowProps));\n }\n if (isBasicInboxTableView) {\n contextMenuItems.push(...getInboxFileContextMenuItems(false, approvalStatus, this.state.canApproveInboxFiles).map(item => ({\n ...item,\n groupId: INBOX_ACTIONS_GROUP_ID\n })));\n }\n contextMenuItems.push(...getFileContextMenuItems(false, hasFileContents).map(item => ({\n ...item,\n groupId: SelectGroups.Action\n })));\n }\n\n if (isBasicInboxTableView) {\n const allFolderItems = getEntityTypeFileStripItems(this.props.supportedEntities, false);\n\n let removeId: string;\n switch (this.type) {\n case InboxFilter.Other:\n removeId = InboxFilter.Other;\n break;\n case InboxFilter.Entity:\n removeId = this.entityType;\n break;\n }\n const folderItems = (removeId ? allFolderItems.filter(item => item.id !== removeId) : allFolderItems)\n .map(item => ({ ...item, groupId: SelectGroups.Default }));\n contextMenuItems.push(...folderItems);\n }\n\n return contextMenuItems;\n };\n\n customToolbarContent = (): IToolbarItem[] => [\n getSearchBoxToolbarItem(this.searchFilterString),\n this.showCompletionButton && this.completionButton,\n this.isApproval && this.approvalButton\n ].filter(i => i);\n\n getCustomButtonDef = (action: TableButtonsActionType, args: ICustomButtonDefArgs): IToolbarItem => {\n if (UPLOAD_ACTION_ID === action) {\n return {\n id: UPLOAD_ACTION_ID,\n itemType: ToolbarItemType.Custom,\n render: () => (\n \n )\n };\n }\n return null;\n };\n\n // InboxFileData loaded through the table config\n getInboxFileById(rowId: TId): IInboxFileEntity {\n const tableState = this.props.storage.tableAPI.getState();\n const row = getRow(tableState.rows, rowId);\n return row.customData.entity as IInboxFileEntity;\n }\n\n async processTableAction(action: (keys: string[]) => Promise, withoutBusy?: boolean): Promise {\n const { tableAPI } = this.props.storage;\n\n if (!withoutBusy) {\n this.props.setBusy(true);\n this.forceUpdate();\n }\n\n const affectedRows = await tableAPI.getAffectedRows();\n const keys = affectedRows.map(row => row.key);\n let alert: IAlertProps;\n let shouldRefreshTable: boolean;\n try {\n const res = await action(keys);\n\n alert = res?.alert;\n shouldRefreshTable = !!res?.shouldRefreshTable;\n } catch (error) {\n alert = getAlertFromError(error);\n }\n\n this.props.storage.setTableAlert(alert, true);\n this.props.setBusy(false);\n this.forceUpdate();\n\n if (shouldRefreshTable) {\n const bcs = affectedRows.map(row => row.bc);\n // when action is successfully processed, inbox files are removed from table\n this.props.onAfterRemoveFiles?.(bcs);\n tableAPI.reloadTable();\n }\n }\n\n approveInboxFiles = async (keys: string[]): Promise => {\n const { storage } = this.props;\n if (await approveInboxFiles(storage.oData, keys)) {\n return {\n alert: {\n status: Status.Success,\n title: storage.t(\"Inbox:TableView.FilesApproved\")\n },\n shouldRefreshTable: true\n };\n }\n return {\n alert: {\n status: Status.Error,\n title: storage.t(\"Common:General.Error\")\n },\n shouldRefreshTable: false\n };\n };\n\n handleTableLoad(): void {\n super.handleTableLoad();\n // unset selected files\n this.setState({ ...defaultState });\n // todo: unselect rows, which are not loaded\n // this.props.onRowSelect?.(null);\n }\n\n handleDocumentClick = (e: MouseEvent) => {\n const inTable = doesElementContainsElement(this._tableWrapperRef.current, e.target as Element);\n const inView = doesElementContainsElement(this._viewRef.current, e.target as Element);\n if (inView && !inTable) {\n // todo: how to handle this - we most likely don't know when user wants to unselect all rows and\n // when just e.g. searching for another, sorting, etc...\n // this.props.onRowSelect?.(null);\n }\n };\n\n handleToolbarConfirm = async (): Promise => {\n let refreshNeeded;\n const { tableAPI } = this.props.storage;\n\n switch (this.getTableAction()) {\n case TableButtonsAction.Remove:\n const affectedRows = await tableAPI.getAffectedRows();\n refreshNeeded = await tableAPI.confirmAction();\n this.props.onAfterRemoveFiles?.(affectedRows.map(row => row.bc));\n break;\n case APPROVE_ACTION_ID:\n await this.processTableAction(this.approveInboxFiles);\n break;\n case COMPLETE_ACTION_ID:\n await this.processTableAction(this.props.onAttachFiles, true);\n break;\n }\n\n this.setTableAction(null);\n\n if (refreshNeeded) {\n this.props.onFormRefreshNeeded();\n }\n };\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n if (action === SEARCH_ID) {\n this.handleSearch(action, value);\n\n return;\n }\n\n this.setTableAction(action, true, false);\n if (update) {\n this.forceUpdate();\n }\n }\n\n get filterBc() {\n return this.props.storage.data.bindingContext.navigate(InboxFilterId);\n }\n\n handleSearch = (id: string, value?: TValue): void => {\n const bindingContext = this.filterBc;\n const args: ISmartFieldChange = {\n bindingContext, value\n };\n\n // note: handleFilterChange is debounced. This might look strange now as we use submitted input but in the\n // future, submittedInput in toolbar should be changed to debounced input and we may want to remove the debounce\n // behaviour from handleFilterChange and move it to the inputs\n this.handleFilterChange(args);\n };\n\n handleRowSelect = (bindingContext: BindingContext, props: IRowProps, modifiers?: IModifierKeys): void => {\n if (props.isDisabled) {\n // We can select rows only because of dragging\n return;\n }\n this.props.onRowSelect?.(bindingContext, props, {}, { modifiers });\n };\n\n handleRowContextMenuSelection = (bindingContext: BindingContext, props: IRowProps, modifiers?: IModifierKeys): void => {\n const isSelected = this.props.selectedRows?.find(rowId => rowId.toString() === bindingContext.toString());\n if (!isSelected) {\n // row with the context menu is not selected -> unselect all other rows and\n // select this one to show correct context menu\n this.handleRowSelect(bindingContext, props, modifiers);\n }\n };\n\n handleContextMenu = (item: ISelectItem): void => {\n if ([FileAction.Download, FileAction.Info, FileAction.Delete, FileAction.Rename, InboxAction.CancelApproval, InboxAction.AskForApproval].includes(item.id as (FileAction | InboxAction))) {\n this.handleFileContextMenu(item, this.props.selectedRows[0]);\n } else {\n this.props.onContextMenu?.(this.props.selectedRows, item);\n }\n };\n\n handleFileContextMenu = async (item: ISelectItem, id: TId) => {\n const action = item.id as (FileAction | InboxAction);\n const bc = createBindingContext(id.toString(), this.props.storage.oData.metadata);\n const inboxFile = this.getInboxFileById(id);\n\n switch (action) {\n case FileAction.Download:\n const fileId = inboxFile.FileMetadata.Id;\n FileStorage.download(fileId);\n break;\n case FileAction.Info:\n const inboxFileDetail = await loadInboxFileDetail(bc, this.props.storage.oData);\n this.setState({\n fileInfoMetadata: {\n ...inboxFileDetail.FileMetadata,\n Sender: inboxFileDetail.Sender\n }\n });\n break;\n case FileAction.Delete:\n if (await handleDeleteFile(this.props.storage, this.props.confirmationDialog, bc)) {\n this.props.onAfterRemoveFiles([bc]);\n }\n break;\n case FileAction.Rename:\n this.setState({ renameFile: bc });\n break;\n case InboxAction.AskForApproval:\n case InboxAction.CancelApproval:\n const status = action === InboxAction.AskForApproval ? ApprovalStatusTypeCode.Pending : ApprovalStatusTypeCode.Canceled;\n if (await changeInboxFileApprovalStatus(this.props.storage.oData, [inboxFile.Id?.toString()], status)) {\n // refresh table\n await this.props.storage.tableAPI.reloadRow(bc);\n this.props.onAfterUpdateFile?.();\n }\n this.forceUpdate();\n break;\n\n }\n };\n\n handleDragStart = (rowId: TId, props: IRowProps, event: React.DragEvent): void => {\n const bindingContext = rowId as BindingContext;\n let selectedRows = [...this.props.selectedRows];\n let isContained = selectedRows.includes(bindingContext);\n if ((event.ctrlKey || event.metaKey) && !isContained) {\n selectedRows.push(bindingContext);\n isContained = true;\n }\n if (!isContained) {\n // if dragged row is not included in selected ones, use just the dragged row\n selectedRows = [bindingContext];\n }\n const rowsArray = this.props.storage.tableAPI.getRowsArray();\n const selRowData = rowsArray.filter(row => selectedRows.includes(row?.id as BindingContext));\n const fileNames = selRowData.map(row => (row.customData.entity as IInboxFileEntity).FileMetadata.Name);\n\n this.props.onDragStart?.(selectedRows, fileNames, event);\n this.setState({\n isDraggingSource: true\n });\n };\n\n handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n };\n\n isRowApproved = (row: IRowProps | IRow): boolean => {\n const status = getApprovalStatus(getInboxFile(row));\n return [ApprovalStatusTypeCode.Approved, ApprovalStatusTypeCode.NotNeeded, ApprovalStatusTypeCode.Canceled].includes(status);\n };\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n if (action === RowAction.Custom) {\n const tableAction = this.getTableAction();\n if (tableAction === APPROVE_ACTION_ID) {\n return false;\n }\n return !((this.type === InboxFilter.Other || this.isRowApproved(row)) && isRowWithFile(row));\n }\n\n return super.isRowWithoutAction(rowId, action, row);\n }\n\n getSelectedRows = memoizeOne(() => {\n if (this.getTableAction()) {\n return [];\n }\n return this.props.selectedRows ?? [];\n }, () => [this.getTableAction(), this.props.selectedRows]);\n\n rowsFactory = (rows: IRow[]): IRow[] => {\n if (this.type !== InboxFilter.Entity) {\n return rows;\n }\n\n const action = this.getTableAction();\n const isAddToAccountingActive = action === COMPLETE_ACTION_ID;\n\n return updateRowsArray(rows, (row: IRow) => {\n const approvalStatus = getApprovalStatus(getInboxFile(row));\n const isDisabled = isAddToAccountingActive && approvalStatus === ApprovalStatusTypeCode.Pending;\n return {\n ...row,\n isDisabled,\n statusHighlight: getStatusFromApprovalStatus(approvalStatus),\n statusHighlightTooltip: getStatusTooltipFromApprovalStatus(approvalStatus)\n // tooltip: tooltip\n };\n });\n };\n\n handleInfoDialogClose = () => {\n this.setState({ fileInfoMetadata: null });\n };\n\n additionalInfoDialogFields = memoize(() => {\n return [\n { id: \"Sender\", label: this.props.storage.t(\"Inbox:TableView.Sender\") }\n ];\n });\n\n renderInfoDialog() {\n return (\n \n );\n }\n\n handleRenameDialogConfirm = async (newName: string): Promise => {\n await handleRenameInboxFile(this.props.storage, this.state.renameFile, newName);\n this.handleRenameDialogClose();\n };\n\n handleRenameDialogClose = () => {\n this.setState({ renameFile: null });\n };\n\n handleProgress = (current: number): void => {\n this.setState({ doneCount: current });\n };\n\n handleNewFiles = async (files: File[]) => {\n const { tableAPI, context, oData, t } = this.props.storage;\n\n try {\n // set busy\n this.setState({ sendCount: files.length, doneCount: 0 });\n // create inbox files\n await createInboxFilesFromUploads(context, oData, files, null, this.handleProgress);\n // unset busy\n this.setState({ sendCount: null, doneCount: null });\n } catch (e) {\n this.props.storage.setTableAlert({\n status: Status.Error,\n title: t(\"Common:General.Error\"),\n subTitle: t(\"Inbox:SendToAccountant.ErrorSend\")\n });\n // unset busy\n this.setState({ sendCount: null, doneCount: null });\n return;\n }\n // show success message\n this.props.storage.setTableAlert({\n status: Status.Success,\n title: t(\"Common:Validation.SuccessTitle\"),\n subTitle: t(\"Inbox:SendToAccountant.SuccessSend\")\n });\n\n await tableAPI.reloadTable();\n };\n\n renderRenameDialog() {\n const inboxFile = this.getInboxFileById(this.state.renameFile);\n return (\n \n );\n }\n\n getViewProps() {\n const viewProps = {\n ...super.getViewProps(),\n passRef: this._viewRef,\n nonScrollableContent: this.props.busyIndicator\n };\n\n return this.shouldHandleDragOver ? {\n onDragEnter: this.props.onDragEnter,\n onDragLeave: this.props.onDragLeave,\n onDragOver: this.handleDragOver,\n onDrop: this.props.onDrop,\n ...viewProps\n } : { ...viewProps };\n }\n\n renderSmartHeader(): React.ReactNode {\n const { isUnsorted, isApproval } = this;\n\n if (isUnsorted || isApproval) {\n return (\n \n );\n }\n return null;\n }\n\n renderFilterBar(): React.ReactElement {\n return null;\n }\n\n renderTable(): React.ReactElement {\n const tableProps = this.getTableSharedProps();\n const { sendCount, doneCount } = this.state;\n\n return (\n \n \n \n \n {!!sendCount && (\n \n )}/>\n )}\n \n );\n }\n\n renderDefaultDialogs(): React.ReactElement {\n return (\n <>\n {super.renderDefaultDialogs()}\n {!!this.state.fileInfoMetadata && this.renderInfoDialog()}\n {!!this.state.renameFile && this.renderRenameDialog()}\n \n );\n }\n}\n\nexport default withBusyIndicator({\n passBusyIndicator: true,\n isDelayed: true\n})(withConfirmationDialog(withPermissionContext(InboxTableView)));\n","import { AlertAction, AlertPosition, IAlertProps } from \"@components/alert/Alert\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { WithPromisedComponent, withPromisedComponent } from \"@components/dialog/withPromisedComponent\";\nimport { IFileStripItem } from \"@components/fileStrip/FileStrip.utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SmartFileStrip } from \"@components/smart/smartFileStrip/SmartFileStrip\";\nimport { ISmartODataTableAPI, TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { SplitLayout } from \"@components/splitLayout\";\nimport { TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { IFileMetadataEntity, IInboxFileEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ApprovalStatusTypeCode, InboxEntityTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { parseError } from \"@odata/ODataParser\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { isRossumModuleActivated } from \"@pages/admin/subscriptions/Subscriptions.utils\";\nimport { toggleItemInArray } from \"@utils/general\";\nimport { isFileRossumEligible, ROSSUM_EXTRACT_URL } from \"@utils/Rossum.utils\";\nimport i18next from \"i18next\";\nimport React, { PureComponent } from \"react\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\nimport { withTheme } from \"styled-components/macro\";\n\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { PaneStatus, Status } from \"../../enums\";\nimport { LocalStackOrder } from \"../../global.style\";\nimport { TRecordAny, TRecordString, TRecordType } from \"../../global.types\";\nimport { ITableStorageDefaultCustomData, TableStorage } from \"../../model/TableStorage\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport { PropsWithTheme } from \"../../theme\";\nimport customFetch from \"../../utils/customFetch\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { ISplitPagePaneData } from \"../Page\";\nimport { InboxSplitPageStyled, PaneStyled } from \"./Inbox.styles\";\nimport {\n attachInboxFile,\n getDragImage,\n getEntityTypeFileStripItems,\n getFilterAndEntityTypeFromSelectItem,\n getFolderItemCounts,\n getInboxFilesBindingContext,\n getPaneIcon,\n handleAttachFiles,\n IAttachFileResult,\n IInboxTableCustomData,\n InboxFilter,\n isSupportedFolderForDataMining\n} from \"./Inbox.utils\";\nimport InboxFakeSplitter from \"./InboxFakeSplitter\";\nimport InboxFileDetail from \"./InboxFileDetail\";\nimport InboxMultipleFilesSelected from \"./InboxMultipleFilesSelected\";\nimport InboxTableView, { COMPLETE_ACTION_ID, IInboxTableViewProps } from \"./InboxTableView\";\nimport RossumDialog from \"./RossumDialog\";\n\ninterface IInboxSplitPageCustomData extends ITableStorageDefaultCustomData {\n type?: InboxFilter;\n}\n\ninterface IProps extends WithOData, PropsWithTheme, RouteComponentProps, WithAlert, WithPromisedComponent {\n t: any;\n\n paneData: ISplitPagePaneData;\n selectedFolderId?: string;\n\n onFolderSelection?: (folder: string) => void;\n\n // Other folder in editable window\n inEditableWindow?: boolean;\n onAttachFiles?: (Ids: TId[]) => Promise;\n hideInboxFileIds?: number[];\n\n supportedEntities?: InboxEntityTypeCode[];\n}\n\ninterface IState {\n paneStatus: PaneStatus[];\n draggedRows: BindingContext[];\n dragOverId?: string;\n counts?: TRecordType;\n fileStripItemsCounts?: TRecordType;\n selectedInboxFiles?: BindingContext[];\n}\n\nconst defaultPaneStatus = [PaneStatus.Expanded, PaneStatus.Normal];\nconst withRightPaneStatus = [PaneStatus.Normal, PaneStatus.Normal];\n\nclass InboxSplitPage extends PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n storage: TSmartODataTableStorage;\n #tableViewRef = React.createRef>();\n\n #canvasEl: HTMLCanvasElement;\n\n constructor(props: IProps, context: IAppContext) {\n super(props);\n\n this.storage = this.createAndInitStorage(this.props.paneData, this.#tableViewRef, context);\n const paneStatus = [...defaultPaneStatus];\n\n this.state = {\n paneStatus,\n draggedRows: [],\n selectedInboxFiles: []\n };\n }\n\n componentDidMount() {\n this.updateFileStripItemsCounts();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n const { selectedInboxFiles } = this.state;\n if (selectedInboxFiles !== prevState.selectedInboxFiles) {\n if (!selectedInboxFiles?.length) {\n // InboxFilePreview closed\n this.setPaneStatus(defaultPaneStatus);\n } else if (this.state.selectedInboxFiles?.length === 1 &&\n prevState.selectedInboxFiles?.length <= 1 &&\n prevState.selectedInboxFiles?.[0] !== this.state.selectedInboxFiles[0]) {\n // opens detail panel automatically if there is just one file selected and\n // previous selection is different from the current selection\n this.setPaneStatus(withRightPaneStatus);\n } else {\n // todo: switch from one opened Inbox preview to another\n }\n }\n\n if (this.props.selectedFolderId !== prevProps.selectedFolderId) {\n this.reInitStorage(this.props.paneData);\n }\n\n if (prevProps.hideInboxFileIds !== this.props.hideInboxFileIds) {\n this.storage.applyFilters();\n this.storage.refresh();\n }\n }\n\n componentWillUnmount() {\n this.removeDragListeners();\n }\n\n get renderRightPane(): boolean {\n return !!(this.state.selectedInboxFiles?.length);\n }\n\n get isDragging() {\n return !!this.state.draggedRows?.length;\n }\n\n get isApprovalPage() {\n return this.storage.getCustomData().type === InboxFilter.ForApprove;\n }\n\n get supportedEntities() {\n return this.props.supportedEntities ?? [];\n }\n\n updateFileStripItemsCounts = async (): Promise => {\n const countStatus = [\n ApprovalStatusTypeCode.NotNeeded,\n ApprovalStatusTypeCode.Approved,\n ApprovalStatusTypeCode.Canceled\n ];\n const fileStripItemsCounts = await getFolderItemCounts(this.props.oData, countStatus);\n\n this.setState({\n fileStripItemsCounts\n });\n };\n\n removeFromSelection(bcs: BindingContext[]) {\n const { selectedInboxFiles } = this.state;\n const selectedWithoutRemoved = selectedInboxFiles?.filter(bc => !bcs.find(removedBc => removedBc.toString() === bc.toString()));\n if (selectedWithoutRemoved?.length !== selectedInboxFiles?.length) {\n this.setState({ selectedInboxFiles: selectedWithoutRemoved ?? [] });\n }\n }\n\n handlePaneStatusChange = (paneStatus: PaneStatus[]): void => {\n if (!this.renderRightPane) {\n // pane status cannot be changed if there is only one non-fixed pane\n return;\n }\n // replace invalid statuses\n paneStatus[2] = PaneStatus.Normal;\n if (paneStatus[0] === PaneStatus.Collapsed && paneStatus[1] === PaneStatus.Collapsed) {\n paneStatus[0] = PaneStatus.Expanded;\n }\n // apply\n this.setPaneStatus(paneStatus);\n };\n\n setPaneStatus = (paneStatus: PaneStatus[]): void => {\n this.setState({\n paneStatus: [...paneStatus]\n });\n };\n\n handleFolderSelection = (item: IFileStripItem): void => {\n this.setPaneStatus(withRightPaneStatus);\n this.props.onFolderSelection?.(item?.id);\n this.setState({ selectedInboxFiles: [] });\n };\n\n handleFolderUnSelect = (): void => {\n this.setPaneStatus(defaultPaneStatus);\n this.props.onFolderSelection?.(null);\n this.setState({ selectedInboxFiles: [] });\n };\n\n _isSortingFiles = false;\n\n async sortFiles(selectedRows: BindingContext[], folder: ISelectItem) {\n this._isSortingFiles = true;\n const { entityType } = getFilterAndEntityTypeFromSelectItem(folder);\n const path = selectedRows[0]?.removeKey().toString();\n\n const values: Partial = {\n IsSorted: true,\n EntityTypeCode: entityType ?? null\n };\n\n const batch: BatchRequest = this.props.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n const queryableEntity = batch.fromPath(path);\n\n selectedRows.forEach(row => {\n queryableEntity.update(row.getKey(), values);\n });\n\n const result = await batch.execute();\n\n if (result[0]?.status < 300) {\n this.removeFromSelection(selectedRows);\n // refresh tables, which contained sorted files\n await this.storage?.tableAPI?.reloadTable();\n this.updateFileStripItemsCounts();\n } else {\n // todo: better error handling\n this.props.setAlert({\n status: Status.Error,\n title: this.props.t(\"Common:Errors.ErrorHappened\"),\n action: AlertAction.Close\n });\n }\n this._isSortingFiles = false;\n this.clearDraggingState();\n }\n\n handleContextMenu = (selectedRows: BindingContext[], item: ISelectItem) => {\n this.sortFiles(selectedRows, item);\n };\n\n addDragListeners() {\n document.addEventListener(\"drag\", this.handleDrag);\n document.addEventListener(\"dragover\", this.handleDragOver);\n document.addEventListener(\"dragend\", this.handleDragEnd);\n }\n\n removeDragListeners() {\n document.removeEventListener(\"drag\", this.handleDrag);\n document.removeEventListener(\"dragover\", this.handleDragOver);\n document.removeEventListener(\"dragend\", this.handleDragEnd);\n }\n\n handleDragStart = (selectedRows: BindingContext[], fileNames: string[], event: React.DragEvent) => {\n // ux spec wants different style for the ghost image than browser provides,\n // and browser won't let us style it\n // => hide the browser's ghost image and draw and move our own manually\n const canvas = getDragImage(fileNames, this.props.theme, this.storage.t(\"Inbox:TableView.WithoutAttachment\"));\n const fakeGhost = new Image();\n\n canvas.style.position = \"fixed\";\n canvas.style.zIndex = `${LocalStackOrder.AboveOverlay}`;\n\n\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.dropEffect = \"move\";\n event.dataTransfer.setDragImage(fakeGhost, 0, 0);\n\n document.body.appendChild(canvas);\n\n this.#canvasEl = canvas;\n this.setGhostElementPosition(event.pageX, event.pageY);\n this.addDragListeners();\n\n if (selectedRows.length === 1) {\n this._lastSelectedRow = selectedRows[0];\n }\n this.setState({ draggedRows: selectedRows });\n };\n\n handleDrop = async (item: IFileStripItem, event: React.DragEvent) => {\n const tableView = this.#tableViewRef.current;\n tableView.props.setBusy(true);\n tableView.forceUpdate();\n\n await this.sortFiles(this.state.draggedRows, item);\n\n tableView.props.setBusy(false);\n tableView.forceUpdate();\n };\n\n handleDrag = (event: DragEvent): void => {\n event.preventDefault();\n };\n\n handleDragOver = (event: DragEvent): void => {\n this.setGhostElementPosition(event.pageX, event.pageY);\n };\n\n setGhostElementPosition = (pageX: number, pageY: number): void => {\n this.#canvasEl.style.left = `${pageX - 40}px`;\n this.#canvasEl.style.top = `${pageY + 5}px`;\n };\n\n handleTableViewDrop = (event: React.DragEvent) => {\n const selectedFolder = getEntityTypeFileStripItems(this.supportedEntities).find(item => item.id === this.props.selectedFolderId);\n return this.handleDrop(selectedFolder, event);\n };\n\n handleDragEnter = (id: string = this.props.selectedFolderId) => {\n this.setState({\n dragOverId: id\n });\n };\n\n handleDragLeave = (id: string = this.props.selectedFolderId) => {\n this.setState(state => ({\n dragOverId: state.dragOverId === id ? null : state.dragOverId\n }));\n };\n\n handleDragEnd = () => {\n if (this.#canvasEl) {\n document.body.removeChild(this.#canvasEl);\n }\n this.removeDragListeners();\n if (!this._isSortingFiles) {\n this.clearDraggingState();\n }\n };\n\n clearDraggingState() {\n this.setState({ draggedRows: [], dragOverId: null });\n }\n\n async getSelectedRowsInInterval(start: BindingContext, end: BindingContext): Promise {\n const selectedRows: BindingContext[] = [];\n // marks all rows in between these two as selected\n const rowsArray = this.storage.tableAPI.getRowsArray();\n const selectionInterval = [start?.toString(), end?.toString()];\n let shouldIncludeRow = false;\n let notLoaded = false;\n for (let i = 0; i < rowsArray.length; ++i) {\n if (!rowsArray[i]) {\n notLoaded = true;\n break;\n }\n const bc = rowsArray[i].id as BindingContext;\n const startOrEnd = selectionInterval.includes(bc.toString());\n if (startOrEnd) {\n shouldIncludeRow = !shouldIncludeRow;\n }\n if ((shouldIncludeRow || startOrEnd)) {\n selectedRows.push(bc);\n }\n if (startOrEnd && !shouldIncludeRow) {\n break;\n }\n }\n if (notLoaded) {\n // download data and repeat the process\n await this.storage.tableAPI.reloadTable({ loadAll: true });\n return this.getSelectedRowsInInterval(start, end);\n }\n return selectedRows;\n }\n\n _lastSelectedRow: BindingContext = null;\n handleRowSelect = async (bc: BindingContext, props?: IRowProps, params?: TRecordString, customData?: TRecordAny): Promise => {\n if (bc === null) {\n this._lastSelectedRow = bc;\n this.setState({ selectedInboxFiles: [] });\n } else if (this.isApprovalPage) {\n // in approval table, only single row can be selected (file detail opened)\n this.setState({ selectedInboxFiles: [bc] });\n } else {\n const { modifiers } = customData ?? {};\n let selectedRows: BindingContext[];\n\n if (modifiers?.shiftKey && this._lastSelectedRow && this._lastSelectedRow !== bc) {\n selectedRows = await this.getSelectedRowsInInterval(bc, this._lastSelectedRow);\n } else {\n selectedRows = [...((modifiers?.ctrlKey || modifiers?.metaKey) ? this.state.selectedInboxFiles ?? [] : [])];\n toggleItemInArray(selectedRows, bc);\n this._lastSelectedRow = bc;\n }\n this.setState({ selectedInboxFiles: selectedRows }, () => this.forceUpdate());\n }\n };\n\n handleAttachFiles = async (fileIds: TId[]): Promise => {\n if (this.props.inEditableWindow) {\n const res = await this.props.onAttachFiles?.(fileIds);\n return {\n alert: res,\n shouldRefreshTable: res.status === Status.Success\n };\n } else {\n const tableRows = this.storage.tableAPI.getRowsArray();\n const selectedRows = tableRows.filter(row => fileIds.includes((row.id as BindingContext).getKey().toString()));\n const rossumActivated = isRossumModuleActivated(this.storage);\n const rossumEligibleInboxFiles = isSupportedFolderForDataMining(this.props.selectedFolderId) && rossumActivated && selectedRows\n .filter(row => isFileRossumEligible((row.customData.entity as IInboxFileEntity)?.FileMetadata))\n .map(row => row.customData.entity as IInboxFileEntity);\n let inboxFilesForRossum: IInboxFileEntity[];\n let actionCanceled = false;\n\n if (rossumEligibleInboxFiles?.length > 0) {\n inboxFilesForRossum = await this.props.promisedComponent.openComponent((onFinish) => {\n return (\n onFinish(rossumEligibleInboxFiles.filter(inboxFile => files.find(file => file.Id === inboxFile.FileMetadata.Id)))}\n onCancel={() => onFinish(null)}\n files={rossumEligibleInboxFiles.map(file => file.FileMetadata)}\n />\n );\n });\n\n // null means cancel, empty array just means that rossum won't be applied to any file\n if (!inboxFilesForRossum) {\n actionCanceled = true;\n }\n }\n\n if (!actionCanceled) {\n // tableView doesn't handle busy state for files attaching,\n // because we don't want the view to be busy when the RossumDialog is opened\n // => set busy state here instead\n const tableView = this.#tableViewRef.current;\n\n tableView.props.setBusy(true);\n tableView.forceUpdate();\n\n const rossumRes: Response[] = [];\n if (inboxFilesForRossum?.length > 0) {\n // don't apply attachInboxFile on files processed by rossum\n const rossumConfirmedInboxFiles = rossumEligibleInboxFiles.filter(file => inboxFilesForRossum.find(f => f.Id === file.Id));\n\n fileIds = fileIds.filter(id => !rossumConfirmedInboxFiles.find(file => file.Id === parseInt(id.toString())));\n\n const documentType = this.props.selectedFolderId;\n\n // await request before refreshing the table\n rossumRes.push(\n await customFetch(`${ROSSUM_EXTRACT_URL}/${documentType}/?${inboxFilesForRossum.map(file => `ids=${file.Id}`).join(\"&\")}`)\n );\n }\n\n const entityType = this.props.selectedFolderId as InboxEntityTypeCode;\n const alert = await handleAttachFiles(\"Inbox:TableView.CompleteSuccess\", () => attachInboxFile(fileIds, entityType));\n this.updateFileStripItemsCounts();\n\n // check if there is any error in Rossum requests\n const errorRes = rossumRes?.find(response => response.status !== 200);\n const shouldRefreshTable = alert.status === Status.Success || rossumRes?.some(response => response.status === 200);\n\n if (alert.status === Status.Success && errorRes) {\n const error = parseError(await errorRes.json());\n const alertProps = error ? getAlertFromError(error) : null;\n\n alert.status = Status.Error;\n alert.title = this.props.t(\"Common:Errors.ErrorHappened\");\n alert.subTitle = alertProps?.subTitle ?? this.props.t(\"Inbox:TableView.CompleteErrorRossum\");\n alert.action = AlertAction.Close;\n }\n\n return {\n alert,\n shouldRefreshTable\n };\n } else {\n return null;\n }\n }\n };\n\n handleAfterUpdateFile = (): void => {\n this.updateFileStripItemsCounts();\n };\n\n handleAfterRemoveFiles = (bcs: BindingContext[]): void => {\n this.updateFileStripItemsCounts();\n // if we removed file with opened detail, close it\n this.removeFromSelection(bcs);\n };\n\n handleTableLoad = (storage: TSmartODataTableStorage) => {\n // we need to check if there are any files and re-render, so correct icon is displayed\n const count = storage.tableAPI.getState().rowCount;\n const id = storage.tableId;\n this.setState(({ counts }) => ({\n counts: {\n ...counts,\n [id]: count\n }\n }));\n };\n\n hasRows(tableId: string): boolean {\n return tableId && !!this.state.counts?.[tableId];\n }\n\n createTableStorage(data: ISplitPagePaneData, ref: React.RefObject>, context: IAppContext) {\n return new TableStorage({\n oData: this.props.oData,\n t: this.props.t,\n definition: data.def,\n history: this.props.history,\n match: this.props.match,\n theme: this.props.theme,\n context,\n id: data.def.id,\n refresh: async () => {\n const tableViewRef = ref.current as any;\n\n if (tableViewRef?.beforeRefresh) {\n await tableViewRef.beforeRefresh();\n }\n tableViewRef?.forceUpdate();\n },\n // copy state in constructor instead of using it directly in the rest of the app\n // because browser history state is changed on any navigation\n initialHistoryState: this.props.history.location.state\n });\n }\n\n async initStorage(storage: TSmartODataTableStorage, definition: ISplitPageTableDef): Promise {\n await storage.init({\n bindingContext: getInboxFilesBindingContext(this.props.oData),\n definition\n });\n this.forceUpdate();\n\n return;\n }\n\n createAndInitStorage(data: ISplitPagePaneData, ref: React.RefObject>, context: IAppContext) {\n const storage = this.createTableStorage(data, ref, context);\n storage.setCustomData(data.customData);\n if (this.props.inEditableWindow) {\n storage.data.tableAction = COMPLETE_ACTION_ID;\n }\n this.initStorage(storage, data.def as ISplitPageTableDef);\n return storage;\n }\n\n reInitStorage(data: ISplitPagePaneData) {\n const { storage } = this;\n storage.setCustomData(data.customData);\n storage.data.definition = data.def as ISplitPageTableDef;\n storage.clearFilters();\n storage.clearTableAlert();\n // clearFilters doesn't apply any filter if there are no filters set,\n // but we need to update base query from definition\n storage.applyFilters();\n this.refreshTable(storage);\n this.forceUpdate();\n }\n\n refreshTable(storage: TSmartODataTableStorage, rowBc?: BindingContext) {\n if (!rowBc) {\n // in case we want to reload everything - table, tabs..\n storage.updateUuid();\n storage.refresh();\n } else {\n // reload just one row of the table according to rowBc\n storage.tableAPI.reloadRow(rowBc);\n }\n }\n\n renderTable(data: ISplitPagePaneData, storage: TSmartODataTableStorage, ref: React.Ref, key?: string): React.ReactElement {\n let props: Partial = {};\n\n if (!this.isApprovalPage) {\n const { type, entityType } = this.storage.getCustomData();\n if (type !== InboxFilter.Unsorted) {\n props = {\n ...props,\n onDrop: this.handleTableViewDrop,\n onDragEnter: () => this.handleDragEnter(),\n onDragLeave: () => this.handleDragLeave(),\n folderId: entityType ?? InboxFilter.Other\n };\n }\n if (type === InboxFilter.Entity || this.props.inEditableWindow) {\n props.onAttachFiles = this.handleAttachFiles;\n }\n props.onDragStart = this.handleDragStart;\n }\n // used also for approval - when items are approved, they are removed from list\n props.onAfterRemoveFiles = this.handleAfterRemoveFiles;\n\n const { selectedInboxFiles, draggedRows } = this.state;\n const selectedRows = (draggedRows?.length ? draggedRows : selectedInboxFiles) ?? [];\n return (\n \n );\n }\n\n render() {\n const { selectedFolderId, inEditableWindow } = this.props;\n const { selectedInboxFiles, fileStripItemsCounts } = this.state;\n const isApproval = this.isApprovalPage;\n const multipleDetail = selectedInboxFiles?.length > 1;\n const tableViewHasRows = this.hasRows(this.storage?.tableId);\n const isRightInboxPane = !!(!isApproval && selectedFolderId) && !inEditableWindow;\n const isLeftInboxPane = !isApproval && !selectedFolderId && !inEditableWindow;\n return (\n \n {isRightInboxPane && (<>\n 0)}/>\n \n )}\n \n \n {this.storage?.loaded && this.renderTable(this.props.paneData, this.storage, this.#tableViewRef)}\n \n \n {this.renderRightPane && (\n multipleDetail ? (\n \n ) : (\n \n )\n )}\n \n \n {isLeftInboxPane && (\n \n )}\n {this.props.alert}\n \n );\n }\n}\n\nexport default withPromisedComponent(withOData(withTheme(withRouter(withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom\n})(InboxSplitPage)))));","import React from \"react\";\nimport Dialog from \"../../components/dialog\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { Button, ButtonGroup, IconButton } from \"../../components/button\";\nimport { Label } from \"@components/inputs/field\";\nimport { CloseIcon } from \"@components/icon\";\nimport { IconSize, TextAlign } from \"../../enums\";\nimport Currency from \"../../types/Currency\";\nimport { CurrencyCode } from \"@odata/GeneratedEnums\";\nimport SimpleGridTable from \"../../components/simpleGridTable/SimpleGridTable\";\nimport {\n SimpleGridTableBoldValue,\n SimpleGridTableColumn,\n SimpleGridTableLine,\n SimpleGridTableSmallValue\n} from \"@components/simpleGridTable/SimpleGridTable.styles\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport customFetch from \"../../utils/customFetch\";\nimport { ROSSUM_EXTRACT_URL } from \"@utils/Rossum.utils\";\nimport { isNotYetPayedForSubscription } from \"../admin/subscriptions/Subscriptions.utils\";\n\nconst PRICE_PER_DOC = 4;\n\ninterface IProps {\n files: IFileMetadataEntity[];\n onConfirm: (files: IFileMetadataEntity[]) => void;\n onCancel: () => void;\n /** Used for files on document. Only can be confirmed or declined. No other action is there.*/\n isOnlyOneFileConfirmation?: boolean;\n}\n\ninterface IState {\n files: IFileMetadataEntity[];\n remainingFreeDocumentsCount: number;\n isBusy: boolean;\n}\n\nclass RossumDialog extends React.PureComponent {\n static contextType = AppContext;\n\n constructor(props: IProps & WithTranslation, context: IAppContext) {\n super(props, context);\n\n\n this.state = {\n files: props.files,\n remainingFreeDocumentsCount: 0,\n isBusy: true\n };\n }\n\n componentDidMount() {\n this.init();\n }\n\n init = async (): Promise => {\n const response = await customFetch(`${ROSSUM_EXTRACT_URL}/GetTotalRemainingFreeDocumentsCount`);\n const remainingFreeDocumentsCount = await response.json();\n\n this.setState({\n isBusy: false,\n remainingFreeDocumentsCount\n });\n };\n\n\n handleConfirm = (): void => {\n this.props.onConfirm(this.state.files);\n };\n\n handleDontUse = (): void => {\n this.props.onConfirm([]);\n };\n\n get hasTrialDiscount(): boolean {\n return this.state.remainingFreeDocumentsCount > 0;\n }\n\n get isTrialDepleted(): boolean {\n const context = this.context as IAppContext;\n\n return isNotYetPayedForSubscription(context.getData().subscription) && this.state.remainingFreeDocumentsCount === 0;\n }\n\n renderTrialDepleted = (): React.ReactElement => {\n return (\n
    \n {this.props.t(\"Inbox:RossumDialog.FreeRossumTrialDepleted\")}\n
    \n );\n };\n\n renderPriceTable = (): React.ReactElement => {\n const count = this.state.files.length;\n const fullAmount = count * PRICE_PER_DOC;\n let discount = 0;\n\n if (this.state.remainingFreeDocumentsCount > 0) {\n discount = Math.min(count, this.state.remainingFreeDocumentsCount) * PRICE_PER_DOC * -1;\n }\n\n return (\n <>\n \n {this.props.t(\"Inbox:RossumDialog.PricePerDocument\")}\n \n \n {Currency.format(PRICE_PER_DOC, { currency: CurrencyCode.CzechKoruna })}\n \n \n {this.props.t(\"Inbox:RossumDialog.DocumentCount\")}\n \n \n {count}\n \n\n {this.hasTrialDiscount && <>\n \n {this.props.t(\"Inbox:RossumDialog.Discount\")}\n \n \n {Currency.format(discount, { currency: CurrencyCode.CzechKoruna })}\n \n \n }\n\n \n {this.props.t(\"Inbox:RossumDialog.Amount\")}\n \n \n {Currency.format(fullAmount + discount, { currency: CurrencyCode.CzechKoruna })}\n \n \n );\n };\n\n renderTrialContent = (): React.ReactElement => {\n const tooManyFilesSelected = this.state.files.length > this.state.remainingFreeDocumentsCount;\n\n return (\n <>\n \n {this.props.t(\"Inbox:RossumDialog.RemainingFreeFiles\")}\n \n \n {this.state.remainingFreeDocumentsCount}\n \n\n \n {this.props.t(\"Inbox:RossumDialog.SelectedFiles\")}\n \n \n {this.state.files.length}\n \n\n {tooManyFilesSelected &&\n \n {this.props.t(\"Inbox:RossumDialog.TooManyFilesSelected\")}\n \n }\n \n );\n };\n\n renderContent = (): React.ReactElement => {\n return (\n \n \n {this.state.files.map(file => {\n return (\n \n \n {file.Name}\n \n \n {!this.props.isOnlyOneFileConfirmation &&\n {\n this.setState({\n files: this.state.files.filter(f => f.Id !== file.Id)\n });\n }}\n isDecorative>\n \n \n }\n \n \n );\n })}\n \n );\n };\n\n isConfirmDisabled = (): boolean => {\n const context = this.context as IAppContext;\n const isNotPurchasedYet = isNotYetPayedForSubscription(context.getData().subscription);\n const tooManyFilesSelected = isNotPurchasedYet && this.state.files.length > this.state.remainingFreeDocumentsCount;\n\n return this.state.files?.length === 0 || tooManyFilesSelected;\n };\n\n renderButtons = (): React.ReactElement => {\n const context = this.context as IAppContext;\n const isOnlyOneFileConfirmation = this.props.isOnlyOneFileConfirmation;\n const isTrialDepleted = this.isTrialDepleted;\n const isDepletedOneFileConfirmation = isOnlyOneFileConfirmation && isTrialDepleted;\n const isNotPurchasedYet = isNotYetPayedForSubscription(context.getData().subscription);\n\n return (\n
    \n {!isTrialDepleted &&\n \n \n {!isNotPurchasedYet ? this.renderPriceTable() : this.renderTrialContent()}\n \n }\n\n \n {!isDepletedOneFileConfirmation &&\n \n }\n\n {!isOnlyOneFileConfirmation &&\n \n }\n {(!isTrialDepleted || isOnlyOneFileConfirmation) &&\n \n }\n \n
    \n );\n };\n\n render() {\n const showTrialDepleted = this.isTrialDepleted;\n\n return (\n \n {this.state.isBusy ? null :\n showTrialDepleted ? this.renderTrialDepleted() : this.renderContent()}\n \n );\n }\n}\n\nexport default withTranslation([\"Inbox\", \"Common\"])(RossumDialog) as React.ComponentType;","import styled from \"styled-components/macro\";\nimport { T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { TooltipIconCopyLink } from \"../../components/tooltipIcon\";\n\nexport const TooltipIconCopyLinkStyled = styled(TooltipIconCopyLink)`\n visibility: hidden;\n margin-left: 2px;\n`;\n\nexport const InboxCompanyEmailAddressStyled = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n ${T_TITLE_4_NORMAL};\n\n &:hover ${TooltipIconCopyLinkStyled}, &:focus ${TooltipIconCopyLinkStyled} {\n visibility: visible;\n }\n`;\n","import React, { useEffect, useState } from \"react\";\nimport { Model } from \"../../model/Model\";\nimport { InboxCompanyEmailAddressStyled, TooltipIconCopyLinkStyled } from \"./InboxCompanyEmailAddress.styles\";\nimport { getSystemConfig } from \"../../global.utils\";\n\n\ninterface IProps {\n storage: Model;\n}\n\nconst InboxCompanyEmailAddress: React.FC = ({ storage }) => {\n const [email, setEmail] = useState();\n\n useEffect(() => {\n getSystemConfig()\n .then((config) => {\n const domain = config.InboxEmailDomain;\n const inboxEmail = storage.context.getCompany().InboxEmail;\n setEmail(`${inboxEmail}@${domain}`);\n });\n });\n\n return (\n \n {email}\n \n \n );\n};\n\nexport default InboxCompanyEmailAddress;","import { IFieldDefFn } from \"@components/smart/FieldInfo\";\nimport {\n CompanySettingEntity,\n EntitySetName,\n EntityTypeName,\n TrustedSenderEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport Field from \"../../components/inputs/field\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, ValidatorType } from \"../../enums\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { CustomerGeneralRoleId } from \"../admin/users/Users.utils\";\nimport { setDefForTesting } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport InboxCompanyEmailAddress from \"./InboxCompanyEmailAddress\";\n\nconst InboxAddressPath = BindingContext.localContext(\"Box\");\n\nexport const getDefinition: IGetDefinition = (context: IAppContext): IDefinition => {\n\n const additionalUserProps = [\n { id: UserEntity.FirstName },\n { id: UserEntity.LastName },\n ];\n\n const currentCompanyId = context.getCompanyId();\n\n const form: IFormDef = {\n id: `${EntityTypeName.CompanySetting}Form`,\n translationFiles: getDefinition.translationFiles,\n fieldDefinition: {\n [InboxAddressPath]: {\n render: (args: IFieldDefFn) => (\n \n \n \n )\n },\n [CompanySettingEntity.InboxApprovers]: {\n type: FieldType.MultiSelect,\n width: BasicInputSizes.XL,\n label: i18next.t(\"Inbox:Settings.Name\"),\n fieldSettings: {\n keyPath: UserEntity.Id,\n displayName: UserEntity.Name,\n additionalProperties: additionalUserProps,\n preloadItems: true,\n localDependentFields: [\n {\n from: { id: UserEntity.Name },\n to: { id: UserEntity.Name }\n },\n ]\n },\n filter: {\n select: `GeneralRoles/any(x: x/GeneralRole/Id eq ${CustomerGeneralRoleId}) and CompanyRoles/any(x: x/Company/Id eq ${currentCompanyId}) and Id ge 0`\n },\n additionalProperties: additionalUserProps\n },\n [createPath(CompanySettingEntity.TrustedSenders, TrustedSenderEntity.Email)]: {\n width: BasicInputSizes.L,\n validator: {\n type: ValidatorType.Email\n }\n }\n },\n groups: [\n {\n id: \"Box\",\n title: i18next.t(`Inbox:Settings.Box`),\n rows: [[{ id: InboxAddressPath }]]\n }, {\n id: \"ApproverList\",\n tooltip: i18next.t(`Inbox:Settings.ListOfApproversTooltip`),\n title: i18next.t(`Inbox:Settings.ListOfApprovers`),\n rows: [[{ id: CompanySettingEntity.InboxApprovers }]]\n }, {\n id: \"TrustedSenders\",\n title: i18next.t(`Inbox:Settings.WithoutApproval`),\n lineItems: {\n collection: CompanySettingEntity.TrustedSenders,\n order: \"Id\",\n canReorder: false,\n isGroupToggleable: true,\n isItemCloneable: false,\n columns: [{ id: TrustedSenderEntity.Email }]\n }\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.CompanySettings,\n form\n };\n};\n\ngetDefinition.translationFiles = [\"Inbox\", \"Common\"];\nsetDefForTesting(\"InboxSettingsDef\", getDefinition);","import { EntitySetName, EntityTypeName, InvoiceServiceIntegrationEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType } from \"../../enums\";\nimport { IFormDef } from \"../../views/formView/Form\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const form: IFormDef = {\n id: `${EntityTypeName.InvoiceServiceIntegration}Form`,\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [],\n fieldDefinition: {\n [InvoiceServiceIntegrationEntity.Name]: {\n width: BasicInputSizes.XL\n },\n [InvoiceServiceIntegrationEntity.InvoiceServiceIntegrationType]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n isReadOnly: (args) => {\n return !args.storage.data.bindingContext.isNew();\n },\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: InvoiceServiceIntegrationEntity.Name }\n ],\n [\n { id: InvoiceServiceIntegrationEntity.InvoiceServiceIntegrationType }\n ]\n ]\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.InvoiceServiceIntegrations,\n form\n };\n};\n\n\ngetDefinitions.translationFiles = [\n \"Integrations\",\n getEnumNameSpaceName(EntityTypeName.InvoiceServiceIntegrationType)\n];\n\nsetDefByEntityType(EntityTypeName.InvoiceServiceIntegration, getDefinitions);","import styled from \"styled-components/macro\";\n\nimport { T_TITLE_4 } from \"../../global.style\";\n\nexport const StyledDocTypesLabels = styled.div`\n display: flex;\n justify-items: flex-start;\n width: 100%;\n margin-bottom: -12px;\n\n & > span {\n &:first-of-type {\n padding-left: 12px;\n }\n\n ${T_TITLE_4};\n width: 50%;\n }\n`;","import { IGetValueArgs, isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport BindingContext, { createPath } from \"@odata/BindingContext\";\nimport {\n EntityTypeName,\n IntegrationApiImportFrequencyEntity,\n InvoiceServiceIntegrationEntity,\n InvoiceServiceIntegrationSettingsEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n FiscalYearStatusCode,\n IntegrationApiImportFrequencyCode,\n IntegrationApiImportFromWhenCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { getActiveFiscalYears, getFiscalYearByDate } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport { StyledDocTypesLabels } from \"@pages/integrations/Integration.styles\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport { BasicInputSizes, FieldType, LabelStatus, ValidatorType } from \"../../enums\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\n\nconst documentTypesPath = BindingContext.localContext(\"documentTypes\");\nconst documentTypesLabelsPath = BindingContext.localContext(\"documentTypesLabels\");\n\nexport const getSettingsPath = (path: string) => {\n return createPath(InvoiceServiceIntegrationEntity.Settings, path);\n};\n\nexport const docTypesPropsPaths = [\n getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsInvoiceIssuedImported),\n // getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsOtherLiabilityImported),\n getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsProformaInvoiceIssuedImported),\n getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsTaxDocumentIssuedImported),\n // getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsInvoiceReceivedImported),\n // getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsOtherReceivableImported),\n // getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsProformaInvoiceReceivedImported),\n // getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IsTaxDocumentReceivedImported)\n];\n\nconst documentTypeFieldDefs = () => {\n return docTypesPropsPaths.map(prop => ({\n id: prop,\n label: i18next.t(`Integrations:TypeLabels.${prop.split(\"/\")[1]}`)\n }));\n};\n\nexport const getDefinition: IGetDefinition = (): IDefinition => {\n const form: IFormDef = {\n id: `${EntityTypeName.InvoiceServiceIntegrationSettings}Form`,\n translationFiles: getDefinition.translationFiles,\n additionalProperties: [\n ...documentTypeFieldDefs()\n ],\n fieldDefinition: {\n [getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportedDocuments)]: {\n type: FieldType.Checkbox,\n },\n [getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportFrequency)]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n fieldSettings: {\n displayName: IntegrationApiImportFrequencyEntity.Name\n },\n defaultValue: IntegrationApiImportFrequencyCode.Daily\n },\n [documentTypesLabelsPath]: {\n type: FieldType.Custom,\n labelStatus: LabelStatus.Removed,\n render: () => {\n return (\n \n {i18next.t(\"Integrations:DocumentType\")}\n {/*{i18next.t(\"Integrations:Issued\")}*/}\n {/*{i18next.t(\"Integrations:Received\")}*/}\n \n );\n }\n },\n [documentTypesPath]: {\n type: FieldType.CheckboxGroup,\n labelStatus: LabelStatus.Removed,\n width: \"100%\",\n fieldSettings: {\n items: [\n ...documentTypeFieldDefs()\n ]\n }\n },\n [getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportFromWhen)]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Integrations:ImportRangeLabel\"),\n width: BasicInputSizes.XL,\n isRequired: true,\n defaultValue: IntegrationApiImportFromWhenCode.ForThisFiscalYear,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.IntegrationApiImportFromWhen)\n },\n },\n [getSettingsPath(InvoiceServiceIntegrationSettingsEntity.DateCustom)]: {\n type: FieldType.Date,\n label: i18next.t(\"Integrations:FromDateLabel\"),\n isRequired: true,\n width: BasicInputSizes.M,\n validator: {\n type: ValidatorType.Date,\n settings: {\n customValidator: (value, args) => {\n const { storage } = args;\n if (isVisibleByPath(storage as FormStorage, getSettingsPath(InvoiceServiceIntegrationSettingsEntity.DateCustom))) {\n const fiscalYear = getFiscalYearByDate(args.storage.context, value as Date);\n if (fiscalYear?.StatusCode !== FiscalYearStatusCode.Active) {\n return new ValidationError(i18next.t(\"Banks:Validation.ActiveFY\"), value, args.bindingContext.getNavigationPath(true));\n }\n }\n return true;\n }\n }\n },\n fieldSettings: {\n minDate: (args: IGetValueArgs) => {\n const fiscalYears = getActiveFiscalYears(args.storage.context);\n if (!fiscalYears?.length) {\n return null;\n }\n return fiscalYears[0].DateStart;\n },\n maxDate: (args: IGetValueArgs) => {\n const fiscalYears = getActiveFiscalYears(args.storage.context);\n if (!fiscalYears?.length) {\n return null;\n }\n return fiscalYears[fiscalYears.length - 1].DateEnd;\n }\n },\n isVisible: args => {\n const range = args.storage.getValueByPath(getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportFromWhen));\n return range?.Code === IntegrationApiImportFromWhenCode.FromDate;\n }\n }\n },\n groups: [\n {\n id: \"main\",\n showGroupDivider: false,\n rows: [[\n { id: getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportFrequency) }\n ], [\n { id: getSettingsPath(InvoiceServiceIntegrationSettingsEntity.IntegrationApiImportFromWhen) },\n { id: getSettingsPath(InvoiceServiceIntegrationSettingsEntity.DateCustom) }\n ], [\n { id: documentTypesLabelsPath },\n { id: documentTypesPath }\n ]]\n }\n ]\n };\n\n return {\n form\n };\n};\n\ngetDefinition.translationFiles = [\n \"Integrations\",\n \"Banks\",\n getEnumNameSpaceName(EntityTypeName.BankApiStatementImportRange),\n getEnumNameSpaceName(EntityTypeName.IntegrationApiImportFromWhen)\n];\n","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { buildTreeFromAllItems } from \"@components/inputs/select/SelectAPI\";\nimport { IFieldDef } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { ILabelEntity, ILabelHierarchyEntity, LabelEntity, LabelHierarchyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { prepareQuery } from \"@odata/OData.utils\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport { DefaultTheme, withTheme } from \"styled-components\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { QueryParam } from \"../../enums\";\nimport { toTuple } from \"../../global.types\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport { getQueryParameters, removeQueryParam } from \"../../routes/Routes.utils\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { IContextInitArgs } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { getUsedLabels } from \"./Labels.utils\";\n\ninterface IProps extends IFormViewProps, PropsWithTheme, WithConfirmationDialog {\n}\n\n\nconst HierarchyItemId = \"hierarchy\";\n\nexport const hierarchyLoadFieldDefs: IFieldDef[] = [\n { id: LabelHierarchyEntity.Color },\n { id: LabelHierarchyEntity.Name },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Id) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Name) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.IsActive) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Parent) },\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Children) }\n];\n\nclass LabelsFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n _refScroll = React.createRef();\n\n getAdditionalLoadPromise = (args: IContextInitArgs) => {\n const query = prepareQuery({\n oData: this.props.storage.oData,\n bindingContext: args.bindingContext.getRootParent(),\n fieldDefs: hierarchyLoadFieldDefs\n });\n\n return toTuple([query.fetchData()]);\n };\n\n handleChange = (e: ISmartFieldChange) => {\n this.props.storage.handleChange(e);\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n };\n\n onAfterLoad = async () => {\n\n const storage = this.props.storage;\n const modelBc = storage.data.bindingContext;\n\n const hierarchy = storage.data.additionalResults[0].value;\n\n storage.getInfo(modelBc.navigate(LabelEntity.Name)).fieldSettings.color = hierarchy.Color;\n\n let items: ISelectItem[] = [];\n items.push({\n label: hierarchy.Name,\n id: HierarchyItemId,\n additionalData: {\n Parent: null,\n Children: hierarchy.Labels.filter((label: ILabelEntity) => !label.Parent.Id)\n }\n });\n\n for (const label of hierarchy.Labels) {\n items.push({\n label: label.Name,\n id: label.Id,\n color: this.props.theme[hierarchy.Color as keyof DefaultTheme],\n additionalData: {\n Parent: label.Parent.Id ? label.Parent : { Id: HierarchyItemId },\n Children: label.Children,\n IsActive: label.IsActive\n }\n });\n }\n\n // label which is being edited should appear in parent select tree, but should be disabled along witch it's children\n const disableBranch = (id: string) => {\n const item = items.find((item: ISelectItem) => item.id === id);\n if (item) {\n item.isDisabled = true;\n for (const child of item.additionalData.Children) {\n disableBranch(child.Id);\n }\n }\n };\n disableBranch(modelBc.getKey() as string);\n\n items = buildTreeFromAllItems(items);\n storage.getInfo(modelBc.navigate(LabelEntity.Parent)).fieldSettings.items = items;\n\n // label doesn't have any navigation property to hierarchy, this is just for select to act like it have\n // hierarchy as parent in parent select and has to be se to empty object before save\n if (!this.entity.Parent?.Id) {\n this.entity.Parent = { Id: HierarchyItemId as unknown as number };\n }\n\n // set color of the hierarchy, just to show it as disabled field\n storage.setValueByPath(BindingContext.localContext(\"LabelColor\"), hierarchy.Color);\n\n if (!!getQueryParameters()[QueryParam.NewLabelSaved]) {\n this.props.storage.displaySaveOkMessage(this.props.storage.t(\"Labels:Validation.Saved\"));\n removeQueryParam(this.props.storage.history, QueryParam.NewLabelSaved, true);\n }\n\n return super.onAfterLoad();\n };\n\n async onBeforeDelete(): Promise {\n this.props.storage.setCustomData({\n isDeleteButtonBusy: true\n });\n this.forceUpdate();\n\n let shouldConfirm = true;\n const label = this.entity;\n const isLabelUsed = await getUsedLabels([label.Id]);\n\n this.props.storage.setCustomData({\n isDeleteButtonBusy: false\n });\n this.forceUpdate();\n\n if (isLabelUsed.length > 0) {\n shouldConfirm = await this.props.confirmationDialog.open({\n content: this.props.storage.t(\"Labels:RemoveConfirmationText\", { labels: [label.Name] })\n });\n }\n\n return shouldConfirm;\n }\n\n save = async () => {\n this.props.onBeforeSave();\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n // label doesn't have any navigation property to hierarchy, this was set just for select to act like it have\n // hierarchy as parent in parent select and has to be se to empty object before save\n if (this.entity.Parent?.Id === HierarchyItemId as unknown as number) {\n this.entity.Parent = {};\n }\n\n const result = await this.props.storage.save({\n successSubtitle: this.props.storage.t(\"Labels:Validation.Saved\")\n });\n\n if (!result) {\n this.props.onSaveFail?.();\n if (isEmpty(this.props.storage.data.entity.Parent)) {\n this.entity.Parent.Id = HierarchyItemId as unknown as number;\n }\n } else {\n this.onAfterSave(isNew, false);\n }\n this.forceUpdate();\n\n return result;\n };\n}\n\nexport default withConfirmationDialog(withTheme(withPermissionContext(LabelsFormView)));","import { TEntityKey } from \"@odata/BindingContext\";\nimport { IDocumentLabelEntity, ILabelEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\n\nimport { REST_API_URL } from \"../../constants\";\nimport customFetch from \"../../utils/customFetch\";\n\nconst GET_REFERENCED_LABELS_PATH = `${REST_API_URL}/LabelHierarchies/GetReferencedLabels`;\n\nexport const getUsedLabels = async (labelsIds: TEntityKey[]): Promise => {\n const result = await customFetch(`${GET_REFERENCED_LABELS_PATH}?${labelsIds.map(id => `labelIds=${id}`).join(\"&\")}`);\n const labels = await result.json() as ODataQueryResult;\n\n return labels?.value;\n};\n\nexport function compareLabels(a: IDocumentLabelEntity[], b: IDocumentLabelEntity[]): boolean {\n if (a?.length !== b?.length) {\n return false;\n }\n return a?.every((label) => b.find(bLabel => bLabel.Label?.Id === label.Label?.Id) !== undefined);\n}","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { EntitySetName, EntityTypeName, LabelEntity, LabelHierarchyEntity } from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType } from \"../../enums\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition, TFieldDefinition } from \"../PageUtils\";\nimport LabelsFormView from \"./LabelFormView\";\nimport { labelColors } from \"./labelsHierarchyDef\";\n\n// fake field just to show disabled color of the parent hierarchy\nexport const LabelColorPath = BindingContext.localContext(\"LabelColor\");\n\nexport const isActiveDef: TFieldDefinition = {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n defaultValue: true\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n\n const auditTrailSummary: ISummaryItem[] = [{\n id: LabelEntity.Name,\n label: i18next.t(\"Labels:Label\")\n }];\n\n const summary: ISummaryItem[] = [];\n\n const form: IFormDef = {\n id: `${EntityTypeName.Label}Form`,\n summary,\n translationFiles: getDefinitions.translationFiles,\n formControl: LabelsFormView,\n isDeletable: true,\n auditTrailSummary,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Labels:New\"),\n storage.data.entity?.Name && i18next.t(\"Labels:Breadcrumbs.Label\", { name: storage.data.entity?.Name })),\n title: \"Labels:Title\",\n fieldDefinition: {\n [LabelColorPath]: {\n label: i18next.t(\"Labels:Form.Color\"),\n type: FieldType.ColorPicker,\n width: BasicInputSizes.XL,\n fieldSettings: {\n colors: labelColors\n },\n isDisabled: true\n },\n Parent: {\n type: FieldType.HierarchyComboBox,\n fieldSettings: {\n displayName: LabelEntity.Name,\n items: []\n },\n additionalProperties: [{ id: LabelEntity.IsActive }]\n },\n Name: {\n type: FieldType.TokenInput,\n width: BasicInputSizes.XL\n },\n IsActive: isActiveDef\n\n },\n groups: [{\n id: \"mainGroup\",\n rows: [\n [{ id: LabelEntity.Parent }, { id: LabelColorPath }],\n [{ id: LabelEntity.Name }, { id: LabelEntity.IsActive }]\n ]\n }]\n };\n\n const getEntitySet = (args: IGetValueArgs) => {\n const parentId = args.data?.parentId;\n return `${EntitySetName.LabelHierarchies}(${parentId})/${LabelHierarchyEntity.Labels}`;\n };\n\n return {\n entitySet: getEntitySet,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Common\", \"Labels\"];\nsetDefByEntityType(EntityTypeName.Label, getDefinitions);","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { buildTreeFromAllItems } from \"@components/inputs/select/SelectAPI\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { EntityTypeName, ILabelEntity, ILabelHierarchyEntity, LabelHierarchyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { prepareQuery } from \"@odata/OData.utils\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { QueryParam } from \"../../enums\";\nimport { AwaitedArray, toTuple } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { ROUTE_LABEL_HIERARCHIES } from \"../../routes\";\nimport { setBreadCrumbs } from \"../../views/formView/Form.utils\";\nimport { IContextInitArgs } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { hierarchyLoadFieldDefs } from \"./LabelFormView\";\nimport { getUsedLabels } from \"./Labels.utils\";\nimport {\n IExtendedLabelHierarchyEntity,\n labelColors,\n LabelHierarchyIsActivePath,\n LabelHierarchyParentPath\n} from \"./labelsHierarchyDef\";\n\ninterface IProps extends IFormViewProps, WithConfirmationDialog {\n\n}\n\nclass LabelsHierarchyFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n _refScroll = React.createRef();\n\n getAdditionalLoadPromise = (args: IContextInitArgs) => {\n if (args.bindingContext.isNew()) {\n const query = prepareQuery({\n oData: this.props.storage.oData,\n bindingContext: args.bindingContext.removeKey(),\n fieldDefs: hierarchyLoadFieldDefs\n });\n return toTuple([query.fetchData()]);\n }\n\n return undefined;\n };\n\n // todo do we want to use this everywhere? could it be done generically on FormView?\n getAdditionalResults(): AwaitedArray> {\n return this.props.storage.data.additionalResults;\n }\n\n getParentSelectInfo = (): IFieldInfo => {\n return this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(LabelHierarchyParentPath));\n };\n\n getUnusedColor = (): string => {\n const hierarchies = this.getAdditionalResults()[0];\n const usedColors = hierarchies.value.map((item) => item.Color);\n\n let unusedColor = labelColors[0];\n\n for (const color of labelColors) {\n if (usedColors.indexOf(color) === -1) {\n unusedColor = color;\n break;\n }\n }\n\n return unusedColor;\n };\n\n onAfterLoad = async () => {\n setBreadCrumbs(this.props.storage.getThis());\n\n const modelBc = this.props.storage.data.bindingContext;\n\n if (modelBc.isNew()) {\n // set as default color for hierarchy first unused from defined array\n const hierarchies = this.getAdditionalResults()[0].value;\n const unusedColor = this.getUnusedColor();\n\n this.props.storage.setValueByPath(LabelHierarchyEntity.Color, unusedColor);\n this.setDefaultParent();\n\n let items: ISelectItem[] = [];\n\n for (const hierarchy of hierarchies) {\n const labels = hierarchy.Labels.filter((label: ILabelEntity) => !label.Parent.Id);\n items.push({\n label: hierarchy.Name,\n // use Name as id instead of Id.\n // we use both LabelHierarchies and Labels in one Select,\n // => different entities, they could have same id and we need to differentiate between them.\n // WARNING: this means we have to expect Name instead of Id in other handle functions.\n id: hierarchy.Name,\n additionalData: {\n Id: hierarchy.Id,\n Labels: labels,\n // buildTreeFromAllItems expects children to be in Children\n Children: labels,\n Color: hierarchy.Color,\n type: EntityTypeName.LabelHierarchy\n }\n });\n\n for (const label of hierarchy.Labels) {\n const labelHierarchy = { ...hierarchy };\n\n items.push({\n label: label.Name,\n id: label.Id,\n color: this.props.storage.theme[hierarchy.Color as keyof DefaultTheme],\n additionalData: {\n Parent: label.Parent.Id ? label.Parent : { Id: hierarchy.Name },\n LabelHierarchy: labelHierarchy,\n Children: label.Children,\n IsActive: label.IsActive,\n type: EntityTypeName.Label\n }\n });\n }\n }\n\n items = buildTreeFromAllItems(items, \"Id\");\n this.getParentSelectInfo().fieldSettings.items = items;\n }\n\n this.props.storage.refresh();\n return super.onAfterLoad();\n };\n\n // used here and in CoA to preselect parent based on the row that were selected when user clicked on \"Add\" button\n setDefaultParent = (): void => {\n const hierarchies = this.getAdditionalResults()[0].value;\n const defaultParent: BindingContext = this.props.storage.getCustomData().Parent;\n let hierarchy: ILabelHierarchyEntity;\n\n if (defaultParent) {\n let parentId: string | number;\n\n if (defaultParent.getPath(true) === LabelHierarchyEntity.Labels) {\n // Label - store its id, which is used as select item id\n parentId = defaultParent.getKey();\n hierarchy = hierarchies.find(hierarchy => hierarchy.Id === defaultParent.getRootParent().getKey());\n } else {\n // LabelHierarchy - store its Name, which is used as select item id\n hierarchy = hierarchies.find(h => h.Id === defaultParent.getKey());\n parentId = hierarchy.Name;\n }\n\n this.props.storage.setValueByPath(LabelHierarchyParentPath, parentId);\n this.props.storage.setValueByPath(LabelHierarchyEntity.Color, hierarchy.Color);\n }\n };\n\n handleParentChange = (e: ISmartFieldChange) => {\n if (e.triggerAdditionalTasks && e.bindingContext.getPath() === LabelHierarchyParentPath) {\n const isParentHierarchy = e.additionalData?.type === EntityTypeName.LabelHierarchy;\n let parentBc: BindingContext;\n let color: string;\n\n\n if (e.value === null) {\n parentBc = null;\n color = this.getUnusedColor();\n } else if (isParentHierarchy) {\n // label hierarchy\n parentBc = this.props.storage.data.bindingContext.removeKey().addKey(e.additionalData.Id);\n color = e.additionalData.Color;\n } else {\n // label\n const hierarchyBc = this.props.storage.data.bindingContext.removeKey().addKey(e.additionalData.LabelHierarchy.Id);\n\n parentBc = hierarchyBc.navigate(LabelHierarchyEntity.Labels).addKey(e.value as number);\n color = this.getAdditionalResults()[0].value.find(hierarchy => hierarchy.Id === e.additionalData.LabelHierarchy.Id).Color;\n }\n\n this.props.storage.setValueByPath(LabelHierarchyEntity.Color, color);\n // change Parent and rerender table to change position of the new row\n this.props.storage.setCustomData({\n Parent: parentBc\n });\n this.props.onTableRefreshNeeded({\n modelRefreshOnly: true\n });\n\n this.props.storage.refreshGroupByKey(\"mainGroup\");\n }\n };\n\n handleChange = (e: ISmartFieldChange) => {\n this.handleParentChange(e);\n\n this.props.storage.handleChange(e);\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n };\n\n async onBeforeDelete(): Promise {\n const labels = this.entity.Labels ?? [];\n\n this.props.storage.setCustomData({\n isDeleteButtonBusy: true\n });\n this.forceUpdate();\n\n let shouldConfirm = true;\n const isLabelUsed = await getUsedLabels(labels.map(label => label.Id));\n\n this.props.storage.setCustomData({\n isDeleteButtonBusy: false\n });\n this.forceUpdate();\n\n if (isLabelUsed.length > 0) {\n shouldConfirm = await this.props.confirmationDialog.open({\n content: this.props.storage.t(\"Labels:RemoveConfirmationText\", { labels: labels.map(label => label.Name).join(\", \") })\n });\n }\n\n return shouldConfirm;\n }\n\n save = async () => {\n this.props.onBeforeSave();\n\n const entity = cloneDeep(this.entity);\n const isHierarchy = !entity[LabelHierarchyParentPath];\n const isNew = this.props.storage.data.bindingContext.isNew();\n let bindingContext: BindingContext;\n let hierarchyId: number;\n\n if (isHierarchy) {\n if (isNew) {\n entity.Company = { Id: this.context.getCompany().Id };\n }\n bindingContext = this.props.storage.data.bindingContext;\n } else {\n const parentId = entity[LabelHierarchyParentPath];\n const parentSelectItems = this.getParentSelectInfo().fieldSettings.items;\n const parentItem = parentSelectItems.find(i => i.id === parentId);\n const isParentHierarchy = parentItem?.additionalData?.type === EntityTypeName.LabelHierarchy;\n\n hierarchyId = isParentHierarchy ? parentItem.additionalData.Id : parentItem.additionalData.LabelHierarchy.Id;\n bindingContext = this.props.storage.data.bindingContext.removeKey().addKey(hierarchyId).navigate(LabelHierarchyEntity.Labels).addKey(0, true);\n (entity as ILabelEntity).Parent = !isParentHierarchy && parentId ? { Id: parentId as number } : null;\n (entity as ILabelEntity).IsActive = entity[LabelHierarchyIsActivePath];\n delete entity.Color;\n }\n\n const result = await this.props.storage.save({\n successSubtitle: this.props.storage.t(\"Labels:Validation.Saved\"),\n data: entity,\n bindingContext\n });\n\n if (!result) {\n this.props.onSaveFail?.();\n } else {\n if (isHierarchy) {\n setBreadCrumbs(this.props.storage.getThis());\n this.onAfterSave(isNew, false);\n } else {\n // custom handling for when Label is created from LabelHierarchy form,\n // redirect to Label form and manually refresh table\n const pathname = `${ROUTE_LABEL_HIERARCHIES}/${hierarchyId}/${LabelHierarchyEntity.Labels}/${result.data.Id}`;\n this.props.storage.history.push({ pathname, search: `${QueryParam.NewLabelSaved}=true` });\n this.props.onTableRefreshNeeded();\n }\n }\n this.forceUpdate();\n\n return result;\n };\n}\n\nexport default withConfirmationDialog(withPermissionContext(LabelsHierarchyFormView));","import { getSimpleBoolSelectItems, IGetValueArgs, TInfoValue } from \"@components/smart/FieldInfo\";\nimport {\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TCellValue } from \"@components/table\";\nimport { tableTokenFormatter } from \"@components/token\";\nimport { createPath, IEntity } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n ILabelHierarchyEntity,\n LabelEntity,\n LabelHierarchyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType, Sort, ValueType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { activeFormatter } from \"../chartOfAccounts/ChartOfAccountsDef\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { isActiveDef } from \"./LabelsDef\";\nimport LabelsHierarchyFormView from \"./labelsHierarchyFormView\";\n\nexport const labelColors = [\n \"C_LAB_grey\",\n \"C_LAB_yellow\",\n \"C_LAB_green\",\n \"C_LAB_blue\",\n \"C_LAB_purple\",\n \"C_LAB_orange\"\n];\n\nexport const LabelHierarchyIsActivePath = \"##IsActive##\";\nexport const LabelHierarchyParentPath = \"##Parent##\";\n\nexport interface IExtendedLabelHierarchyEntity extends ILabelHierarchyEntity {\n [LabelHierarchyIsActivePath]: boolean;\n [LabelHierarchyParentPath]: number | string;\n}\n\n// new form is opened and parent is selected ==> creating new label, not hierarchy\nconst isCreatingLabel: TInfoValue = (args: IGetValueArgs) => {\n const entity = args.storage.data.entity as IExtendedLabelHierarchyEntity;\n\n return args.bindingContext.getRootParent().isNew() && !!entity?.[LabelHierarchyParentPath];\n};\n\nconst tokenFormatter = (val: TValue, values: IEntity): TCellValue => {\n const color = values.entity?.rootEntity?.Color ?? \"\";\n const title = val as string;\n\n return tableTokenFormatter(title, color);\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n createQuery: false,\n allowCustomFilters: true,\n defaultFilters: [\n LabelHierarchyEntity.Name,\n createPath(LabelHierarchyEntity.Labels, LabelEntity.IsActive)\n ],\n filterDefinition: {\n Name: {\n // filter on both Name itself (\"\") and Labels/Name, which navigates from root entity \"/\"\n filterName: [\"\", \"/Labels/Name\"]\n },\n \"Labels/IsActive\": {\n type: FieldType.MultiSelect,\n valueType: ValueType.Boolean,\n description: false,\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n },\n \"Labels/Parent\": {\n fieldSettings: {\n displayName: \"Name\"\n }\n // isValueHelp: true\n // filterName: [\"\"]\n },\n ...getCommonFilterDefs()\n }\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.LabelHierarchy}Table`,\n initialSortBy: [{\n id: LabelHierarchyEntity.Name,\n sort: Sort.Asc\n }],\n columns: [\n LabelHierarchyEntity.Name,\n LabelHierarchyIsActivePath\n ],\n columnDefinition: {\n Name: {\n isRequired: true,\n isDisabled: true,\n formatter: tokenFormatter,\n additionalProperties: [{ id: `/${LabelHierarchyEntity.Color}` }]\n },\n ...getCommonTableColumnsDefs(),\n // we need the column to have same id here and in childColumns,\n // but IsActive isn't in LabelHierarchy entity type, only in Label type => using local context instead\n [LabelHierarchyIsActivePath]: {\n label: i18next.t(\"Labels:IsActive\"),\n disableSort: true\n }\n },\n childColumns: [\n // define Name again for childColumns, even though its already defined in columns/columnDefinition\n // label will be reused, because we cant have multiple labels for one column\n // but we don't want to have Color as additionalProperties for childColumns, because Color doesn't exist on Labels\n {\n id: LabelEntity.Name,\n formatter: tokenFormatter\n },\n {\n id: LabelHierarchyIsActivePath,\n additionalProperties: [\n { id: `/${LabelEntity.IsActive}` }\n ],\n formatter: activeFormatter\n },\n { id: LabelEntity.DateLastModified },\n { id: LabelEntity.DateCreated },\n withDisplayName(LabelEntity.CreatedBy).CreatedBy,\n withDisplayName(LabelEntity.LastModifiedBy).LastModifiedBy\n ],\n title: i18next.t(\"Labels:Title\"),\n filterBarDef\n };\n\n const auditTrailSummary: ISummaryItem[] = [{\n id: LabelHierarchyEntity.Name,\n label: i18next.t(\"Labels:LabelHierarchy\")\n }];\n\n const summary: ISummaryItem[] = [];\n const form: IFormDef = {\n id: `${EntityTypeName.LabelHierarchy}Form`,\n summary,\n translationFiles: getDefinitions.translationFiles,\n formControl: LabelsHierarchyFormView,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Labels:New\"),\n storage.data.entity?.Name && i18next.t(\"Labels:Breadcrumbs.Hierarchy\", { name: storage.data.entity?.Name })),\n title: \"Labels:Title\",\n auditTrailSummary,\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.XL\n },\n Color: {\n type: FieldType.ColorPicker,\n width: BasicInputSizes.XL,\n fieldSettings: {\n colors: labelColors\n },\n isDisabled: isCreatingLabel\n },\n [LabelHierarchyIsActivePath]: {\n ...isActiveDef,\n label: i18next.t(\"Labels:Form.IsActive\"),\n isVisible: isCreatingLabel,\n customizationData: {\n useForCustomization: false\n }\n },\n [LabelHierarchyParentPath]: {\n label: i18next.t(\"Labels:Form.Parent\"),\n width: BasicInputSizes.M,\n type: FieldType.HierarchyComboBox,\n isDisabled: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n },\n fieldSettings: {\n displayName: LabelEntity.Name,\n items: [],\n noRecordText: i18next.t(\"Common:Select.NoRecord\")\n },\n affectedFields: [{ id: LabelHierarchyIsActivePath }]\n }\n\n },\n groups: [{\n id: \"mainGroup\",\n rows: [\n [{ id: LabelHierarchyParentPath }, { id: LabelHierarchyEntity.Color }],\n [{ id: LabelHierarchyEntity.Name }, { id: LabelHierarchyIsActivePath }]\n ]\n }],\n additionalProperties: [\n // needed in onBeforeDelete check\n { id: createPath(LabelHierarchyEntity.Labels, LabelEntity.Name) }\n ]\n };\n\n return {\n entitySet: EntitySetName.LabelHierarchies,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Common\", \"Labels\"];\nsetDefByEntityType(EntityTypeName.LabelHierarchy, getDefinitions);","import { ICommunicationEntryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport React from \"react\";\n\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\n\ninterface IProps extends IFormViewProps {}\n\nclass MessagesFormView extends FormViewForExtend {\n static defaultProps = {\n formProps: {\n shouldHideAuditTrail: true\n }\n };\n\n handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n return false;\n }\n\n renderButtons = (): React.ReactElement => {\n return null;\n };\n}\n\nexport default withPermissionContext(MessagesFormView);\n","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { EntitySetName, EntityTypeName, ICommunicationEntryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CommunicationEntryChannelCode, CommunicationEntryTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport React, { lazy, Suspense } from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { FieldType, LabelStatus, Sort } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport { formatCurrency } from \"../../types/Currency\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { StyledMessageContent } from \"./Messages.styles\";\nimport MessagesFormView from \"./MessagesFormView\";\n\nconst Linkify = lazy(() => import(\"linkify-react\"));\n\nexport const isEmail = (args: IGetValueArgs): boolean => {\n return args.storage.data.entity.ChannelCode === CommunicationEntryChannelCode.Email;\n};\n\nexport const isDataBox = (args: IGetValueArgs): boolean => {\n return args.storage.data.entity.ChannelCode === CommunicationEntryChannelCode.DataMessage;\n};\n\nexport const isBankApi = (args: IGetValueArgs): boolean => {\n return args.storage.data.entity.ChannelCode === CommunicationEntryChannelCode.BankAPI;\n};\n\nconst messageIdFormatter = (entity: ICommunicationEntryEntity) => {\n return `${getEnumDisplayValue(EntityTypeName.CommunicationEntryChannel, entity.ChannelCode)} ${entity.MessageId ?? \"\"}`;\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"DateSent\",\n \"Recipient\",\n \"Sender\",\n \"Channel\"\n ],\n filterDefinition: {\n ...withDisplayName(\"User\"),\n DateSent: {},\n Recipient: {},\n Sender: {},\n ...withDisplayName(\"Channel\"),\n RecipientAddress: {\n filterName: [\"\", \"/SenderAddress\"]\n },\n RecipientDataboxId: {\n filterName: [\"\", \"/SenderDataboxId\"]\n },\n RecipientEmail: {\n filterName: [\"\", \"/SenderEmail\"]\n },\n RecipientLegalNumber: {\n filterName: [\"\", \"/SenderLegalNumber\"]\n },\n DateLastModified: {},\n MessageId: {},\n Subject: {}\n },\n isValueHelp: true\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.CommunicationEntry}Table`,\n filterBarDef,\n filter: `TypeCode eq '${CommunicationEntryTypeCode.Sent}'`,\n columns: [\n \"DateSent\",\n \"Channel\",\n \"Subject\",\n \"Recipient\"\n ],\n columnDefinition: {\n DateSent: { id: \"DateSent\" },\n Recipient: { id: \"Recipient\" },\n Subject: { id: \"Subject\" },\n Sender: { id: \"Sender\" },\n ...withDisplayName(\"Channel\")\n },\n title: i18next.t(\"Messages:Title\"),\n initialSortBy: [{ id: \"DateSent\", sort: Sort.Desc }]\n };\n\n const summary: ISummaryItem[] = [{\n id: \"MessageId\",\n additionalData: \"ChannelCode\",\n formatter: (val, args) => {\n return messageIdFormatter(args.entity);\n }\n }, {\n id: \"Subject\",\n label: i18next.t(\"Messages:Subject\")\n }];\n\n const files = {\n collection: \"Attachments\",\n property: \"File\"\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.CommunicationEntry}Form`,\n title: i18next.t(\"Messages:SentMessage\"),\n summary,\n files,\n isReadOnly: true,\n getItemBreadCrumbText: (storage: Model) => messageIdFormatter(storage.data.entity),\n translationFiles: getDefinitions.translationFiles,\n formControl: MessagesFormView,\n additionalProperties: [\n { id: \"TypeCode\" },\n { id: \"ChannelCode\" }, {\n id: \"Attachments\",\n additionalProperties: [{\n id: \"File\",\n additionalProperties: [\n { id: \"Name\" },\n { id: \"Size\" }, { id: \"DateCreated\" }, { id: \"DateLastModified\" }]\n }]\n }],\n fieldDefinition: {\n \"User/Name\": {\n isVisible: (args: IGetValueArgs) => {\n return args.storage.data.entity.ChannelCode === CommunicationEntryChannelCode.DataMessage;\n }\n },\n Recipient: {\n isVisible: isDataBox\n },\n RecipientAddress: {\n isVisible: isDataBox\n },\n RecipientEmail: {\n isVisible: isEmail,\n formatter: (val: TValue) => {\n return (val as string)?.split(\";\")?.[0];\n }\n },\n [BindingContext.localContext(\"EmailCopies\")]: {\n label: i18next.t(\"Messages:Copies\"),\n isVisible: (args: IGetValueArgs) => {\n const entity = args.storage.data.entity;\n return entity.RecipientEmail?.split(\";\").length > 1 && entity.ChannelCode === CommunicationEntryChannelCode.Email;\n },\n formatter: (val: TValue, args) => {\n const copies = removeWhiteSpace(args.entity.RecipientEmail)?.split(\";\");\n copies?.shift();\n return copies?.join(\"\\n\");\n }\n },\n RecipientDataboxId: {\n isVisible: isDataBox\n },\n RecipientLegalNumber: {\n isVisible: isDataBox\n },\n Sender: {},\n SenderAddress: {\n isVisible: isDataBox\n },\n SenderDataboxId: {\n isVisible: isDataBox\n },\n SenderEmail: {\n isVisible: isEmail\n },\n SenderLegalNumber: {\n isVisible: isDataBox\n },\n DateSent: {},\n Text: {\n type: FieldType.Custom,\n labelStatus: LabelStatus.Removed,\n render: (args: IFieldDefFn) => {\n const val = args.storage.getValueByPath(\"Text\");\n return (\n }>\n \n {(val as string)?.split(\"\\\\n\").map((row, idx) => {\n return (\n \n {row}\n
    \n
    \n );\n })}\n
    \n
    \n
    );\n }\n },\n RecipientBankName: {\n isVisible: isBankApi\n },\n TimeSent: {\n isVisible: isBankApi\n },\n PaymentOrderAmount: {\n additionalProperties: [{ id: \"/PaymentOrderCurrency\" }],\n formatter: (val: TValue, args: IFormatOptions) => {\n return formatCurrency(val, args.entity.PaymentOrderCurrency);\n },\n isVisible: isBankApi\n },\n [BindingContext.localContext(\"RecipientBankAccount\")]: {\n label: i18next.t(\"Messages:AccountNumber\"),\n type: FieldType.ComboBox,\n additionalProperties: [{\n id: \"RecipientBankAccountNumber\"\n }, {\n id: \"RecipientBankAccountName\"\n }, {\n id: \"RecipientBankAccountCurrency\"\n }],\n fieldSettings: {\n shouldDisplayAdditionalColumns: true,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const {\n RecipientBankAccountNumber,\n RecipientBankAccountName,\n RecipientBankAccountCurrency\n } = args.storage.data.entity;\n return [{\n id: 1,\n label: RecipientBankAccountNumber,\n tabularData: [RecipientBankAccountCurrency, RecipientBankAccountName]\n }];\n }\n },\n columns: [\n { id: \"RecipientBankAccountNumber\" },\n { id: \"RecipientBankAccountCurrency\" },\n { id: \"RecipientBankAccountName\" }\n ],\n isVisible: isBankApi\n }\n },\n groups: [{\n id: \"sender\",\n title: i18next.t(\"Messages:SenderGroupTitle\"),\n rows: [[{ id: \"SenderEmail\" }], [{ id: \"Sender\" }, { id: \"SenderLegalNumber\" }, { id: \"SenderDataboxId\" }, { id: \"SenderAddress\" },\n { id: \"User/Name\" }, { id: \"DateSent\" }, { id: \"TimeSent\" }]]\n }, {\n id: \"recipient\",\n title: i18next.t(\"Messages:ReceiverGroupTitle\"),\n rows: [[{ id: \"RecipientBankName\" }, { id: \"Recipient\" }, { id: \"RecipientLegalNumber\" }, { id: \"RecipientDataboxId\" }, { id: \"RecipientEmail\" },\n { id: BindingContext.localContext(\"EmailCopies\") }, { id: \"RecipientAddress\" }]]\n }, {\n id: i18next.t(\"Messages:Messages\"),\n title: i18next.t(\"Messages:Message\"),\n rows: [[{ id: BindingContext.localContext(\"RecipientBankAccount\") }, { id: \"PaymentOrderAmount\" }, { id: \"Text\" }]]\n }]\n };\n\n return {\n entitySet: EntitySetName.CommunicationEntries,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\n \"Messages\",\n \"Error\",\n getEnumNameSpaceName(EntityTypeName.CommunicationEntryChannel)\n];\nsetDefByEntityType(EntityTypeName.CommunicationEntry, getDefinitions);\n","import { IconButton } from \"@components/button\";\nimport { CheckboxContainer } from \"@components/inputs/checkbox/Checkbox.styles\";\nimport Field from \"@components/inputs/field\";\nimport styled from \"styled-components/macro\";\n\nimport Alert from \"../../components/alert/Alert\";\nimport { T_PLAIN_big } from \"../../global.style\";\nimport { DataBoxState } from \"./SendMessageDialog\";\nimport Clickable from \"@components/clickable\";\nimport TextArea from \"@components/inputs/textArea\";\n\nexport const AlertStyled = styled(Alert)`\n margin-bottom: 27px;\n`;\n\nexport const IconButtonStyled = styled(IconButton)`\n margin-left: 10px;\n`;\n\nexport const StyledMessageContent = styled.div`\n white-space: pre-wrap;\n a {\n color: ${props => props.theme.C_TEXT_link};\n }\n`;\n\nexport const MaxWidthField = styled(Field) `\n width: 100%;\n`;\n\nexport const ContentEditableMessage = styled.div`\n ${T_PLAIN_big};\n width: 100%;\n min-height: 250px;\n background-color: ${props => props.theme.C_FIELD_fill};\n border: 1px solid ${props => props.theme.C_FIELD_line};\n padding: 5px 12px;\n white-space: pre-wrap;\n\n outline: 0px solid transparent;\n border-radius: 3px;\n \n &:hover,\n &:focus {\n border-color: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n \n a {\n color: ${props => props.theme.C_TEXT_link};\n }\n`;\n\nexport const TextAreaSubject = styled(TextArea) `\n & > input {\n border-radius: 3px;\n }\n`;\n\nexport const CheckboxWrapper = styled.div`\n ${T_PLAIN_big};\n display: flex;\n align-items: center;\n line-height: 14px;\n\n ${CheckboxContainer} {\n margin-right: 13px;\n }\n\n svg {\n margin-right: 6px;\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n`;\n\nexport const IconWrapper = styled.div<{ state: string }>`\n display: inline-flex;\n align-items: center;\n margin-left: -10px;\n \n .SI_4L_stroke_fill_green {\n fill: ${props => props.state === DataBoxState.Empty ? \"#fff\" : props.state === DataBoxState.Blocked ? props.theme.C_SEM_el_bad : props.theme.C_SEM_el_good};\n }\n`;\n\nexport const DataBoxInfo = styled.table`\n ${T_PLAIN_big};\n margin: -8px 8px 11px;\n\n tr td:first-child {\n font-weight: 600;\n }\n`;\n\nexport const ClickableMessage = styled(Clickable) `\n display: flex;\n align-items: center;\n`;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { FileToolbarItem } from \"@components/fileViewers/FileViewers.utils\";\nimport {\n AttachmentIcon,\n FieldValidationNegativeIcon,\n FieldValidationPositiveIcon,\n FieldValidationWarningIcon\n} from \"@components/icon\";\nimport { Autocomplete } from \"@components/inputs/select/Autocomplete\";\nimport { ISelectGroup, ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport Switch from \"@components/inputs/switch\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport TextArea from \"@components/inputs/textArea\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { DataBoxEntity, EntitySetName, IDataBoxEntity, IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode } from \"@odata/GeneratedEnums\";\nimport { parseResponse } from \"@odata/ODataParser\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { logger } from \"@utils/log\";\nimport { isAbortException } from \"@utils/oneFetch\";\nimport { debounce } from \"lodash\";\nimport React, { lazy, ReactElement, Suspense } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { Button } from \"../../components/button\";\nimport { SegmentedButton } from \"../../components/button/SegmentedButton\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport PDFViewer from \"../../components/fileViewers/pdfViewer/PDFViewer\";\nimport Checkbox from \"../../components/inputs/checkbox/Checkbox\";\nimport Field from \"../../components/inputs/field/Field\";\nimport FieldsWrapper from \"../../components/inputs/field/FieldsWrapper\";\nimport { IInputOnChangeEvent } from \"../../components/inputs/input/Input\";\nimport { DATABOX_REST_URL, EMAIL_REGEX, INPUT_DEBOUNCE_TIME } from \"../../constants\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { BasicInputSizes, HTTPStatusCode, IconSize, LabelStatus, Status } from \"../../enums\";\nimport { TRecordAny } from \"../../global.types\";\nimport { KeyName } from \"../../keyName\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport TestIds from \"../../testIds\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport {\n AlertStyled,\n CheckboxWrapper,\n ClickableMessage,\n ContentEditableMessage,\n DataBoxInfo,\n MaxWidthField,\n TextAreaSubject\n} from \"./Messages.styles\";\n\nconst Linkify = lazy(() => import(\"linkify-react\"));\n\nenum MessageType {\n Email = \"email\",\n DataBox = \"dataBox\"\n}\n\nexport enum DataBoxState {\n Empty = \"empty\",\n Blocked = \"blocked\",\n Enabled = \"enabled\"\n}\n\ninterface IProps extends WithTranslation, WithOData, WithPermissionContext {\n title: string;\n message: ReactElement;\n addSignature?: boolean;\n subject: string;\n emailSettings: IEmailSettings;\n dataBoxSettings: IDataBoxSettings;\n fileSettings?: IFileSettings[];\n onAfterOpen?: () => void;\n onAfterSend?: () => void;\n handleClose: () => void;\n additionalRequestData?: TRecordAny;\n}\n\nexport interface IEmailSettings {\n selectGroups?: ISelectGroup[];\n selectItems?: ISelectItem[];\n sendMessageUrl: string;\n defaultEmail?: string;\n}\n\nexport interface IDataBoxSettings {\n defaultId?: string;\n sendMessageUrl: string;\n isReport?: boolean;\n}\n\nexport interface IFileSettings {\n name?: string;\n previewUrl?: string;\n fileId?: number;\n shouldHideCheckBox?: boolean;\n}\n\ninterface ICzechDataboxFromAPI {\n Ico: string,\n IdOVM: string,\n NazevOsoby: string,\n ISDS: string,\n PDZ: boolean,\n TypSubjektu: string,\n AdresaSidla: {\n AdresaTextem: string,\n OkresNazev: string,\n ObecNazev: string,\n CastObceNazev: string,\n UliceNazev: string,\n PostaKod: string,\n TypCislaDomovnihoKod: string,\n CisloDomovni: string,\n CisloOrientacni: string,\n CisloOrientacniPismeno: string\n },\n IdentifikatorOvm: string,\n KategorieOvm: string\n}\n\ninterface IState {\n // message content\n dataBoxId: string;\n subject: string;\n email: string;\n emailCopies: string;\n includedFiles: number[];\n message: ReactElement;\n // dialog state\n isBusy: boolean;\n messageType: string;\n emailError: IValidationError;\n emailCopiesError: IValidationError;\n dataBox: ICzechDataboxFromAPI;\n dataBoxSelectItems: ISelectItem[];\n showEmailCopyField: boolean;\n showPreview: boolean;\n selectedFile: number;\n canSendByDataBox: boolean;\n companyDataBoxId: string;\n alert: IAlertProps,\n warnAlert: IAlertProps,\n subjectError: IValidationError\n}\n\nconst DATA_BOX_MESSAGE_PRICE = 15;\n\nclass SendMessageDialog extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static findDataBoxByIdUrl = `${DATABOX_REST_URL}/check/`;\n static dataBoxIdSearchUrl = `${DATABOX_REST_URL}/search/`;\n static checkDataBoxCreditUrl = `${DATABOX_REST_URL}/credit`;\n static canSendMessageUrl = `${DATABOX_REST_URL}/CanSendMessage`;\n\n _messageRef = React.createRef();\n\n state: IState = {\n dataBoxId: \"\",\n subject: \"\",\n message: null,\n emailCopies: \"\",\n email: \"\",\n emailError: null,\n emailCopiesError: null,\n includedFiles: [],\n dataBoxSelectItems: [],\n dataBox: null,\n isBusy: true,\n messageType: MessageType.Email,\n showEmailCopyField: false,\n showPreview: false,\n selectedFile: null,\n canSendByDataBox: false,\n companyDataBoxId: null,\n alert: null,\n warnAlert: null,\n subjectError: null\n };\n\n getIconState = memoizeOne((dataBox: ICzechDataboxFromAPI): DataBoxState => {\n if (dataBox) {\n return !dataBox.PDZ && !dataBox.IdOVM ? DataBoxState.Blocked : DataBoxState.Enabled;\n }\n return DataBoxState.Empty;\n });\n\n searchForDataBoxes = debounce(async (value: string) => {\n try {\n const response = await customFetch(`${SendMessageDialog.dataBoxIdSearchUrl}${value}`);\n if (!response.ok) {\n logger.warn(\"Hasn't found any data box.\");\n } else {\n const searchResult = await response.json();\n const dataBoxSelectItems: ISelectItem[] = [];\n\n for (const dataBox of searchResult) {\n dataBoxSelectItems.push({\n id: dataBox.ISDS,\n label: dataBox.ISDS,\n tabularData: [`${dataBox.NazevOsoby ?? \"\"}`, `${dataBox.ISDS ?? \"\"}`, dataBox.Ico]\n });\n }\n this.setState({ dataBoxSelectItems });\n }\n } catch (e) {\n if (isAbortException(e)) {\n return;\n } else {\n logger.error(\"error in data box search\", e);\n }\n }\n }, INPUT_DEBOUNCE_TIME);\n\n componentDidMount = async () => {\n const canSendByDataBox = await this.agendaCanSendByDataBox();\n const includedFiles = this.props.fileSettings?.map(file => file.fileId) ?? [];\n\n this.setState({ canSendByDataBox, includedFiles, isBusy: false });\n };\n\n componentDidUpdate = async (prevProps: IProps) => {\n const defaultId = this.props.dataBoxSettings.defaultId;\n if (this.props.emailSettings?.selectItems?.[0] && prevProps.emailSettings !== this.props.emailSettings) {\n this.setState({ email: this.props.emailSettings.selectItems[0].id });\n }\n\n if (this.props.fileSettings !== prevProps.fileSettings) {\n const includedFiles = this.props.fileSettings?.map(file => file.fileId) ?? [];\n this.setState({ includedFiles });\n }\n\n if (prevProps.dataBoxSettings.defaultId !== defaultId) {\n this.setState({ dataBoxId: defaultId, dataBox: null });\n if (defaultId) {\n await this.fetchDataBox(defaultId);\n }\n }\n };\n\n agendaCanSendByDataBox = async () => {\n if (!this.props.permissionContext.companyPermissions.has(CompanyPermissionCode.DataBox)) {\n return false;\n }\n const result = await this.props.oData\n .getEntitySetWrapper(EntitySetName.DataBoxes)\n .query()\n .select(DataBoxEntity.DataBoxId, DataBoxEntity.CanSendMessages, DataBoxEntity.IsActive)\n .top(1)\n .fetchData();\n\n this.setState({ companyDataBoxId: result.value[0]?.DataBoxId });\n\n return result.value[0]?.CanSendMessages && result.value[0]?.IsActive;\n };\n\n handleCloseDialog = () => {\n this.props.handleClose();\n };\n\n getMessage = () => {\n // replace default contenteditable div line breaks with new line chars, and strip all other html tags\n const div = document.createElement(\"div\");\n div.innerHTML = this._messageRef.current.innerHTML.replace(/
    /g, \"\\n\");\n return div.textContent || \"\";\n };\n\n handleContentEditableDivKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter) {\n // prevent dialog confirmation\n e.stopPropagation();\n }\n };\n\n getWarnAlert = () => {\n return ();\n };\n\n getAlert = () => {\n return ();\n };\n\n setDefaults = async () => {\n const context = this.context as IAppContext;\n const user = context.getData().userSettings as IUserEntity;\n const company = context.getCompany();\n const organizationName = context.getData().tenant?.Name;\n\n // there shall be some templates in the future\n this.setState({\n message: (<>\n {this.props.message}\n {this.props.addSignature && <>S přáním pěkného dne

    \n {user.Name}
    \n účetní pro {company.LegalName}
    \n E-mail: {user.Email}
    \n {organizationName}
    }),\n subject: this.props.subject,\n email: this.props.emailSettings.defaultEmail ?? this.state.email,\n alert: null,\n warnAlert: null\n });\n };\n\n onAfterOpen = async () => {\n await this.props.onAfterOpen?.();\n await this.setDefaults();\n };\n\n handleSendMessage = async () => {\n this.setState({ isBusy: true });\n const isEmail = MessageType.Email === this.state.messageType;\n const url = isEmail ? this.props.emailSettings.sendMessageUrl : this.props.dataBoxSettings.sendMessageUrl;\n const recipient = isEmail ? this.state.email : this.state.dataBoxId;\n\n const requestBody: TRecordAny = {\n To: recipient,\n Subject: this.state.subject,\n Message: this.getMessage(),\n IncludeFile: !!this.state.includedFiles?.length,\n UseFileIds: this.state.includedFiles.filter(fileId => Number.isInteger(fileId)),\n ...this.props.additionalRequestData\n };\n\n if (isEmail && this.state.emailCopies) {\n requestBody.Copy = this.state.emailCopies.replace(\" \", \"\").split(\",\");\n }\n\n const response = await customFetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify(requestBody)\n });\n\n this.setState({ isBusy: false });\n\n if (!response.ok) {\n const title = this.props.t(\"Common:Errors.ErrorHappened\");\n let subtitleKey;\n switch (response.status) {\n case HTTPStatusCode.NotFound:\n subtitleKey = \"DataBox:Errors.NotFound\";\n break;\n case HTTPStatusCode.Unauthorized:\n subtitleKey = \"DataBox:Errors.Unauthorized\";\n break;\n case HTTPStatusCode.Conflict:\n subtitleKey = \"DataBox:Errors.Conflict\";\n break;\n }\n let alert: IAlertProps;\n if (!subtitleKey) {\n const error = await parseResponse(response);\n alert = getAlertFromError(error as ODataError);\n } else {\n alert = {\n status: Status.Error,\n title, subTitle: this.props.t(subtitleKey)\n };\n }\n this.setState({ alert });\n } else {\n this.props.onAfterSend?.();\n this.handleCloseDialog();\n }\n };\n\n fetchDataBox = async (dataBoxId: string) => {\n try {\n const response = await customFetch(`${SendMessageDialog.findDataBoxByIdUrl}${dataBoxId}`);\n\n if (!response.ok) {\n logger.warn(\"Data box not found\");\n return;\n } else {\n const data = await response.json();\n const dataBox = data?.[0];\n this.setState({ dataBox });\n if (this.getIconState(dataBox) === DataBoxState.Enabled && !dataBox.IdOVM) {\n await this.checkIfMessageCanBeSend(dataBoxId);\n }\n }\n } catch (e) {\n if (isAbortException(e)) {\n return;\n } else {\n logger.error(\"error in data box fetch\", e);\n }\n }\n };\n\n checkIfMessageCanBeSend = async (dataBoxId: string) => {\n const response = await customFetch(`${SendMessageDialog.canSendMessageUrl}`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({ To: dataBoxId })\n });\n\n if (!response.ok) {\n const creditResponse = await customFetch(`${SendMessageDialog.checkDataBoxCreditUrl}`);\n if (creditResponse.ok) {\n const credit = await creditResponse.text();\n if (parseInt(credit) < DATA_BOX_MESSAGE_PRICE) {\n const warnAlert = {\n status: Status.Warning,\n title: this.props.t(\"DataBox:DataBoxProblem\", { dataBoxId: this.state.companyDataBoxId }),\n subTitle: this.props.t(\"DataBox:LowCredit\", { credit })\n };\n this.setState({ warnAlert });\n }\n } else {\n logger.warn(\"couldn't fetch data box credit\");\n }\n }\n };\n\n handleDataBoxChange = async (e: ISelectionChangeArgs) => {\n const value = e.value as string;\n this.setState({ dataBoxId: value, warnAlert: null, alert: null });\n if (value?.length === 7) {\n try {\n await this.fetchDataBox(value);\n } catch (e) {\n if (isAbortException(e)) {\n return;\n } else {\n logger.error(\"error in data box fetch\", e);\n }\n }\n this.setState({ dataBoxSelectItems: [] });\n } else {\n this.setState({ dataBox: null });\n }\n };\n\n handleFormTypeChange = (messageType: string) => {\n this.setState({ messageType, alert: null, warnAlert: null });\n // wait for data box icon to render, so we can pass ref to tooltip\n setTimeout(() => {\n this.forceUpdate();\n });\n };\n\n handleSubjectChange = (e: IInputOnChangeEvent) => {\n const subjectError = e.value ? null : {\n message: this.props.t(\"Common:Validation.Required\")\n };\n this.setState({ subject: e.value, subjectError });\n };\n\n handleEmailChange = (e: ISelectionChangeArgs) => {\n this.setState({ email: e.value as string, emailError: null });\n };\n\n validateEmail = () => {\n if (!EMAIL_REGEX.test(this.state.email)) {\n this.setState({ emailError: { message: this.props.t(\"Messages:EmailErrorMessage\") } });\n }\n };\n\n validateCopies = (): void => {\n const copies = this.state.emailCopies;\n if (copies && copies.split(\",\").some((copy: string) => !EMAIL_REGEX.test(copy.trim()))) {\n this.setState({ emailCopiesError: { message: this.props.t(\"Messages:EmailErrorMessage\") } });\n }\n };\n\n handleEmailCopiesChange = (e: IInputOnChangeEvent) => {\n this.setState({ emailCopies: e.value, emailCopiesError: null });\n };\n\n toggleEmail = () => {\n this.setState({ emailCopies: \"\", showEmailCopyField: !this.state.showEmailCopyField });\n };\n\n includeFile = (value: boolean, fileId: number) => {\n const includedFiles = [...this.state.includedFiles];\n const index = includedFiles.indexOf(fileId);\n if (!value && index > -1) {\n includedFiles.splice(index, 1);\n } else if (value) {\n includedFiles.push(fileId);\n }\n this.setState({ includedFiles });\n };\n\n togglePreview = (selectedFile?: number) => {\n this.setState({ showPreview: !this.state.showPreview, selectedFile });\n };\n\n getIconFromDataBoxState = (state: DataBoxState): ReactElement => {\n let Icon;\n let title = \"Negative\";\n\n switch (state) {\n case DataBoxState.Enabled:\n Icon = FieldValidationPositiveIcon;\n title = \"Positive\";\n break;\n case DataBoxState.Blocked:\n Icon = FieldValidationWarningIcon;\n title = \"Warning\";\n break;\n default:\n Icon = FieldValidationNegativeIcon;\n }\n return ;\n };\n\n renderForm = () => {\n const dataBox = this.state.dataBox;\n const dataBoxState = this.getIconState(dataBox);\n const icon = this.getIconFromDataBoxState(dataBoxState);\n const dataBoxIsReadOnly = !this.props.dataBoxSettings?.isReport;\n\n return (<>\n {this.state.warnAlert && this.getWarnAlert()}\n {this.state.alert && this.getAlert()}\n {this.state.messageType === MessageType.DataBox &&\n <>\n \n this.searchForDataBoxes(value)}\n name=\"dataBox\"\n inputIcon={!!this.state.dataBoxId ? icon : null}\n isReadOnly={dataBoxIsReadOnly}\n isIconWithoutAction\n />\n \n {dataBox && (\n \n \n \n {this.props.t(\"Messages:Name\")}:\n {dataBox.NazevOsoby}\n \n {dataBox.Ico && // financial administration office doesn't have legalNumber\n \n {this.props.t(\"Messages:LegalNumber\")}:\n {dataBox.Ico}\n }\n \n {this.props.t(\"Messages:Address\")}:\n {dataBox.AdresaSidla?.AdresaTextem}\n \n \n \n )}\n \n }\n {this.state.messageType === MessageType.Email &&\n <>\n \n \n \n \n \n \n {this.state.showEmailCopyField &&\n \n \n }\n \n }\n \n \n \n this.forceUpdate()}\n width=\"100%\"\n name=\"message\">\n }>\n \n \n {this.state.message}\n \n \n \n \n {this.props.fileSettings?.map((file: IFileSettings) => {\n return file?.name &&\n \n \n {!file.shouldHideCheckBox &&\n {\n this.includeFile(e.value, file.fileId);\n }}/>\n\n }\n \n \n {file.name}\n \n \n ;\n })}\n );\n };\n\n render = () => {\n if (!this.props.tReady) {\n return null;\n }\n\n const enableSend = this.state.subject && !this.state.warnAlert &&\n ((this.state.messageType === MessageType.DataBox && this.getIconState(this.state.dataBox) === DataBoxState.Enabled) ||\n (this.state.messageType === MessageType.Email && this.state.email && EMAIL_REGEX.test(this.state.email) &&\n !(this.state.emailCopies && this.state.emailCopies.split(\",\").some((copy: string) => !EMAIL_REGEX.test(copy.trim())))));\n\n const selectedFile = this.props.fileSettings?.find((file: IFileSettings) => file.fileId === this.state.selectedFile);\n\n return (\n <>\n \n }>\n \n {this.state.canSendByDataBox && (!!this.props.dataBoxSettings.defaultId || this.props.dataBoxSettings.isReport) &&\n \n \n \n }\n {this.renderForm()}\n \n \n {selectedFile?.previewUrl && this.state.showPreview &&\n this.togglePreview()}>\n {this.props.t(\"Common:General.Close\")}\n )}>\n \n }\n \n );\n };\n}\n\nexport default withPermissionContext(withOData(withTranslation([\"Common\", \"DataBox\", \"Messages\"])(SendMessageDialog)));\n","import React from \"react\";\nimport BindingContext, { createPath, IEntity } from \"../../odata/BindingContext\";\nimport { TValue } from \"../../global.types\";\nimport {\n IFieldDef,\n IFieldInfoProperties,\n IGetValueArgs,\n isFieldDisabled,\n TValidatorFnResult\n} from \"@components/smart/FieldInfo\";\nimport i18next from \"i18next\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { ValidationError } from \"yup\";\nimport { ISummaryItem, ISummaryItemEditProps } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport NumberRangeTemporalFormDialog from \"../documents/NumberRangeTemporalFormDialog\";\nimport { BasicInputSizes, CacheStrategy, FieldType, NavigationSource, ValidatorType } from \"../../enums\";\nimport {\n EntitySetName,\n EntityTypeName,\n FiscalYearEntity,\n IBankStatementEntity,\n ICashReceiptIssuedEntity,\n IDocumentEntity,\n IFiscalPeriodEntity,\n IFiscalYearEntity,\n INumberRangeDefinitionEntity,\n INumberRangeEntity,\n INumberRangeWildcardEntity,\n IProformaInvoiceIssuedEntity,\n NumberRangeDefinitionEntity,\n NumberRangeEntity,\n NumberRangeTypeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { isDefined, isNotDefined, isObjectEmpty } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { FormStorage, IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport { Model } from \"../../model/Model\";\nimport { TFieldsDefinition } from \"../PageUtils\";\nimport { DocumentTypeCode, FiscalYearStatusCode, NumberRangeTypeCode } from \"@odata/GeneratedEnums\";\nimport { isDocumentType, isIssued, isReceived } from \"../documents/Document.utils\";\nimport { getDocumentTypeCodeFromEntityType } from \"@odata/EntityTypes\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport const WILDCARDS = [\"%Y%\", \"%YY%\", \"%YYYY%\", \"%MM%\", \"%F%\", \"%FF%\", \"%FFFF%\", \"%PPP%\"];\nexport const MAX_NUMERIC_SIGNS = 10;\nexport const CARRY_FORWARD_PREFIX = \"%FF%\";\nexport const CARRY_FORWARD_PREFIX_CBA = \"%YY%\";\n\nexport const FiscalYearForNumberRangePath = BindingContext.localContext(\"FiscalYearForNumberRange\");\nexport const FiscalPeriodForNumberRangePath = BindingContext.localContext(\"FiscalPeriodForNumberRange\");\n\ninterface ILoadNumberRangeArgs {\n type: NumberRangeTypeCode;\n storage: Model;\n context: IAppContext;\n}\n\nexport interface INumberRangeFormCustomData extends IFormStorageDefaultCustomData {\n allWildcards?: INumberRangeWildcardEntity[];\n NumberRanges?: INumberRangeEntity[];\n}\n\nexport async function loadNumberRanges({\n type,\n storage\n }: ILoadNumberRangeArgs): Promise {\n const result = await storage.oData\n .getEntitySetWrapper(EntitySetName.NumberRanges)\n .query()\n .expand(NumberRangeEntity.Definition, (query) => {\n query.expand(NumberRangeDefinitionEntity.NumberRangeType, nestedQuery => nestedQuery.select(NumberRangeTypeEntity.DocumentTypeCode));\n })\n .expand(NumberRangeEntity.FiscalYear, query => query.select(FiscalYearEntity.Id))\n .select(NumberRangeEntity.Id, NumberRangeEntity.NextNumber)\n .filter(`${createPath(NumberRangeEntity.Definition, NumberRangeDefinitionEntity.NumberRangeTypeCode)} eq '${type}' and ${createPath(NumberRangeEntity.Definition, NumberRangeDefinitionEntity.IsActive)} eq true`)\n .fetchData();\n\n return result?.value ?? [];\n}\n\nconst loadNumberRangesMemoizedWithCacheStrategy = memoizedWithCacheStrategy(loadNumberRanges, ({ type }: ILoadNumberRangeArgs) => type);\n\nexport function loadNumberRangesMemoized(args: ILoadNumberRangeArgs): Promise {\n return loadNumberRangesMemoizedWithCacheStrategy(args, CacheStrategy.None);\n}\n\n// todo: once localContext supports additionalProperties, add this to getNumberOursSummaryDef\nexport const NumberRangeAdditionalProperties: IFieldDef[] = [\n { id: \"NumberOurs\" },\n {\n id: \"NumberRange\",\n additionalProperties: [{ id: \"NextNumber\" }, { id: \"Definition/Name\" }]\n }\n];\n\nfunction getNumberRangeItems(items: ISelectItem[], args: IGetValueArgs): ISelectItem[] {\n const numberRanges = getFilteredRanges(args.storage);\n\n return numberRanges\n .map((range: IEntity) => ({\n label: range.NextNumber,\n id: range.Id,\n tabularData: [range.NextNumber, range.Definition?.Name],\n additionalData: range\n }));\n}\n\nexport const getNumberRangeFieldDef = (): IFieldInfoProperties => ({\n type: FieldType.ComboBox,\n useForValidation: true,\n fieldSettings: {\n displayName: NumberRangeEntity.NextNumber,\n noRecordText: i18next.t(\"NumberRange:Dialog.OutsideRange\"),\n shouldDisplayAdditionalColumns: true,\n showTabularHeader: true,\n itemsForRender: getNumberRangeItems,\n localDependentFields: [{\n from: { id: \"NextNumber\" },\n to: { id: \"NextNumber\" },\n navigateFrom: NavigationSource.Itself\n }]\n },\n columns: [\n { id: \"NextNumber\", label: i18next.t(\"NumberRange:Dialog.NumberRange\") },\n { id: \"Definition/Name\", label: i18next.t(\"NumberRange:Dialog.Name\") }\n ],\n width: BasicInputSizes.XL,\n customizationData: {\n useForCustomization: false\n }\n});\n\nexport const getNumberOursFieldDef = (translationFile: string): IFieldInfoProperties => ({\n type: FieldType.Autocomplete,\n fieldSettings: {\n itemsFactory: async (args: IGetValueArgs): Promise => {\n return getFilteredRanges(args.storage)?.map(range => {\n const nextNumber = replaceWildcards(range.NextNumber, args.storage.data.entity);\n return {\n id: nextNumber,\n label: nextNumber,\n additionalData: {\n Id: range.Id\n }\n };\n });\n }\n },\n label: i18next.t(`${translationFile}:Summary.NumberOursLabel`),\n width: BasicInputSizes.XL,\n isRequired: true,\n useForValidation: true,\n customizationData: {\n useForCustomization: false\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: numberOursValidator\n }\n }\n});\n\nexport const getNumberRangeFieldDefs = (translationFile: string): TFieldsDefinition => ({\n NumberRange: getNumberRangeFieldDef(),\n NumberOurs: getNumberOursFieldDef(translationFile)\n});\n\nexport const NumberOursSummaryBindingContext = BindingContext.localContext(\"NumberOurs\");\nexport const NumberRangePreviewPath = BindingContext.localContext(\"numRangePreview\");\nexport const VarSymbolPreviewPath = BindingContext.localContext(\"varSymbolPreview\");\nexport const NumRangeWithProgressPath = BindingContext.localContext(\"numRangeWithProgress\");\nexport const PreviewsPath = BindingContext.localContext(\"previews\");\nexport const ChildrenPath = BindingContext.localContext(\"children\");\n\n\nexport function getFiscalDataForNumberRange(entity: IEntity): { FiscalYear: IFiscalYearEntity, FiscalPeriod: IFiscalPeriodEntity } {\n const FiscalYear = entity[FiscalYearForNumberRangePath] ?? entity.FiscalYear;\n const FiscalPeriod = entity[FiscalPeriodForNumberRangePath] ?? entity.FiscalPeriod;\n return { FiscalYear, FiscalPeriod };\n}\n\nfunction isNumberRangeFiscalYearClosed(args: IGetValueArgs) {\n const { FiscalYear } = getFiscalDataForNumberRange(args.storage.data.entity);\n return FiscalYear?.StatusCode === FiscalYearStatusCode.Closed;\n}\n\nexport const getNumberOursSummaryDef = (transFile: string): ISummaryItem => {\n return {\n id: NumberOursSummaryBindingContext,\n containedFields: [\"NumberRange\", \"NumberOurs\"],\n renderEdit: (args: ISummaryItemEditProps) => (\n \n ),\n isReadOnly: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew() && isNumberRangeFiscalYearClosed(args);\n },\n isDisabled: (args) => {\n const numberOursBc = args.storage.data.bindingContext.navigate(\"NumberOurs\");\n\n return isFieldDisabled(args.storage.getInfo(numberOursBc), args.storage, numberOursBc);\n },\n disabledText: (args) => {\n const storage = args.storage as FormStorage;\n const numberRangeBc = args.storage.data.bindingContext.navigate(\"NumberRange\");\n const numberOursBc = args.storage.data.bindingContext.navigate(\"NumberOurs\");\n const disabledFieldMetadata = storage.getBackendDisabledFieldMetadata?.(numberRangeBc) || storage.getBackendDisabledFieldMetadata?.(numberOursBc);\n\n return disabledFieldMetadata?.message;\n },\n additionalData: {\n dialogTitle: i18next.t(`${transFile}:Summary.ChangeNumberOursDialogTitle`)\n },\n formatter: (val: TValue, data?: IFormatOptions) => {\n // we need to work with entity directly as the summary item has local context\n return (data?.entity?.NumberOurs ?? i18next.t(`Common:Form.WithoutNumber`))?.toString();\n },\n colorFormatter: (val: TValue, data?: IFormatOptions) => {\n return data?.entity?.NumberOurs ? \"C_TEXT_primary\" : \"C_ACT_thick_line\";\n }\n };\n};\n\nexport function getNumberRangeType(bc: BindingContext): NumberRangeTypeCode {\n const type = bc.getEntityType();\n const typeName = type?.getName() as EntityTypeName;\n\n return getNumberRangeTypeCodeFromEntityTypeName(typeName);\n}\n\nexport const getNumberRangeTypeCodeFromEntityTypeName = (type: EntityTypeName): NumberRangeTypeCode => {\n switch (type) {\n case EntityTypeName.CompanyBankAccount:\n case EntityTypeName.BankStatement:\n return NumberRangeTypeCode.BankStatement;\n case EntityTypeName.MinorAsset:\n return NumberRangeTypeCode.MinorAsset;\n case EntityTypeName.Asset:\n return NumberRangeTypeCode.Asset;\n case EntityTypeName.CorrectiveInvoiceIssued:\n return NumberRangeTypeCode.CorrectiveInvoiceIssued;\n case EntityTypeName.CorrectiveInvoiceReceived:\n return NumberRangeTypeCode.CorrectiveInvoiceReceived;\n case EntityTypeName.InternalDocument:\n return NumberRangeTypeCode.InternalDocument;\n case EntityTypeName.InvoiceIssued:\n return NumberRangeTypeCode.InvoiceIssued;\n case EntityTypeName.InvoiceReceived:\n return NumberRangeTypeCode.InvoiceReceived;\n case EntityTypeName.OtherLiability:\n return NumberRangeTypeCode.OtherLiability;\n case EntityTypeName.OtherReceivable:\n return NumberRangeTypeCode.OtherReceivable;\n case EntityTypeName.ProformaInvoiceIssued:\n return NumberRangeTypeCode.ProformaInvoiceIssued;\n case EntityTypeName.ProformaInvoiceReceived:\n return NumberRangeTypeCode.ProformaInvoiceReceived;\n case EntityTypeName.CashReceiptIssued:\n return NumberRangeTypeCode.CashReceiptIssued;\n case EntityTypeName.CashReceiptReceived:\n return NumberRangeTypeCode.CashReceiptReceived;\n case EntityTypeName.PrEmployee:\n return NumberRangeTypeCode.Employee;\n case EntityTypeName.PrEmploymentTemplate:\n return NumberRangeTypeCode.EmploymentTemplate;\n case EntityTypeName.PrEmployment:\n return NumberRangeTypeCode.Employment;\n case EntityTypeName.PrSalaryAdvance:\n return NumberRangeTypeCode.SalaryAdvance;\n case EntityTypeName.PrIndividualDeduction:\n return NumberRangeTypeCode.IndividualDeduction;\n case EntityTypeName.PrGroupDeduction:\n return NumberRangeTypeCode.GroupDeduction;\n default:\n return null;\n }\n};\n\nasync function duplicateNumberOursValidator(value: TValue, {\n storage,\n bindingContext\n}: IGetValueArgs): Promise {\n const _validationQuery = async (NumberOurs: string) => {\n const entitySet = storage.data.bindingContext.getEntityType().hasParentWithBaseType(EntityTypeName.Document) ? \"Documents\" : storage.data.bindingContext.getEntitySet().getName();\n return await storage.oData.getEntitySetWrapper(entitySet as EntitySetName)\n .query()\n .select(\"NumberOurs\")\n .filter(`NumberOurs eq '${NumberOurs}'`)\n .top(0)\n .count()\n .fetchData();\n };\n\n const NumberRangeBc = bindingContext.navigateWithSiblingFallback(\"NumberRange\");\n const NumberRange = storage.getValue(NumberRangeBc);\n\n const isSavedNumberOurs = (storage as FormStorage).data.origEntity.NumberOurs === value;\n if (NumberRange || isSavedNumberOurs) {\n return true;\n }\n\n const docs = await _validationQuery(value as string);\n return !docs?._metadata.count;\n}\n\nasync function numberOursValidator(value: TValue, args: IGetValueArgs): Promise {\n const maxLength = 25;\n\n if (!value) {\n return new ValidationError(i18next.t(\"Common:Validation.Required\"), false, args.bindingContext.getPath(true));\n } else if ((value as string).length > maxLength) {\n return new ValidationError(i18next.t(\"Common:Validation.Max\", { max: maxLength.toString() }), false, args.bindingContext.getPath(true));\n }\n\n // DEV-4853, DEV-11180 - must have 1 to 10 digits (due to variable symbol)\n if (isDocumentType(args.bindingContext)) {\n const docType = getDocumentTypeCodeFromEntityType(args.bindingContext.getEntityType().getName() as EntityTypeName);\n\n if (isReceived(docType) || isIssued(docType)) {\n const numberOfIntegers = (value as string).replace(/[^0-9]/g, \"\").length;\n const hasCorrectNumberOfDigits = numberOfIntegers && numberOfIntegers > 0 && numberOfIntegers < 11;\n if (!hasCorrectNumberOfDigits) {\n return new ValidationError(i18next.t(\"Error:DocumentNumberOursOneToTenDigits\"), false, args.bindingContext.getPath(true));\n }\n }\n }\n\n const isNotDuplicate = await duplicateNumberOursValidator(value, args);\n if (!isNotDuplicate) {\n return new ValidationError(i18next.t(\"Error:DocumentNumberOursCannotMatchNumberRangeWhenSelectedManually\"), false, args.bindingContext.getPath(true));\n }\n\n return true;\n}\n\n/**\n * ToDo: we may need to customize / configure this differently per NumberRangeType...\n * @param range\n * @param entity\n * @param type\n */\nexport function isRangeMatchingEntityByType(range: INumberRangeEntity, entity: IEntity, type: NumberRangeTypeCode): boolean {\n let isFiscalYearMatching = true;\n if (range?.FiscalYear?.Id) {\n const { FiscalYear } = getFiscalDataForNumberRange(entity);\n isFiscalYearMatching = range.FiscalYear.Id === FiscalYear?.Id;\n }\n return range.Definition.NumberRangeTypeCode === type && isFiscalYearMatching;\n}\n\nexport function getFilteredRanges(storage: Model): INumberRangeEntity[] {\n const ranges = getStoredRanges(storage);\n const { bindingContext, entity } = storage.data;\n const type = getNumberRangeType(bindingContext);\n\n return ranges.filter(range => isRangeMatchingEntityByType(range, entity, type)) ?? [];\n}\n\nexport const canChangeNumberRange = (storage: FormStorage): boolean => {\n const currentNr = storage.data.entity.NumberRange;\n return !isObjectEmpty(currentNr);\n};\n\nexport function getRangeByDefinitionId(storage: Model, id: number, fiscalYearId?: number): INumberRangeEntity {\n const ranges = getStoredRanges(storage);\n const _isMatchingFY = (range: INumberRangeEntity) => (isNotDefined(fiscalYearId) || isNotDefined(range.FiscalYear) || isObjectEmpty(range.FiscalYear) || range.FiscalYear?.Id === fiscalYearId);\n const range = ranges.find(range => range?.Definition?.Id === id && _isMatchingFY(range));\n\n if (!range) {\n // return default range if none is found (typically there is configured non-active range at the bank account\n return ranges.find(range => range?.Definition?.IsDefault && _isMatchingFY(range));\n }\n\n return range;\n}\n\n\nexport function getStoredRanges(storage: Model): INumberRangeEntity[] {\n return (storage.getCustomData() as INumberRangeFormCustomData).NumberRanges;\n}\n\nexport async function loadAndStoreRanges(storage: Model, force = false): Promise {\n if (!force && getStoredRanges(storage)) {\n return false;\n }\n const { context, data: { bindingContext } } = storage;\n const type = getNumberRangeType(bindingContext);\n const ranges = await loadNumberRangesMemoized({ type, storage, context });\n (storage as FormStorage).setCustomData({ NumberRanges: ranges });\n return true;\n}\n\n/**\n * Function checks if ranges are related -> ranges which depends on FY has different ID per FY and are connected\n * with the original NumberRange by parent (Definition) relation. We consider NumberRange with same Definition as related.\n * @param range1\n * @param range2\n */\nfunction isRelatedNumberRange(range1: INumberRangeEntity, range2: INumberRangeEntity): boolean {\n if (isNotDefined(range1) || isNotDefined(range2) ||\n (isNotDefined(range1?.Definition?.Id) && isNotDefined(range2?.Definition?.Id))) {\n // both number ranges has to be defined and at least one of them\n // must have defined parent, unless there is nothing to compare.\n return false;\n }\n // 2 NumberRanges with same NumberRangeDefinition are related.\n return range1.Definition?.Id === range2?.Definition?.Id;\n}\n\n/**\n * Sets best matching number range. If the number range is the original one,\n * reverts to original number (not the NextNumber of the row)\n *\n * ONLY CHANGE NUMBER OURS for new document\n * for existing document, only change the list of available NumberRanges,\n * but NumberOurs have to be changed manually\n */\nexport async function setMatchingNumberRange(storage: FormStorage, forceReload?: boolean, decisiveDateProp?: string): Promise {\n // loads data on first call\n await loadAndStoreRanges(storage, forceReload);\n\n const { entity, origEntity } = storage.data;\n const filteredRanges = getFilteredRanges(storage) || [];\n const currentRangeId = entity.NumberRange?.Id;\n // values for update\n let { NumberOurs } = entity,\n NumberRange;\n\n const hasCustomNumberOurs = !!NumberOurs && !currentRangeId;\n const isCurrentRangeMatching = filteredRanges.find(range => range.Id === currentRangeId);\n\n // todo: current range might be matching, but there could be different property value for wildcard replacement\n // - how we identify this case? Should we replace numberOurs with new one or keep the original saved one?\n\n // Case 1: entity has custom number ours (outside range) or number range is matching -> no action\n if (hasCustomNumberOurs || (!!NumberOurs && isCurrentRangeMatching)) {\n return false;\n }\n\n // otherwise, numberRange should be updated...\n if (filteredRanges.find(range => range.Id === origEntity.NumberRange?.Id)\n && origEntity.NumberOurs) {\n // If originalNumberRange is set and it's in filteredRanges -> reset to originalValues\n NumberRange = { ...origEntity.NumberRange };\n NumberOurs = origEntity.NumberOurs;\n } else {\n // pick first matching, default for the current type or just first number range (in that order)\n // matching means that the NumberRanges are the \"same\" - both are result of one NumberRange with CarryForward == true\n NumberRange = filteredRanges.find(range => isRelatedNumberRange(range, entity.NumberRange))\n || filteredRanges.find(range => range.Definition.IsDefault)\n || filteredRanges[0];\n if (NumberRange) {\n NumberOurs = replaceWildcards(NumberRange.NextNumber, entity, {\n previewString: \"\",\n useNow: false,\n decisiveDateProp\n });\n } else {\n NumberOurs = null;\n }\n }\n\n storage.clearAndSetValueByPath(\"NumberRange\", storage.data.bindingContext.isNew() ? NumberRange : null, true);\n\n if (storage.data.bindingContext.isNew()) {\n storage.clearAndSetValueByPath(\"NumberOurs\", NumberOurs, true);\n }\n\n return true;\n}\n\n// @param previewString - if data are not defined in entity and preview string is set, it's used instead on them\n// note: preview string is just one for all wildcards, use something which could be valid for\n// all of them. I would suggest \"2001\", which means \"001\" for %PPP%, \"2001\" for %YYYY%, etc...\n// @param useNow - if true, Date.now() instead of transaction date is used\n// @param decisiveDateProp - date property of document, which is decisive for wildcards\ninterface IReplaceWildcardsOpts {\n previewString?: string;\n useNow?: boolean;\n decisiveDateProp?: string;\n}\n\n/**\n * Replace wildcards in numberRange with actual strings\n * todo: we may want to be able to define from which bindingContext path we take the data for particular wildcards\n * @param s\n * @param entity\n * @param opts\n */\n// TODO refactor to accept date instead of entity to provide fiscal ear and period\n// and change getFiscalDataForNumberRange to retrieve it based on that date\nexport function replaceWildcards(s: string, entity: IEntity, opts: IReplaceWildcardsOpts = {}): string {\n const { previewString, useNow, decisiveDateProp } = { ...opts };\n const _trim = (r: string, length: number) => r.slice(-1 * length);\n\n const date = decisiveDateProp ? entity[decisiveDateProp] : useNow ? Date.now()\n : ((entity as IProformaInvoiceIssuedEntity)?.DateProcessed\n ?? (entity as IDocumentEntity)?.DateAccountingTransaction\n ?? (entity as IBankStatementEntity)?.DateFrom\n ?? (entity as ICashReceiptIssuedEntity)?.DateIssued);\n\n const { FiscalYear, FiscalPeriod } = getFiscalDataForNumberRange(entity);\n\n for (const wildcard of WILDCARDS) {\n if (s?.includes(wildcard)) {\n let replacement = \"\", trimmedReplacement: string;\n\n // Possibilities to replace patterns, always with fallbacks as it might not be defined in some cases\n switch (wildcard) {\n case \"%F%\":\n case \"%FF%\":\n case \"%FFFF%\":\n const numericLen = wildcard.length - 2;\n const re = new RegExp(`([0-9]{${numericLen}}(/Z))?$`);\n replacement = FiscalYear?.Number ?? previewString;\n const matches = replacement?.match(re);\n trimmedReplacement = matches?.[1];\n break;\n\n case \"%Y%\":\n case \"%YY%\":\n case \"%YYYY%\":\n replacement = getUtcDayjs(date).format(\"YYYY\");\n break;\n\n case \"%MM%\":\n replacement = getUtcDayjs(date).format(\"MM\");\n break;\n\n case \"%PPP%\":\n replacement = FiscalPeriod?.Number;\n break;\n }\n\n if (!isDefined(replacement)) {\n if (previewString) {\n replacement = previewString;\n } else {\n logger.error(`Insufficient data provided for wildcard '${wildcard}' replacement.`);\n return \"\";\n }\n }\n\n // trim to max length of wildcard\n trimmedReplacement = trimmedReplacement ?? _trim(replacement, wildcard.length - 2);\n // replace all occurrences\n s = s.replace(new RegExp(wildcard, \"g\"), trimmedReplacement);\n }\n }\n return s;\n}\n\nexport const getMaxNumericCount = (storage: Model): number => {\n // return isNestedNumberRange({\n // storage\n // }) ? MAX_NUMERIC_SIGNS - CARRY_FORWARD_PREFIX.replaceAll(\"%\", \"\").length : MAX_NUMERIC_SIGNS;\n return MAX_NUMERIC_SIGNS;\n};\n\nconst _getLength = (s: string, entity: INumberRangeDefinitionEntity) => {\n if (!s) {\n return 0;\n }\n return replaceWildcards(s, entity, { previewString: \"9999\" }).replace(/\\D/g, \"\").length;\n};\n\nexport const numericSignsLeft = (storage: Model): number => {\n const entity: INumberRangeDefinitionEntity = storage.data.entity;\n return getMaxNumericCount(storage) - (_getLength(entity.NumberRangeTypePrefix, entity) + _getLength(entity.CarryForwardPrefix, entity) + _getLength(entity.Prefix, entity) + (parseInt(entity.NumberOfDigits?.toString()) || 0) + _getLength(entity.Suffix, entity));\n};\n\nconst commonValidator = (value: TValue, args: IGetValueArgs): ValidationError | boolean => {\n const signsLeft = numericSignsLeft(args.storage);\n if (_getLength(value?.toString(), args.storage.data.entity) && (signsLeft < 0)) {\n return new ValidationError(i18next.t(\"NumberRange:Validation.NumSignsExceeded\"), false, args.bindingContext.getPath(true));\n }\n return true;\n};\n\nconst containsInvalidWildcard = (value: string, entity: INumberRangeDefinitionEntity, context: IAppContext) => {\n if (!value || !entity.NumberRangeType) {\n return false;\n }\n let inWildcard = false;\n let token = \"\";\n const escapeSymbol = \"%\";\n\n let wildCards = entity.NumberRangeType.Wildcards;\n\n if (isCashBasisAccountingCompany(context)) {\n wildCards = wildCards.filter(wc => !wc.IsFiscalYearDependent);\n }\n\n const wildCardCodes = wildCards.map(card => card.Code);\n\n for (const char of value) {\n if (!inWildcard && char === escapeSymbol) {\n token += char;\n inWildcard = true;\n } else if (inWildcard && char !== escapeSymbol) {\n token += char;\n } else if (inWildcard && char === escapeSymbol) {\n token += char;\n inWildcard = false;\n if (!wildCardCodes.includes(token)) {\n return true;\n }\n token = \"\";\n }\n }\n\n return inWildcard;\n};\n\nexport const prefixSuffixValidator = (value: TValue, args: IGetValueArgs): TValidatorFnResult => {\n const numberRangeDefinition = args.storage.data.entity as INumberRangeDefinitionEntity;\n\n if (containsInvalidWildcard(value?.toString(), numberRangeDefinition, args.storage.context)) {\n return new ValidationError(i18next.t(\"NumberRange:Validation.InvalidWildcard\"), false, args.bindingContext.getPath(true));\n }\n return commonValidator(value, args);\n};\n\nexport const numberOfDigitsValidator = (value: TValue, args: IGetValueArgs): TValidatorFnResult => {\n if (!Number.isInteger(value as number)) {\n return new ValidationError(i18next.t(\"Common:Validation.Integer\"), false, args.bindingContext.getPath(true));\n } else if ((value as number) <= 0) {\n return new ValidationError(i18next.t(\"Common:Validation.SmallNumber\", { min: 1 }), false, args.bindingContext.getPath(true));\n }\n return commonValidator(value, args);\n};\n\nexport const numberRangeTypePrefixValidator = (value: TValue, args: IGetValueArgs): TValidatorFnResult => {\n return commonValidator(value, args);\n};\n\n\nexport const isDocumentNumberRange = (storage: Model): boolean => {\n const numberRangeDefinition = storage.data.entity as INumberRangeDefinitionEntity;\n\n return !numberRangeDefinition.NumberRangeType || !!numberRangeDefinition?.NumberRangeType?.DocumentTypeCode;\n};\n\nexport function isIssuedDocumentNumberRange(storage: Model): boolean {\n const numberRangeDefinition = storage.data.entity as INumberRangeDefinitionEntity;\n const { DocumentTypeCode } = numberRangeDefinition?.NumberRangeType ?? {};\n\n return isIssued(DocumentTypeCode as DocumentTypeCode);\n}\n\nexport function replaceWildcardsAfterDateChange(storage: FormStorage, decisiveDateProp?: string): void {\n // If FY has changed, NumberRange is updated by setMatchingNumberRangeForDocument method called\n // from refreshFormAfterDecisiveDateChange method. Here we need only to update NumberOurs\n // to match wildcards with actual DateAccountingTransaction, e.g. to update %MM% with current months\n // todo: BE doesn't support to update wildcards in existing NumberOurs without changing NumberRange.\n // so we keep original NumberOurs in this case, even if the wildcards don't match.\n const { entity, origEntity, bindingContext } = storage.data;\n if (!isObjectEmpty(entity.NumberRange) && origEntity.NumberOurs !== entity.NumberOurs) {\n const newValue = replaceWildcards(entity.NumberRange.NextNumber, entity, { decisiveDateProp });\n storage.setValueByPath(\"NumberOurs\", newValue, true);\n storage.addActiveField(bindingContext.navigate(NumberOursSummaryBindingContext));\n }\n}\n","import { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n EntitySetName,\n INumberRangeDefinitionEntity,\n INumberRangeEntity,\n INumberRangeWildcardEntity,\n NumberRangeDefinitionEntity,\n NumberRangeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { cloneDeep, debounce } from \"lodash\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { getOpenFiscalYears } from \"../fiscalYear/FiscalYear.utils\";\nimport {\n CARRY_FORWARD_PREFIX,\n CARRY_FORWARD_PREFIX_CBA,\n INumberRangeFormCustomData,\n isDocumentNumberRange,\n NumberRangePreviewPath,\n replaceWildcards,\n VarSymbolPreviewPath\n} from \"./NumberRange.utils\";\n\nconst generateNumRangePreviewsSync = (numberRangeDefinition: INumberRangeDefinitionEntity, numberRange: INumberRangeEntity) => {\n const zeros = numberRangeDefinition.PadWithZeros && numberRangeDefinition.NumberOfDigits > 0 ? \"0\".repeat((numberRangeDefinition.NumberOfDigits - 1)) : \"\";\n const numericPart = numberRangeDefinition.NumberOfDigits > 0 ? zeros + \"1\" : \"\";\n const previewEntity = {\n FiscalYear: numberRange.FiscalYear,\n DateStart: numberRange.FiscalYear?.DateStart,\n FiscalPeriod: numberRange.FiscalYear?.Periods?.[0]\n };\n\n const varSymbol = [\n numberRangeDefinition.CarryForwardPrefix ? replaceWildcards(numberRangeDefinition.CarryForwardPrefix, previewEntity, {\n previewString: \"2001\",\n decisiveDateProp: \"DateStart\"\n }) : null,\n replaceWildcards(numberRangeDefinition.Prefix, previewEntity, {\n previewString: \"2001\",\n decisiveDateProp: \"DateStart\"\n },),\n numericPart,\n replaceWildcards(numberRangeDefinition.Suffix, previewEntity, {\n previewString: \"2001\",\n decisiveDateProp: \"DateStart\"\n })\n ].filter(val => val).join(\" \");\n\n const numberRangePreview = numberRangeDefinition.NumberRangeType ? ((numberRangeDefinition.NumberRangeTypePrefix ?? \"\") + \" \" + varSymbol).trim() : \"\";\n const varSymbolPreview = numberRangeDefinition.NumberRangeType ? (numberRangeDefinition.NumberRangeTypePrefix?.replace(/\\D/g, \"\") ?? \"\") + varSymbol.replace(/\\D/g, \"\") : \"\";\n\n // local binding context is not part of generated entity types, for now we cannot think of better solution\n (numberRange as IEntity)[NumberRangePreviewPath] = numberRangePreview || DASH_CHARACTER;\n (numberRange as IEntity)[VarSymbolPreviewPath] = varSymbolPreview || DASH_CHARACTER;\n};\n\nexport const generateNumRangeDefinitionPreviewsSync = (numRangeDefinition: INumberRangeDefinitionEntity, storage: FormStorage, withoutRefresh?: boolean): void => {\n if (numRangeDefinition.NumberRanges) {\n for (const child of numRangeDefinition.NumberRanges) {\n generateNumRangePreviewsSync(numRangeDefinition, child);\n }\n }\n\n if (!withoutRefresh) {\n storage.refreshGroupByKey(\"number\");\n }\n};\n\nexport const generateNumRangePreviews = debounce(generateNumRangeDefinitionPreviewsSync, 150);\n\nclass NumberRangeFormView extends FormViewForExtend> {\n static contextType = AppContext;\n static defaultProps = {\n title: \"NumberRange:Range\",\n allowCopy: true\n };\n\n _refScroll = React.createRef();\n\n getAdditionalLoadPromise = () => {\n const { oData } = this.props.storage;\n const promises: Promise[] = [];\n\n if (!this.props.storage.getCustomData().allWildcards) {\n // we want to fill the wildcards tooltip even when no number range type is selected\n promises.push(\n oData.getEntitySetWrapper(EntitySetName.NumberRangeWildcards).query().fetchData()\n );\n }\n\n return promises;\n };\n\n onAfterLoad = async () => {\n\n const storage = this.props.storage;\n const isNew = storage.data.bindingContext.isNew();\n\n if (!this.props.storage.getCustomData().allWildcards) {\n this.props.storage.setCustomData({\n allWildcards: this.props.storage.data.additionalResults[0].value\n });\n this.props.storage.refreshGroupByKey(\"number\");\n }\n\n !isNew && generateNumRangePreviews(storage.data.entity, storage);\n this.updateCarryForwardPrefix();\n\n if (isNew) {\n this.updateChildren();\n }\n\n return super.onAfterLoad();\n };\n\n get isNested(): boolean {\n return isDocumentNumberRange(this.props.storage) && this.entity.CarryForward;\n }\n\n createEntityCopy(args: ICopyEntityArgs = {}): INumberRangeDefinitionEntity {\n const copy = super.createEntityCopy(args);\n delete copy.Id;\n for (const numberRange of copy.NumberRanges) {\n delete numberRange.Id;\n numberRange[BindingContext.NEW_ENTITY_ID_PROP] = \"new\";\n numberRange.NextValue = 1;\n }\n return copy;\n }\n\n updateCarryForwardPrefix = async (): Promise => {\n if (this.props.storage.data.origEntity.CarryForwardPrefix) {\n return;\n }\n\n const cfPrefix = isAccountAssignmentCompany(this.context) ? CARRY_FORWARD_PREFIX : CARRY_FORWARD_PREFIX_CBA;\n\n this.props.storage.setValueByPath(NumberRangeDefinitionEntity.CarryForwardPrefix, this.isNested ? cfPrefix : null);\n\n const fields = [NumberRangeDefinitionEntity.Prefix, NumberRangeDefinitionEntity.NumberOfDigits, NumberRangeDefinitionEntity.Suffix];\n\n for (const path of fields) {\n const bc = this.props.storage.data.bindingContext.navigate(path);\n const value = this.props.storage.getValue(bc);\n\n if (value) {\n await this.props.storage.validateField(bc);\n this.props.storage.addActiveField(bc);\n }\n }\n\n this.props.storage.refreshFields();\n };\n\n updateChildren = (): void => {\n if (this.isNested) {\n const fiscalYears = getOpenFiscalYears(this.context);\n\n if (this.entity.NumberRanges?.length !== fiscalYears.length) {\n const children: INumberRangeEntity[] = [];\n\n for (const fiscalYear of fiscalYears) {\n children.push(BindingContext.createNewEntity(fiscalYear.Id, {\n FiscalYear: fiscalYear,\n InitialValue: 1,\n NextValue: 1\n }));\n }\n\n this.props.storage.setValueByPath(NumberRangeDefinitionEntity.NumberRanges, children);\n }\n } else {\n if (this.entity.NumberRanges.length !== 1) {\n this.props.storage.setValueByPath(NumberRangeDefinitionEntity.NumberRanges, [\n BindingContext.createNewEntity(1, {\n FiscalYear: null,\n InitialValue: 1,\n NextValue: 1\n })]);\n } else if (this.entity.NumberRanges[0].FiscalYear) {\n this.entity.NumberRanges[0].FiscalYear = null;\n }\n }\n\n generateNumRangeDefinitionPreviewsSync(this.entity, this.props.storage);\n };\n\n handleInitialValueChange = (e: ISmartFieldChange): void => {\n // initial number can be changed just when number range is not used\n if (e.bindingContext.getPath(true) === NumberRangeEntity.InitialValue) {\n const nextValBc = e.bindingContext.getParent().navigate(NumberRangeEntity.NextValue);\n this.props.storage.setValue(nextValBc, e.value);\n this.props.storage.validateField(nextValBc);\n }\n };\n\n handleNumberRangeTypeChange = (e: ISmartFieldChange): void => {\n if ((e.bindingContext.getPath(true) === NumberRangeDefinitionEntity.NumberRangeType && e.triggerAdditionalTasks)) {\n const storage = this.props.storage;\n storage.setValue(storage.data.bindingContext.navigate(NumberRangeDefinitionEntity.NumberRangeTypePrefix),\n e.additionalData?.Prefix, storage.data.bindingContext.navigate(BindingContext.localContext(\"numRangeWithProgress\")));\n // update directly Name to refresh summary item\n storage.setValueByPath(\"NumberRangeType/Name\", e.additionalData.Name);\n storage.setValueByPath(\"NumberRangeType/Wildcards\", e.additionalData.Wildcards);\n storage.validateFields([storage.data.bindingContext.navigate(NumberRangeDefinitionEntity.Prefix), storage.data.bindingContext.navigate(NumberRangeDefinitionEntity.Suffix)]);\n this.updateCarryForwardPrefix();\n this.updateChildren();\n generateNumRangeDefinitionPreviewsSync(this.entity, this.props.storage);\n storage.refresh();\n }\n };\n\n handlePadWithZeros = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === NumberRangeDefinitionEntity.PadWithZeros) {\n generateNumRangePreviews(this.entity, this.props.storage);\n }\n };\n\n handleCarryForwardChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === NumberRangeDefinitionEntity.CarryForward) {\n this.props.storage.setValueByPath(NumberRangeDefinitionEntity.IsDefault, false);\n this.updateCarryForwardPrefix();\n this.updateChildren();\n\n this.props.storage.refresh();\n }\n };\n\n handleChange = async (e: ISmartFieldChange): Promise => {\n this.props.storage.handleChange(e);\n this.handleNumberRangeTypeChange(e);\n this.handleInitialValueChange(e);\n this.handlePadWithZeros(e);\n\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n\n this.handleCarryForwardChange(e);\n };\n\n onBeforeSave = (): INumberRangeDefinitionEntity => {\n const entity = cloneDeep(this.entity) as INumberRangeDefinitionEntity;\n\n const isSimple = !isDocumentNumberRange(this.props.storage);\n\n if (isSimple) {\n entity.CarryForward = false;\n entity.CarryForwardPrefix = null;\n }\n\n\n return entity;\n };\n}\n\nexport default withPermissionContext(NumberRangeFormView);\n","import styled from \"styled-components/macro\";\nimport { StyledProgressBar } from \"@components/progressBar/ProgressBar.styles\";\nimport { StyledField, FIELD_HOR_MARGIN } from \"@components/inputs/field/Field.styles\";\n\nexport const StyledWrapper = styled.div<{ hasCarryForwardPrefix: boolean; }>`{\n display: grid;\n margin-right: ${FIELD_HOR_MARGIN};\n margin-bottom: 27px;\n\n ${StyledProgressBar} {\n grid-column: ${props => `2 / span ${!props.hasCarryForwardPrefix ? 3 : 4}`};\n grid-row: 2;\n padding: 0 12px;\n }\n\n ${StyledField} {\n grid-row: 1;\n margin-bottom: 8px;\n\n &:nth-child(${props => !props.hasCarryForwardPrefix ? 4 : 5}) {\n margin-right: 0;\n }\n }\n;\n}`;\n\nexport const NumRangeHelpTooltipStyled = styled.div`{\n table {\n width: 100%;\n border-collapse: collapse;\n }\n\n th {\n font-weight: bold;\n text-align: left;\n }\n\n th:first-child {\n padding-right: 24px;\n }\n\n th, td {\n min-width: 55px;\n }\n\n td {\n padding-top: 5px;\n padding-bottom: 0;\n }\n\n hr {\n border: 1px solid ${props => props.theme.C_FIELD_line_der};\n opacity: 0.3;\n margin: 7px 0;\n }\n}`;\n\nexport const MandatoryForDocumentsText = styled.div`\n max-width: 260px;\n`;","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { INumberRangeWildcardEntity } from \"@odata/GeneratedEntityTypes\";\nimport { MandatoryForDocumentsText, NumRangeHelpTooltipStyled } from \"./numRangeWithProgressBar.styles\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\n\ninterface IProps extends WithTranslation {\n wildcards: INumberRangeWildcardEntity[];\n}\n\nexport class NumRangeHelpTooltip extends React.PureComponent {\n static contextType = AppContext;\n\n static defaultProps: Partial = {\n wildcards: []\n };\n\n get hasAccounting(): boolean {\n return isAccountAssignmentCompany(this.context);\n }\n\n render() {\n let wildcards = this.props.wildcards;\n if (!this.hasAccounting) {\n wildcards = wildcards.filter(wc => wc.IsFiscalYearDependent === false);\n }\n\n return (\n \n \n \n \n \n \n \n \n {wildcards.map((card, index) => (\n \n \n \n \n ))}\n \n
    {this.props.t(\"NumberRange:HelpTooltip.Wildcard\")}{this.props.t(\"NumberRange:HelpTooltip.Content\")}
    {card.Code}{card.Name}
    \n {this.hasAccounting && <>\n
    \n \n {this.props.t(\"NumberRange:HelpTooltip.MandatoryForDocuments\")}\n \n }\n
    );\n }\n}\n\nexport default withTranslation([\"NumberRange\"])(NumRangeHelpTooltip);","import React from \"react\";\nimport SmartField, { ISmartFieldBlur, ISmartFieldChange } from \"../../components/smart/smartField/SmartField\";\nimport ProgressBar from \"../../components/progressBar/ProgressBar\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { StyledWrapper } from \"./numRangeWithProgressBar.styles\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { generateNumRangePreviews } from \"./NumberRangeFormView\";\nimport { getMaxNumericCount, isDocumentNumberRange, numericSignsLeft } from \"./NumberRange.utils\";\nimport { FormMode, GroupedField } from \"../../enums\";\nimport { FieldAdditionalData } from \"../../model/Model\";\nimport { INumberRangeDefinitionEntity, NumberRangeDefinitionEntity } from \"@odata/GeneratedEntityTypes\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { getInfoValue } from \"@components/smart/FieldInfo\";\n\ninterface IProps extends WithTranslation {\n storage: FormStorage;\n}\n\nconst NUM_RANGE_FIELDS = [\"NumberRangeTypePrefix\", \"CarryForwardPrefix\", \"Prefix\", \"NumberOfDigits\", \"Suffix\"];\n\nclass NumRangeWithProgressBar extends React.Component {\n handleNumberOfDigits = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === \"NumberOfDigits\") {\n const fieldsBc: BindingContext[] = [];\n\n for (const {\n entity,\n bindingContext\n } of this.props.storage.data.bindingContext.iterateNavigation(\"NumberRanges\", this.props.storage.data.entity.NumberRanges)) {\n fieldsBc.push(bindingContext.navigate(\"InitialValue\"));\n fieldsBc.push(bindingContext.navigate(\"NextValue\"));\n }\n\n if (fieldsBc.length > 0) {\n this.props.storage.validateFields(fieldsBc);\n }\n }\n };\n\n handleChange = (e: ISmartFieldChange) => {\n this.props.storage.handleChange(e);\n this.handleNumberOfDigits(e);\n const signsLeft = numericSignsLeft(this.props.storage);\n if (signsLeft >= 0 && signsLeft <= this.getMaxNumericCount()) {\n generateNumRangePreviews(this.props.storage.data.entity, this.props.storage);\n }\n this.props.storage.refreshFields();\n };\n\n handleBlur = (e: ISmartFieldBlur) => {\n const path = e.bindingContext.getPath(true);\n if (NUM_RANGE_FIELDS.includes(path)) {\n const remainingFields = NUM_RANGE_FIELDS.filter(part => part !== path);\n for (const field of remainingFields) {\n this.props.storage.getValueByPath(field) && this.props.storage.validateField(this.props.storage.data.bindingContext.navigate(field));\n }\n }\n this.props.storage.handleBlur(e)\n .then(() => this.props.storage.refreshFields());\n };\n\n _renderField(fieldId: string) {\n const storage = this.props.storage;\n const fieldBc = storage.data.bindingContext.navigate(fieldId);\n const fieldInfo = storage.getInfo(fieldBc);\n const groupedField = getInfoValue(fieldInfo, \"groupedField\", { storage });\n const auditTrailData = storage.getAdditionalFieldData(fieldBc, FieldAdditionalData.AuditTrailData);\n const isTypePrefix = fieldId === NumberRangeDefinitionEntity.NumberRangeTypePrefix;\n return ;\n }\n\n getMaxNumericCount = () => {\n return getMaxNumericCount(this.props.storage);\n };\n\n render() {\n const entity = this.props.storage.data.entity as INumberRangeDefinitionEntity;\n const numSignsLeft = numericSignsLeft(this.props.storage);\n const hasCarryForwardPrefix = isDocumentNumberRange(this.props.storage) && entity.CarryForward;\n\n return (\n \n {NUM_RANGE_FIELDS.map((fieldId) => {\n return this._renderField(fieldId);\n })}\n {this.props.storage.formMode !== FormMode.AuditTrail &&\n 0 ? numSignsLeft : 0}\n parts={this.getMaxNumericCount()}\n showMarks={true}\n customDescription={this.props.t(\"NumberRange:NumericSignsLeft\")}/>}\n \n );\n }\n}\n\nexport default withTranslation([\"NumberRange\"])(NumRangeWithProgressBar);","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IFieldDefFn, IGetValueArgs, TValidatorFn } from \"@components/smart/FieldInfo\";\nimport { getCommonFilterDefs, getCommonTableColumnsDefs } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { createBindingContextFromValidatorPath } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n INumberRangeDefinitionEntity,\n INumberRangeEntity,\n INumberRangeTypeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { FeatureCode, FiscalYearStatusCode, NumberRangeTypeCode } from \"@odata/GeneratedEnums\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isNotDefined } from \"@utils/general\";\nimport { compareString } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport FieldsWrapper from \"../../components/inputs/field/FieldsWrapper\";\nimport SimpleTable from \"../../components/simpleTable\";\nimport SmartField from \"../../components/smart/smartField\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, GroupedField, LabelStatus, TextAlign, ValidatorType } from \"../../enums\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { booleanFormatter } from \"../../types/Boolean\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { activeFormatter } from \"../chartOfAccounts/ChartOfAccountsDef\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport {\n ChildrenPath,\n getMaxNumericCount,\n INumberRangeFormCustomData,\n isDocumentNumberRange,\n isIssuedDocumentNumberRange,\n numberOfDigitsValidator,\n NumberRangePreviewPath,\n numberRangeTypePrefixValidator,\n NumRangeWithProgressPath,\n prefixSuffixValidator,\n PreviewsPath,\n VarSymbolPreviewPath\n} from \"./NumberRange.utils\";\nimport { NumberRangeDefinitionPatternFormatter } from \"./NumberRangeFields.utils\";\nimport NumberRangeFormView from \"./NumberRangeFormView\";\nimport NumRangeHelpTooltip from \"./numRangeHelpTooltip\";\nimport NumRangeWithProgressBar from \"./numRangeWithProgressBar\";\n\nconst isFiscalYearClosed = (args: IGetValueArgs) => {\n const numberRange: INumberRangeEntity = args.storage.getValue(args.bindingContext.getParent());\n\n return numberRange?.FiscalYear?.StatusCode === FiscalYearStatusCode.Closed;\n};\n\nconst isDocumentNumberRangeGetter = (args: IGetValueArgs): boolean => {\n return isDocumentNumberRange(args.storage);\n};\n\nexport const isNestedNumberRange = (args: IGetValueArgs): boolean => {\n const numberRangeDef = args.storage.data.entity as INumberRangeDefinitionEntity;\n\n return isDocumentNumberRange(args.storage) && numberRangeDef.CarryForward;\n};\n\nconst isIsDefaultDisabled = (args: IGetValueArgs): boolean => {\n return !args.storage.data.bindingContext.isNew() && ((args.storage as FormStorage).data.origEntity as INumberRangeDefinitionEntity).IsDefault;\n};\n\nconst initialValueValidator: TValidatorFn = (value, args, testContext) => {\n const fieldBc = createBindingContextFromValidatorPath(testContext.path, args.storage.data.bindingContext, args.storage.data.entity);\n const numberOfDigits = args.storage.getValue(fieldBc.getParent().getParent().navigate(\"NumberOfDigits\"));\n\n if (!Number.isInteger(value)) {\n return new ValidationError(i18next.t(\"Common:Validation.Integer\"), false, testContext.path);\n } else if ((value as number) < 1) {\n return new ValidationError(i18next.t(\"Common:Validation.SmallNumber\", { min: 1 }), false, testContext.path);\n } else if (numberOfDigits && value.toString().length > numberOfDigits) {\n return new ValidationError(i18next.t(\"NumberRange:Validation.MoreThanNumberOfDigitsInitial\"), false, testContext.path);\n }\n return true;\n};\n\nconst nextValueValidator: TValidatorFn = (value, args, testContext) => {\n const fieldBc = createBindingContextFromValidatorPath(testContext.path, args.storage.data.bindingContext, args.storage.data.entity);\n const initialValue = args.storage.getValue(fieldBc.getParent().navigate(\"InitialValue\"));\n const numberOfDigits = args.storage.getValue(fieldBc.getParent().getParent().navigate(\"NumberOfDigits\"));\n\n if (!Number.isInteger(value)) {\n return new ValidationError(i18next.t(\"Common:Validation.Integer\"), false, testContext.path);\n } else if ((value as number) < 1) {\n return new ValidationError(i18next.t(\"Common:Validation.SmallNumber\", { min: 1 }), false, testContext.path);\n } else if ((value as number) < initialValue) {\n return new ValidationError(i18next.t(\"NumberRange:Validation.HigherThanInitial\"), false, testContext.path);\n } else if (numberOfDigits && value.toString().length > numberOfDigits) {\n return new ValidationError(i18next.t(\"NumberRange:Validation.MoreThanNumberOfDigits\"), false, testContext.path);\n }\n return true;\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n\n const isCbaCompany = isCashBasisAccountingCompany(context);\n const carryForwardPrefixItems = isCbaCompany ? [{\n id: \"%Y%\",\n label: \"%Y%\"\n }, {\n id: \"%YY%\",\n label: \"%YY%\"\n }, {\n id: \"%YYYY%\",\n label: \"%YYYY%\"\n }] : [{\n id: \"%F%\",\n label: \"%F%\"\n }, {\n id: \"%FF%\",\n label: \"%FF%\"\n }, {\n id: \"%FFFF%\",\n label: \"%FFFF%\"\n }];\n\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"NumberRangeType\",\n \"Name\",\n \"CarryForward\",\n \"IsActive\"\n ],\n filterDefinition: {\n NumberRangeType: {\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"NumberRange:Type\")\n },\n Name: {},\n IsActive: {},\n IsDefault: {},\n CarryForward: {\n label: i18next.t(\"NumberRange:IsCarried\")\n },\n ...getCommonFilterDefs()\n },\n isValueHelp: true,\n allowCustomFilters: true\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.NumberRange}Table`,\n filter: args => {\n const filters: string[] = [];\n Object.values(FeatureCode).forEach(featureCode => {\n if (!args.storage.context.isFeatureSwitchEnabled(featureCode as FeatureCode)) {\n filters.push(`NumberRangeType/Feature/Code ne '${featureCode}'`);\n }\n });\n return filters.join(\" AND \");\n },\n hierarchy: \"grouped\", // for properly rendered table\n groupBy: \"NumberRangeTypeCode\",\n columns: [\n \"NumberRangeTypePrefix\",\n \"Name\",\n \"CarryForward\",\n \"IsActive\"\n ],\n additionalProperties: [\n { id: \"NumberRanges/Usage/IsUsed\" }\n ],\n columnDefinition: {\n NumberRangeTypePrefix: {\n id: \"NumberRangeTypePrefix\",\n label: i18next.t(\"NumberRange:Type\"),\n formatter: NumberRangeDefinitionPatternFormatter,\n isRequired: true,\n isDisabled: true,\n fieldSettings: {\n disableSort: true\n },\n additionalProperties: [\n { id: \"/Prefix\" },\n { id: \"/Suffix\" },\n { id: \"/NumberRangeTypePrefix\" },\n { id: \"/NumberOfDigits\" },\n { id: \"/NumberRangeTypeCode\" },\n { id: \"/CarryForwardPrefix\" }\n ]\n },\n Name: {\n id: \"Name\",\n label: i18next.t(\"NumberRange:Description\")\n },\n IsActive: {\n id: \"IsActive\",\n textAlign: TextAlign.Center,\n formatter: activeFormatter\n },\n IsDefault: {\n formatter: booleanFormatter\n },\n CarryForward: {\n label: i18next.t(\"NumberRange:IsCarried\"),\n formatter: booleanFormatter\n },\n ...getCommonTableColumnsDefs()\n },\n title: i18next.t(\"NumberRange:Title\")\n };\n\n const summary: ISummaryItem[] = [];\n\n const form: IFormDef = {\n id: `${EntityTypeName.NumberRange}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"NumberRange:NewRange\"),\n storage.data.entity?.Name),\n summary,\n formControl: NumberRangeFormView,\n additionalProperties: [\n { id: \"NumberRangeTypePrefix\", useForValidation: true, useForComparison: true },\n { id: \"Prefix\", useForValidation: true, useForComparison: true },\n { id: \"NumberRangeType/Feature/Code\" },\n { id: \"NumberRangeType/Wildcards/Code\" },\n { id: \"NumberRangeType/Wildcards/Name\" },\n { id: \"NumberRangeType/Wildcards/IsFiscalYearDependent\" },\n { id: \"NumberOfDigits\", useForValidation: true, useForComparison: true },\n { id: \"Suffix\", useForValidation: true, useForComparison: true },\n // force form storage to create field info for CarryForwardPrefix\n { id: \"CarryForwardPrefix\" },\n {\n id: \"NumberRanges\", additionalProperties: [\n { id: \"FiscalYear/Number\" },\n { id: \"FiscalYear/DateStart\" },\n { id: \"FiscalYear/StatusCode\" },\n { id: \"FiscalYear/Periods/Number\" },\n { id: \"InitialValue\" }, { id: \"NextValue\" },\n { id: \"Usage/IsUsed\" }\n ]\n }\n ],\n fieldDefinition: {\n NumberRangeType: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n columns: [{ id: \"Name\" }, { id: \"Prefix\" }],\n label: i18next.t(\"NumberRange:Type\"),\n fieldSettings: {\n displayName: \"Name\",\n keyPath: \"Code\",\n additionalProperties: [\n { id: \"DocumentTypeCode\" },\n { id: \"Feature\" },\n {\n id: \"Wildcards\",\n additionalProperties: [{\n id: \"Name\"\n }, {\n id: \"IsFiscalYearDependent\"\n }, {\n id: \"Replacement\"\n }]\n }],\n localDependentFields: [{\n from: { id: \"DocumentTypeCode\" },\n to: { id: \"NumberRangeType/DocumentTypeCode\" }\n }],\n groups: [\n {\n id: \"documents\",\n title: i18next.t(\"NumberRange:NumberRangeTypeGroups.Documents\").toUpperCase(),\n hideDivider: true\n },\n {\n id: \"others\",\n title: i18next.t(\"NumberRange:NumberRangeTypeGroups.Others\").toUpperCase(),\n hideDivider: true\n }\n ],\n transformFetchedItems: (items, args) => {\n items = items.filter(item => {\n const featureCode = (item.additionalData as INumberRangeTypeEntity).Feature?.Code;\n return isNotDefined(featureCode) || args.storage.context.isFeatureSwitchEnabled(featureCode as FeatureCode);\n });\n\n return items\n .sort((a, b) => {\n if (a.additionalData?.DocumentTypeCode && !b.additionalData?.DocumentTypeCode) {\n return -1;\n }\n\n if (!a.additionalData?.DocumentTypeCode && b.additionalData?.DocumentTypeCode) {\n return 1;\n }\n\n return compareString(a.label, b.label);\n })\n .map(item => {\n return {\n ...item,\n groupId: item.additionalData?.DocumentTypeCode ? \"documents\" : \"others\"\n };\n });\n }\n },\n additionalProperties: [{ id: \"Prefix\" }, { id: \"DocumentTypeCode\" }],\n affectedFields: [{ id: \"CarryForward\" }]\n },\n Name: {\n label: i18next.t(\"NumberRange:Description\"),\n width: BasicInputSizes.L,\n },\n IsActive: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n defaultValue: true\n },\n IsDefault: {\n type: FieldType.Switch,\n label: i18next.t(\"NumberRange:IsDefault\"),\n fieldSettings: {\n type: SwitchType.Icons\n },\n isDisabled: isIsDefaultDisabled,\n defaultValue: false\n },\n CarryForward: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n defaultValue: true,\n isVisible: isDocumentNumberRangeGetter,\n },\n CarryForwardPrefix: {\n type: FieldType.ComboBox,\n label: i18next.t(\"NumberRange:Wildcard\"),\n width: BasicInputSizes.S,\n groupedField: GroupedField.MultiStart,\n fieldSettings: {\n items: carryForwardPrefixItems\n },\n defaultValue: isCbaCompany ? \"%YY%\" : \"%FF%\",\n isVisible: isNestedNumberRange,\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n Prefix: {\n label: i18next.t(\"NumberRange:Prefix\"),\n groupedField: args => {\n return isNestedNumberRange(args) ? null : GroupedField.MultiStart;\n },\n width: BasicInputSizes.XS,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: prefixSuffixValidator\n }\n },\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n NumberOfDigits: {\n label: i18next.t(\"NumberRange:NumberOfDigits\"),\n width: BasicInputSizes.S,\n type: FieldType.NumberInput,\n fieldSettings: {\n min: 1,\n max: 10,\n placeholder: (args) => {\n return i18next.t(\"NumberRange:MaxNumSigns\", { max: getMaxNumericCount(args.storage) });\n }\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: numberOfDigitsValidator\n }\n },\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n Suffix: {\n label: i18next.t(\"NumberRange:Suffix\"),\n groupedField: GroupedField.MultiEnd,\n width: BasicInputSizes.XS,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: prefixSuffixValidator\n }\n },\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n PadWithZeros: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n defaultValue: true\n },\n NumberRangeTypePrefix: {\n type: FieldType.WriteLine,\n labelStatus: LabelStatus.Hidden,\n width: \"40px\",\n fieldSettings: {\n maxLength: 3\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: numberRangeTypePrefixValidator\n }\n },\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n [NumRangeWithProgressPath]: {\n label: i18next.t(\"NumberRange:NumberFormat\"),\n labelStatus: LabelStatus.Removed,\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return (\n \n );\n },\n customizationData: {\n isRequired: true // localcontext contains required fields\n }\n },\n \"NumberRanges/FiscalYear/Number\": {\n width: \"60px\",\n label: i18next.t(\"NumberRange:FiscalYear\"),\n labelStatus: LabelStatus.Removed,\n isReadOnly: true,\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n \"NumberRanges/InitialValue\": {\n useForValidation: true,\n width: BasicInputSizes.M,\n labelStatus: LabelStatus.Removed,\n defaultValue: 1,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: initialValueValidator\n }\n },\n customizationData: {\n useForCustomization: false // part of custom field\n }\n },\n \"NumberRanges/NextValue\": {\n useForValidation: true,\n labelStatus: LabelStatus.Removed,\n width: BasicInputSizes.M,\n defaultValue: 1,\n isReadOnly: isFiscalYearClosed,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: nextValueValidator\n }\n }\n },\n [ChildrenPath]: {\n additionalProperties: [\n // needed for NumberRanges/NextValue validation to be added\n { id: \"NumberRanges/NextValue\" }\n ],\n label: i18next.t(\"NumberRange:ChildrenNumbers\"),\n labelStatus: LabelStatus.Removed,\n customizationData: {\n isRequired: true\n },\n render: (args: IFieldDefFn) => {\n let children = (args.storage.data.entity as INumberRangeDefinitionEntity).NumberRanges;\n\n if (!children) {\n return null;\n }\n\n\n children = children.sort((nr1, nr2) => {\n return getUtcDayjs(nr2.FiscalYear.DateStart).diff(nr1.FiscalYear.DateStart);\n });\n\n const isNested = isNestedNumberRange(args);\n\n return (\n \n {children.map((child, index) => {\n const childBc = args.storage.data.bindingContext.navigate(\"NumberRanges\").addKey(child);\n const keyPropertyName = childBc.getKeyPropertyName();\n const numberBc = childBc.navigate(\"FiscalYear/Number\");\n const initValueBc = childBc.navigate(\"InitialValue\");\n const nextValueBc = childBc.navigate(\"NextValue\");\n const isFYClosed = isFiscalYearClosed({\n bindingContext: childBc.navigate(\"NextValue\"),\n storage: args.storage\n });\n\n return (\n \n {isNested ?\n : null\n }\n \n \n \n );\n })}\n \n );\n }\n },\n [PreviewsPath]: {\n label: i18next.t(\"NumberRange:NumberFormatPreview\"),\n labelStatus: LabelStatus.Removed,\n render: (args: IFieldDefFn) => {\n const entity = args.storage.data.entity as INumberRangeDefinitionEntity;\n const isDocument = isDocumentNumberRange(args.storage);\n const isNested = isNestedNumberRange({ storage: args.storage });\n const isIssued = isDocument && isIssuedDocumentNumberRange(args.storage);\n\n const columns: IColumn[] = [];\n\n if (isNested) {\n columns.push({ id: \"FiscalYear\", label: \"\" });\n }\n\n columns.push({ id: \"numRangePreview\", label: i18next.t(\"NumberRange:NumRangePreview\") });\n\n if (isDocument && isIssued) {\n columns.push({ id: \"varSymbolPreview\", label: i18next.t(\"NumberRange:VarSymbolPreview\") });\n }\n\n const rows: IRow[] = [];\n\n if (entity.NumberRanges) {\n for (const child of entity.NumberRanges) {\n rows.push(\n {\n id: child.Id ?? (child as IEntity)[BindingContext.NEW_ENTITY_ID_PROP],\n values: {\n \"FiscalYear\": child.FiscalYear?.Number,\n \"numRangePreview\": (child as IEntity)[NumberRangePreviewPath] ?? DASH_CHARACTER,\n \"varSymbolPreview\": (child as IEntity)[VarSymbolPreviewPath] ?? DASH_CHARACTER\n }\n }\n );\n }\n }\n\n\n return (\n \n );\n }\n }\n },\n groups: [\n // use multiple groups, to create bigger margins, just like in the ux designs\n {\n id: \"main\",\n rows: [\n [{ id: \"NumberRangeType\" }, { id: \"Name\" }],\n [{ id: \"CarryForward\" }],\n [{ id: ChildrenPath }],\n [{ id: \"IsDefault\" }, { id: \"IsActive\" }]\n ]\n },\n {\n id: \"number\",\n tooltip: (storage: FormStorage) => {\n const entity = storage.data.entity;\n let wildcards = entity?.NumberRangeType?.Wildcards;\n\n if (!entity.NumberRangeType) {\n wildcards = storage.getCustomData().allWildcards;\n }\n\n if (!wildcards || wildcards.length === 0) {\n return null;\n }\n\n return (\n \n );\n },\n title: i18next.t(\"NumberRange:Range\"),\n rows: [\n [{ id: NumRangeWithProgressPath }],\n [{ id: \"PadWithZeros\" }],\n [{ id: PreviewsPath }]\n ]\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.NumberRangeDefinitions,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"NumberRange\", \"Common\"];\nsetDefByEntityType(EntityTypeName.NumberRangeDefinition, getDefinitions);","import { TValue } from \"../../global.types\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { BasicInputSizes, FieldType, NavigationSource, ValidatorType } from \"../../enums\";\nimport { IFieldDef, IFieldInfoProperties, IGetValueArgs, TValidatorFnResult } from \"@components/smart/FieldInfo\";\nimport {\n CashBoxEntity,\n CompanyBankAccountEntity,\n EntityTypeName,\n INumberRangeDefinitionEntity,\n INumberRangeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ValidationError } from \"yup\";\nimport i18next from \"i18next\";\n\nexport const NumberRangeDefinitionPatternFormatter = (val: TValue, args?: IFormatOptions): string => {\n const item = args.item as INumberRangeDefinitionEntity;\n\n const parts = [\n item?.NumberRangeTypePrefix,\n item?.CarryForwardPrefix,\n item?.Prefix,\n \"x\".repeat(item?.NumberOfDigits),\n item?.Suffix\n ].filter(part => !!part);\n return parts?.length > 0 ? parts.join(\" \") : undefined;\n};\n\nconst NumberRangeToNumberRangeDefinitionFormatter = (val: TValue, args?: IFormatOptions) => {\n const entity = (args.bindingContext && args.storage ? args.storage.getValue(args.bindingContext) ?? args.entity : args.entity) as INumberRangeEntity;\n\n return NumberRangeDefinitionPatternFormatter(val, {\n ...args,\n item: entity?.Definition\n });\n};\n\nexport const getDefaultRangeSelectAdditionalProperties = (prefix = \"\"): IFieldDef[] => {\n return [\n { id: `${prefix}Definition/Suffix` },\n { id: `${prefix}Definition/NumberRangeTypePrefix` },\n { id: `${prefix}Definition/Prefix` },\n { id: `${prefix}Definition/NumberOfDigits` },\n { id: `${prefix}Definition/IsDefault` }\n ];\n};\n\nconst additionDefFields = [\n { id: `Suffix` },\n { id: `NumberRangeTypePrefix` },\n { id: `Prefix` },\n { id: `NumberOfDigits` },\n { id: `IsDefault` },\n { id: `IsActive` },\n { id: `Name` }\n];\n\ntype TSupportedTypes =\n EntityTypeName.CashReceiptIssued\n | EntityTypeName.CashReceiptReceived\n | EntityTypeName.BankStatement;\nexport const getDefaultRangeDefinition = (type: TSupportedTypes): IFieldInfoProperties => {\n const propName = type === EntityTypeName.BankStatement ? CompanyBankAccountEntity.BankStatementNumberRangeDefinition\n : (type === EntityTypeName.CashReceiptIssued ? CashBoxEntity.ReceiptIssuedNumberRangeDefinition : CashBoxEntity.ReceiptReceivedNumberRangeDefinition);\n\n return {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XXL,\n formatter: NumberRangeDefinitionPatternFormatter,\n isRequired: true,\n fieldSettings: {\n shouldDisplayAdditionalColumns: true,\n displayName: \"Prefix\",\n localDependentFields: [{\n from: { id: \"IsActive\" }, to: { id: \"IsActive\" },\n navigateFrom: NavigationSource.Itself\n }]\n },\n filter: {\n select: `NumberRangeTypeCode eq '${type}' and IsActive eq true`\n },\n columns: [\n {\n id: \"Prefix\",\n formatter: NumberRangeDefinitionPatternFormatter,\n additionalProperties: additionDefFields\n },\n {\n id: \"Name\"\n }\n ],\n additionalProperties: additionDefFields,\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs): TValidatorFnResult => {\n const { entity } = args.storage.data;\n if (!entity[propName]?.IsActive) {\n return new ValidationError(i18next.t(\"Error:NumberRangeIsNotActive\"), value, args.bindingContext.getPath(true));\n }\n return true;\n }\n }\n }\n };\n};\n\n\nexport const getDefaultRange = (type: string, preload = false): IFieldInfoProperties => {\n return {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XXL,\n formatter: NumberRangeToNumberRangeDefinitionFormatter,\n isRequired: true,\n fieldSettings: {\n shouldDisplayAdditionalColumns: true,\n displayName: \"Definition/Prefix\",\n preloadItems: preload\n },\n filter: {\n select: `Definition/NumberRangeTypeCode eq '${type}'`\n },\n columns: [\n {\n id: \"Definition/Prefix\",\n formatter: NumberRangeToNumberRangeDefinitionFormatter,\n additionalProperties: getDefaultRangeSelectAdditionalProperties(\"/\")\n },\n {\n id: \"Definition/Name\"\n }\n ],\n additionalProperties: getDefaultRangeSelectAdditionalProperties()\n };\n};\n","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrAbsenceCategoryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass AbsenceCategoryFormView extends FormViewForExtend {\n static contextType = AppContext;\n static defaultProps = {\n title: \"AbsenceCategory:FormTitle\"\n };\n}\n\nexport default withPermissionContext(AbsenceCategoryFormView);","import { TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n PrAbsenceCategoryEntity,\n PrAbsenceCategoryTemporalCurrentEntity,\n PrAbsenceCategoryTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n getTemporalAdditionalProperties,\n getTemporalPropertyFieldDefinition,\n TemporalValidityFieldsDef\n} from \"@odata/TemporalUtils\";\nimport { isDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { FastEntryInputSizes, FieldType, GroupedField, Sort } from \"../../../enums\";\nimport { Model } from \"../../../model/Model\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport AbsenceCategoryFormView from \"./AbsenceCategoryFormView\";\n\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrAbsenceCategory}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name),\n createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.CompensationRate)\n ],\n filterDefinition: {\n [createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name)]: {},\n [createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.CompensationRate)]: {\n formatter: (val, args) => {\n return isDefined(val) ? `${val} %` : args.placeholder;\n }\n }\n },\n isValueHelp: true\n }],\n initialSortBy: [{\n id: createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name),\n sort: Sort.Desc\n }],\n columns: [\n createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name),\n createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.CompensationRate)\n ],\n columnDefinition: {\n [createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name)]: {},\n [createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.CompensationRate)]: {\n fieldSettings: {\n unit: \"%\"\n }\n }\n },\n title: i18next.t(\"AbsenceCategory:Title\"),\n tabsSettings: {}\n };\n const summary: ISummaryItem[] = [];\n const temporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"AbsenceCategory:Form.PlanAbsenceCategoryTitle\"),\n columns: [\n PrAbsenceCategoryTemporalEntity.Name,\n PrAbsenceCategoryTemporalEntity.CompensationRate\n ]\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrAbsenceCategory}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"AbsenceCategory:New\"), i18next.t(\"AbsenceCategory:FormTitle\")),\n isDeletable: true,\n formControl: AbsenceCategoryFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrAbsenceCategoryTemporalEntity, PrAbsenceCategoryEntity)\n ],\n fieldDefinition: {\n ...getTemporalPropertyFieldDefinition({\n propName: PrAbsenceCategoryTemporalEntity.Name,\n definition: {\n width: FastEntryInputSizes.M,\n groupedField: GroupedField.MultiStart,\n fieldSettings: {\n temporalDialog: temporalDialogSettings\n }\n },\n withOpeningButton: false\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrAbsenceCategoryTemporalEntity.CompensationRate,\n definition: {\n width: FastEntryInputSizes.M,\n groupedField: GroupedField.MultiEnd,\n fieldSettings: {\n temporalDialog: temporalDialogSettings,\n unit: \"%\"\n }\n }\n }),\n [PrAbsenceCategoryEntity.Color]: {},\n ...TemporalValidityFieldsDef\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.Name) },\n { id: createPath(PrAbsenceCategoryEntity.CurrentTemporalPropertyBag, PrAbsenceCategoryTemporalCurrentEntity.CompensationRate) }\n ],\n [\n {\n id: PrAbsenceCategoryEntity.Color,\n type: FieldType.ColorPicker,\n fieldSettings: {\n colors: [\n \"C_CHART_blue\",\n \"C_CHART_green\",\n \"C_CHART_yellow\",\n \"C_CHART_red\",\n \"C_CHART_orange\",\n \"C_CHART_grey\"\n ]\n }\n }\n ]\n ]\n }\n ]\n };\n return {\n entitySet: EntitySetName.PrAbsenceCategories,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"AbsenceCategory\", \"Common\"];\nsetDefByEntityType(EntityTypeName.PrAbsenceCategory, getDefinitions);","import { DefaultTheme } from \"styled-components/macro\";\n\nexport interface IDayAction {\n color: keyof DefaultTheme;\n title: string;\n isFullDay: boolean;\n isStart: boolean;\n isEnd: boolean;\n hasConflict?: boolean;\n hideTitle?: boolean;\n}\n\nexport const TileSize = {\n MIN: 51,\n S: 51,\n M: 60,\n L: 81,\n MAX: 104\n};\n","import { darken, transparentize } from \"polished\";\nimport styled, { DefaultTheme } from \"styled-components/macro\";\n\nimport {\n T_BOLD_tiny,\n T_HEADER_bold,\n T_PLAIN_big,\n T_PLAIN_big_hig,\n T_PLAIN_med_hig,\n T_PLAIN_small\n} from \"../../global.style\";\nimport { TextEllipsisStyled } from \"../textEllipsis/TextEllipsis.styles\";\nimport { TileSize } from \"./Calendar.utils\";\n\nconst GRID_GAP = 2;\nconst ACTIONS_WRAPPER_PADDING = 5;\n\nexport const DayLabel = styled.div`\n ${T_HEADER_bold};\n text-align: center;\n text-transform: uppercase;\n`;\n\nexport const CalendarWrapper = styled.div<{\n $isSmall: boolean;\n}>`\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-rows: min-content;\n row-gap: ${GRID_GAP}px;\n column-gap: ${GRID_GAP}px;\n width: 100%;\n max-width: ${7 * TileSize.MAX + 6 * GRID_GAP}px;\n\n ${DayLabel} {\n padding-bottom: ${props => props.$isSmall ? 5 : 6}px;\n }\n`;\n\nexport const DayWrapper = styled.div<{\n $isSelected?: boolean;\n $isDummy?: boolean;\n $size?: number;\n $isHoliday?: boolean;\n}>`\n display: flex;\n min-width: ${TileSize.MIN}px;\n max-width: ${TileSize.MAX}px;\n flex-direction: column;\n aspect-ratio: 1 / 1;\n border-radius: 3px;\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05);\n border: 1px solid ${props => props.theme.C_BG_menu};\n border-color: ${props => props.$isSelected ? props.theme.C_ACT_main : \"transparent\"};\n cursor: ${props => props.$isDummy ? \"inherit\" : \"pointer\"};\n user-select: none;\n\n ${props => props.$size < TileSize.L ? `\n padding-bottom: 8px;\n ` : \"\"}\n\n background-color: ${props => props.$isSelected ? transparentize(0.15, props.theme.C_BTN_4L_trans_bg_selected) : props.theme.C_BG_menu};\n\n &:nth-child(7n + 13) { // saturdays\n background: ${props => !props.$isDummy && !props.$isSelected ? transparentize(0.98, props.theme.C_ACT_main) : \"\"};\n }\n\n &:nth-child(7n + 14) { // sundays\n background: ${props => !props.$isDummy && !props.$isSelected ? transparentize(0.95, props.theme.C_ACT_main) : \"\"};\n }\n\n ${props => props.$isHoliday ? `\n background: ${!props.$isSelected ? transparentize(0.95, props.theme.C_ACT_main) : \"\"};\n ` : \"\"}\n &:hover, &:focus-visible {\n ${props => !props.$isDummy ? `\n border: 1px solid ${transparentize(0.5, props.theme.C_ACT_main)};\n outline: none;\n ` : \"\"};\n }\n`;\n\nexport const DayIndex = styled.div<{\n $isToday: boolean;\n $size: number;\n}>`\n ${props => props.$size >= TileSize.L ? T_HEADER_bold : T_PLAIN_med_hig};\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1;\n ${props => props.$isToday ? props.$size >= TileSize.L ? `\n color: ${props.theme.C_BTN_4D_emph_text};\n &::before {\n content: \"\";\n position: absolute;\n z-index: -1;\n background: ${props.theme.C_ACT_main};\n border-radius: 100%;\n width: 33px;\n height: 33px;\n top: -5px;\n }\n ` : `\n text-decoration: underline;\n text-underline-offset: 3px;\n ` : \"\"};\n`;\n\nexport const WorkTimeSaldo = styled.div<{\n $isBig: boolean;\n}>`\n ${props => props.$isBig ? T_PLAIN_big_hig : T_BOLD_tiny};\n color: ${props => transparentize(0.5, props.theme.C_TEXT_primary)};\n text-align: center;\n`;\n\nexport const ActionsWrapper = styled.div<{\n $isBig: boolean;\n}>`\n display: flex;\n justify-content: center;\n gap: 5px;\n padding: 0 5px;\n min-width: 1px;\n height: ${props => props.$isBig ? 20 : 10}px;\n`;\n\nexport const ActionTitle = styled.div`\n margin-left: ${ACTIONS_WRAPPER_PADDING}px;\n overflow: hidden;\n display: flex;\n align-items: center;\n\n ${TextEllipsisStyled} {\n ${T_PLAIN_small};\n }\n`;\n\ninterface IStyledActionProps {\n $color: keyof DefaultTheme;\n $isStart: boolean;\n $isEnd: boolean;\n $size?: number;\n $hasConflict?: boolean;\n $dayHasMoreActions?: boolean;\n $isBig: boolean;\n}\n\nconst getWidthForAction = (props: IStyledActionProps): string => {\n if (props.$dayHasMoreActions) {\n return \"auto\";\n }\n let extraWidth = 0;\n if (!props.$isEnd) {\n extraWidth += GRID_GAP + ACTIONS_WRAPPER_PADDING + 1;\n }\n if (!props.$isStart) {\n extraWidth += GRID_GAP + ACTIONS_WRAPPER_PADDING + 1;\n }\n return extraWidth ? `calc(100% + ${extraWidth}px)` : \"100%\";\n};\n\nexport const Action = styled.div`\n display: inline-flex;\n color: ${props => props.theme.C_BTN_4D_emph_text};\n height: ${props => props.$isBig ? \"20px\" : \"10px\"};\n width: ${props => props.$isBig ? getWidthForAction(props) : \"10px\"};\n align-items: center;\n z-index: 1;\n\n padding: 0 ${props => props.$isEnd ? \"5\" : \"10\"}px 0 ${props => props.$isStart ? \"5\" : \"10\"}px;\n ${props => !props.$isBig ? \"padding: 0;\" : \"\"}\n\n border-bottom-left-radius: ${props => props.$isStart ? \"3px\" : \"0\"};\n border-top-left-radius: ${props => props.$isStart ? \"3px\" : \"0\"};\n border-top-right-radius: ${props => props.$isEnd ? \"3px\" : \"0\"};\n border-bottom-right-radius: ${props => props.$isEnd ? \"3px\" : \"0\"};\n\n background: ${props => props.$hasConflict ? `\n repeating-linear-gradient(\n -45deg,\n ${props.theme[props.$color]} 0 8px,\n ${darken(0.15, props.theme[props.$color])} 8px 16px\n )` : props.theme[props.$color]} fixed;\n ${props => !props.$isBig ? \"background: none;\" : \"\"}\n\n\n ${props => props.$isStart || !props.$isBig ? \"\" : `margin-left: -${GRID_GAP + ACTIONS_WRAPPER_PADDING + 1}px;`}\n ${props => props.$isEnd || !props.$isBig ? \"\" : `margin-right: -${GRID_GAP + ACTIONS_WRAPPER_PADDING + 1}px;`}\n\n flex-grow: 1;\n\n & .SI_4L_fill_orange {\n fill: ${props => props.$isBig ? props.theme.C_BTN_4D_emph_text : \"\"};\n }\n\n ${props => !props.$isBig ? `\n flex-grow: 0;\n & > ${Circle} { \n background-color: ${props.theme[props.$color]};\n border-color: ${props.theme[props.$color]};\n }\n & + ${MoreButton} { \n height: 10px;\n display: flex;\n align-items: center;\n }\n ` : \"\"}\n`;\n\nexport const Circle = styled.div<{\n $isHalf: boolean;\n $size: number;\n}>`\n height: 10px;\n min-width: ${props => props.$isHalf ? \"5px\" : \"10px\"};\n margin-right: ${props => props.$isHalf ? \"5px\" : \"0\"};\n background-color: ${props => props.theme.C_BTN_4D_emph_text};\n border: 1px solid ${props => props.theme.C_BTN_4D_emph_text};\n border-radius: ${props => props.$isHalf ? \"10px 0 0 10px\" : \"100%\"};\n`;\n\nexport const MoreButton = styled.div<{\n $isSmall: boolean\n}>`\n ${props => props.$isSmall ? T_PLAIN_small : T_PLAIN_big};\n color: ${props => props.theme.C_ACT_main};\n\n &:hover {\n color: ${props => props.theme.C_BTN_4L_emph_text_hover};\n }\n`;\n\nexport const SmartSpace = styled.div<{\n $basis: number;\n $max: number;\n}>`\n flex: 1 1 ${props => props.$basis}px;\n max-height: ${props => props.$max}px;\n`;","import React, { Fragment, KeyboardEvent, MouseEvent, PureComponent, ReactElement } from \"react\";\nimport {\n Action,\n ActionsWrapper,\n ActionTitle,\n Circle,\n DayIndex,\n DayWrapper,\n MoreButton,\n SmartSpace,\n WorkTimeSaldo\n} from \"./Calendar.styles\";\nimport { KeyName } from \"../../keyName\";\nimport { IFocusableItemProps } from \"../focusManager\";\nimport { IDayAction, TileSize } from \"./Calendar.utils\";\nimport TextEllipsis from \"../textEllipsis/TextEllipsis\";\nimport { FieldValidationWarningIcon } from \"../icon\";\nimport { formatHoursToTimeFormat } from \"../inputs/date/utils\";\nimport Tooltip from \"../tooltip\";\n\ninterface IProps {\n dayNumber: number;\n isSelected: boolean;\n isToday: boolean;\n isHoliday: boolean;\n onMouseDown: (e: MouseEvent, dayNumber: number) => void;\n onMouseEnter: (e: MouseEvent, dayNumber: number) => void;\n onMouseUp: (e: MouseEvent) => void;\n onEnter: (e: KeyboardEvent, dayNumber: number) => void;\n focusableProps: IFocusableItemProps;\n actions?: IDayAction[];\n size?: number;\n hoursSaldo?: number;\n}\n\nexport default class Day extends PureComponent {\n get isBig(): boolean {\n return this.props.size >= TileSize.L;\n }\n\n get isSmall(): boolean {\n return this.props.size < TileSize.M;\n }\n\n get isMedium(): boolean {\n return this.props.size < TileSize.L && this.props.size >= TileSize.M;\n }\n\n get countActionsToRender(): number {\n const size = this.props.size;\n if (this.isBig) {\n // action has 5px padding + min 20px body\n const actionsThatFitLength = Math.floor((size - 5) / 25);\n if (this.props.actions?.length > actionsThatFitLength) {\n return Math.floor((size - 26) / 25); // + 16 for MoreButton and 5 it's padding\n }\n return actionsThatFitLength;\n }\n\n // small variant action has 5px padding + min 10px body\n const actionsThatFitLength = Math.floor((size - 5) / 15);\n if (this.props.actions?.length > actionsThatFitLength) {\n return Math.floor((size - 26) / 15); // + 16 for MoreButton and 5 it's padding\n }\n return actionsThatFitLength;\n }\n\n handleMouseDown = (e: MouseEvent): void => {\n this.props.onMouseDown?.(e, this.props.dayNumber);\n };\n\n handleMouseUp = (e: MouseEvent): void => {\n e.preventDefault();\n this.props.onMouseUp?.(e);\n };\n\n handleMouseEnter = (e: MouseEvent): void => {\n e.preventDefault();\n this.props.onMouseEnter?.(e, this.props.dayNumber);\n };\n\n handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === KeyName.Enter) {\n e.preventDefault();\n this.props.onEnter?.(e, this.props.dayNumber);\n }\n };\n\n renderActionContent = (action: IDayAction, hideTitle: boolean): ReactElement => {\n if (action.hasConflict) {\n return ;\n }\n\n return <>\n \n {!hideTitle && \n \n }\n ;\n };\n\n render() {\n const actionsCnt = this.props.actions.length;\n const hasMoreActions = actionsCnt > 1;\n const saldoSign = this.props.hoursSaldo < 0 ? \"-\" : this.props.hoursSaldo > 0 ? \"+\" : \"\";\n const actionsToRender = this.props.actions?.slice(0, this.countActionsToRender);\n const tooltipActions = this.props.actions?.slice(this.countActionsToRender);\n\n return \n \n \n {this.props.dayNumber}\n \n \n {!this.isSmall && <>\n \n {saldoSign}{formatHoursToTimeFormat(Math.abs(this.props.hoursSaldo ?? 0))}\n \n \n }\n \n {actionsToRender.map((action, index) => {\n const hideTitle = !this.isBig || !action.isStart || action.hasConflict || hasMoreActions || action.hideTitle;\n return \n {(ref) => 1}\n >\n {this.renderActionContent(action, hideTitle)}\n \n }\n ;\n })}\n {!!tooltipActions?.length && \n {tooltipActions.map(action => {`${action.title}\\n`})}\n }>\n {ref => \n {`+${tooltipActions.length}`}\n }\n }\n \n {this.isBig && }\n ;\n }\n}","import React, { Component, KeyboardEvent, MouseEvent } from \"react\";\nimport { CalendarWrapper, DayLabel, DayWrapper } from \"./Calendar.styles\";\nimport { getMonthDays, getMonthFirstDayWeekOffset, getWeekdays, isSameMonth } from \"../inputs/date/utils\";\nimport { Dayjs } from \"dayjs\";\nimport { debounce, range } from \"lodash\";\nimport Day from \"./Day\";\nimport FocusManager, { FocusDirection } from \"../focusManager\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { IDayAction, TileSize } from \"./Calendar.utils\";\nimport { getUtcDayjs } from \"../../types/Date\";\n\nexport interface IProps {\n onDaySelect?: (days: Set) => void;\n month?: Dayjs;\n actions?: Record;\n hoursSaldo?: Record;\n holidays?: Date[];\n}\n\ninterface IState {\n selectedDays: Set;\n tileSize: number;\n}\n\nexport default class Calendar extends Component {\n _lastSelectedDay: number;\n _mouseDownOnDay: number;\n _wrapper = React.createRef();\n resizeObserver: ResizeObserver;\n\n state: IState = {\n selectedDays: new Set(),\n tileSize: TileSize.L\n }\n\n constructor(props: IProps) {\n super(props);\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n }\n\n componentDidMount() {\n this.handleResize();\n this.handleResize.flush();\n this.resizeObserver.observe(this._wrapper.current);\n }\n\n componentWillUnmount() {\n this.resizeObserver.disconnect();\n this.handleResize.cancel();\n }\n\n handleResize = debounce(() => {\n const tileSize = this._wrapper.current.children[0].getBoundingClientRect().width;\n\n this.setState({\n tileSize\n });\n }, 100);\n\n handleMouseDown = (e: MouseEvent, dayNumber: number): void => {\n this._mouseDownOnDay = dayNumber;\n this.handleEnter(e, dayNumber);\n };\n\n handleMouseEnter = (e: MouseEvent, dayNumber: number): void => {\n if (this._mouseDownOnDay) {\n this.handleEnter(e, dayNumber);\n }\n };\n\n handleMouseLeave = (e: MouseEvent): void => {\n if (this._mouseDownOnDay) {\n this.handleEnter(e, this._mouseDownOnDay);\n this._mouseDownOnDay = null;\n }\n };\n\n handleMouseUp = (): void => {\n this._mouseDownOnDay = null;\n this.props.onDaySelect?.(this.state.selectedDays);\n };\n\n handleEnter = (e: MouseEvent | KeyboardEvent, dayNumber: number): void => {\n let selectedDays = this.state.selectedDays;\n\n if ((e.shiftKey && this._lastSelectedDay) || (this._mouseDownOnDay && !e.ctrlKey && this._mouseDownOnDay !== dayNumber)) {\n const rootDay = e.shiftKey ? this._lastSelectedDay : this._mouseDownOnDay;\n const start = Math.min(rootDay, dayNumber);\n const length = Math.abs(rootDay - dayNumber) + 1;\n selectedDays = new Set(Array.from({ length }, (_, i) => start + i));\n } else if (e.ctrlKey) {\n if (selectedDays.has(dayNumber)) {\n selectedDays.delete(dayNumber);\n } else {\n selectedDays.add(dayNumber);\n }\n } else {\n if (selectedDays.has(dayNumber) && selectedDays.size === 1) {\n selectedDays.delete(dayNumber);\n } else {\n selectedDays = new Set([dayNumber]);\n }\n }\n\n this._lastSelectedDay = dayNumber;\n\n if (!this._mouseDownOnDay) {\n this.props.onDaySelect?.(selectedDays);\n }\n\n this.setState({\n selectedDays\n });\n }\n\n render() {\n const currentDayjs = getUtcDayjs();\n const month = this.props.month ?? currentDayjs;\n const weekdays = getWeekdays();\n const weekdayOffset = getMonthFirstDayWeekOffset(month);\n const days = getMonthDays(month);\n let today = 0;\n\n if (isSameMonth(month.toDate(), currentDayjs.toDate())) {\n today = currentDayjs.date();\n }\n\n const daysLeft = 7 - (days.length + weekdayOffset) % 7; // days left to complete square\n\n return \n {({ itemProps, wrapperProps }) => (\n \n {weekdays.map((day, index) => {day})}\n {range(weekdayOffset).map((index) => )}\n\n {days.map((day, index) => {\n const dayNumber = index + 1;\n return getUtcDayjs(h).date() === dayNumber)}\n dayNumber={dayNumber}\n onMouseDown={this.handleMouseDown}\n onMouseEnter={this.handleMouseEnter}\n onMouseUp={this.handleMouseUp}\n onEnter={this.handleEnter}\n />;\n })}\n\n {range(daysLeft === 7 ? 0 : daysLeft).map((index) => )}\n \n )}\n ;\n }\n}\n","import { StyledFieldsWrapper } from \"@components/inputs/field/FieldsWrapper.styles\";\nimport styled from \"styled-components/macro\";\n\nimport { T_HEADER_small, T_TITLE_4, T_TITLE_4_NORMAL } from \"../../../global.style\";\n\nexport const DayEditWrapper = styled.div`\n & > ${StyledFieldsWrapper} {\n margin-top: 30px;\n }\n`;\n\nexport const CalendarWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 10px 30px;\n`;\n\nexport const CalendarGrid = styled.div`\n display: grid;\n grid-gap: 25px;\n grid-template-columns: repeat(7, 1fr);\n`;\n\nexport const DayLabel = styled.div`\n text-transform: uppercase;\n ${T_TITLE_4};\n text-align: center;\n margin-bottom: -12px;\n`;\n\nexport const Day = styled.div`\n ${T_TITLE_4_NORMAL};\n text-align: center;\n`;\n\nexport const AdditionalInfo = styled.div`\n ${T_TITLE_4_NORMAL};\n align-self: flex-start;\n margin-top: 30px;\n`;\n\nexport const MonthYearLabel = styled.div`\n ${T_HEADER_small};\n text-transform: capitalize;\n margin-bottom: 24px;\n`;","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport {\n IPrAttendanceDayEntity,\n IPrAttendanceDayIntervalEntity,\n IPrAttendanceEntity,\n PrAttendanceDayEntity,\n PrAttendanceDayIntervalEntity,\n PrAttendanceEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { AttendanceFastEntry } from \"@pages/payroll/attendance/Attendance.types\";\nimport { timeDiffPath } from \"@pages/payroll/workingPatterns/WorkingPatternsDef\";\nimport { isObjectEmpty, removeItemFromArray } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React, { Component } from \"react\";\n\nimport CollapsibleSection from \"../../../components/collapsibleSection/CollapsibleSection\";\nimport FieldsWrapper from \"../../../components/inputs/field/FieldsWrapper\";\nimport SmartFastEntryList, {\n ActionType,\n addEmptyLineItem,\n ISmartFastEntriesActionEvent\n} from \"../../../components/smart/smartFastEntryList\";\nimport SmartField, { ISmartFieldBlur, ISmartFieldChange } from \"../../../components/smart/smartField/SmartField\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport DateType, { getUtcDayjs } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { DayFundPath, HasAbsencePath, IsFullDayAbsencePath, SaldoPath, WorkedHoursPath } from \"./Attendance.def\";\nimport { DayEditWrapper } from \"./Attendance.styles\";\nimport {\n ATTENDANCE_FAKE_ID,\n createNewAttendanceDayEntity,\n generateIntervalsForDay,\n getDayWorkingHours,\n isAbsenceInWorkFEList,\n isValidInterval,\n refreshActions,\n refreshBalance,\n refreshSaldoMap,\n sortIntervalsByTimeStart\n} from \"./Attendance.utils\";\nimport { IAttendanceCustomData } from \"./AttendanceFormView\";\n\ninterface IProps extends WithConfirmationDialog {\n storage: FormStorage;\n selectedDay: number;\n onChange: (args: ISmartFieldChange) => void;\n}\n\nconst workColumns = [\n { id: PrAttendanceDayIntervalEntity.WorkType },\n { id: PrAttendanceDayIntervalEntity.TimeStart },\n { id: PrAttendanceDayIntervalEntity.TimeEnd },\n { id: timeDiffPath }\n];\n\nconst absenceColumns = [\n { id: PrAttendanceDayIntervalEntity.AbsenceCategory },\n { id: PrAttendanceDayIntervalEntity.TimeStart },\n { id: PrAttendanceDayIntervalEntity.TimeEnd }\n];\n\nclass AttendanceDayEditEntries extends Component {\n componentDidMount() {\n this.setDefaults();\n }\n\n componentDidUpdate(prevProps: Readonly) {\n if (this.props.selectedDay !== prevProps.selectedDay) {\n this.setDefaults();\n }\n }\n\n get selectedDay(): IPrAttendanceDayEntity {\n return this.selectedDayBc ? this.props.storage.getValue(this.selectedDayBc) : null;\n }\n\n get selectedDayBc(): BindingContext {\n const { storage, selectedDay } = this.props;\n let day = storage.data.entity.Days?.find(day => getUtcDayjs(day.Date).get(\"date\") === selectedDay);\n if (!day) {\n day = createNewAttendanceDayEntity(selectedDay, this.props.storage);\n }\n const key = day.Id ?? day[BindingContext.NEW_ENTITY_ID_PROP];\n const isNew = !day.Id;\n\n return this.props.storage.data.bindingContext.navigate(PrAttendanceEntity.Days).addKey(key, isNew);\n }\n\n get hoursFund(): number {\n const dayIndex = getUtcDayjs(this.selectedDay.Date).get(\"date\");\n return this.props.storage.getCustomData().hoursFundMap[dayIndex] ?? 0;\n }\n\n setDefaults = () => {\n const storage = this.props.storage;\n const intervals = this.selectedDay.Intervals ?? [];\n const hasAbsence = intervals.some(i => !!i.AbsenceCategory?.Id);\n const isWholeDay = hasAbsence && intervals.length === 1 && intervals[0].IsWholeDay;\n\n storage.setValue(this.selectedDayBc.navigate(HasAbsencePath), hasAbsence);\n storage.setValue(this.selectedDayBc.navigate(IsFullDayAbsencePath), isWholeDay);\n this.recalculateWorkingHours();\n storage.refresh();\n };\n\n recalculateWorkingHours = (overwrite?: boolean) => {\n const storage = this.props.storage;\n const workingHours = getDayWorkingHours(this.selectedDay);\n const workingHoursBc = this.selectedDayBc.navigate(WorkedHoursPath);\n\n if (overwrite || !storage.getValue(workingHoursBc)) {\n const time = getUtcDayjs().startOf(\"day\").add(workingHours, \"hours\").toDate();\n storage.setValue(workingHoursBc, time);\n storage.refresh();\n }\n };\n\n handleAbsenceBlur = (e: ISmartFieldBlur): void => {\n const storage = this.props.storage;\n const interval: IPrAttendanceDayIntervalEntity = storage.getValue(e.bindingContext.getParent());\n\n if (e.wasChanged && isValidInterval(interval) && !interval.IsWholeDay && !isObjectEmpty(interval.AbsenceCategory)) {\n generateIntervalsForDay(this.selectedDayBc, this.hoursFund * 60, storage);\n storage.refresh();\n }\n };\n\n handleWorkIntervalBlur = (e: ISmartFieldBlur): void => {\n const storage = this.props.storage;\n const interval: IPrAttendanceDayIntervalEntity = storage.getValue(e.bindingContext.getParent());\n\n if (e.wasChanged && isValidInterval(interval) && isObjectEmpty(interval.AbsenceCategory)) {\n storage.setValue(this.selectedDayBc.navigate(PrAttendanceDayEntity.Intervals), this.selectedDay.Intervals.sort(sortIntervalsByTimeStart).map((interval, index) => {\n interval.Order = index;\n return interval;\n }));\n storage.refresh();\n }\n };\n\n refreshCalculatedFields = (): void => {\n const storage = this.props.storage;\n refreshSaldoMap(storage);\n refreshBalance(storage);\n refreshActions(storage);\n this.recalculateWorkingHours(true);\n storage.refresh();\n };\n\n handleBlur = async (e: ISmartFieldBlur): Promise => {\n this.handleAbsenceBlur(e);\n this.handleWorkIntervalBlur(e);\n this.copyIntervalsToOtherSelected();\n this.refreshCalculatedFields();\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n const storage = this.props.storage;\n this.handleHasAbsenceChange(e);\n this.handleIsFullDayAbsence(e);\n this.handleWorkedHoursChange(e);\n this.props.onChange(e);\n storage.refreshFields();\n };\n\n // if user selected more days edit first, and copy intervals to other selected days\n copyIntervalsToOtherSelected = (): void => {\n const storage = this.props.storage;\n const selectedDays = storage.getCustomData().selectedDays;\n if (selectedDays.size > 1) {\n const entity = storage.data.entity;\n selectedDays.forEach(day => {\n if (day === getUtcDayjs(this.selectedDay.Date).get(\"date\")) {\n return;\n }\n let dayEntity = entity.Days.find(d => getUtcDayjs(d.Date).get(\"date\") === day);\n if (!dayEntity) {\n dayEntity = createNewAttendanceDayEntity(day, storage);\n }\n dayEntity.Intervals = cloneDeep(this.selectedDay.Intervals);\n });\n }\n };\n\n handleWorkedHoursChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === WorkedHoursPath) {\n const value = e.value as Date;\n if (!DateType.isValid(value)) {\n return;\n }\n const minutes = getUtcDayjs(value).get(\"hour\") * 60 + getUtcDayjs(value).get(\"minute\");\n generateIntervalsForDay(this.selectedDayBc, minutes, this.props.storage);\n }\n };\n\n handleHasAbsenceChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === HasAbsencePath) {\n const storage = this.props.storage;\n if (e.value) {\n storage.setValue(this.selectedDayBc.navigate(IsFullDayAbsencePath), true);\n this.addNewWholeDayAbsence();\n } else {\n storage.setValue(this.selectedDayBc.navigate(PrAttendanceDayEntity.Intervals), []);\n generateIntervalsForDay(this.selectedDayBc, this.hoursFund * 60, storage);\n }\n this.refreshCalculatedFields();\n }\n };\n\n addNewWholeDayAbsence = (): void => {\n const storage = this.props.storage;\n const newItem = addEmptyLineItem({\n storage,\n bindingContext: this.selectedDayBc.navigate(PrAttendanceDayEntity.Intervals),\n newItemsCount: 1,\n index: 1,\n columns: [],\n context: storage.context\n });\n newItem.AbsenceCategory = {\n Id: ATTENDANCE_FAKE_ID\n };\n newItem.IsWholeDay = true;\n storage.setValue(this.selectedDayBc.navigate(PrAttendanceDayEntity.Intervals), [newItem]);\n };\n\n handleIsFullDayAbsence = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === IsFullDayAbsencePath) {\n if (e.value === true) {\n this.addNewWholeDayAbsence();\n } else {\n for (const interval of (this.selectedDay.Intervals ?? [])) {\n interval.IsWholeDay = false;\n }\n generateIntervalsForDay(this.selectedDayBc, this.hoursFund * 60, this.props.storage);\n }\n this.refreshCalculatedFields();\n }\n };\n\n handleAction = (e: ISmartFastEntriesActionEvent) => {\n const storage = this.props.storage;\n if (e.groupId === AttendanceFastEntry.Absence) {\n const intervals = storage.getValue(this.selectedDayBc.navigate(PrAttendanceDayEntity.Intervals)) ?? [];\n const [item] = e.affectedItems;\n if (e.actionType === ActionType.Add) {\n item.AbsenceCategory = {\n Id: ATTENDANCE_FAKE_ID\n };\n e.items = [...intervals, item];\n } else if (e.actionType === ActionType.Remove) {\n const intervalsCopy = [...intervals];\n removeItemFromArray(intervalsCopy, item);\n e.items = intervalsCopy;\n }\n }\n storage.handleLineItemsAction(e);\n\n if (e.actionType === ActionType.Remove) {\n this.recalculateWorkingHours(true);\n refreshSaldoMap(storage);\n refreshBalance(storage);\n refreshActions(storage);\n }\n\n storage.refresh();\n };\n\n render() {\n if (!this.selectedDay) {\n return null;\n }\n const storage = this.props.storage;\n const hasAbsence = storage.getValue(this.selectedDayBc.navigate(HasAbsencePath));\n const isFullDayAbsence = hasAbsence && storage.getValue(this.selectedDayBc.navigate(IsFullDayAbsencePath));\n const columnsLength = isFullDayAbsence ? 1 : 3;\n\n return \n \n \n \n \n {hasAbsence && {\n return (items as IPrAttendanceDayIntervalEntity[]).filter(i => !!i.AbsenceCategory?.Id);\n }}\n order={PrAttendanceDayIntervalEntity.Order}\n columns={absenceColumns.slice(0, columnsLength)}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n useLabelWrapping={true}\n canAdd={!isFullDayAbsence}\n isItemCloneable={false}\n onAction={this.handleAction}\n isItemDisabled={isAbsenceInWorkFEList}\n />}\n\n \n \n \n \n \n \n \n \n \n \n ;\n }\n}\n\nexport default withConfirmationDialog(AttendanceDayEditEntries);","import React, { Component } from \"react\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IPrAttendanceDayEntity, IPrAttendanceEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IAttendanceCustomData } from \"./AttendanceFormView\";\nimport SimpleTable from \"../../../components/simpleTable\";\nimport { IColumn, IRow } from \"@components/table\";\nimport { TextAlign } from \"../../../enums\";\nimport {\n formatDateToDateString,\n formatHoursToTimeFormat,\n getMonthDays,\n getWeekdays,\n longDateFormat\n} from \"@components/inputs/date/utils\";\nimport DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { balanceFormatter, getDayAbsenceHours, getDayWorkingHours } from \"./Attendance.utils\";\n\ninterface IProps {\n storage: FormStorage;\n saldoMap: Record;\n hoursFundMap: Record;\n}\n\nexport default class AttendanceDaysList extends Component {\n get columns(): IColumn[] {\n return [\n { id: \"day\", label: this.props.storage.t(\"Attendance:DaysList.Day\"), textAlign: TextAlign.Left },\n { id: \"fund\", label: this.props.storage.t(\"Attendance:DaysList.Fund\"), textAlign: TextAlign.Right },\n { id: \"worked\", label: this.props.storage.t(\"Attendance:DaysList.Worked\"), textAlign: TextAlign.Right },\n { id: \"saldo\", label: this.props.storage.t(\"Attendance:DaysList.Saldo\"), textAlign: TextAlign.Right },\n { id: \"start\", label: this.props.storage.t(\"Attendance:DaysList.Start\"), textAlign: TextAlign.Right },\n { id: \"end\", label: this.props.storage.t(\"Attendance:DaysList.End\"), textAlign: TextAlign.Right },\n { id: \"absence\", label: this.props.storage.t(\"Attendance:DaysList.Absence\"), textAlign: TextAlign.Right }\n ];\n }\n\n get rows(): IRow[] {\n const entity = this.props.storage.data.entity as IPrAttendanceEntity;\n const date = getUtcDayjs().set(\"month\", entity.Month - 1).set(\"year\", entity.Year);\n\n const days = getMonthDays(date);\n const weekDayLabels = getWeekdays();\n\n const mappedWorkDays = entity.Days?.reduce((map: Record, day) => {\n map[formatDateToDateString(day.Date)] = day;\n return map;\n }, {}) ?? {};\n\n return days.map(d => {\n const data = mappedWorkDays[formatDateToDateString(d.toDate())];\n\n const dayIndex = d.get(\"date\");\n const daysHoursFund = this.props.hoursFundMap[dayIndex];\n const workedHours = getDayWorkingHours(data);\n const absenceHours = getDayAbsenceHours(data, daysHoursFund);\n\n const start = data?.Intervals?.[0]?.TimeStart;\n const end = data?.Intervals?.[data?.Intervals?.length - 1]?.TimeEnd;\n\n return {\n id: dayIndex,\n values: {\n day: `${weekDayLabels[d.day()].toUpperCase()} ${DateType.format(d.toDate())}`,\n fund: `${daysHoursFund} ${this.props.storage.t(\"Components:Calendar.HourPlaceholder\")}`,\n saldo: balanceFormatter(this.props.saldoMap[dayIndex] * 60),\n worked: formatHoursToTimeFormat(workedHours),\n absence: formatHoursToTimeFormat(absenceHours),\n start: start ? DateType.format(start, longDateFormat(getDateFormat(DateType.defaultTimeFormat))) : formatHoursToTimeFormat(0),\n end: start ? DateType.format(end, longDateFormat(getDateFormat(DateType.defaultTimeFormat))) : formatHoursToTimeFormat(0),\n\n },\n isDisabled: !data\n };\n });\n }\n\n render() {\n return ;\n }\n}","import { Button, ButtonGroup } from \"@components/button\";\nimport { IDayAction } from \"@components/calendar/Calendar.utils\";\nimport { getMonthDays, isSameDay } from \"@components/inputs/date/utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IPrAttendanceEntity, PrAttendanceEntity } from \"@odata/GeneratedEntityTypes\";\nimport { PrAttendanceStatusCode } from \"@odata/GeneratedEnums\";\nimport { viewSwitchPath } from \"@pages/payroll/attendance/Attendance.def\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n getDaySaldo,\n getMonthHolidays,\n getWorkingPattern,\n getWorkingPatternDaysMap,\n parseDayActionsFromData,\n refreshBalance,\n transformWorkIntervalsBeforeSave\n} from \"./Attendance.utils\";\n\nexport interface IAttendanceCustomData extends IFormStorageDefaultCustomData {\n selectedDays: Set;\n saldoMap: Record;\n hoursFundMap: Record;\n actions?: Record;\n etag?: string;\n holidays?: Date[];\n}\n\nclass AttendanceFormView extends FormViewForExtend> {\n static contextType = AppContext;\n static defaultProps = {\n title: \"Attendance:FormTitle\"\n };\n\n async onAfterLoad(){\n const storage = this.props.storage;\n storage.setDefaultValueByPath(viewSwitchPath);\n\n const monthDate = getUtcDayjs().set(\"month\", this.entity.Month - 1).set(\"year\", this.entity.Year);\n\n const holidays = await getMonthHolidays(monthDate, this.entity.Year, this.context.getCompany().CountryCode);\n const workingPattern = getWorkingPattern(this.entity);\n\n const hoursFundMap = getWorkingPatternDaysMap(workingPattern, monthDate, holidays);\n\n const monthDays = getMonthDays(monthDate);\n const saldoMap = monthDays.reduce((map: Record, day) => {\n const dayIndex = day.get(\"date\");\n const dayHoursFund = hoursFundMap[dayIndex] ?? 0;\n const attendanceDay = this.entity.Days?.find(d => isSameDay(day, getUtcDayjs(d.Date)));\n if (attendanceDay) {\n map[dayIndex] = getDaySaldo(attendanceDay, dayHoursFund);\n } else {\n map[dayIndex] = 0;\n }\n return map;\n }, {});\n\n const actions = parseDayActionsFromData(this.entity.Days);\n\n storage.setCustomData({\n holidays,\n saldoMap,\n hoursFundMap,\n actions,\n selectedDays: null\n });\n refreshBalance(storage);\n\n return super.onAfterLoad();\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n this.props.storage.refresh();\n };\n\n handleUnlock = async (): Promise => {\n this.props.storage.setValueByPath(PrAttendanceEntity.StatusCode, PrAttendanceStatusCode.ToProcess);\n await this.save();\n };\n\n handleLock = async (): Promise => {\n this.props.storage.setValueByPath(PrAttendanceEntity.StatusCode, PrAttendanceStatusCode.Locked);\n await this.save();\n };\n\n handleSave = async (): Promise => {\n await this.save();\n };\n\n onBeforeSave = (): IPrAttendanceEntity => {\n const entity = cloneDeep(this.entity);\n entity.Overtime = Math.max(entity.Balance, 0);\n for (const day of entity.Days) {\n day.Intervals = transformWorkIntervalsBeforeSave(day.Intervals);\n }\n return entity;\n };\n\n renderButtons = (): ReactElement => {\n const isEditable = this.entity.Status?.Code === PrAttendanceStatusCode.ToProcess;\n const isProcessed = this.entity.Status?.Code === PrAttendanceStatusCode.Processed;\n return \n {isEditable && <>\n \n \n }\n {!isEditable && }\n ;\n };\n}\n\nexport default withPermissionContext(AttendanceFormView);","import React, { Component } from \"react\";\nimport Dialog from \"../../../components/dialog/Dialog\";\nimport { Button } from \"../../../components/button\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { getWeekdays } from \"@components/inputs/date/utils\";\nimport { AdditionalInfo, CalendarGrid, CalendarWrapper, Day, DayLabel, MonthYearLabel } from \"./Attendance.styles\";\nimport { IPrAttendanceEntity, PrAttendanceEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IAttendanceCustomData } from \"./AttendanceFormView\";\nimport DateType, { DateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport { generateIntervalsForDay, refreshBalance, refreshSaldoMap } from \"./Attendance.utils\";\n\ninterface IProps {\n storage: FormStorage;\n onClose: (isConfirmed: boolean) => void;\n}\n\nexport default class UsedWorkingPatternOverview extends Component {\n usePattern = (): void => {\n const storage = this.props.storage;\n const saldoMap = storage.getCustomData().saldoMap;\n const daysBc = this.props.storage.data.bindingContext.navigate(PrAttendanceEntity.Days);\n const daysToUpdate: Set = new Set();\n\n for (const [key, value] of Object.entries(saldoMap)) {\n // TODO: still not sure what this should do\n if (value < 0) {\n const dayIndex = parseInt(key);\n daysToUpdate.add(dayIndex);\n const day = this.props.storage.data.entity.Days.find(d => getUtcDayjs(d.Date).get(\"date\") === dayIndex);\n generateIntervalsForDay(daysBc.addKey(day.Id), roundToDecimalPlaces(0, value * -60), storage);\n }\n }\n\n refreshSaldoMap(storage, daysToUpdate);\n refreshBalance(storage);\n storage.refresh();\n this.props.onClose(true);\n };\n\n handleCancel = (): void => {\n this.props.onClose(false);\n };\n\n render() {\n const weekdayLabels = getWeekdays();\n const entity = this.props.storage.data.entity;\n const startOfMonth = getUtcDayjs().set(\"month\", entity.Month - 1).set(\"year\", entity.Year).startOf(\"month\");\n const firstDayOfMonthWeekday = startOfMonth.get(\"day\");\n const offsetLength = firstDayOfMonthWeekday === 0 ? 6 : firstDayOfMonthWeekday - 1;\n\n const fundMap = this.props.storage.getCustomData().hoursFundMap;\n\n const totalFund = roundToDecimalPlaces(1, Object.values(fundMap).reduce((total, f) => {\n return total + f;\n }, 0));\n\n const planned = roundToDecimalPlaces(1, totalFund + (entity.Balance / 60));\n\n return \n \n \n \n }>\n \n \n {DateType.format(startOfMonth.toDate(), DateFormat.monthAndYear)}\n \n \n {weekdayLabels.map((day, index) => {day})}\n {Array.from(Array(offsetLength).keys()).map((h, index) => {\n return ;\n })}\n {Object.values(fundMap).map((h, index) => {\n return \n {h}\n ;\n })}\n \n \n {this.props.storage.t(\"Attendance:Form.WorkingHoursFund\")}\n  {totalFund} {this.props.storage.t(\"Components:Calendar.HourPlaceholder\")}
    \n {this.props.storage.t(\"Attendance:Form.Planned\")}\n  {planned} {this.props.storage.t(\"Components:Calendar.HourPlaceholder\")}\n
    \n
    \n
    ;\n }\n}","import { VisibleIcon } from \"@components/icon\";\nimport { formatHoursToTimeFormat, longDateFormat } from \"@components/inputs/date/utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getCommonFilterDefs, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem, ISummaryItemEditProps } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrAttendanceDayEntity,\n IPrAttendanceDayIntervalEntity,\n IPrAttendanceEntity,\n IPrAttendanceStatusEntity,\n IPrEmployeeEntity,\n IPrEmploymentEntity,\n PrAbsenceCategoryEntity,\n PrAbsenceCategoryTemporalCurrentEntity,\n PrAttendanceDayEntity,\n PrAttendanceDayIntervalEntity,\n PrAttendanceEntity,\n PrAttendanceStatusEntity,\n PrEmployeeEntity,\n PrEmploymentEntity,\n PrEmploymentTemplateEntity,\n PrEmploymentTemplateTemporalEntity,\n PrEmploymentTemporalEntity,\n PrWorkingPatternDayEntity,\n PrWorkingPatternEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrAttendanceStatusCode, PrWorkIntervalTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { userNameWithAvatarTableFormatter } from \"@pages/admin/users/UsersDef\";\nimport { AttendanceViewMode } from \"@pages/payroll/attendance/Attendance.types\";\nimport { getHoursDiffFormatted } from \"@pages/payroll/workingPatterns/WorkingPatterns.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport Calendar from \"../../../components/calendar\";\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n FieldType,\n LabelStatus,\n NavigationSource,\n Sort,\n TextAlign\n} from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { balanceFormatter, getWorkingPattern, hasFullDayAbsence, isAbsenceInWorkFEList } from \"./Attendance.utils\";\nimport AttendanceDayEditEntries from \"./AttendanceDayEditEntries\";\nimport AttendanceDaysList from \"./AttendanceDaysList\";\nimport AttendanceFormView, { IAttendanceCustomData } from \"./AttendanceFormView\";\nimport UsedWorkingPatternOverview from \"./UsedWorkingPatternOverview\";\n\nfunction getThemeColorForPaymentStatus(statusCode: PrAttendanceStatusCode): keyof DefaultTheme {\n return statusCode === PrAttendanceStatusCode.ToProcess ? \"C_SEM_text_bad\" : \"C_SEM_text_good\";\n}\n\nexport const viewSwitchPath = BindingContext.localContext(\"ViewSwitch\");\nexport const dayFastEntriesPath = BindingContext.localContext(\"DayFastEntries\");\nexport const DayFundPath = BindingContext.localContext(\"DayFund\");\nexport const WorkedHoursPath = BindingContext.localContext(\"WorkedHours\");\nexport const SaldoPath = BindingContext.localContext(\"Saldo\");\nexport const IsFullDayAbsencePath = BindingContext.localContext(\"IsFullDayAbsence\");\nexport const HasAbsencePath = BindingContext.localContext(\"HasAbsence\");\nexport const timeDiffPath = BindingContext.localContext(\"TimeDiff\");\n\nconst handleDaySelect = (selectedDays: Set, storage: FormStorage): void => {\n storage.setCustomData({ selectedDays });\n storage.refresh();\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrAttendance}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.FirstName),\n createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.LastName),\n createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.NumberOurs),\n PrAttendanceEntity.Status\n ],\n filterDefinition: {\n [createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.FirstName)]: {},\n [createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.LastName)]: {},\n [createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.NumberOurs)]: {},\n ...withDisplayName(PrAttendanceEntity.Status),\n ...getCommonFilterDefs()\n },\n isValueHelp: true\n }],\n initialSortBy: [{\n id: createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.LastName),\n sort: Sort.Desc\n }],\n columns: [\n createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.LastName),\n createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.NumberOurs),\n PrAttendanceEntity.Status,\n PrAttendanceEntity.Balance,\n PrAttendanceEntity.Overtime,\n PrAttendanceEntity.OvertimeFromPreviousMonth\n ],\n columnDefinition: {\n [createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.LastName)]: {\n label: i18next.t(\"Attendance:Table.Name\"),\n additionalProperties: [{ id: `/${createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee, PrEmployeeEntity.FirstName)}` }],\n formatter: (val, args) => {\n return userNameWithAvatarTableFormatter(val, {\n ...args,\n entity: (args.entity as IPrAttendanceEntity)?.Employment?.Employee\n });\n }\n },\n [createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.NumberOurs)]: {\n label: i18next.t(\"Attendance:Table.Employment\")\n },\n [PrAttendanceEntity.Status]: {\n formatter: (val, args) => {\n const entity = args.entity as IPrAttendanceEntity;\n return {\n value: \n {entity.Status?.Name}\n ,\n tooltip: entity.Status?.Name\n };\n }\n },\n [PrAttendanceEntity.Balance]: {\n formatter: balanceFormatter\n },\n [PrAttendanceEntity.Overtime]: {\n formatter: balanceFormatter\n },\n [PrAttendanceEntity.OvertimeFromPreviousMonth]: {\n formatter: balanceFormatter\n }\n },\n title: i18next.t(\"Attendance:Title\"),\n tabs: [],\n tabsSettings: {\n customFilter: (selectedTab: string) => {\n if (!selectedTab) {\n return \"\";\n }\n const [year, month] = selectedTab.split(\"-\");\n return `${PrAttendanceEntity.Year} eq ${year} AND ${PrAttendanceEntity.Month} eq ${month}`;\n },\n withoutCounts: true\n }\n };\n\n const summary: ISummaryItem[] = [{\n id: createPath(PrAttendanceEntity.Employment, PrEmploymentEntity.Employee),\n additionalProperties: [{ id: PrEmployeeEntity.FirstName }, { id: PrEmployeeEntity.LastName }],\n formatter: (val) => {\n const employee = val as IPrEmployeeEntity;\n return `${employee.FirstName} ${employee.LastName}`;\n }\n }, {\n id: PrAttendanceEntity.Balance,\n label: i18next.t(\"Attendance:Summary.Balance\"),\n formatter: (val, args) => {\n const entity = args.entity as IPrAttendanceEntity;\n return balanceFormatter(entity.Balance)?.value;\n }\n }, {\n id: BindingContext.localContext(\"WorkingPattern\"),\n label: i18next.t(\"Attendance:Summary.WorkingPattern\"),\n textAlign: TextAlign.Left,\n formatter: (val, args) => {\n const workingPattern = getWorkingPattern(args.entity as IPrAttendanceEntity);\n return workingPattern?.Name ?? DASH_CHARACTER;\n },\n renderEdit: (args: ISummaryItemEditProps) => (\n }\n onClose={args.onClose}\n />\n ),\n icon: VisibleIcon\n }, {\n id: PrAttendanceEntity.Employment,\n label: i18next.t(\"Attendance:Table.Employment\"),\n additionalProperties: [{ id: PrEmploymentEntity.NumberOurs }],\n formatter: (val) => {\n const employment = val as IPrEmploymentEntity;\n return employment?.NumberOurs ?? DASH_CHARACTER;\n }\n }, {\n id: PrAttendanceEntity.Status,\n additionalData: [{ id: PrAttendanceStatusEntity.Name }],\n label: i18next.t(\"Attendance:Summary.Status\"),\n formatter: (val) => {\n return (val as IPrAttendanceStatusEntity)?.Name;\n },\n colorFormatter: (val) => {\n return getThemeColorForPaymentStatus((val as IPrAttendanceStatusEntity).Code as PrAttendanceStatusCode);\n }\n }];\n\n const workingPatternAdditionalProperties = [\n { id: PrWorkingPatternEntity.Name },\n { id: PrWorkingPatternEntity.Type },\n { id: PrWorkingPatternEntity.DefaultDayStart },\n { id: PrWorkingPatternEntity.IsDifferentOddAndEvenWeek },\n {\n id: PrWorkingPatternEntity.Days,\n additionalProperties: [\n { id: PrWorkingPatternDayEntity.WorkingHours },\n { id: PrWorkingPatternDayEntity.Date }\n ]\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrAttendance}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) => {\n const employee = (storage.data.entity as IPrAttendanceEntity).Employment.Employee;\n const fullName = `${employee.FirstName} ${employee.LastName}`;\n return getItemBreadCrumbsText(storage, null, fullName);\n },\n formControl: AttendanceFormView,\n summary,\n additionalProperties: [{\n id: PrAttendanceEntity.Month\n }, {\n id: PrAttendanceEntity.Year\n }, {\n id: PrAttendanceEntity.Employment,\n additionalProperties: [{\n id: PrEmploymentEntity.NumberOurs\n }, {\n id: PrEmploymentEntity.Template,\n additionalProperties: [{\n id: PrEmploymentTemplateEntity.TemporalPropertyBag,\n additionalProperties: [{\n id: PrEmploymentTemplateTemporalEntity.DateValidFrom\n }, {\n id: PrEmploymentTemplateTemporalEntity.DateValidTo\n }, {\n id: PrEmploymentTemplateTemporalEntity.WorkingPattern,\n additionalProperties: workingPatternAdditionalProperties\n }]\n }]\n }, {\n id: PrEmploymentEntity.TemporalPropertyBag,\n additionalProperties: [{\n id: PrEmploymentTemporalEntity.DateValidFrom\n }, {\n id: PrEmploymentTemporalEntity.DateValidTo\n }, {\n id: PrEmploymentTemporalEntity.WorkingPattern,\n additionalProperties: workingPatternAdditionalProperties\n }]\n }]\n }, {\n id: PrAttendanceEntity.Days,\n additionalProperties: [{\n id: DayFundPath // local context, here just for info load\n }, {\n id: WorkedHoursPath // local context, here just for info load\n }, {\n id: SaldoPath // local context, here just for info load\n }, {\n id: HasAbsencePath // local context, here just for info load\n }, {\n id: IsFullDayAbsencePath // local context, here just for info load\n }, {\n id: PrAttendanceDayEntity.Date\n }, {\n id: PrAttendanceDayEntity.Intervals,\n additionalProperties: [{\n id: timeDiffPath // local context, here just for info load\n }, {\n id: PrAttendanceDayIntervalEntity.AbsenceCategory,\n additionalProperties: [{\n id: PrAbsenceCategoryEntity.Color\n }, {\n id: PrAbsenceCategoryEntity.CurrentTemporalPropertyBag,\n additionalProperties: [{\n id: PrAbsenceCategoryTemporalCurrentEntity.Name\n }]\n }]\n }, {\n id: PrAttendanceDayIntervalEntity.TimeEnd\n }, {\n id: PrAttendanceDayIntervalEntity.TimeStart\n }, {\n id: PrAttendanceDayIntervalEntity.WorkType\n }, {\n id: PrAttendanceDayIntervalEntity.Order\n }, {\n id: PrAttendanceDayIntervalEntity.IsWholeDay\n }, {\n id: PrAttendanceDayIntervalEntity.IsStartNextDay\n }, {\n id: PrAttendanceDayIntervalEntity.IsEndNextDay\n }]\n }]\n }],\n fieldDefinition: {\n [viewSwitchPath]: {\n type: FieldType.SegmentedButton,\n defaultValue: AttendanceViewMode.Calendar,\n labelStatus: LabelStatus.Removed,\n fieldSettings: {\n items: [{\n id: AttendanceViewMode.Calendar,\n iconName: \"Date\",\n title: i18next.t(\"Attendance:Form.Calendar\")\n }, {\n id: AttendanceViewMode.Table,\n iconName: \"List\",\n title: i18next.t(\"Attendance:Form.Table\")\n }]\n }\n },\n [BindingContext.localContext(\"Table\")]: {\n type: FieldType.Custom,\n isVisible: (args: IGetValueArgs) => {\n return args.storage.getValueByPath(viewSwitchPath) === AttendanceViewMode.Table;\n },\n render: (args: IFieldDefFn) => {\n const storage = args.storage as FormStorage;\n const saldoMap = storage.getCustomData()?.saldoMap ?? {};\n const hoursFundMap = storage.getCustomData()?.hoursFundMap ?? {};\n\n return ;\n },\n customizationData: {\n useForCustomization: false\n }\n },\n [BindingContext.localContext(\"Calendar\")]: {\n type: FieldType.Custom,\n isVisible: (args: IGetValueArgs) => {\n return args.storage.getValueByPath(viewSwitchPath) !== AttendanceViewMode.Table;\n },\n render: (args: IFieldDefFn) => {\n const storage = args.storage as FormStorage;\n const entity = storage.data.entity;\n const saldoMap = storage.getCustomData()?.saldoMap ?? {};\n const actions = storage.getCustomData()?.actions ?? {};\n const holidays = storage.getCustomData()?.holidays ?? [];\n const month = getUtcDayjs().set(\"month\", entity.Month - 1).set(\"year\", entity.Year);\n return handleDaySelect(days, storage)}\n />;\n },\n customizationData: {\n useForCustomization: false\n }\n },\n [dayFastEntriesPath]: {\n type: FieldType.Custom,\n isVisible: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const viewType = storage.getValueByPath(viewSwitchPath);\n return !!storage.getCustomData().selectedDays?.size && viewType !== AttendanceViewMode.Table;\n },\n render: (args: IFieldDefFn) => {\n const storage = args.storage as FormStorage;\n const selectedDayIndex = storage.getCustomData().selectedDays?.values().next()?.value;\n return ;\n }\n },\n [createPath(PrAttendanceEntity.Days, PrAttendanceDayEntity.Intervals, PrAttendanceDayIntervalEntity.AbsenceCategory)]: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.Route,\n fieldSettings: {\n displayName: \"CurrentTemporalPropertyBag/Name\",\n preloadItems: true,\n additionalProperties: [{ id: PrAbsenceCategoryEntity.Color }],\n localDependentFields: [{\n from: { id: PrAbsenceCategoryEntity.Color },\n to: { id: PrAbsenceCategoryEntity.Color },\n navigateFrom: NavigationSource.Itself\n }]\n }\n },\n [createPath(PrAttendanceEntity.Days, PrAttendanceDayEntity.Intervals, PrAttendanceDayIntervalEntity.WorkType)]: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: \"Name\"\n },\n isDisabled: isAbsenceInWorkFEList,\n formatter: (code, args) => {\n const entity = args.storage.getValue(args.bindingContext.getParent());\n return entity?.AbsenceCategory?.CurrentTemporalPropertyBag?.Name ?? getEnumDisplayValue(EntityTypeName.PrWorkIntervalType, code as PrWorkIntervalTypeCode);\n },\n defaultValue: (args: IGetValueArgs) => {\n const dayBc = args.bindingContext.getParentCollection().getParent();\n const day = args.storage.getValue(dayBc) as IPrAttendanceDayEntity;\n const lastInterval = day.Intervals?.at(-1);\n return lastInterval?.WorkType?.Code === PrWorkIntervalTypeCode.Work ? PrWorkIntervalTypeCode.MealBreak : PrWorkIntervalTypeCode.Work;\n }\n },\n [createPath(PrAttendanceEntity.Days, PrAttendanceDayEntity.Intervals, PrAttendanceDayIntervalEntity.TimeStart)]: {\n type: FieldType.Time,\n width: BasicInputSizes.XS,\n isDisabled: isAbsenceInWorkFEList,\n fieldSettings: {\n showSteppers: false\n }\n },\n [createPath(PrAttendanceEntity.Days, PrAttendanceDayEntity.Intervals, PrAttendanceDayIntervalEntity.TimeEnd)]: {\n type: FieldType.Time,\n width: BasicInputSizes.XS,\n isDisabled: isAbsenceInWorkFEList,\n fieldSettings: {\n showSteppers: false\n }\n },\n [createPath(PrAttendanceEntity.Days, PrAttendanceDayEntity.Intervals, timeDiffPath)]: {\n isReadOnly: true,\n width: \"50px\",\n label: i18next.t(\"Attendance:Form.Length\"),\n formatter: (val, args) => {\n const intervalEntity = args.storage.getValue(args.bindingContext.getParent()) as IPrAttendanceDayIntervalEntity;\n if (!intervalEntity) {\n return \"\";\n }\n return getHoursDiffFormatted(intervalEntity.TimeStart, intervalEntity.TimeEnd);\n }\n },\n [createPath(PrAttendanceEntity.Days, DayFundPath)]: {\n label: i18next.t(\"Attendance:DaysList.Fund\"),\n isReadOnly: true,\n formatter: (val, args) => {\n const storage = args.storage as FormStorage;\n const dayEntity = storage.getValue(args.bindingContext.getParent());\n if (hasFullDayAbsence(dayEntity)) {\n return DASH_CHARACTER;\n }\n const date = dayEntity[PrAttendanceDayEntity.Date];\n const dayIndex = getUtcDayjs(date).get(\"date\");\n const fund = storage.getCustomData().hoursFundMap[dayIndex] ?? 0;\n return formatHoursToTimeFormat(fund);\n }\n },\n [createPath(PrAttendanceEntity.Days, WorkedHoursPath)]: {\n type: FieldType.Time,\n width: BasicInputSizes.S,\n label: i18next.t(\"Attendance:DaysList.Worked\"),\n isReadOnly: (args: IGetValueArgs): boolean => {\n return hasFullDayAbsence(args.storage.getValue(args.bindingContext.getParent()));\n },\n formatter: (val, args) => {\n const storage = args.storage as FormStorage;\n const dayEntity = storage.getValue(args.bindingContext.getParent());\n if (hasFullDayAbsence(dayEntity)) {\n return DASH_CHARACTER;\n }\n return DateType.format(val as Date, longDateFormat(getDateFormat(DateType.defaultTimeFormat)));\n },\n fieldSettings: {\n unit: i18next.t(\"Components:Calendar.HourPlaceholder\")\n }\n },\n [createPath(PrAttendanceEntity.Days, SaldoPath)]: {\n label: i18next.t(\"Attendance:DaysList.Saldo\"),\n isReadOnly: true,\n formatter: (val, args) => {\n const storage = args.storage as FormStorage;\n const dayEntity = storage.getValue(args.bindingContext.getParent());\n if (hasFullDayAbsence(dayEntity)) {\n return DASH_CHARACTER;\n }\n const date = dayEntity[PrAttendanceDayEntity.Date];\n const dayIndex = getUtcDayjs(date).get(\"date\");\n const saldo = storage.getCustomData().saldoMap[dayIndex] ?? 0;\n\n if (saldo === 0) {\n return formatHoursToTimeFormat(0);\n }\n\n return (saldo < 0 ? \"-\" : \"+\") + formatHoursToTimeFormat(Math.abs(saldo));\n },\n },\n [createPath(PrAttendanceEntity.Days, HasAbsencePath)]: {\n type: FieldType.Switch,\n label: i18next.t(\"Attendance:Form.Absence\"),\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n [createPath(PrAttendanceEntity.Days, IsFullDayAbsencePath)]: {\n type: FieldType.SegmentedButton,\n defaultValue: true,\n isVisible: (args) => {\n return !!args.storage.getValue(args.bindingContext.getParent().navigate(HasAbsencePath));\n },\n fieldSettings: {\n items: [{\n id: false,\n label: i18next.t(\"Attendance:AbsenceType.Partial\")\n }, {\n id: true,\n label: i18next.t(\"Attendance:AbsenceType.WholeDay\")\n }]\n }\n }\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: viewSwitchPath }\n ],\n [\n { id: BindingContext.localContext(\"Calendar\") },\n { id: BindingContext.localContext(\"Table\") }\n ],\n [\n { id: dayFastEntriesPath }\n ]\n ]\n }\n ]\n };\n return {\n entitySet: EntitySetName.PrAttendances,\n table,\n form\n };\n};\ngetDefinitions.translationFiles = [\"Attendance\", \"Common\", \"Components\"];\nsetDefByEntityType(EntityTypeName.PrAttendance, getDefinitions);","export enum AttendanceViewMode {\n Calendar = \"Calendar\",\n Table = \"Table\"\n}\n\nexport enum AttendanceFastEntry {\n Absence = \"Absence\",\n Work = \"Work\"\n}","import { IDayAction } from \"@components/calendar/Calendar.utils\";\nimport {\n formatHoursToTimeFormat,\n getHourDifference,\n getMonthDays,\n isSameDay,\n isSameMonth,\n isValidDate\n} from \"@components/inputs/date/utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { addEmptyLineItem } from \"@components/smart/smartFastEntryList\";\nimport { ICellValueObject } from \"@components/table\";\nimport { getNewItemsMaxId } from \"@odata/Data.utils\";\nimport {\n IPrAttendanceDayEntity,\n IPrAttendanceDayIntervalEntity,\n IPrAttendanceEntity,\n IPrEmploymentTemporalEntity,\n IPrWorkingPatternDayIntervalEntity,\n IPrWorkingPatternEntity,\n PrAttendanceDayEntity,\n PrAttendanceDayIntervalEntity,\n PrAttendanceEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode, PrWorkingPatternTypeCode, PrWorkIntervalTypeCode } from \"@odata/GeneratedEnums\";\nimport { AttendanceFastEntry } from \"@pages/payroll/attendance/Attendance.types\";\nimport { isDefined, isNotDefined, isObjectEmpty, roundToDecimalPlaces } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components/macro\";\n\nimport { BREAK_LENGTH, REST_API_URL, WORK_LENGTH } from \"../../../constants\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport customFetch from \"../../../utils/customFetch\";\nimport memoize from \"../../../utils/memoize\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { timeDiffPath } from \"../workingPatterns/WorkingPatternsDef\";\nimport { IAttendanceCustomData } from \"./AttendanceFormView\";\n\nexport const ATTENDANCE_FAKE_ID = -9999;\n\nexport const isValidInterval = (interval: IPrAttendanceDayIntervalEntity): boolean => {\n return (!isObjectEmpty(interval.AbsenceCategory) || !isObjectEmpty(interval.WorkType))\n && isValidDate(interval.TimeStart) && isValidDate(interval.TimeEnd);\n};\n\nexport const getTimeSpanFromHours = (hours: number): Date => {\n const minutes = Math.round((hours % 1) * 60);\n return getUtcDayjs().startOf(\"day\").add(Math.floor(hours), \"hour\").add(minutes, \"minute\").toDate();\n};\n\nexport const getHoursFromTimeStamp = (timeStamp: Date): number => {\n return getUtcDayjs(timeStamp).get(\"hours\") + roundToDecimalPlaces(3, getUtcDayjs(timeStamp).get(\"minutes\") / 60);\n};\n\nexport const getDayWorkingHours = (day: IPrAttendanceDayEntity): number => {\n return day?.Intervals?.filter(i => i.WorkType?.Code === PrWorkIntervalTypeCode.Work).reduce((hours, interval) => {\n if (isNotDefined(interval.TimeStart) || isNotDefined(interval.TimeEnd)) {\n return hours;\n }\n const diff = getHourDifference(getUtcDayjs(interval.TimeStart), getUtcDayjs(interval.TimeEnd));\n return hours + diff;\n }, 0) ?? 0;\n};\n\nexport const getDayAbsenceHours = (day: IPrAttendanceDayEntity, dayHoursFund: number): number => {\n return day?.Intervals?.filter(i => !!i.AbsenceCategory?.Id).reduce((hours, interval) => {\n if (interval.IsWholeDay) {\n return dayHoursFund;\n }\n if (isNotDefined(interval.TimeStart) || isNotDefined(interval.TimeEnd)) {\n return hours;\n }\n const diff = getHourDifference(getUtcDayjs(interval.TimeStart), getUtcDayjs(interval.TimeEnd));\n return hours + diff;\n }, 0) ?? 0;\n};\n\nexport const getWorkingPattern = (attendance: IPrAttendanceEntity): IPrWorkingPatternEntity => {\n const monthDate = getUtcDayjs().set(\"month\", attendance.Month - 1).set(\"year\", attendance.Year);\n const findFn = (bag: IPrEmploymentTemporalEntity) => {\n return getUtcDayjs(monthDate).isBetween(getUtcDayjs(bag.DateValidFrom), getUtcDayjs(bag.DateValidTo));\n };\n\n const employmentWorkPattern = attendance.Employment?.TemporalPropertyBag?.find(findFn)?.WorkingPattern;\n\n if (isObjectEmpty(employmentWorkPattern)) {\n return attendance.Employment.Template?.TemporalPropertyBag?.find(findFn)?.WorkingPattern;\n }\n return employmentWorkPattern;\n};\n\nexport const getWorkingPatternDaysMap = (workingPattern: IPrWorkingPatternEntity, month: Dayjs, holidays: Date[] = []): Record => {\n const monthDays = getMonthDays(month);\n if (workingPattern.Type?.Code === PrWorkingPatternTypeCode.Weekly) {\n const result = monthDays.reduce((map: Record, day) => {\n const dayIndex = day.get(\"date\");\n const wpDay = workingPattern.Days?.find(d => {\n let res = day.day() === getUtcDayjs(d.Date).day();\n if (workingPattern.IsDifferentOddAndEvenWeek) {\n res = res && (day.week() % 2 === getUtcDayjs(d.Date).week() % 2);\n }\n return res;\n });\n map[dayIndex] = getHoursFromTimeStamp(wpDay?.WorkingHours) ?? 0;\n return map;\n }, {});\n\n for (const holiday of holidays) {\n result[getUtcDayjs(holiday).get(\"date\")] = 0;\n }\n return result;\n }\n\n return monthDays.reduce((map: Record, day) => {\n const dayIndex = day.get(\"date\");\n const wpDay = workingPattern.Days?.find(d => isSameDay(day, getUtcDayjs(d.Date)));\n map[dayIndex] = getHoursFromTimeStamp(wpDay?.WorkingHours) ?? 0;\n return map;\n }, {});\n};\n\nexport const balanceFormatter = (val: TValue): ICellValueObject => {\n const typedVal = val as number;\n const sign = typedVal > 0 ? \"+\" : typedVal < 0 ? \"-\" : \"\";\n const color = typedVal > 0 ? \"C_SEM_text_good\" : typedVal < 0 ? \"C_SEM_text_bad\" : \"C_TEXT_primary\";\n\n const formattedVal = `${sign}${formatHoursToTimeFormat(Math.abs(val as number) / 60)}`;\n return {\n value: \n {formattedVal}\n ,\n tooltip: formattedVal\n };\n};\n\nexport const parseDayActionsFromData = (days: IPrAttendanceDayEntity[]): Record => {\n let lastAbsence: number = null;\n return days.sort((d1, d2) => getUtcDayjs(d1.Date).diff(d2.Date)).reduce((actionsMap: Record, day) => {\n const date = getUtcDayjs(day.Date);\n const dayIndex = date.get(\"date\");\n const absences = day.Intervals?.filter(i => !!i.AbsenceCategory?.Id);\n const isMonday = date.day() === 1;\n\n const daysActions: IDayAction[] = [];\n if (absences?.length) {\n if (absences.length > 1 && absences.some(a => a.IsWholeDay ||\n absences.some(a2 => {\n return a2 !== a && (\n getUtcDayjs(a2.TimeStart).isBetween(getUtcDayjs(a.TimeEnd), getUtcDayjs(a.TimeStart), \"minutes\") ||\n getUtcDayjs(a2.TimeEnd).isBetween(getUtcDayjs(a.TimeEnd), getUtcDayjs(a.TimeStart), \"minutes\")\n );\n }))) {\n daysActions.push({\n color: absences[0].AbsenceCategory.Color as keyof DefaultTheme,\n title: i18next.t(\"Attendance:EditAbsence\"),\n isFullDay: true,\n isStart: true,\n isEnd: true,\n hasConflict: true\n });\n lastAbsence = null;\n } else {\n for (const absence of absences) {\n const isContinuingAbsence = isDefined(lastAbsence) && lastAbsence === absence.AbsenceCategory.Id && absences.length === 1;\n lastAbsence = absence.AbsenceCategory.Id;\n daysActions.push({\n color: absence.AbsenceCategory.Color as keyof DefaultTheme,\n title: absence.AbsenceCategory.CurrentTemporalPropertyBag?.Name,\n isFullDay: absence.IsWholeDay,\n isStart: isMonday || !isContinuingAbsence,\n hideTitle: isMonday && isContinuingAbsence,\n isEnd: true,\n hasConflict: false\n });\n\n if (isContinuingAbsence && actionsMap[dayIndex - 1]) {\n actionsMap[dayIndex - 1][0].isEnd = isMonday;\n }\n }\n }\n } else {\n lastAbsence = null;\n }\n actionsMap[dayIndex] = daysActions;\n return actionsMap;\n }, {});\n};\n\nexport const isAbsenceInWorkFEList = (args: IGetValueArgs): boolean => {\n const entity = args.item ?? args.storage.getValue(args.bindingContext.getParent());\n return args.fastEntryListId === AttendanceFastEntry.Work && !!entity?.AbsenceCategory?.Id;\n};\n\nexport const sortIntervalsByTimeStart = (i1: IPrAttendanceDayIntervalEntity, i2: IPrAttendanceDayIntervalEntity): number => {\n return (getUtcDayjs(i1.TimeStart).get(\"hours\") * 60 + getUtcDayjs(i1.TimeStart).get(\"minutes\")) - (getUtcDayjs(i2.TimeStart).get(\"hours\") * 60 + getUtcDayjs(i2.TimeStart).get(\"minutes\"));\n};\n\nexport const hasFullDayAbsence = (entity: IPrAttendanceDayEntity): boolean => {\n return entity.Intervals?.length === 1 && entity.Intervals[0].IsWholeDay && !!entity.Intervals[0].AbsenceCategory?.Id;\n};\n\nexport const getAbsenceIntervals = (entity: IPrAttendanceDayEntity): IPrAttendanceDayIntervalEntity[] => {\n return entity?.Intervals?.filter(i => !!i.AbsenceCategory?.Id).sort(sortIntervalsByTimeStart) ?? [];\n};\n\nconst transformDateToTodayTime = (date: Date): Dayjs => {\n const defaultStart = getUtcDayjs(date);\n return getUtcDayjs().startOf(\"day\").add(defaultStart.get(\"hours\"), \"hours\").add(defaultStart.get(\"minutes\"), \"minutes\");\n};\n\nexport const generateIntervalsForDay = (dayBc: BindingContext, minutes: number, storage: FormStorage): void => {\n const workingPattern = getWorkingPattern(storage.data.entity);\n const absenceIntervals = getAbsenceIntervals(storage.getValue(dayBc));\n const defaultStart = getUtcDayjs(workingPattern.DefaultDayStart);\n let startDate = getUtcDayjs().startOf(\"day\").add(defaultStart.get(\"hours\"), \"hours\").add(defaultStart.get(\"minutes\"), \"minutes\");\n let minutesLeft = minutes;\n let lastWasBreak = true;\n const newIntervals = [];\n\n while (minutesLeft > 0) {\n const findMatchingAbsence = (\n absenceIntervals: IPrAttendanceDayIntervalEntity[],\n startDate: Dayjs\n ): IPrAttendanceDayIntervalEntity | undefined => {\n return absenceIntervals?.find((i: IPrAttendanceDayIntervalEntity) => {\n return startDate.isBetween(transformDateToTodayTime(i.TimeStart), transformDateToTodayTime(i.TimeEnd), \"minutes\", \"[)\");\n });\n };\n\n const matchingAbsence = findMatchingAbsence(absenceIntervals, startDate);\n\n if (!isObjectEmpty(matchingAbsence)) {\n lastWasBreak = true;\n minutesLeft -= getHourDifference(getUtcDayjs(matchingAbsence.TimeStart), getUtcDayjs(matchingAbsence.TimeEnd), true, true);\n startDate = transformDateToTodayTime(matchingAbsence.TimeEnd);\n } else {\n let endDate = startDate.add(Math.min(minutesLeft, (lastWasBreak ? WORK_LENGTH * 60 : BREAK_LENGTH * 60)), \"minutes\");\n\n const findMatchingAbsenceEnd = (\n absenceIntervals: IPrAttendanceDayIntervalEntity[],\n startDate: Dayjs,\n endDate: Dayjs\n ): IPrAttendanceDayIntervalEntity | undefined => {\n return absenceIntervals?.find((i: IPrAttendanceDayIntervalEntity) => {\n return transformDateToTodayTime(i.TimeStart).isBetween(startDate, endDate, \"minutes\", \"[)\");\n });\n };\n\n const absenceMatchEnd = findMatchingAbsenceEnd(absenceIntervals, startDate, endDate);\n\n if (!isObjectEmpty(absenceMatchEnd)) {\n endDate = transformDateToTodayTime(absenceMatchEnd.TimeStart);\n }\n\n const maxId = getNewItemsMaxId([...newIntervals, ...absenceIntervals]);\n let newInterval: IPrAttendanceDayIntervalEntity = addEmptyLineItem({\n storage,\n bindingContext: storage.data.bindingContext.navigate(PrAttendanceEntity.Days).navigate(PrAttendanceDayEntity.Intervals),\n newItemsCount: maxId + 1,\n columns: [{\n id: PrAttendanceDayIntervalEntity.TimeStart\n }, {\n id: PrAttendanceDayIntervalEntity.TimeEnd\n }, {\n id: timeDiffPath\n }],\n context: storage.context\n });\n\n newInterval = {\n ...newInterval,\n TimeStart: startDate.clone().toDate(),\n TimeEnd: endDate.toDate(),\n WorkType: {\n Code: lastWasBreak ? PrWorkIntervalTypeCode.Work : PrWorkIntervalTypeCode.MealBreak\n }\n };\n\n if (lastWasBreak) {\n minutesLeft -= getHourDifference(startDate, endDate, true, true);\n }\n\n startDate = endDate.clone();\n newIntervals.push(newInterval);\n lastWasBreak = !lastWasBreak;\n }\n }\n\n storage.setValue(dayBc.navigate(PrAttendanceDayEntity.Intervals), [...newIntervals, ...absenceIntervals].sort(sortIntervalsByTimeStart).map((interval, index) => {\n interval.Order = index + 1;\n return interval;\n }));\n};\n\nexport const getDaySaldo = (day: IPrAttendanceDayEntity, fund: number): number => {\n let datedHours = 0;\n\n if (day.Intervals?.some(i => i.IsWholeDay)) {\n datedHours = fund;\n } else {\n datedHours = getDayWorkingHours(day);\n const absenceHours = getDayAbsenceHours(day, fund);\n datedHours = datedHours > fund ? datedHours : Math.min(datedHours + absenceHours, fund);\n }\n return datedHours - fund;\n};\n\nexport const updateDaySaldo = (day: IPrAttendanceDayEntity, storage: FormStorage): void => {\n const dayIndex = getUtcDayjs(day.Date).get(\"date\");\n const fund = storage?.getCustomData().hoursFundMap?.[dayIndex] ?? 0;\n\n storage.setCustomData({\n saldoMap: {\n ...storage.getCustomData().saldoMap,\n [dayIndex]: getDaySaldo(day, fund)\n }\n });\n};\n\nexport const createNewAttendanceDayEntity = (dayIndex: number, storage: FormStorage): IPrAttendanceDayEntity => {\n const days = storage.data.entity.Days;\n const newItemsMax = getNewItemsMaxId(days);\n let newDay: IPrAttendanceDayEntity = addEmptyLineItem({\n storage,\n bindingContext: storage.data.bindingContext.navigate(PrAttendanceEntity.Days),\n newItemsCount: newItemsMax + 1,\n columns: [],\n context: storage.context\n });\n\n newDay = {\n ...newDay,\n Date: getUtcDayjs(days[0]?.Date).set(\"date\", dayIndex).toDate(),\n Intervals: []\n };\n\n days.push(newDay);\n return newDay;\n};\n\n\nexport const refreshActions = (storage: FormStorage): void => {\n const actions = parseDayActionsFromData(storage.data.entity.Days);\n storage.setCustomData({ actions });\n};\n\nexport const refreshBalance = (storage: FormStorage): void => {\n const saldoMap = storage.getCustomData().saldoMap;\n const balance = Object.values(saldoMap).reduce((balance, saldo) => {\n return balance + saldo;\n }, 0);\n\n storage.setValueByPath(PrAttendanceEntity.Balance, Math.round(balance * 60));\n};\n\nexport const refreshSaldoMap = (storage: FormStorage, days?: Set): void => {\n const selectedDays = days ?? storage.getCustomData().selectedDays;\n selectedDays.forEach(day => {\n const dayEntity = storage.data.entity.Days.find(d => getUtcDayjs(d.Date).get(\"date\") === day);\n updateDaySaldo(dayEntity, storage);\n });\n};\n\ntype TWorkInterval = (IPrAttendanceDayIntervalEntity | IPrWorkingPatternDayIntervalEntity);\n\nexport function transformWorkIntervalsBeforeSave(intervals: TWorkInterval[]): TWorkInterval[] {\n let highestHour: Date = null;\n let isNextDay = false;\n\n return intervals?.filter(interval => {\n return \"AbsenceCategory\" in interval ? interval.AbsenceCategory?.Id !== ATTENDANCE_FAKE_ID : true;\n })?.sort(sortIntervalsByTimeStart).map((interval, index) => {\n interval.Order = index + 1; // BE starts ordering with 1\n\n if (!isNextDay && (!highestHour || getHourDifference(getUtcDayjs(highestHour), getUtcDayjs(interval.TimeStart), false) >= 0)) {\n highestHour = interval.TimeStart;\n interval.IsStartNextDay = false;\n } else {\n isNextDay = true;\n interval.IsStartNextDay = true;\n }\n\n if (!isNextDay && getHourDifference(getUtcDayjs(highestHour), getUtcDayjs(interval.TimeEnd), false) >= 0) {\n highestHour = interval.TimeEnd;\n interval.IsEndNextDay = false;\n } else {\n isNextDay = true;\n interval.IsEndNextDay = true;\n }\n\n return interval;\n });\n}\n\nexport const getMonthHolidays = memoize(async (monthDate: Dayjs, year: number, countryCode: CountryCode): Promise => {\n const cc = countryCode ?? CountryCode.CzechRepublic;\n const url = `${REST_API_URL}/PrCalendar/PublicHolidays/${cc}/${year}`;\n const res = await customFetch(url);\n const allHolidays = await res.json() as Date[];\n return allHolidays.filter(h => isSameMonth(monthDate.toDate(), getUtcDayjs(h).toDate()));\n});","import { IconSelectClean } from \"@components/inputs/select/IconSelect\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport BindingContext from \"@odata/BindingContext\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { PrChildSupportDeductionTypeCode, PrDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { ToolbarItemType } from \"../../../enums\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { ICustomButtonDefArgs, TableActionOrder } from \"../../../views/table/TableToolbar.utils\";\n\nexport enum DeductionType {\n GroupDeduction = \"GroupDeduction\",\n IndividualDeduction = \"IndividualDeduction\"\n}\n\nexport const DEDUCTION_ADD_BUTTON = \"deductionAddButton\";\nexport const ADD_EMPLOYEE_ITEM = \"addEmployeeItem\";\n\nexport const DEFAULT_EMPLOYER_PERCENTAGE = 55;\nexport const DEFAULT_EMPLOYEE_PERCENTAGE = 100 - DEFAULT_EMPLOYER_PERCENTAGE;\n\nexport const isAmongTypes = (types: PrDeductionTypeCode[]) => (args: IGetValueArgs): boolean => {\n return types.includes(args.storage.data.entity.TypeCode);\n};\n\nexport const isDebtTypeOfChildSupport = (args: IGetValueArgs): boolean => {\n return args.storage.data.entity.TypeCode !== PrDeductionTypeCode.ChildSupport || args.storage.data.entity.ChildSupportType?.Code !== PrChildSupportDeductionTypeCode.Regular;\n};\n\nexport const DEBT_BALANCE_PATH = BindingContext.localContext(\"PrIndividualDeductionBalance\");\n\nexport function getToolbarAddButtonConfig(storage: TableStorage, ref: React.RefObject, type: DeductionType, args?: ICustomButtonDefArgs): IToolbarItem {\n let items = getEnumSelectItems(EntityTypeName.PrDeductionType);\n if (type === DeductionType.GroupDeduction) {\n items = items.filter(item => [PrDeductionTypeCode.Custom, PrDeductionTypeCode.MealVoucher].includes(item.id as PrDeductionTypeCode));\n }\n\n return {\n id: DEDUCTION_ADD_BUTTON,\n itemType: ToolbarItemType.IconSelect,\n iconName: \"Add\",\n label: i18next.t(\"IndividualDeduction:NewDeduction\"),\n order: TableActionOrder.Add,\n itemProps: {\n isTransparent: true,\n selectProps: {\n isActive: storage.data.addingRow || args?.isActive,\n isDisabled: !!storage.tableAction || args?.isDisabled,\n ref\n },\n items\n }\n };\n}","import { isVisibleByPath } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n IPrDeductionEntity,\n PrDeductionEntity,\n PrDeductionTemporalCurrentEntity,\n PrDeductionTemporalEntity,\n PrIndividualDeductionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n handleCurrentTemporalPropChange,\n setTemporalDefaultValueByPath,\n setTemporalRequiredSelectDefaultPropertyBagValue\n} from \"@odata/TemporalUtils\";\nimport {\n getBankBlurArgs,\n handleBankFieldChangeWithoutSavedAccount,\n hasEmptyBankAccount\n} from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { setMatchingNumberRange } from \"@pages/numberRange/NumberRange.utils\";\nimport { DEBT_BALANCE_PATH } from \"@pages/payroll/deduction/Deduction.utils\";\nimport { handleBankAccountOrIBANBlur } from \"@utils/BankUtils\";\nimport { cloneDeep } from \"lodash\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\n\n\nclass DeductionFormView> extends FormViewForExtend {\n static contextType = AppContext;\n\n async onAfterLoad(): Promise {\n const storage = this.props.storage.getThis();\n const bindingContext = this.props.storage.data.bindingContext;\n\n if (bindingContext.isNew()) {\n if (this.entity.TypeCode === PrDeductionTypeCode.MealVoucher) {\n setTemporalDefaultValueByPath(storage, createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalCurrentEntity.PercentageEmployee));\n setTemporalDefaultValueByPath(storage, createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalCurrentEntity.PercentageEmployer));\n }\n if (!this.entity.NumberOurs) {\n await setMatchingNumberRange(storage);\n }\n\n if (isVisibleByPath(storage, createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalCurrentEntity.CalculationType))) {\n setTemporalRequiredSelectDefaultPropertyBagValue(\n bindingContext.navigate(createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalCurrentEntity.CalculationType)),\n storage\n );\n }\n }\n return super.onAfterLoad();\n }\n\n handleAmountDebtTotalChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath(true) === PrIndividualDeductionEntity.AmountDebtTotal) {\n this.props.storage.refreshField(DEBT_BALANCE_PATH);\n }\n };\n\n handleDateEndChange = (e: ISmartFieldChange): void => {\n const storage = this.props.storage.getThis();\n if (e.bindingContext.getPath(true) === PrDeductionEntity.DateEnd && e.triggerAdditionalTasks) {\n const endOfMonth = getUtcDayjs(e.value as Date).clone().endOf(\"month\").toDate();\n storage.setValueByPath(PrDeductionEntity.DateEnd, endOfMonth);\n }\n }\n\n handleSmartTemporalPropertyDialogChange(args: ISmartFieldChange): void {\n if (args.bindingContext.getPath() === PrDeductionTemporalEntity.CalculationType) {\n this.props.storage.addActiveField(args.bindingContext.getParent().navigate(PrDeductionTemporalEntity.Amount));\n }\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n const storage = this.props.storage.getThis();\n const path = e.bindingContext.getPath(true);\n if (path === PrIndividualDeductionEntity.ChildSupportType ||\n path === PrDeductionTemporalEntity.CalculationType ||\n path === PrDeductionTemporalEntity.IsIncludingAllEmployees) {\n storage.refresh();\n }\n\n storage.handleChange(e);\n\n this.handleDateEndChange(e);\n this.handleAmountDebtTotalChange(e);\n\n handleBankFieldChangeWithoutSavedAccount({ storage }, e);\n\n handleCurrentTemporalPropChange(e, storage);\n storage.refreshFields(e.triggerAdditionalTasks);\n };\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n if (args.wasChanged) {\n handleBankAccountOrIBANBlur(getBankBlurArgs(this.props.storage.getThis(), args.bindingContext));\n this.props.storage.refreshFields();\n }\n }\n\n onBeforeSave(): E {\n const storage = this.props.storage.getThis();\n const data = cloneDeep(this.entity);\n delete data.Recipient.BusinessPartner; // we don't want to have reference to BP, just use it as a template\n\n if (hasEmptyBankAccount(storage)) {\n delete data.BankAccount;\n }\n\n if (data.TypeCode === PrDeductionTypeCode.MealVoucher) {\n delete data.BankAccount;\n delete data.Recipient;\n }\n return data;\n }\n}\n\nexport default DeductionFormView;","import SelectionTableViewBase, { ISelectionTableViewProps } from \"@components/smart/SelectionTableViewBase\";\nimport { withBusyIndicator, WithBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\n\nexport interface IPairingDocumentTableViewProps extends ISelectionTableViewProps, WithBusyIndicator {\n}\n\nclass PairEmployeeTableView extends SelectionTableViewBase {\n get selectionConfirmText(): string {\n return this.props.storage.t(\"GroupDeduction:Pair.Select\");\n }\n\n get successMessage(): string {\n return this.props.storage.t(\"GroupDeduction:Pair.Success\");\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PairEmployeeTableView);\n","import SelectionTableViewDialog from \"@components/smart/SelectionTableViewDialog\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport BindingContext from \"@odata/BindingContext\";\nimport {\n IPrEmployeeEntity,\n IPrGroupDeductionEntity,\n PrGroupDeductionEmployeeEntity,\n PrGroupDeductionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ADD_EMPLOYEE_ITEM } from \"@pages/payroll/deduction/Deduction.utils\";\nimport DeductionFormView from \"@pages/payroll/deduction/DeductionFormView\";\nimport PairEmployeeTableView from \"@pages/payroll/deduction/groupDeductions/PairEmployeeTableView\";\nimport { getDefinitions as getEmloyeesDef } from \"@pages/payroll/employee/Employee.def\";\nimport React, { ReactElement } from \"react\";\n\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { DATE_MAX } from \"../../../../types/Date\";\nimport { IFormStorageDefaultCustomData } from \"../../../../views/formView/FormStorage\";\nimport { IFormViewProps } from \"../../../../views/formView/FormView\";\n\ninterface IGroupDeductionCustomData extends IFormStorageDefaultCustomData {\n pairedDialogOpened?: boolean;\n}\n\nclass GroupDeductionFormView extends DeductionFormView> {\n static defaultProps = {\n title: \"GroupDeduction:Form.Title\"\n };\n\n handleCustomLineItemAction = async (args: ISmartFastEntriesActionEvent): Promise => {\n if (args.customActionType === ADD_EMPLOYEE_ITEM) {\n this.props.storage.setCustomData({ pairedDialogOpened: true });\n this.props.storage.refresh();\n }\n };\n\n handleLineItemsAction = async (args: ISmartFastEntriesActionEvent): Promise => {\n if (args.actionType === ActionType.Custom) {\n await this.handleCustomLineItemAction(args);\n return;\n }\n this.props.storage.handleLineItemsAction(args);\n this.props.storage.refresh();\n };\n\n get readOnlyListTitle(): string {\n return this.props.storage.t(\"GroupDeduction:Pair.Employees\");\n }\n\n handleEmployeesSelection = (selected: BindingContext[], entities: IPrEmployeeEntity[]): void => {\n const { storage } = this.props;\n\n entities.forEach((entity) => {\n addNewLineItem(storage, PrGroupDeductionEntity.Employees, PrGroupDeductionEntity.Employees, [], {\n [PrGroupDeductionEmployeeEntity.Employee]: entity,\n [PrGroupDeductionEmployeeEntity.DateValidFrom]: this.entity.DateStart,\n [PrGroupDeductionEmployeeEntity.DateValidTo]: this.entity.DateEnd ?? DATE_MAX\n });\n });\n storage.refresh();\n };\n\n renderPairingDialog = (): ReactElement => {\n const storage = this.props.storage;\n\n if (!storage.getCustomData().pairedDialogOpened) {\n return null;\n }\n return ;\n };\n\n handleClosePairing = (): void => {\n this.props.storage.setCustomData({ pairedDialogOpened: false });\n this.props.storage.refresh();\n };\n\n render(): JSX.Element {\n return <>\n {super.render()}\n {this.renderPairingDialog()}\n ;\n }\n}\n\nexport default withPermissionContext(GroupDeductionFormView);","import { IPrIndividualDeductionEntity, } from \"@odata/GeneratedEntityTypes\";\nimport DeductionFormView from \"@pages/payroll/deduction/DeductionFormView\";\n\nimport { withPermissionContext } from \"../../../../contexts/permissionContext/withPermissionContext\";\nimport { IFormViewProps } from \"../../../../views/formView/FormView\";\n\nclass IndividualDeductionFormView extends DeductionFormView> {\n static defaultProps = {\n title: \"IndividualDeduction:Form.Title\"\n };\n}\n\nexport default withPermissionContext(IndividualDeductionFormView);","import { IGetValueArgs, not, TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TCellValue } from \"@components/table\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrDeductionStatusEntity,\n IPrDeductionTemporalEntity,\n PrDeductionEntity,\n PrDeductionStatusEntity,\n PrDeductionTemporalEntity,\n PrIndividualDeductionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrDeductionCalculationTypeCode, PrDeductionStatusCode, PrDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getTemporalPropertyFieldDefinition } from \"@odata/TemporalUtils\";\nimport { getBankAccountFieldsDef, getBankAccountsFieldBaseDef } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { getBusinessPartnerFieldDef } from \"@pages/businessPartner/BusinessPartner.utils\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"@pages/numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition } from \"@pages/PageUtils\";\nimport {\n DeductionType,\n DEFAULT_EMPLOYEE_PERCENTAGE,\n DEFAULT_EMPLOYER_PERCENTAGE,\n isAmongTypes\n} from \"@pages/payroll/deduction/Deduction.utils\";\nimport GroupDeductionFormView from \"@pages/payroll/deduction/groupDeductions/GroupDeductionFormView\";\nimport IndividualDeductionFormView from \"@pages/payroll/deduction/individualDeductions/IndividualDeductionFormView\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { forEachKey } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, FieldType, GroupedField, QueryParam, Sort } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport CurrencyType from \"../../../types/Currency\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { currencyScaleFormatter } from \"../../../types/Number\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\n\nexport const getStatusColor = (StatusCode: PrDeductionStatusCode): keyof DefaultTheme => {\n let color: keyof DefaultTheme;\n\n switch (StatusCode) {\n case PrDeductionStatusCode.Deposited:\n case PrDeductionStatusCode.Ongoing:\n color = \"C_SEM_text_good\";\n break;\n case PrDeductionStatusCode.Suspended:\n color = \"C_SEM_text_warning\";\n break;\n default:\n color = \"C_TEXT_primary\";\n break;\n }\n\n return color;\n};\n\nconst statusFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions): TCellValue => {\n const title = val as string;\n const color: keyof DefaultTheme = getStatusColor(args.entity.Status?.Code);\n\n const colorWrapper = {val} ;\n\n return { tooltip: title, value: colorWrapper };\n};\n\nexport const getCommonDeductionDefinitions = (context: IAppContext, type: DeductionType): IDefinition => {\n const table: ISplitPageTableDef = {\n id: type === DeductionType.GroupDeduction ? `${EntityTypeName.PrGroupDeduction}Table` : `${EntityTypeName.PrIndividualDeduction}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrDeductionEntity.NumberOurs,\n PrDeductionEntity.Name,\n PrDeductionEntity.Type,\n PrDeductionEntity.Status,\n PrDeductionEntity.DateStart,\n PrDeductionEntity.DateEnd\n ],\n filterDefinition: {\n [PrDeductionEntity.NumberOurs]: {},\n [PrDeductionEntity.Name]: {},\n ...withDisplayName(PrDeductionEntity.Type),\n ...withDisplayName(PrDeductionEntity.Status),\n [PrDeductionEntity.DateStart]: {},\n [PrDeductionEntity.DateEnd]: {}\n },\n isValueHelp: true\n }],\n initialSortBy: [{\n id: type === DeductionType.GroupDeduction ? PrDeductionEntity.NumberOurs : PrIndividualDeductionEntity.Employee,\n sort: Sort.Desc\n }],\n columns: [\n PrDeductionEntity.NumberOurs,\n PrDeductionEntity.Name,\n PrDeductionEntity.Type,\n PrDeductionEntity.Status,\n PrDeductionEntity.DateStart,\n PrDeductionEntity.DateEnd\n ],\n columnDefinition: {\n [PrDeductionEntity.NumberOurs]: {},\n [PrDeductionEntity.Name]: {},\n ...withDisplayName(PrDeductionEntity.Type),\n ...withDisplayName(PrDeductionEntity.Status, \"Name\", { formatter: statusFormatter }),\n [PrDeductionEntity.DateStart]: {},\n [PrDeductionEntity.DateEnd]: {}\n },\n title: i18next.t(`${type}:TableTitle`)\n };\n\n const summary: ISummaryItem[] = [{\n id: PrDeductionEntity.Name,\n label: null\n }, {\n ...getNumberOursSummaryDef(type)\n }, {\n id: PrDeductionEntity.TypeCode,\n label: i18next.t(`${type}:Form.Type`),\n formatter: (val, args) => {\n return getEnumDisplayValue(EntityTypeName.PrDeductionType, args.entity.TypeCode as PrDeductionTypeCode);\n },\n }, {\n id: PrDeductionEntity.Status,\n label: i18next.t(\"IndividualDeduction:Form.Status\"),\n additionalProperties: [{ id: PrDeductionStatusEntity.Name }],\n formatter: (val: TValue) => {\n const status = val as IPrDeductionStatusEntity;\n return status?.Name;\n },\n colorFormatter: (val: TValue) => {\n const status = val as IPrDeductionStatusEntity;\n return getStatusColor(status?.Code as PrDeductionStatusCode);\n },\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n }\n }];\n\n const bankAccountFields = getBankAccountsFieldBaseDef();\n\n const mealVoucherPercentageTemporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"IndividualDeduction:Form.PlanDeductionTitle\"),\n columns: [\n PrDeductionTemporalEntity.PercentageEmployer,\n PrDeductionTemporalEntity.PercentageEmployee\n ]\n };\n\n const calculationTypeTemporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"IndividualDeduction:Form.PlanDeductionTitle\"),\n columns: [\n PrDeductionTemporalEntity.CalculationType,\n PrDeductionTemporalEntity.Amount\n ]\n };\n\n const form: IFormDef = {\n id: type === DeductionType.GroupDeduction ? `${EntityTypeName.PrGroupDeduction}Form` : `${EntityTypeName.PrIndividualDeduction}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(`${type}:NewDeduction`), storage.data.entity?.NumberOurs),\n translationFiles: getCommonDeductionDefinitions.translationFiles,\n isDeletable: true,\n formControl: type === DeductionType.GroupDeduction ? GroupDeductionFormView : IndividualDeductionFormView,\n summary,\n additionalProperties: [\n { id: PrDeductionEntity.TypeCode },\n ...NumberRangeAdditionalProperties,\n ],\n fieldDefinition: {\n [PrDeductionEntity.Name]: {\n width: BasicInputSizes.L\n },\n [PrDeductionEntity.TypeCode]: {\n isVisible: false,\n clearIfInvisible: false,\n defaultValue: (args: IGetValueArgs) => {\n const key = getQueryParameters()[QueryParam.Type];\n if (Object.values(PrDeductionTypeCode).includes(key as PrDeductionTypeCode)) {\n return key;\n }\n logger.error(\"Invalid type code\");\n return null;\n },\n customizationData: {\n useForCustomization: false\n }\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrDeductionTemporalEntity.Amount,\n definition: {\n width: BasicInputSizes.M,\n isVisible: not(isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.Insolvency])),\n fieldSettings: {\n formatter: currencyScaleFormatter,\n unit: ({ storage, bindingContext }): string => {\n const deductionTemporalEntity = storage.getValue(bindingContext.getParent()) as IPrDeductionTemporalEntity;\n if (deductionTemporalEntity.CalculationTypeCode !== PrDeductionCalculationTypeCode.Fixed) {\n return \"%\";\n }\n return CurrencyType.getCurrencyUnit(getCompanyCurrency(context));\n },\n temporalDialog: calculationTypeTemporalDialogSettings\n }\n },\n withOpeningButton: true\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrDeductionTemporalEntity.CalculationType,\n definition: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n isVisible: isAmongTypes([PrDeductionTypeCode.Custom, PrDeductionTypeCode.ChildSupport]),\n defaultValue: PrDeductionCalculationTypeCode.Fixed,\n fieldSettings: {\n items: getEnumSelectItems(EntityTypeName.PrDeductionCalculationType),\n temporalDialog: calculationTypeTemporalDialogSettings\n }\n },\n withOpeningButton: true\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrDeductionTemporalEntity.PercentageEmployer,\n definition: {\n width: BasicInputSizes.M,\n groupedField: GroupedField.MultiStart,\n isVisible: isAmongTypes([PrDeductionTypeCode.MealVoucher]),\n defaultValue: DEFAULT_EMPLOYER_PERCENTAGE,\n fieldSettings: {\n temporalDialog: mealVoucherPercentageTemporalDialogSettings,\n unit: args => {\n // todo: count absolute value from entity\n return \"%\";\n }\n }\n },\n withOpeningButton: false\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrDeductionTemporalEntity.PercentageEmployee,\n definition: {\n width: BasicInputSizes.M,\n groupedField: GroupedField.MultiEnd,\n isVisible: isAmongTypes([PrDeductionTypeCode.MealVoucher]),\n defaultValue: DEFAULT_EMPLOYEE_PERCENTAGE,\n fieldSettings: {\n temporalDialog: mealVoucherPercentageTemporalDialogSettings,\n unit: args => {\n return \"%\";\n }\n }\n },\n withOpeningButton: true\n }),\n [PrDeductionEntity.DateStart]: {\n type: FieldType.MonthYear,\n defaultValue: getUtcDayjs().startOf(\"month\").startOf(\"day\").toDate()\n },\n [PrDeductionEntity.DateEnd]: {\n type: FieldType.MonthYear\n },\n ...getNumberRangeFieldDefs(\"IndividualDeduction\"),\n ...getBusinessPartnerFieldDef(false, null, PrDeductionEntity.Recipient),\n ...getBankAccountFieldsDef({\n addPaymentMethod: false,\n areFieldsDisabled: false,\n type: null\n })\n },\n groups: []\n };\n\n\n forEachKey(bankAccountFields, (key) => {\n form.fieldDefinition[createPath(PrDeductionEntity.BankAccount, key)] = {\n ...bankAccountFields[key],\n isRequired: isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.Insolvency, PrDeductionTypeCode.ChildSupport, PrDeductionTypeCode.Custom]),\n customizationData: {\n ...(bankAccountFields[key].customizationData ?? {}),\n useForCustomization: true\n }\n };\n });\n\n return {\n entitySet: type === DeductionType.GroupDeduction ? EntitySetName.PrGroupDeductions : EntitySetName.PrIndividualDeductions,\n table,\n form\n };\n};\n\ngetCommonDeductionDefinitions.translationFiles = [\n \"Common\",\n \"NumberRange\",\n \"Error\",\n \"Components\",\n getEnumNameSpaceName(EntityTypeName.PrDeductionType),\n getEnumNameSpaceName(EntityTypeName.PrDistrainmentDeductionType),\n getEnumNameSpaceName(EntityTypeName.PrChildSupportDeductionType),\n getEnumNameSpaceName(EntityTypeName.PrDeductionCalculationType)\n];","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { not } from \"@components/smart/FieldInfo\";\nimport { ActionButtonPosition } from \"@components/smart/smartFastEntryList\";\nimport UserInitial from \"@components/token/UserInitial\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n BankAccountEntity,\n EntityTypeName,\n IPrGroupDeductionEntity,\n PrDeductionBusinessPartnerEntity,\n PrDeductionTemporalEntity,\n PrEmployeeEntity,\n PrGroupDeductionEmployeeEntity,\n PrGroupDeductionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrDeductionTypeCode } from \"@odata/GeneratedEnums\";\nimport { getTemporalPropertyFieldDefinition } from \"@odata/TemporalUtils\";\nimport { paymentDetailFields } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { getCommonDeductionDefinitions } from \"@pages/payroll/deduction/commonDeduction.def\";\nimport { ADD_EMPLOYEE_ITEM, DeductionType, isAmongTypes } from \"@pages/payroll/deduction/Deduction.utils\";\nimport { initials } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { FieldType, TextAlign } from \"../../../../enums\";\nimport { FormStorage } from \"../../../../views/formView/FormStorage\";\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = getCommonDeductionDefinitions(context, DeductionType.GroupDeduction);\n\n definition.table.columns = [\n ...definition.table.columns,\n PrGroupDeductionEntity.Employees\n ];\n\n definition.table.columnDefinition = {\n ...definition.table.columnDefinition,\n [PrGroupDeductionEntity.Employees]: {\n textAlign: TextAlign.Left,\n formatter: (value, args) => {\n if (args.entity.CurrentTemporalPropertyBag.IsIncludingAllEmployees) {\n const title = i18next.t(\"GroupDeduction:Form.AllEmployees\");\n return {\n value: ,\n tooltip: title\n };\n }\n return {\n value: <>\n {(args.entity as IPrGroupDeductionEntity).Employees?.map((e, index) => {\n const wholeName = `${e.Employee?.FirstName} ${e.Employee?.LastName}`;\n const shortCut = initials(wholeName);\n return ;\n })}\n ,\n tooltip: (args.entity as IPrGroupDeductionEntity).Employees?.map(e => `${e.Employee?.FirstName} ${e.Employee?.LastName}`).join(\", \")\n };\n }\n }\n };\n\n definition.table.additionalProperties = [\n ...(definition.table.additionalProperties ?? []),\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.IsIncludingAllEmployees) },\n { id: createPath(PrGroupDeductionEntity.Employees, PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.FirstName) },\n { id: createPath(PrGroupDeductionEntity.Employees, PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.LastName) }\n ];\n\n definition.form.fieldDefinition = {\n ...definition.form.fieldDefinition,\n [createPath(PrGroupDeductionEntity.Employees, PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.NumberOurs)]: {\n isReadOnly: true\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrDeductionTemporalEntity.IsIncludingAllEmployees,\n definition: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n withOpeningButton: false\n }),\n [createPath(PrGroupDeductionEntity.Employees, PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.LastName)]: {\n isReadOnly: true\n }\n };\n\n definition.form.groups = [\n {\n id: \"main\",\n rows: [\n [\n { id: PrGroupDeductionEntity.Name },\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.IsIncludingAllEmployees) },\n ], [\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.CalculationType) },\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.Amount) },\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.PercentageEmployer) },\n { id: createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.PercentageEmployee) },\n ],\n [\n { id: PrGroupDeductionEntity.DateStart },\n { id: PrGroupDeductionEntity.DateEnd }\n ]\n ]\n }, {\n id: \"receiver\",\n title: i18next.t(\"GroupDeduction:Form.Receiver\"),\n isVisible: not(isAmongTypes([PrDeductionTypeCode.MealVoucher])),\n rows: [\n [\n { id: createPath(PrGroupDeductionEntity.Recipient, PrDeductionBusinessPartnerEntity.Name) },\n { id: createPath(PrGroupDeductionEntity.Recipient, PrDeductionBusinessPartnerEntity.LegalNumber) }\n ]\n ]\n }, {\n // id \"payment\" is expected in the change handlers\n id: \"payment\",\n title: i18next.t(\"Common:Form.BankAccount\"),\n isVisible: not(isAmongTypes([PrDeductionTypeCode.MealVoucher])),\n rows: [\n [\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.Country) },\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.AbaNumber) },\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.AccountNumber) },\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.Bank) },\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.IBAN) },\n { id: createPath(PrGroupDeductionEntity.BankAccount, BankAccountEntity.SWIFT) }\n ],\n [...paymentDetailFields]\n ]\n }, {\n id: \"employees\",\n title: i18next.t(\"GroupDeduction:Form.EmployeesGroupTitle\"),\n rows: [],\n isVisible: (args) => {\n return !args.storage.getValueByPath(createPath(PrGroupDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.IsIncludingAllEmployees));\n },\n lineItems: {\n collection: PrGroupDeductionEntity.Employees,\n canAdd: false,\n canReorder: false,\n order: createPath(PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.NumberOurs),\n columns: [{\n id: createPath(PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.NumberOurs)\n }, {\n id: createPath(PrGroupDeductionEmployeeEntity.Employee, PrEmployeeEntity.LastName)\n }],\n customActionButtons: [{\n id: ADD_EMPLOYEE_ITEM,\n title: i18next.t(\"GroupDeduction:Form.AddEmployee\"),\n isDisabled: args => {\n return args.storage.isDisabled || !!(args.storage as FormStorage).getBackendDisabledFieldMetadata(args.storage.data.bindingContext.navigate(PrGroupDeductionEntity.Employees));\n },\n isTransparent: false,\n position: ActionButtonPosition.Before\n }]\n }\n }\n ];\n\n\n return definition;\n};\n\ngetDefinitions.translationFiles = [\n ...getCommonDeductionDefinitions.translationFiles,\n \"GroupDeduction\",\n \"Employee\"\n];\n\nsetDefByEntityType(EntityTypeName.PrGroupDeduction, getDefinitions);","import { ifAll, not } from \"@components/smart/FieldInfo\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n BankAccountEntity,\n EntityTypeName,\n IPrIndividualDeductionEntity,\n IPrSalaryAdvanceEntity,\n PrDeductionBusinessPartnerEntity,\n PrDeductionTemporalEntity,\n PrEmployeeEntity,\n PrIndividualDeductionDebtPaymentEntity,\n PrIndividualDeductionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n PrChildSupportDeductionTypeCode,\n PrDeductionTypeCode,\n PrDistrainmentDeductionTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { userNameWithAvatarTableFormatter } from \"@pages/admin/users/UsersDef\";\nimport { paymentDetailFields } from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { setDefByEntityType } from \"@pages/getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"@pages/PageUtils\";\nimport { getCommonDeductionDefinitions } from \"@pages/payroll/deduction/commonDeduction.def\";\nimport {\n DEBT_BALANCE_PATH,\n DeductionType,\n isAmongTypes,\n isDebtTypeOfChildSupport\n} from \"@pages/payroll/deduction/Deduction.utils\";\nimport { employeeSelectDef } from \"@pages/payroll/employee/Employee.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport Big from \"big.js\";\nimport i18next from \"i18next\";\n\nimport { DASH_CHARACTER } from \"../../../../constants\";\nimport { IAppContext } from \"../../../../contexts/appContext/AppContext.types\";\nimport { FieldType } from \"../../../../enums\";\nimport { TValue } from \"../../../../global.types\";\nimport CurrencyType from \"../../../../types/Currency\";\nimport { currencyScaleFormatter, isNumber } from \"../../../../types/Number\";\n\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const definition = getCommonDeductionDefinitions(context, DeductionType.IndividualDeduction);\n\n definition.table.filterBarDef[0].defaultFilters = [\n PrIndividualDeductionEntity.Employee,\n ...definition.table.filterBarDef[0].defaultFilters\n ];\n\n definition.table.filterBarDef[0].filterDefinition = {\n [PrIndividualDeductionEntity.Employee]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n return userNameWithAvatarTableFormatter(val, {\n ...args,\n entity: (args.entity as IPrSalaryAdvanceEntity).Employee\n });\n },\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName }\n ]\n },\n ...definition.table.filterBarDef[0].filterDefinition\n };\n\n definition.table.columns = [\n PrIndividualDeductionEntity.Employee,\n ...definition.table.columns\n ];\n\n definition.table.columnDefinition = {\n [PrIndividualDeductionEntity.Employee]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n return userNameWithAvatarTableFormatter(val, {\n ...args,\n entity: (args.entity as IPrSalaryAdvanceEntity).Employee\n });\n },\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName }\n ]\n },\n ...definition.table.columnDefinition\n };\n\n definition.form.fieldDefinition = {\n ...definition.form.fieldDefinition,\n [PrIndividualDeductionEntity.Employee]: {\n ...employeeSelectDef\n },\n [PrIndividualDeductionEntity.DateReceived]: {\n isRequired: ifAll(isDebtTypeOfChildSupport, isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.ChildSupport])),\n isVisible: isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.ChildSupport])\n },\n [PrIndividualDeductionEntity.DecreeNumber]: {\n isRequired: isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.Insolvency]),\n isVisible: ifAll(isDebtTypeOfChildSupport, isAmongTypes([PrDeductionTypeCode.Insolvency, PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.ChildSupport])),\n },\n [PrIndividualDeductionEntity.AmountDebtTotal]: {\n isRequired: isAmongTypes([PrDeductionTypeCode.Distrainment]),\n isVisible: ifAll(isDebtTypeOfChildSupport, isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.ChildSupport])),\n fieldSettings: {\n formatter: currencyScaleFormatter,\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n }\n },\n [PrIndividualDeductionEntity.DistrainmentType]: {\n type: FieldType.SegmentedButton,\n defaultValue: PrDistrainmentDeductionTypeCode.Priority,\n isVisible: isAmongTypes([PrDeductionTypeCode.Distrainment]),\n fieldSettings: {\n items: [\n {\n id: PrDistrainmentDeductionTypeCode.Priority,\n label: getEnumDisplayValue(EntityTypeName.PrDistrainmentDeductionType, PrDistrainmentDeductionTypeCode.Priority)\n }, {\n id: PrDistrainmentDeductionTypeCode.Standard,\n label: getEnumDisplayValue(EntityTypeName.PrDistrainmentDeductionType, PrDistrainmentDeductionTypeCode.Standard)\n }\n ]\n }\n },\n [PrIndividualDeductionEntity.ChildSupportType]: {\n type: FieldType.SegmentedButton,\n defaultValue: PrChildSupportDeductionTypeCode.Regular,\n isVisible: isAmongTypes([PrDeductionTypeCode.ChildSupport]),\n fieldSettings: {\n items: [\n {\n id: PrChildSupportDeductionTypeCode.Regular,\n label: getEnumDisplayValue(EntityTypeName.PrChildSupportDeductionType, PrChildSupportDeductionTypeCode.Regular)\n },\n {\n id: PrChildSupportDeductionTypeCode.Owed,\n label: getEnumDisplayValue(EntityTypeName.PrChildSupportDeductionType, PrChildSupportDeductionTypeCode.Owed)\n },\n {\n id: PrChildSupportDeductionTypeCode.Substitute,\n label: getEnumDisplayValue(EntityTypeName.PrChildSupportDeductionType, PrChildSupportDeductionTypeCode.Substitute)\n },\n ]\n }\n },\n [DEBT_BALANCE_PATH]: {\n label: i18next.t(\"IndividualDeduction:Form.DebtBalance\"),\n isVisible: ifAll(isDebtTypeOfChildSupport, isAmongTypes([PrDeductionTypeCode.Distrainment, PrDeductionTypeCode.Insolvency, PrDeductionTypeCode.ChildSupport])),\n additionalProperties: [{\n id: PrIndividualDeductionEntity.AmountDebtTotal\n }, {\n id: PrIndividualDeductionEntity.DebtPayments,\n additionalProperties: [{\n id: PrIndividualDeductionDebtPaymentEntity.Amount\n }]\n }],\n isReadOnly: true,\n formatter: (val: TValue, args: IFormatOptions) => {\n const entity = args.entity as IPrIndividualDeductionEntity;\n const totalDebt = entity.AmountDebtTotal;\n\n if (!isNumber(totalDebt)) {\n return DASH_CHARACTER;\n }\n\n const paidAmount = entity.DebtPayments?.reduce((acc, payment) => {\n acc.add(payment.Amount ?? 0);\n return acc;\n }, new Big(0)) ?? 0;\n\n const balance = new Big(totalDebt).sub(paidAmount).toNumber();\n return currencyScaleFormatter(balance);\n },\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n }\n },\n };\n\n definition.form.groups = [\n {\n id: \"main\",\n rows: [\n [\n { id: PrIndividualDeductionEntity.Name },\n { id: PrIndividualDeductionEntity.Employee }\n ], [\n { id: createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.CalculationType) },\n { id: createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.Amount) },\n { id: createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.PercentageEmployer) },\n { id: createPath(PrIndividualDeductionEntity.CurrentTemporalPropertyBag, PrDeductionTemporalEntity.PercentageEmployee) },\n ],\n [\n { id: PrIndividualDeductionEntity.DateStart },\n { id: PrIndividualDeductionEntity.DateEnd }\n ]\n ]\n }, {\n id: \"detail\",\n title: i18next.t(\"IndividualDeduction:Form.DeductionDetail\"),\n rows: [\n [\n { id: PrIndividualDeductionEntity.DistrainmentType },\n { id: PrIndividualDeductionEntity.ChildSupportType }\n ],\n [\n { id: PrIndividualDeductionEntity.DecreeNumber },\n { id: PrIndividualDeductionEntity.DateReceived },\n { id: PrIndividualDeductionEntity.AmountDebtTotal },\n { id: DEBT_BALANCE_PATH }\n ]\n ]\n }, {\n id: \"receiver\",\n title: i18next.t(\"IndividualDeduction:Form.Receiver\"),\n isVisible: not(isAmongTypes([PrDeductionTypeCode.MealVoucher])),\n rows: [\n [\n { id: createPath(PrIndividualDeductionEntity.Recipient, PrDeductionBusinessPartnerEntity.Name) },\n { id: createPath(PrIndividualDeductionEntity.Recipient, PrDeductionBusinessPartnerEntity.LegalNumber) }\n ]\n ]\n },\n {\n // id \"payment\" is expected in the change handlers\n id: \"payment\",\n title: i18next.t(\"Common:Form.BankAccount\"),\n isVisible: not(isAmongTypes([PrDeductionTypeCode.MealVoucher])),\n rows: [\n [\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.Country) },\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.AbaNumber) },\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.AccountNumber) },\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.Bank) },\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.IBAN) },\n { id: createPath(PrIndividualDeductionEntity.BankAccount, BankAccountEntity.SWIFT) }\n ],\n [...paymentDetailFields]\n ]\n }\n ];\n return definition;\n};\n\ngetDefinitions.translationFiles = [\n ...getCommonDeductionDefinitions.translationFiles,\n \"IndividualDeduction\"\n];\n\nsetDefByEntityType(EntityTypeName.PrIndividualDeduction, getDefinitions);","import ReadOnlyList from \"@components/readOnlyList/ReadOnlyList\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { IPrEmployeeEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getValue } from \"@utils/general\";\nimport React from \"react\";\n\nimport { SmartHeaderStyled } from \"../../../views/formView/FormView.styles\";\nimport TableView from \"../../../views/table\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../../views/table/TableToolbar.utils\";\nimport { ITableViewBaseProps } from \"../../../views/table/TableView\";\n\n\ninterface IProps extends ITableViewBaseProps {\n}\n\nclass TaxpayerDeclarationTableView extends TableView {\n get shouldRenderBreadcrumbs(): boolean {\n return false;\n }\n\n get secondaryTitle(): string {\n return this.props.storage.t(\"TaxpayerDeclaration:Table.SecondaryTitle\");\n }\n\n get headerData(): IReadOnlyListItem[] {\n const rootStorage = this.props.storage.getCustomData()?.rootStorage;\n const employee = rootStorage?.data.entity as IPrEmployeeEntity;\n\n return [{\n label: this.props.storage.t(\"TaxpayerDeclaration:Table.EmployeeFirstName\"),\n value: employee?.FirstName\n }, {\n label: this.props.storage.t(\"TaxpayerDeclaration:Table.EmployeeLastName\"),\n value: employee?.LastName\n }, {\n label: this.props.storage.t(\"TaxpayerDeclaration:Table.EmployeeNumber\"),\n value: employee?.NumberOurs\n }];\n }\n\n getToolbarButtons(): TableButtonsActionType[] {\n return [\n TableButtonsAction.CSVExport,\n TableButtonsAction.XLSXExport,\n TableButtonsAction.PdfExport,\n TableButtonsAction.Sorting,\n TableButtonsAction.Settings\n ];\n }\n\n renderSmartHeader(): React.ReactElement {\n return (<>\n \n \n );\n }\n}\n\nexport default TaxpayerDeclarationTableView;","import React, { useCallback, useMemo } from \"react\";\nimport Dialog from \"../../../components/dialog\";\nimport { useTranslation } from \"react-i18next\";\nimport ConfirmationButtons from \"../../../views/table/ConfirmationButtons\";\nimport SmartFastEntryList from \"../../../components/smart/smartFastEntryList\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { IFieldDef } from \"@components/smart/FieldInfo\";\nimport { PrEmployeeCarEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IEmployeeFormCustomData, IPrEmployeeEntityExtended } from \"./Employee.utils\";\n\ninterface IProps {\n storage: FormStorage;\n bindingContext: BindingContext;\n onLineItemsTemporalChange: (args: ISmartFieldChange) => void;\n}\n\nconst CarsDialog: React.FunctionComponent = React.memo((props: React.PropsWithChildren) => {\n const { t } = useTranslation([\"Employee\", \"Common\"]);\n const columns = useMemo((): IFieldDef[] => {\n return [\n { id: PrEmployeeCarEntity.Name },\n { id: PrEmployeeCarEntity.PurchasePrice },\n { id: PrEmployeeCarEntity.LowEmission },\n { id: PrEmployeeCarEntity.DateValidFrom },\n { id: PrEmployeeCarEntity.DateValidTo }\n ];\n }, []);\n const filterItems = useCallback((items: IEntity[]): IEntity[] => {\n const carsBc = props.bindingContext.removeKey();\n\n return items.filter(item => props.bindingContext.isSame(carsBc.addKey(item)));\n }, [props.bindingContext.toString()]);\n const close = useCallback(() => {\n props.storage.setCustomData({\n carsDialogBc: null\n });\n\n props.storage.refresh();\n }, [props.storage]);\n const getFieldsBcs = useCallback(() => {\n return columns.map(col => props.bindingContext.navigate(col.id));\n }, [columns, props.bindingContext.toString()]);\n const handleConfirm = useCallback(() => {\n props.storage.confirmFields(getFieldsBcs());\n close();\n }, [props.storage]);\n const handleCancel = useCallback(() => {\n props.storage.cancelFields(getFieldsBcs());\n close();\n }, [props.storage]);\n\n return (\n }\n >\n \n \n );\n});\n\nexport default CarsDialog;","import Dialog from \"@components/dialog/Dialog\";\nimport { IHeaderIcon } from \"@components/header/Header\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { setBoundValue } from \"@odata/Data.utils\";\nimport {\n IBankAccountEntity,\n IPrEmployeeCarEntity,\n IPrEmployeeDependentPersonEntity,\n PrEmployeeCarEntity,\n PrEmployeeEntity,\n PrEmployeeTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { CountryCode } from \"@odata/GeneratedEnums\";\nimport {\n getCurrentRangeIndex,\n getDefaultTemporalDateValidFrom,\n getDefaultTemporalDateValidTo,\n getGroupingProperties,\n groupAndOptimizeRanges,\n handleCurrentTemporalPropChange,\n TTemporal,\n ungroupTemporalRanges\n} from \"@odata/TemporalUtils\";\nimport DialogPage from \"@pages/DialogPage\";\nimport { getDefinitions } from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.def\";\nimport TaxpayerDeclarationTableView from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclarationTableView\";\nimport { isNotDefined } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { FormMode } from \"../../../enums\";\nimport { DATE_MAX, getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n handleBankFieldChange,\n setSavedBankAccount,\n setSavedBankAccountItems\n} from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { loadAndStoreRanges, setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport CarsDialog from \"./CarsDialog\";\nimport {\n IEmployeeFormCustomData,\n IPrEmployeeEntityExtended,\n PreviousEmploymentDurationDaysPath,\n PreviousEmploymentDurationYearsPath,\n ShowContactAddressPath,\n ShowDisabilityPath,\n ShowOtherIdentifiers,\n ShowPensionPath,\n ShowStudyPath\n} from \"./Employee.utils\";\nimport i18next from \"i18next\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass EmployeeFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"Employee:FormTitle\"\n };\n\n async onAfterLoad() {\n const { storage } = this.props;\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n\n if (!isAuditTrail) {\n const promises: Promise[] = [];\n\n if (!storage.data.entity.NumberOurs) {\n promises.push(setMatchingNumberRange(storage.getThis(), true));\n } else {\n promises.push(loadAndStoreRanges(storage));\n }\n\n await Promise.all(promises);\n }\n\n this.setupBirthNumberProperLabel();\n this.prepareBankAccount();\n this.setSpecialGroupsVisibility();\n this.preparePreviousEmploymentDurationValues();\n\n\n this.props.storage.setCustomData({ taxPayerDeclarationDialogOpen: true }); // todo: just for development\n\n return super.onAfterLoad();\n }\n\n getHeaderIcons(): IHeaderIcon[] {\n const icons = super.getHeaderIcons();\n icons.push(\n {\n id: \"taxpayerDeclaration\",\n onClick: () => {\n this.props.storage.setCustomData({ taxPayerDeclarationDialogOpen: true });\n this.forceUpdate();\n },\n label: this.props.storage.t(\"TaxpayerDeclaration:Title\"),\n iconName: \"TaxPayerDeclaration\"\n }\n );\n\n return icons;\n }\n\n prepareBankAccount = (): void => {\n const accounts: IBankAccountEntity[] = [];\n const currentAccount: IBankAccountEntity = this.entity.BankAccount ? cloneDeep(this.entity.BankAccount) : null;\n\n if (currentAccount?.AccountNumber) {\n accounts.push(currentAccount);\n }\n\n const storage = this.props.storage.getThis();\n\n if (accounts.length > 0) {\n setSavedBankAccountItems(storage, accounts);\n }\n\n setSavedBankAccount({\n storage,\n isEntityWithoutBP: true,\n isInit: true,\n account: currentAccount\n }, accounts);\n };\n /** Several form groups has yes/no visibility switch. Set its default state based on the current form data. */\n setSpecialGroupsVisibility = (): void => {\n this.props.storage.setValueByPath(ShowContactAddressPath, !!this.entity.ContactAddress?.Street);\n this.props.storage.setValueByPath(ShowDisabilityPath, !!this.entity.CurrentTemporalPropertyBag?.PrDisabilityTypeCode);\n this.props.storage.setValueByPath(ShowStudyPath, !!this.entity.CurrentTemporalPropertyBag?.PrFormOfStudyTypeCode);\n this.props.storage.setValueByPath(ShowPensionPath, !!this.entity.DatePensionFrom);\n this.props.storage.setValueByPath(ShowOtherIdentifiers, this.entity.CitizenshipCode !== CountryCode.CzechRepublic);\n };\n\n preparePreviousEmploymentDurationValues = (): void => {\n const sumDays = this.props.storage.getValueByPath(PrEmployeeEntity.PreviousEmploymentDurationDays);\n\n if (isNotDefined(sumDays)) {\n return;\n }\n\n const years = Math.floor(sumDays / 365);\n const days = sumDays % 365;\n\n this.props.storage.setValueByPath(PreviousEmploymentDurationYearsPath, years);\n this.props.storage.setValueByPath(PreviousEmploymentDurationDaysPath, days);\n };\n\n handleCitizenshipChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === PrEmployeeEntity.Citizenship) {\n this.setupBirthNumberProperLabel();\n this.props.storage.refresh();\n }\n };\n\n setupBirthNumberProperLabel = () => {\n const { storage } = this.props;\n if (storage.data.bindingContext) {\n const country = storage.data.entity[PrEmployeeEntity.CitizenshipCode];\n const lblInfo = storage.getInfo(storage.data.bindingContext.navigate(PrEmployeeEntity.PersonalIdentificationNumber));\n if (lblInfo) {\n lblInfo.label = country === CountryCode.CzechRepublic ? i18next.t(\"Employee:Table.BirthNumber\") : i18next.t(\"Employee:Form.CzechBirthNumber\");\n }\n }\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n\n handleCurrentTemporalPropChange(e, this.props.storage as FormStorage);\n this.handleCitizenshipChange(e);\n handleBankFieldChange({\n storage: this.props.storage as FormStorage,\n isEntityWithoutBP: true,\n businessPartner: null,\n type: null\n }, e);\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n };\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n this.props.storage.handleLineItemsAction(args);\n\n if (args.actionType === ActionType.Add) {\n const [item] = args.affectedItems;\n if (args.bindingContext.getPath() === PrEmployeeEntity.Dependents) {\n const dependent = item as IPrEmployeeDependentPersonEntity;\n\n dependent.DateValidFrom = getUtcDate();\n dependent.DateValidTo = DATE_MAX;\n } else if (args.bindingContext.getPath() === PrEmployeeEntity.Cars) {\n const dependent = item as IPrEmployeeCarEntity;\n const info = this.props.storage.getInfo(this.props.storage.data.bindingContext.navigate(PrEmployeeEntity.Cars).navigate(PrEmployeeCarEntity.LowEmission));\n const dialogSettings = info.fieldSettings.temporalDialog;\n\n dependent.DateValidFrom = getDefaultTemporalDateValidFrom(dialogSettings);\n dependent.DateValidTo = getDefaultTemporalDateValidTo(dialogSettings);\n }\n }\n\n this.props.storage.refresh();\n };\n\n /** Take ranges of one temporal property group,\n * set DateValidTo to today, if current range exists\n * and remove any planned items. */\n finishPropertyToday = (propName: string, entity: typeof this.entity): typeof this.entity => {\n const temporalPropertyBagBc = this.props.storage.data.bindingContext.navigate(\"TemporalPropertyBag\");\n const bc = temporalPropertyBagBc.navigate(propName);\n const properties = getGroupingProperties(bc, this.props.storage.getThis());\n const temporalBag = this.props.storage.getValue(temporalPropertyBagBc, { dataStore: entity }) as TTemporal[] ?? [];\n let groupedRanges = groupAndOptimizeRanges(temporalBag, properties);\n\n if (!groupedRanges || groupedRanges.length === 0) {\n return entity;\n }\n\n const today = getUtcDayjs();\n\n // remove all future planned items\n groupedRanges = groupedRanges.filter(range => today.isAfter(range.DateValidFrom));\n\n const currentRangeIndex = getCurrentRangeIndex(groupedRanges);\n const currentRange = groupedRanges[currentRangeIndex];\n\n if (currentRange) {\n // otherwise, finish the group today\n currentRange.DateValidTo = today.toDate();\n }\n\n const ungroupedRanges = ungroupTemporalRanges(groupedRanges, temporalBag, properties);\n\n return setBoundValue({\n bindingContext: temporalPropertyBagBc,\n dataBindingContext: bc.getRootParent(),\n data: entity,\n newValue: ungroupedRanges\n });\n };\n\n onBeforeSave(): IPrEmployeeEntityExtended {\n let data = cloneDeep(this.entity);\n\n const years = this.props.storage.getValueByPath(PreviousEmploymentDurationYearsPath) ?? 0;\n const days = this.props.storage.getValueByPath(PreviousEmploymentDurationDaysPath) ?? 0;\n\n data.PreviousEmploymentDurationDays = years * 365 + days;\n\n if (!this.entity[ShowContactAddressPath]) {\n data.ContactAddress = null;\n }\n\n if (this.entity.CitizenshipCode === CountryCode.CzechRepublic) {\n data.ForeignAddress = null;\n }\n\n // for hidden form groups,\n // end current ranges today and remove any planned values\n if (!this.entity[ShowDisabilityPath]) {\n data = this.finishPropertyToday(PrEmployeeTemporalEntity.PrDisabilityType, data);\n }\n\n if (!this.entity[ShowStudyPath]) {\n data = this.finishPropertyToday(PrEmployeeTemporalEntity.PrFormOfStudyType, data);\n }\n\n return data;\n }\n\n renderCarsDialog = () => {\n const carsDialogBc = this.props.storage.getCustomData().carsDialogBc;\n\n if (!carsDialogBc) {\n return null;\n }\n\n return ;\n };\n\n handleTaxPayerDeclarationClose = () => {\n this.props.storage.setCustomData({ taxPayerDeclarationDialogOpen: false });\n this.forceUpdate();\n };\n\n renderTaxPayerDeclarationDialog = () => {\n const { storage } = this.props;\n const isOpen = storage.getCustomData().taxPayerDeclarationDialogOpen;\n\n if (!isOpen) {\n return null;\n }\n\n return \n getDefinitions(context)}/>\n ;\n\n }\n\n render() {\n return (\n <>\n {super.render()}\n {this.renderCarsDialog()}\n {this.renderTaxPayerDeclarationDialog()}\n \n );\n }\n}\n\nexport default withPermissionContext(EmployeeFormView);","import { TimeDependentIcon } from \"@components/icon\";\nimport { DateRangeSpecialValue, TDisabledDateUnit } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { getSimpleBoolSelectItems, ifAll, IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n BirthNumberFieldDef,\n BirthNumberFormatter,\n countryDef,\n CurrencyDef,\n emailFormatter,\n getAddressFields,\n getLabelsDef,\n getLabelsFilterDef,\n PhoneNumberDef,\n phoneNumberFormatter\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { IconButtonStyled } from \"@components/smart/smartTemporalPropertyButton/SmartTemporalPropertyButton.styles\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrEmployeeEntity,\n IPrEmploymentEntity,\n PrEmployeeCarEntity,\n PrEmployeeContactAddressEntity,\n PrEmployeeDependentPersonEntity,\n PrEmployeeEntity,\n PrEmployeeForeignAddressEntity,\n PrEmployeeLocalAddressEntity,\n PrEmployeeTemporalEntity,\n PrEmploymentEntity,\n PrEmploymentTemplateEntity,\n PrEmploymentTypeEntity,\n PrIdentityDocumentTypeEntity,\n PrInsuranceCompanyPredefinedEntity,\n PrSexEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n CountryCode,\n PrEmployeeStateCode,\n PrIdentityDocumentTypeCode,\n PrInsuranceCompanyTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n getTemporalAdditionalProperties,\n getTemporalPropertyFieldDefinition,\n ISmartTemporalPropertyDialogCustomData,\n TemporalValidityFieldsDef,\n TTemporal\n} from \"@odata/TemporalUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport Field from \"../../../components/inputs/field\";\nimport FieldsWrapper from \"../../../components/inputs/field/FieldsWrapper\";\nimport SmartField from \"../../../components/smart/smartField\";\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n GroupedField,\n LabelStatus,\n Sort,\n TextAlign,\n ValidatorType\n} from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport CurrencyType from \"../../../types/Currency\";\nimport { DATE_MAX, DATE_MIN, getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { userNameWithAvatarFormatter, userNameWithAvatarTableFormatter } from \"../../admin/users/UsersDef\";\nimport {\n getBankAccountFieldsDef,\n paymentDetailFields,\n SAVED_ACCOUNTS_PATH\n} from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport {\n IEmployeeFormCustomData,\n PreviousEmploymentDurationDaysPath,\n PreviousEmploymentDurationYearsPath,\n ShowContactAddressPath,\n ShowDisabilityPath,\n ShowOtherIdentifiers,\n ShowPensionPath,\n ShowStudyPath\n} from \"./Employee.utils\";\nimport EmployeeFormView from \"./EmployeeFormView\";\n\nconst isContactAddressVisible = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(ShowContactAddressPath);\n};\nconst isDisabilityVisible = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(ShowDisabilityPath);\n};\nconst isStudyVisible = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(ShowStudyPath);\n};\nconst isPensionVisible = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(ShowPensionPath);\n};\nconst isForeigner = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(PrEmployeeEntity.CitizenshipCode) !== CountryCode.CzechRepublic;\n};\nconst isOtherIdentifierVisible = (args: IGetValueArgs) => {\n return args.storage.getValueByPath(ShowOtherIdentifiers);\n};\n\nexport const getDefinitions: IGetDefinition = (context: IAppContext): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrEmployee}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrEmployeeEntity.NumberOurs,\n PrEmployeeEntity.FirstName,\n PrEmployeeEntity.LastName,\n PrEmployeeEntity.ExternalNumber,\n PrEmployeeEntity.PersonalIdentificationNumber,\n PrEmployeeEntity.Email,\n PrEmployeeEntity.PhoneNumber,\n createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing),\n createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.HealthInsurance)\n ],\n filterDefinition: {\n [PrEmployeeEntity.FirstName]: {},\n [PrEmployeeEntity.LastName]: {},\n [PrEmployeeEntity.NumberOurs]: {},\n [PrEmployeeEntity.ExternalNumber]: {},\n [PrEmployeeEntity.PersonalIdentificationNumber]: {},\n [PrEmployeeEntity.Email]: {},\n [PrEmployeeEntity.PhoneNumber]: {},\n [createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing)]: {},\n ...getLabelsFilterDef(\"Labels\"),\n [createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.HealthInsurance)]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n }\n\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrEmployeeEntity.NumberOurs, sort: Sort.Desc }],\n columns: [\n PrEmployeeEntity.NumberOurs,\n PrEmployeeEntity.FirstName,\n PrEmployeeEntity.PrEmployeeStateCode,\n PrEmployeeEntity.ExternalNumber,\n PrEmployeeEntity.PersonalIdentificationNumber,\n PrEmployeeEntity.Email,\n PrEmployeeEntity.PhoneNumber,\n createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing)\n ],\n columnDefinition: {\n [PrEmployeeEntity.NumberOurs]: {\n label: i18next.t(\"Employee:Table.Number\")\n },\n [PrEmployeeEntity.FirstName]: {\n label: i18next.t(\"Employee:Table.EmployeeName\"),\n width: BasicInputSizes.L,\n formatter: userNameWithAvatarTableFormatter,\n additionalProperties: [{ id: `/${PrEmployeeEntity.LastName}` }]\n },\n [PrEmployeeEntity.BornLastName]: {},\n [PrEmployeeEntity.PrEmployeeStateCode]: {\n label: i18next.t(\"Employee:Table.EmployeeStatus\"),\n formatter: (val: TValue) => {\n const code = val as PrEmployeeStateCode;\n const translatedValue = getEnumDisplayValue(EntityTypeName.PrEmployeeState, val as string);\n\n if (code === PrEmployeeStateCode.Current) {\n return {\n tooltip: code,\n value: (\n \n {translatedValue}\n \n )\n };\n }\n\n return translatedValue;\n }\n },\n [PrEmployeeEntity.Email]: {\n formatter: emailFormatter\n },\n [PrEmployeeEntity.PhoneNumber]: {\n formatter: phoneNumberFormatter\n },\n [PrEmployeeEntity.TitleBeforeName]: {},\n [PrEmployeeEntity.TitleAfterName]: {},\n [PrEmployeeEntity.DateOfBirth]: {},\n [createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.HealthInsurance)]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [PrEmployeeEntity.ExternalNumber]: {},\n [PrEmployeeEntity.PersonalIdentificationNumber]: {\n label: i18next.t(\"Employee:Table.BirthNumber\"),\n formatter: BirthNumberFormatter\n },\n [createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing)]: {}\n },\n title: i18next.t(\"Employee:Title\"),\n tabs: [\n { id: PrEmployeeStateCode.Current, title: i18next.t(\"Employee:Table.CurrentEmployeesTab\") },\n { id: PrEmployeeStateCode.Former, title: i18next.t(\"Employee:Table.ExEmployeesTab\") },\n { id: null, title: i18next.t(\"Employee:Table.AllEmployeesTab\") }\n ],\n tabsSettings: {\n filterFieldName: \"PrEmployeeStateCode\"\n },\n additionalProperties: [\n {\n id: PrEmployeeEntity.TemporalPropertyBag,\n additionalProperties: [\n { id: PrEmployeeTemporalEntity.PrDisabilityTypeCode },\n { id: PrEmployeeTemporalEntity.PrFormOfStudyTypeCode },\n { id: PrEmployeeTemporalEntity.DateValidFrom },\n { id: PrEmployeeTemporalEntity.DateValidTo }\n ]\n }\n ]\n };\n\n const summary: ISummaryItem[] = [\n {\n id: PrEmployeeEntity.FirstName,\n formatter: (val, args) => {\n const formatted = userNameWithAvatarFormatter(val, args, {\n isBig: true\n });\n\n if (typeof formatted === \"string\") {\n return formatted;\n }\n\n return formatted.value;\n }\n },\n { ...getNumberOursSummaryDef(\"Employee\") },\n {\n id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing),\n label: i18next.t(\"Employee:Form.Depositing\"),\n formatter: (val, args) => {\n return args.storage.t(`Common:General.${!!val ? \"Yes\" : \"No\"}`).toUpperCase();\n }\n }\n ];\n\n const localAddressFields = getAddressFields(PrEmployeeEntity.LocalAddress);\n const contactAddressFields = getAddressFields(PrEmployeeEntity.ContactAddress);\n const foreignAddressFields = getAddressFields(PrEmployeeEntity.ForeignAddress);\n const bankAccountFields = { ...getBankAccountFieldsDef({ type: null, addPaymentMethod: false }) };\n\n for (const field of Object.keys(contactAddressFields)) {\n contactAddressFields[field].isVisible = isContactAddressVisible;\n }\n\n for (const field of Object.keys(foreignAddressFields)) {\n foreignAddressFields[field].isVisible = isForeigner;\n }\n\n\n const tmpFieldsDef = { ...TemporalValidityFieldsDef };\n\n tmpFieldsDef[\"TemporalPropertyBag/DateValidFrom\"].isReadOnly = (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const dialogBc = storage.getCustomData().openedDialogBindingContext;\n const key = args.bindingContext.getParent().getKey();\n\n if (dialogBc?.getPath() !== PrEmployeeTemporalEntity.HealthInsurance\n // we are only interested in the calls made for FastEntry items in SmartTemporalPropertyDialog => those have key defined\n || isNotDefined(key)) {\n return false;\n }\n\n const item = storage.getValue(args.bindingContext.getParent());\n const itemIndex = storage.getEntity().TemporalPropertyBag?.findIndex(i => i === item);\n\n // first item in HealthInsurance should have DateValidFrom disabled\n return itemIndex === 0;\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrEmployee}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Employee:NewEmployee\"), storage.data.entity?.FirstName ? `${storage.data.entity.FirstName} ${storage.data.entity.LastName ?? \"\"}` : \"\"),\n isDeletable: true,\n formControl: EmployeeFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrEmployeeTemporalEntity, PrEmployeeEntity),\n ...NumberRangeAdditionalProperties\n ],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"Employee\"),\n [PrEmployeeEntity.FirstName]: {},\n [PrEmployeeEntity.LastName]: {},\n [PrEmployeeEntity.BornLastName]: {},\n [PrEmployeeEntity.PrSex]: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: PrSexEntity.Name\n },\n width: BasicInputSizes.S\n },\n [PrEmployeeEntity.TitleBeforeName]: {\n width: BasicInputSizes.XS,\n groupedField: GroupedField.MultiStart,\n textAlign: TextAlign.Right\n },\n [PrEmployeeEntity.TitleAfterName]: {\n width: BasicInputSizes.XS,\n groupedField: GroupedField.MultiEnd,\n textAlign: TextAlign.Left\n },\n [PrEmployeeEntity.DateOfBirth]: {},\n [PrEmployeeEntity.PhoneNumber]: {\n ...PhoneNumberDef\n },\n [PrEmployeeEntity.Email]: {\n width: BasicInputSizes.XL,\n validator: {\n type: ValidatorType.Email\n }\n },\n [PrEmployeeEntity.ExternalNumber]: {},\n [PrEmployeeEntity.Labels]: getLabelsDef(\"Employee\"),\n [PrEmployeeEntity.Citizenship]: {\n ...countryDef,\n width: BasicInputSizes.L,\n affectedFields: [\n ...Object.keys(foreignAddressFields).map(key => ({ id: key })),\n { id: PrEmployeeEntity.ForeignPersonalIdentificationNumber },\n { id: PrEmployeeEntity.PrIdentificationDocument },\n { id: PrEmployeeEntity.EuHealthCareNumber },\n { id: PrEmployeeEntity.EuSocialInsuranceNumber },\n { id: ShowOtherIdentifiers }\n ]\n },\n [PrEmployeeEntity.PrIdentificationDocument]: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: PrIdentityDocumentTypeEntity.Name,\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n if (args.storage.getValueByPath(PrEmployeeEntity.CitizenshipCode) === CountryCode.CzechRepublic) {\n return items.filter(item => item.id !== PrIdentityDocumentTypeCode.Passport);\n }\n return items;\n }\n },\n groupedField: GroupedField.MultiStart\n },\n [PrEmployeeEntity.IDCountryOfIssue]: {\n ...countryDef,\n affectedFields: [{ id: PrEmployeeEntity.PersonalIdentificationNumber }],\n fieldSettings: {\n ...countryDef.fieldSettings,\n shouldDisplayAdditionalColumns: false\n }\n },\n [PrEmployeeEntity.IDNumber]: {\n width: BasicInputSizes.S\n },\n [PrEmployeeEntity.DateIDEndOfValidity]: {\n groupedField: GroupedField.MultiEnd\n },\n [PrEmployeeEntity.PersonalIdentificationNumber]: {\n ...BirthNumberFieldDef\n },\n [ShowOtherIdentifiers]: {\n type: FieldType.Switch,\n label: i18next.t(\"Employee:Form.ShowOtherIdentifiers\"),\n isVisible: isForeigner,\n affectedFields: [\n { id: PrEmployeeEntity.ForeignPersonalIdentificationNumber },\n { id: PrEmployeeEntity.EuHealthCareNumber },\n { id: PrEmployeeEntity.EuSocialInsuranceNumber }\n ],\n defaultValue: false\n },\n [PrEmployeeEntity.ForeignPersonalIdentificationNumber]: {\n isVisible: ifAll(isForeigner, isOtherIdentifierVisible)\n },\n [PrEmployeeEntity.EuHealthCareNumber]: {\n isVisible: ifAll(isForeigner, isOtherIdentifierVisible)\n },\n [PrEmployeeEntity.EuSocialInsuranceNumber]: {\n isVisible: ifAll(isForeigner, isOtherIdentifierVisible)\n },\n ...localAddressFields,\n [createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.Country)]: {\n ...localAddressFields[createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.Country)],\n width: BasicInputSizes.L,\n fieldSettings: {\n ...localAddressFields[createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.Country)].fieldSettings,\n shouldDisplayAdditionalColumns: false\n }\n },\n ...contactAddressFields,\n [createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.Country)]: {\n ...contactAddressFields[createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.Country)],\n width: BasicInputSizes.L,\n fieldSettings: {\n ...contactAddressFields[createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.Country)].fieldSettings,\n shouldDisplayAdditionalColumns: false\n }\n },\n ...foreignAddressFields,\n [createPath(PrEmployeeEntity.ForeignAddress, PrEmployeeLocalAddressEntity.Country)]: {\n ...foreignAddressFields[createPath(PrEmployeeEntity.ForeignAddress, PrEmployeeLocalAddressEntity.Country)],\n width: BasicInputSizes.L,\n fieldSettings: {\n ...foreignAddressFields[createPath(PrEmployeeEntity.ForeignAddress, PrEmployeeLocalAddressEntity.Country)].fieldSettings,\n shouldDisplayAdditionalColumns: false\n }\n },\n ...bankAccountFields,\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.FirstName)]: {},\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.LastName)]: {},\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.DateOfBirth)]: {},\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.PersonalIdentificationNumber)]: {\n ...BirthNumberFieldDef,\n width: FastEntryInputSizes.S\n },\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.DateValidFrom)]: {\n defaultValue: DATE_MIN\n },\n [createPath(PrEmployeeEntity.Dependents, PrEmployeeDependentPersonEntity.DateValidTo)]: {\n defaultValue: DATE_MAX,\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n },\n [createPath(PrEmployeeEntity.Cars, PrEmployeeCarEntity.Name)]: {},\n [createPath(PrEmployeeEntity.Cars, PrEmployeeCarEntity.PurchasePrice)]: {\n fieldSettings: {\n unit: CurrencyType.getCurrencyUnit(getCompanyCurrency(context))\n }\n },\n [createPath(PrEmployeeEntity.Cars, PrEmployeeCarEntity.LowEmission)]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n },\n // custom \"temporal property dialog\"\n extraFieldContentAfter: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n const carsDialogBc = storage.getCustomData().carsDialogBc;\n\n if (!!carsDialogBc) {\n // don't render the button when the temporal dialog is opened\n return null;\n }\n\n return (\n {\n storage.setCustomData({\n carsDialogBc: args.bindingContext.getParent()\n });\n storage.refresh();\n\n }}>\n \n \n );\n }\n },\n [createPath(PrEmployeeEntity.Cars, PrEmployeeCarEntity.DateValidFrom)]: {\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n }\n },\n [createPath(PrEmployeeEntity.Cars, PrEmployeeCarEntity.DateValidTo)]: {\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n }\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrEmployeeTemporalEntity.HealthInsurance,\n definition: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Employee:Form.HealthInsuranceCompany\"),\n fieldSettings: {\n displayName: PrInsuranceCompanyPredefinedEntity.ShortName,\n shouldDisplayAdditionalColumns: true,\n temporalDialog: {\n dialogTitle: i18next.t(\"Employee:Form.PlanHealthInsuranceTitle\"),\n dateType: FieldType.MonthYear,\n onlyOneFuturePlan: true,\n withoutGaps: true,\n isCalendarDateDisabledDateValidFrom: (date: Date, unit: TDisabledDateUnit) => {\n if (unit !== \"month\") {\n return false;\n }\n\n // only allow January and June to be selected\n return ![0, 5].includes(date.getMonth());\n },\n isCalendarDateDisabledDateValidTo: (date: Date, unit: TDisabledDateUnit) => {\n if (unit !== \"month\") {\n return false;\n }\n\n // only allow January and June to be selected\n return ![11, 4].includes(date.getMonth());\n },\n customDateValidFrom: (items?: TTemporal[]) => {\n if (!items || [0, 1].includes(items.length)) {\n // first item should start from DATE_MIN\n return DATE_MIN;\n }\n\n const rootDay = getUtcDayjs(items?.find(item => getUtcDayjs().isSameOrBefore(item.DateValidFrom, \"date\"))?.DateValidFrom ?? getUtcDate());\n const thisYear = rootDay.year();\n const nextYear = getUtcDayjs().add(1, \"year\").year();\n const nextJanuary = getUtcDayjs(`01/01/${nextYear}`);\n const nextJune = rootDay.month() >= 5 ? getUtcDayjs(`06/01/${nextYear}`) : getUtcDayjs(`06/01/${thisYear}`);\n\n return nextJune.toDate() < nextJanuary.toDate() ? nextJune.toDate() : nextJanuary.toDate();\n }\n }\n },\n filter: {\n select: `${PrInsuranceCompanyPredefinedEntity.PrInsuranceCompanyTypeCode} eq '${PrInsuranceCompanyTypeCode.HealthInsuranceCompany}'`\n },\n columns: [\n { id: PrInsuranceCompanyPredefinedEntity.HealthInsuranceCompanyCode },\n {\n id: PrInsuranceCompanyPredefinedEntity.ShortName,\n label: i18next.t(\"Employee:Form.Shortcut\")\n },\n { id: PrInsuranceCompanyPredefinedEntity.Name }\n ],\n additionalProperties: [\n { id: PrInsuranceCompanyPredefinedEntity.HealthInsuranceCompanyCode }\n ],\n width: BasicInputSizes.XL\n }\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrEmployeeTemporalEntity.PrDisabilityType,\n definition: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n temporalDialog: {\n dialogTitle: i18next.t(\"Employee:Form.PlanDisabilityTitle\"),\n onlyOneFuturePlan: true,\n granularity: \"day\"\n },\n noRecordText: i18next.t(\"Common:Select.NoRecord\")\n }\n },\n currentDefinition: {\n isVisible: isDisabilityVisible\n }\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrEmployeeTemporalEntity.PrFormOfStudyType,\n definition: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n temporalDialog: {\n dialogTitle: i18next.t(\"Employee:Form.PlanStudyTitle\"),\n onlyOneFuturePlan: true,\n granularity: \"day\"\n },\n noRecordText: i18next.t(\"Common:Select.NoRecord\")\n }\n },\n currentDefinition: {\n isVisible: isStudyVisible\n }\n }),\n [PrEmployeeEntity.DatePensionFrom]: {\n isVisible: isPensionVisible,\n label: i18next.t(\"Employee:Form.DatePensionFrom\")\n },\n [PrEmployeeEntity.PerformAnnualAccounting]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrEmployeeTemporalEntity.IsDepositing,\n definition: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n }\n },\n withOpeningButton: false\n }),\n [PreviousEmploymentDurationYearsPath]: {\n type: FieldType.NumberInput,\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n const previousEmploymentDurationDays = args.storage.getValueByPath(PrEmployeeEntity.PreviousEmploymentDurationDays) as number;\n const count = isNotDefined(previousEmploymentDurationDays) ? 0 : Math.floor(previousEmploymentDurationDays / 365);\n\n return args.storage.t(\"Common:Time.Year\", { count });\n }\n },\n labelStatus: LabelStatus.Removed,\n useForValidation: true,\n affectedFields: [\n { id: PreviousEmploymentDurationDaysPath }\n ]\n },\n [PreviousEmploymentDurationDaysPath]: {\n type: FieldType.NumberInput,\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n const previousEmploymentDurationDays = args.storage.getValueByPath(PrEmployeeEntity.PreviousEmploymentDurationDays) as number;\n const count = isNotDefined(previousEmploymentDurationDays) ? 0 : previousEmploymentDurationDays % 365;\n\n return args.storage.t(\"Common:Time.Days\", { count });\n }\n },\n labelStatus: LabelStatus.Removed,\n useForValidation: true,\n affectedFields: [\n { id: PreviousEmploymentDurationYearsPath }\n ]\n },\n [PrEmployeeEntity.PreviousEmploymentDurationDays]: {\n render: (args: IFieldDefFn) => {\n return (\n \n \n \n \n \n \n );\n }\n },\n [PrEmployeeEntity.SalaryCurrency]: {\n ...CurrencyDef\n },\n [PrEmployeeEntity.PasswordForPayslip]: {\n type: FieldType.Password\n },\n [ShowContactAddressPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: Object.keys(contactAddressFields).map(key => ({ id: key }))\n },\n [ShowDisabilityPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: [\n { id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.PrDisabilityType) }\n ]\n },\n [ShowStudyPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: [\n { id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.PrFormOfStudyType) }\n ]\n },\n [ShowPensionPath]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n affectedFields: [\n { id: createPath(PrEmployeeEntity.DatePensionFrom) }\n ]\n },\n ...tmpFieldsDef\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: PrEmployeeEntity.TitleBeforeName }, { id: PrEmployeeEntity.FirstName }, { id: PrEmployeeEntity.LastName }, { id: PrEmployeeEntity.TitleAfterName }],\n [{ id: PrEmployeeEntity.BornLastName }, { id: PrEmployeeEntity.PrSex }, { id: PrEmployeeEntity.DateOfBirth }],\n [{ id: PrEmployeeEntity.PhoneNumber }, { id: PrEmployeeEntity.Email }],\n [{ id: PrEmployeeEntity.ExternalNumber }, { id: PrEmployeeEntity.Labels }]\n ]\n },\n {\n id: \"identification\",\n title: i18next.t(\"Employee:Form.IdentificationGroup\"),\n rows: [\n [{ id: PrEmployeeEntity.Citizenship }],\n [\n { id: PrEmployeeEntity.PrIdentificationDocument }, { id: PrEmployeeEntity.IDCountryOfIssue },\n { id: PrEmployeeEntity.IDNumber }, { id: PrEmployeeEntity.DateIDEndOfValidity }\n ],\n [\n { id: PrEmployeeEntity.PersonalIdentificationNumber },\n { id: ShowOtherIdentifiers }\n ],\n [\n { id: PrEmployeeEntity.ForeignPersonalIdentificationNumber },\n { id: PrEmployeeEntity.EuHealthCareNumber },\n { id: PrEmployeeEntity.EuSocialInsuranceNumber }\n ]\n ]\n },\n {\n id: \"addressForeign\",\n title: i18next.t(\"Employee:Form.AddressForeignGroup\"),\n isVisible: isForeigner,\n rows: [\n [{ id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeForeignAddressEntity.Street) }],\n [\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeForeignAddressEntity.City) },\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeForeignAddressEntity.PostalCode) },\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeForeignAddressEntity.Country) }\n ]\n ]\n },\n {\n id: \"addressCzech\",\n title: i18next.t(\"Employee:Form.AddressCzechGroup\"),\n rows: [\n [{ id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.Street) }],\n [\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.City) },\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.PostalCode) },\n { id: createPath(PrEmployeeEntity.LocalAddress, PrEmployeeLocalAddressEntity.Country) }\n ]\n ]\n },\n {\n id: \"addressContact\",\n title: i18next.t(\"Employee:Form.AddressContactGroup\"),\n togglePropPath: ShowContactAddressPath,\n rows: [\n [{ id: createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.Street) }],\n [\n { id: createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.City) },\n { id: createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.PostalCode) },\n { id: createPath(PrEmployeeEntity.ContactAddress, PrEmployeeContactAddressEntity.Country) }\n ]\n ]\n },\n {\n // id \"payment\" is expected in the change handlers\n id: \"payment\",\n title: i18next.t(\"Employee:Form.BankAccountGroup\"),\n rows: [\n [{ id: SAVED_ACCOUNTS_PATH }],\n [...paymentDetailFields]\n ]\n // todo: what about ABA number field?? It was removed here, but is it correct??\n },\n {\n id: \"healthInsurance\",\n title: i18next.t(\"Employee:Form.HealthInsuranceGroup\"),\n rows: [\n [{ id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.HealthInsurance) }]\n ]\n },\n {\n id: \"dependents\",\n title: i18next.t(\"Employee:Form.Dependents\"),\n lineItems: {\n collection: PrEmployeeEntity.Dependents,\n order: \"Id\",\n canReorder: false,\n isItemCloneable: false,\n isGroupToggleable: true,\n columns: [\n { id: PrEmployeeDependentPersonEntity.FirstName }, { id: PrEmployeeDependentPersonEntity.LastName },\n { id: PrEmployeeDependentPersonEntity.DateOfBirth }, { id: PrEmployeeDependentPersonEntity.PersonalIdentificationNumber }\n ]\n }\n },\n {\n id: \"disabilityType\",\n title: i18next.t(\"Employee:Form.DisabilityGroup\"),\n togglePropPath: ShowDisabilityPath,\n rows: [\n [{ id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.PrDisabilityType) }]\n ]\n },\n {\n id: \"studyType\",\n title: i18next.t(\"Employee:Form.StudyGroup\"),\n togglePropPath: ShowStudyPath,\n rows: [\n [{ id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.PrFormOfStudyType) }]\n ]\n },\n {\n id: \"pensionType\",\n title: i18next.t(\"Employee:Form.PensionGroup\"),\n togglePropPath: ShowPensionPath,\n rows: [\n [{ id: createPath(PrEmployeeEntity.DatePensionFrom) }]\n ]\n },\n {\n id: \"cars\",\n title: i18next.t(\"Employee:Form.Cars\"),\n lineItems: {\n collection: PrEmployeeEntity.Cars,\n order: \"Id\",\n canReorder: false,\n isItemCloneable: false,\n isGroupToggleable: true,\n columns: [\n { id: PrEmployeeCarEntity.Name },\n { id: PrEmployeeCarEntity.PurchasePrice },\n { id: PrEmployeeCarEntity.LowEmission }\n // { id: PrEmployeeCarEntity.DateValidFrom },\n // { id: PrEmployeeCarEntity.DateValidTo }\n ]\n }\n },\n {\n // temporary, will be removed\n id: \"bordel\",\n title: \"Nastavení\",\n rows: [\n [{ id: PrEmployeeEntity.PerformAnnualAccounting }, { id: createPath(PrEmployeeEntity.CurrentTemporalPropertyBag, PrEmployeeTemporalEntity.IsDepositing) }],\n [{ id: PrEmployeeEntity.PreviousEmploymentDurationDays }],\n [{ id: PrEmployeeEntity.SalaryCurrency }, { id: PrEmployeeEntity.PasswordForPayslip }]\n ]\n },\n {\n id: \"Tabs\",\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n },\n tabs: [\n {\n id: \"employment\",\n title: i18next.t(\"Employee:FormTab.Employments\"),\n table: {\n id: \"employeeEmploymentTable\",\n entitySet: EntitySetName.PrEmployments,\n filter: (args: IGetValueArgs) => {\n return `${PrEmploymentEntity.Employee}/Id eq ${args.storage.data.entity.Id}`;\n },\n initialSortBy: [{ id: PrEmploymentEntity.DateStart, sort: Sort.Asc }],\n columns: [\n { id: PrEmploymentEntity.NumberOurs },\n {\n id: PrEmploymentEntity.Template,\n fieldSettings: {\n displayName: PrEmploymentTemplateEntity.Name\n }\n },\n {\n id: PrEmploymentEntity.Type,\n fieldSettings: {\n displayName: PrEmploymentTypeEntity.Name\n }\n },\n {\n id: BindingContext.localContext(\"Status\"),\n label: i18next.t(\"Employee:FormTab.StatusColumn\"),\n fieldSettings: {\n disableSort: true\n },\n formatter: (val: TValue, args: IFormatOptions) => {\n const employment = args.entity as IPrEmploymentEntity;\n const dateStart = employment.DateStart;\n const dateEnd = employment.DateEnd;\n const isActive = !dateEnd || getUtcDayjs().isBetween(dateStart, dateEnd, \"day\", \"[]\");\n const text = i18next.t(`Employee:FormTab.${isActive ? \"Active\" : \"Inactive\"}`);\n const color = isActive ? \"C_SEM_text_good\" : \"C_TEXT_primary\";\n\n return {\n tooltip: text,\n value: (\n \n {text}\n \n )\n };\n }\n },\n { id: PrEmploymentEntity.DateStart },\n { id: PrEmploymentEntity.DateEnd }\n ]\n }\n }\n ]\n }\n ]\n };\n\n return {\n entitySet: EntitySetName.PrEmployees,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Employee\", \"Common\", \"NumberRange\", \"Components\", \"TaxpayerDeclaration\", getEnumNameSpaceName(EntityTypeName.PrEmployeeState)];\nsetDefByEntityType(EntityTypeName.PrEmployee, getDefinitions);","import { IPrEmployeeEntity, PrEmployeeEntity, PrSalaryAdvanceEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { ISmartTemporalPropertyDialogCustomData } from \"@odata/TemporalUtils\";\n\nimport { BasicInputSizes, FieldType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { transformUserSelectItems, universalPersonNameFormatter } from \"../../admin/users/Users.utils\";\nimport { TFieldDefinition } from \"../../PageUtils\";\n\nexport const ShowContactAddressPath = \"##ShowContactAddress##\";\nexport const ShowDisabilityPath = \"##ShowDisability##\";\nexport const ShowStudyPath = \"##ShowStudy##\";\nexport const ShowPensionPath = \"##ShowPension##\";\nexport const ShowOtherIdentifiers = \"##ShowOtherIdentifiers##\";\n\nexport const PreviousEmploymentDurationDaysPath = \"##PreviousEmploymentDurationDays##\";\nexport const PreviousEmploymentDurationYearsPath = \"##PreviousEmploymentDurationYears##\";\n\nexport interface IPrEmployeeEntityExtended extends IPrEmployeeEntity {\n [ShowContactAddressPath]: boolean;\n [PreviousEmploymentDurationDaysPath]: number;\n [PreviousEmploymentDurationYearsPath]: number;\n [ShowOtherIdentifiers]: boolean;\n [ShowDisabilityPath]: boolean;\n [ShowStudyPath]: boolean;\n}\n\nexport interface IEmployeeFormCustomData extends ISmartTemporalPropertyDialogCustomData {\n carsDialogBc?: BindingContext;\n taxPayerDeclarationDialogOpen?: boolean;\n}\n\nexport const employeeNameFormatter = (val: TValue, args?: IFormatOptions): string => {\n return universalPersonNameFormatter(args.item);\n};\n\nexport const employeeSelectDef: TFieldDefinition = {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n fieldSettings: {\n displayName: PrEmployeeEntity.FirstName,\n shouldDisplayAdditionalColumns: true,\n passItemContentToInput: true,\n transformFetchedItems: transformUserSelectItems,\n localDependentFields: [\n {\n from: { id: PrEmployeeEntity.FirstName },\n to: { id: createPath(PrSalaryAdvanceEntity.Employee, PrEmployeeEntity.FirstName) }\n },\n {\n from: { id: PrEmployeeEntity.LastName },\n to: { id: createPath(PrSalaryAdvanceEntity.Employee, PrEmployeeEntity.LastName) }\n },\n {\n from: { id: PrEmployeeEntity.NumberOurs },\n to: { id: createPath(PrSalaryAdvanceEntity.Employee, PrEmployeeEntity.NumberOurs) }\n }\n ]\n },\n formatter: employeeNameFormatter,\n columns: [\n {\n id: PrEmployeeEntity.FirstName,\n additionalProperties: [\n { id: PrEmployeeEntity.LastName }\n ],\n formatter: employeeNameFormatter\n },\n { id: PrEmployeeEntity.NumberOurs }\n ],\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName },\n { id: PrEmployeeEntity.NumberOurs }\n ]\n};","import { formatDateToDateTimeOffsetString } from \"@components/inputs/date/utils\";\nimport { IGetValueArgs, TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { addNewLineItem } from \"@components/smart/smartFastEntryList\";\nimport {\n EntitySetName,\n IPrEmploymentEntity,\n IPrEmploymentExtraSalaryEntity,\n IPrEmploymentSalaryComponentEntity,\n IPrEmploymentTemplateEntity,\n IPrEmploymentTemplateExtraSalaryEntity,\n IPrEmploymentTemplateSalaryComponentEntity,\n IPrExtraSalaryEntity,\n IPrExtraSalaryLegislativeValueEntity,\n IPrPayrollSettingEntity,\n IPrSalaryComponentEntity,\n OdataActionName,\n PrEmploymentEntity,\n PrEmploymentTemplateEntity,\n PrEmploymentTemplateExtraSalaryEntity,\n PrEmploymentTemplateExtraSalaryTemporalCurrentEntity,\n PrEmploymentTemplateExtraSalaryTemporalEntity,\n PrEmploymentTemplateSalaryComponentEntity,\n PrEmploymentTemplateSalaryComponentTemporalCurrentEntity,\n PrEmploymentTemplateSalaryComponentTemporalEntity,\n PrEmploymentTemplateTemporalCurrentEntity,\n PrEmploymentTemporalCurrentEntity,\n PrExtraSalaryEntity,\n PrExtraSalaryLegislativeValueEntity,\n PrExtraSalaryTemporalEntity,\n PrPayrollSettingEntity,\n PrPayrollSettingTemporalCurrentEntity,\n PrSalaryComponentEntity,\n PrSalaryComponentTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrBaseTypeCode, PrEntityValueSourceCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest, isBatchResultOk, OData, ODataQueryBuilder, Query } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport {\n createNewTemporalLineItem,\n getDefaultTemporalDateValidFrom,\n getDefaultTemporalDateValidTo,\n groupAndOptimizeRanges,\n replaceSyncedValueWithHistoryValues,\n TTemporal\n} from \"@odata/TemporalUtils\";\nimport i18next from \"i18next\";\n\nimport BindingContext, { createBindingContext, IEntity } from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { createLegislativeExtraSalaries } from \"../extraSalary/ExtraSalary.utils\";\n\nexport enum DialogType {\n SalaryComponent = \"SalaryComponent\",\n ExtraSalary = \"ExtraSalary\"\n}\n\nexport const EmploymentTranslationFiles = [\"Employment\", \"SalaryComponent\", \"ExtraSalary\", \"NumberRange\", \"Common\"];\n\nexport const LegislativeExtraSalaryLocalPath = BindingContext.localContext(\"LegislativeExtraSalaries\");\nexport const ExtraSalaryTogglePath = BindingContext.localContext(\"LegislativeExtraSalariesToggle\");\n\nexport const ExtraSalaryGrpId = PrEmploymentTemplateEntity.ExtraSalaries;\nexport const SalaryComponentGrpId = PrEmploymentTemplateEntity.SalaryComponents;\n\n// needs to be in callback, so that translation is loaded\nexport const getExtraSalaryTemporalDialogSettings = (): TTemporalDialogSettings => {\n return {\n dialogTitle: i18next.t(\"ExtraSalary:Form.PlanExtraSalaryTitle\"),\n columns: [\n PrEmploymentTemplateExtraSalaryTemporalEntity.Name,\n PrEmploymentTemplateExtraSalaryTemporalEntity.ComputationType,\n PrEmploymentTemplateExtraSalaryTemporalEntity.Value\n ],\n extractHistory: getExtraSalaryItemHistory\n };\n};\n\n// needs to be in callback, so that translation is loaded\nexport const getSalaryComponentTemporalDialogSettings = (): TTemporalDialogSettings => {\n return {\n dialogTitle: i18next.t(\"SalaryComponent:Form.PlanSalaryComponentTitle\"),\n columns: [\n PrEmploymentTemplateSalaryComponentTemporalEntity.Name,\n PrEmploymentTemplateSalaryComponentTemporalEntity.Type,\n PrEmploymentTemplateSalaryComponentTemporalEntity.Amount\n ],\n extractHistory: getSalaryComponentItemHistory\n };\n};\n\nexport function isLegislativeExtraSalaryItem(salaryItem: IPrEmploymentExtraSalaryEntity): boolean {\n const value = salaryItem?.Default?.BaseTypeCode ?? salaryItem?.Template?.Default?.BaseTypeCode;\n return value === PrBaseTypeCode.Legislative;\n}\n\nexport function isLegislativeExtraSalary({ storage, bindingContext, item }: IGetValueArgs): boolean {\n if (!item) {\n item = storage.getValue(bindingContext);\n }\n // universal check for both PrEmploymentTemplateSalaryItem and PrEmploymentSalaryItem\n const employmentItem = (item as unknown as IPrEmploymentExtraSalaryEntity);\n return isLegislativeExtraSalaryItem(employmentItem);\n}\n\nexport type TEmploymentEntity = IPrEmploymentEntity | IPrEmploymentTemplateEntity;\nexport type TEmploymentLineItemProp = PrEmploymentEntity.ExtraSalaries | PrEmploymentEntity.SalaryComponents;\nexport type TEmploymentTemplateLineItemProp =\n PrEmploymentTemplateEntity.ExtraSalaries\n | PrEmploymentTemplateEntity.SalaryComponents;\n\nexport type TSalaryComponentLineItem = IPrEmploymentTemplateSalaryComponentEntity | IPrEmploymentSalaryComponentEntity;\nexport type TExtraSalaryLineItem = IPrEmploymentTemplateExtraSalaryEntity | IPrEmploymentExtraSalaryEntity;\n\n/**\n * Method transforms ValueSourceCode used on template to SourceCode, which should be set to EmploymentEntity when\n * template is applied to it.\n * @param code\n */\nfunction getEmploymentSourceCodeFromTemplate(code: string): PrEntityValueSourceCode {\n switch (code) {\n case PrEntityValueSourceCode.Entity:\n return PrEntityValueSourceCode.Template;\n case PrEntityValueSourceCode.Default:\n return PrEntityValueSourceCode.TemplateDefault;\n default:\n return (code as PrEntityValueSourceCode) ?? PrEntityValueSourceCode.Template;\n }\n}\n\n/**\n * Returns new sourceCode for newly created line item\n * @param code as string, so we don't need to cast it when called\n * @param isFromTemplate\n */\nfunction getSourceCode(code: string, isFromTemplate: boolean): PrEntityValueSourceCode {\n if (!isFromTemplate) {\n return PrEntityValueSourceCode.Default;\n }\n return getEmploymentSourceCodeFromTemplate(code as PrEntityValueSourceCode);\n}\n\nexport function createNewSalaryComponentItemFromDefault(defaultSalaryComponent: IPrSalaryComponentEntity, template?: IPrEmploymentTemplateSalaryComponentEntity): TSalaryComponentLineItem {\n const entity = template ?? defaultSalaryComponent;\n // change type so we are able to get \"*SourceCode\" with fallback, because it's not defined on IPrSalaryComponent\n const {\n CurrentTemporalPropertyBag\n } = (entity as unknown as IPrEmploymentTemplateSalaryComponentEntity);\n const isFromTemplate = !!template;\n\n const newItem: TSalaryComponentLineItem = createNewTemporalLineItem(getSalaryComponentTemporalDialogSettings(), {\n Default: defaultSalaryComponent?.Id ? { ...defaultSalaryComponent } : null,\n CurrentTemporalPropertyBag: {\n ...CurrentTemporalPropertyBag,\n AmountSourceCode: getSourceCode(CurrentTemporalPropertyBag.AmountSourceCode, isFromTemplate),\n NameSourceCode: getSourceCode(CurrentTemporalPropertyBag.NameSourceCode, isFromTemplate),\n TypeSourceCode: getSourceCode(CurrentTemporalPropertyBag.TypeSourceCode, isFromTemplate)\n }\n });\n if (template) {\n const { Default, ...newItemWithoutDefault } = newItem;\n return {\n Template: { ...template },\n ...newItemWithoutDefault\n } as IPrEmploymentSalaryComponentEntity;\n }\n return newItem as IPrEmploymentTemplateSalaryComponentEntity;\n}\n\nexport function createNewExtraSalaryItemFromDefault(defaultExtraSalary: IPrExtraSalaryEntity, template?: IPrEmploymentTemplateExtraSalaryEntity, legislativeValues?: IPrExtraSalaryLegislativeValueEntity[]): TExtraSalaryLineItem {\n const entity = template ?? defaultExtraSalary;\n // change type so we are able to get \"*SourceCode\" with fallback, because it's not defined on IPrExtraSalary\n const { CurrentTemporalPropertyBag } = (entity as unknown as IPrEmploymentTemplateExtraSalaryEntity);\n const isFromTemplate = !!template;\n let defaultRange = null;\n\n if (defaultExtraSalary.BaseTypeCode === PrBaseTypeCode.Legislative) {\n const {\n DateValidFrom,\n DateValidTo\n } = legislativeValues.find(value => value.ExtraSalaryTypeCode === defaultExtraSalary.TypeCode);\n defaultRange = { DateValidFrom, DateValidTo };\n }\n\n const newItem: TExtraSalaryLineItem = createNewTemporalLineItem(getExtraSalaryTemporalDialogSettings(), {\n Default: defaultExtraSalary?.Id ? { ...defaultExtraSalary } : null,\n CurrentTemporalPropertyBag: {\n ...CurrentTemporalPropertyBag,\n ComputationTypeSourceCode: getSourceCode(CurrentTemporalPropertyBag.ComputationTypeSourceCode, isFromTemplate),\n ValueSourceCode: getSourceCode(CurrentTemporalPropertyBag.ValueSourceCode, isFromTemplate),\n NameSourceCode: getSourceCode(CurrentTemporalPropertyBag.NameSourceCode, isFromTemplate)\n }\n }, defaultRange);\n if (template) {\n const { Default, ...newItemWithoutDefault } = newItem;\n return {\n Template: { ...template },\n ...newItemWithoutDefault\n } as IPrEmploymentExtraSalaryEntity;\n }\n return newItem as IPrEmploymentTemplateExtraSalaryEntity;\n}\n\nexport async function getEmploymentGeneralSettings(oData: OData, withHistory = false): Promise {\n try {\n const query = oData.getEntitySetWrapper(EntitySetName.PrPayrollSettings).query()\n .expand(PrPayrollSettingEntity.CurrentTemporalPropertyBag, (q) => {\n q.select(\n PrPayrollSettingTemporalCurrentEntity.SickDays,\n PrPayrollSettingTemporalCurrentEntity.LeaveDays\n );\n });\n\n if (withHistory) {\n query.expand(PrPayrollSettingEntity.TemporalPropertyBag);\n }\n\n const settings = (await query.fetchData()).value;\n\n return settings[0];\n } catch (e) {\n // todo: handle error\n return {};\n }\n}\n\nexport async function createDefaultLegislativeExtraSalaryItems(storage: FormStorage): Promise {\n const items = await createLegislativeExtraSalaries(storage, getExtraSalaryTemporalDialogSettings());\n\n items.forEach(item => {\n addNewLineItem(storage, PrEmploymentTemplateEntity.ExtraSalaries, PrEmploymentTemplateEntity.ExtraSalaries, [], item);\n });\n}\n\nexport async function initWithPayrollSettings(storage: FormStorage): Promise {\n const settings = await getEmploymentGeneralSettings(storage.oData);\n\n const { SickDays, LeaveDays } = settings?.CurrentTemporalPropertyBag ?? {};\n let { CurrentTemporalPropertyBag } = storage.data.entity;\n\n if (!CurrentTemporalPropertyBag) {\n CurrentTemporalPropertyBag = {};\n }\n\n // initiated with settings default\n CurrentTemporalPropertyBag.SickDays = SickDays;\n CurrentTemporalPropertyBag.SickDaysSourceCode = PrEntityValueSourceCode.Default;\n CurrentTemporalPropertyBag.LeaveDays = LeaveDays;\n CurrentTemporalPropertyBag.LeaveDaysSourceCode = PrEntityValueSourceCode.Default;\n\n storage.data.entity.CurrentTemporalPropertyBag = CurrentTemporalPropertyBag;\n}\n\nexport async function initiateWithTemplate(storage: FormStorage, templateId: string): Promise {\n const batch: BatchRequest = storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n // legislative values\n batch.getEntitySetWrapper(EntitySetName.PrExtraSalaryLegislativeValues).query()\n .select(\n PrExtraSalaryLegislativeValueEntity.ExtraSalaryTypeCode,\n PrExtraSalaryLegislativeValueEntity.DateValidFrom,\n PrExtraSalaryLegislativeValueEntity.DateValidTo\n );\n\n batch.getEntitySetWrapper(EntitySetName.PrEmploymentTemplates)\n .query(templateId)\n .expand(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, subQuery =>\n subQuery.expand(PrEmploymentTemplateTemporalCurrentEntity.WorkingPattern)\n )\n .expand(PrEmploymentTemplateEntity.SalaryComponents, (subQuery) => {\n subQuery.expand(PrEmploymentTemplateSalaryComponentEntity.CurrentTemporalPropertyBag, (q2) =>\n q2.expand(PrEmploymentTemplateSalaryComponentTemporalCurrentEntity.Type))\n .expand(PrEmploymentTemplateSalaryComponentEntity.Default);\n })\n .expand(PrEmploymentTemplateEntity.ExtraSalaries, (subQuery) => {\n subQuery\n .expand(PrEmploymentTemplateSalaryComponentEntity.CurrentTemporalPropertyBag, (q2) =>\n q2.expand(PrEmploymentTemplateExtraSalaryTemporalCurrentEntity.ComputationType)\n )\n .expand(PrEmploymentTemplateSalaryComponentEntity.Default, q =>\n q.select(PrExtraSalaryEntity.Id, PrExtraSalaryEntity.BaseTypeCode, PrExtraSalaryEntity.TypeCode)\n );\n });\n\n const results = await batch.execute();\n if (results.every(res => isBatchResultOk(res))) {\n\n const legislativeValues = (results[0].body as ODataQueryResult).value as IPrExtraSalaryLegislativeValueEntity[];\n const template = (results[1].body as ODataQueryResult).value as IPrEmploymentTemplateEntity;\n\n const { CurrentTemporalPropertyBag, SalaryComponents, ExtraSalaries } = template;\n\n const { entity } = storage.data;\n\n delete entity.ExtraSalaries;\n delete entity.SalaryComponents;\n ExtraSalaries?.forEach(tpl => {\n const item = createNewExtraSalaryItemFromDefault(tpl.Default, tpl, legislativeValues);\n addNewLineItem(storage, PrEmploymentEntity.ExtraSalaries, PrEmploymentEntity.ExtraSalaries, [], item);\n });\n SalaryComponents.forEach(tpl => {\n const item = createNewSalaryComponentItemFromDefault(tpl.Default, tpl);\n addNewLineItem(storage, PrEmploymentEntity.SalaryComponents, PrEmploymentEntity.SalaryComponents, [], item);\n });\n\n entity.CurrentTemporalPropertyBag = {\n ...CurrentTemporalPropertyBag,\n SickDaysSourceCode: getEmploymentSourceCodeFromTemplate(CurrentTemporalPropertyBag.SickDaysSourceCode),\n LeaveDaysSourceCode: getEmploymentSourceCodeFromTemplate(CurrentTemporalPropertyBag.LeaveDaysSourceCode),\n WorkingPatternSourceCode: getEmploymentSourceCodeFromTemplate(CurrentTemporalPropertyBag.WorkingPatternSourceCode)\n };\n\n const bc = storage.data.bindingContext\n .navigate(PrEmploymentEntity.CurrentTemporalPropertyBag)\n .navigate(PrEmploymentTemporalCurrentEntity.SickDays);\n const info = storage.getInfo(bc);\n const { temporalDialog } = info.fieldSettings;\n entity.TemporalPropertyBag = [{\n // props should not be defined -> we take it from template by default...\n DateValidFrom: getDefaultTemporalDateValidFrom(temporalDialog),\n DateValidTo: getDefaultTemporalDateValidTo(temporalDialog)\n }];\n\n storage.refresh();\n }\n}\n\n\nexport function onBeforeSave(storage: FormStorage, entity: TEmploymentEntity): IEntity {\n // LegislativeExtraSalaries cannot be renamed...\n entity.ExtraSalaries?.forEach(salary => {\n if (isLegislativeExtraSalaryItem(salary)) {\n salary.TemporalPropertyBag?.forEach(item => {\n // it's not possible to change these values for legislative extra salaries\n delete item.Name;\n delete item.ComputationTypeCode;\n delete item.ComputationType;\n });\n }\n });\n\n return entity;\n}\n\nexport async function removeTemplate(storage: FormStorage): Promise {\n storage.setBusy(true);\n\n const payload = {\n TargetDate: formatDateToDateTimeOffsetString(getUtcDate()), // todo: last non-editable date\n SynchronizeWithDefaultValues: false // todo: possible to be removed at all\n };\n\n await storage.oData.getEntitySetWrapper(EntitySetName.PrEmployments)\n .action(OdataActionName.PrEmploymentRemoveTemplate, storage.data.entity.Id, payload);\n\n await storage.reload({ preserveInfos: true, withoutBusy: true });\n\n storage.setBusy(false);\n}\n\nconst expandSalaryComponent = (query: T): T =>\n query.expand(PrSalaryComponentEntity.TemporalPropertyBag, q =>\n q.expand(PrSalaryComponentTemporalEntity.Type));\n\nconst expandTemplateSalaryComponent = (query: T): T =>\n expandSalaryComponent(query)\n .expand(PrEmploymentTemplateSalaryComponentEntity.Default, q => expandSalaryComponent(q));\n\nexport async function getSalaryComponentItemHistory(storage: FormStorage, component: IEntity, data: TTemporal[]): Promise {\n if (!data) {\n data = [];\n }\n\n const baseEntity = component.Template ?? component.Default;\n const hasTemplate = !!component.Template;\n\n if (!baseEntity) {\n // there are no default data, just return actual TemporalPropertyBag\n return data;\n }\n\n const { oData } = storage;\n\n let historyData: TTemporal[];\n\n let query: ODataQueryBuilder;\n if (hasTemplate) {\n const template = storage.data.entity.Template;\n const bc = createBindingContext(EntitySetName.PrEmploymentTemplates, oData.metadata).addKey(template)\n .navigate(PrEmploymentTemplateEntity.SalaryComponents).addKey(baseEntity);\n query = oData.fromPath(bc.getFullPath()).query();\n query = expandTemplateSalaryComponent(query);\n\n const result = await query.fetchData();\n const salaryComp = result.value;\n // extract additional NULL values from template from the Default\n historyData = (salaryComp.TemporalPropertyBag ?? [])\n .reduce((res, current) =>\n res.concat(...replaceSyncedValueWithHistoryValues(current, salaryComp.Default.TemporalPropertyBag, PrEntityValueSourceCode.TemplateDefault)), []);\n } else {\n query = oData.getEntitySetWrapper(EntitySetName.PrSalaryComponents).query(baseEntity.Id);\n query = expandSalaryComponent(query);\n\n const result = await query.fetchData();\n historyData = result.value.TemporalPropertyBag as TTemporal[];\n }\n\n return data.reduce((res: TTemporal[], item: TTemporal) =>\n res.concat(replaceSyncedValueWithHistoryValues(item, historyData, hasTemplate ? PrEntityValueSourceCode.Template : PrEntityValueSourceCode.Default)), []);\n}\n\nconst expandExtraSalary = (query: T): T =>\n query.expand(PrExtraSalaryEntity.TemporalPropertyBag, q =>\n q.expand(PrExtraSalaryTemporalEntity.ComputationType));\n\nconst expandTemplateExtraSalary = (query: T): T =>\n expandExtraSalary(query)\n .expand(PrEmploymentTemplateExtraSalaryEntity.Default, q => expandExtraSalary(q));\n\nexport async function getExtraSalaryItemHistory(storage: FormStorage, salary: IEntity, data: TTemporal[]): Promise {\n if (!data) {\n data = [];\n }\n\n const baseEntity = salary.Template ?? salary.Default;\n const hasTemplate = !!salary.Template;\n\n if (!baseEntity) {\n // there are no default data, just return actual TemporalPropertyBag\n return data;\n }\n\n const { oData } = storage;\n\n let historyData: TTemporal[];\n\n let query: ODataQueryBuilder;\n if (hasTemplate) {\n const template = storage.data.entity.Template;\n const bc = createBindingContext(EntitySetName.PrEmploymentTemplates, oData.metadata).addKey(template)\n .navigate(PrEmploymentTemplateEntity.ExtraSalaries).addKey(baseEntity);\n query = oData.fromPath(bc.getFullPath()).query();\n query = expandTemplateExtraSalary(query);\n\n const result = await query.fetchData();\n const extraSalary = result.value;\n // extract additional NULL values from template from the Default\n historyData = (extraSalary.TemporalPropertyBag ?? [])\n .reduce((res, current) =>\n res.concat(...replaceSyncedValueWithHistoryValues(current, extraSalary.Default.TemporalPropertyBag, PrEntityValueSourceCode.TemplateDefault)), []);\n } else {\n query = oData.getEntitySetWrapper(EntitySetName.PrExtraSalaries).query(baseEntity.Id);\n query = expandExtraSalary(query);\n\n const result = await query.fetchData();\n historyData = result.value.TemporalPropertyBag as TTemporal[];\n }\n\n return data.reduce((res: TTemporal[], item: TTemporal) =>\n res.concat(replaceSyncedValueWithHistoryValues(item, historyData, hasTemplate ? PrEntityValueSourceCode.Template : PrEntityValueSourceCode.Default)), []);\n}\n\n/**\n * Retusn function to extract history from template\n */\nexport function getExtractHistoryFromTemplateFn(propName: string) {\n return async function getHistoryFn(storage: FormStorage, entity: IEntity, data: TTemporal[]): Promise {\n // todo: better condition\n const isExpandable = [\"WorkingPattern\"].includes(propName);\n const hasGeneralSettings = [\"LeaveDays\", \"SickDays\"].includes(propName);\n\n if (!data) {\n data = [];\n }\n\n // First, if template is defined on the entity, try to expand data from template\n const id = entity.Template?.Id;\n if (id) {\n const query = storage.oData.getEntitySetWrapper(EntitySetName.PrEmploymentTemplates)\n .query(id)\n .expand(PrEmploymentTemplateEntity.TemporalPropertyBag, subQuery => {\n if (isExpandable) {\n subQuery.expand(propName);\n }\n });\n\n const result = await query.fetchData();\n const historyData = groupAndOptimizeRanges(result.value.TemporalPropertyBag as TTemporal[], [propName], true);\n\n data = data.reduce((res: TTemporal[], current: TTemporal) =>\n res.concat(...replaceSyncedValueWithHistoryValues(current, historyData, PrEntityValueSourceCode.Template)), []);\n }\n\n // Second, for globally configurable entities, we may expand additional null values from common settings\n if (hasGeneralSettings) {\n const settings = await getEmploymentGeneralSettings(storage.oData, true);\n const historyData = groupAndOptimizeRanges(settings?.TemporalPropertyBag as TTemporal[], [propName], true);\n\n data = data.reduce((res: TTemporal[], current: TTemporal) =>\n res.concat(...replaceSyncedValueWithHistoryValues(current, historyData, PrEntityValueSourceCode.Default)), []);\n }\n\n return data;\n };\n}\n","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport EmploymentBaseFormView from \"../employmentTemplate/EmploymentBaseFormView\";\nimport { IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrEmploymentEntity, PrEmploymentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { formatHeaderValue } from \"@components/readOnlyList/ReadOnlyList\";\nimport { universalPersonNameFormatter } from \"../../admin/users/Users.utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { initiateWithTemplate, onBeforeSave, TEmploymentLineItemProp } from \"./Employment.utils\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { cloneDeep } from \"lodash\";\n\n\ninterface IProps extends IFormViewProps {\n}\n\nclass EmploymentFormView extends EmploymentBaseFormView {\n static contextType = AppContext;\n static defaultProps = {\n title: \"Employment:FormTitle\"\n };\n\n getHeaderData = (): IReadOnlyListItem[] => {\n const { storage } = this.props;\n const { bindingContext, entity } = storage.data;\n\n return [\n {\n label: storage.getInfo(bindingContext.navigate(PrEmploymentEntity.Employee)).label,\n value: formatHeaderValue(universalPersonNameFormatter(entity.Employee))\n },\n {\n label: storage.getInfo(bindingContext.navigate(PrEmploymentEntity.Type)).label,\n value: formatHeaderValue(entity.Type?.Name)\n },\n {\n label: storage.getInfo(bindingContext.navigate(PrEmploymentEntity.Template)).label,\n value: formatHeaderValue(entity.Template?.Name)\n },\n // todo: ... there will be Name property on the EmploymentEntity in the future\n // {\n //\n // label: storage.getInfo(bindingContext.navigate(PrEmploymentEntity.Name)).label,\n // value: formatHeaderValue(entity.Name)\n // }\n ];\n };\n\n get readOnlyListTitle(): string {\n return this.props.storage.t(\"Employment:FormTitle\");\n }\n\n getAlreadySelectedItemIds(propName: TEmploymentLineItemProp): number[] {\n const { entity } = this.props.storage.data;\n const ids: number[] = [];\n entity[propName]?.forEach(comp => {\n const defaultItem = comp?.Template?.Default ?? comp?.Default;\n if (defaultItem?.Id) {\n ids.push(defaultItem?.Id);\n }\n });\n return ids;\n }\n\n async handleTemplateChange(e: ISmartFieldChange) {\n if (e.bindingContext.getPath() === PrEmploymentEntity.Template) {\n await initiateWithTemplate(this.props.storage, e.value as string);\n }\n }\n\n async handleChange(e: ISmartFieldChange): Promise {\n await this.handleTemplateChange(e);\n super.handleChange(e);\n }\n\n onBeforeSave = (): IEntity => {\n const { storage } = this.props;\n\n const entity = cloneDeep(storage.data.entity);\n\n return onBeforeSave(storage, entity);\n };\n\n}\n\nexport default withPermissionContext(EmploymentFormView);","import styled from \"styled-components/macro\";\nimport { SyncSymbolStyled } from \"@components/inputs/field/Field.styles\";\n\nexport const TemplateSummaryItemStyled = styled.div`\n display: flex;\n gap: 5px;\n align-items: center;\n`;\n\nexport const TemplateName = styled.div`\n position: relative;\n\n padding: 0 12px 0 20px;\n background-color: ${props => props.theme.C_FIELD_sync};\n border-radius: 16px;\n margin-left: -20px;\n\n height: 34px;\n display: flex;\n align-items: flex-end;\n \n ${SyncSymbolStyled} {\n left: 0;\n }\n`;","import React, { useCallback } from 'react';\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IPrEmploymentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IconButton } from \"@components/button\";\nimport { CloseIcon } from \"@components/icon\";\nimport { IconSize } from \"../../../enums\";\nimport { TemplateName, TemplateSummaryItemStyled } from \"./Employment.styles\";\nimport SyncSymbol from \"../../../components/inputs/field/SyncSymbol\";\nimport { removeTemplate } from \"./Employment.utils\";\nimport i18next from \"i18next\";\n\ninterface IProps {\n storage: FormStorage;\n}\n\nconst TemplateSummaryItem: React.FC = ({ storage }) => {\n const { entity, bindingContext } = storage.data;\n\n const isReadOnly = bindingContext.isNew();\n\n const handleRemoveTemplate = useCallback(() => {\n removeTemplate(storage);\n }, [storage]);\n\n return (\n \n \n {entity.Template?.Name}\n \n {!isReadOnly && (\n \n \n \n )}\n );\n};\n\nexport default TemplateSummaryItem;","import { DateRangeSpecialValue } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem, ISummaryItemEditProps } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrEmploymentEntity,\n PrEmployeeEntity,\n PrEmploymentEntity,\n PrEmploymentExtraSalaryEntity,\n PrEmploymentSalaryComponentEntity,\n PrEmploymentTemplateExtraSalaryEntity,\n PrEmploymentTemplateSalaryComponentEntity,\n PrEmploymentTemporalEntity,\n PrExtraSalaryEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getTemporalAdditionalProperties } from \"@odata/TemporalUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, FieldType, GroupedField, Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { DATE_MAX } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport TemporalFormDialog from \"../../../views/formView/TemporalFormDialog\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { userNameWithAvatarFormatter, userNameWithAvatarTableFormatter } from \"../../admin/users/UsersDef\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { employeeSelectDef } from \"../employee/Employee.utils\";\nimport { getCommonEmploymentDefs, getCommonEmploymentGroupDef } from \"../employmentTemplate/EmploymentTemplateDef\";\nimport { EmploymentTranslationFiles } from \"./Employment.utils\";\nimport EmploymentFormView from \"./EmploymentFormView\";\nimport TemplateSummaryItem from \"./TemplateSummaryItem\";\n\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrEmployment}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrEmploymentEntity.Employee,\n PrEmploymentEntity.NumberOurs,\n PrEmploymentEntity.Type\n ],\n filterDefinition: {\n [PrEmploymentEntity.Employee]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n return userNameWithAvatarTableFormatter(val, {\n ...args,\n entity: (args.entity as IPrEmploymentEntity).Employee\n });\n },\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName }\n ]\n },\n [PrEmploymentEntity.NumberOurs]: {},\n [PrEmploymentEntity.Type]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n }\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrEmploymentEntity.NumberOurs, sort: Sort.Asc }],\n columns: [\n PrEmploymentEntity.NumberOurs,\n PrEmploymentEntity.Employee,\n PrEmploymentEntity.Type,\n PrEmploymentEntity.DateStart,\n PrEmploymentEntity.DateEnd,\n ],\n columnDefinition: {\n [PrEmploymentEntity.Employee]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n return userNameWithAvatarFormatter(val, {\n ...args,\n entity: (args.entity as IPrEmploymentEntity).Employee\n });\n },\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName }\n ]\n },\n [PrEmploymentEntity.NumberOurs]: {},\n [PrEmploymentEntity.Type]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [PrEmploymentEntity.DateStart]: {},\n [PrEmploymentEntity.DateEnd]: {},\n [PrEmploymentEntity.DateCalculatePayslipStart]: {},\n },\n title: i18next.t(\"Employment:Title\"),\n };\n\n const summary: ISummaryItem[] = [\n { ...getNumberOursSummaryDef(\"Employment\") },\n {\n id: BindingContext.localContext(\"TemplateSummary\"),\n additionalProperties: [{ id: PrEmploymentEntity.Template }],\n renderEdit: (args: ISummaryItemEditProps) => (\n \n ),\n isReadOnly: ({ storage }: IGetValueArgs) => {\n const { entity, bindingContext } = storage.data;\n return !bindingContext.isNew() || !!(entity as IPrEmploymentEntity).Template?.Id;\n },\n label: i18next.t(\"Employment:Summary.Template\"),\n additionalData: {\n dialogTitle: i18next.t(\"Employment:Summary.TemplateDialogTitle\")\n },\n formatter(val, { entity, storage }) {\n if (entity.Template?.Name) {\n return (\n }/>\n );\n }\n return i18next.t(\"Employment:Summary.WithoutTemplate\");\n },\n }\n ];\n const form: IFormDef = {\n id: `${EntityTypeName.PrEmployment}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Employment:New\"), i18next.t(\"Employment:FormTitle\")),\n isDeletable: true,\n formControl: EmploymentFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrEmploymentTemporalEntity, PrEmploymentEntity),\n ...NumberRangeAdditionalProperties,\n {\n id: PrEmploymentEntity.ExtraSalaries,\n additionalProperties: [\n {\n id: PrEmploymentExtraSalaryEntity.Default,\n additionalProperties: [\n { id: PrExtraSalaryEntity.TypeCode },\n { id: PrExtraSalaryEntity.BaseTypeCode }\n ]\n },\n {\n id: PrEmploymentExtraSalaryEntity.Template,\n additionalProperties: [\n {\n id: PrEmploymentTemplateExtraSalaryEntity.Default,\n additionalProperties: [\n { id: PrExtraSalaryEntity.TypeCode },\n { id: PrExtraSalaryEntity.BaseTypeCode }\n ]\n },\n ]\n }\n ]\n },\n {\n id: PrEmploymentEntity.SalaryComponents,\n additionalProperties: [\n { id: PrEmploymentSalaryComponentEntity.Default },\n {\n id: PrEmploymentSalaryComponentEntity.Template,\n additionalProperties: [\n { id: PrEmploymentTemplateSalaryComponentEntity.Default },\n ]\n }\n ]\n }\n ],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"Employment\"),\n [PrEmploymentEntity.Employee]: { ...employeeSelectDef },\n [PrEmploymentEntity.Type]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [PrEmploymentEntity.DateStart]: {\n type: FieldType.Date,\n groupedField: GroupedField.MultiStart,\n },\n [PrEmploymentEntity.DateEnd]: {\n type: FieldType.Date,\n groupedField: GroupedField.MultiEnd,\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n },\n defaultValue: DATE_MAX\n },\n [PrEmploymentEntity.DateCalculatePayslipStart]: {\n type: FieldType.MonthYear\n },\n [PrEmploymentEntity.Template]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Employment:Template.TitleSingular\"),\n width: BasicInputSizes.L,\n fieldSettings: {\n displayName: \"Name\"\n },\n },\n ...getCommonEmploymentDefs(false)\n },\n groups: [\n {\n id: \"main\",\n rows: [[\n { id: PrEmploymentEntity.Employee },\n { id: PrEmploymentEntity.Type },\n { id: PrEmploymentEntity.DateStart },\n { id: PrEmploymentEntity.DateEnd },\n { id: PrEmploymentEntity.DateCalculatePayslipStart }\n ]]\n },\n ...getCommonEmploymentGroupDef(false)\n ]\n };\n return {\n entitySet: EntitySetName.PrEmployments,\n table,\n form\n };\n};\ngetDefinitions.translationFiles = [...EmploymentTranslationFiles];\nsetDefByEntityType(EntityTypeName.PrEmployment, getDefinitions);","import React from \"react\";\nimport SelectionTableViewBase from \"../../../components/smart/SelectionTableViewBase\";\nimport { withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\n\nclass PickExtraSalaryTableView extends SelectionTableViewBase {\n get secondaryTitle(): string {\n return this.props.storage.t(\"ExtraSalary:SelectionTableView.Title\");\n }\n\n get selectionConfirmText(): string {\n return this.props.storage.t(\"ExtraSalary:SelectionTableView.Complete\");\n }\n\n get successMessage(): string {\n return this.props.storage.t(\"ExtraSalary:SelectionTableView.Success\");\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PickExtraSalaryTableView);\n","import React from \"react\";\nimport SelectionTableViewBase from \"../../../components/smart/SelectionTableViewBase\";\nimport { withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\n\n\nclass PickSalaryComponentTableView extends SelectionTableViewBase {\n get secondaryTitle(): string {\n return this.props.storage.t(\"SalaryComponent:SelectionTableView.Title\");\n }\n\n get selectionConfirmText(): string {\n return this.props.storage.t(\"SalaryComponent:SelectionTableView.Complete\");\n }\n\n get successMessage(): string {\n return this.props.storage.t(\"SalaryComponent:SelectionTableView.Success\");\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(PickSalaryComponentTableView);\n","import { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { ActionType, addNewLineItem, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n IPrEmploymentEntity,\n IPrEmploymentExtraSalaryEntity,\n IPrEmploymentTemplateEntity,\n IPrEmploymentTemplateExtraSalaryEntity,\n IPrEmploymentTemplateSalaryComponentEntity,\n IPrExtraSalaryEntity,\n IPrSalaryComponentEntity,\n PrEmploymentEntity,\n PrEmploymentTemplateEntity,\n PrEmploymentTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n handleCurrentTemporalPropChange,\n handleTemporalLineItemsActions,\n TemporalEntityProp,\n TTemporalLineItem\n} from \"@odata/TemporalUtils\";\nimport React from \"react\";\n\nimport SelectionTableViewDialog from \"../../../components/smart/SelectionTableViewDialog\";\nimport { FormMode } from \"../../../enums\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { loadAndStoreRanges, setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport { IGetDefinition } from \"../../PageUtils\";\nimport {\n createDefaultLegislativeExtraSalaryItems,\n createNewExtraSalaryItemFromDefault,\n createNewSalaryComponentItemFromDefault,\n DialogType,\n ExtraSalaryTogglePath,\n initWithPayrollSettings,\n isLegislativeExtraSalaryItem,\n LegislativeExtraSalaryLocalPath,\n TEmploymentLineItemProp\n} from \"../employment/Employment.utils\";\nimport { getDefinitionsFactory as getPickExtraSalaryDefinitionsFactory } from \"../extraSalary/ExtraSalary.def\";\nimport PickExtraSalaryTableView from \"../extraSalary/PickExtraSalaryTableView\";\nimport PickSalaryComponentTableView from \"../salaryComponent/PickSalaryComponentTableView\";\nimport {\n getDefinitionsFactory as getPickSalaryComponentDefinitionsFactory\n} from \"../salaryComponent/SalaryComponent.def\";\n\n\ntype IEmploymentBaseEntity = IPrEmploymentTemplateEntity | IPrEmploymentEntity;\n\ninterface IProps extends IFormViewProps {\n}\n\nabstract class EmploymentBaseFormView extends FormViewForExtend {\n _dialogType: DialogType = null;\n\n constructor(props: Props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleLineItemsChange = this.handleLineItemsChange.bind(this);\n this.handleExtraSalarySelection = this.handleExtraSalarySelection.bind(this);\n this.handleSalaryComponentSelection = this.handleSalaryComponentSelection.bind(this);\n }\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n const isNew = storage.data.bindingContext.isNew();\n\n\n if (!isAuditTrail) {\n const promises: Promise[] = [];\n\n if (!storage.data.entity.NumberOurs) {\n promises.push(setMatchingNumberRange(storage, true));\n } else {\n promises.push(loadAndStoreRanges(storage));\n }\n\n storage.setValueByPath(LegislativeExtraSalaryLocalPath, false);\n const customExtraSalary = storage.getValueByPath(PrEmploymentEntity.ExtraSalaries)?.find((item: IPrEmploymentExtraSalaryEntity) =>\n !isLegislativeExtraSalaryItem(item));\n storage.setValueByPath(ExtraSalaryTogglePath, !!customExtraSalary);\n\n if (isNew) {\n promises.push(createDefaultLegislativeExtraSalaryItems(storage));\n promises.push(initWithPayrollSettings(storage));\n }\n await Promise.all(promises);\n }\n\n return super.onAfterLoad();\n };\n\n handleNumberRangeChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === \"NumberRange\") {\n this.props.storage.data.entity.NumberRange = e.value ? e.additionalData : null;\n }\n };\n\n handleWorkingPatternChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === PrEmploymentTemporalEntity.WorkingPattern && e.triggerAdditionalTasks) {\n this.props.storage.refresh();\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n this.props.storage.handleChange(e);\n handleCurrentTemporalPropChange(e, this.props.storage);\n\n this.handleNumberRangeChange(e);\n\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n\n this.handleWorkingPatternChange(e);\n }\n\n handleLineItemsChange(e: ISmartFieldChange): void {\n this.props.storage.handleLineItemsChange(e);\n\n const lineItemBc = e.bindingContext.getParent().getParent();\n const lineItemTemporalBagBc = lineItemBc.navigate(TemporalEntityProp.TemporalPropertyBag);\n const temporalBagPath = lineItemTemporalBagBc.getNavigationPath(false, lineItemTemporalBagBc);\n handleCurrentTemporalPropChange(e, this.props.storage, temporalBagPath);\n\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n }\n\n handleSmartTemporalPropertyDialogChange(args: ISmartFieldChange): void {\n if (args.bindingContext.getPath() === PrEmploymentTemporalEntity.WorkingPattern) {\n this.props.storage.addActiveField(args.bindingContext.getParent().navigate(PrEmploymentTemporalEntity.LeaveDays));\n }\n }\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n const { storage } = this.props;\n\n if (args.actionType === ActionType.Custom) {\n switch (args.customActionType) {\n case DialogType.SalaryComponent:\n case DialogType.ExtraSalary:\n // const { storage } = this.props;\n this._dialogType = args.customActionType as DialogType;\n break;\n\n default:\n throw new Error(`Unknown custom actionType ${args.customActionType}`);\n }\n this.forceUpdate();\n } else {\n handleTemporalLineItemsActions(storage, args as ISmartFastEntriesActionEvent);\n }\n };\n\n handleExtraSalarySelection(selected: BindingContext[], entities: IPrExtraSalaryEntity[]): void {\n const { storage } = this.props;\n\n entities.forEach((entity, idx) => {\n const newExtraSalary = createNewExtraSalaryItemFromDefault(entity);\n addNewLineItem(storage, PrEmploymentTemplateEntity.ExtraSalaries, PrEmploymentTemplateEntity.ExtraSalaries, [], newExtraSalary);\n });\n\n storage.refresh();\n }\n\n handleSalaryComponentSelection(selected: BindingContext[], entities: IPrSalaryComponentEntity[]): void {\n const { storage } = this.props;\n\n entities.forEach((entity: IPrSalaryComponentEntity, idx) => {\n const newSalaryComponent = createNewSalaryComponentItemFromDefault(entity);\n addNewLineItem(storage, PrEmploymentTemplateEntity.SalaryComponents, PrEmploymentTemplateEntity.SalaryComponents, [], newSalaryComponent);\n });\n\n storage.refresh();\n }\n\n handleCloseDialog = (): void => {\n this._dialogType = null;\n this.forceUpdate();\n };\n\n abstract getHeaderData: () => IReadOnlyListItem[];\n\n abstract get readOnlyListTitle(): string;\n\n getAlreadySelectedItemIds(propName: TEmploymentLineItemProp): number[] {\n const { entity } = this.props.storage.data;\n const ids: number[] = [];\n entity[propName]?.forEach(comp => {\n if (comp?.Default?.Id) {\n ids.push(comp?.Default?.Id);\n }\n });\n return ids;\n }\n\n renderDialog(): React.ReactElement {\n const { storage } = this.props;\n let tableView;\n let getDef: IGetDefinition;\n let onSelection: (selected: BindingContext[], entities: IEntity[]) => void;\n\n switch (this._dialogType) {\n case DialogType.SalaryComponent:\n tableView = PickSalaryComponentTableView;\n getDef = getPickSalaryComponentDefinitionsFactory(true, this.getAlreadySelectedItemIds(PrEmploymentEntity.SalaryComponents));\n onSelection = this.handleSalaryComponentSelection;\n break;\n\n case DialogType.ExtraSalary:\n tableView = PickExtraSalaryTableView;\n getDef = getPickExtraSalaryDefinitionsFactory(true, this.getAlreadySelectedItemIds(PrEmploymentEntity.ExtraSalaries));\n onSelection = this.handleExtraSalarySelection;\n break;\n\n default:\n // possible wrong configuration or no dialog configured\n return null;\n }\n return (\n \n );\n }\n\n render() {\n const content = super.render();\n\n return (<>\n {content}\n {this.renderDialog()}\n );\n }\n}\n\nexport default EmploymentBaseFormView;","import styled from \"styled-components/macro\";\nimport CollapsibleSection from \"../../../components/collapsibleSection/CollapsibleSection\";\nimport { TopWrapper } from \"@components/collapsibleSection/CollapsibleSection.styles\";\n\n\nexport const CollapsibleSectionStyled = styled(CollapsibleSection)`\n ${TopWrapper} {\n margin-bottom: 0;\n }\n`;\n\nexport const LegislativeExtraSalariesSmartFastEntryListStyled = styled.div`\n display: block;\n width: 100%;\n`;","import React, { useCallback } from 'react';\nimport { CollapsibleSectionStyled } from \"./ExtraSalary.styles\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IPrEmploymentTemplateEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldRenderProps } from \"@components/smart/smartField/SmartField\";\n\ninterface IProps extends ISmartFieldRenderProps {\n}\n\nconst CollapsibleSectionToggleField: React.FC = ({ parentProps, value }) => {\n const storage = parentProps.storage as FormStorage;\n const { bindingContext } = parentProps;\n\n const handleToggle = useCallback((isExpanded: boolean) => {\n storage.setValue(bindingContext, !isExpanded);\n // todo: maybe refresh just the group where the field is added??\n storage.refresh();\n }, [storage, bindingContext]);\n\n const info = storage.getInfo(parentProps.bindingContext);\n\n return (\n \n );\n};\n\nexport default CollapsibleSectionToggleField;","import React, { useCallback } from \"react\";\nimport { ISmartFieldRenderProps } from \"@components/smart/smartField/SmartField\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { IPrEmploymentTemplateEntity, PrEmploymentTemplateEntity } from \"@odata/GeneratedEntityTypes\";\nimport SmartFastEntryList from \"../../../components/smart/smartFastEntryList\";\nimport { LegislativeExtraSalariesSmartFastEntryListStyled } from \"./ExtraSalary.styles\";\nimport CollapsibleSection from \"../../../components/collapsibleSection/CollapsibleSection\";\nimport { ExtraSalaryGrpId, isLegislativeExtraSalary } from \"../employment/Employment.utils\";\n\ninterface IProps extends ISmartFieldRenderProps {\n}\n\nconst LegislativeExtraSalariesSmartFastEntryList: React.FC = ({ parentProps, value }) => {\n const storage = parentProps.storage as FormStorage;\n const { definition, bindingContext: dataBindingContext } = storage.data;\n const { bindingContext } = parentProps;\n\n const handleToggle = useCallback((isExpanded: boolean) => {\n storage.setValue(bindingContext, !isExpanded);\n storage.refreshFields(true);\n }, [storage, bindingContext]);\n\n const info = storage.getInfo(parentProps.bindingContext);\n const groupDef = definition.groups.find(grp => grp.id === ExtraSalaryGrpId);\n\n return (\n \n \n {value && (\n {\n return items.filter(item => isLegislativeExtraSalary({ item }));\n }}\n order={\"Id\"}\n />\n )}\n \n );\n};\n\nexport default LegislativeExtraSalariesSmartFastEntryList;","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { IPrEmploymentTemplateEntity, PrEmploymentTemplateEntity } from \"@odata/GeneratedEntityTypes\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { formatHeaderValue } from \"@components/readOnlyList/ReadOnlyList\";\nimport EmploymentBaseFormView from \"./EmploymentBaseFormView\";\nimport { IReadOnlyListItem } from \"@components/readOnlyList/ReadOnlyListItem\";\nimport { IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { cloneDeep } from \"lodash\";\nimport { onBeforeSave } from \"../employment/Employment.utils\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass EmploymentTemplateFormView extends EmploymentBaseFormView {\n static contextType = AppContext;\n static defaultProps = {\n title: \"Employment:Template.FormTitle\"\n };\n\n getHeaderData = (): IReadOnlyListItem[] => {\n const { storage } = this.props;\n const { bindingContext, entity } = storage.data;\n\n return [\n {\n label: storage.getInfo(bindingContext.navigate(PrEmploymentTemplateEntity.Name)).label,\n value: formatHeaderValue(entity.Name)\n }\n ];\n };\n\n get readOnlyListTitle(): string {\n return this.props.storage.t(\"Employment:Template.TitleSingular\");\n }\n\n onBeforeSave = (): IEntity => {\n const { storage } = this.props;\n\n const entity = cloneDeep(storage.data.entity);\n\n return onBeforeSave(storage, entity);\n };\n}\n\nexport default withPermissionContext(EmploymentTemplateFormView);","import {\n getDaysUnit,\n ifAll,\n IFieldDefFn,\n IGetValueArgs,\n not,\n TTemporalDialogSettings\n} from \"@components/smart/FieldInfo\";\nimport { ActionButtonPosition } from \"@components/smart/smartFastEntryList\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrEmploymentTemplateEntity,\n IPrWorkingPatternEntity,\n PrEmploymentEntity,\n PrEmploymentExtraSalaryEntity,\n PrEmploymentExtraSalaryTemporalCurrentEntity,\n PrEmploymentExtraSalaryTemporalEntity,\n PrEmploymentSalaryComponentEntity,\n PrEmploymentSalaryComponentTemporalCurrentEntity,\n PrEmploymentSalaryComponentTemporalEntity,\n PrEmploymentTemplateEntity,\n PrEmploymentTemplateExtraSalaryEntity,\n PrEmploymentTemplateExtraSalaryTemporalCurrentEntity,\n PrEmploymentTemplateExtraSalaryTemporalEntity,\n PrEmploymentTemplateSalaryComponentEntity,\n PrEmploymentTemplateSalaryComponentTemporalCurrentEntity,\n PrEmploymentTemplateSalaryComponentTemporalEntity,\n PrEmploymentTemplateTemporalEntity,\n PrEmploymentTemporalEntity,\n PrExtraSalaryComputationTypeEntity,\n PrExtraSalaryEntity,\n PrSalaryComponentEntity,\n PrSalaryComponentTypeEntity,\n PrWorkingPatternDayEntity,\n PrWorkingPatternEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n PrExtraSalaryComputationTypeCode,\n PrSalaryComponentTypeCode,\n PrWorkingPatternTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport {\n getTemporalAdditionalProperties,\n getTemporalPropertyFieldDefinition,\n getTemporalPropertyLineItemFieldDefinition,\n TemporalValidityFieldsDef\n} from \"@odata/TemporalUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport Big from \"big.js\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport { BasicInputSizes, FastEntryInputSizes, FieldType, LabelStatus, NavigationSource, Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport CurrencyType, { formatCurrency } from \"../../../types/Currency\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport {\n getNumberOursSummaryDef,\n getNumberRangeFieldDefs,\n NumberRangeAdditionalProperties\n} from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition, TFieldsDefinition } from \"../../PageUtils\";\nimport {\n DialogType,\n EmploymentTranslationFiles,\n ExtraSalaryGrpId,\n ExtraSalaryTogglePath,\n getExtractHistoryFromTemplateFn,\n getExtraSalaryTemporalDialogSettings,\n getSalaryComponentTemporalDialogSettings,\n isLegislativeExtraSalary,\n isLegislativeExtraSalaryItem,\n LegislativeExtraSalaryLocalPath,\n SalaryComponentGrpId\n} from \"../employment/Employment.utils\";\nimport CollapsibleSectionToggleField from \"../extraSalary/CollapsibleSectionToggleField\";\nimport { getExtraSalaryValueUnit } from \"../extraSalary/ExtraSalary.utils\";\nimport LegislativeExtraSalariesSmartFastEntryList from \"../extraSalary/LegislativeExtraSalariesSmartFastEntryList\";\nimport EmploymentTemplateFormView from \"./EmploymentTemplateFormView\";\n\n\nfunction getLineItemBindingContext(bc: BindingContext, collectionName: string): BindingContext {\n do {\n bc = bc.getParent();\n } while (bc.getPath(true) !== collectionName);\n return bc;\n}\n\n// function isLineItemWithoutDefault(collectionName: string, { storage, bindingContext }: IGetValueArgs): boolean {\n// const lineItemBc = getLineItemBindingContext(bindingContext, collectionName);\n// const lineItem = storage.getValue(lineItemBc);\n// return lineItem && (isNotDefined(lineItem.Default) || isEmpty(lineItem.Default));\n// }\n\n// const isExtraSalaryWithoutDefault = isLineItemWithoutDefault.bind(null, PrEmploymentTemplateEntity.ExtraSalaries);\n// const isSalaryComponentWithoutDefault = isLineItemWithoutDefault.bind(null, PrEmploymentTemplateEntity.SalaryComponents);\n\nexport function isPartOfLegislativeExtraSalaryItem({ storage, bindingContext }: IGetValueArgs): boolean {\n const bc = getLineItemBindingContext(bindingContext, PrEmploymentTemplateEntity.ExtraSalaries);\n return isLegislativeExtraSalary({ storage, bindingContext: bc });\n}\n\nfunction areExtraSalariesToggled({ storage }: IGetValueArgs): boolean {\n return storage.getValueByPath(ExtraSalaryTogglePath);\n}\n\nconst leaveDaysTemporalDialogSettings: TTemporalDialogSettings = {\n columns: [\n PrEmploymentTemporalEntity.LeaveDays,\n PrEmploymentTemporalEntity.WorkingPattern\n ]\n};\n\n\n// TODO: remove after this is merged https://dev.azure.com/soliteacr/IRIS/_git/IRIS/pullrequest/25244?_a=files&path=/WebApp/ClientApp/src/pages/payroll/attendance/Attendance.utils.tsx\nconst getHoursFromTimeStamp = (timeStamp: Date): number => {\n return getUtcDayjs(timeStamp).get(\"hours\") + roundToDecimalPlaces(3, getUtcDayjs(timeStamp).get(\"minutes\") / 60);\n};\n\nexport const getCommonEmploymentDefs = (isTemplate: boolean): TFieldsDefinition => {\n\n const tmpFieldsDef = { ...TemporalValidityFieldsDef };\n\n const TemporalEntity = isTemplate ? PrEmploymentTemplateTemporalEntity : PrEmploymentTemporalEntity;\n const MainEntity = isTemplate ? PrEmploymentTemplateEntity : PrEmploymentEntity;\n const SalaryComponentTemporalEntity = isTemplate ? PrEmploymentTemplateSalaryComponentTemporalEntity : PrEmploymentSalaryComponentTemporalEntity;\n const ExtraSalaryTemporalEntity = isTemplate ? PrEmploymentTemplateExtraSalaryTemporalEntity : PrEmploymentExtraSalaryTemporalEntity;\n\n return {\n ...getTemporalPropertyFieldDefinition({\n propName: TemporalEntity.LeaveDays,\n definition: {\n width: BasicInputSizes.M,\n additionalProperties: [{\n id: `/${createPath(PrEmploymentTemplateEntity.TemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern, PrWorkingPatternEntity.TypeCode)}`\n }, {\n id: `/${createPath(PrEmploymentTemplateEntity.TemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern, PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.WorkingHours)}`\n }, {\n id: `/${createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern, PrWorkingPatternEntity.TypeCode)}`\n }, {\n id: `/${createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern, PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.WorkingHours)}`\n }],\n fieldSettings: {\n unit: ({ storage, bindingContext }): string => {\n const workingPattern = storage.getValue(bindingContext.getParent())?.WorkingPattern as IPrWorkingPatternEntity;\n if (workingPattern?.TypeCode !== PrWorkingPatternTypeCode.Weekly) {\n return DASH_CHARACTER;\n }\n\n let workDaysCounter = 0;\n const workHours = workingPattern.Days.reduce((hours, day): number => {\n const workingHours = getHoursFromTimeStamp(day.WorkingHours);\n if (workingHours > 0) {\n workDaysCounter++;\n return new Big(hours).add(workingHours).toNumber();\n }\n return hours;\n }, 0);\n\n if (!workDaysCounter) {\n return DASH_CHARACTER;\n }\n const leaveDays = storage.getValue(bindingContext) ?? 0;\n const hours = isNaN(leaveDays) ? DASH_CHARACTER : roundToDecimalPlaces(1, new Big(workHours).div(workDaysCounter).mul(leaveDays).toNumber());\n return storage.t(\"Employment:TemplateForm.LeaveDaysUnit\", { hours }).toString();\n },\n temporalDialog: {\n ...leaveDaysTemporalDialogSettings,\n dialogTitle: i18next.t(\"Employment:TemplateForm.PlanLeaveDaysChange\"),\n extractHistory: getExtractHistoryFromTemplateFn(TemporalEntity.LeaveDays)\n }\n }\n },\n isSynchronized: true\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: TemporalEntity.SickDays,\n definition: {\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: getDaysUnit,\n temporalDialog: {\n dialogTitle: i18next.t(\"Employment:TemplateForm.PlanSickDaysChange\"),\n extractHistory: getExtractHistoryFromTemplateFn(TemporalEntity.SickDays)\n }\n }\n },\n isSynchronized: true\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: TemporalEntity.WorkingPattern,\n definition: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n fieldSettings: {\n displayName: \"Name\",\n shouldDisplayAdditionalColumns: true,\n preloadItems: true,\n temporalDialog: {\n ...leaveDaysTemporalDialogSettings,\n dialogTitle: i18next.t(\"Employment:TemplateForm.PlanWorkingPatternChange\"),\n extractHistory: getExtractHistoryFromTemplateFn(TemporalEntity.WorkingPattern)\n },\n additionalProperties: [{\n id: PrWorkingPatternEntity.TypeCode\n }, {\n id: createPath(PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.WorkingHours)\n }],\n localDependentFields: [\n {\n from: { id: PrWorkingPatternEntity.Days }, to: { id: PrWorkingPatternEntity.Days },\n navigateFrom: NavigationSource.Itself\n },\n {\n from: { id: PrWorkingPatternEntity.TypeCode }, to: { id: PrWorkingPatternEntity.TypeCode },\n navigateFrom: NavigationSource.Itself\n }\n ]\n },\n columns: [\n { id: \"Name\" },\n { id: \"Type/Name\" }\n ]\n },\n isSynchronized: !isTemplate\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.SalaryComponents,\n propName: SalaryComponentTemporalEntity.Name,\n definition: {\n width: FastEntryInputSizes.M,\n fieldSettings: {\n temporalDialog: getSalaryComponentTemporalDialogSettings()\n }\n // isRequired: isSalaryComponentWithoutDefault\n },\n isSynchronized: true\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.SalaryComponents,\n propName: SalaryComponentTemporalEntity.Type,\n definition: {\n type: FieldType.ComboBox,\n width: FastEntryInputSizes.S,\n defaultValue: PrSalaryComponentTypeCode.Monthly,\n fieldSettings: {\n displayName: PrSalaryComponentTypeEntity.Name\n }\n // isRequired: isSalaryComponentWithoutDefault\n },\n withOpeningButton: false,\n isSynchronized: true\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.SalaryComponents,\n propName: SalaryComponentTemporalEntity.Amount,\n definition: {\n width: FastEntryInputSizes.S,\n fieldSettings: {\n unit: args => CurrencyType.getCurrencyUnit(getCompanyCurrency(args.context)),\n temporalDialog: getSalaryComponentTemporalDialogSettings()\n },\n additionalProperties: [\n { id: `/${MainEntity.SalaryComponents}/${PrSalaryComponentEntity.TemporalPropertyBag}/${SalaryComponentTemporalEntity.Name}` },\n { id: `/${MainEntity.SalaryComponents}/${PrSalaryComponentEntity.TemporalPropertyBag}/${SalaryComponentTemporalEntity.Type}` },\n { id: `/${MainEntity.SalaryComponents}/${PrSalaryComponentEntity.TemporalPropertyBag}/${SalaryComponentTemporalEntity.Amount}` }\n ]\n // isRequired: isSalaryComponentWithoutDefault\n },\n withOpeningButton: true,\n isSynchronized: true\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.ExtraSalaries,\n propName: ExtraSalaryTemporalEntity.Name,\n definition: {\n width: BasicInputSizes.L,\n fieldSettings: {\n temporalDialog: getExtraSalaryTemporalDialogSettings()\n },\n isReadOnly: isPartOfLegislativeExtraSalaryItem\n // isRequired: isExtraSalaryWithoutDefault\n },\n isSynchronized: true\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.ExtraSalaries,\n propName: ExtraSalaryTemporalEntity.ComputationType,\n definition: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.XL,\n defaultValue: PrExtraSalaryComputationTypeCode.AverageHourlySalaryPercentage,\n fieldSettings: {\n displayName: PrExtraSalaryComputationTypeEntity.Name,\n temporalDialog: getExtraSalaryTemporalDialogSettings()\n },\n isReadOnly: isPartOfLegislativeExtraSalaryItem\n },\n isSynchronized: true\n }),\n ...getTemporalPropertyLineItemFieldDefinition({\n collectionName: MainEntity.ExtraSalaries,\n propName: ExtraSalaryTemporalEntity.Value,\n definition: {\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: getExtraSalaryValueUnit,\n temporalDialog: getExtraSalaryTemporalDialogSettings()\n },\n additionalProperties: [\n { id: `/${MainEntity.ExtraSalaries}/${PrExtraSalaryEntity.TemporalPropertyBag}/${ExtraSalaryTemporalEntity.Name}` },\n { id: `/${MainEntity.ExtraSalaries}/${PrExtraSalaryEntity.TemporalPropertyBag}/${ExtraSalaryTemporalEntity.ComputationType}` },\n { id: `/${MainEntity.ExtraSalaries}/${PrExtraSalaryEntity.TemporalPropertyBag}/${ExtraSalaryTemporalEntity.Value}` }\n ]\n // isRequired: isExtraSalaryWithoutDefault\n },\n withOpeningButton: true,\n isSynchronized: true\n }),\n [LegislativeExtraSalaryLocalPath]: {\n type: FieldType.Custom,\n label: i18next.t(\"Employment:TemplateForm.LegislativeExtraSalaries\"),\n labelStatus: LabelStatus.Removed,\n render: ({ props }: IFieldDefFn) => {\n return (\n \n );\n },\n customizationData: {\n useForCustomization: false\n }\n },\n [ExtraSalaryTogglePath]: {\n type: FieldType.Custom,\n label: i18next.t(\"Employment:TemplateForm.OwnExtraSalaries\"),\n render: ({ props }: IFieldDefFn) => (\n \n ),\n customizationData: {\n useForCustomization: false\n }\n },\n ...tmpFieldsDef\n };\n};\n\nexport const getCommonEmploymentGroupDef = (isTemplate: boolean): IFormGroupDef[] => {\n\n const TemporalEntity = isTemplate ? PrEmploymentTemplateTemporalEntity : PrEmploymentTemporalEntity;\n const MainEntity = isTemplate ? PrEmploymentTemplateEntity : PrEmploymentEntity;\n const SalaryComponentEntity = isTemplate ? PrEmploymentTemplateSalaryComponentEntity : PrEmploymentSalaryComponentEntity;\n const SalaryComponentTemporalCurrentEntity = isTemplate ? PrEmploymentTemplateSalaryComponentTemporalCurrentEntity : PrEmploymentSalaryComponentTemporalCurrentEntity;\n const ExtraSalaryEntity = isTemplate ? PrEmploymentTemplateExtraSalaryEntity : PrEmploymentExtraSalaryEntity;\n const ExtraSalaryTemporalCurrentEntity = isTemplate ? PrEmploymentTemplateExtraSalaryTemporalCurrentEntity : PrEmploymentExtraSalaryTemporalCurrentEntity;\n\n return [{\n id: SalaryComponentGrpId,\n title: i18next.t(\"Employment:TemplateForm.SalaryComponents\"),\n showGroupDivider: false,\n lineItems: {\n collection: MainEntity.SalaryComponents,\n order: \"Id\",\n temporalDialog: getSalaryComponentTemporalDialogSettings(),\n columns: [\n { id: createPath(SalaryComponentEntity.CurrentTemporalPropertyBag, SalaryComponentTemporalCurrentEntity.Name) },\n { id: createPath(SalaryComponentEntity.CurrentTemporalPropertyBag, SalaryComponentTemporalCurrentEntity.Type) },\n { id: createPath(SalaryComponentEntity.CurrentTemporalPropertyBag, SalaryComponentTemporalCurrentEntity.Amount) }\n ],\n canReorder: false,\n isItemCloneable: false,\n isAddButtonTransparent: true,\n isTheOnlyItemRemovable: true,\n customActionButtons: [{\n id: DialogType.SalaryComponent,\n title: i18next.t(\"Employment:TemplateForm.Pick\"),\n position: ActionButtonPosition.Before,\n isTransparent: false\n }]\n }\n }, {\n id: ExtraSalaryGrpId,\n title: i18next.t(\"Employment:TemplateForm.ExtraSalaries\"),\n showGroupDivider: false,\n rows: [\n [{ id: LegislativeExtraSalaryLocalPath }],\n [{ id: ExtraSalaryTogglePath }]\n ],\n lineItems: {\n collection: MainEntity.ExtraSalaries,\n order: \"Id\",\n temporalDialog: getExtraSalaryTemporalDialogSettings(),\n columns: [\n { id: createPath(ExtraSalaryEntity.CurrentTemporalPropertyBag, ExtraSalaryTemporalCurrentEntity.Name) },\n { id: createPath(ExtraSalaryEntity.CurrentTemporalPropertyBag, ExtraSalaryTemporalCurrentEntity.ComputationType) },\n { id: createPath(ExtraSalaryEntity.CurrentTemporalPropertyBag, ExtraSalaryTemporalCurrentEntity.Value) }\n ],\n additionalFields: [\n { id: createPath(ExtraSalaryEntity.Default, PrExtraSalaryEntity.BaseTypeCode) }\n ],\n canAdd: areExtraSalariesToggled,\n canReorder: false,\n isItemCloneable: false,\n // LegislativeExtraSalaries are rendered separately, so they can be collapsed\n isItemVisible: ifAll(not(isLegislativeExtraSalary), areExtraSalariesToggled),\n isAddButtonTransparent: true,\n isTheOnlyItemRemovable: true,\n customActionButtons: [{\n id: DialogType.ExtraSalary,\n title: i18next.t(\"Employment:TemplateForm.Pick\"),\n position: ActionButtonPosition.Before,\n isTransparent: false,\n isVisible: areExtraSalariesToggled\n }]\n }\n }, {\n id: \"workingTime\",\n title: i18next.t(\"Employment:TemplateForm.WorkingTime\"),\n rows: [[\n { id: createPath(MainEntity.CurrentTemporalPropertyBag, TemporalEntity.WorkingPattern) }\n ]]\n }, {\n id: \"absence\",\n title: i18next.t(\"Employment:TemplateForm.AbsenceValues\"),\n rows: [[\n { id: createPath(MainEntity.CurrentTemporalPropertyBag, TemporalEntity.LeaveDays) },\n { id: createPath(MainEntity.CurrentTemporalPropertyBag, TemporalEntity.SickDays) }\n ]]\n }\n ];\n};\n\nconst hasOwnExtraSalariesPath = BindingContext.localContext(\"hasOwnExtraSalaries\");\nconst monthAmountSumPath = BindingContext.localContext(\"monthAmountSum\");\nconst hourAmountSumPath = BindingContext.localContext(\"hourAmountSum\");\n\nconst tableAmountFormatter = (typeCode: PrSalaryComponentTypeCode) => {\n return (val: TValue, args: IFormatOptions) => {\n const value = (args.entity as IPrEmploymentTemplateEntity).SalaryComponents?.reduce((acc, curr) => {\n if (curr.CurrentTemporalPropertyBag?.TypeCode === typeCode) {\n acc += curr.CurrentTemporalPropertyBag.Amount;\n }\n return acc;\n }, 0);\n return formatCurrency(value ?? 0, getCompanyCurrency(args.context));\n };\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrEmploymentTemplate}Table`,\n additionalProperties: [{\n id: createPath(PrEmploymentTemplateEntity.ExtraSalaries, PrEmploymentTemplateExtraSalaryEntity.Default, PrExtraSalaryEntity.TypeCode)\n }, {\n id: createPath(PrEmploymentTemplateEntity.SalaryComponents, PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrEmploymentSalaryComponentTemporalCurrentEntity.Amount)\n }, {\n id: createPath(PrEmploymentTemplateEntity.SalaryComponents, PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrEmploymentSalaryComponentTemporalCurrentEntity.TypeCode)\n }],\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrEmploymentTemplateEntity.NumberOurs,\n PrEmploymentTemplateEntity.Name,\n createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern)\n ],\n filterDefinition: {\n [PrEmploymentTemplateEntity.NumberOurs]: {},\n [PrEmploymentTemplateEntity.Name]: {},\n [createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern)]: {\n fieldSettings: {\n displayName: PrWorkingPatternEntity.Name\n }\n }\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrEmploymentTemplateEntity.NumberOurs, sort: Sort.Asc }],\n columns: [\n PrEmploymentTemplateEntity.NumberOurs,\n PrEmploymentTemplateEntity.Name,\n createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern),\n hasOwnExtraSalariesPath,\n monthAmountSumPath,\n hourAmountSumPath\n ],\n columnDefinition: {\n [PrEmploymentTemplateEntity.NumberOurs]: {},\n [PrEmploymentTemplateEntity.Name]: {},\n [createPath(PrEmploymentTemplateEntity.CurrentTemporalPropertyBag, PrEmploymentTemplateTemporalEntity.WorkingPattern)]: {\n fieldSettings: {\n displayName: PrWorkingPatternEntity.Name\n }\n },\n [hasOwnExtraSalariesPath]: {\n label: i18next.t(\"Employment:TemplateTable.OwnExtraSalaries\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n const hasOwnExtraSalary = (args.entity as IPrEmploymentTemplateEntity).ExtraSalaries?.some(salary => !isLegislativeExtraSalaryItem(salary)) ?? false;\n return i18next.t(`Common:General.${hasOwnExtraSalary ? \"Yes\" : \"No\"}`).toString();\n }\n },\n [monthAmountSumPath]: {\n label: i18next.t(\"Employment:TemplateTable.MonthAmountSum\"),\n formatter: tableAmountFormatter(PrSalaryComponentTypeCode.Monthly)\n },\n [hourAmountSumPath]: {\n label: i18next.t(\"Employment:TemplateTable.HourAmountSum\"),\n formatter: tableAmountFormatter(PrSalaryComponentTypeCode.Hourly)\n }\n },\n title: i18next.t(\"Employment:Template.Title\")\n };\n\n const summary: ISummaryItem[] = [{\n ...getNumberOursSummaryDef(\"Employment\")\n }];\n const form: IFormDef = {\n id: `${EntityTypeName.PrEmploymentTemplate}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Employment:Template.New\"), i18next.t(\"Employment:Template.FormTitle\")),\n isDeletable: true,\n formControl: EmploymentTemplateFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrEmploymentTemplateTemporalEntity, PrEmploymentTemplateEntity),\n ...NumberRangeAdditionalProperties,\n {\n id: PrEmploymentTemplateEntity.ExtraSalaries,\n additionalProperties: [\n {\n id: PrEmploymentTemplateExtraSalaryEntity.Default,\n additionalProperties: [\n { id: PrExtraSalaryEntity.TypeCode },\n { id: PrExtraSalaryEntity.BaseTypeCode }\n ]\n }\n ]\n },\n {\n id: PrEmploymentTemplateEntity.SalaryComponents,\n additionalProperties: [\n { id: PrEmploymentTemplateSalaryComponentEntity.Default }\n ]\n }\n ],\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"Employment\"),\n [PrEmploymentTemplateEntity.Name]: {\n width: BasicInputSizes.XL\n },\n ...getCommonEmploymentDefs(true)\n },\n groups: [\n {\n id: \"main\",\n rows: [[\n { id: PrEmploymentTemplateEntity.Name }\n ]]\n },\n ...getCommonEmploymentGroupDef(true)\n ]\n };\n return {\n entitySet: EntitySetName.PrEmploymentTemplates,\n table,\n form\n };\n};\ngetDefinitions.translationFiles = [...EmploymentTranslationFiles];\nsetDefByEntityType(EntityTypeName.PrEmploymentTemplate, getDefinitions);","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrExtraSalaryEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { handleCurrentTemporalPropChange } from \"@odata/TemporalUtils\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { cloneDeep } from \"lodash\";\nimport { PrBaseTypeCode, PrExtraSalaryTypeCode } from \"@odata/GeneratedEnums\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass ExtraSalaryFormView extends FormViewForExtend {\n static contextType = AppContext;\n static defaultProps = {\n title: \"ExtraSalary:FormTitle\"\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n handleCurrentTemporalPropChange(e, this.props.storage);\n this.props.storage.refresh();\n };\n\n onBeforeSave(): IPrExtraSalaryEntity {\n const entity = cloneDeep(this.entity);\n\n if (entity.BaseTypeCode === PrBaseTypeCode.Custom) {\n entity.TypeCode = PrExtraSalaryTypeCode.Custom;\n }\n\n return entity;\n }\n}\n\nexport default withPermissionContext(ExtraSalaryFormView);","import { IGetValueArgs, not, TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrExtraSalaryEntity,\n PrBaseTypeEntity,\n PrExtraSalaryEntity,\n PrExtraSalaryTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrBaseTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue, getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions, transformToODataString } from \"@odata/OData.utils\";\nimport {\n getTemporalAdditionalProperties,\n getTemporalPropertyFieldDefinition,\n TemporalValidityFieldsDef\n} from \"@odata/TemporalUtils\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FastEntryInputSizes, FieldType, GroupedField, Sort, ValueType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef, ITableDefTabData } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { extraSalaryValueFormatter, getExtraSalaryValueUnit } from \"./ExtraSalary.utils\";\nimport ExtraSalaryFormView from \"./ExtraSalaryFormView\";\n\n// we want to show Type value in SmartTemporalPropertyDialog,\n// even though it is not a temporal value => use local context\nconst FakeTypePath = BindingContext.localContext(\"Type\");\n\n\nfunction isCustom(args: IGetValueArgs): boolean {\n const entity = args.storage.data.entity as IPrExtraSalaryEntity;\n\n return entity?.BaseType?.Code === PrBaseTypeCode.Custom;\n}\n\nexport const getDefinitionsFactory = (inEditableWindow?: boolean, selectedIds?: number[]): IGetDefinition => {\n const getDefinitions: IGetDefinition = (): IDefinition => {\n\n const preventStoreVariant = inEditableWindow;\n\n let filter: string;\n if (selectedIds?.length) {\n filter = `not(${PrExtraSalaryEntity.Id} in (${transformToODataString(selectedIds, ValueType.Number)}))`;\n }\n\n const defaultTabs: ITableDefTabData[] = [\n { id: \"1\", title: i18next.t(\"ExtraSalary:Tabs.Paid\") },\n { id: \"2\", title: i18next.t(\"ExtraSalary:Tabs.Unpaid\") },\n { id: null, title: i18next.t(\"ExtraSalary:Tabs.All\") }\n ];\n const tabs: ITableDefTabData[] = inEditableWindow ? null : defaultTabs;\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrExtraSalary}Table`,\n preventStoreVariant,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Name),\n PrExtraSalaryEntity.BaseType,\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Value),\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.ComputationType)\n ],\n filterDefinition: {\n [PrExtraSalaryEntity.BaseType]: {\n fieldSettings: {\n displayName: PrBaseTypeEntity.Name\n }\n },\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Name)]: {},\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Value)]: {},\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.ComputationType)]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n }\n },\n isValueHelp: true\n }],\n filter,\n initialSortBy: [{ id: PrExtraSalaryEntity.BaseType, sort: Sort.Desc }],\n columns: [\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Name),\n PrExtraSalaryEntity.BaseType,\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Value),\n createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.ComputationType)\n ],\n columnDefinition: {\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Name)]: {},\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Value)]: {\n formatter: extraSalaryValueFormatter\n },\n [createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.ComputationType)]: {\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n [PrExtraSalaryEntity.BaseType]: {\n fieldSettings: {\n displayName: PrBaseTypeEntity.Name\n }\n }\n },\n title: i18next.t(\"ExtraSalary:Title\"),\n tabs,\n tabsSettings: {}\n };\n const summary: ISummaryItem[] = [];\n const temporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"ExtraSalary:Form.PlanExtraSalaryTitle\"),\n columns: [\n PrExtraSalaryTemporalEntity.Name,\n FakeTypePath,\n PrExtraSalaryTemporalEntity.ComputationType,\n PrExtraSalaryTemporalEntity.Value\n ]\n };\n\n const tmpFieldsDef = { ...TemporalValidityFieldsDef };\n\n tmpFieldsDef[\"TemporalPropertyBag/DateValidFrom\"].isReadOnly = (args: IGetValueArgs) => {\n const custom = isCustom(args);\n const formStorage = args.storage as FormStorage;\n\n // called from multiple different context in SmartFastEntryList (for both field and column itself)\n // return when parent doesn't have key => meaning its column check, so that we don't disable the whole column\n // todo better solution/check\n if (custom || isNotDefined(args.bindingContext.getParent().getKey())) {\n return false;\n }\n\n const isSaved = !!args.storage.getValue(args.bindingContext.getParent(), { dataStore: formStorage.data.origEntity });\n\n return isSaved;\n };\n tmpFieldsDef[\"TemporalPropertyBag/DateValidTo\"].isDisabled = not(isCustom);\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrExtraSalary}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"ExtraSalary:New\"), i18next.t(\"ExtraSalary:FormTitle\")),\n isDeletable: true,\n formControl: ExtraSalaryFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrExtraSalaryTemporalEntity, PrExtraSalaryEntity)\n ],\n fieldDefinition: {\n [createPath(\"TemporalPropertyBag\", FakeTypePath)]: {\n label: i18next.t(\"ExtraSalary:Form.Type\"),\n isReadOnly: true,\n formatter: (val: TValue, args: IFormatOptions) => {\n const entity = args.storage.data.entity as IPrExtraSalaryEntity;\n const type = entity.BaseTypeCode;\n\n return getEnumDisplayValue(EntityTypeName.PrBaseType, type);\n }\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrExtraSalaryTemporalEntity.Name,\n definition: {\n width: FastEntryInputSizes.M,\n isReadOnly: not(isCustom),\n groupedField: GroupedField.MultiStart,\n fieldSettings: {\n temporalDialog: temporalDialogSettings\n }\n },\n withOpeningButton: false\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrExtraSalaryTemporalEntity.ComputationType,\n definition: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n temporalDialog: temporalDialogSettings\n },\n isReadOnly: not(isCustom)\n },\n withOpeningButton: false\n }),\n [PrExtraSalaryEntity.BaseType]: {\n width: BasicInputSizes.S,\n defaultValue: PrBaseTypeCode.Custom,\n type: FieldType.ComboBox,\n isReadOnly: true,\n fieldSettings: {\n displayName: PrBaseTypeEntity.Name\n }\n },\n ...getTemporalPropertyFieldDefinition({\n propName: PrExtraSalaryTemporalEntity.Value,\n definition: {\n fieldSettings: {\n unit: getExtraSalaryValueUnit,\n temporalDialog: temporalDialogSettings\n },\n groupedField: GroupedField.MultiEnd\n }\n }),\n ...tmpFieldsDef\n\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Name) },\n { id: PrExtraSalaryEntity.BaseType },\n { id: createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.ComputationType) },\n { id: createPath(PrExtraSalaryEntity.CurrentTemporalPropertyBag, PrExtraSalaryTemporalEntity.Value) }\n ]\n ]\n }\n ]\n };\n return {\n entitySet: EntitySetName.PrExtraSalaries,\n table,\n form\n };\n };\n getDefinitions.translationFiles = [\"ExtraSalary\", \"Common\", getEnumNameSpaceName(EntityTypeName.PrBaseType)];\n\n return getDefinitions;\n};\n\nexport const getDefinitions = getDefinitionsFactory();\n\nsetDefByEntityType(EntityTypeName.PrExtraSalary, getDefinitions);","import {\n EntitySetName,\n IPrEmploymentExtraSalaryEntity,\n IPrEmploymentTemplateExtraSalaryEntity,\n IPrExtraSalaryEntity,\n IPrExtraSalaryLegislativeValueEntity,\n PrExtraSalaryEntity,\n PrExtraSalaryLegislativeValueEntity,\n PrExtraSalaryTemporalCurrentEntity,\n PrExtraSalaryTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BatchRequest, isBatchResultOk } from \"@odata/OData\";\nimport {\n PrBaseTypeCode,\n PrEntityValueSourceCode,\n PrExtraSalaryComputationTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { createNewTemporalLineItem, TTemporal } from \"@odata/TemporalUtils\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { IGetValueArgs, TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport CurrencyType, { formatCurrency } from \"../../../types/Currency\";\nimport { TValue } from \"../../../global.types\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport NumberType from \"../../../types/Number\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\n\nexport async function createLegislativeExtraSalaries(storage: FormStorage, settings: TTemporalDialogSettings): Promise<(IPrEmploymentTemplateExtraSalaryEntity | IPrEmploymentExtraSalaryEntity)[]> {\n const batch: BatchRequest = storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n // legislative values\n batch.getEntitySetWrapper(EntitySetName.PrExtraSalaryLegislativeValues).query()\n .select(\n PrExtraSalaryLegislativeValueEntity.ExtraSalaryTypeCode,\n PrExtraSalaryLegislativeValueEntity.DateValidFrom,\n PrExtraSalaryLegislativeValueEntity.DateValidTo,\n );\n // preparedExtraSalaries, which are bound to legislative values\n batch.getEntitySetWrapper(EntitySetName.PrExtraSalaries)\n .query()\n .select(PrExtraSalaryEntity.Id, PrExtraSalaryEntity.TypeCode)\n .expand(PrExtraSalaryEntity.CurrentTemporalPropertyBag, (q) => {\n q.expand(PrExtraSalaryTemporalCurrentEntity.ComputationType);\n })\n .filter(`${PrExtraSalaryEntity.BaseTypeCode} eq '${PrBaseTypeCode.Legislative}'`);\n\n const results = await batch.execute();\n\n const templateExtraSalaries: IPrEmploymentTemplateExtraSalaryEntity[] = [];\n\n if (results.every(res => isBatchResultOk(res))) {\n const legislativeValues = (results[0].body as ODataQueryResult).value as IPrExtraSalaryLegislativeValueEntity[];\n const extraSalaries = (results[1].body as ODataQueryResult).value as IPrExtraSalaryEntity[];\n\n legislativeValues?.forEach((val, idx) => {\n // Each company can have custom setting of legislative values, configured through extraSalaty entity with\n const matchingSalary = extraSalaries\n .find(salary => salary.TypeCode === val.ExtraSalaryTypeCode);\n\n const templateExtraSalaryDefault: IPrEmploymentTemplateExtraSalaryEntity = {\n Default: {\n Id: matchingSalary.Id,\n BaseTypeCode: PrBaseTypeCode.Legislative\n },\n // copy current property bag, so there are visible current values on the form\n CurrentTemporalPropertyBag: {\n ...matchingSalary.CurrentTemporalPropertyBag,\n NameSourceCode: PrEntityValueSourceCode.Default,\n ComputationTypeSourceCode: PrEntityValueSourceCode.Default,\n ValueSourceCode: PrEntityValueSourceCode.Default,\n },\n };\n const defaultRange: TTemporal = {\n DateValidFrom: val.DateValidFrom,\n DateValidTo: val.DateValidTo\n };\n const templateExtraSalary = createNewTemporalLineItem(settings, templateExtraSalaryDefault, defaultRange);\n\n templateExtraSalaries.push(templateExtraSalary);\n });\n }\n\n return templateExtraSalaries;\n}\n\nexport const getExtraSalaryValueUnit = (args: IGetValueArgs): string => {\n const parentBc = args.bindingContext.getParent();\n const typeBc = parentBc.navigate(PrExtraSalaryTemporalEntity.ComputationType);\n const type = args.storage.getValue(typeBc);\n return type?.Code === PrExtraSalaryComputationTypeCode.AverageHourlySalaryPercentage ? \"%\" : CurrencyType.getCurrencyUnit(getCompanyCurrency(args.context));\n};\n\nexport const extraSalaryValueFormatter = (val: TValue, args: IFormatOptions): string => {\n if (args.entity?.CurrentTemporalPropertyBag?.ComputationTypeCode === PrExtraSalaryComputationTypeCode.AverageHourlySalaryPercentage) {\n return `${NumberType.format(val as number, { maximumFractionDigits: 0 })} %`;\n }\n return formatCurrency(val, getCompanyCurrency(args.context));\n};\n","import React from \"react\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport SmartFastEntryList from \"../../../components/smart/smartFastEntryList\";\nimport {\n GovernmentInstitutionBankAccountEntity,\n IPrPayrollSettingEntity,\n PrGovernmentInstitutionBankAccountDetailEntity,\n PrGovernmentInstitutionDetailEntity,\n PrPayrollSettingEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { createPath } from \"@odata/BindingContext\";\n\ninterface IProps {\n storage: FormStorage;\n isReadOnly: boolean;\n groupId: string;\n institution: PrPayrollSettingEntity;\n}\n\nexport class BankAccountsFastEntry extends React.Component {\n\n handleLineItemsChange = (event: ISmartFieldChange): void => {\n this.props.storage.handleLineItemsChange(event);\n this.props.storage.refreshFields();\n };\n\n render() {\n const columns = [{\n id: createPath(PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.Name)\n }, {\n id: createPath(PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.AccountNumber)\n }, {\n id: createPath(PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.BankCode)\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolVariable\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolSpecific\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolConstant\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.RemittanceInformation\n }];\n\n const bc = this.props.storage.data.bindingContext.navigate(this.props.institution)?.navigate(PrGovernmentInstitutionDetailEntity.BankAccountDetails);\n\n return (\n \n );\n }\n\n handleBlur = async (args: ISmartFieldBlur): Promise => {\n await this.props.storage.handleBlur(args);\n this.props.storage.refreshFields();\n };\n}","import {\n EntitySetName,\n GovernmentInstitutionBankAccountEntity,\n GovernmentInstitutionEntity,\n IGovernmentInstitutionBankAccountEntity,\n IGovernmentInstitutionEntity,\n PrGovernmentInstitutionBankAccountDetailEntity,\n PrGovernmentInstitutionDetailEntity,\n PrPayrollSettingEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { TFieldDefinition, TFieldsDefinition } from \"../../PageUtils\";\nimport {\n countryDef,\n PhoneNumberDef,\n SymbolConstantDef,\n SymbolSpecificDef,\n SymbolVariableDef\n} from \"@components/smart/GeneralFieldDefinition\";\nimport { BasicInputSizes, CacheStrategy, FieldType, ValidatorType } from \"../../../enums\";\nimport { GovernmentInstitutionTypeCode } from \"@odata/GeneratedEnums\";\nimport { logger } from \"@utils/log\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport React from \"react\";\nimport { BankAccountsFastEntry } from \"./BankAccountsFastEntry\";\nimport { IFieldDefFn } from \"@components/smart/FieldInfo\";\nimport i18next from \"i18next\";\nimport { capitalize } from \"@utils/string\";\nimport { TValue } from \"../../../global.types\";\n\nexport const GOVERNMENT_INSTITUTIONS = [PrPayrollSettingEntity.FinancialAdministration, PrPayrollSettingEntity.CzechSocialSecurityAdministration, PrPayrollSettingEntity.LabourOffice, PrPayrollSettingEntity.StatutoryInsuranceCompany];\n\ntype TGovernmentInstitution = typeof GOVERNMENT_INSTITUTIONS[number];\n\nexport const BankAccountsFastEntryPath = BindingContext.localContext(\"governmentFastEntry\");\n\nconst getTypeCodeFromInstitutionProp = (institution: TGovernmentInstitution): GovernmentInstitutionTypeCode => {\n switch (institution) {\n case PrPayrollSettingEntity.FinancialAdministration:\n return GovernmentInstitutionTypeCode.FinancialAdministration;\n case PrPayrollSettingEntity.CzechSocialSecurityAdministration:\n return GovernmentInstitutionTypeCode.CzechSocialSecurityAdministration;\n case PrPayrollSettingEntity.LabourOffice:\n return GovernmentInstitutionTypeCode.LabourOffice;\n case PrPayrollSettingEntity.StatutoryInsuranceCompany:\n return GovernmentInstitutionTypeCode.StatutoryInsuranceCompany;\n default:\n logger.error(`unknown institution navigation path: ${institution}`);\n return null;\n }\n};\n\nexport function formatGovernmentInstitutionName(governmentInstitution: IGovernmentInstitutionEntity): string {\n return governmentInstitution?.ShortName?.replace(\"ÚP \", \"\") ?? \"\";\n}\n\nexport function formatGovernmentInstitutionUfoName(name: string): string {\n let formattedStr = name?.replace(\"Finanční úřad pro \", \"\");\n formattedStr = formattedStr?.replace(\"Prahu\", \"Praha\").trim();\n\n return capitalize(formattedStr);\n}\n\nexport function getFinancialAdministrationDef(): TFieldDefinition {\n return {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n filter: {\n select: `${GovernmentInstitutionEntity.GovernmentInstitutionTypeCode} eq '${GovernmentInstitutionTypeCode.FinancialAdministration}'`\n },\n formatter: (val: TValue, args) => {\n return formatGovernmentInstitutionName(args.item);\n },\n fieldSettings: {\n displayName: \"ShortName\",\n shouldDisplayAdditionalColumns: true,\n preloadItems: true\n },\n columns: [{\n id: \"ShortName\",\n formatter: (val: TValue, args) => formatGovernmentInstitutionName(args.item)\n }, {\n id: \"UfoName\",\n formatter: (val: TValue, args) => formatGovernmentInstitutionUfoName(val as string)\n }]\n };\n}\n\nexport const getContactsRowsDef = (): TFieldsDefinition => {\n const def = {} as TFieldsDefinition;\n for (const institution of GOVERNMENT_INSTITUTIONS) {\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.ContactName)] = {\n width: BasicInputSizes.L\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.ContactEmail)] = {\n width: BasicInputSizes.XL,\n validator: {\n type: ValidatorType.Email\n }\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.ContactPhone)] = {\n ...PhoneNumberDef\n };\n const defaultFieldDef = institution === PrPayrollSettingEntity.FinancialAdministration ? getFinancialAdministrationDef() : {};\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution)] = {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n columns: [{ id: GovernmentInstitutionEntity.ShortName }, { id: GovernmentInstitutionEntity.Name }],\n ...defaultFieldDef,\n width: BasicInputSizes.XL,\n fieldSettings: {\n ...defaultFieldDef.fieldSettings,\n entitySet: EntitySetName.GovernmentInstitutions,\n displayName: GovernmentInstitutionEntity.ShortName,\n shouldDisplayAdditionalColumns: true,\n showTabularHeader: false,\n preloadItems: true,\n localDependentFields: [{\n from: { id: GovernmentInstitutionEntity.Street },\n to: {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Street)\n }\n }, {\n from: { id: GovernmentInstitutionEntity.City },\n to: {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.City)\n }\n }, {\n from: { id: GovernmentInstitutionEntity.PostalCode },\n to: {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.PostalCode)\n }\n }, {\n from: { id: GovernmentInstitutionEntity.Country },\n to: {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Country)\n }\n }, {\n from: { id: GovernmentInstitutionEntity.DataBoxId },\n to: {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.DataBoxId)\n }\n }],\n additionalProperties: [{\n id: GovernmentInstitutionEntity.Street\n }, {\n id: GovernmentInstitutionEntity.City\n }, {\n id: GovernmentInstitutionEntity.PostalCode\n }, {\n id: GovernmentInstitutionEntity.Country\n }, {\n id: GovernmentInstitutionEntity.DataBoxId\n }, {\n id: GovernmentInstitutionEntity.BankAccounts,\n additionalProperties: [{\n id: GovernmentInstitutionBankAccountEntity.BankCode\n }, {\n id: GovernmentInstitutionBankAccountEntity.AccountNumber\n }, {\n id: GovernmentInstitutionBankAccountEntity.AccountPrefix\n }, {\n id: GovernmentInstitutionBankAccountEntity.IBAN\n }, {\n id: GovernmentInstitutionBankAccountEntity.Name\n }]\n }]\n },\n filter: {\n select: `${GovernmentInstitutionEntity.GovernmentInstitutionTypeCode} eq '${getTypeCodeFromInstitutionProp(institution)}'`\n }\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Street)] = {\n isReadOnly: true,\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.City)] = {\n isReadOnly: true\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.PostalCode)] = {\n isReadOnly: true\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Country)] = {\n ...countryDef,\n isReadOnly: true,\n defaultValue: null\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.DataBoxId)] = {\n isReadOnly: true,\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.Name)] = {\n label: i18next.t(\"GovernmentInstitution:Payment\"),\n isReadOnly: true,\n isRequired: false\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.AccountNumber)] = {\n isReadOnly: true,\n formatter: (value, args) => {\n const bankAccount = args.storage.getValue(args.bindingContext.getParent()) as IGovernmentInstitutionBankAccountEntity;\n return `${bankAccount?.AccountPrefix ? bankAccount.AccountPrefix + \"-\" : \"\"}${value}`;\n }\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount, GovernmentInstitutionBankAccountEntity.BankCode)] = {\n isReadOnly: true,\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.SymbolVariable)] = {\n ...SymbolVariableDef\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.SymbolSpecific)] = {\n ...SymbolSpecificDef\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.SymbolConstant)] = {\n ...SymbolConstantDef\n };\n def[createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails, PrGovernmentInstitutionBankAccountDetailEntity.RemittanceInformation)] = {};\n def[createPath(institution, BankAccountsFastEntryPath)] = {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return ;\n }\n };\n }\n\n return def;\n};\n","import { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n GovernmentInstitutionBankAccountEntity,\n GovernmentInstitutionEntity,\n PrGovernmentInstitutionBankAccountDetailEntity,\n PrGovernmentInstitutionDetailEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport i18next from \"i18next\";\n\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { BankAccountsFastEntryPath, getContactsRowsDef, GOVERNMENT_INSTITUTIONS } from \"./GovernmentInstitution.utils\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const entitySet = EntitySetName.PrPayrollSettings;\n const form: IFormDef = {\n id: `${EntityTypeName.PrPayrollSetting}Form`,\n title: i18next.t(\"GovernmentInstitution:Title\"),\n translationFiles: getDefinitions.translationFiles,\n fieldDefinition: {\n ...getContactsRowsDef()\n },\n groups: [\n ...GOVERNMENT_INSTITUTIONS.reduce((defs, institution) => {\n return [\n ...defs,\n {\n id: institution,\n title: i18next.t(`GovernmentInstitution:${institution}`),\n rows: [[{ id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution) }]],\n collapsedRows: [[\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Street) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.City) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.PostalCode) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.Country) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.GovernmentInstitution, GovernmentInstitutionEntity.DataBoxId) }\n ], [\n { id: createPath(institution, BankAccountsFastEntryPath) }\n ]]\n },\n {\n id: `${institution}Contacts`,\n rows: [[\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.ContactName) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.ContactEmail) },\n { id: createPath(institution, PrGovernmentInstitutionDetailEntity.ContactPhone) }\n ]]\n }];\n }, [])\n ],\n additionalProperties: [\n ...GOVERNMENT_INSTITUTIONS.reduce((defs, institution) => {\n return [\n ...defs,\n {\n id: createPath(institution, PrGovernmentInstitutionDetailEntity.BankAccountDetails),\n additionalProperties: [{\n id: PrGovernmentInstitutionBankAccountDetailEntity.GovernmentInstitutionBankAccount,\n additionalProperties: [{\n id: GovernmentInstitutionBankAccountEntity.BankCode\n }, {\n id: GovernmentInstitutionBankAccountEntity.AccountNumber\n }, {\n id: GovernmentInstitutionBankAccountEntity.AccountPrefix\n }, {\n id: GovernmentInstitutionBankAccountEntity.IBAN\n }, {\n id: GovernmentInstitutionBankAccountEntity.Name\n }]\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolVariable,\n useForValidation: true\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolSpecific,\n useForValidation: true\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.SymbolConstant,\n useForValidation: true\n }, {\n id: PrGovernmentInstitutionBankAccountDetailEntity.RemittanceInformation,\n useForValidation: true\n }]\n }];\n }, [])\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Common\", \"GovernmentInstitution\"];\nsetDefByEntityType(EntityTypeName.PrPayrollSetting, getDefinitions);","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n IPrHealthInsuranceCompanyEntity,\n IPrInsuranceCompanyPredefinedEntity,\n PrHealthInsuranceCompanyEntity,\n PrInsuranceCompanyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { predefinedHealthInsuranceCompanyPath } from \"./HealthInsuranceCompany.def\";\nimport { getPredefinedCompanies, handleInsuranceCompanyBankChange, validateDataBox } from \"./insuranceCompanies.utils\";\nimport {\n BankAccountDependentFields,\n clearBankFields,\n SAVED_ACCOUNTS_PATH,\n setSavedBankAccount,\n setSavedBankAccountItems\n} from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass HealthInsuranceCompanyFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"InsuranceCompanies:HealthInsurance.FormTitle\"\n };\n\n async onAfterLoad() {\n const storage = this.props.storage;\n\n\n if (!storage.data.bindingContext.isNew()) {\n validateDataBox(storage);\n\n const companies = await getPredefinedCompanies(storage, PrInsuranceCompanyTypeCode.HealthInsuranceCompany);\n const company = companies.find(c => c.ShortName === this.entity.ShortName);\n this.props.storage.setValueByPath(predefinedHealthInsuranceCompanyPath, company.Code);\n const bankAccounts = company?.BankAccounts?.length ? company.BankAccounts : [storage.data.entity.BankAccount];\n setSavedBankAccountItems(storage, bankAccounts);\n setSavedBankAccount({\n storage,\n isEntityWithoutBP: true,\n account: storage.data.entity.BankAccount\n }\n , bankAccounts);\n\n storage.addActiveField(storage.data.bindingContext.navigate(predefinedHealthInsuranceCompanyPath));\n storage.addActiveField(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH));\n this.props.storage.refreshFields();\n }\n\n return super.onAfterLoad();\n }\n\n handlePredefinedCompanyChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === predefinedHealthInsuranceCompanyPath &&\n e.triggerAdditionalTasks) {\n const predefinedData = e.additionalData as IPrInsuranceCompanyPredefinedEntity;\n const storage = this.props.storage;\n\n const bankAccounts = predefinedData.BankAccounts ?? [];\n\n if (!isObjectEmpty(bankAccounts[0])) {\n storage.processDependentField(BankAccountDependentFields, bankAccounts[0]);\n setSavedBankAccountItems(storage, bankAccounts);\n setSavedBankAccount({\n storage,\n isEntityWithoutBP: true,\n account: storage.data.entity.BankAccount\n }\n , bankAccounts);\n } else if (storage.data.bindingContext.isNew()) {\n // e.triggerAdditionalTasks means company was selected but is without bank account, therefore clear fields\n storage.clearAndSetValue(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH), null);\n setSavedBankAccountItems(storage, []);\n clearBankFields(storage, storage.data.bindingContext.navigate(PrInsuranceCompanyEntity.BankAccount));\n }\n\n\n storage.addActiveField(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH));\n\n storage.setValueByPath(PrHealthInsuranceCompanyEntity.HealthInsuranceCompanyCode, predefinedData?.HealthInsuranceCompanyCode?.toString()); // todo: remove to string once types are unified in metadata\n storage.setValueByPath(PrHealthInsuranceCompanyEntity.DataBoxId, predefinedData?.DataBoxId);\n storage.setValueByPath(PrHealthInsuranceCompanyEntity.ShortName, predefinedData?.ShortName);\n storage.setValueByPath(PrHealthInsuranceCompanyEntity.Name, predefinedData?.Name);\n this.props.storage.refreshFields();\n validateDataBox(this.props.storage);\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n handleInsuranceCompanyBankChange(e, this.props.storage);\n this.handlePredefinedCompanyChange(e);\n }\n\n async handleBlur(e: ISmartFieldBlur): Promise {\n await this.props.storage.handleBlur(e);\n if (e.bindingContext.getPath() === PrHealthInsuranceCompanyEntity.DataBoxId) {\n await validateDataBox(this.props.storage);\n }\n this.props.storage.refreshFields();\n }\n}\n\nexport default withPermissionContext(HealthInsuranceCompanyFormView);","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getCommonFilterDefs } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n PrHealthInsuranceCompanyEntity,\n PrInsuranceCompanyPredefinedEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, CacheStrategy, FieldType, Sort } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { paymentDetailFields, SAVED_ACCOUNTS_PATH } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { addBankAccountTableDefs } from \"../../documents/DocumentCommonDefs\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { insuranceCompanyAccountAdditionalFields } from \"../pensionInsuranceCompany/PensionInsuranceCompany.def\";\nimport HealthInsuranceCompanyFormView from \"./HealthInsuranceCompanyFormView\";\nimport {\n getInsuranceCompaniesCommonColumnDef,\n getInsuranceCompaniesCommonFieldDef,\n getPredefinedCompanies\n} from \"./insuranceCompanies.utils\";\n\nexport const predefinedHealthInsuranceCompanyPath = BindingContext.localContext(\"PredefinedHealthInsuranceCompany\");\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrHealthInsuranceCompany}Table`,\n title: i18next.t(\"InsuranceCompanies:HealthInsurance.Title\"),\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrHealthInsuranceCompanyEntity.Name,\n PrHealthInsuranceCompanyEntity.IsActive\n ],\n filterDefinition: {\n ...getCommonFilterDefs(),\n [PrHealthInsuranceCompanyEntity.Name]: {},\n [PrHealthInsuranceCompanyEntity.IsActive]: {}\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrHealthInsuranceCompanyEntity.ShortName, sort: Sort.Desc }],\n columns: [\n PrHealthInsuranceCompanyEntity.ShortName,\n PrHealthInsuranceCompanyEntity.Name,\n PrHealthInsuranceCompanyEntity.HealthInsuranceCompanyCode,\n PrHealthInsuranceCompanyEntity.BankAccount,\n PrHealthInsuranceCompanyEntity.IsActive\n ],\n columnDefinition: {\n [PrHealthInsuranceCompanyEntity.ShortName]: {},\n [PrHealthInsuranceCompanyEntity.Name]: {},\n [PrHealthInsuranceCompanyEntity.BankAccount]: {\n additionalProperties: insuranceCompanyAccountAdditionalFields,\n formatter: generalBankAccountFormatter\n },\n [PrHealthInsuranceCompanyEntity.HealthInsuranceCompanyCode]: {},\n ...getInsuranceCompaniesCommonColumnDef()\n },\n };\n\n const summary: ISummaryItem[] = [\n { id: PrHealthInsuranceCompanyEntity.Name }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrHealthInsuranceCompany}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n formControl: HealthInsuranceCompanyFormView,\n summary,\n additionalProperties: [{\n id: PrInsuranceCompanyPredefinedEntity.ShortName\n }],\n fieldDefinition: {\n [predefinedHealthInsuranceCompanyPath]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"InsuranceCompanies:Name\"),\n width: BasicInputSizes.XL,\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: PrInsuranceCompanyPredefinedEntity.ShortName,\n shouldDisplayAdditionalColumns: true,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const companies = await getPredefinedCompanies(args.storage as FormStorage, PrInsuranceCompanyTypeCode.HealthInsuranceCompany);\n return companies?.map(company => {\n return {\n id: company.Code,\n label: company.ShortName,\n additionalData: company\n };\n });\n }\n },\n columns: [\n {\n id: PrInsuranceCompanyPredefinedEntity.ShortName,\n },\n {\n id: PrInsuranceCompanyPredefinedEntity.Name\n }\n ]\n },\n [PrHealthInsuranceCompanyEntity.HealthInsuranceCompanyCode]: {\n width: BasicInputSizes.XS\n },\n ...getInsuranceCompaniesCommonFieldDef()\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: predefinedHealthInsuranceCompanyPath }, { id: PrHealthInsuranceCompanyEntity.HealthInsuranceCompanyCode },\n { id: PrHealthInsuranceCompanyEntity.DataBoxId }, { id: PrHealthInsuranceCompanyEntity.IsActive }]\n ]\n },\n {\n id: \"bankAccount\",\n title: i18next.t(\"InsuranceCompanies:BankAccounts\"),\n rows: [[\n { id: SAVED_ACCOUNTS_PATH }\n ], [\n ...paymentDetailFields\n ]],\n }\n ]\n };\n\n const def = {\n entitySet: EntitySetName.PrHealthInsuranceCompanies,\n table,\n form\n };\n\n addBankAccountTableDefs(def);\n\n return def;\n};\n\ngetDefinitions.translationFiles = [\"InsuranceCompanies\", \"Common\"];\nsetDefByEntityType(EntityTypeName.PrHealthInsuranceCompany, getDefinitions);","import {\n BankAccountEntity,\n EntitySetName,\n IPrInsuranceCompanyPredefinedEntity,\n PrInsuranceCompanyEntity,\n PrInsuranceCompanyPredefinedEntity,\n PrLifeInsuranceCompanyEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BasicInputSizes, FieldType, Status } from \"../../../enums\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { TFieldsDefinition } from \"../../PageUtils\";\nimport { activeFormatter } from \"../../chartOfAccounts/ChartOfAccountsDef\";\nimport customFetch from \"../../../utils/customFetch\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { FieldValidationNegativeIcon, FieldValidationPositiveIcon } from \"@components/icon\";\nimport { IFieldInfoProperties, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport i18next from \"i18next\";\nimport { PrInsuranceCompanyTypeCode, SelectionCode } from \"@odata/GeneratedEnums\";\nimport {\n BankAccountDependentFields,\n clearBankFields,\n getBankAccountFieldsDef,\n getBankBlurArgs,\n SAVED_ACCOUNTS_PATH,\n setSavedBankAccount,\n setSavedBankAccountItems\n} from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { predefinedHealthInsuranceCompanyPath } from \"./HealthInsuranceCompany.def\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { handleBankAccountOrIBANBlur } from \"@utils/BankUtils\";\nimport memoize from \"../../../utils/memoize\";\nimport { DATABOX_REST_URL } from \"../../../constants\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\n\nexport const checkDataBoxUrl = `${DATABOX_REST_URL}/check/`;\n\nexport function getInsuranceCompaniesCommonFieldDef(): TFieldsDefinition {\n return {\n [PrInsuranceCompanyEntity.DataBoxId]: {},\n [PrInsuranceCompanyEntity.IsActive]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n defaultValue: true\n },\n [PrInsuranceCompanyEntity.BankAccount]: {\n type: FieldType.ComboBox\n },\n ...getTransformedBankAccountFieldsDef()\n };\n}\n\nconst getTransformedBankAccountFieldsDef = (): TFieldsDefinition => {\n const fields = getBankAccountFieldsDef({\n addPaymentMethod: false,\n areFieldsDisabled: false,\n type: null\n });\n\n fields[SAVED_ACCOUNTS_PATH].isRequired = true;\n return fields;\n};\n\nexport function getInsuranceCompaniesCommonColumnDef(): TFieldsDefinition {\n return {\n [PrInsuranceCompanyEntity.DataBoxId]: {},\n [PrInsuranceCompanyEntity.IsActive]: {\n formatter: activeFormatter\n }\n };\n}\n\nexport const validateDataBox = async (storage: FormStorage): Promise => {\n const dataBoxBc = storage.data.bindingContext.navigate(PrInsuranceCompanyEntity.DataBoxId);\n const dataBoxId = storage.getValue(dataBoxBc);\n const error = await storage.validateField(dataBoxBc);\n if (!error && dataBoxId) {\n storage.setAdditionalFieldData(dataBoxBc, \"isBusy\", true);\n storage.refreshField(dataBoxBc.getPath());\n\n\n const res = await customFetch(`${checkDataBoxUrl}/${dataBoxId}`);\n\n const validationResult = res.ok ? {\n status: Status.Success,\n message: storage.t(\"InsuranceCompanies:DataboxValidationSuccess\"),\n icon: FieldValidationPositiveIcon\n } : {\n status: Status.Warning,\n message: storage.t(\"InsuranceCompanies:DataboxValidationError\"),\n icon: FieldValidationNegativeIcon\n };\n\n storage.setAdditionalFieldData(dataBoxBc, \"isBusy\", false);\n storage.setAdditionalFieldData(dataBoxBc, \"validationResult\", validationResult);\n } else {\n storage.setAdditionalFieldData(dataBoxBc, \"validationResult\", null);\n }\n storage.refreshField(dataBoxBc.getPath());\n};\n\n\nexport const getPredefinedCompanies = memoize(async (storage: FormStorage, type: PrInsuranceCompanyTypeCode): Promise => {\n const res = await storage.oData.getEntitySetWrapper(EntitySetName.PrInsuranceCompaniesPredefined)\n .query()\n .filter(`${PrInsuranceCompanyPredefinedEntity.PrInsuranceCompanyTypeCode} eq '${type}'`)\n .expand(PrInsuranceCompanyPredefinedEntity.BankAccounts, q => q.expand(BankAccountEntity.Country).expand(BankAccountEntity.Bank))\n .fetchData();\n\n return res.value;\n});\n\nexport const getNameFieldDef = (type: PrInsuranceCompanyTypeCode): IFieldInfoProperties => ({\n type: FieldType.Autocomplete,\n fieldSettings: {\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const companies = await getPredefinedCompanies(args.storage as FormStorage, type);\n return companies?.map(company => {\n return {\n id: company.Name,\n label: company.Name,\n additionalData: company\n };\n });\n }\n },\n label: i18next.t(`InsuranceCompanies:Name`),\n width: BasicInputSizes.XL,\n useForValidation: true\n});\n\nexport const handleInsuranceCompanyAfterLoad = async (storage: FormStorage, typeCode: PrInsuranceCompanyTypeCode): Promise => {\n if (!storage.data.bindingContext.isNew()) {\n validateDataBox(storage);\n const companies = await getPredefinedCompanies(storage, typeCode);\n const company = companies.find(c => c.Name === storage.data.entity.Name);\n const bankAccounts = company?.BankAccounts?.length ? company.BankAccounts : [storage.data.entity.BankAccount];\n storage.setValueByPath(predefinedHealthInsuranceCompanyPath, company?.Code);\n setSavedBankAccountItems(storage, bankAccounts);\n setSavedBankAccount({\n storage,\n isEntityWithoutBP: true,\n account: storage.data.entity.BankAccount\n }\n , bankAccounts);\n }\n};\n\nexport const handleNameChange = (e: ISmartFieldChange, storage: FormStorage): void => {\n if (e.bindingContext.getPath() === PrLifeInsuranceCompanyEntity.Name && !isObjectEmpty(e.additionalData) &&\n e.triggerAdditionalTasks) {\n const predefinedData = e.additionalData as IPrInsuranceCompanyPredefinedEntity;\n const bankAccounts = predefinedData.BankAccounts ?? [];\n\n if (!isObjectEmpty(bankAccounts[0])) {\n setSavedBankAccountItems(storage, bankAccounts);\n storage.processDependentField(BankAccountDependentFields, bankAccounts[0]);\n setSavedBankAccount({\n storage,\n isEntityWithoutBP: true,\n account: storage.data.entity.BankAccount\n }\n , bankAccounts);\n } else if (storage.data.bindingContext.isNew()) {\n // e.triggerAdditionalTasks means company was selected but is without bank account, therefore clear fields\n storage.clearAndSetValue(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH), null);\n setSavedBankAccountItems(storage, []);\n clearBankFields(storage, storage.data.bindingContext.navigate(PrInsuranceCompanyEntity.BankAccount));\n }\n\n storage.addActiveField(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH));\n\n storage.setValueByPath(PrLifeInsuranceCompanyEntity.DataBoxId, predefinedData?.DataBoxId);\n storage.refreshFields();\n validateDataBox(storage);\n }\n};\n\nexport const handleInsuranceCompanyBankChange = (e: ISmartFieldChange, storage: FormStorage): void => {\n handleBankAccountOrIBANBlur(getBankBlurArgs(storage, e.bindingContext));\n if (e.bindingContext.getParent().getPath() === PrInsuranceCompanyEntity.BankAccount) {\n storage.clearAndSetValue(storage.data.bindingContext.navigate(SAVED_ACCOUNTS_PATH), SelectionCode.Own);\n }\n};","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrLifeInsuranceCompanyEntity, PrLifeInsuranceCompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport {\n handleInsuranceCompanyAfterLoad,\n handleInsuranceCompanyBankChange,\n handleNameChange,\n validateDataBox\n} from \"../healthInsuranceCompany/insuranceCompanies.utils\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass LifeInsuranceCompanyFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"InsuranceCompanies:LifeInsurance.FormTitle\"\n };\n\n async onAfterLoad() {\n const storage = this.props.storage;\n\n await handleInsuranceCompanyAfterLoad(storage, PrInsuranceCompanyTypeCode.LifeInsuranceCompany);\n return super.onAfterLoad();\n }\n\n handleNameChange = (e: ISmartFieldChange): void => {\n handleNameChange(e, this.props.storage);\n };\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n handleInsuranceCompanyBankChange(e, this.props.storage);\n this.handleNameChange(e);\n }\n\n async handleBlur(e: ISmartFieldBlur): Promise {\n await this.props.storage.handleBlur(e);\n if (e.bindingContext.getPath() === PrLifeInsuranceCompanyEntity.DataBoxId) {\n await validateDataBox(this.props.storage);\n }\n this.props.storage.refreshFields();\n }\n}\n\nexport default withPermissionContext(LifeInsuranceCompanyFormView);","import { getCommonFilterDefs } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { EntitySetName, EntityTypeName, PrLifeInsuranceCompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport i18next from \"i18next\";\n\nimport { Sort } from \"../../../enums\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { paymentDetailFields, SAVED_ACCOUNTS_PATH } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { addBankAccountTableDefs } from \"../../documents/DocumentCommonDefs\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport {\n getInsuranceCompaniesCommonColumnDef,\n getInsuranceCompaniesCommonFieldDef,\n getNameFieldDef\n} from \"../healthInsuranceCompany/insuranceCompanies.utils\";\nimport { insuranceCompanyAccountAdditionalFields } from \"../pensionInsuranceCompany/PensionInsuranceCompany.def\";\nimport LifeInsuranceCompanyFormView from \"./LifeInsuranceCompanyFormView\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrLifeInsuranceCompany}Table`,\n title: i18next.t(\"InsuranceCompanies:LifeInsurance.Title\"),\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrLifeInsuranceCompanyEntity.Name,\n PrLifeInsuranceCompanyEntity.IsActive\n ],\n filterDefinition: {\n ...getCommonFilterDefs(),\n [PrLifeInsuranceCompanyEntity.Name]: {},\n [PrLifeInsuranceCompanyEntity.IsActive]: {}\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrLifeInsuranceCompanyEntity.Name, sort: Sort.Desc }],\n columns: [\n PrLifeInsuranceCompanyEntity.Name,\n PrLifeInsuranceCompanyEntity.BankAccount,\n PrLifeInsuranceCompanyEntity.IsActive\n ],\n columnDefinition: {\n [PrLifeInsuranceCompanyEntity.Name]: {},\n [PrLifeInsuranceCompanyEntity.BankAccount]: {\n additionalProperties: insuranceCompanyAccountAdditionalFields,\n formatter: generalBankAccountFormatter\n },\n ...getInsuranceCompaniesCommonColumnDef()\n },\n };\n\n const summary: ISummaryItem[] = [\n { id: PrLifeInsuranceCompanyEntity.Name }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrLifeInsuranceCompany}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n formControl: LifeInsuranceCompanyFormView,\n summary,\n additionalProperties: [],\n fieldDefinition: {\n \"Name\": {\n ...getNameFieldDef(PrInsuranceCompanyTypeCode.LifeInsuranceCompany)\n },\n ...getInsuranceCompaniesCommonFieldDef()\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: PrLifeInsuranceCompanyEntity.Name }, { id: PrLifeInsuranceCompanyEntity.DataBoxId }, { id: PrLifeInsuranceCompanyEntity.IsActive }]\n ]\n },\n {\n id: \"bankAccount\",\n title: i18next.t(\"InsuranceCompanies:BankAccounts\"),\n rows: [[\n { id: SAVED_ACCOUNTS_PATH }\n ], [\n ...paymentDetailFields\n ]],\n }\n ]\n };\n\n const def = {\n entitySet: EntitySetName.PrLifeInsuranceCompanies,\n table,\n form\n };\n\n addBankAccountTableDefs(def);\n\n return def;\n};\n\ngetDefinitions.translationFiles = [\"InsuranceCompanies\", \"Common\"];\nsetDefByEntityType(EntityTypeName.PrLifeInsuranceCompany, getDefinitions);","import { EntitySetName, PrEmployeeEntity } from \"@odata/GeneratedEntityTypes\";\n\nimport { FieldType } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\n\nexport const payslipEmployeePath = BindingContext.localContext(\"payslipEmployee\");\nexport const payslipMonthYearPath = BindingContext.localContext(\"payslipMonthYear\");\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const form: IFormDef = {\n id: \"PayslipSpecialForm\",\n translationFiles: getDefinitions.translationFiles,\n additionalProperties: [],\n fieldDefinition: {\n [payslipEmployeePath]: {\n type: FieldType.ComboBox,\n label: \"Zaměstnanec\",\n fieldSettings: {\n displayName: PrEmployeeEntity.LastName,\n entitySet: EntitySetName.PrEmployees,\n additionalProperties: [{ id: PrEmployeeEntity.FirstName }],\n transformFetchedItems: (items, args) => {\n return items.map(item => ({\n id: item.additionalData[PrEmployeeEntity.Id],\n label: `${item.additionalData[PrEmployeeEntity.LastName]} ${item.additionalData[PrEmployeeEntity.FirstName]}`\n }));\n }\n }\n },\n [payslipMonthYearPath]: {\n type: FieldType.MonthYear,\n label: \"Měsíc\"\n }\n },\n groups: [{ id: payslipEmployeePath }, { id: payslipMonthYearPath }]\n };\n\n return {\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"Payslip\", \"Common\"];\n","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrHealthInsuranceCompanyEntity, PrPensionInsuranceCompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport {\n handleInsuranceCompanyAfterLoad,\n handleInsuranceCompanyBankChange,\n handleNameChange,\n validateDataBox\n} from \"../healthInsuranceCompany/insuranceCompanies.utils\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass PensionInsuranceCompanyFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"InsuranceCompanies:PensionInsurance.FormTitle\"\n };\n\n async onAfterLoad() {\n const storage = this.props.storage;\n\n handleInsuranceCompanyAfterLoad(storage, PrInsuranceCompanyTypeCode.PensionInsuranceCompany);\n return super.onAfterLoad();\n }\n\n handleNameChange = (e: ISmartFieldChange): void => {\n handleNameChange(e, this.props.storage);\n };\n\n handleChange(e: ISmartFieldChange): void {\n super.handleChange(e);\n handleInsuranceCompanyBankChange(e, this.props.storage);\n this.handleNameChange(e);\n }\n\n async handleBlur(e: ISmartFieldBlur): Promise {\n await this.props.storage.handleBlur(e);\n if (e.bindingContext.getPath() === PrPensionInsuranceCompanyEntity.DataBoxId) {\n await validateDataBox(this.props.storage);\n }\n this.props.storage.refreshFields();\n }\n}\n\nexport default withPermissionContext(PensionInsuranceCompanyFormView);","import { getCommonFilterDefs } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { EntitySetName, EntityTypeName, PrPensionInsuranceCompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { PrInsuranceCompanyTypeCode } from \"@odata/GeneratedEnums\";\nimport { generalBankAccountFormatter } from \"@utils/BankUtils\";\nimport i18next from \"i18next\";\n\nimport { Sort } from \"../../../enums\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { paymentDetailFields, SAVED_ACCOUNTS_PATH } from \"../../banks/bankAccounts/BankAccounts.utils\";\nimport { addBankAccountTableDefs } from \"../../documents/DocumentCommonDefs\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport {\n getInsuranceCompaniesCommonColumnDef,\n getInsuranceCompaniesCommonFieldDef,\n getNameFieldDef\n} from \"../healthInsuranceCompany/insuranceCompanies.utils\";\nimport PensionInsuranceCompanyFormView from \"./PensionInsuranceCompanyFormView\";\n\nexport const insuranceCompanyAccountAdditionalFields = [{\n id: \"AccountNumber\"\n}, {\n id: \"PaymentServiceID\"\n}, {\n id: \"BankCode\"\n}, {\n id: \"AbaNumber\"\n}, {\n id: \"Country\"\n}, {\n id: \"IBAN\"\n}];\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrPensionInsuranceCompany}Table`,\n title: i18next.t(\"InsuranceCompanies:PensionInsurance.Title\"),\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrPensionInsuranceCompanyEntity.Name,\n PrPensionInsuranceCompanyEntity.IsActive\n ],\n filterDefinition: {\n ...getCommonFilterDefs(),\n [PrPensionInsuranceCompanyEntity.Name]: {},\n [PrPensionInsuranceCompanyEntity.IsActive]: {}\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrPensionInsuranceCompanyEntity.Name, sort: Sort.Desc }],\n columns: [\n PrPensionInsuranceCompanyEntity.Name,\n PrPensionInsuranceCompanyEntity.BankAccount,\n PrPensionInsuranceCompanyEntity.IsActive,\n\n ],\n columnDefinition: {\n [PrPensionInsuranceCompanyEntity.Name]: {},\n [PrPensionInsuranceCompanyEntity.BankAccount]: {\n additionalProperties: insuranceCompanyAccountAdditionalFields,\n formatter: generalBankAccountFormatter\n },\n ...getInsuranceCompaniesCommonColumnDef()\n },\n };\n\n const summary: ISummaryItem[] = [\n { id: PrPensionInsuranceCompanyEntity.Name }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrPensionInsuranceCompany}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n formControl: PensionInsuranceCompanyFormView,\n summary,\n additionalProperties: [],\n fieldDefinition: {\n \"Name\": {\n ...getNameFieldDef(PrInsuranceCompanyTypeCode.PensionInsuranceCompany)\n },\n ...getInsuranceCompaniesCommonFieldDef()\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: PrPensionInsuranceCompanyEntity.Name },\n { id: PrPensionInsuranceCompanyEntity.DataBoxId }, { id: PrPensionInsuranceCompanyEntity.IsActive }]\n ]\n },\n {\n id: \"bankAccount\",\n title: i18next.t(\"InsuranceCompanies:BankAccounts\"),\n rows: [[\n { id: SAVED_ACCOUNTS_PATH }\n ], [\n ...paymentDetailFields\n ]]\n }\n ]\n };\n\n const def = {\n entitySet: EntitySetName.PrPensionInsuranceCompanies,\n table,\n form\n };\n\n addBankAccountTableDefs(def);\n\n return def;\n};\n\ngetDefinitions.translationFiles = [\"InsuranceCompanies\", \"Common\"];\nsetDefByEntityType(EntityTypeName.PrPensionInsuranceCompany, getDefinitions);","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { IPrSalaryAdvanceEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { handleCurrentTemporalPropChange } from \"@odata/TemporalUtils\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { loadAndStoreRanges, setMatchingNumberRange } from \"../../numberRange/NumberRange.utils\";\nimport { FormMode } from \"../../../enums\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass SalaryAdvanceFormView extends FormViewForExtend {\n static contextType = AppContext;\n static defaultProps = {\n title: \"SalaryAdvances:FormTitle\"\n };\n\n onAfterLoad = async () => {\n const { storage } = this.props;\n\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n\n if (!isAuditTrail) {\n const promises: Promise[] = [];\n\n if (!storage.data.entity.NumberOurs) {\n promises.push(setMatchingNumberRange(storage, true));\n } else {\n promises.push(loadAndStoreRanges(storage));\n }\n\n await Promise.all(promises);\n }\n\n return super.onAfterLoad();\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n handleCurrentTemporalPropChange(e, this.props.storage);\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n };\n}\n\nexport default withPermissionContext(SalaryAdvanceFormView);","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrSalaryAdvanceEntity,\n OtherLiabilityEntity,\n PrEmployeeEntity,\n PrSalaryAdvanceEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { Model } from \"../../../model/Model\";\nimport { ROUTE_OTHER_LIABILITY } from \"../../../routes\";\nimport Currency from \"../../../types/Currency\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { userNameWithAvatarTableFormatter } from \"../../admin/users/UsersDef\";\nimport { documentTableAmountFormatter } from \"../../documents/Document.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getNumberOursSummaryDef, getNumberRangeFieldDefs } from \"../../numberRange/NumberRange.utils\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { employeeSelectDef } from \"../employee/Employee.utils\";\nimport SalaryAdvanceFormView from \"./SalaryAdvanceFormView\";\n\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrSalaryAdvance}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrSalaryAdvanceEntity.NumberOurs\n ],\n filterDefinition: {\n [PrSalaryAdvanceEntity.NumberOurs]: {}\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrSalaryAdvanceEntity.NumberOurs, sort: Sort.Desc }],\n columns: [\n PrSalaryAdvanceEntity.NumberOurs,\n PrSalaryAdvanceEntity.Employee,\n PrSalaryAdvanceEntity.Amount,\n PrSalaryAdvanceEntity.DateAccountingTransaction,\n PrSalaryAdvanceEntity.PairedDocument\n ],\n columnDefinition: {\n [PrSalaryAdvanceEntity.NumberOurs]: {},\n [PrSalaryAdvanceEntity.Employee]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n return userNameWithAvatarTableFormatter(val, {\n ...args,\n entity: (args.entity as IPrSalaryAdvanceEntity).Employee\n });\n },\n additionalProperties: [\n { id: PrEmployeeEntity.FirstName },\n { id: PrEmployeeEntity.LastName }\n ]\n },\n [PrSalaryAdvanceEntity.Amount]: {\n formatter: (val: TValue, args: IFormatOptions) => {\n const entity = args.entity as IPrSalaryAdvanceEntity;\n\n return Currency.format(val, { currency: entity.CurrencyCode });\n }\n },\n [PrSalaryAdvanceEntity.DateAccountingTransaction]: {},\n [PrSalaryAdvanceEntity.PairedDocument]: {\n fieldSettings: {\n displayName: OtherLiabilityEntity.NumberOurs\n }\n }\n },\n title: i18next.t(\"SalaryAdvances:Title\"),\n additionalProperties: [\n { id: PrSalaryAdvanceEntity.Currency }\n ],\n // tabs needs to be present so that TableView renders them\n // but are filled dynamically inside SalaryAdvanceTableView\n tabs: [],\n tabsSettings: {}\n };\n const summary: ISummaryItem[] = [\n getNumberOursSummaryDef(\"SalaryAdvances\")\n ];\n\n // enhance select def with SalaryCurrency and store it automatically into SalaryAdvance.Currency on selection\n const employeeSelectDefExtended = employeeSelectDef;\n\n employeeSelectDefExtended.additionalProperties.push(\n {\n id: PrEmployeeEntity.SalaryCurrency\n }\n );\n employeeSelectDefExtended.fieldSettings.additionalProperties = [\n ...(employeeSelectDefExtended.fieldSettings.additionalProperties ?? []),\n { id: PrEmployeeEntity.SalaryCurrency }\n ];\n employeeSelectDefExtended.fieldSettings.localDependentFields.push(\n {\n from: { id: PrEmployeeEntity.SalaryCurrency },\n to: { id: PrSalaryAdvanceEntity.Currency }\n }\n );\n employeeSelectDefExtended.affectedFields = [\n ...(employeeSelectDefExtended.affectedFields ?? []),\n { id: PrSalaryAdvanceEntity.Amount }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrSalaryAdvance}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"SalaryAdvances:New\"), i18next.t(\"SalaryAdvances:FormTitle\")),\n isDeletable: true,\n formControl: SalaryAdvanceFormView,\n summary,\n fieldDefinition: {\n ...getNumberRangeFieldDefs(\"SalaryAdvances\"),\n [PrSalaryAdvanceEntity.Employee]: { ...employeeSelectDefExtended },\n [PrSalaryAdvanceEntity.Amount]: {\n width: BasicInputSizes.S,\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n const entity = args.storage.data.entity as IPrSalaryAdvanceEntity;\n\n return Currency.getCurrencyUnit(entity.CurrencyCode ?? getCompanyCurrency(args.context));\n }\n }\n },\n [PrSalaryAdvanceEntity.DateAccountingTransaction]: {\n width: BasicInputSizes.M,\n defaultValue: getUtcDate()\n }\n },\n additionalProperties: [\n { id: PrSalaryAdvanceEntity.PairedDocument },\n { id: PrSalaryAdvanceEntity.Currency }\n ],\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: PrSalaryAdvanceEntity.Employee },\n { id: PrSalaryAdvanceEntity.Amount },\n { id: PrSalaryAdvanceEntity.DateAccountingTransaction }\n ]\n ]\n },\n {\n id: \"Tabs\",\n isVisible: (args: IGetValueArgs) => {\n return !args.storage.data.bindingContext.isNew();\n },\n tabs: [\n {\n id: \"PairedDocuments\",\n title: i18next.t(\"SalaryAdvances:FormTab.PairedDocuments\"),\n table: {\n id: \"pairedDocuments\",\n entitySet: EntitySetName.OtherLiabilities,\n filter: (args: IGetValueArgs) => {\n return `Id eq ${(args.storage.data.entity as IPrSalaryAdvanceEntity).PairedDocument?.Id}`;\n },\n initialSortBy: [\n { id: \"DateAccountingTransaction\", sort: Sort.Asc }\n ],\n columns: [\n { id: \"DateAccountingTransaction\" },\n {\n id: \"DocumentType\",\n fieldSettings: {\n displayName: \"Name\"\n },\n label: i18next.t(\"Document:PairedDocuments.DocumentType\")\n },\n {\n id: \"NumberOurs\",\n label: i18next.t(\"Document:PairedDocuments.Document\"),\n formatter: (val, args) => {\n return getTableIntentLink(val as string, {\n route: `${ROUTE_OTHER_LIABILITY}/${(args.storage.data.entity as IPrSalaryAdvanceEntity).PairedDocument?.Id}`,\n context: args.storage.context,\n storage: args.storage\n });\n }\n },\n {\n id: \"Amount\",\n formatter: (val, args) => documentTableAmountFormatter(args.entity, args.context),\n additionalProperties: [\n { id: \"TransactionAmount\" }, { id: \"TransactionCurrency\" }\n ]\n }\n ]\n }\n }\n ]\n }\n ]\n };\n return {\n entitySet: EntitySetName.PrSalaryAdvances,\n table,\n form\n };\n};\ngetDefinitions.translationFiles = [\"SalaryAdvances\", \"Common\", \"NumberRange\", \"Document\"];\nsetDefByEntityType(EntityTypeName.PrSalaryAdvance, getDefinitions);","import { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport {\n IPrSalaryComponentEntity,\n PrSalaryComponentEntity,\n PrSalaryComponentTemporalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n handleCurrentTemporalPropChange,\n setTemporalRequiredSelectDefaultPropertyBagValue\n} from \"@odata/TemporalUtils\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { createPath } from \"@odata/BindingContext\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass SalaryComponentFormView extends FormViewForExtend {\n static contextType = AppContext;\n static defaultProps = {\n title: \"SalaryComponent:FormTitle\"\n };\n\n async onAfterLoad(){\n\n const bindingContext = this.props.storage.data.bindingContext;\n\n if (bindingContext.isNew()) {\n setTemporalRequiredSelectDefaultPropertyBagValue(\n bindingContext.navigate(createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type)),\n this.props.storage\n );\n }\n return super.onAfterLoad();\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n handleCurrentTemporalPropChange(e, this.props.storage);\n this.props.storage.refreshFields(e.triggerAdditionalTasks);\n };\n}\n\nexport default withPermissionContext(SalaryComponentFormView);","import { TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n PrSalaryComponentEntity,\n PrSalaryComponentTemporalEntity,\n PrSalaryComponentTypeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrSalaryComponentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport {\n getTemporalAdditionalProperties,\n getTemporalPropertyFieldDefinition,\n TemporalValidityFieldsDef\n} from \"@odata/TemporalUtils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType, GroupedField, Sort, ValueType } from \"../../../enums\";\nimport { Model } from \"../../../model/Model\";\nimport CurrencyType, { formatCurrency } from \"../../../types/Currency\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef, ITableDefTabData } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport SalaryComponentFormView from \"./SalaryComponentFormView\";\n\n\nexport const getDefinitionsFactory = (inEditableWindow?: boolean, selectedIds?: number[]): IGetDefinition => {\n const getDefinitions: IGetDefinition = (): IDefinition => {\n\n const preventStoreVariant = inEditableWindow;\n\n let filter: string;\n if (selectedIds?.length) {\n filter = `not(${PrSalaryComponentEntity.Id} in (${transformToODataString(selectedIds, ValueType.Number)}))`;\n }\n\n const defaultTabs: ITableDefTabData[] = [\n { id: \"1\", title: i18next.t(\"SalaryComponent:Tabs.Active\") },\n { id: \"2\", title: i18next.t(\"SalaryComponent:Tabs.Inactive\") },\n { id: null, title: i18next.t(\"SalaryComponent:Tabs.All\") }\n ];\n const tabs: ITableDefTabData[] = inEditableWindow ? null : defaultTabs;\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrSalaryComponent}Table`,\n preventStoreVariant,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Name),\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type),\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Amount)\n ],\n filterDefinition: {\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type)]: {\n fieldSettings: {\n displayName: PrSalaryComponentTypeEntity.Name\n }\n },\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Name)]: {},\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Amount)]: {}\n },\n isValueHelp: true\n }],\n filter,\n initialSortBy: [{\n id: createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type),\n sort: Sort.Desc\n }],\n columns: [\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Name),\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type),\n createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Amount)\n ],\n columnDefinition: {\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type)]: {\n fieldSettings: {\n displayName: PrSalaryComponentTypeEntity.Name\n }\n },\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Name)]: {},\n [createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Amount)]: {\n formatter: (val, args) => {\n return formatCurrency(val, getCompanyCurrency(args.context));\n }\n }\n },\n title: i18next.t(\"SalaryComponent:Title\"),\n tabs,\n tabsSettings: {}\n };\n const summary: ISummaryItem[] = [];\n\n const temporalDialogSettings: TTemporalDialogSettings = {\n dialogTitle: i18next.t(\"SalaryComponent:Form.PlanSalaryComponentTitle\"),\n columns: [\n PrSalaryComponentTemporalEntity.Name,\n PrSalaryComponentTemporalEntity.Type,\n PrSalaryComponentTemporalEntity.Amount\n ]\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrSalaryComponent}Form`,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"SalaryComponent:New\"), i18next.t(\"SalaryComponent:FormTitle\")),\n isDeletable: true,\n formControl: SalaryComponentFormView,\n summary,\n additionalProperties: [\n ...getTemporalAdditionalProperties(PrSalaryComponentTemporalEntity, PrSalaryComponentEntity)\n ],\n fieldDefinition: {\n ...getTemporalPropertyFieldDefinition({\n propName: PrSalaryComponentTemporalEntity.Name,\n definition: {\n groupedField: GroupedField.MultiStart,\n fieldSettings: {\n temporalDialog: temporalDialogSettings\n }\n },\n withOpeningButton: false\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrSalaryComponentTemporalEntity.Type,\n definition: {\n width: BasicInputSizes.S,\n type: FieldType.ComboBox,\n defaultValue: PrSalaryComponentTypeCode.Monthly,\n fieldSettings: {\n displayName: PrSalaryComponentTypeEntity.Name\n }\n },\n withOpeningButton: false\n }),\n ...getTemporalPropertyFieldDefinition({\n propName: PrSalaryComponentTemporalEntity.Amount,\n definition: {\n groupedField: GroupedField.MultiEnd,\n fieldSettings: {\n temporalDialog: temporalDialogSettings,\n unit: args => CurrencyType.getCurrencyUnit(getCompanyCurrency(args.context))\n }\n }\n }),\n ...TemporalValidityFieldsDef\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [\n { id: createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Name) },\n { id: createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Type) },\n { id: createPath(PrSalaryComponentEntity.CurrentTemporalPropertyBag, PrSalaryComponentTemporalEntity.Amount) }\n ]\n\n ]\n }\n ]\n };\n return {\n entitySet: EntitySetName.PrSalaryComponents,\n table,\n form\n };\n };\n\n getDefinitions.translationFiles = [\"SalaryComponent\", \"Common\", getEnumNameSpaceName(EntityTypeName.PrSalaryComponentType)];\n\n return getDefinitions;\n};\n\nexport const getDefinitions = getDefinitionsFactory();\n\nsetDefByEntityType(EntityTypeName.PrSalaryComponent, getDefinitions);","export enum DeductionType {\n CzDisBasic2024 = \"CzDisBasic2024\", // Základní sleva na invaliditu\n CzDisExtended2024 = \"CzDisExtended2024\", // Rozšířená sleva na invaliditu\n CzDisZtpP2024 = \"CzDisZtpP2024\", // Sleva na držitele průkazu ZTP/P\n CzPayer2024 = \"CzPayer2024\" // Sleva na poplatníka\n}\n\nexport interface IDeductionTypePaths {\n switchPath: string;\n dateValidFrom: string;\n dateValidTo: string;\n}","import BindingContext, { createPath } from \"@odata/BindingContext\";\nimport { PrTaxpayerDeclarationDiscountEntity, PrTaxpayerDeclarationEntity } from \"@odata/GeneratedEntityTypes\";\n\nimport { DeductionType, IDeductionTypePaths } from \"./TaxpayerDeclaration.types\";\n\nexport const getTogglePropPath = (type: DeductionType): string => {\n return `##Show${type}##`;\n};\n\nexport const showChildrenPath = BindingContext.localContext(`Show${PrTaxpayerDeclarationEntity.Children}`);\n\nexport const getPathsForDeductionType = (type: DeductionType): IDeductionTypePaths => {\n return {\n switchPath: getTogglePropPath(type),\n dateValidFrom: BindingContext.localContext(createPath(type, PrTaxpayerDeclarationDiscountEntity.DateValidFrom)),\n dateValidTo: BindingContext.localContext(createPath(type, PrTaxpayerDeclarationDiscountEntity.DateValidTo))\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = /*#__PURE__*/React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\" + (Component.displayName || Component.name) + \")\";\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"size\", \"toggle\", \"vertical\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n vertical: false,\n toggle: false,\n role: 'group'\n};\nvar ButtonGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n toggle = _ref.toggle,\n vertical = _ref.vertical,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n var baseClass = prefix;\n if (vertical) baseClass = prefix + \"-vertical\";\n return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n className: classNames(className, baseClass, size && prefix + \"-\" + size, toggle && prefix + \"-toggle\")\n }));\n});\nButtonGroup.displayName = 'ButtonGroup';\nButtonGroup.defaultProps = defaultProps;\nexport default ButtonGroup;","import { addNewLineItem } from \"@components/smart/smartFastEntryList\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n EntitySetName,\n IPrTaxDiscountTypeEntity,\n IPrTaxpayerDeclarationDiscountEntity,\n IPrTaxpayerDeclarationEntity,\n PrTaxpayerDeclarationEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DeductionType } from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.types\";\nimport {\n getPathsForDeductionType,\n showChildrenPath\n} from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.utils\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\nimport { ButtonGroup } from \"react-bootstrap\";\n\nimport Switch, { SwitchType } from \"../../../components/inputs/switch/Switch\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport { FieldType } from \"../../../enums\";\nimport { IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\n\nexport interface ITaxPayerDeclarationCustomData extends IFormStorageDefaultCustomData {\n etag?: string;\n discountTypes?: Record;\n}\n\ninterface IProps extends IFormViewProps {\n}\n\nclass TaxpayerDeclarationFormView extends FormViewForExtend {\n loadPrTaxDiscountTypes = async (): Promise => {\n const res = await this.props.storage.oData.getEntitySetWrapper(EntitySetName.PrTaxDiscountTypes)\n .query()\n .fetchData();\n\n const discountTypes: Record = {};\n\n res.value?.forEach(discountType => {\n discountTypes[discountType.Code] = discountType;\n });\n\n this.props.storage.setCustomData({\n discountTypes\n });\n\n this.props.storage.refresh();\n };\n\n getAdditionalLoadPromise = () => {\n return [\n this.loadPrTaxDiscountTypes()\n ];\n };\n\n async onAfterLoad() {\n const storage = this.props.storage;\n \n storage.setCustomData({\n etag: null\n });\n\n if (!storage.data.bindingContext.isNew()) {\n this.fillLocalContextFieldsFromDiscounts();\n }\n\n const hasChildren = !!this.entity.Children?.length;\n storage.setValueByPath(showChildrenPath, hasChildren);\n\n return super.onAfterLoad();\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleChange(e);\n\n if (e.bindingContext.getPath() === showChildrenPath) {\n if (!e.value) {\n this.entity.Children = [];\n } else {\n addNewLineItem(this.props.storage, PrTaxpayerDeclarationEntity.Children);\n }\n }\n\n if (e.type === FieldType.Switch) {\n this.props.storage.refresh();\n } else {\n this.props.storage.refreshFields();\n }\n };\n\n handleCheck = async (checked: boolean): Promise => {\n this.entity.IsChecked = checked;\n\n this.props.storage.setBusy(true);\n const isSaved = await this.save();\n if (!isSaved) {\n this.entity.IsChecked = !checked;\n }\n };\n\n renderButtons = (): ReactElement => {\n return \n \n ;\n };\n\n fillLocalContextFieldsFromDiscounts = (): void => {\n this.entity.Discounts?.forEach(discount => {\n const {\n switchPath,\n dateValidFrom,\n dateValidTo\n } = getPathsForDeductionType(discount.DiscountTypeCode as DeductionType);\n\n this.props.storage.setValueByPath(switchPath, true);\n this.props.storage.setValueByPath(dateValidFrom, discount.DateValidFrom);\n this.props.storage.setValueByPath(dateValidTo, discount.DateValidTo);\n });\n }\n\n createDiscountsFromLocalContext = (): IPrTaxpayerDeclarationDiscountEntity[] => {\n const discounts: IPrTaxpayerDeclarationDiscountEntity[] = [];\n Object.values(DeductionType).forEach(type => {\n const { switchPath, dateValidFrom, dateValidTo } = getPathsForDeductionType(type);\n\n if (this.props.storage.getValueByPath(switchPath)) {\n const discount = {\n DiscountTypeCode: type,\n DateValidFrom: this.props.storage.getValueByPath(dateValidFrom),\n DateValidTo: this.props.storage.getValueByPath(dateValidTo)\n } as IPrTaxpayerDeclarationDiscountEntity;\n\n discounts.push(discount);\n }\n });\n return discounts;\n };\n\n onBeforeSave(data?: IPrTaxpayerDeclarationEntity): IPrTaxpayerDeclarationEntity {\n const storage = this.props.storage;\n storage.clearEmptyLineItems(PrTaxpayerDeclarationEntity.Children, true);\n const entity = cloneDeep(this.entity);\n entity.Discounts = this.createDiscountsFromLocalContext();\n\n return entity;\n }\n}\n\nexport default withPermissionContext(TaxpayerDeclarationFormView);","import { DateRangeSpecialValue } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { TCellValue } from \"@components/table\";\nimport BindingContext, { createPath } from \"@odata/BindingContext\";\nimport {\n EntitySetName,\n EntityTypeName,\n PrTaxpayerDeclarationChildEntity,\n PrTaxpayerDeclarationDiscountEntity,\n PrTaxpayerDeclarationEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { genericStatusFormatter } from \"@pages/chartOfAccounts/ChartOfAccountsDef\";\nimport { DeductionType } from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.types\";\nimport {\n getPathsForDeductionType,\n getTogglePropPath,\n showChildrenPath\n} from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclaration.utils\";\nimport TaxpayerDeclarationFormView from \"@pages/payroll/taxpayerDeclaration/TaxpayerDeclarationFormView\";\nimport i18next from \"i18next\";\n\nimport { FieldType, Sort, TextAlign } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition, TFieldsDefinition } from \"../../PageUtils\";\n\nconst switchDef = {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo,\n },\n customizationData: {\n useForCustomization: false\n }\n};\n\nconst getGroupForDeductionType = (type: DeductionType): IFormGroupDef => {\n return {\n id: type,\n isVisible: true, // todo check validitity (deduction types are in customData) - check against year of declaration\n title: i18next.t(`TaxpayerDeclaration:Types.${type}`),\n togglePropPath: getTogglePropPath(type),\n showGroupDivider: false,\n isSmallBottomMargin: true,\n isLightText: true,\n customizationData: {\n isLocked: true\n },\n rows: [[{\n id: BindingContext.localContext(createPath(type, PrTaxpayerDeclarationDiscountEntity.DateValidFrom))\n }, {\n id: BindingContext.localContext(createPath(type, PrTaxpayerDeclarationDiscountEntity.DateValidTo)),\n }]]\n };\n};\n\nconst getFieldDefinitions = () => {\n return Object.values(DeductionType).reduce((defs: TFieldsDefinition, type) => {\n const { switchPath, dateValidTo, dateValidFrom } = getPathsForDeductionType(type);\n const commonDateFieldProps = {\n type: FieldType.Date,\n isVisible: (args: IGetValueArgs) => {\n return !!args.storage.getValueByPath(switchPath);\n }\n };\n\n defs[switchPath] = {\n ...switchDef\n };\n defs[dateValidFrom] = {\n ...commonDateFieldProps,\n label: i18next.t(\"TaxpayerDeclaration:Form.DateValidFrom\"),\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutStart\n }\n };\n defs[dateValidTo] = {\n ...commonDateFieldProps,\n label: i18next.t(\"TaxpayerDeclaration:Form.DateValidTo\"),\n fieldSettings: {\n showSpecialValue: DateRangeSpecialValue.WithoutEnd\n }\n };\n return defs;\n }, {});\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrTaxpayerDeclaration}Table`,\n filter: (args: IGetValueArgs) => {\n const employeeId = (args.storage as TSmartODataTableStorage).getCustomData().rootStorage.data.bindingContext.getKey();\n return `${PrTaxpayerDeclarationEntity.Employee}/Id eq ${employeeId}`;\n },\n filterBarDef: [],\n columns: [\n PrTaxpayerDeclarationEntity.Year,\n PrTaxpayerDeclarationEntity.IsChecked\n ],\n columnDefinition: {\n [PrTaxpayerDeclarationEntity.Year]: {\n formatter: val => val?.toString()\n },\n [PrTaxpayerDeclarationEntity.IsChecked]: {\n textAlign: TextAlign.Center,\n formatter: (val: TValue): TCellValue => {\n return genericStatusFormatter(val as boolean);\n }\n }\n },\n preventStoreVariant: true,\n title: i18next.t(\"TaxpayerDeclaration:Title\"),\n initialSortBy: [{ id: PrTaxpayerDeclarationEntity.Year, sort: Sort.Asc }]\n };\n\n const summary: ISummaryItem[] = [{\n id: PrTaxpayerDeclarationEntity.Year\n }];\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrTaxpayerDeclaration}Form`,\n translationFiles: getDefinitions.translationFiles,\n formControl: TaxpayerDeclarationFormView,\n isDeletable: true,\n summary,\n title: i18next.t(\"TaxpayerDeclaration:FormTitle\"),\n additionalProperties: [{\n id: PrTaxpayerDeclarationEntity.IsChecked\n }, {\n id: PrTaxpayerDeclarationEntity.Children\n }, {\n id: PrTaxpayerDeclarationEntity.Discounts,\n additionalProperties: [{\n id: PrTaxpayerDeclarationDiscountEntity.DiscountType\n }, {\n id: PrTaxpayerDeclarationDiscountEntity.DateValidFrom\n }, {\n id: PrTaxpayerDeclarationDiscountEntity.DateValidTo\n }]\n }],\n isReadOnly: (args: IGetValueArgs) => {\n return args.data?.IsChecked;\n },\n fieldDefinition: {\n ...getFieldDefinitions(),\n [showChildrenPath]: {\n ...switchDef\n },\n [createPath(PrTaxpayerDeclarationEntity.Children, PrTaxpayerDeclarationChildEntity.FirstName)]: {},\n [createPath(PrTaxpayerDeclarationEntity.Children, PrTaxpayerDeclarationChildEntity.LastName)]: {},\n [createPath(PrTaxpayerDeclarationEntity.Children, PrTaxpayerDeclarationChildEntity.PersonalIdentificationNumber)]: {},\n },\n groups: [\n getGroupForDeductionType(DeductionType.CzPayer2024),\n {\n id: PrTaxpayerDeclarationEntity.Children,\n title: i18next.t(\"TaxpayerDeclaration:Types.Children\"),\n togglePropPath: showChildrenPath,\n showGroupDivider: false,\n isSmallBottomMargin: true,\n isLightText: true,\n lineItems: {\n additionalFields: [],\n collection: PrTaxpayerDeclarationEntity.Children,\n order: \"Id\",\n canAdd: args => args.storage.getValueByPath(showChildrenPath),\n isItemVisible: args => args.storage.getValueByPath(showChildrenPath),\n columns: [\n { id: PrTaxpayerDeclarationChildEntity.FirstName },\n { id: PrTaxpayerDeclarationChildEntity.LastName },\n { id: PrTaxpayerDeclarationChildEntity.PersonalIdentificationNumber }\n ]\n }\n },\n getGroupForDeductionType(DeductionType.CzDisBasic2024),\n getGroupForDeductionType(DeductionType.CzDisExtended2024),\n getGroupForDeductionType(DeductionType.CzDisZtpP2024),\n ]\n };\n\n return {\n entitySet: EntitySetName.PrTaxpayerDeclarations,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"TaxpayerDeclaration\"];\n\nsetDefByEntityType(EntityTypeName.PrTaxpayerDeclaration, getDefinitions);","import { getHourDifference, longDateFormat } from \"@components/inputs/date/utils\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { DASH_CHARACTER } from \"../../../constants\";\nimport DateType, { getDateFormat, getUtcDayjs } from \"../../../types/Date\";\n\nexport const WORKING_HOURS_DECIMAL_PLACES = 3;\n\nexport const getHoursDiffFormatted = (start: Date, end: Date): string => {\n const diff = getHourDifference(getUtcDayjs(start), getUtcDayjs(end));\n if (isNotDefined(start) || isNotDefined(end) || isNaN(diff)) {\n return DASH_CHARACTER;\n }\n const dateDiff = getUtcDayjs().startOf(\"day\").add(diff, \"hours\");\n const formattedValue = DateType.format(dateDiff, longDateFormat(getDateFormat(DateType.defaultTimeFormat)));\n return `${formattedValue} ${i18next.t(\"Components:Calendar.HourPlaceholder\")}`;\n};","import styled from \"styled-components/macro\";\nimport { NumericInput } from \"../numericInput/NumericInput\";\nimport { InputHoverContainer, StyledHtmlInput } from \"../input/Input.styles\";\n\nexport const StyledNumericInput = styled(NumericInput)<{\n $isSelected?: boolean;\n $hasError?: boolean;\n}>`\n background: ${props => props.$isSelected ? props.theme.C_ACT_hover_without_opacity : \"\"};\n border: 1px solid ${props => props.$hasError ? props.theme.C_SEM_el_bad : \"inherit\"};\n\n &:focus-within {\n background: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n\n ${StyledHtmlInput} {\n text-align: center;\n padding: 0;\n margin: 0;\n background: inherit;\n \n &:focus::placeholder {\n color: transparent;\n }\n }\n \n ${InputHoverContainer} {\n padding: 5px;\n &:after {\n display: ${props => props.$isSelected ? \"block\" : \"none\"};\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n top: -1px;\n left: -1px;\n }\n }\n \n width: 34px;\n`;","import React, { Component } from \"react\";\nimport { IInputOnChangeEvent, IInputProps } from \"../input\";\nimport { TextAlign } from \"../../../enums\";\nimport { StyledNumericInput } from \"./DayInput.styles\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Dayjs } from \"dayjs\";\nimport { KeyName } from \"../../../keyName\";\n\nexport interface IProps extends WithTranslation, Omit {\n date: Dayjs;\n value: number;\n onChange: (val: number, date: Dayjs) => void;\n onDaySelect: (date: Dayjs) => void;\n isSelected: boolean;\n hasError: boolean;\n}\n\nclass DayInput extends Component {\n handleChange = (args: IInputOnChangeEvent) => {\n this.props.onChange(args.value, this.props.date);\n };\n\n handleSelect = () => {\n return this.props.onDaySelect(this.props.date);\n };\n\n handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter) {\n return this.props.onDaySelect(this.props.date);\n }\n }\n\n render() {\n return <>\n \n ;\n }\n}\n\nexport default withTranslation([\"Components\"])(DayInput);","import styled from \"styled-components/macro\";\nimport { T_TITLE_4 } from \"../../global.style\";\nimport MonthYearSelector from \"../inputs/date/MonthYearSelector\";\n\nconst dayInputWidth = 34;\n\nexport const CalendarGrid = styled.div<{\n rowLength: number\n}>`\n display: grid;\n grid-gap: 12px;\n grid-template-columns: ${props => `repeat(${props.rowLength}, 1fr)`};\n`;\n\nexport const DayLabel = styled.div`\n text-transform: uppercase;\n ${T_TITLE_4};\n text-align: center;\n width: ${dayInputWidth} px;\n margin-bottom: -10px;\n`;\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const DayGridPlaceholder = styled.div``;\n\n\nexport const MonthYearSelectorStyled = styled(MonthYearSelector)`\n margin-bottom: 20px;\n`;","import { PrWorkingPatternTypeCode } from \"@odata/GeneratedEnums\";\nimport { repeatArray } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport { range } from \"lodash\";\nimport React, { Component, ReactElement } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { getUtcDate, getUtcDayjs } from \"../../types/Date\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport {\n formatDateToDateString,\n getDaysInterval,\n getMonthDays,\n getMonthFirstDayWeekOffset,\n getNextMonday,\n getWeekdays,\n isSameDay\n} from \"../inputs/date/utils\";\nimport DayInput from \"../inputs/dayInput/DayInput\";\nimport { IInputOnChangeEvent } from \"../inputs/input\";\nimport {\n CalendarGrid,\n DayGridPlaceholder,\n DayLabel,\n MonthYearSelectorStyled,\n Wrapper\n} from \"./CalendarWithInputs.styles\";\n\nexport interface IProps extends WithTranslation {\n startDate?: Dayjs;\n onChange: (val: number, day: Dayjs) => void;\n onSelect?: (day: Dayjs) => void;\n onMonthChange?: (day: Dayjs) => void;\n type: PrWorkingPatternTypeCode;\n rotationLength?: number;\n isDifferentOddAndEvenWeek?: boolean;\n daysValuesMap?: Record;\n daysWithError?: string[];\n}\n\ninterface IState {\n startDate: Dayjs;\n selectedDay: string;\n}\n\nclass CalendarWithInputs extends Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n startDate: props.startDate ?? getUtcDayjs(),\n selectedDay: null\n };\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (!isSameDay(this.props.startDate, prevProps.startDate)) {\n this.setCorrectStartDate();\n }\n }\n\n get isRotation(): boolean {\n return this.props.type === PrWorkingPatternTypeCode.Rotation;\n }\n\n get isMonthly(): boolean {\n return this.props.type === PrWorkingPatternTypeCode.Monthly;\n }\n\n setCorrectStartDate = (): void => {\n const startDate = this.props.startDate ?? this.state.startDate ?? getUtcDayjs();\n this.setState({ startDate });\n };\n\n changeMonth = (startDate: Dayjs): void => {\n this.setState({ startDate, selectedDay: null });\n this.props.onSelect?.(null);\n this.props.onMonthChange?.(startDate);\n };\n\n handleMonthChange = (e: IInputOnChangeEvent): void => {\n this.changeMonth(getUtcDayjs(e.value));\n };\n\n renderMonthYearPicker = (): ReactElement => {\n if (!this.isMonthly) {\n return null;\n }\n\n const value = this.state.startDate?.toDate() ?? getUtcDate();\n\n return (\n \n );\n };\n\n handleChange = (val: number, date: Dayjs) => {\n if (val <= 48) {\n this.props.onChange(val, date);\n }\n };\n\n handleDaySelect = (date: Dayjs) => {\n this.setState({\n selectedDay: formatDateToDateString(date)\n });\n this.props.onSelect(date);\n };\n\n get intervalLength(): number {\n return this.isRotation ? this.props.rotationLength : this.props.isDifferentOddAndEvenWeek ? 14 : 7;\n }\n\n getDays = memoizeOne(() => {\n if (this.isMonthly) {\n return getMonthDays(this.state.startDate);\n }\n return getDaysInterval(this.isRotation ? this.state.startDate : getNextMonday(this.state.startDate, this.props.isDifferentOddAndEvenWeek), this.intervalLength);\n }, () => [formatDateToDateString(this.state.startDate), this.props.type, this.props.isDifferentOddAndEvenWeek, this.intervalLength]);\n\n\n render() {\n const weekdays = getWeekdays();\n const weekdayOffset = getMonthFirstDayWeekOffset(this.state.startDate);\n const length = this.intervalLength;\n const weeks = this.isRotation && length ? Math.ceil(length / 7) + 1 : 1;\n let weekdayLabels = repeatArray(weekdays, weeks);\n const days = this.getDays();\n\n if (this.isRotation) {\n if (!length || !this.state.startDate) {\n weekdayLabels = [];\n } else {\n const offset = (this.state.startDate.day() + 6) % 7;\n weekdayLabels = weekdayLabels.slice(offset, Math.min(length, 7) + offset);\n }\n }\n\n return \n {this.renderMonthYearPicker()}\n \n {weekdayLabels.map((day, index) => {day})}\n {this.isMonthly && range(weekdayOffset).map((index) => )}\n {days.map((day) => {\n const id = formatDateToDateString(day);\n return ;\n })}\n \n ;\n }\n}\n\nexport default withTranslation([\"Components\"])(CalendarWithInputs);","import styled from \"styled-components/macro\";\nimport { T_PLAIN_big } from \"../../../global.style\";\nimport { StyledIconButton } from \"@components/button\";\nimport { StyledText } from \"@components/text/Text.styles\";\n\nexport const CalendarFieldWrapper = styled.div<{\n isDifferentOddAndEvenWeek: boolean\n}>`\n display: flex;\n flex-direction: ${props => props.isDifferentOddAndEvenWeek ? \"row\" : \"column\"};\n margin-right: 60px;\n margin-bottom: 40px;\n align-self: flex-start;\n`;\n\nexport const AdditionalCalendarInfo = styled.div`\n ${T_PLAIN_big};\n display: flex;\n flex-direction: column;\n row-gap: 5px;\n margin-top: 20px;\n`;\n\nexport const WorkDayIntervalsFastEntryWrapper = styled.div`\n align-self: flex-start;\n min-width: 340px;\n\n ${StyledText} {\n min-width: 50px;\n }\n`;\n\nexport const WorkDayIntervalsFastEntryHeader = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 15px;\n\n ${StyledIconButton} {\n margin-left: 15px;\n }\n`;\n\nexport const WeekContentAfter = styled.div`\n padding: 28px 13px;\n\n & > div:nth-of-type(2) {\n margin-top: 27px;\n }\n`;","import { formatDateToDateString, getHourDifference, isSameDay, isSameMonth } from \"@components/inputs/date/utils\";\nimport { addEmptyLineItem } from \"@components/smart/smartFastEntryList\";\nimport { getNewItemsMaxId } from \"@odata/Data.utils\";\nimport {\n IPrWorkingPatternDayEntity,\n IPrWorkingPatternDayIntervalEntity,\n IPrWorkingPatternEntity,\n PrWorkingPatternDayEntity,\n PrWorkingPatternDayIntervalEntity,\n PrWorkingPatternEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrWorkingPatternTypeCode, PrWorkIntervalTypeCode } from \"@odata/GeneratedEnums\";\nimport { getHoursFromTimeStamp, getTimeSpanFromHours } from \"@pages/payroll/attendance/Attendance.utils\";\nimport { isNotDefined } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport React, { Component } from \"react\";\n\nimport CalendarWithInputs from \"../../../components/calendarWithInputs/CalendarWithInputs\";\nimport { BREAK_LENGTH, WORK_LENGTH } from \"../../../constants\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport NumberType from \"../../../types/Number\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { AdditionalCalendarInfo, CalendarFieldWrapper, WeekContentAfter } from \"./WorkingPattern.styles\";\nimport { dateStartPath, rotationLengthPath, timeDiffPath } from \"./WorkingPatternsDef\";\nimport { IWorkingPatternCustomData } from \"./WorkingPatternsFormView\";\n\ninterface IProps {\n storage: FormStorage\n}\n\nexport class SmartCalendarWrapper extends Component {\n getNewEmptyIntervalLineItem = (newItemsMax?: number): Partial => {\n const storage = this.props.storage;\n return addEmptyLineItem({\n storage,\n bindingContext: this.props.storage.data.bindingContext.navigate(PrWorkingPatternEntity.Days).navigate(PrWorkingPatternDayEntity.Intervals),\n newItemsCount: (newItemsMax ?? 0) + 1,\n columns: [{\n id: PrWorkingPatternDayIntervalEntity.TimeStart\n }, {\n id: PrWorkingPatternDayIntervalEntity.TimeEnd\n }, {\n id: timeDiffPath\n }],\n context: storage.context\n });\n };\n\n createDefaultIntervals = (workingHours: number): IPrWorkingPatternDayIntervalEntity[] => {\n const storage = this.props.storage;\n const intervals: IPrWorkingPatternDayIntervalEntity[] = [];\n\n let hoursLeft = workingHours;\n let lastWasBreak = true;\n let startDate = getUtcDayjs(storage.data.entity.DefaultDayStart) ?? getUtcDayjs().startOf(\"day\").add(8, \"hours\");\n\n while (hoursLeft > 0) {\n const endDate = startDate.clone().add(Math.min(hoursLeft, (lastWasBreak ? WORK_LENGTH : BREAK_LENGTH)), \"hours\");\n let newInterval = this.getNewEmptyIntervalLineItem(intervals.length);\n newInterval = {\n ...newInterval,\n TimeStart: startDate.clone().toDate(),\n TimeEnd: endDate.toDate(),\n Type: {\n Code: lastWasBreak ? PrWorkIntervalTypeCode.Work : PrWorkIntervalTypeCode.MealBreak\n }\n };\n startDate = endDate.clone();\n intervals.push(newInterval);\n if (lastWasBreak) {\n hoursLeft -= WORK_LENGTH;\n }\n lastWasBreak = !lastWasBreak;\n }\n return intervals;\n };\n\n handleChange = (val: number, day: Dayjs): void => {\n const storage = this.props.storage;\n const entity = storage.getEntity();\n const intervals = this.createDefaultIntervals(val);\n\n const editedDay = entity.Days.find(d => isSameDay(day, getUtcDayjs(d.Date)));\n if (editedDay) {\n editedDay.WorkingHours = getTimeSpanFromHours(val);\n editedDay.Intervals = intervals;\n } else {\n const newItemsMax = getNewItemsMaxId(entity.Days);\n const newDay = BindingContext.createNewEntity(newItemsMax + 1, {\n Date: day.toDate(),\n WorkingHours: getTimeSpanFromHours(val),\n Intervals: intervals\n });\n entity.Days.push(newDay);\n this.handleSelect(day);\n }\n this.props.storage.refresh();\n };\n\n handleSelect = (day: Dayjs): void => {\n const storage = this.props.storage;\n if (isNotDefined(day)) {\n storage.setCustomData({ selectedDay: null });\n storage.refresh();\n return;\n }\n\n const entity = this.props.storage.getEntity();\n const editedDay = entity.Days?.find(d => isSameDay(day, getUtcDayjs(d.Date)));\n const daysBc = this.props.storage.data.bindingContext.navigate(PrWorkingPatternEntity.Days);\n\n const newEmptyInterval = {\n ...this.getNewEmptyIntervalLineItem(),\n Type: {\n Code: PrWorkIntervalTypeCode.Work\n }\n };\n\n if (editedDay) {\n const id = editedDay[BindingContext.NEW_ENTITY_ID_PROP] ?? editedDay.Id;\n const bc = daysBc.addKey(id, !!editedDay[BindingContext.NEW_ENTITY_ID_PROP]);\n if (!editedDay.Intervals?.length) {\n editedDay.Intervals = [newEmptyInterval];\n }\n this.props.storage.setCustomData({ selectedDay: bc });\n } else {\n const newItemsMax = getNewItemsMaxId(entity.Days);\n const newDay = BindingContext.createNewEntity(newItemsMax + 1, {\n Date: day.toDate(),\n Intervals: [newEmptyInterval]\n });\n entity.Days.push(newDay);\n const bc = this.props.storage.data.bindingContext.navigate(PrWorkingPatternEntity.Days).addKey(newDay[BindingContext.NEW_ENTITY_ID_PROP], true);\n this.props.storage.setCustomData({ selectedDay: bc });\n }\n this.props.storage.refresh();\n };\n\n handleMonthChange = (day: Dayjs): void => {\n this.props.storage.setCustomData({\n selectedMonth: day\n });\n this.props.storage.refresh();\n };\n\n daysValueMap = (): Record => {\n const entity = this.props.storage.data.entity as IPrWorkingPatternEntity;\n\n return (entity.Days ?? []).reduce((map, day) => {\n map[formatDateToDateString(day.Date)] = getHoursFromTimeStamp(day.WorkingHours);\n return map;\n }, {} as Record);\n };\n\n formatHoursString = (hours: number): string => {\n return `${NumberType.format(hours, { maximumFractionDigits: 2 })} ${this.props.storage.t(\"Components:Calendar.HourPlaceholder\")}`;\n };\n\n get totalWorkingHoursForCurrentMonth(): number {\n const entity = this.props.storage.data.entity;\n const selectedMonth = this.props.storage.getCustomData().selectedMonth ?? getUtcDayjs(entity.Days?.[0]?.Date);\n return entity.Days?.filter(d => isSameMonth(d.Date, selectedMonth.toDate()))?.reduce((count, day) => {\n count += getHoursFromTimeStamp(day.WorkingHours) ?? 0;\n return count;\n }, 0);\n }\n\n get remainingWorkingHoursForCurrentMonth(): number {\n const entity = this.props.storage.data.entity;\n const selectedMonth = this.props.storage.getCustomData().selectedMonth ?? getUtcDayjs(entity.Days?.[0]?.Date);\n const workHours = entity.Days?.filter(d => isSameMonth(d.Date, selectedMonth.toDate()))?.reduce((count, day) => {\n const plannedHours = day.Intervals?.filter(interval => interval.Type?.Code === PrWorkIntervalTypeCode.Work).reduce((count, interval) => {\n if (isNotDefined(interval.TimeStart) || isNotDefined(interval.TimeEnd)) {\n return count;\n }\n count += getHourDifference(getUtcDayjs(interval.TimeStart), getUtcDayjs(interval.TimeEnd));\n return count;\n }, 0);\n count += plannedHours ?? 0;\n return count;\n }, 0);\n return this.totalWorkingHoursForCurrentMonth - workHours;\n }\n\n render() {\n const type = this.props.storage.getValueByPath(PrWorkingPatternEntity.TypeCode);\n const rotationLength = Math.min(this.props.storage.getValueByPath(rotationLengthPath), 365);\n const isDifferentOddAndEvenWeek = this.props.storage.getValueByPath(PrWorkingPatternEntity.IsDifferentOddAndEvenWeek);\n const startDate = getUtcDayjs(this.props.storage.getValueByPath(dateStartPath));\n\n return \n \n {type === PrWorkingPatternTypeCode.Monthly && \n
    \n {this.props.storage.t(\"WorkingPatterns:WorkingTimePool\")} \n {this.formatHoursString(this.totalWorkingHoursForCurrentMonth)}\n
    \n {/*
    \n {this.props.storage.t(\"WorkingPatterns:RemainsToPlan\")} {this.formatHoursString(this.remainingWorkingHoursForCurrentMonth)}\n
    */}\n
    }\n {type === PrWorkingPatternTypeCode.Weekly && isDifferentOddAndEvenWeek &&\n \n
    {this.props.storage.t(\"WorkingPatterns:Even\")}
    \n
    {this.props.storage.t(\"WorkingPatterns:Odd\")}
    \n
    \n }\n
    ;\n }\n}","import { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport { CopyIcon } from \"@components/icon\";\nimport { getHourDifference, isValidDate } from \"@components/inputs/date/utils\";\nimport { IFieldDef } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n IPrWorkingPatternDayEntity,\n IPrWorkingPatternDayIntervalEntity,\n IPrWorkingPatternEntity,\n PrWorkingPatternDayEntity,\n PrWorkingPatternDayIntervalEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrWorkIntervalTypeCode } from \"@odata/GeneratedEnums\";\nimport { getHoursFromTimeStamp, getTimeSpanFromHours } from \"@pages/payroll/attendance/Attendance.utils\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React, { Component } from \"react\";\n\nimport { Button } from \"../../../components/button\";\nimport SmartFastEntryList, { ISmartFastEntriesActionEvent } from \"../../../components/smart/smartFastEntryList\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport NumberType from \"../../../types/Number\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { WorkDayIntervalsFastEntryHeader, WorkDayIntervalsFastEntryWrapper } from \"./WorkingPattern.styles\";\nimport { WORKING_HOURS_DECIMAL_PLACES } from \"./WorkingPatterns.utils\";\nimport { timeDiffPath } from \"./WorkingPatternsDef\";\nimport { IWorkingPatternCustomData } from \"./WorkingPatternsFormView\";\n\ninterface IProps extends WithConfirmationDialog {\n storage: FormStorage\n}\n\nclass WorkDayIntervalsFastEntry extends Component {\n get selectedDay(): IPrWorkingPatternDayEntity {\n const selectedDay = this.props.storage.getCustomData().selectedDay;\n return selectedDay ? this.props.storage.getValue(selectedDay) : null;\n }\n\n get selectedDayBc(): BindingContext {\n return this.props.storage.getCustomData().selectedDay;\n }\n\n get columns(): IFieldDef[] {\n return [{\n id: PrWorkingPatternDayIntervalEntity.Type\n }, {\n id: PrWorkingPatternDayIntervalEntity.TimeStart\n }, {\n id: PrWorkingPatternDayIntervalEntity.TimeEnd\n }, {\n id: timeDiffPath\n }];\n }\n\n handleChange = (e: ISmartFieldChange): void => {\n const storage = this.props.storage;\n storage.handleLineItemsChange(e);\n storage.refreshFields();\n\n if (isValidDate(e.value as Date) || e.bindingContext.getPath() === PrWorkingPatternDayIntervalEntity.Type) {\n this.recalculateWorkingHours();\n // refresh local context field with hours diff\n this.props.storage.refresh();\n }\n };\n\n recalculateWorkingHours = (): void => {\n const workingHours = this.selectedDay.Intervals?.filter(i => {\n return isValidDate(i.TimeStart) && isValidDate(i.TimeEnd) && i.Type?.Code === PrWorkIntervalTypeCode.Work;\n })?.reduce((acc, i) => {\n const timeDiff = getHourDifference(getUtcDayjs(i.TimeStart), getUtcDayjs(i.TimeEnd));\n return acc + timeDiff;\n }, 0) ?? 0;\n this.selectedDay.WorkingHours = getTimeSpanFromHours(roundToDecimalPlaces(WORKING_HOURS_DECIMAL_PLACES, workingHours));\n this.props.storage.refresh();\n }\n\n handleClone = async (): Promise => {\n const isConfirmed = await this.props.confirmationDialog.open({\n content: this.props.storage.t(\"WorkingPatterns:ConfirmationText\", { hours: getHoursFromTimeStamp(this.selectedDay.WorkingHours) })\n });\n\n if (isConfirmed) {\n const entity = this.props.storage.data.entity as IPrWorkingPatternEntity;\n const daysWithSameWH = entity.Days.filter(d => (getHoursFromTimeStamp(d.WorkingHours) === getHoursFromTimeStamp(this.selectedDay.WorkingHours)));\n for (const day of daysWithSameWH) {\n day.Intervals = cloneDeep(this.selectedDay.Intervals);\n }\n this.props.storage.refresh();\n }\n };\n\n get isCloningDisabled(): boolean {\n return false;\n // return !this.selectedDay.Intervals.length;\n }\n\n handleAction = (e: ISmartFastEntriesActionEvent) => {\n this.props.storage.handleLineItemsAction(e);\n this.props.storage.refresh();\n };\n\n render() {\n if (!this.selectedDay) {\n return null;\n }\n return \n \n {`${this.props.storage.t(\"WorkingPatterns:Interval\")} ${NumberType.format(getHoursFromTimeStamp(this.selectedDay.WorkingHours) ?? 0)} ${this.props.storage.t(\"Components:Calendar.HourPlaceholder\")}`}\n }\n />\n \n \n ;\n }\n}\n\nexport default withConfirmationDialog(WorkDayIntervalsFastEntry);","import { getMonthDays, isSameDay, isSameMonth } from \"@components/inputs/date/utils\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n IPrWorkingPatternDayEntity,\n IPrWorkingPatternEntity,\n PrWorkingPatternEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrWorkingPatternTypeCode } from \"@odata/GeneratedEnums\";\nimport { Dayjs } from \"dayjs\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../../contexts/permissionContext/withPermissionContext\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../../views/formView/FormView\";\nimport { getTimeSpanFromHours, transformWorkIntervalsBeforeSave } from \"../attendance/Attendance.utils\";\nimport { dateStartPath, rotationLengthPath } from \"./WorkingPatternsDef\";\n\n\nexport interface IWorkingPatternCustomData extends IFormStorageDefaultCustomData {\n selectedDay: BindingContext;\n selectedMonth: Dayjs;\n}\n\ninterface IProps extends IFormViewProps {\n}\n\nclass WorkingPatternsFormView extends FormViewForExtend {\n static contextType = AppContext;\n\n static defaultProps = {\n title: \"WorkingPatterns:FormTitle\"\n };\n\n onAfterLoad() {\n if (!this.props.storage.data.bindingContext.isNew()) {\n const sortedDays = this.entity.Days?.sort((day, day2) => getUtcDayjs(day.Date).diff(day2.Date));\n const date = this.entity.TypeCode === PrWorkingPatternTypeCode.Monthly ? sortedDays[sortedDays.length - 1].Date : sortedDays[0].Date;\n this.props.storage.setValueByPath(dateStartPath, date ?? getUtcDate());\n this.props.storage.setCustomData({\n selectedMonth: getUtcDayjs(date)\n });\n if (this.entity.TypeCode === PrWorkingPatternTypeCode.Rotation) {\n this.props.storage.setValueByPath(rotationLengthPath, this.entity.Days?.length ?? 0);\n }\n } else {\n this.props.storage.setCustomData({\n selectedMonth: getUtcDayjs()\n });\n }\n\n if (!this.entity.Days) {\n this.entity.Days = [];\n }\n return super.onAfterLoad();\n }\n\n handleTypeChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === PrWorkingPatternEntity.TypeCode) {\n if (this.entity.TypeCode !== e.value) {\n const isNew = this.props.storage.data.bindingContext.isNew();\n const origEntity = this.props.storage.data.origEntity;\n this.entity.Days = !isNew && e.value === origEntity.TypeCode ? origEntity.Days : [];\n this.props.storage.setCustomData({\n selectedDay: null\n });\n }\n }\n };\n\n handleDateStartChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === dateStartPath) {\n if (!isSameDay(getUtcDayjs(e.value as Date), getUtcDayjs(this.props.storage.getValueByPath(dateStartPath)))) {\n this.entity.Days = [];\n this.props.storage.setCustomData({\n selectedDay: null\n });\n }\n }\n };\n\n handleChange = (e: ISmartFieldChange): void => {\n this.handleTypeChange(e);\n this.handleDateStartChange(e);\n\n this.props.storage.handleChange(e);\n\n if (e.bindingContext.getPath() === PrWorkingPatternEntity.DefaultDayStart) {\n this.props.storage.refreshFields();\n } else {\n this.props.storage.refresh();\n }\n };\n\n fillWithDefaultZeros = (data: IPrWorkingPatternEntity): IPrWorkingPatternEntity => {\n const sortedDays = data.Days.sort((day1, day2) => {\n return getUtcDayjs(day1.Date).diff(day2.Date);\n });\n\n function findDay(d: IPrWorkingPatternDayEntity) {\n return isSameDay(getUtcDayjs(d.Date), date);\n }\n\n let date: Dayjs;\n let length: number;\n switch (data.TypeCode) {\n case PrWorkingPatternTypeCode.Weekly:\n date = getUtcDayjs(sortedDays[0].Date).clone().startOf(\"week\");\n length = data.IsDifferentOddAndEvenWeek ? 14 : 7;\n break;\n case PrWorkingPatternTypeCode.Monthly:\n date = getUtcDayjs(sortedDays[0].Date).clone().startOf(\"month\");\n length = getMonthDays(getUtcDayjs(sortedDays[0].Date)).length;\n break;\n case PrWorkingPatternTypeCode.Rotation:\n date = getUtcDayjs(this.props.storage.getValueByPath(dateStartPath));\n length = this.props.storage.getValueByPath(rotationLengthPath);\n break;\n }\n\n const days: IPrWorkingPatternDayEntity[] = [];\n\n for (let i = 0; i < length; i++) {\n const day = sortedDays.find(findDay);\n\n days.push(day ?? {\n Date: date.toDate(),\n WorkingHours: getTimeSpanFromHours(0)\n });\n date = date.add(1, \"day\");\n }\n\n data.Days = days;\n return data;\n };\n\n onBeforeSave(): IPrWorkingPatternEntity {\n const data = this.entity;\n // if switched and edited another month, throw away all changes in previous one\n const selectedMonth = this.props.storage.getCustomData().selectedMonth;\n if (data.TypeCode === PrWorkingPatternTypeCode.Monthly && data.Days?.length && selectedMonth) {\n data.Days = data.Days.filter(d => isSameMonth(d.Date, selectedMonth.toDate()));\n }\n\n for (const day of (data.Days ?? [])) {\n if (!day.WorkingHours) {\n day.WorkingHours = getTimeSpanFromHours(0);\n day.Intervals = [];\n } else {\n day.Intervals = transformWorkIntervalsBeforeSave(day.Intervals);\n }\n }\n\n const res = this.fillWithDefaultZeros(data);\n\n if (data.TypeCode === PrWorkingPatternTypeCode.Monthly && !this.props.storage.data.bindingContext.isNew()) {\n // we cannot remove days from other months, so we have to merge it here or in the future maybe handle every month specially\n const origDays = this.props.storage.data.origEntity?.Days?.filter(day => !isSameMonth(day.Date, selectedMonth.toDate())) ?? [];\n res.Days = [...origDays, ...res.Days];\n }\n\n return res;\n }\n}\n\nexport default withPermissionContext(WorkingPatternsFormView);","import { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { getDaysUnit, IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { getCommonFilterDefs, withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport { FilterBarGroup, getDefaultFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n EntitySetName,\n EntityTypeName,\n IPrWorkingPatternDayEntity,\n IPrWorkingPatternDayIntervalEntity,\n IPrWorkingPatternEntity,\n PrWorkingPatternDayEntity,\n PrWorkingPatternDayIntervalEntity,\n PrWorkingPatternEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { PrWorkingPatternTypeCode, PrWorkIntervalTypeCode } from \"@odata/GeneratedEnums\";\nimport { getHoursDiffFormatted } from \"@pages/payroll/workingPatterns/WorkingPatterns.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, CacheStrategy, FieldType, LabelStatus, Sort, TextAlign, ValidatorType } from \"../../../enums\";\nimport BindingContext, { createPath } from \"../../../odata/BindingContext\";\nimport { getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { activeFormatter } from \"../../chartOfAccounts/ChartOfAccountsDef\";\nimport { setDefByEntityType } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { SmartCalendarWrapper } from \"./SmartCalendarWrapper\";\nimport WorkDayIntervalsFastEntry from \"./WorkDayIntervalsFastEntry\";\nimport WorkingPatternsFormView, { IWorkingPatternCustomData } from \"./WorkingPatternsFormView\";\n\nexport const calendarPath = BindingContext.localContext(\"Calendar\");\nexport const rotationLengthPath = BindingContext.localContext(\"RotationLength\");\nexport const dateStartPath = BindingContext.localContext(\"DateStart\");\nexport const workDayIntervalsFastEntryPath = BindingContext.localContext(\"WorkDayIntervalsFastEntry\");\nexport const timeDiffPath = BindingContext.localContext(\"TimeDiff\");\n\nconst isRotation = (args: IGetValueArgs): boolean => {\n return args.storage.getValueByPath(PrWorkingPatternEntity.TypeCode) === PrWorkingPatternTypeCode.Rotation;\n};\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.PrWorkingPattern}Table`,\n filterBarDef: [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n PrWorkingPatternEntity.Name,\n PrWorkingPatternEntity.Type,\n PrWorkingPatternEntity.IsActive\n ],\n filterDefinition: {\n ...getCommonFilterDefs(),\n Name: {},\n IsActive: {},\n ...withDisplayName(PrWorkingPatternEntity.Type)\n },\n isValueHelp: true\n }],\n initialSortBy: [{ id: PrWorkingPatternEntity.Name, sort: Sort.Desc }],\n columns: [\n PrWorkingPatternEntity.Name,\n PrWorkingPatternEntity.Type,\n PrWorkingPatternEntity.IsActive\n ],\n columnDefinition: {\n Name: {},\n IsActive: {\n id: PrWorkingPatternEntity.IsActive,\n textAlign: TextAlign.Center,\n formatter: activeFormatter\n },\n ...withDisplayName(PrWorkingPatternEntity.Type)\n },\n title: i18next.t(\"WorkingPatterns:Title\")\n };\n\n const form: IFormDef = {\n id: `${EntityTypeName.PrWorkingPattern}Form`,\n translationFiles: getDefinitions.translationFiles,\n isDeletable: true,\n formControl: WorkingPatternsFormView,\n additionalProperties: [{\n id: PrWorkingPatternEntity.DateLastModified\n },\n {\n id: PrWorkingPatternEntity.Days,\n additionalProperties: [{\n id: PrWorkingPatternDayEntity.WorkingHours\n }, {\n id: PrWorkingPatternDayEntity.Date\n }, {\n id: PrWorkingPatternDayEntity.Intervals,\n additionalProperties: [{\n id: PrWorkingPatternDayIntervalEntity.Type\n }, {\n id: PrWorkingPatternDayIntervalEntity.TimeStart\n }, {\n id: PrWorkingPatternDayIntervalEntity.TimeEnd\n }, {\n id: timeDiffPath\n }]\n }]\n }],\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.L\n },\n IsActive: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.Icons\n },\n defaultValue: true\n },\n TypeCode: {\n type: FieldType.SegmentedButton,\n defaultValue: PrWorkingPatternTypeCode.Weekly,\n labelStatus: LabelStatus.Hidden,\n fieldSettings: {\n items: [\n {\n id: PrWorkingPatternTypeCode.Weekly,\n label: i18next.t(\"WorkingPatterns:Type.Weekly\")\n }, {\n id: PrWorkingPatternTypeCode.Monthly,\n label: i18next.t(\"WorkingPatterns:Type.Monthly\")\n }, {\n id: PrWorkingPatternTypeCode.Rotation,\n label: i18next.t(\"WorkingPatterns:Type.Rotation\")\n }\n ]\n }\n },\n IsDifferentOddAndEvenWeek: {\n type: FieldType.Checkbox,\n labelStatus: LabelStatus.Removed,\n isVisible: args => {\n return args.storage.getValueByPath(PrWorkingPatternEntity.TypeCode) === PrWorkingPatternTypeCode.Weekly;\n }\n },\n DefaultDayStart: {\n type: FieldType.Time,\n width: BasicInputSizes.XS,\n label: i18next.t(\"WorkingPatterns:DefaultTimeStartLabel\"),\n tooltip: i18next.t(\"WorkingPatterns:DefaultTimeStart\"),\n defaultValue: () => {\n return getUtcDayjs().startOf(\"day\").add(8, \"hours\").toDate();\n },\n fieldSettings: {\n showSteppers: false\n }\n },\n [calendarPath]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n const storage = args.storage as FormStorage;\n return ;\n }\n },\n [workDayIntervalsFastEntryPath]: {\n type: FieldType.Custom,\n isVisible: (args: IGetValueArgs) => {\n const storage = args.storage as FormStorage;\n return !!storage.getCustomData().selectedDay;\n },\n render: (args: IFieldDefFn) => {\n const storage = args.storage as FormStorage;\n return ;\n }\n },\n [dateStartPath]: {\n type: FieldType.Date,\n label: i18next.t(\"WorkingPatterns:RotationStart\"),\n isRequired: true,\n width: BasicInputSizes.M,\n isVisible: isRotation,\n defaultValue: () => getUtcDate()\n },\n [rotationLengthPath]: {\n type: FieldType.NumberInput,\n label: i18next.t(\"WorkingPatterns:RotationLength\"),\n isRequired: true,\n width: BasicInputSizes.S,\n isVisible: isRotation,\n validator: {\n type: ValidatorType.Number,\n settings: {\n min: 0,\n max: 365\n }\n },\n fieldSettings: {\n unit: getDaysUnit\n }\n },\n [createPath(PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.Intervals, PrWorkingPatternDayIntervalEntity.Type)]: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n fieldSettings: {\n displayName: \"Name\"\n },\n defaultValue: (args: IGetValueArgs) => {\n const dayBc = args.bindingContext.getParentCollection().getParent();\n const day = args.storage.getValue(dayBc) as IPrWorkingPatternDayEntity;\n const lastInterval = day.Intervals?.at(-1);\n return lastInterval?.Type?.Code === PrWorkIntervalTypeCode.Work ? PrWorkIntervalTypeCode.MealBreak : PrWorkIntervalTypeCode.Work;\n }\n },\n [createPath(PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.Intervals, PrWorkingPatternDayIntervalEntity.TimeStart)]: {\n type: FieldType.Time,\n width: BasicInputSizes.XS,\n fieldSettings: {\n showSteppers: false\n }\n },\n [createPath(PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.Intervals, PrWorkingPatternDayIntervalEntity.TimeEnd)]: {\n type: FieldType.Time,\n width: BasicInputSizes.XS,\n fieldSettings: {\n showSteppers: false\n }\n },\n [createPath(PrWorkingPatternEntity.Days, PrWorkingPatternDayEntity.Intervals, timeDiffPath)]: {\n isReadOnly: true,\n width: \"50px\",\n label: i18next.t(\"WorkingPatterns:Length\"),\n formatter: (val, args) => {\n const intervalEntity = args.storage.getValue(args.bindingContext.getParent()) as IPrWorkingPatternDayIntervalEntity;\n return getHoursDiffFormatted(intervalEntity.TimeStart, intervalEntity.TimeEnd);\n }\n }\n },\n groups: [\n {\n id: \"main\",\n rows: [\n [{ id: PrWorkingPatternEntity.Name }, { id: PrWorkingPatternEntity.IsActive }],\n [{ id: PrWorkingPatternEntity.TypeCode }, { id: PrWorkingPatternEntity.DefaultDayStart }]\n ]\n }, {\n id: \"shifts\",\n title: i18next.t(\"WorkingPatterns:Shifts\"),\n rows: [\n [{ id: PrWorkingPatternEntity.IsDifferentOddAndEvenWeek }, { id: rotationLengthPath }, { id: dateStartPath }],\n [{ id: calendarPath }],\n [{ id: workDayIntervalsFastEntryPath }]\n ]\n }\n ],\n querySettings: {\n \"Days/Intervals\": {\n sort: [{ id: \"TimeStart\", sort: Sort.Asc }]\n }\n }\n };\n\n return {\n entitySet: EntitySetName.PrWorkingPatterns,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"WorkingPatterns\", \"Common\"];\nsetDefByEntityType(EntityTypeName.PrWorkingPattern, getDefinitions);","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldDef, IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { StyledTooltipContent } from \"@components/tooltipIcon/TooltipIcon.styles\";\nimport {\n DocumentEntity,\n EntitySetName,\n IDocumentDraftEntity,\n IDocumentEntity,\n NumberRangeEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert, isObjectEmpty } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport Field from \"../../components/inputs/field\";\nimport Input from \"../../components/inputs/input/Input\";\nimport { BasicInputSizes, FieldType, PageViewMode } from \"../../enums\";\nimport DateType, { getUtcDayjs } from \"../../types/Date\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { CreateCustomAssignmentPath, ItemCreateCustomAssignmentBc } from \"../accountAssignment/AccountAssignment.utils\";\nimport { SAVED_ACCOUNTS_PATH } from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { commonDocumentTranslations } from \"../documents/Document.utils\";\nimport { addBusinessPartnerFieldDefs, addCommonDocumentDefs } from \"../documents/DocumentCommonDefs\";\nimport { getDefinitions as getDocumentDefinitions } from \"../documents/DocumentDef\";\nimport InvoicesIssuedFormView from \"../documents/invoicesIssued/InvoicesIssuedFormView\";\nimport InvoicesReceivedFormView from \"../documents/invoicesReceived/InvoicesReceivedFormView\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { InfoIconStyled } from \"./RecurringTask.styles\";\nimport { IRecurringTaskCustomData } from \"./RecurringTask.utils\";\n\nconst getItemBreadCrumbText = () => {\n return \"\";\n};\n\nconst getTooltipIcon = (date: Date | Dayjs): ReactElement => {\n return \n {DateType.format(date)}\n ;\n};\n\nexport const getDefinitions: IGetDefinition = (context, type: DocumentTypeCode, isForPreview?: boolean): IDefinition => {\n const definition = cloneDeep(getDocumentDefinitions({\n entitySet: EntitySetName.DocumentDrafts,\n documentType: type,\n tableId: \"recurringTaskDraftSpecialTable\",\n formId: \"recurringTaskDraftSpecialForm\",\n formControl: type === DocumentTypeCode.InvoiceIssued ? InvoicesIssuedFormView : InvoicesReceivedFormView,\n translationFiles: getDefinitions.translationFiles,\n getItemBreadCrumbText,\n context\n }));\n\n addCommonDocumentDefs(definition, type, context);\n\n delete definition.form.draftDef;\n delete definition.form.summary;\n\n definition.form.summary = definition.form.summary?.filter(s => !s.id.startsWith(\"ClearedStatus\"));\n\n\n definition.form.additionalProperties = [\n ...definition.form.additionalProperties.filter(p => !p.id.startsWith(\"DocumentDraft\") && p.id !== DocumentEntity.ClearedStatus && p.id !== DocumentEntity.DocumentVatStatementStatus),\n { id: \"DocumentTypeCode\" }\n ];\n\n definition.form.fieldDefinition.DocumentTypeCode = {\n label: i18next.t(\"RecurringTasks:Type\"),\n isVisible: args => {\n return (args.storage as FormStorage).pageViewMode === PageViewMode.FormReadOnly;\n },\n fieldSettings: {\n formatter: value => {\n return i18next.t(`RecurringTasks:TaskDialog.${value === DocumentTypeCode.InvoiceIssued ? \"InvoiceIssued\" : \"InvoiceReceived\"}`);\n }\n }\n };\n\n definition.form.fieldDefinition.NumberRange = {\n type: FieldType.ComboBox,\n fieldSettings: {\n additionalProperties: [{ id: NumberRangeEntity.NextNumber }, { id: NumberRangeEntity.Definition }],\n displayName: NumberRangeEntity.NextNumber,\n transformFetchedItems: (items) => {\n return items.reduce((uniqueItems: ISelectItem[], item) => {\n // for recurring tasks we are actually selecting only definition through number range\n if (!uniqueItems.find(i => i.additionalData.Definition?.Id === item.additionalData.Definition?.Id)) {\n uniqueItems.push(item);\n }\n return uniqueItems;\n }, []);\n }\n },\n formatter: (val, args) => {\n const entity = args.entity as IDocumentEntity;\n return entity?.NumberRange?.NextNumber;\n },\n width: BasicInputSizes.XL,\n customizationData: {\n useForCustomization: false\n },\n filter: {\n select: () => {\n return `Definition/IsActive eq true AND Definition/NumberRangeType/DocumentTypeCode eq '${type}'`;\n }\n }\n };\n\n if (!isCashBasisAccountingCompany(context)) {\n definition.form.fieldDefinition.ExchangeRatePerUnit.isVisible = false;\n definition.form.fieldDefinition[CreateCustomAssignmentPath].isVisible = false;\n definition.form.fieldDefinition[`Items/AccountAssignmentSelection/AccountAssignment/${ItemCreateCustomAssignmentBc}`].isVisible = false;\n }\n\n addBusinessPartnerFieldDefs(definition, type, type === DocumentTypeCode.InvoiceIssued ? \"InvoicesIssued\" : \"InvoicesReceived\");\n delete definition.form.fieldDefinition[\"BusinessPartner/LegalNumber\"].collapsedRows;\n delete definition.form.fieldDefinition[\"BusinessPartner/LegalNumber\"].creatingTitle;\n\n definition.form.showChanges = false;\n\n for (const [key, fieldDef] of Object.entries(definition.form.fieldDefinition)) {\n fieldDef.isRequired = false;\n\n if (key === SAVED_ACCOUNTS_PATH) {\n fieldDef.fieldSettings.additionalItems = [];\n }\n }\n\n if (isForPreview) {\n definition.form.isReadOnly = true;\n\n if (!isCashBasisAccountingCompany(context)) {\n definition.form.fieldDefinition.DateAccountingTransaction = {\n type: FieldType.Custom,\n render: (args) => {\n return \n \n {getTooltipIcon((args.storage as FormStorage).getCustomData().DateNextExecution)}\n ;\n }\n };\n }\n\n definition.form.fieldDefinition.DateReceived = {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return \n \n {getTooltipIcon((args.storage as FormStorage).getCustomData().DateNextExecution)}\n ;\n }\n };\n\n definition.form.fieldDefinition.DateDue = {\n type: FieldType.Custom,\n render: (args) => {\n const entity = args.storage.data.entity as IDocumentDraftEntity;\n const date = getUtcDayjs((args.storage as FormStorage).getCustomData().DateNextExecution).add(14, \"d\");\n return \n \n {getTooltipIcon(date)}\n ;\n }\n };\n\n definition.form.fieldDefinition.DateIssued = {\n type: FieldType.Custom,\n render: (args) => {\n return \n \n {getTooltipIcon((args.storage as FormStorage).getCustomData().DateNextExecution)}\n ;\n }\n };\n\n const docGroupIndex = definition.form.groups.findIndex(g => g.id === \"document\");\n definition.form.groups = arrayInsert(definition.form.groups, {\n id: \"Date\",\n title: i18next.t(\"Document:FormGroup.Date\"),\n rows: [\n !isCashBasisAccountingCompany(context) ? [{ id: \"DateAccountingTransaction\" }] : [],\n [{ id: \"DateReceived\" }, { id: \"DateDue\" }, { id: \"DateIssued\" }]\n ]\n }, (docGroupIndex + 1));\n\n definition.form.groups = definition.form.groups.map(group => {\n group.showGroupDivider = false;\n return group;\n });\n\n for (const fieldDef of Object.values(definition.form.fieldDefinition)) {\n const origIsVisible = fieldDef.isVisible;\n fieldDef.isVisible = (args: IGetValueArgs) => {\n const val = args.bindingContext ? args.storage.getValue(args.bindingContext) : args.storage.getValueByPath((args.info as IFieldDef)?.id);\n const isItemProp = args.bindingContext?.getParentCollection(args.storage.data.bindingContext)?.getPath() === \"Items\";\n const isWithoutValue = typeof val === \"object\" ? isObjectEmpty(val) : !val;\n if (isWithoutValue && !isItemProp && fieldDef.type !== FieldType.Custom) {\n return false;\n }\n if (typeof origIsVisible === \"function\") {\n return origIsVisible(args);\n }\n return origIsVisible;\n };\n }\n }\n\n definition.form.groups = [{\n id: \"numRange\",\n rows: [[{ id: \"DocumentTypeCode\" }, { id: \"NumberRange\" }]]\n }, ...definition.form.groups.filter(g => ![\"date\", \"Tabs\"].includes(g.id))\n ];\n\n return definition;\n};\n\ngetDefinitions.translationFiles = [...commonDocumentTranslations, \"InvoicesIssued\", \"InvoicesReceived\", \"RecurringTasks\"];","import React, { RefObject } from \"react\";\nimport { PageViewMode } from \"../../enums\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { RecurringTaskTypeCode } from \"@odata/GeneratedEnums\";\nimport InvoicesReceivedFormView from \"../documents/invoicesReceived/InvoicesReceivedFormView\";\nimport InvoicesIssuedFormView from \"../documents/invoicesIssued/InvoicesIssuedFormView\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { IDocumentDraftEntity } from \"@odata/GeneratedEntityTypes\";\n\ninterface IProps {\n storage: FormStorage,\n draftData: IDocumentDraftEntity;\n page: number,\n typeCode: RecurringTaskTypeCode,\n passRef: RefObject,\n style?: React.CSSProperties\n onAfterDraftLoad?: (draft: IDocumentDraftEntity) => void\n}\n\nclass DraftForm extends React.Component {\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: Readonly) {\n this.init();\n }\n\n init = (): void => {\n if (!(this.props.storage.loaded || this.props.storage.loading)) {\n const entity = this.props.draftData;\n this.props.storage.init({\n bindingContext: this.props.storage.data.bindingContext,\n data: isObjectEmpty(entity) ? null : entity\n }).then(() => {\n this.props.storage.data.entity.DocumentTypeCode = this.props.typeCode;\n if (!this.props.storage.data.bindingContext.isNew()) {\n this.props.onAfterDraftLoad?.(this.props.storage.data.entity);\n }\n this.props.passRef?.current?.forceUpdate();\n });\n }\n const viewMode = this.props.page === 3 ? PageViewMode.FormReadOnly : PageViewMode.Default;\n if (viewMode !== this.props.storage.pageViewMode) {\n this.props.storage.pageViewMode = viewMode;\n this.props.passRef?.current?.forceUpdate();\n }\n }\n\n render() {\n const defaultProps = {\n storage: this.props.storage,\n ref: this.props.passRef,\n style: this.props.style,\n title: \"\",\n preventSettingMatchingNumberRange: true,\n preventDraftSave: true,\n withoutButtons: true,\n withoutBreadCrumbs: true,\n hideButtons: true,\n formProps: {\n shouldHideAuditTrail: true,\n shouldHideVariant: true,\n hideHeader: true,\n hideBreadcrumbs: true,\n renderScrollbar: false,\n withoutPadding: true\n }\n };\n\n if (this.props.typeCode === RecurringTaskTypeCode.InvoiceReceived) {\n return ;\n }\n\n return ;\n }\n}\n\nexport default DraftForm;\n","import { createBindingContext } from \"@odata/BindingContext\";\nimport { IBankAccountEntity, IDocumentDraftEntity } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { hasSavedDraft } from \"@pages/documents/Document.utils\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { NEW_ITEM_DETAIL } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { setSavedBankAccountItems } from \"../banks/bankAccounts/BankAccounts.utils\";\nimport { DocumentFormViewForExtend } from \"../documents/DocumentFormView\";\nimport { getDefinitions } from \"./Draft.def\";\nimport DraftForm from \"./DraftForm\";\nimport { IRecurringTaskCustomData, RecurringTaskDraftId } from \"./RecurringTask.utils\";\n\ninterface IProps {\n storage: FormStorage\n}\n\nconst DraftFormStyles = { padding: 0 };\n\nexport default class DraftPreviewInsideForm extends React.Component {\n static contextType = AppContext;\n formStorage: FormStorage;\n formViewRef = React.createRef();\n\n componentDidMount() {\n if (this.shouldInitStorage) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps: Readonly) {\n if (this.shouldInitStorage) {\n this.init();\n } else if (this.formStorage) {\n this.formStorage.setCustomData({ DateNextExecution: this.props.storage.data.entity.DateNextExecution });\n if (this.props.storage.getCustomData().copyDraftEntity) {\n this.formStorage.data.entity = cloneDeep(this.props.storage.data.entity?.DocumentDraft);\n this.props.storage.setCustomData({ copyDraftEntity: false });\n }\n if (this.props.storage.data.entity?.DocumentDraft?.DocumentTypeCode === DocumentTypeCode.InvoiceIssued) {\n const bankAccounts = this.formStorage.context.getCompanyBankAccounts(true);\n setSavedBankAccountItems(this.formStorage, bankAccounts as IBankAccountEntity[]);\n }\n this.formStorage.refresh();\n }\n }\n\n get shouldInitStorage(): boolean {\n return (this.props.storage.data.bindingContext.isNew() || hasSavedDraft(this.props.storage)) && this.formStorage === undefined;\n }\n\n onAfterDraftLoad = (draft: IDocumentDraftEntity): void => {\n this.props.storage.data.entity.DocumentDraft = draft;\n }\n\n init = (): void => {\n const draftId = this.props.storage.data.entity?.DocumentDraft?.Id;\n const bindingContext = createBindingContext(\"DocumentDrafts\", this.props.storage.oData.metadata)\n .addKey(draftId ?? NEW_ITEM_DETAIL, !draftId);\n\n this.formStorage = new FormStorage({\n id: RecurringTaskDraftId,\n oData: this.props.storage.oData,\n theme: this.props.storage.theme,\n context: this.context,\n t: this.props.storage.t,\n definition: getDefinitions(this.context, this.props.storage.data.entity.TypeCode ?? DocumentTypeCode.InvoiceIssued, true).form,\n bindingContext,\n refresh: () => {\n this.formViewRef?.current?.forceUpdate();\n }\n });\n\n this.formStorage.setCustomData({ DateNextExecution: this.props.storage.data.entity.DateNextExecution });\n this.forceUpdate();\n }\n\n get draftData(): IDocumentDraftEntity {\n return this.props.storage.data.bindingContext.isNew() ? this.props.storage.data.entity.DocumentDraft : null;\n }\n\n render() {\n return <>\n {this.formStorage &&\n }\n ;\n }\n}","import React from \"react\";\nimport {\n StyledRadioListItem\n} from \"./RadioButtonGroup.styles\";\nimport { IProps as IIconProps } from \"../../icon\";\n\ninterface IProps {\n icon: React.ComponentType,\n title: string,\n description: string\n}\n\nexport class RadioListItem extends React.Component {\n render() {\n const Icon = this.props.icon;\n return \n \n
    \n

    {this.props.title}

    \n

    {this.props.description}

    \n
    \n
    ;\n }\n}","import { ArrowIcon, InvoicesIssuedBigIcon, InvoicesReceivedBigIcon } from \"@components/icon\";\nimport { RadioListItem } from \"@components/inputs/radioButtonGroup/RadioListItem\";\nimport { saveEntity } from \"@odata/Data.utils\";\nimport { IDocumentDraftEntity, IRecurringTaskEntity } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode, RecurringTaskTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { ODataError, ODataQueryResult } from \"@odata/ODataParser\";\nimport { isObjectEmpty } from \"@utils/general\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { Button, IconButton } from \"../../components/button\";\nimport Dialog, { DialogContext, IDialogContext } from \"../../components/dialog/Dialog\";\nimport Field from \"../../components/inputs/field\";\nimport RadioButtonGroup from \"../../components/inputs/radioButtonGroup\";\nimport { NEW_ITEM_DETAIL } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { IconSize, LabelStatus, RadioButtonGroupLayout } from \"../../enums\";\nimport BindingContext, { createBindingContext } from \"../../odata/BindingContext\";\nimport { getAlertFromError } from \"../../views/formView/Form.utils\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { DocumentFormViewForExtend } from \"../documents/DocumentFormView\";\nimport { getDefinitions } from \"./Draft.def\";\nimport DraftForm from \"./DraftForm\";\nimport { DialogHeader } from \"./RecurringTask.styles\";\nimport { IRecurringTaskCustomData } from \"./RecurringTask.utils\";\n\ninterface IProps extends WithPermissionContext, WithTranslation, IFormViewProps {\n onClose: () => void;\n}\n\ninterface IState {\n page: number,\n draftData: IDocumentDraftEntity\n}\n\nconst PAGE_COUNT = 3;\n\nclass TaskEditDialog extends FormViewForExtend {\n static contextType = AppContext;\n formStorage: FormStorage;\n formViewRef = React.createRef();\n dialogContext: IDialogContext;\n\n init = () => {\n const draftId = this.props.storage.data.entity?.DocumentDraft?.Id;\n const bindingContext = createBindingContext(\"DocumentDrafts\", this.props.storage.oData.metadata)\n .addKey(draftId ?? NEW_ITEM_DETAIL, !draftId);\n\n this.formStorage = new FormStorage({\n id: \"recurringTaskDraft\",\n oData: this.props.storage.oData,\n theme: this.props.storage.theme,\n context: this.context,\n t: this.props.t,\n definition: getDefinitions(this.props.storage.context, this.props.storage.data.entity.TypeCode ?? DocumentTypeCode.InvoiceIssued).form,\n bindingContext,\n refresh: () => {\n this.formViewRef?.current?.forceUpdate();\n }\n });\n };\n\n state: IState = {\n page: 1,\n draftData: null\n };\n\n shouldComponentUpdate(nextProps: IProps, nextState: IState): boolean {\n return this.state.page !== nextState.page;\n }\n\n handleFinalConfirm = async () => {\n this.dialogContext?.setBusy(true);\n\n const task = this.props.storage.data.entity;\n const draft = await this.formViewRef.current?.prepareDataForSave(this.formStorage.data.entity, true) as IDocumentDraftEntity;\n const draftBc = this.formStorage.data.bindingContext;\n if (draftBc.isNew()) {\n draft[BindingContext.NEW_ENTITY_ID_PROP] = \"new\";\n draft.Company = { Id: this.context.getCompany().Id };\n draft.GeneratedByRecurringTask = { Id: task.Id };\n } else {\n const batch: BatchRequest = this.props.storage.oData.batch();\n batch.beginAtomicityGroup(\"draft\");\n\n saveEntity({\n bindingContext: draftBc,\n entity: draft,\n originalEntity: this.formStorage.data.origEntity,\n batch,\n changesOnly: false\n });\n\n const result = await batch.execute();\n\n this.dialogContext?.setBusy(false);\n\n if (result[0].status >= 300) {\n this.formStorage.setFormAlert(getAlertFromError(result[0].body as ODataError));\n this.formStorage.refresh();\n this.dialogContext?.scrollRef?.current?.scroll({ top: 0 });\n return;\n }\n\n const draftId = (result[0]?.body as ODataQueryResult)?.value?.Id;\n\n if (draftId) {\n this.formStorage.data.origEntity = this.formStorage.data.entity;\n }\n }\n if (draft.DocumentTypeCode === DocumentTypeCode.InvoiceReceived && draft.BusinessPartner?.BusinessPartner?.Id) {\n draft.BusinessPartner.BusinessPartner.BankAccounts = this.formStorage.getCustomData().bankAccounts;\n this.props.storage.setCustomData({ bankAccounts: this.formStorage.getCustomData().bankAccounts });\n }\n task.DocumentDraft = draft;\n this.props.storage.setCustomData({ copyDraftEntity: true });\n this.props.onClose();\n };\n\n handleCancel = () => {\n this.props.onClose();\n };\n\n getDialogHeader = (title: string) => {\n return {this.state.page}/{PAGE_COUNT}: {title};\n };\n\n handleTypeChange = async (id: string) => {\n if (this.props.storage.getValueByPath(\"TypeCode\") !== id) {\n this.props.storage.setValueByPath(\"TypeCode\", id);\n const bindingContext = createBindingContext(\"DocumentDrafts\", this.props.storage.oData.metadata)\n .addKey(NEW_ITEM_DETAIL, true);\n\n this.formStorage = new FormStorage({\n id: \"recurringTaskDraft\",\n oData: this.props.storage.oData,\n theme: this.props.storage.theme,\n context: this.context,\n t: this.props.t,\n definition: getDefinitions(this.props.storage.context, id).form,\n bindingContext,\n refresh: () => {\n this.formViewRef?.current?.forceUpdate();\n }\n });\n this.forceUpdate();\n }\n };\n\n renderPage = (dialogContext: IDialogContext): React.ReactElement => {\n const type = this.props.storage.getValueByPath(\"TypeCode\");\n\n this.dialogContext = dialogContext;\n\n switch (this.state.page) {\n case 1:\n const listDef = [{\n id: RecurringTaskTypeCode.InvoiceReceived,\n label: \n }, {\n id: RecurringTaskTypeCode.InvoiceIssued,\n label: \n }];\n\n return (<>\n {this.getDialogHeader(this.props.t(\"RecurringTasks:ScheduledTask\"))}\n \n \n \n );\n case 2:\n case 3:\n const title = this.props.t(`RecurringTasks:TaskDialog.${this.state.page === 2 ? `Selected${type}` : \"Confirmation\"}`);\n const draftData = this.state.draftData?.DocumentTypeCode === type ? this.state.draftData : null;\n return (<>\n {this.getDialogHeader(title)}\n \n );\n }\n return <>;\n };\n\n handleNextPage = () => {\n this.setState({ page: this.state.page + 1 }, () => this.forceUpdate());\n };\n\n handleBack = () => {\n this.setState({ page: this.state.page - 1 }, () => this.forceUpdate());\n };\n\n get hasDraft() {\n return !isObjectEmpty(this.props.storage.data.entity?.DocumentDraft);\n }\n\n handleOpen = async () => {\n this.init();\n const draftData = cloneDeep(this.props.storage.data.entity?.DocumentDraft);\n this.setState({ page: this.hasDraft ? 2 : 1, draftData }, () => this.formViewRef?.current?.forceUpdate());\n };\n\n handleConfirm = (): void => {\n if (this.state.page !== PAGE_COUNT) {\n this.handleNextPage();\n } else {\n this.handleFinalConfirm();\n }\n };\n\n getFooterBtn = () => {\n return (\n \n {this.props.t(`Common:General.${this.state.page !== PAGE_COUNT ? \"Continue\" : \"Finish\"}`)}\n \n );\n };\n\n render = () => {\n if (!this.isReady()) {\n return null;\n }\n\n return (\n \n \n \n )}\n footer={(\n <>\n \n {this.getFooterBtn()}\n \n )}>\n \n {(dialogContext: IDialogContext) => {\n return (\n <>\n {this.renderPage(dialogContext)}\n \n );\n }}\n \n \n );\n };\n}\n\nexport default withPermissionContext(withTranslation([\"Common\", \"RecurringTasks\", \"Document\"], { withRef: true })(TaskEditDialog));\n","import { getInfoValue } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { ISmartFormGroupActionEvent } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { saveEntity } from \"@odata/Data.utils\";\nimport { IRecurringTaskEntity, RecurringTaskEntity } from \"@odata/GeneratedEntityTypes\";\nimport { RecurringTaskPeriodCode, RecurringTaskStateCode, RecurringTaskTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { getOneFetch, isAbortException } from \"@utils/oneFetch\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport SmartFormDeleteButton from \"../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\nimport { REST_API_URL } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { Status } from \"../../enums\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport DateType, { getUtcDate } from \"../../types/Date\";\nimport customFetch, { getDefaultPostParams } from \"../../utils/customFetch\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport { DailyRadioButtonIds } from \"./RecurringTask.def\";\nimport { RecurringTaskFormViewAction } from \"./RecurringTask.utils\";\nimport TaskEditDialog from \"./TaskEditDialog\";\n\ninterface IState {\n isDialogOpen: boolean;\n}\n\nclass RecurringTaskFormView extends FormViewForExtend, IState> {\n static contextType = AppContext;\n\n oneFetchNextDate = getOneFetch();\n\n state: IState = {\n isDialogOpen: false\n };\n\n constructor(props: IFormViewProps) {\n super(props);\n\n this.onAfterSave = this.onAfterSave.bind(this);\n }\n\n shouldComponentUpdate(nextProps: Readonly>, nextState: IState): boolean {\n return this.state.isDialogOpen !== nextState.isDialogOpen;\n }\n\n onAfterLoad = async () => {\n const storage = this.props.storage;\n\n if (!storage.data.bindingContext.isNew()) {\n storage.setValueByPath(BindingContext.localContext(\"NoEnd\"), !storage.getValueByPath(RecurringTaskEntity.DateEnd));\n storage.setValueByPath(BindingContext.localContext(\"DailyRadioGroup\"),\n storage.getValueByPath(RecurringTaskEntity.DoesExecuteEveryWeekDay) ? DailyRadioButtonIds.WorkDay : DailyRadioButtonIds.Nth);\n storage.refreshGroupByKey(\"scheduler\");\n } else {\n this.entity.TypeCode = RecurringTaskTypeCode.InvoiceReceived;\n this.entity.DateStart = getUtcDate();\n }\n\n if (this.entity.StateCode === RecurringTaskStateCode.Paused) {\n this.setPausedAlert();\n }\n\n this.updateNextExecutionDate();\n return super.onAfterLoad();\n };\n\n onAfterSave(isNew: boolean, preventTableViewRefresh: boolean): void {\n super.onAfterSave(isNew, preventTableViewRefresh);\n\n // restore the warning after save success alert replaced it\n if (this.entity.StateCode === RecurringTaskStateCode.Paused) {\n this.setPausedAlert();\n }\n }\n\n setPausedAlert = (): void => {\n const title = this.props.storage.t(\"RecurringTasks:GoodToKnow\");\n // don't change alert if there is another error/warning present\n if (![Status.Error, Status.Warning].includes(this.props.storage.data?.alert?.status)) {\n this.props.storage.setFormAlert({\n status: Status.Warning,\n title,\n subTitle: this.props.storage.t(\"RecurringTasks:TaskIsStopped\", { date: DateType.localFormat(this.entity.DateLastModified) })\n });\n }\n };\n\n handlePeriodCodeChange = (e: ISmartFieldChange): void => {\n if ([RecurringTaskEntity.PeriodCode, RecurringTaskEntity.Interval].includes(e.bindingContext.getPath() as RecurringTaskEntity)) {\n this.props.storage.refreshGroupByKey(\"scheduler\");\n }\n };\n\n handleNoEndChange = (e: ISmartFieldChange): void => {\n if (e.bindingContext.getPath() === BindingContext.localContext(\"NoEnd\")) {\n this.props.storage.refreshGroupByKey(\"scheduler\");\n this.props.storage.setValueByPath(RecurringTaskEntity.DateEnd, null);\n }\n };\n\n updateNextExecutionDate = async (): Promise => {\n try {\n const res = await this.oneFetchNextDate.fetch(`${REST_API_URL}/RecurringTasks/CalculateDateNextExecution`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(this.entity)\n });\n\n let dateNextExecution: Date;\n\n if (res.ok && res.status !== 204) {\n dateNextExecution = getUtcDate(await res.json());\n } else {\n dateNextExecution = null;\n }\n\n this.props.storage.setValueByPath(RecurringTaskEntity.DateNextExecution, dateNextExecution);\n this.props.storage.refreshFields();\n } catch (e) {\n if (isAbortException(e)) {\n return;\n } else {\n throw e;\n }\n }\n };\n\n handleGroupAction = (args: ISmartFormGroupActionEvent) => {\n switch (args.id) {\n case RecurringTaskFormViewAction.ChooseTask:\n case RecurringTaskFormViewAction.EditTask:\n this.openTaskDialog();\n }\n };\n\n handleChange(e: ISmartFieldChange): void {\n const path = e.bindingContext.getPath();\n const storage = this.props.storage;\n\n this.handleNoEndChange(e);\n this.handlePeriodCodeChange(e);\n storage.handleChange(e);\n\n if ([RecurringTaskEntity.PeriodCode, RecurringTaskEntity.Interval, RecurringTaskEntity.ExecuteEverySpecificDayOfWeek,\n RecurringTaskEntity.ExecuteInMonth, BindingContext.localContext(\"NoEnd\"), BindingContext.localContext(\"DailyRadioGroup\")].includes(path)) {\n this.updateNextExecutionDate();\n }\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n }\n\n handleBlur = async (e: ISmartFieldBlur) => {\n if (e.wasChanged && e.bindingContext.getPath() !== RecurringTaskEntity.Name) {\n this.updateNextExecutionDate();\n }\n\n await this.props.storage.handleBlur(e);\n this.props.storage.refreshFields();\n };\n\n isActive = (): boolean => {\n return this.entity.StateCode === RecurringTaskStateCode.Active || this.entity.State?.Code === RecurringTaskStateCode.Active;\n };\n\n toggleTaskState = async (): Promise => {\n const storage = this.props.storage;\n const isActive = this.isActive();\n const newStateCode = isActive ? RecurringTaskStateCode.Paused : RecurringTaskStateCode.Active;\n\n const batch: BatchRequest = this.props.storage.oData.batch();\n batch.beginAtomicityGroup(\"stateChange\");\n saveEntity({\n bindingContext: storage.data.bindingContext,\n entity: { StateCode: newStateCode },\n batch\n });\n const results = await batch.execute();\n\n if (results[0].status < 300) {\n storage.setValueByPath(RecurringTaskEntity.StateCode, newStateCode);\n storage.setValueByPath(RecurringTaskEntity.State, {\n Code: newStateCode,\n Name: storage.t(`RecurringTasks:${isActive ? \"Stopped\" : \"Running\"}`)\n });\n storage.setFormAlert({\n status: Status.Success,\n title: this.props.storage.t(`RecurringTasks:${isActive ? \"Stopped\" : \"Restored\"}Alert`),\n onFadeEnd: () => {\n if (isActive) {\n this.setPausedAlert();\n } else {\n this.props.storage.clearFormAlert();\n }\n this.props.storage.refresh();\n }\n });\n\n // update etag, otherwise next save would fail\n storage.data.metadata.etag = (results[0].body as ODataQueryResult)._metadata.etag;\n this.props.onTableRefreshNeeded?.();\n this.forceUpdate();\n }\n };\n\n generateDraft = async (): Promise => {\n const storage = this.props.storage;\n await customFetch(`${REST_API_URL}/RecurringTasks/Execute?recurringTaskId=${this.entity.Id}`);\n // todo: handle error\n this.props.onTableRefreshNeeded?.({ refreshRowOnly: true });\n\n // reload form to get new etag\n await storage.loadDataAfterSave();\n\n if (storage.data.alert) {\n storage.data.alert = null;\n storage.refresh();\n }\n storage.data.alert = {\n status: Status.Success,\n title: storage.t(\"RecurringTasks:Done\"),\n subTitle: storage.t(\"RecurringTasks:GeneratedOnce\"),\n isFullWidth: false,\n isOneLiner: false\n };\n storage.refresh();\n\n };\n\n renderButtons(): React.ReactElement {\n const storage = this.props.storage;\n const formDef = storage.data.definition;\n const isFormReadOnly = getInfoValue(formDef, \"isReadOnly\", {\n storage,\n data: this.entity\n });\n const isNew = storage.data.bindingContext.isNew();\n return (\n \n \n {this.isDeletable &&\n \n }\n \n \n {!isFormReadOnly &&\n {storage.t(\"RecurringTasks:SaveAndSet\")}\n }\n \n );\n }\n\n onBeforeSave = (): IEntity => {\n const storage = this.props.storage;\n const entity = this.entity;\n const draft = storage.data.entity.DocumentDraft;\n if (!draft?.Id && !draft?.[BindingContext.NEW_ENTITY_ID_PROP]) {\n throw new Error(storage.t(\"RecurringTasks:DraftIsMandatory\"));\n }\n\n if (storage.data.bindingContext.isNew()) {\n entity.Company = { Id: storage.context.getCompany().Id };\n entity.StateCode = RecurringTaskStateCode.Active;\n }\n\n entity.DoesExecuteEveryWeekDay = entity.PeriodCode === RecurringTaskPeriodCode.Daily &&\n storage.getValueByPath(BindingContext.localContext(\"DailyRadioGroup\")) === DailyRadioButtonIds.WorkDay;\n\n return entity;\n };\n\n openTaskDialog = () => {\n this.setState({ isDialogOpen: true });\n };\n\n handleTaskDialogClose = () => {\n this.setState({ isDialogOpen: false });\n this.props.storage.refreshGroupByKey(\"Document\");\n };\n\n render() {\n if (!this.isReady()) {\n return ;\n }\n\n return <>\n {this.renderForm()}\n {this.state.isDialogOpen &&\n \n }\n\n ;\n }\n}\n\nexport default withPermissionContext(RecurringTaskFormView);","import { FillFormIcon } from \"@components/icon\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n getCommonFilterDefs,\n getCommonTableColumnsDefs,\n withDisplayName\n} from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n IDocumentDraftEntity,\n IRecurringTaskEntity,\n IRecurringTaskStateEntity,\n RecurringTaskEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { RecurringTaskIntervalCode, RecurringTaskPeriodCode, RecurringTaskStateCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport dayjs from \"dayjs\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { BasicInputSizes, CacheStrategy, FieldType, GroupedField, LabelStatus, Sort, TextAlign } from \"../../enums\";\nimport { ColoredText } from \"../../global.style\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { ROUTE_RECURRING_TASKS, ROUTE_RECURRING_TASKS_EXECUTIONS } from \"../../routes\";\nimport DateType, { getUtcDate } from \"../../types/Date\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { ISplitPageTableDef, ITableDefTabData } from \"../../views/table/TableView.utils\";\nimport { commonDocumentTranslations } from \"../documents/Document.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport DraftPreviewInsideForm from \"./DraftPreviewInsideForm\";\nimport { TextStyled } from \"./RecurringTask.styles\";\nimport { getStatusColor, hasDraft, RecurringTaskFormViewAction } from \"./RecurringTask.utils\";\nimport ScheduledTaskFormView from \"./RecurringTaskFormView\";\n\nconst isVisible = (args: IGetValueArgs, periodCodes: RecurringTaskPeriodCode[]): boolean => {\n return periodCodes.includes(args.storage.data.entity.PeriodCode);\n};\n\nexport enum DailyRadioButtonIds {\n WorkDay = \"workday\",\n Nth = \"nth\"\n}\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n createQuery: false,\n defaultFilters: [\n RecurringTaskEntity.Type,\n RecurringTaskEntity.Name,\n RecurringTaskEntity.DateStart\n ],\n filterDefinition: {\n ...getCommonFilterDefs(),\n Name: {},\n ...withDisplayName(RecurringTaskEntity.Type, {\n type: FieldType.ComboBox\n }),\n DateStart: {}\n }\n }];\n\n const tabs: ITableDefTabData[] = [{\n id: null,\n title: i18next.t(\"Components:FilterBar.All\")\n }, {\n id: RecurringTaskStateCode.Active,\n title: i18next.t(\"Common:General.Active\"),\n filterNames: [RecurringTaskStateCode.Active]\n }, {\n id: RecurringTaskStateCode.Paused,\n filterNames: [RecurringTaskStateCode.Paused],\n title: i18next.t(\"Common:General.Inactive\")\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.RecurringTask}Table`,\n tabs,\n tabsSettings: {\n filterFieldName: RecurringTaskEntity.StateCode\n },\n initialSortBy: [{\n id: RecurringTaskEntity.Name,\n sort: Sort.Asc\n }],\n columns: [\n RecurringTaskEntity.Type,\n RecurringTaskEntity.Name,\n RecurringTaskEntity.State,\n RecurringTaskEntity.Executions,\n RecurringTaskEntity.DateNextExecution\n ],\n columnDefinition: {\n ...getCommonTableColumnsDefs(),\n ...withDisplayName(RecurringTaskEntity.Type),\n Name: {},\n ...withDisplayName(RecurringTaskEntity.State, {\n additionalProperties: [{ id: \"Name\" }],\n formatter: (val, args) => {\n const color = getStatusColor(args.entity?.State?.Code as RecurringTaskStateCode);\n return {\n value: val ? {val} : DASH_CHARACTER,\n tooltip: val as string\n };\n }\n }),\n DateNextExecution: {},\n Executions: {\n label: i18next.t(\"RecurringTasks:Generated\"),\n formatter: (val: TValue, args) => {\n return args.entity.Executions?.length ?? \"0\";\n },\n textAlign: TextAlign.Right\n }\n\n },\n title: i18next.t(\"RecurringTasks:Title\"),\n filterBarDef\n };\n\n const auditTrailSummary: ISummaryItem[] = [];\n\n const summary: ISummaryItem[] = [{\n id: RecurringTaskEntity.State,\n label: i18next.t(\"RecurringTasks:State\"),\n additionalProperties: [{ id: \"Name\" }],\n formatter: (val, args) => {\n return (args.entity.State as IRecurringTaskStateEntity)?.Name ?? DASH_CHARACTER;\n },\n colorFormatter: (val, args) => {\n const status = args.entity.State as IRecurringTaskStateEntity;\n return getStatusColor(status?.Code as RecurringTaskStateCode);\n }\n }, {\n id: RecurringTaskEntity.Type,\n label: i18next.t(\"RecurringTasks:Type\"),\n additionalProperties: [{ id: \"Name\" }],\n formatter: (val: TValue) => {\n return (val as IRecurringTaskStateEntity)?.Name ?? DASH_CHARACTER;\n }\n }, {\n id: RecurringTaskEntity.Executions,\n label: i18next.t(\"RecurringTasks:Generated\"),\n updateFromLiveValue: true,\n formatter: (val: TValue) => {\n return (val as IDocumentDraftEntity[])?.length ?? DASH_CHARACTER;\n },\n link: args => {\n if (args.storage.data.bindingContext.isNew()) {\n return null;\n }\n return `${ROUTE_RECURRING_TASKS}/${args.storage.data.entity.Id}${ROUTE_RECURRING_TASKS_EXECUTIONS}`;\n },\n textAlign: TextAlign.Right\n }, {\n id: RecurringTaskEntity.DateNextExecution,\n label: i18next.t(\"RecurringTasks:NextTask\"),\n formatter: (val: TValue, args: IFormatOptions) => {\n if (!val || args.entity.State?.Code === RecurringTaskStateCode.Paused) {\n return DASH_CHARACTER;\n }\n return DateType.format(getUtcDate(val as Date));\n },\n updateFromLiveValue: true\n }];\n\n const form: IFormDef = {\n id: `${EntityTypeName.RecurringTask}Form`,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"RecurringTasks:New\"), i18next.t(\"RecurringTasks:ScheduledTask\")),\n summary,\n translationFiles: getDefinitions.translationFiles,\n formControl: ScheduledTaskFormView,\n title: i18next.t(\"RecurringTasks:ScheduledTask\"),\n isDeletable: true,\n auditTrailSummary,\n additionalProperties: [{\n id: RecurringTaskEntity.DocumentDraft\n }, {\n id: RecurringTaskEntity.DateLastModified\n }, {\n id: RecurringTaskEntity.DoesExecuteEveryWeekDay\n }],\n fieldDefinition: {\n Name: {\n width: BasicInputSizes.XL\n },\n PeriodCode: {\n type: FieldType.SegmentedButton,\n defaultValue: RecurringTaskPeriodCode.Monthly,\n labelStatus: LabelStatus.Removed,\n customizationData: { useForCustomization: false },\n fieldSettings: {\n items: [\n {\n id: RecurringTaskPeriodCode.Daily,\n label: i18next.t(\"RecurringTasks:Granularity.Daily\")\n }, {\n id: RecurringTaskPeriodCode.Weekly,\n label: i18next.t(\"RecurringTasks:Granularity.Weekly\")\n }, {\n id: RecurringTaskPeriodCode.Monthly,\n label: i18next.t(\"RecurringTasks:Granularity.Monthly\")\n }, {\n id: RecurringTaskPeriodCode.Yearly,\n label: i18next.t(\"RecurringTasks:Granularity.Yearly\")\n }\n ]\n }\n },\n Interval: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n defaultValue: RecurringTaskIntervalCode.ToDate,\n label: i18next.t(\"RecurringTasks:Scheduler.Interval\"),\n isRequired: true,\n cacheStrategy: CacheStrategy.EndOfTime,\n extraFieldContent: {i18next.t(\"RecurringTasks:Scheduler.Always\")},\n fieldSettings: {\n displayName: \"Name\",\n additionalProperties: [{ id: \"Number\" }],\n transformFetchedItems: (items: ISelectItem[]) => {\n return items.sort((a, b) => a.additionalData.Number - b.additionalData.Number);\n }\n },\n customizationData: { useForCustomization: false },\n isVisible: args => isVisible(args, [RecurringTaskPeriodCode.Monthly, RecurringTaskPeriodCode.Yearly])\n },\n ExecuteEverySpecificDayOfWeek: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n isRequired: true,\n defaultValue: \"MON\",\n customFieldStyle: { marginRight: \"20px\" },\n label: i18next.t(\"RecurringTasks:Scheduler.Interval\"),\n labelStatus: (args) => {\n return args.storage.data.entity.PeriodCode === RecurringTaskPeriodCode.Weekly ? LabelStatus.Visible : LabelStatus.Removed;\n },\n cacheStrategy: CacheStrategy.EndOfTime,\n groupedField: GroupedField.MultiEnd,\n extraFieldContent: (args) => {\n if (args.storage.data.entity.PeriodCode === RecurringTaskPeriodCode.Weekly) {\n return {i18next.t(\"RecurringTasks:Scheduler.Always\")};\n }\n return null;\n },\n fieldSettings: {\n displayName: \"Name\",\n transformFetchedItems: (items: ISelectItem[]) => {\n return dayjs.weekdays(true).map((day: string) => {\n return items.find((item) => item.label.toLowerCase() === day.toLowerCase());\n });\n }\n },\n customizationData: { useForCustomization: false },\n isVisible: (args) => {\n return (isVisible(args, [RecurringTaskPeriodCode.Monthly, RecurringTaskPeriodCode.Yearly])\n && args.storage.data.entity?.Interval?.Code !== RecurringTaskIntervalCode.ToDate) ||\n isVisible(args, [RecurringTaskPeriodCode.Weekly]);\n }\n },\n ExecuteEveryNthDayOfMonth: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n labelStatus: LabelStatus.Removed,\n cacheStrategy: CacheStrategy.EndOfTime,\n groupedField: GroupedField.MultiEnd,\n customizationData: { useForCustomization: false },\n defaultValue: \"1\",\n customFieldStyle: { marginRight: \"20px\" },\n fieldSettings: {\n itemsFactory: async (): Promise => {\n const days: ISelectItem[] = [];\n for (let i = 1; i < 31; i++) {\n days.push({\n id: i.toString(),\n label: i + \".\"\n });\n }\n return [...days, { id: 31, label: i18next.t(\"RecurringTasks:Scheduler.LastDayInMonth\") }];\n }\n },\n tooltipAfter: i18next.t(\"RecurringTasks:Scheduler.LastMonthDayTooltip\"),\n isVisible: (args) => {\n return args.storage.data.entity?.Interval?.Code === RecurringTaskIntervalCode.ToDate &&\n isVisible(args, [RecurringTaskPeriodCode.Monthly, RecurringTaskPeriodCode.Yearly]);\n }\n },\n ExecuteInMonth: {\n type: FieldType.ComboBox,\n cacheStrategy: CacheStrategy.EndOfTime,\n labelStatus: LabelStatus.Removed,\n defaultValue: \"JAN\",\n customFieldStyle: { marginRight: \"20px\" },\n customizationData: { useForCustomization: false },\n extraFieldContent: {i18next.t(\"RecurringTasks:Scheduler.InMonth\")},\n fieldSettings: {\n displayName: \"Name\",\n additionalProperties: [{ id: \"Number\" }],\n transformFetchedItems: (items: ISelectItem[]) => {\n return items.sort((a, b) => a.additionalData.Number - b.additionalData.Number);\n }\n },\n isVisible: args => {\n return isVisible(args, [RecurringTaskPeriodCode.Yearly]);\n }\n },\n DateStart: {\n type: FieldType.Date,\n customizationData: { useForCustomization: false }\n },\n ExecuteEveryNth: {\n labelStatus: LabelStatus.Removed,\n width: BasicInputSizes.S,\n defaultValue: 1,\n groupedField: GroupedField.MultiEnd,\n customizationData: { useForCustomization: false },\n extraFieldContent: (args) => {\n if (args.storage.data.entity.PeriodCode === RecurringTaskPeriodCode.Daily) {\n return null;\n }\n return {i18next.t(\"RecurringTasks:Scheduler.Every\")};\n },\n fieldSettings: {\n unit: (args: IGetValueArgs) => {\n return i18next.t(`RecurringTasks:GranularityUnit.${args.storage.data.entity.PeriodCode}`);\n }\n }\n },\n [BindingContext.localContext(\"NoEnd\")]: {\n type: FieldType.Checkbox,\n label: i18next.t(\"RecurringTasks:Scheduler.NoEnd\"),\n labelStatus: LabelStatus.Removed,\n defaultValue: true,\n customizationData: { useForCustomization: false }\n },\n DateEnd: {\n type: FieldType.Date,\n isRequired: args => {\n return !args.storage.getValueByPath(BindingContext.localContext(\"NoEnd\"));\n },\n isDisabled: args => {\n return !!args.storage.getValueByPath(BindingContext.localContext(\"NoEnd\"));\n },\n customizationData: { useForCustomization: false }\n },\n [BindingContext.localContext(\"DailyRadioGroup\")]: {\n type: FieldType.RadioButtonGroup,\n label: i18next.t(\"RecurringTasks:Scheduler.Interval\"),\n isRequired: true,\n groupedField: GroupedField.MultiStart,\n customFieldStyle: { marginRight: 0 },\n defaultValue: DailyRadioButtonIds.WorkDay,\n fieldSettings: {\n definition: [{\n id: DailyRadioButtonIds.WorkDay,\n label: i18next.t(\"RecurringTasks:Scheduler.EveryWorkDay\")\n }, {\n id: DailyRadioButtonIds.Nth,\n label: i18next.t(\"RecurringTasks:Scheduler.Every\")\n }]\n },\n customizationData: { useForCustomization: false },\n isVisible: args => isVisible(args, [RecurringTaskPeriodCode.Daily])\n },\n [BindingContext.localContext(\"DraftReadOnlyForm\")]: {\n type: FieldType.Custom,\n label: i18next.t(\"RecurringTasks:TaskDialog.SelectedInvoice\"),\n labelStatus: LabelStatus.Removed,\n render: (args) => {\n if (args.storage.loading) {\n // we can't render form when parent form is loading -> data mismatched\n return null;\n }\n return ;\n },\n isVisible: hasDraft\n }\n },\n groups: [{\n id: \"name\",\n rows: [[{ id: RecurringTaskEntity.Name }]]\n }, {\n id: \"scheduler\",\n title: i18next.t(\"RecurringTasks:Repetition\"),\n rows: [[\n { id: RecurringTaskEntity.PeriodCode }\n ], [\n { id: BindingContext.localContext(\"DailyRadioGroup\") },\n { id: RecurringTaskEntity.Interval },\n { id: RecurringTaskEntity.ExecuteEverySpecificDayOfWeek },\n { id: RecurringTaskEntity.ExecuteEveryNthDayOfMonth },\n { id: RecurringTaskEntity.ExecuteInMonth },\n { id: RecurringTaskEntity.ExecuteEveryNth }\n ], [\n { id: RecurringTaskEntity.DateStart },\n { id: BindingContext.localContext(\"NoEnd\") },\n { id: RecurringTaskEntity.DateEnd }\n ]],\n customizationData: {\n isLocked: true\n }\n }, {\n id: \"Task\",\n title: i18next.t(\"RecurringTasks:Task\"),\n rows: [\n [{ id: BindingContext.localContext(\"DraftReadOnlyForm\") }]\n ],\n actions: [{\n id: RecurringTaskFormViewAction.ChooseTask,\n icon: ,\n title: i18next.t(\"RecurringTasks:SelectTask\"),\n isVisible: (args: IGetValueArgs) => {\n return !hasDraft(args);\n }\n }, {\n id: RecurringTaskFormViewAction.EditTask,\n icon: ,\n title: i18next.t(\"RecurringTasks:EditTask\"),\n isVisible: hasDraft\n }]\n }]\n };\n\n return {\n entitySet: EntitySetName.RecurringTasks,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\"RecurringTasks\", \"InvoicesReceived\", \"InvoicesIssued\", ...commonDocumentTranslations];\nsetDefByEntityType(EntityTypeName.RecurringTask, getDefinitions);","import styled from \"styled-components/macro\";\nimport { T_PLAIN_big, T_TITLE_2 } from \"../../global.style\";\nimport { TooltipIconInfo } from \"../../components/tooltipIcon\";\n\nexport const DialogHeader = styled.h1`\n ${T_TITLE_2};\n margin-bottom: 32px;\n`;\n\nexport const TextStyled = styled.span`\n ${T_PLAIN_big};\n margin: 0 12px;\n`;\n\nexport const InfoIconStyled = styled(TooltipIconInfo)`\n margin-left: 5px;\n margin-bottom: 3px;\n`;","import { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { RecurringTaskStateCode } from \"@odata/GeneratedEnums\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport BindingContext from \"../../odata/BindingContext\";\nimport { IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\n\nexport const RecurringTaskDraftId = \"recurringTaskDraft\";\n\nexport interface IRecurringTaskCustomData extends IFormStorageDefaultCustomData {\n DateNextExecution?: Date;\n copyDraftEntity?: boolean;\n bankAccounts?: IBankAccountEntity[];\n}\n\n\nexport const getStatusColor = (StatusCode: RecurringTaskStateCode): keyof DefaultTheme => {\n let color: keyof DefaultTheme;\n\n switch (StatusCode) {\n case RecurringTaskStateCode.Active:\n color = \"C_SEM_text_good\";\n break;\n case RecurringTaskStateCode.Blocked:\n color = \"C_SEM_text_bad\";\n break;\n case RecurringTaskStateCode.Paused:\n default:\n color = \"C_TEXT_primary\";\n break;\n }\n return color;\n};\n\nexport enum RecurringTaskFormViewAction {\n ChooseTask = \"ChooseTask\",\n EditTask = \"EditTask\"\n}\n\nexport const hasDraft = (args: IGetValueArgs): boolean => {\n const draft = args.storage.data.entity.DocumentDraft;\n return !!draft?.Id || !!draft?.[BindingContext.NEW_ENTITY_ID_PROP];\n};\n","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { FieldType, QueryParam, Sort, TextAlign } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport DateType from \"../../../types/Date\";\nimport { ISplitPageTableDef } from \"../../../views/table/TableView.utils\";\nimport { genericStatusFormatter } from \"../../chartOfAccounts/ChartOfAccountsDef\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"DateCreated\",\n \"CreatedBy\"\n ],\n filterDefinition: {\n DateCreated: {},\n ...withDisplayName(\"CreatedBy\")\n },\n isValueHelp: true,\n allowCustomFilters: false\n }];\n\n const table: ISplitPageTableDef = {\n filterBarDef,\n id: `${EntityTypeName.RecurringTaskExecution}Table`,\n additionalProperties: [\n { id: \"ErrorMessage\" },\n {\n id: \"GeneratedDocumentDraft\",\n additionalProperties: [\n { id: \"NumberOurs\" },\n { id: \"DocumentTypeCode\" }\n ]\n }\n ],\n columns: [\n \"DateCreated\",\n BindingContext.localContext(\"TimeCreated\"),\n \"CreatedBy\",\n \"ErrorMessage\",\n \"GeneratedDocument\"\n ],\n columnDefinition: {\n DateCreated: {},\n ...withDisplayName(\"CreatedBy\"),\n GeneratedDocument: {\n additionalProperties: [\n {\n id: \"/GeneratedDocumentDraft\",\n additionalProperties: [\n { id: \"NumberOurs\" },\n { id: \"DocumentTypeCode\" }\n ]\n },\n { id: \"NumberOurs\" },\n { id: \"DocumentTypeCode\" }\n ],\n formatter: (val: TValue, args?: IFormatOptions) => {\n const entity = args.entity;\n const isDraft = !entity.GeneratedDocument?.Id;\n const doc = isDraft ? entity.GeneratedDocumentDraft : entity.GeneratedDocument;\n const { Id, NumberOurs, DocumentTypeCode } = doc ?? {};\n return Id ? getTableIntentLink(NumberOurs ?? i18next.t(\"RecurringTasks:GoToDoc\"), {\n route: `${getRouteByDocumentType(DocumentTypeCode as typeof DocumentTypeCode)}/${isDraft ? \"new\" : Id}`,\n context: args.storage.context,\n storage: args.storage,\n customQueryString: isDraft ? `${QueryParam.Drafts}=true&${QueryParam.DraftId}=${Id}` : null\n }) : i18next.t(\"RecurringTasks:DocDoesntExist\").toString();\n }\n },\n ErrorMessage: {\n label: i18next.t(\"RecurringTasks:State\"),\n formatter: val => genericStatusFormatter(!val)\n },\n [BindingContext.localContext(\"TimeCreated\")]: {\n label: i18next.t(\"RecurringTasks:TimeCreated\"),\n type: FieldType.Date,\n textAlign: TextAlign.Right,\n additionalProperties: [{ id: \"DateCreated\" }],\n formatter: (val: TValue, args?: IFormatOptions) => {\n return DateType.localFormat(args.entity?.DateCreated, DateType.defaultTimeFormat);\n }\n }\n },\n title: i18next.t(\"RecurringTasks:GeneratedTasks\"),\n initialSortBy: [{ id: \"DateCreated\", sort: Sort.Asc }]\n };\n\n const getEntitySet = (args: IGetValueArgs) => {\n return `${EntitySetName.RecurringTasks}(${args.data?.parentId})/Executions`;\n };\n\n return {\n entitySet: getEntitySet,\n table\n };\n};\n\ngetDefinitions.translationFiles = [\"RecurringTasks\", getEnumNameSpaceName(EntityTypeName.RecurringTaskType)];\n","import { IComplexFilter, isComplexFilterArr } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectGroup, ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { IFieldInfoProperties, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ICellValueObject, TCellValue } from \"@components/table\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport { DocumentEntity, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, DocumentTypeCode, PostedStatusCode, VatStatementStatusCode } from \"@odata/GeneratedEnums\";\nimport {\n getEnumDisplayValue,\n getEnumNameSpaceName,\n getEnumSelectItems,\n getEnumValues\n} from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { hasEverBeenVatRegisteredCompany, isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { cartesian } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { flatten } from \"lodash\";\nimport * as yup from \"yup\";\n\nimport { REST_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, CacheStrategy, CurrencyUnit, FieldType, ValidatorType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { ValidationMessage } from \"../../model/Validator.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { ROUTE_FIXED_ASSET } from \"../../routes\";\nimport { getUtcDate } from \"../../types/Date\";\nimport { IChangedFilter } from \"../../views/table/TableView.utils\";\nimport { replaceTaxDocumentTypes } from \"./Report.utils\";\nimport { DEFAULT_RANGE } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport enum ReportDisplayType {\n Full = \"Full\",\n Short = \"Short\",\n None = \"None\"\n}\n\nexport enum ReportPeriods {\n None = \"None\",\n Months = \"Months\",\n Periods = \"Periods\"\n}\n\nexport enum ReportSectionTypeCode {\n Income = \"I\",\n Expense = \"E\",\n Sum = \"S\"\n}\n\nexport const CommonReportProps = {\n dateRange: BindingContext.localContext(\"DateRange\"),\n dateRangeCustomValue: BindingContext.localContext(\"DateRangeCustomValue\"),\n fiscalYear: BindingContext.localContext(\"FiscalYearId\"),\n byDate: BindingContext.localContext(\"ByDate\"),\n comparison: BindingContext.localContext(\"Comparison\"),\n showDelta: BindingContext.localContext(\"ShowDelta\"),\n splitIntoPeriods: BindingContext.localContext(\"SplitIntoPeriods\"),\n units: BindingContext.localContext(\"Units\")\n};\n\nexport const byDateValidationSchema = yup.date().typeError(ValidationMessage.NotADate)\n .nullable().required(ValidationMessage.Required);\n\nexport const byDateOptionalValidationSchema = yup.date().typeError(ValidationMessage.NotADate)\n .nullable();\n\nexport const getByDateDef = (): IFilterDef => {\n return {\n id: CommonReportProps.byDate,\n type: FieldType.Date,\n label: i18next.t(\"Reporting:Parameters.ByDate\"),\n defaultValue: () => (getUtcDate()),\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: () => byDateValidationSchema\n }\n }\n };\n};\n\nexport const getDateRangeDef = (): IFilterDef => {\n return {\n id: CommonReportProps.dateRange,\n type: FieldType.ComboBox,\n label: i18next.t(\"Reporting:Parameters.DateRange\"),\n width: BasicInputSizes.L,\n defaultValue: DEFAULT_RANGE,\n cacheStrategy: CacheStrategy.Company,\n fieldSettings: {\n // to prevent warning\n displayName: CommonReportProps.dateRange,\n endpoint: `${REST_API_URL}/DateRange`,\n items: null,\n preloadItems: true\n },\n formatter: (val: TValue): string => {\n return i18next.t(`Enums:DateRange.${val}`);\n },\n filter: {\n buildFilter: (filter: IChangedFilter) => {\n const items = filter.info.fieldSettings?.items;\n if (items) {\n const item = items.find(_item => _item.id === filter.value);\n if (item && item.additionalData) {\n const dateStart = formatDateToDateString(getUtcDate(item.additionalData?.dateRange?.DateStart));\n const dateEnd = formatDateToDateString(getUtcDate(item.additionalData?.dateRange?.DateEnd));\n\n return `DateAccountingTransaction ge ${dateStart} and DateAccountingTransaction le ${dateEnd}`;\n }\n }\n return \"\";\n }\n }\n };\n};\n\nexport enum FiscalYearComparison {\n None = \"None\",\n Last = \"PrevFYear\",\n YearBeforeLast = \"FYearBPrev\",\n SameDayLastYear = \"PrevFYearByDate\",\n SameDayYearBeforeLast = \"FYearBPrevByDate\"\n}\n\nexport const WITH_DELTA_SUFFIX = \"_DELTA\";\n\nexport const getComparisonDef = (withDelta = false): IFilterDef => {\n let items = [\n {\n label: i18next.t(\"Reporting:Columns.LastFiscalYearRelative\"),\n id: FiscalYearComparison.Last\n },\n {\n label: i18next.t(\"Reporting:Columns.LastFiscalYearRelativeDelta\"),\n id: FiscalYearComparison.Last + WITH_DELTA_SUFFIX,\n additionalData: {\n showDelta: true\n }\n },\n {\n label: i18next.t(\"Reporting:Columns.FiscalYearBLastRelative\"),\n id: FiscalYearComparison.YearBeforeLast\n },\n {\n label: i18next.t(\"Reporting:Columns.FiscalYearBLastRelativeDelta\"),\n id: FiscalYearComparison.YearBeforeLast + WITH_DELTA_SUFFIX,\n additionalData: {\n showDelta: true\n }\n },\n {\n label: i18next.t(\"Reporting:Columns.SameDayLastYearRelative\"),\n id: FiscalYearComparison.SameDayLastYear\n },\n {\n label: i18next.t(\"Reporting:Columns.SameDayLastYearRelativeDelta\"),\n id: FiscalYearComparison.SameDayLastYear + WITH_DELTA_SUFFIX,\n additionalData: {\n showDelta: true\n }\n },\n {\n label: i18next.t(\"Reporting:Columns.SameDayYearBLastRelative\"),\n id: FiscalYearComparison.SameDayYearBeforeLast\n },\n {\n label: i18next.t(\"Reporting:Columns.SameDayYearBLastRelativeDelta\"),\n id: FiscalYearComparison.SameDayYearBeforeLast + WITH_DELTA_SUFFIX,\n additionalData: {\n showDelta: true\n }\n }\n ];\n\n if (!withDelta) {\n items = items.filter(i => !i.additionalData?.showDelta);\n }\n\n const defaultValue = withDelta ? FiscalYearComparison.Last + WITH_DELTA_SUFFIX : FiscalYearComparison.Last;\n\n return {\n id: CommonReportProps.comparison,\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n defaultValue,\n label: i18next.t(\"Reporting:BalanceSheet.Comparison\"),\n fieldSettings: {\n additionalItems: [\n {\n label: i18next.t(\"Reporting:BalanceSheet.WithoutComparison\"),\n id: FiscalYearComparison.None,\n groupId: SelectGroups.Default\n }\n ],\n items\n },\n filter: {\n transformFilterValue: (value: string) => {\n return value?.replace(WITH_DELTA_SUFFIX, \"\");\n }\n }\n };\n};\n\nexport const getSplitIntoPeriodsDef = (): IFilterDef => {\n return {\n id: CommonReportProps.splitIntoPeriods,\n type: FieldType.ComboBox,\n width: BasicInputSizes.M,\n defaultValue: ReportPeriods.None,\n label: i18next.t(\"Reporting:BalanceSheet.PeriodsSplit\"),\n fieldSettings: {\n additionalItems: [\n {\n label: i18next.t(\"Reporting:BalanceSheet.None\"),\n id: ReportPeriods.None,\n groupId: SelectGroups.Default\n }\n ],\n items: [\n {\n label: i18next.t(\"Reporting:BalanceSheet.Months\"),\n id: ReportPeriods.Months\n },\n {\n label: i18next.t(\"Reporting:BalanceSheet.Periods\"),\n id: ReportPeriods.Periods\n }\n ]\n }\n };\n};\n\nexport const getUnitsDef = (): IFilterDef => {\n return {\n id: CommonReportProps.units,\n label: i18next.t(\"Reporting:BalanceSheet.Values\"),\n type: FieldType.ComboBox,\n defaultValue: CurrencyUnit.Units,\n fieldSettings: {\n frontendOnly: true,\n items: [\n {\n label: i18next.t(\"Reporting:BalanceSheet.Units\"),\n id: CurrencyUnit.Units\n },\n {\n label: i18next.t(\"Reporting:BalanceSheet.Thousands\"),\n id: CurrencyUnit.Thousands\n },\n {\n label: i18next.t(\"Reporting:BalanceSheet.Millions\"),\n id: CurrencyUnit.Millions\n }\n ]\n }\n };\n};\n\nexport const getDocumentTypeFilterDef = (filterName?: string): IFilterDef => {\n return {\n id: BindingContext.localContext(\"DocumentType_Name\"),\n type: FieldType.MultiSelect,\n defaultValue: [],\n filterName: filterName ?? \"Document_DocumentTypeCode\",\n fieldSettings: {\n // entitySet: EntitySetName.DocumentTypes,\n // displayName: \"Name\",\n isEnum: true,\n // ProformaInvoice and DDOPP use same document type,\n // and we want to differentiate between them in reports\n // => BE adds custom new document types TaxDocumentReceived and TaxDocumentIssued that are not part of the DocumentType entity set\n // ==> we need to add them into initialItems for the ConditionalDialog to show them\n // AND add correct translation for them in itemsForRender\n initialItems: [\n ...getEnumSelectItems(EntityTypeName.DocumentType),\n {\n id: \"TaxDocumentReceived\",\n label: i18next.t(\"Reporting:DDOPP.TaxDocumentReceived\")\n },\n {\n id: \"TaxDocumentIssued\",\n label: i18next.t(\"Reporting:DDOPP.TaxDocumentIssued\")\n }\n ],\n itemsForRender: (items: ISelectItem[], args: IGetValueArgs) => {\n return items.map(item => {\n if ([\"TaxDocumentReceived\", \"TaxDocumentIssued\"].includes(item.id as string)) {\n return {\n ...item,\n label: i18next.t(`Reporting:DDOPP.${item.id}`)\n };\n }\n\n return item;\n });\n }\n }\n };\n};\n\nexport const StatusEntities = [EntityTypeName.PostedStatus, EntityTypeName.ClearedStatus, EntityTypeName.VatStatementStatus];\nexport type TDocumentEntityStatuses =\n DocumentEntity.PostedStatus\n | DocumentEntity.ClearedStatus\n | DocumentEntity.DocumentVatStatementStatus;\n// we use StatusEntities in a lot of the relevant code, which is EntityTypeName\n// but the navigations related to those entity types on the document itself can have different name\n// => use StatusEntitiesToDocumentEntitiesMapping\nexport const StatusEntitiesToDocumentEntitiesMapping: Partial> = {\n [EntityTypeName.PostedStatus]: DocumentEntity.PostedStatus,\n [EntityTypeName.ClearedStatus]: DocumentEntity.ClearedStatus,\n [EntityTypeName.VatStatementStatus]: DocumentEntity.DocumentVatStatementStatus\n};\nexport const StatusCodeEnumTranslations = [\n getEnumNameSpaceName(EntityTypeName.PostedStatus),\n getEnumNameSpaceName(EntityTypeName.ClearedStatus),\n getEnumNameSpaceName(EntityTypeName.VatStatementStatus)\n];\nexport const statusFilterValuePrefixSeparator = \":\";\nexport const statusFilterValueSeparator = \",\";\nexport const DocumentStatusLocalPath = BindingContext.localContext(\"DocumentStatus\");\n\n/** Filter out entity types not related to the current company */\nexport const getFilteredStatusEntities = (context: IAppContext): EntityTypeName[] => {\n return StatusEntities.filter(t => {\n return (isAccountAssignmentCompany(context) || t !== EntityTypeName.PostedStatus)\n && (hasEverBeenVatRegisteredCompany(context) || t !== EntityTypeName.VatStatementStatus);\n });\n};\n\nexport function getStatusGroups(): ISelectGroup[] {\n return StatusEntities.map(entityType => ({\n id: entityType,\n title: i18next.t(`Document:Status.${entityType}`),\n hideDivider: true\n }));\n}\n\nexport function getStatusFilterValuePrefix(entityType: EntityTypeName): string {\n return entityType.toString().replace(/[^A-Z]+/g, \"\");\n}\n\nexport function getStatusFilterId(entityType: EntityTypeName, code: string): string {\n return `${getStatusFilterValuePrefix(entityType)}${statusFilterValuePrefixSeparator}${code}`;\n}\n\nexport function splitStatusFilterId(id: string): { entityType: EntityTypeName, code: string } {\n const [prefix, code] = id.split(statusFilterValuePrefixSeparator);\n const entityType = StatusEntities.find(e => getStatusFilterValuePrefix(e) === prefix);\n return { entityType, code };\n}\n\nconst createDocumentStatusSelectItem = (entityType: EntityTypeName, key: string): ISelectItem => ({\n id: getStatusFilterId(entityType, key),\n label: getEnumDisplayValue(entityType, key),\n groupId: entityType\n});\n\nexport function combineDocumentStatuses(ps: PostedStatusCode[], cs: ClearedStatusCode[], vs: VatStatementStatusCode[]): string[] {\n return cartesian(ps, cs, vs).map(item => item.join(statusFilterValueSeparator));\n}\n\nexport function getAllDocumentStatusItems(statusEntities: EntityTypeName[]): ISelectItem[] {\n return flatten(statusEntities.map(entityType => getEnumValues(entityType).map(key => createDocumentStatusSelectItem(entityType, key))));\n}\n\nexport type TDocumentStatusMap = Partial>;\n\nexport const getDocumentStatusFilterDef = (context: IAppContext): IFilterDef => {\n return {\n id: DocumentStatusLocalPath,\n type: FieldType.MultiSelect,\n defaultValue: [],\n filterName: \"DocumentStatus\",\n filter: {\n transformFilterValue: (value) => {\n const savedValues = (value ?? []) as (string | IComplexFilter)[];\n\n const _transformSingleValue = (v: string, map: TDocumentStatusMap) => {\n const { entityType, code } = splitStatusFilterId(v);\n if (!map[entityType]) {\n map[entityType] = [];\n }\n map[entityType].push(code);\n };\n\n const _transformMapToValues = (map: TDocumentStatusMap) =>\n combineDocumentStatuses(...(StatusEntities.map(entityType => map[entityType] ?? getEnumValues(entityType)) as [PostedStatusCode[], ClearedStatusCode[], VatStatementStatusCode[]]));\n\n if (isComplexFilterArr(savedValues)) {\n return savedValues.map((item) => {\n const map: TDocumentStatusMap = {};\n const complexFilter = item as IComplexFilter;\n if (!complexFilter.value?.length) {\n return null;\n }\n complexFilter.value.forEach(singleValue => _transformSingleValue(singleValue, map));\n return {\n ...complexFilter,\n value: _transformMapToValues(map)\n };\n }).filter(i => !!i);\n }\n\n const filteredStatusEntities = getFilteredStatusEntities(context);\n const map: TDocumentStatusMap = {};\n savedValues.forEach(v => _transformSingleValue(v as string, map));\n\n // remove saved filter that are hidden for current company\n for (const type of Object.keys(map)) {\n if (!filteredStatusEntities.includes(type as EntityTypeName)) {\n delete map[type as EntityTypeName];\n }\n }\n\n return _transformMapToValues(map);\n }\n },\n fieldSettings: {\n isEnum: true,\n groups: getStatusGroups(),\n initialItems: getAllDocumentStatusItems(getFilteredStatusEntities(context)),\n itemsForRender(items: ISelectItem[], { info }: IGetValueArgs): ISelectItem[] {\n const copiedItems = info.fieldSettings.initialItems.map(i => ({ ...i, isDisabled: true }));\n\n items.forEach(item => {\n const keys = item.id.toString().split(statusFilterValueSeparator);\n StatusEntities.forEach((entityType, idx) => {\n const copiedItem = copiedItems.find(item => item.id === getStatusFilterId(entityType, keys[idx]) && item.groupId === entityType);\n\n if (copiedItem) {\n copiedItem.isDisabled = false;\n }\n });\n });\n\n return copiedItems.filter(item => !item.isDisabled);\n }\n }\n };\n};\n\nexport interface IGetNumberOursOverride {\n documentTypeProperty: string;\n documentIdProperty: string;\n}\n\nexport const getDocumentNumberOursOverride = (options: IGetNumberOursOverride): IFieldInfoProperties => {\n return {\n formatter: (val: TValue, args: IFormatOptions): TCellValue => {\n if (!val) {\n return null;\n }\n\n const documentType: DocumentTypeCode = args.entity[options.documentTypeProperty];\n const documentId = args.entity[options.documentIdProperty];\n\n const route = getRouteByDocumentType(replaceTaxDocumentTypes(documentType));\n const number = val as string;\n\n if (route) {\n const url = `${route}/${documentId}`;\n return getTableIntentLink(number, {\n route: url,\n context: args.storage.context,\n storage: args.storage\n });\n }\n return number;\n }\n };\n};\n\nexport const documentNumberOursOverrideFormatterWithPaymentDocs = (val: TValue, args: IFormatOptions) => {\n const isPaymentDocument = !!args.entity.PaymentDocument_Id;\n const docTypeProp = \"JournalEntry_DocumentTypeCode\";\n const docIdProp = isPaymentDocument ? \"PaymentDocument_Id\" : \"Document_Id\";\n\n return getDocumentNumberOursOverride({\n documentTypeProperty: docTypeProp,\n documentIdProperty: docIdProp\n }).formatter(val, args);\n};\n\nexport const assetIntentFormatter = (val: TValue, args: IFormatOptions): ICellValueObject => {\n if (!val) {\n return null;\n }\n\n const assetId = args.entity[\"Asset_Id\"];\n const url = `${ROUTE_FIXED_ASSET}/${assetId}`;\n\n return getTableIntentLink(val as string, {\n route: url,\n context: args.storage.context,\n storage: args.storage\n });\n};","import React from \"react\";\nimport { commonReportTranslations, fetchCompanyDateRanges, IReportDateRange } from \"./Report.utils\";\nimport { Trans, withTranslation } from \"react-i18next\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { CenteredTextPage } from \"../../global.style\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { ROUTE_FISCAL_YEAR } from \"../../routes\";\nimport Page, { IPageState, IProps as IPageProps } from \"../Page\";\nimport { IReportViewBaseProps } from \"./ReportView\";\nimport { ReportSplitPage } from \"./ReportSplitPage\";\nimport { withOData } from \"@odata/withOData\";\nimport { IReportStorageDefaultCustomData, ReportStorage } from \"./ReportStorage\";\nimport { getActiveFiscalYears } from \"../fiscalYear/FiscalYear.utils\";\nimport { CommonReportProps } from \"./CommonDefs\";\nimport { Sort } from \"../../enums\";\n\nenum ReportStatus {\n NotReady = \"NotReady\",\n Ready = \"Ready\",\n NotAvailable = \"NotAvailable\"\n}\n\nexport enum FiscalYearParameterType {\n // select shows the date ranges with relative names, like \"this fiscal year\"\n DateRanges = \"DateRanges\",\n // select shows list of active fiscal years\n ActiveFiscalYears = \"ActiveFiscalYears\"\n}\n\ninterface IProps extends IPageProps {\n onTableStorageLoad?: (storage: ReportStorage) => void;\n reportViewProps?: Partial;\n fiscalYearParameterType: FiscalYearParameterType;\n}\n\nexport interface IFiscalYearDependentReportCustomData extends IReportStorageDefaultCustomData {\n dateRanges?: IReportDateRange[];\n}\n\n\ninterface IState extends IPageState {\n status: ReportStatus;\n}\n\nclass FiscalYearDependentReport extends Page {\n static contextType = AppContext;\n\n state = {\n status: ReportStatus.NotReady\n };\n\n dateRanges: IReportDateRange[] = null;\n\n componentDidMount() {\n this.initReportStatus();\n }\n\n companyChange(id: number) {\n super.companyChange(id);\n\n this.setState({\n status: ReportStatus.NotReady\n }, this.initReportStatus);\n }\n\n initReportStatus = async () => {\n let status: ReportStatus;\n\n if (this.props.fiscalYearParameterType === FiscalYearParameterType.DateRanges) {\n const values = await fetchCompanyDateRanges(this.context);\n\n status = values.length === 0 ? ReportStatus.NotAvailable : ReportStatus.Ready;\n this.dateRanges = values;\n\n } else {\n const fiscalYears = getActiveFiscalYears(this.context, Sort.Desc);\n\n status = fiscalYears.length === 0 ? ReportStatus.NotAvailable : ReportStatus.Ready;\n }\n\n this.setState({\n status\n });\n };\n\n handleTableStorageLoad = async (storage: ReportStorage) => {\n if (this.props.fiscalYearParameterType === FiscalYearParameterType.DateRanges) {\n storage.setCustomData({\n dateRanges: this.dateRanges\n });\n } else {\n storage.addActiveField(storage.data.bindingContext.navigate(CommonReportProps.fiscalYear));\n storage.refreshFields();\n }\n\n\n await this.props.onTableStorageLoad?.(storage);\n };\n\n render = () => {\n if (!this.isReady() || !this.state.status) {\n return null;\n }\n\n return (\n <>\n {this.state.status === ReportStatus.Ready &&\n\n \n }\n {this.state.status === ReportStatus.NotAvailable &&\n \n }\n \n );\n };\n}\n\nconst ReportMissingFiscalYear = () => {\n return (\n \n

    \n {/*todo use Trans component or split translation into multiple keys?*/}\n \n Pro zobrazení reportu musí existovat příslušné
    \n \n účetní období\n \n
    \n

    \n\n\n
    \n );\n};\n\nexport default withRouter(withTranslation(commonReportTranslations)(withOData(FiscalYearDependentReport)));","import { IGroupListItemDef } from \"@components/configurationList\";\nimport { IDayInterval, isValidDateInterval } from \"@components/inputs/date/utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IFieldInfoProperties, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IFilterGroupDef, TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n IReportColumnDef,\n IReportColumnGroupDef,\n IReportHierarchy,\n IReportRowDef,\n IReportRowFormatterArgs,\n IReportVariantDef,\n IReportWarning,\n TMetaColumnFormatter,\n TReportColumnFormatter,\n TReportRowFormatter\n} from \"@components/smart/smartTable\";\nimport { getColumnOverride } from \"@components/smart/smartTable/SmartReportTable.utils\";\nimport { IColumn, IRowValues, ISort, TColumn } from \"@components/table\";\nimport { getLeavesColumns, isMetaColumn } from \"@components/table/TableUtils\";\nimport { ITableVariant, IVariantColumn } from \"@components/variantSelector/VariantOdata\";\nimport { AccountEntity, EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CurrencyCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { memoizedWithCacheStrategy } from \"@utils/CacheCleaner\";\nimport { isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { getWeekNumber, getYearQuarter, isDefined } from \"@utils/general\";\nimport i18next, { TFunction } from \"i18next\";\nimport { capitalize } from \"lodash\";\n\nimport { REST_API_URL } from \"../../constants\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n BasicInputSizes,\n CacheStrategy,\n CurrencyUnit,\n FieldType,\n ReportTableRowType,\n ValidatorType,\n ValueType\n} from \"../../enums\";\nimport { Optional, TRecordAny, TRecordType, TRecordValue } from \"../../global.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport DateType, { DateFormat, getUtcDate } from \"../../types/Date\";\nimport customFetch from \"../../utils/customFetch\";\nimport ExcelExport from \"../../utils/ExcelExport\";\nimport { ISplitPageTableDef } from \"../../views/table/TableView.utils\";\nimport { getActiveChartOfAccountsId } from \"../fiscalYear/FiscalYear.utils\";\nimport { IDefinition, IPageProps } from \"../PageUtils\";\nimport { CommonReportProps } from \"./CommonDefs\";\nimport { getComposedDateRangeFieldsDefs } from \"./customFilterComponents/ComposedDateRange\";\nimport { ReportId } from \"./ReportIds\";\nimport { ReportStorage } from \"./ReportStorage\";\nimport { IReportFilterNode } from \"./ReportView\";\n\nexport const reportGroups: (keyof IReportHierarchy)[] = [\"Groups\", \"Columns\", \"Aggregations\"];\n\nexport interface IGetReportDefVal {\n settings: IEntity;\n storage: ReportStorage;\n}\n\nexport type TGetReportDefValFn

    = (args: IGetReportDefVal) => P;\nexport type TReportDefVal

    = P | TGetReportDefValFn

    ;\nexport type TReportColumnOverrides = TRecordType | ((columnId: string) => IFieldInfoProperties);\n\nexport interface IDrillDownColumnDef {\n id: string;\n filterGroup: string;\n getParsedFilters: (rowValues: IRowValues, settings: TRecordAny) => TRecordValue;\n}\n\nexport interface IReportPageProps extends Omit {\n getDef: (context?: IAppContext) => IReportDefinition;\n}\n\nexport interface IReportTableDefinition extends Omit {\n id: ReportId;\n title: string;\n path: string;\n filterBarDef: IFilterGroupDef[];\n initialSortBy?: ISort[];\n disableAggregateButton?: boolean;\n /** Initial report hierarchy in format that is send to backend */\n defaultReportHierarchy: IReportHierarchy;\n /** If multiple system default variants are used */\n defaultReportVariants?: Record;\n /** ReportView creates internally config list items definition from the current state of report hierarchy.\n * With this props, item settings can be overridden (e.g. we need one of the items to be disabled) */\n configListItemsOverride?: TGetReportConfigListItemOverride;\n parameters?: string[];\n showDrilldown?: boolean;\n // called during ReportView initialization, can be used for example to set filter values that are dependent on additional requests\n onBeforeLoad?: (storage: ReportStorage) => Promise;\n onAfterTableLoad?: (storage: ReportStorage) => void;\n onGroupToggle?: (storage: ReportStorage) => void;\n currencyUnit?: TReportDefVal;\n rowFormatter?: TReportRowFormatter;\n metaColumnFormatter?: TMetaColumnFormatter;\n columnFormatter?: TReportColumnFormatter;\n /** When we need to define field info (e.g. formatter, text align) for one of the columns */\n columnOverrides?: TReportColumnOverrides;\n /** Can be used to alter the data returned from backend. Called before rows are created .*/\n rowsDataFactory?: (rowsData: IReportRowDef[], args: IReportRowFormatterArgs) => IReportRowDef[];\n /** If true, filters are built from columns returned from backend response.\n * Otherwise, filters are built from current ReportHierarchy settings.\n * This is needed for reports like BalanceSheet, where backend returns MORE columns\n * than we actually request in ReportHierarchy settings.*/\n updateFiltersFromResponse?: boolean;\n /** Override for GeneralLedger which in some situations is nested even when only one report hierarchy group is selected. */\n canExpandCollapseRows?: (storage: ReportStorage) => boolean;\n}\n\nexport interface IReportDefinition extends Omit {\n table: IReportTableDefinition;\n}\n\nexport interface IReportData {\n Columns: IReportColumnDef[];\n Rows: IReportRowDef[];\n ColumnGroups?: IReportColumnGroupDef[];\n Warnings?: IReportWarning[];\n MetaValueKeys?: string[];\n}\n\nexport interface IReportErrorData {\n Message: string;\n}\n\nexport interface IReportSettings {\n // default settings\n Filter?: IReportFilterNode;\n Sort?: ISort[];\n ReportHierarchy?: IReportHierarchy;\n\n // any other parameters used in different reports\n [key: string]: any;\n}\n\n// if group specified, settings will only be applied when item is in that group\nexport type TReportConfigListItemOverride = Optional, \"value\">;\n\nexport type TGetReportConfigListItemOverride =\n TRecordType\n | ((item: IGroupListItemDef) => TReportConfigListItemOverride);\n\nexport enum ReportColumnType {\n Date = \"Date\",\n DateTimeOffset = \"DateTimeOffset\",\n Currency = \"Currency\",\n Delta = \"Delta\",\n Integer = \"Integer\",\n Number = \"Number\",\n String = \"String\",\n Boolean = \"Bool\",\n // number, but we don't want to use numeric agg functions on it\n StringyInteger = \"StringyInteger\",\n Label = \"Label\",\n}\n\nexport enum ReportNodeOperator {\n Equal = \"eq\",\n StartsWith = \"startswith\",\n EndsWith = \"endswith\",\n Substring = \"substring\",\n\n GreaterThan = \"gt\",\n GreaterOrEqual = \"ge\",\n LessThan = \"lt\",\n LessOrEqual = \"le\",\n}\n\nexport enum ReportConfigGroup {\n Groups = \"Groups\",\n Columns = \"Columns\",\n Aggregations = \"Aggregations\",\n AvailableColumns = \"AvailableColumns\"\n}\n\nexport enum ReportFilterNodeColumnType {\n Logic = \"Logic\",\n Not = \"Not\",\n\n Decimal = \"Decimal\",\n String = \"String\",\n DateTimeOffset = \"DateTimeOffset\",\n Date = \"Date\",\n Integer = \"Integer\",\n Boolean = \"Bool\",\n\n MultiColumnDecimal = \"MultiColumnDecimal\",\n MultiColumnString = \"MultiColumnString\",\n MultiColumnDateTimeOffset = \"MultiColumnDateTimeOffset\",\n MultiColumnDate = \"MultiColumnDate\",\n MultiColumnInteger = \"MultiColumnInteger\",\n MultiColumnBool = \"MultiColumnBool\"\n}\n\nexport type TAggregationFunction = NumberAggregationFunction | TimeAggregationFunction;\n\nexport enum NumberAggregationFunction {\n Sum = \"SUM\",\n Count = \"COUNT\",\n Avg = \"AVG\",\n Min = \"MIN\",\n Max = \"MAX\"\n}\n\nexport enum TimeAggregationFunction {\n Day = \"DAY\",\n Month = \"MONTH\",\n Year = \"YEAR\",\n Week = \"WEEK\",\n Quarter = \"QUARTER\"\n}\n\nexport enum PrintReportType {\n BalanceSheet = \"BS\",\n IncomeStatementByNature = \"IS_N\",\n IncomeStatementByFunction = \"IS_F\"\n}\n\nexport const commonReportTranslations = [\n \"Reporting\", \"Common\", \"Enums\", getEnumNameSpaceName(EntityTypeName.DocumentType)\n];\n\nexport const labelColumnNamePrefix = \"LabelWithPath_Name_\";\nexport const labelChildrenSuffix = \"_Children\";\n\nexport const getAggFuncLabel = (fnName: TimeAggregationFunction | NumberAggregationFunction) => {\n return i18next.t(`Reporting:AggrFunc.${capitalize(fnName)}`);\n};\n\nexport const getNumberAggFuncItems = () => {\n return [\n { id: NumberAggregationFunction.Sum, label: getAggFuncLabel(NumberAggregationFunction.Sum) },\n { id: NumberAggregationFunction.Avg, label: getAggFuncLabel(NumberAggregationFunction.Avg) },\n { id: NumberAggregationFunction.Min, label: getAggFuncLabel(NumberAggregationFunction.Min) },\n { id: NumberAggregationFunction.Max, label: getAggFuncLabel(NumberAggregationFunction.Max) },\n { id: NumberAggregationFunction.Count, label: getAggFuncLabel(NumberAggregationFunction.Count) }\n ];\n};\n\nexport const getNumberAggFuncItem = (funcId: NumberAggregationFunction) => {\n return getNumberAggFuncItems().find(item => item.id === funcId);\n};\n\nexport const getTimeAggFuncItems = () => {\n // items are ordered by specificity, day is first as the most specific\n return [\n { id: TimeAggregationFunction.Day, label: getAggFuncLabel(TimeAggregationFunction.Day) },\n { id: TimeAggregationFunction.Week, label: getAggFuncLabel(TimeAggregationFunction.Week) },\n { id: TimeAggregationFunction.Month, label: getAggFuncLabel(TimeAggregationFunction.Month) },\n { id: TimeAggregationFunction.Quarter, label: getAggFuncLabel(TimeAggregationFunction.Quarter) },\n { id: TimeAggregationFunction.Year, label: getAggFuncLabel(TimeAggregationFunction.Year) }\n ];\n};\n\nexport const getTimeAggFuncItem = (funcId: TimeAggregationFunction) => {\n return getTimeAggFuncItems().find(item => item.id === funcId);\n};\n\n// e.g. [JournalEntry_DateAccountingTransaction_MONTH, JournalEntry_DateAccountingTransaction_DAY] sorts as\n// [JournalEntry_DateAccountingTransaction_DAY, JournalEntry_DateAccountingTransaction_MONTH] because day is more specific\nexport const compareColumnIdsByTimeAggFuncSpecificity = (columnId1: string, columnId2: string) => {\n const col1 = getColumnFromColumnAlias(columnId1);\n const col2 = getColumnFromColumnAlias(columnId2);\n const aggFn1Index = getTimeAggFuncItems().findIndex(item => item.id === col1.AggregationFunction);\n const aggFn2Index = getTimeAggFuncItems().findIndex(item => item.id === col2.AggregationFunction);\n\n return aggFn1Index - aggFn2Index;\n};\n\nexport const isAggregationFunction = (text: string) => {\n return Object.values(NumberAggregationFunction).includes(text as NumberAggregationFunction) || Object.values(TimeAggregationFunction).includes(text as TimeAggregationFunction);\n};\n\nexport const formatDateByTimeAggFn = (date: Date, type: TimeAggregationFunction) => {\n let formattedValue;\n\n switch (type.toUpperCase()) {\n case TimeAggregationFunction.Year:\n formattedValue = DateType.format(date, DateFormat.year);\n break;\n case TimeAggregationFunction.Month:\n formattedValue = DateType.format(date, DateFormat.monthAndYear);\n break;\n case TimeAggregationFunction.Quarter:\n formattedValue = `${getYearQuarter(date)}. ${getAggFuncLabel(TimeAggregationFunction.Quarter).toLowerCase()}`;\n break;\n case TimeAggregationFunction.Week:\n formattedValue = `${getWeekNumber(date)}. ${getAggFuncLabel(TimeAggregationFunction.Week).toLowerCase()}`;\n break;\n case TimeAggregationFunction.Day:\n default:\n formattedValue = DateType.format(date, DateType.defaultDateFormat);\n break;\n }\n\n return formattedValue;\n};\n\nexport const NumberAggFuncTypes = [ReportColumnType.Currency, ReportColumnType.Integer, ReportColumnType.Number];\n\n// columnAlias can include aggregation function 'JournalEntry_Amount_SUM'\n// we need to find its clean definition {ColumnAlias: JournalEntry_Amount, AggregationFunction: SUM}\nexport const getColumnFromColumnAlias = (columnAlias: string): IReportColumnDef => {\n const splittedColumnAlias = columnAlias.split(\"_\");\n const aggregationFunction = splittedColumnAlias[splittedColumnAlias.length - 1];\n\n if (aggregationFunction && !isAggregationFunction(aggregationFunction)) {\n // e.g. LabelWithPath_Name_1\n return {\n ColumnAlias: columnAlias\n };\n }\n\n const cleanColumnAlias = [...splittedColumnAlias].splice(0, splittedColumnAlias.length - 1).join(\"_\");\n\n const column: IReportColumnDef = {\n ColumnAlias: cleanColumnAlias\n };\n\n if (aggregationFunction) {\n column.AggregationFunction = aggregationFunction as TAggregationFunction;\n }\n\n return column;\n};\n\nexport const findColumnInHierarchy = (reportHierarchy: IReportHierarchy, columnAlias: string) => {\n if (!reportHierarchy) {\n return null;\n }\n const cleanColumn = getColumnFromColumnAlias(columnAlias);\n const _isSortColumn = (col: IReportColumnDef) => {\n return col.ColumnAlias === cleanColumn.ColumnAlias && col.AggregationFunction?.toLowerCase() === cleanColumn.AggregationFunction?.toLowerCase();\n };\n\n return reportHierarchy.Groups?.find(_isSortColumn)\n || reportHierarchy.Columns?.find(_isSortColumn)\n || reportHierarchy.Aggregations?.find(_isSortColumn);\n};\n\nexport const getMatchingColumn = (columns: IReportColumnDef[], columnAlias: string): IReportColumnDef => {\n if (!columns || columns.length === 0) {\n return null;\n }\n\n // startsWith used because columns can have aggregation function as appendix\n const matchingColumns = columns?.filter((supCol: IReportColumnDef) => columnAlias.startsWith(supCol.ColumnAlias));\n\n if (matchingColumns.length === 0) {\n return null;\n }\n\n // if multiple columns startswith the same string, try to find exact match\n const column = matchingColumns?.find(col => col.ColumnAlias === columnAlias);\n\n if (column) {\n return column;\n }\n\n // this is kinda coinflip if there are still multiple columns, hopefully there is just one\n return matchingColumns[0];\n};\n\n\nexport const getFieldTypeFromColumnType = (column: IReportColumnDef): FieldType => {\n switch (column.Type) {\n case ReportColumnType.Date:\n case ReportColumnType.DateTimeOffset:\n return FieldType.Date;\n case ReportColumnType.Integer:\n case ReportColumnType.Number:\n case ReportColumnType.Currency:\n case ReportColumnType.Delta:\n return FieldType.NumberInput;\n case ReportColumnType.Boolean:\n return FieldType.MultiSelect;\n case ReportColumnType.String:\n default:\n return FieldType.Input;\n }\n};\n\nexport const getValueTypeFromColumnType = (column: IReportColumnDef): ValueType => {\n switch (column.Type) {\n case ReportColumnType.Date:\n case ReportColumnType.DateTimeOffset:\n return ValueType.Date;\n case ReportColumnType.Integer:\n case ReportColumnType.Number:\n case ReportColumnType.Currency:\n case ReportColumnType.Delta:\n return ValueType.Number;\n case ReportColumnType.Boolean:\n return ValueType.Boolean;\n case ReportColumnType.String:\n default:\n return ValueType.String;\n }\n};\n\nexport const getValidatorTypeFromColumnType = (column: IReportColumnDef): ValidatorType => {\n switch (column.Type) {\n case ReportColumnType.Date:\n case ReportColumnType.DateTimeOffset:\n return ValidatorType.Date;\n case ReportColumnType.Integer:\n case ReportColumnType.Number:\n case ReportColumnType.Currency:\n return ValidatorType.Number;\n case ReportColumnType.Boolean:\n return ValidatorType.Boolean;\n case ReportColumnType.String:\n default:\n return ValidatorType.String;\n }\n};\n\nexport const getCurrencyColumn = (column: IReportColumnDef) => {\n return column.DependentColumnsAliases?.find(col => col.includes(\"CurrencyCode\"));\n};\n\ninterface IExportCellValue {\n id: string,\n label: string,\n value: string\n}\n\ninterface IFormatArgs {\n entity?: TRecordAny;\n}\n\ntype TExportFormatterFn = (args: IFormatArgs) => IExportCellValue[];\n\ninterface IColumnExtended extends IColumn {\n type?: ReportColumnType;\n currency?: string;\n exportFormatter?: TExportFormatterFn;\n}\n\nexport const prepareReportDataForExport = (data: IReportData, translate: TFunction, tableColumns?: TColumn[], def?: IReportTableDefinition) => {\n let columns: IColumnExtended[] = (data?.Columns ?? []).map((column: IReportColumnDef) => {\n return {\n id: column.ColumnAlias,\n label: column.Label,\n type: column.Type,\n currency: getCurrencyColumn(column),\n exportFormatter: getColumnOverride(def?.columnOverrides, column.ColumnAlias)?.exportFormatter\n };\n });\n const rows = unrollRows((data?.Rows ?? []));\n\n // add meta column labels, retrieve from tableColumns because labels are correctly formatted there\n let metaColRow: IEntity;\n if (tableColumns) {\n for (const tableColumn of tableColumns) {\n if (isMetaColumn(tableColumn)) {\n const leaveCols = getLeavesColumns([tableColumn]);\n\n if (!metaColRow) {\n metaColRow = {\n [ExcelExport.META_COL_ROW_ID]: true\n };\n }\n\n for (const leaveCol of leaveCols) {\n metaColRow[leaveCol.id] = tableColumn.label;\n }\n }\n }\n }\n\n // sometimes, BE doesn't send currency for the row => use CZK\n // will be changed in the future, when the currency will work completely different\n const currencyColumns: string[] = [];\n // add currency as standalone columns\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n\n if (column.currency) {\n currencyColumns.push(column.currency);\n const currencyColumn = {\n id: column.currency,\n label: `${translate(\"Reporting:Columns.JournalEntry_CurrencyCode\")} (${column.label})`\n };\n\n i += 1;\n columns.splice(i, 0, currencyColumn);\n }\n }\n\n const _exportedColumnId = (column: { id: string }, exportedCol: { id: string }): string =>\n `${column.id}_${exportedCol.id}`;\n\n const cleanRows = rows.map((row) => {\n const values: TRecordAny = {};\n\n for (const column of columns) {\n const value = row.Value[column.id];\n\n if (column.exportFormatter) {\n const exportedCells = column.exportFormatter({ entity: row.Value });\n for (const cell of exportedCells) {\n values[_exportedColumnId(column, cell)] = cell.value;\n }\n } else if (value && column.type === ReportColumnType.Date) {\n values[column.id] = getUtcDate(value as string);\n } else {\n values[column.id] = value;\n\n if (!value && currencyColumns.includes(column.id)) {\n values[column.id] = CurrencyCode.CzechKoruna;\n }\n }\n }\n\n return values;\n });\n\n if (metaColRow) {\n cleanRows.unshift(metaColRow);\n }\n\n // columns with export formatter may multiply itself to more columns -> duplicate also preparedColumns\n columns = columns.reduce((prepared, column) => {\n if (column.exportFormatter) {\n column.exportFormatter({})\n .forEach(exportedCol => prepared.push({\n ...column,\n id: _exportedColumnId(column, exportedCol),\n label: exportedCol.label\n }));\n } else {\n prepared.push(column);\n }\n return prepared;\n }, []);\n\n return { rows: cleanRows, columns };\n};\n\nexport const unrollRows = (rows: IReportRowDef[], allRows: IReportRowDef[] = []) => {\n for (const row of rows) {\n // only export value rows\n if ([ReportTableRowType.Value, ReportTableRowType.GroupValue, ReportTableRowType.MergedGroup].includes(row.Type)) {\n allRows.push(row);\n }\n\n if (row.Rows) {\n unrollRows(row.Rows, allRows);\n }\n }\n\n return allRows;\n};\n\nexport const getColumnFilterId = (column: IReportColumnDef, aggFnIncluded?: boolean): string => {\n return BindingContext.localContext(getColumnFullAlias(column, aggFnIncluded));\n};\n\n/** Returns ColumnAlias together with AggregationFunction if present */\nexport const getColumnFullAlias = (column: IReportColumnDef, aggFnIncluded?: boolean): string => {\n if (!column) {\n return null;\n }\n\n return `${column.ColumnAlias}${!aggFnIncluded && column.AggregationFunction ? `_${column.AggregationFunction}` : \"\"}`;\n};\n\nexport const getColumnLabel = (column: IReportColumnDef): string => {\n return `${column.Label}${column.AggregationFunction ? ` (${getAggFuncLabel(column.AggregationFunction).toLowerCase()})` : \"\"}`;\n};\n\nexport const getReportRowId = (path: number[]) => {\n // return `${level}-(${parentIndex})-${index}`;\n return path.join(\":\");\n};\n\nexport const getReportRowNewParentIndex = (parentIndex: string, index: number) => {\n return `${parentIndex}:${index}`;\n};\n\nexport const getFilterNameWithoutEntitySetPrefix = (filterName: string) => {\n return filterName.split(\"/\").slice(-1)[0];\n};\n\n/** Removes local context sign from settings keys*/\nexport const cleanSettings = (settings: IEntity) => {\n return Object.entries(settings).reduce((filteredSettings: TRecordAny, [settingKey, settingValue]) => {\n const cleanKey = BindingContext.cleanLocalContext(settingKey);\n\n if (isDefined(settingValue)) {\n filteredSettings[cleanKey] = settingValue;\n }\n\n return filteredSettings;\n }, {});\n};\n\nexport const getReportDefinition = (getReportTableDef: (context: IAppContext) => IReportTableDefinition, context: IAppContext): IReportDefinition => {\n const reportTableDefinition = getReportTableDef(context);\n\n return {\n entitySet: BindingContext.localContext(reportTableDefinition.path),\n table: reportTableDefinition\n };\n};\n\nconst convertVariantColumnToReportColumn = (variantColumn: IVariantColumn): IReportColumnDef => {\n return {\n ColumnAlias: variantColumn.id,\n AggregationFunction: variantColumn.aggregationFunction as TAggregationFunction\n };\n};\n\nexport const convertVariantToReportHierarchy = (variant: ITableVariant): IReportHierarchy => {\n const columns = variant.columns;\n // columns have groupId specified when aggregate is used\n // todo will break when variant with aggregate and zero columns is stored\n // aggregate would have to be stored as new parameter to BE for full functionality\n const aggregate = !!columns?.[0]?.group;\n\n return {\n Aggregate: aggregate,\n Groups: columns.filter(column => column.group === ReportConfigGroup.Groups).map(column => convertVariantColumnToReportColumn(column)),\n Columns: columns.filter(column => !aggregate || column.group === ReportConfigGroup.Columns).map(column => convertVariantColumnToReportColumn(column)),\n Aggregations: columns.filter(column => column.group === ReportConfigGroup.Aggregations).map(column => convertVariantColumnToReportColumn(column))\n };\n};\n\nexport interface IDateRangeParam {\n DateStart: Date,\n DateEnd: Date\n}\n\nexport interface IReportDateRange {\n Key: string;\n Value: {\n DateStart: string;\n DateEnd: string;\n };\n}\n\nconst fetchCompanyDateRangesMemoized = memoizedWithCacheStrategy(\n async (context: IAppContext) => {\n const endPoint = isCashBasisAccountingCompany(context) ? \"CalendarDateRange\" : \"DateRange\";\n const res = await customFetch(`${REST_API_URL}/${endPoint}`);\n\n return await res.json();\n },\n (context: IAppContext) => {\n return `dateRanges_${context.getCompany().Id}`;\n }\n);\n\nexport const fetchCompanyDateRanges = async (context: IAppContext): Promise => {\n return fetchCompanyDateRangesMemoized(context, CacheStrategy.Company);\n};\n\nexport interface IDayIntervalWithTimeAggFn extends IDayInterval {\n type: TimeAggregationFunction;\n}\n\nexport const isValidDateIntervalWithTimeAggFn = (value: any): value is IDayIntervalWithTimeAggFn => {\n return isValidDateInterval(value) && !!(value as any).type && !!getTimeAggFuncItem((value as any).type);\n};\n\nexport const getAccountsParamDef = (defaultValues: string[] = [], withChildrenAccounts?: boolean, onlyAccountsForSaldo?: boolean): TFilterDef => {\n let filter = withChildrenAccounts ? \"\" : \"Parent eq null\";\n\n if (onlyAccountsForSaldo) {\n if (filter) {\n filter += \" AND \";\n }\n\n filter += `startswith(${AccountEntity.Number}, '3')`;\n }\n\n return {\n filter: {\n select: filter\n },\n type: FieldType.MultiSelect,\n label: i18next.t(\"Reporting:Parameters.Accounts\"),\n columns: [\n { id: \"Number\", label: i18next.t(\"Reporting:Parameters.AccountsNumber\") },\n { id: \"Name\", label: i18next.t(\"Reporting:Parameters.AccountsName\") }\n ],\n fieldSettings: {\n entitySet: (args: IGetValueArgs) => {\n if (withChildrenAccounts) {\n return EntitySetName.FlattenAccounts;\n } else {\n return `ChartsOfAccounts(${getActiveChartOfAccountsId(args.context)})/Accounts`;\n }\n },\n // we need to use Number as both default and output value\n // => changing the id value of the items to Number from Id\n idName: \"Number\",\n displayName: \"Number\",\n preloadItems: true\n },\n defaultValue: defaultValues,\n width: BasicInputSizes.L\n };\n};\n\n/** Creates set of label filters for drilldown from given entity */\nexport const getLabelDrilldownFilters = (entity: IEntity): TRecordAny => {\n const filters: TRecordAny = {};\n\n for (const key of Object.keys(entity).sort()) {\n const value = entity[key];\n const childrenKey = `${key}${labelChildrenSuffix}`;\n\n if (key.startsWith(labelColumnNamePrefix) && !key.endsWith(labelChildrenSuffix)) {\n if (entity[childrenKey]) {\n filters[BindingContext.localContext(key)] = [entity[key], ...entity[childrenKey]];\n } else {\n filters[BindingContext.localContext(key)] = [value];\n }\n }\n }\n\n return filters;\n};\n\nexport enum CbaIncomeExpenseType {\n All = \"All\",\n Income = \"Income\",\n Expense = \"Expense\"\n}\n\nexport const CbaIncomeExpenseProps = {\n type: BindingContext.localContext(\"Type\"),\n includeUnrelatedToBusiness: BindingContext.localContext(\"IncludeUnrelatedToBusiness\")\n};\n\nexport const cbaReportCommonParams = [CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue, CbaIncomeExpenseProps.type, CbaIncomeExpenseProps.includeUnrelatedToBusiness];\n\nexport const getCbaReportParamsDef = (tableId: ReportId): Record => {\n const dateRangeFieldDefs = getComposedDateRangeFieldsDefs(tableId);\n\n return {\n ...dateRangeFieldDefs,\n [CommonReportProps.dateRange]: {\n ...dateRangeFieldDefs[CommonReportProps.dateRange],\n defaultValue: \"ThisYear\"\n },\n [CbaIncomeExpenseProps.type]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Reporting:CbaIncomeExpense.Direction\"),\n fieldSettings: {\n items: [{\n id: CbaIncomeExpenseType.All,\n label: i18next.t(\"Reporting:CbaIncomeExpense.All\")\n }, {\n id: CbaIncomeExpenseType.Income,\n label: i18next.t(\"Reporting:CbaIncomeExpense.Income\")\n }, {\n id: CbaIncomeExpenseType.Expense,\n label: i18next.t(\"Reporting:CbaIncomeExpense.Expense\")\n }]\n },\n defaultValue: CbaIncomeExpenseType.All\n },\n [CbaIncomeExpenseProps.includeUnrelatedToBusiness]: {\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n label: i18next.t(\"Reporting:CbaIncomeExpense.UnrelatedToBusiness\"),\n defaultValue: false\n }\n };\n};\n\n/**\n * Replace fake document type for DDOPP documents in Reports with real document type of the entity\n * @param docType\n */\nexport function replaceTaxDocumentTypes(docType: DocumentTypeCode | \"TaxDocumentReceived\" | \"TaxDocumentIssued\"): DocumentTypeCode {\n if (docType === \"TaxDocumentReceived\") {\n return DocumentTypeCode.ProformaInvoiceReceived;\n } else if (docType === \"TaxDocumentIssued\") {\n return DocumentTypeCode.ProformaInvoiceIssued;\n }\n return docType;\n}","import { IGetDrillDownParams } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString, IDayInterval } from \"@components/inputs/date/utils\";\nimport { IFieldData } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportColumnDef } from \"@components/smart/smartTable\";\nimport { isEmptyValue } from \"@odata/OData.utils\";\nimport { dateTimeToDateRange, isDefined } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\n\nimport {\n Condition,\n ConditionType,\n getComplexFilterValue,\n IComplexFilter,\n isComplexFilter,\n isComplexFilterArr,\n isInterval,\n IValueInterval,\n TFilterValue\n} from \"../../components/smart/smartValueHelper\";\nimport { EMPTY_VALUE } from \"../../constants\";\nimport { LogicOperator, ValueType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { DATE_MAX, DATE_MIN, getUtcDate, getUtcDayjs } from \"../../types/Date\";\nimport { IChangedFilter } from \"../../views/table/TableView.utils\";\nimport { CommonReportProps } from \"./CommonDefs\";\nimport {\n cleanSettings,\n getColumnFromColumnAlias,\n getNumberAggFuncItem,\n NumberAggregationFunction,\n ReportColumnType,\n ReportFilterNodeColumnType,\n ReportNodeOperator\n} from \"./Report.utils\";\nimport { ReportStorage } from \"./ReportStorage\";\nimport { IReportFilterNode } from \"./ReportView\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nconst complexFilterConditionToReportOperator: Partial> = {\n [Condition.Equals]: ReportNodeOperator.Equal,\n [Condition.IsBefore]: ReportNodeOperator.LessThan,\n [Condition.IsAfter]: ReportNodeOperator.GreaterThan,\n [Condition.IsBeforeOrEqualsTo]: ReportNodeOperator.LessOrEqual,\n [Condition.IsAfterOrEqualsTo]: ReportNodeOperator.GreaterOrEqual,\n [Condition.GreaterThan]: ReportNodeOperator.GreaterThan,\n [Condition.LesserThan]: ReportNodeOperator.LessThan,\n [Condition.GreaterOrEqual]: ReportNodeOperator.GreaterOrEqual,\n [Condition.LesserOrEqual]: ReportNodeOperator.LessOrEqual,\n [Condition.Contains]: ReportNodeOperator.Substring,\n [Condition.BeginsWith]: ReportNodeOperator.StartsWith,\n [Condition.EndsWith]: ReportNodeOperator.EndsWith\n};\n\nconst getDefaultNodeTypeForColumnType = (columnType: ReportColumnType, isColumnAliasFilterPrefix?: boolean): ReportFilterNodeColumnType => {\n let newColType: ReportFilterNodeColumnType;\n\n switch (columnType) {\n case ReportColumnType.Delta:\n case ReportColumnType.Currency:\n case ReportColumnType.Number:\n newColType = ReportFilterNodeColumnType.Decimal;\n break;\n case ReportColumnType.Integer:\n newColType = ReportFilterNodeColumnType.Integer;\n break;\n case ReportColumnType.String:\n case ReportColumnType.StringyInteger:\n case ReportColumnType.Label:\n newColType = ReportFilterNodeColumnType.String;\n break;\n case ReportColumnType.Boolean:\n newColType = ReportFilterNodeColumnType.Boolean;\n break;\n default:\n newColType = columnType as unknown as ReportFilterNodeColumnType;\n }\n\n // Special types for \"multi\" columns that have IsColumnAliasFilterPrefix property set to true.\n // This is done for columns like \"Netto\" which uses one filter field to filter over multiple virtual columns\n if (isColumnAliasFilterPrefix) {\n newColType = `MultiColumn${newColType}` as ReportFilterNodeColumnType;\n }\n\n return newColType;\n};\n\nconst getDefaultOperatorForColumnType = (columnType: ReportColumnType) => {\n switch (columnType) {\n case ReportColumnType.Delta:\n case ReportColumnType.Currency:\n case ReportColumnType.Number:\n case ReportColumnType.Integer:\n return ReportNodeOperator.Equal;\n case ReportColumnType.Label:\n return ReportNodeOperator.Equal;\n case ReportColumnType.Boolean:\n return ReportNodeOperator.Equal;\n default:\n return ReportNodeOperator.Equal;\n }\n};\n\nconst getNodeValue = (supportedColumn: IReportColumnDef, value: TValue) => {\n if (supportedColumn.Type === ReportColumnType.DateTimeOffset) {\n return getUtcDate(value as Date)?.toISOString();\n }\n\n if (supportedColumn.Type === ReportColumnType.Date) {\n return formatDateToDateString(value as Date);\n }\n\n return value;\n};\n\nconst getLeftNodeValue = (column: IReportColumnDef): IReportFilterNode => {\n const node: IReportFilterNode = {\n ColumnAlias: column.ColumnAlias\n };\n\n if (column.AggregationFunction) {\n node.AggregationFunction = column.AggregationFunction;\n }\n\n return node;\n};\n\nconst getArrayValueNode = (filter: TBuildReportNodeFilter, getCustomNode?: (filter: IFieldData) => IReportFilterNode): IReportFilterNode => {\n const value = filter.value as [];\n\n // if filter represents multiple values\n // we have to add OR filters for all the values, with same ColumnAlias\n if (value.length === 0) {\n return null;\n }\n\n const clonedFilters = (filter.value as []).map(value => {\n return {\n ...filter,\n value\n };\n });\n\n return buildFilterTree({\n filters: clonedFilters,\n operator: isComplexFilterArr(filter.value) ? LogicOperator.And : LogicOperator.Or,\n getCustomNode\n });\n};\n\nconst getIntervalNode = (supportedColumn: IReportColumnDef, { from, to }: IValueInterval): IReportFilterNode => {\n const leftNodeValue = getLeftNodeValue(supportedColumn);\n const type = getDefaultNodeTypeForColumnType(supportedColumn.Type);\n\n return {\n Type: ReportFilterNodeColumnType.Logic,\n Operator: LogicOperator.And,\n Left: {\n Type: type,\n Operator: ReportNodeOperator.GreaterOrEqual,\n Left: { ...leftNodeValue },\n Right: {\n Value: getNodeValue(supportedColumn, from)\n }\n },\n Right: {\n Type: type,\n Operator: ReportNodeOperator.LessOrEqual,\n Left: { ...leftNodeValue },\n Right: {\n Value: getNodeValue(supportedColumn, to)\n }\n }\n };\n};\n\nexport const getComplexValueNode = (supportedColumn: IReportColumnDef, complexValue: IComplexFilter): IReportFilterNode => {\n const value = getComplexFilterValue(complexValue);\n\n if (Array.isArray(value)) {\n // array of enum values\n let filterTree: IReportFilterNode;\n // => use OR for Included | Not(...OR...) for excluded\n const isExcludedEnum = complexValue.type === ConditionType.Excluded;\n // type to build a single entry node will be always \"included\"\n const type = ConditionType.Included;\n\n for (const val of value) {\n const node = getComplexValueNode(supportedColumn, { ...complexValue, type, value: val as TFilterValue });\n\n if (!filterTree) {\n filterTree = node;\n } else {\n filterTree = {\n Type: ReportFilterNodeColumnType.Logic,\n Operator: LogicOperator.Or,\n Left: filterTree,\n Right: node\n };\n }\n }\n\n if (isExcludedEnum && filterTree) {\n filterTree = {\n Type: ReportFilterNodeColumnType.Not,\n Node: filterTree\n };\n }\n\n return filterTree;\n }\n\n let node: IReportFilterNode;\n\n if (isInterval(value)) {\n node = getIntervalNode(supportedColumn, (complexValue.value as IValueInterval) ?? value);\n } else if (supportedColumn.Type === ReportColumnType.DateTimeOffset && complexValue.condition === Condition.Equals) {\n // DateTimeOffset has to be sent as interval, because user can't select exact minutes and seconds\n node = getIntervalNode(supportedColumn, dateTimeToDateRange(value as Date));\n } else {\n node = {\n Left: getLeftNodeValue(supportedColumn),\n Right: {\n Value: getNodeValue(supportedColumn, value)\n },\n Type: getDefaultNodeTypeForColumnType(supportedColumn.Type),\n Operator: complexFilterConditionToReportOperator[complexValue.condition]\n };\n }\n\n if (complexValue.type === ConditionType.Excluded) {\n node = {\n Type: ReportFilterNodeColumnType.Not,\n Node: node\n };\n }\n\n return node;\n};\n\nexport const getNode = (filter: TBuildReportNodeFilter): IReportFilterNode => {\n let node: IReportFilterNode;\n const filterName = BindingContext.cleanLocalContext(filter.bindingContext.getPath());\n const cleanColumn = getColumnFromColumnAlias(filterName);\n let supportedColumn = filter.columnDef;\n\n if (!supportedColumn) {\n logger.warn(`ReportView: trying to create filter on non existing column: ${filterName}`);\n return null;\n }\n\n supportedColumn = {\n ...supportedColumn,\n // use the complete name with agg function\n ColumnAlias: filterName\n };\n\n if (filter.filterName) {\n // filter of column points to different ColumnAlias (e.g. DocumentType_Name is actually filtered by Document_DocumentTypeCode)\n supportedColumn = {\n ...supportedColumn,\n ColumnAlias: filter.filterName as string\n };\n }\n const hasNumberAggFn = cleanColumn.AggregationFunction && !!getNumberAggFuncItem(cleanColumn.AggregationFunction as NumberAggregationFunction);\n\n if (hasNumberAggFn) {\n supportedColumn.Type = cleanColumn.AggregationFunction === NumberAggregationFunction.Count ? ReportColumnType.Integer : ReportColumnType.Number;\n }\n\n const isComplexValue = isComplexFilter(filter.value);\n\n if (isComplexValue) {\n return getComplexValueNode(supportedColumn, filter.value as unknown as IComplexFilter);\n }\n\n node = {\n Left: getLeftNodeValue(supportedColumn),\n Right: {\n Value: filter.value === EMPTY_VALUE ? null : getNodeValue(supportedColumn, filter.value)\n }\n };\n\n if (supportedColumn.Type === ReportColumnType.DateTimeOffset || (supportedColumn.Type === ReportColumnType.Date && isInterval(filter.value))) {\n // DateTimeOffset has to be send as interval, because user can't select exact minutes and seconds\n let value: IDayInterval;\n\n if (isInterval(filter.value)) {\n value = filter.value as unknown as IDayInterval;\n } else {\n value = dateTimeToDateRange(filter.value as Date);\n }\n\n node = getIntervalNode(supportedColumn, value);\n } else {\n node.Type = getDefaultNodeTypeForColumnType(supportedColumn.Type, supportedColumn.IsColumnAliasFilterPrefix);\n node.Operator = getDefaultOperatorForColumnType(supportedColumn.Type);\n }\n\n return node;\n};\n\nexport type TBuildReportNodeFilter = IFieldData & { columnDef: IReportColumnDef };\n\nexport interface IBuildReportFilterTreeArgs {\n filters: TBuildReportNodeFilter[];\n operator?: LogicOperator;\n allColumns?: IReportColumnDef[];\n parentFilter?: IFieldData;\n getCustomNode?: (filter: IFieldData) => IReportFilterNode;\n}\n\nexport const buildFilterTree = ({\n filters,\n operator = LogicOperator.And,\n getCustomNode\n }: IBuildReportFilterTreeArgs): IReportFilterNode => {\n let filterTree;\n\n for (const filter of filters) {\n let filterNode;\n\n if (Array.isArray(filter.value)) {\n filterNode = getArrayValueNode(filter, getCustomNode);\n\n if (!filterNode) {\n continue;\n }\n } else {\n const customNode = getCustomNode?.(filter);\n filterNode = customNode ?? getNode(filter);\n }\n\n if (filterTree && filterNode) {\n filterTree = {\n Type: ReportFilterNodeColumnType.Logic,\n Operator: operator,\n Left: filterTree,\n Right: filterNode\n };\n } else if (filterNode) {\n filterTree = filterNode;\n }\n }\n\n return filterTree;\n};\n\n// FE implementation of the filters. Used in reports to build items for value helpers.\n// This way we don't need to send request to BE for each filter (which wouldn't be viable for reports)\ntype TApplyFilter = (val1: T, val2: T | IValueInterval, condition?: Condition, conditionType?: ConditionType) => boolean;\n\nconst fixStringValue = (val: string): string => {\n return isEmptyValue(val) ? null : val;\n};\n\nexport const applyStringFilter = (val1: string, val2: string, condition = Condition.Equals, conditionType = ConditionType.Included): boolean => {\n let isTrue: boolean;\n\n const fixedVal1 = fixStringValue(val1);\n const fixedVal2 = fixStringValue(val2);\n\n switch (condition) {\n case Condition.Equals:\n isTrue = fixedVal1 === fixedVal2;\n break;\n case Condition.Contains:\n isTrue = !!fixedVal1?.includes(fixedVal2);\n break;\n case Condition.BeginsWith:\n isTrue = !!fixedVal1?.startsWith(fixedVal2);\n break;\n case Condition.EndsWith:\n isTrue = !!fixedVal1?.endsWith(fixedVal2);\n }\n\n if (conditionType === ConditionType.Excluded) {\n isTrue = !isTrue;\n }\n\n return isTrue;\n};\n\nexport const applyNumberFilter = (val1: number, val2: number | IValueInterval, condition = Condition.Equals, conditionType = ConditionType.Included): boolean => {\n let isTrue: boolean;\n\n switch (condition) {\n case Condition.Equals:\n isTrue = val1 === val2;\n break;\n case Condition.Between:\n const interval = val2 as IValueInterval;\n\n isTrue = isDefined(val1) && val1 >= interval.from && val1 <= interval.to;\n break;\n case Condition.GreaterThan:\n isTrue = isDefined(val1) && val1 > (val2 as number);\n break;\n case Condition.GreaterOrEqual:\n isTrue = isDefined(val1) && val1 >= (val2 as number);\n break;\n case Condition.LesserThan:\n isTrue = isDefined(val1) && val1 < (val2 as number);\n break;\n case Condition.LesserOrEqual:\n isTrue = isDefined(val1) && val1 <= (val2 as number);\n break;\n }\n\n if (conditionType === ConditionType.Excluded) {\n isTrue = !isTrue;\n }\n\n return isTrue;\n};\n\nexport const applyBooleanFilter = (val1: boolean, val2: boolean): boolean => {\n return val1 === val2;\n};\n\nexport const applyDateFilter = (val1: Date, val2: Date | IValueInterval, condition = Condition.Equals, conditionType = ConditionType.Included): boolean => {\n let isTrue: boolean;\n\n switch (condition) {\n case Condition.Equals:\n isTrue = val1 && getUtcDayjs(val1).isSame(val2 as Date, \"day\");\n break;\n case Condition.Between:\n const interval = val2 as IValueInterval;\n\n isTrue = val1 && getUtcDayjs(val1).isBetween(interval.from, interval.to, \"day\", \"[]\");\n break;\n case Condition.IsAfter:\n isTrue = val1 && getUtcDayjs(val1).isAfter(val2 as Date, \"day\");\n break;\n case Condition.IsAfterOrEqualsTo:\n isTrue = val1 && getUtcDayjs(val1).isSameOrAfter(val2 as Date, \"day\");\n break;\n case Condition.IsBefore:\n isTrue = val1 && getUtcDayjs(val1).isBefore(val2 as Date, \"day\");\n break;\n case Condition.IsBeforeOrEqualsTo:\n isTrue = val1 && getUtcDayjs(val1).isSameOrBefore(val2 as Date, \"day\");\n break;\n }\n\n if (conditionType === ConditionType.Excluded) {\n isTrue = !isTrue;\n }\n\n return isTrue;\n};\n\n/** Test filter against value. Returns true if value is valid for this filter. */\nexport const applyFilter = (value: TValue, filter: IChangedFilter): boolean => {\n let filterValues = Array.isArray(filter.value) ? filter.value as TValue : [filter.value];\n\n if (filter.info?.filter?.transformFilterValue) {\n filterValues = filter.info.filter.transformFilterValue(filterValues as TValue, filter.info);\n }\n\n let compareFn: TApplyFilter;\n\n switch (filter.info.valueType) {\n case ValueType.Date:\n compareFn = applyDateFilter;\n break;\n case ValueType.Number:\n compareFn = applyNumberFilter;\n break;\n\n case ValueType.Boolean:\n compareFn = applyBooleanFilter;\n break;\n case ValueType.String:\n default:\n compareFn = applyStringFilter;\n break;\n }\n\n if (isComplexFilterArr(filterValues)) {\n // AND for complex filters\n return filterValues.every((filterVal: IComplexFilter) => {\n const condition = filterVal.condition;\n const conditionType = filterVal.type;\n const preparedFilterVal = getComplexFilterValue(filterVal);\n const preparedFilterValues = (Array.isArray(preparedFilterVal) ? preparedFilterVal : [preparedFilterVal]) as (string | number | boolean | Date | IValueInterval)[];\n\n // OR for arrays (enums)\n return preparedFilterValues.some((val) => compareFn(value, val, condition, conditionType));\n });\n } else {\n // OR for value helper arrays\n return (filterValues as (string | number | Date | IValueInterval)[]).some((filterVal) => {\n let preparedFilterVal = filterVal;\n const valIsInterval = isInterval(preparedFilterVal);\n const condition = valIsInterval ? Condition.Between : undefined;\n\n if (filter.info.valueType === ValueType.Number && !valIsInterval) {\n preparedFilterVal = parseFloat(preparedFilterVal as string);\n }\n\n return compareFn(value, preparedFilterVal, condition);\n });\n }\n};\n\nexport const getReportLogActionDetail = (storage: ReportStorage): string => {\n return JSON.stringify(cleanSettings(storage.settings));\n};\n\n/**\n * Returns partial drilldown params for DateRange filter for whole time\n */\nexport function getWholeDateRangeFilter(): Pick {\n const dateRange: IValueInterval = {\n from: formatDateToDateString(DATE_MIN),\n to: formatDateToDateString(DATE_MAX)\n };\n\n return {\n filters: {\n [CommonReportProps.dateRange]: CUSTOM_DATE_RANGE_ID,\n [CommonReportProps.dateRangeCustomValue]: dateRange\n }\n };\n}","// todo create enum for all the tables and forms, not only reports\n// used as definition.tableId and as key in LocalSettings\nexport enum ReportId {\n AccountingJournal = \"AccountingJournalReport\",\n DocumentJournal = \"DocumentJournalReport\",\n PaymentJournal = \"PaymentJournalReport\",\n AgingAP = \"AgingAPReport\",\n AgingAR = \"AgingARReport\",\n BalanceSheet = \"BalanceSheetReport\",\n GeneralLedger = \"GeneralLedgerReport\",\n IncomeStatement = \"IncomeStatementReport\",\n Saldo = \"SaldoReport\",\n ReceivableAdjustments = \"ReceivableAdjustmentsReport\",\n AccountAnalysis = \"AccountAnalysisReport\",\n AssetAnalysis = \"AssetAnalysisReport\",\n ExchangeRate = \"ExchangeRateReport\",\n CbaIncomeExpense = \"CbaIncomeExpenseReport\",\n CbaEntryLedger = \"CbaEntryLedgerReport\",\n VatStatement = \"VatStatementReport\",\n VatControlStatement = \"VatControlStatementReport\",\n VatVIESStatement = \"VatVIESStatementReport\"\n}","import {\n COLUMN_INDEX_REGEX,\n getCleanColumnId,\n IReportColumnDef,\n IReportHierarchy,\n IReportWarning,\n ISmartReportTableAPI\n} from \"@components/smart/smartTable\";\nimport { ITableStorageData, ITableStorageDefaultCustomData, TableStorage } from \"../../model/TableStorage\";\nimport {\n getDefaultSystemVariant,\n ITableVariant,\n IVariantColumn,\n IVariants,\n Variant,\n VariantType\n} from \"@components/variantSelector/VariantOdata\";\nimport {\n convertVariantToReportHierarchy,\n getColumnFromColumnAlias,\n getColumnFullAlias,\n IReportDateRange,\n IReportSettings,\n IReportTableDefinition,\n ReportConfigGroup\n} from \"./Report.utils\";\nimport { IRow, ISort } from \"@components/table\";\nimport { ModelEvent } from \"../../model/Model\";\nimport { setNestedValue } from \"@odata/Data.utils\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { getDrillDownVariant } from \"@components/drillDown/DrillDown.utils\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { VariantAccessTypeCode } from \"@odata/GeneratedEnums\";\n\nexport interface IReportStorageDefaultCustomData extends ITableStorageDefaultCustomData {\n warnings?: IReportWarning[];\n namedDateRanges?: IReportDateRange[];\n}\n\ninterface IReportStorageData extends ITableStorageData {\n definition?: IReportTableDefinition;\n}\n\nexport class ReportStorage extends TableStorage {\n data: IReportStorageData = {};\n private _reportHierarchy: IReportHierarchy = null;\n private _supportedColumns: IReportColumnDef[] = [];\n private _additionalFilters: IReportColumnDef[] = [];\n private _settings: IReportSettings = {};\n // used to build unique column values for value helpers\n private _unfilteredRows: IRow[];\n\n getVariant = (): ITableVariant => {\n const currentVariant = this.data.variants?.currentVariant;\n const variantDef = this.data.definition.defaultReportVariants?.[currentVariant.id];\n\n if (this.predefinedFilters) {\n const sort = (this.tableAPI as unknown as ISmartReportTableAPI)?.getState().sort;\n return {\n columns: this.convertReportHierarchyToVariantColumns(this.reportHierarchy, sort ?? variantDef?.Sort ?? this.data.definition.initialSortBy),\n filters: this.predefinedFilters\n };\n }\n\n const storedVariant = this.getStoredVariant(true);\n const isVariantNonEmpty = storedVariant?.columns?.length > 0;\n\n if (isVariantNonEmpty) {\n return storedVariant;\n }\n\n if (currentVariant && variantDef) {\n return {\n columns: this.convertReportHierarchyToVariantColumns(variantDef.ReportHierarchy, variantDef.Sort ?? this.data.definition.initialSortBy),\n filters: {}\n };\n }\n\n return {\n columns: this.convertReportHierarchyToVariantColumns(this.data.definition.defaultReportHierarchy, this.data.definition.initialSortBy),\n filters: {}\n };\n };\n\n convertReportHierarchyToVariantColumns = memoizeOne((reportHierarchy: IReportHierarchy, sort?: ISort[]): IVariantColumn[] => {\n const variantColumns: IVariantColumn[] = [];\n const allColIds = [];\n\n if (!sort) {\n sort = this.tableAPI?.getSort() ?? this.data.definition.initialSortBy;\n }\n\n for (const groupType of [ReportConfigGroup.Groups, ReportConfigGroup.Columns, ReportConfigGroup.Aggregations]) {\n for (const colDef of reportHierarchy[groupType as unknown as keyof Omit]) {\n // sort is stored with full column alias (including agg fn)\n const fullColAlias = getColumnFullAlias(colDef);\n const sortIndex = sort?.findIndex(s => {\n let cleanId = getCleanColumnId(s.id.toString());\n\n if (this.reportHierarchy && reportHierarchy && this.reportHierarchy.Aggregate !== reportHierarchy.Aggregate) {\n cleanId = getColumnFromColumnAlias(cleanId).ColumnAlias;\n }\n\n return cleanId === fullColAlias;\n });\n const colSort = sort?.[sortIndex];\n let repeatedColumnsCount = 0;\n\n for (let i = 0; i < sortIndex; i++) {\n if (COLUMN_INDEX_REGEX.test(sort?.[i].id.toString())) {\n repeatedColumnsCount += 1;\n }\n }\n\n const variantColumn: IVariantColumn = {\n id: colDef.ColumnAlias,\n group: reportHierarchy.Aggregate ? groupType : null,\n aggregationFunction: colDef.AggregationFunction,\n ...this.getVariantColumnSortProps(fullColAlias, colSort, sortIndex - repeatedColumnsCount)\n };\n\n variantColumns.push(variantColumn);\n allColIds.push(fullColAlias);\n }\n }\n\n return variantColumns;\n }, () => [this.tableAPI?.getSort, this.data.definition.initialSortBy]);\n\n setLocalStorageVariantFromCurrentReportHierarchy = (): void => {\n const oldVariant = this.getVariant();\n const variantColumns = this.convertReportHierarchyToVariantColumns(this.reportHierarchy);\n\n this.setLocalStorageVariant({\n ...oldVariant,\n columns: variantColumns\n });\n };\n\n get reportHierarchy(): IReportHierarchy {\n return this._reportHierarchy;\n }\n\n set reportHierarchy(reportHierarchy: IReportHierarchy) {\n this._reportHierarchy = reportHierarchy;\n }\n\n get supportedColumns(): IReportColumnDef[] {\n return this._supportedColumns;\n }\n\n set supportedColumns(supportedColumns: IReportColumnDef[]) {\n this._supportedColumns = supportedColumns;\n }\n\n get additionalFilters(): IReportColumnDef[] {\n return this._additionalFilters;\n }\n\n set additionalFilters(additionalFilters: IReportColumnDef[]) {\n this._additionalFilters = additionalFilters;\n }\n\n get settings(): IReportSettings {\n return this._settings;\n }\n\n set settings(settings: IReportSettings) {\n this._settings = settings;\n }\n\n get unfilteredRows(): IRow[] {\n return this._unfilteredRows;\n }\n\n set unfilteredRows(unfilteredRows: IRow[]) {\n this._unfilteredRows = unfilteredRows;\n }\n\n clearFilterByPath = (fullPath: string): void => {\n const navigationPath = fullPath.split(\"/\").slice(1).join(\"/\");\n\n if (this.predefinedFilters?.[fullPath]) {\n return;\n }\n\n const variant = this.getVariant();\n const savedFilters = { ...variant.filters };\n\n setNestedValue(\"\", navigationPath, this.data.entity);\n this.clearAdditionalFieldDataByPath(fullPath);\n delete savedFilters[navigationPath];\n };\n\n updateCurrentTableColumns = async (sort?: ISort[]): Promise => {\n const drillDownVariantQuery = getDrillDownVariant();\n const drillDownVariantDef = this.data.definition.defaultReportVariants?.[drillDownVariantQuery];\n let reportHierarchy: IReportHierarchy;\n\n if (drillDownVariantDef) {\n reportHierarchy = drillDownVariantDef.ReportHierarchy;\n } else if (this.predefinedFilters) {\n // when drilldown, show default variant\n reportHierarchy = this.data.variants.defaultVariant?.table?.columns ? convertVariantToReportHierarchy(this.data.variants.defaultVariant.table) : this.reportHierarchy ?? this.data.definition.defaultReportHierarchy;\n\n } else {\n reportHierarchy = convertVariantToReportHierarchy(this.getVariant());\n }\n\n if (drillDownVariantDef || this.predefinedFilters) {\n // when drilldown used, right now, sort is only stored in the state of the table\n // maybe we could store it in storage, like this.reportHierarchy?\n // but forcing new sort into the table state like this should work also\n if (sort) {\n (this.tableAPI as unknown as ISmartReportTableAPI).setState({\n sort\n }, (this.tableAPI as unknown as ISmartReportTableAPI).reloadTable);\n }\n }\n\n this.reportHierarchy = reportHierarchy;\n // we need to refresh rows when report hierarchy is changed\n this.unfilteredRows = null;\n };\n\n async changeVariant(variant: Variant): Promise {\n this.data.additionalFieldData = {};\n this.data.entity = {};\n this.settings = {};\n\n // skip refresh (withoutRefresh true), to prevent SmartReportTable from firing multiple requests\n // caused by the fact that settings is changed here and initialized\n // AFTER ModelEvent.VariantChanged is handled in ReportView\n // => we want the SmartReportTable to re-render after it has been already re-initialized, not before\n await super.changeVariant(variant, true);\n this.emitter.emit(ModelEvent.VariantChanged);\n }\n\n async loadVariants(variantType: VariantType, bindingContext: BindingContext): Promise {\n const variants = await super.loadVariants(variantType, bindingContext);\n\n // filter out system variants that are not in the current definition\n // e.g. in DocumentJournal entry, we want to hide some system variants when the current company is not tax payer (vat registered)\n if (this.data.definition.defaultReportVariants) {\n for (const key of Object.keys(variants.allVariants)) {\n if (variants.allVariants[key].accessType === VariantAccessTypeCode.SystemVariant && !this.data.definition.defaultReportVariants[key]) {\n delete variants.allVariants[key];\n }\n }\n\n // if the original current/default variant is now not present in allVariants, change it to the default one\n if (variants.currentVariant && !variants.allVariants[variants.currentVariant.id]) {\n variants.currentVariant = getDefaultSystemVariant(Object.values(variants.allVariants));\n }\n\n if (variants.defaultVariant && !variants.allVariants[variants.defaultVariant.id]) {\n variants.defaultVariant = getDefaultSystemVariant(Object.values(variants.allVariants));\n }\n }\n\n return variants;\n }\n}","import React from \"react\";\nimport ReportView, { IReportViewBaseProps } from \"./ReportView\";\nimport { IReportDefinition, IReportTableDefinition } from \"./Report.utils\";\nimport { ISplitPageProps, SplitPageBase, TRenderTableArgs } from \"../SplitPageBase\";\nimport { ReportStorage } from \"./ReportStorage\";\nimport { composeRefHandlers } from \"@utils/general\";\n\nexport interface IReportSplitPageProps extends Omit, \"renderTable\"> {\n reportView?: React.ComponentType;\n onTableStorageLoad?: (storage: ReportStorage) => Promise;\n reportViewProps?: Partial;\n}\n\nclass ReportSplitPage extends React.PureComponent {\n renderTable = (args: TRenderTableArgs): React.ReactElement => {\n const CustomReportView = this.props.reportView ?? ReportView;\n return (\n \n );\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport { ReportSplitPage };","import styled from \"styled-components/macro\";\n\nimport SmartFilterBar from \"../../components/smart/smartFilterBar/SmartFilterBar\";\n\nexport const StyledSmartFilterBar = styled(SmartFilterBar)`\n margin-bottom: 42px;\n`;\n\nexport const DrillDownFiltersWrapper = styled.div`\n position: relative;\n top: -18px;\n margin-bottom: 18px;\n`;","import { BusyIndicatorSize } from \"@components/busyIndicator/BusyIndicator.utils\";\nimport { isComplexFilterArr } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getDrillDownFilters, getDrillDownVariant, getIntentNavParams } from \"@components/drillDown/DrillDown.utils\";\nimport { CloseIcon, PlusIcon } from \"@components/icon\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectItem, TSelectItemId } from \"@components/inputs/select/Select.types\";\nimport { isSelectBasedComponent } from \"@components/inputs/select/SelectAPI\";\nimport { getSimpleBoolSelectItems, IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport {\n FilterBarGroup,\n IFieldData,\n IFilterDef,\n TFilterDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n COLUMN_INDEX_REGEX,\n getCleanColumnId,\n IReportColumnDef,\n IReportHierarchy,\n IReportRowDef,\n IReportWarning\n} from \"@components/smart/smartTable\";\nimport { fetchReportTableData } from \"@components/smart/smartTable/SmartReportTable.utils\";\nimport { iterateOverRows, TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { isValueHelperField } from \"@components/smart/smartValueHelper\";\nimport { IRow, IRowValues, ISort, TColumn, TId } from \"@components/table\";\nimport { NoData } from \"@components/table/NoData\";\nimport { getLeavesColumns } from \"@components/table/TableUtils\";\nimport { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getCompanyVariantContext, Variant, VariantType } from \"@components/variantSelector/VariantOdata\";\nimport { setBoundValue } from \"@odata/Data.utils\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { IAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { ActionTypeCode, DocumentTypeCode, VariantAccessTypeCode } from \"@odata/GeneratedEnums\";\nimport { logAction } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { isDefined, isNotDefined, sortCompareFn } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport { compareString } from \"@utils/string\";\nimport { saveAs } from \"file-saver\";\nimport { cloneDeep, debounce, isEqual, uniq } from \"lodash\";\nimport React, { ReactElement } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BreadCrumbProvider, THistoryBack } from \"../../components/breadCrumb/index\";\nimport BusyIndicator from \"../../components/busyIndicator/BusyIndicator\";\nimport { Button } from \"../../components/button\";\nimport Clickable from \"../../components/clickable\";\nimport ConfigurationList, {\n getItemCopyId,\n IConfigList,\n IGroupListColumnDef,\n IGroupListGroupDef,\n IGroupListItemDef,\n trimCopyId\n} from \"../../components/configurationList/ConfigurationList\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport SmartDrillDownFilters from \"../../components/drillDown/SmartDrillDownFilters\";\nimport SmartReportTable from \"../../components/smart/smartTable/SmartReportTable\";\nimport TableSortingDialog from \"../../components/table/TableSortingDialog\";\nimport { DASH_CHARACTER, INPUT_DEBOUNCE_TIME, REST_API_URL } from \"../../constants\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {\n ConfigListItemBoundType,\n FieldType,\n GroupStatus,\n LogicOperator,\n ReportTableRowType,\n Sort,\n Status,\n ValidatorType,\n ValueType\n} from \"../../enums\";\nimport { TRecordAny, TRecordString, TRecordType, TValue } from \"../../global.types\";\nimport { ModelEvent } from \"../../model/Model\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport BindingContext, { getBindingContext, IEntity } from \"../../odata/BindingContext\";\nimport { ROUTE_CHARTS_OF_ACCOUNTS } from \"../../routes\";\nimport TestIds from \"../../testIds\";\nimport DateType, { getUtcDate } from \"../../types/Date\";\nimport customFetch from \"../../utils/customFetch\";\nimport ExcelExport, { ExportType } from \"../../utils/ExcelExport\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport { SmartHeaderStyled } from \"../../views/formView/FormView.styles\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport TablePrintDialog from \"../../views/table/TablePrintDialog\";\nimport TableToolbar from \"../../views/table/TableToolbar\";\nimport { TableButtonsAction, TableButtonsActionType } from \"../../views/table/TableToolbar.utils\";\nimport { TableAlert, TableWrapper } from \"../../views/table/TableView.styles\";\nimport { IChangedFilter } from \"../../views/table/TableView.utils\";\nimport View from \"../../views/View\";\nimport {\n findColumnInHierarchy,\n getColumnFilterId,\n getColumnLabel,\n getFieldTypeFromColumnType,\n getFilterNameWithoutEntitySetPrefix,\n getMatchingColumn,\n getNumberAggFuncItem,\n getNumberAggFuncItems,\n getReportRowId,\n getTimeAggFuncItems,\n getValidatorTypeFromColumnType,\n getValueTypeFromColumnType,\n IReportData,\n IReportTableDefinition,\n NumberAggFuncTypes,\n NumberAggregationFunction,\n prepareReportDataForExport,\n ReportColumnType,\n ReportConfigGroup,\n ReportFilterNodeColumnType,\n reportGroups,\n ReportNodeOperator,\n TAggregationFunction,\n TGetReportDefValFn,\n TimeAggregationFunction\n} from \"./Report.utils\";\nimport { applyFilter, buildFilterTree, getReportLogActionDetail, TBuildReportNodeFilter } from \"./ReportFilter.utils\";\nimport { ReportId } from \"./ReportIds\";\nimport { IReportStorageDefaultCustomData, ReportStorage } from \"./ReportStorage\";\nimport { StyledSmartFilterBar } from \"./ReportView.styles\";\n\nconst dimValues = [0];\nconst SUPPORTED_COLUMNS_PATH = \"SupportedColumns\";\n\nexport interface IReportFilterNode extends Omit {\n Operator?: LogicOperator | ReportNodeOperator;\n Value?: TValue;\n Left?: IReportFilterNode;\n Right?: IReportFilterNode;\n Type?: ReportFilterNodeColumnType;\n ColumnAlias?: string;\n Column?: IReportColumnDef;\n Node?: IReportFilterNode;\n}\n\nexport interface IReportFilterChangeEvent {\n settings: IEntity;\n filterChange: ISmartFieldChange;\n isParameterChanged: boolean;\n}\n\nexport interface IReportViewBaseProps {\n storage: ReportStorage;\n rootStorage?: StorageModel;\n definition: IReportTableDefinition;\n\n onFilterChange?: (args: IReportFilterChangeEvent) => IEntity;\n onExpandAll?: () => void;\n onCollapseAll?: () => void;\n onRowSelect?: (bindingContext: BindingContext) => void;\n rowAction?: TCustomRowAction;\n onPrintReportButtonClick?: (buttonAction: TableButtonsAction) => void;\n getFilterNode?: (filter: IFieldData) => IReportFilterNode;\n expandable?: boolean;\n disableConfiguration?: boolean;\n disableFullscreen?: boolean;\n disableSort?: boolean;\n customToolbarButtons?: (storage: ReportStorage) => IToolbarItem[];\n showExportButton?: boolean;\n showPrintReportButtons?: boolean;\n disableToolbarButtons?: boolean;\n\n back?: THistoryBack;\n\n ref?: React.Ref;\n}\n\nexport interface IReportViewProps extends IReportViewBaseProps, WithTranslation, WithOData {\n\n}\n\ninterface IUpdateTableSettings {\n isParameterChanged?: boolean;\n filterChange?: ISmartFieldChange;\n forceImmediate?: boolean;\n}\n\nexport interface IReportViewState {\n loaded: boolean;\n hasNoData: boolean;\n preventReload: boolean;\n isTableReadyForPrint: boolean;\n showPdfExport: boolean;\n isCustomizationDialogOpen: boolean;\n isTableSortDialogOpen: boolean;\n dialogReportHierarchy: IReportHierarchy;\n}\n\nclass ReportView

    extends React.Component {\n static contextType = AppContext;\n\n static defaultProps = {\n showExportButton: true\n };\n\n tableRef = React.createRef();\n\n state: IReportViewState = {\n loaded: false,\n hasNoData: false,\n preventReload: false,\n isTableReadyForPrint: false,\n showPdfExport: false,\n isCustomizationDialogOpen: false,\n isTableSortDialogOpen: false,\n dialogReportHierarchy: null\n };\n\n componentDidMount() {\n this.init();\n this.props.storage.emitter.on(ModelEvent.VariantChanged, this.handleVariantChange);\n }\n\n componentWillUnmount() {\n this.props.storage.emitter.off(ModelEvent.VariantChanged, this.handleVariantChange);\n }\n\n componentDidUpdate(prevProps: Readonly

    , prevState: Readonly, snapshot?: any) {\n //\n }\n\n get isToolbarDisabled(): boolean {\n return !this.props.storage.tableAPI?.getState()?.loaded;\n }\n\n init = async (): Promise => {\n const localSettings = LocalSettings.get(this.props.storage.id);\n // hierarchy has already been initialized in ReportStorage\n const reportHierarchy = this.props.storage.reportHierarchy;\n\n this.injectDrillDownFiltersAsColumns(reportHierarchy);\n this.props.storage.setCustomData({ ...localSettings.customData });\n\n // onBeforeLoad can initialize storage - has to be called before initTableSettings\n await Promise.all([\n this.props.definition.onBeforeLoad?.(this.props.storage),\n this.fetchSupportedColumns(this.props.definition)\n ]);\n\n const settings = this.initTableSettings(this.props.definition);\n\n // needs supported columns to be already loaded\n if (!this.props.definition.updateFiltersFromResponse) {\n this.updateFiltersFromReportHierarchy(reportHierarchy as IReportHierarchy);\n }\n this.setSettings(settings, true);\n\n if (!this.state.loaded) {\n this.setState({\n loaded: true\n });\n }\n\n if (this.state.preventReload) {\n this.setState({\n preventReload: false\n });\n }\n };\n\n handleVariantChange = async (): Promise => {\n // TODO: move filter management to report storage\n // set withoutSetSettings true to prevent firing multiple requests in SmartReportTable,\n // settings are updated in updateTableSettings again\n this.setState({\n preventReload: true\n }, async () => {\n await this.init();\n this.updateTableSettings();\n });\n };\n\n /** Backend doesn't allow filtering on columns that are not part of reportHierarchy.\n * If drilldown filter is present for column that is not add by default, we have to inject it. */\n injectDrillDownFiltersAsColumns = (reportHierarchy: IReportHierarchy): void => {\n const drillDownFilters = getDrillDownFilters();\n\n if (!reportHierarchy || !drillDownFilters) {\n return;\n }\n\n for (const filter of Object.keys(drillDownFilters)) {\n if (this.isFilterParameter(filter)) {\n continue;\n }\n\n const cleanFilterName = BindingContext.cleanLocalContext(filter);\n\n if (!findColumnInHierarchy(reportHierarchy, cleanFilterName)) {\n reportHierarchy.Columns.push({\n ColumnAlias: cleanFilterName\n });\n }\n }\n };\n\n // todo merge with updateTableSettings\n initTableSettings = (definition: IReportTableDefinition): TRecordAny => {\n const storage = this.props.storage;\n // insert drilldown filters to into the initial request\n // for filter change, it's handled by TableStorage.getChangedFilters\n // don't use filters from LocalSettings when drillDownFilters passed via history state\n const drillDownFilters = getDrillDownFilters();\n const drillDownVariant = getDrillDownVariant();\n const savedFilters = { ...(drillDownFilters ?? storage.getVariant().filters ?? {}) };\n\n if (drillDownVariant) {\n // remove local storage variant if exists -> drillDown variant should be visible in the selector as it is used\n }\n\n const andFilters: IFieldData[] = [];\n let settings = storage.settings;\n // initialize parameters with default value or from saved filters\n for (const filterGroup of definition.filterBarDef) {\n for (const filterId of filterGroup.defaultFilters) {\n const bindingContext = storage.data.bindingContext.navigate(filterId);\n const info = storage.getInfo(bindingContext);\n // default value is already in the storage + can be modified by particular report in before load hook\n let value = storage.getValue(bindingContext);\n\n // savedFilters have higher priority over default filters\n if (savedFilters[filterId] !== undefined) {\n value = savedFilters[filterId];\n }\n\n value = this.getCorrectFilterValue(value, info);\n\n if (this.isFilterParameter(bindingContext) && isDefined(value) && !info?.fieldSettings?.frontendOnly) {\n settings = setBoundValue({\n bindingContext,\n data: settings,\n newValue: value,\n dataBindingContext: storage.data.bindingContext\n });\n\n delete savedFilters[filterId];\n }\n\n }\n }\n\n // use the rest of saved filters to initialise filter query\n for (const [filterName, filterValue] of Object.entries(savedFilters)) {\n const bc = storage.data.bindingContext.navigate(filterName);\n const info = definition.filterBarDef[0]?.filterDefinition[filterName] ?? definition.filterBarDef[1]?.filterDefinition[filterName];\n const path = bc.getNavigationPath();\n\n if (!info?.fieldSettings?.frontendOnly && isDefined(filterValue) && filterValue !== \"\") {\n andFilters.push({\n id: path,\n bindingContext: bc,\n value: (info?.filter?.transformFilterValue?.(filterValue as TValue, this.props.storage.getInfo(bc)) ?? filterValue) as TValue,\n filterName: info?.filterName\n });\n }\n }\n\n if (andFilters.length > 0) {\n settings[\"Filter\"] = this.buildFilterTree(andFilters);\n }\n\n if (drillDownVariant) {\n let variant: Variant = storage.data?.variants?.allVariants?.[drillDownVariant];\n\n if (!variant) {\n // variant that only has FE definition\n // => create fake \"Variant\" object and use it as currentVariant\n const variantDef = storage.data.definition.defaultReportVariants[drillDownVariant];\n\n const { accounting, vatStatus } = getCompanyVariantContext(this.context);\n\n if (variantDef) {\n variant = new Variant({\n id: drillDownVariant,\n name: drillDownVariant,\n viewId: this.props.storage.id,\n variantType: VariantType.Table,\n accessType: VariantAccessTypeCode.SystemVariant,\n entityType: null,\n vatStatusCode: vatStatus,\n accountingCode: accounting,\n table: {\n columns: this.props.storage.convertReportHierarchyToVariantColumns(variantDef.ReportHierarchy),\n filters: null,\n visibleFilters: []\n }\n });\n }\n }\n\n if (!variant) {\n logger.error(\"drilldown variant is missing\");\n }\n storage.data.variants.currentVariant = variant;\n }\n return settings;\n };\n\n fetchSupportedColumns = async (definition: IReportTableDefinition): Promise => {\n const url = `${REST_API_URL}/${definition.path}/${SUPPORTED_COLUMNS_PATH}`;\n\n const response = await customFetch(url);\n const returnedValues = response.ok ? await response.json() : {};\n const supportedColumns = returnedValues.Columns ?? [];\n // filters that are not 1:1 with the report hierarchy settings\n // they represent virtual columns that only have one filter field on FE that filters across all of the at once\n const additionalFilters = returnedValues.AdditionalFilters ?? [];\n\n this.props.storage.supportedColumns = supportedColumns;\n this.props.storage.additionalFilters = additionalFilters;\n };\n\n updateFilters = (columns: IReportColumnDef[], aggFnIncluded?: boolean): void => {\n const customFilters: string[] = [];\n const drillDownFilters = getDrillDownFilters();\n const savedFilters = drillDownFilters ?? this.props.storage.getVariant()?.filters ?? {};\n\n for (const column of columns) {\n const supportedColumn = this.getColumnFilterDef(column.ColumnAlias);\n\n if (!supportedColumn) {\n logger.warn(`column '${column.ColumnAlias}' defined in report hierarchy is not present in supportedColumns`);\n continue;\n }\n\n if (isDefined(supportedColumn.IsFilterable) && !supportedColumn.IsFilterable) {\n continue;\n }\n\n const id = getColumnFilterId(supportedColumn.IsColumnAliasFilterPrefix ? supportedColumn : column, aggFnIncluded);\n\n // skip columns that already have their definition added\n // virtual columns can use the same filter definition multiple times\n if (!!customFilters.find(filterName => filterName.endsWith(`/${id}`))) {\n continue;\n }\n\n const bindingContext = this.props.storage.data.bindingContext.navigate(id);\n const path = bindingContext.getNavigationPath();\n const fullPath = bindingContext.toString();\n const label = getColumnLabel({\n ...column,\n Label: column.Label ?? supportedColumn.Label\n });\n const hasNumberAggFn = !!column.AggregationFunction && !!getNumberAggFuncItem(column.AggregationFunction as NumberAggregationFunction);\n\n if (supportedColumn.VirtualColumn) {\n // virtual columns are not represented in filters\n continue;\n }\n\n let filterMetadata: IFieldInfo & IFilterDef = {\n id, label,\n bindingContext,\n type: hasNumberAggFn ? FieldType.NumberInput : getFieldTypeFromColumnType(supportedColumn),\n valueType: hasNumberAggFn ? ValueType.Number : getValueTypeFromColumnType(supportedColumn),\n // don't use value help for IsColumnAliasFilterPrefix\n // how would we group the columns into one value help (e.g. in BalanceSheet)?\n isValueHelp: !supportedColumn.IsColumnAliasFilterPrefix,\n validator: {\n type: hasNumberAggFn\n ? column.AggregationFunction === NumberAggregationFunction.Count ? ValidatorType.Integer : ValidatorType.Number\n : getValidatorTypeFromColumnType(supportedColumn)\n },\n fieldSettings: {}\n };\n\n // filters for Labels don't use value helps,\n // instead use LabelSelect, just like in oData pages\n if (!hasNumberAggFn && supportedColumn.Type === ReportColumnType.Label) {\n filterMetadata.isValueHelp = false;\n filterMetadata.fieldSettings.idName = \"Name\";\n filterMetadata.fieldSettings.oneItemPerHierarchy = false;\n filterMetadata.type = FieldType.LabelSelect;\n filterMetadata.filter = {\n select: `Name eq '${supportedColumn.Label}'`\n };\n } else if (supportedColumn.Type === ReportColumnType.Boolean) {\n // filters for Boolean don't use value helps as well\n filterMetadata.isValueHelp = false;\n filterMetadata.fieldSettings.items = getSimpleBoolSelectItems();\n }\n\n if (isDefined(savedFilters[path])) {\n this.props.storage.data.entity[id] = savedFilters[path];\n // propagate to parsedValue, otherwise value won't show properly in read only filter bar\n this.props.storage.setAdditionalFieldData(bindingContext, \"parsedValue\", savedFilters[path] as TValue);\n }\n\n // merge with custom filter definition if defined for the filter id\n // (available filters doesn't have to be shown, but can have some special definition for the dynamic columns)\n const filterDef = this.props.definition.filterBarDef?.[1]?.filterDefinition ?? {};\n const availableFilters = Object.keys(filterDef).map(id => ({ id, ...filterDef[id] }));\n let customFilter = availableFilters?.find((f: TFilterDef) => f.id.startsWith(id));\n\n if (customFilter) {\n customFilter = { ...customFilter, id: filterMetadata.id };\n\n filterMetadata = {\n ...filterMetadata,\n ...customFilter\n };\n }\n\n this.props.storage.data.fieldsInfo[fullPath] = filterMetadata;\n\n customFilters.push(fullPath);\n }\n\n this.props.storage.data.visibleFilters[FilterBarGroup.Filters] = customFilters;\n this.updateTableStorageValidationSchema();\n };\n\n // because some filters are fetched dynamically, we can't create correct validation schema for all of them at init\n updateTableStorageValidationSchema = (): void => {\n this.props.storage.createValidationSchema(Object.values(this.props.storage.data.fieldsInfo).map(info => info.id), false);\n };\n\n /** Basic reports take filters from \"reportHierarchy\" which has all the required data.\n * Some reports (like General Ledger, BalanceSheet, IncomeStatement) doesn't use reportHierarchy because of their predefined structure.\n * We can't predefine the filters manually because\n * 1. they can change based on report parameters (GeneralLedger which changes time agg function)\n * 2. there can be virtual columns which should be aggregated to one filter field on FE (BalanceSheet, IncomeStatement)\n * In those cases, we have to build the filters AFTER the data are loaded from BE */\n updateFiltersFromReturnedColumns = (): void => {\n const columns = this.props.storage.tableAPI?.getState()?.data?.Columns;\n\n if (columns) {\n this.updateFilters(columns, true);\n // the filter bar can already be opened, we need to refresh whole report view\n this.forceUpdate();\n }\n };\n\n /** keep report hierarchy (default or changed in setting dialog) in sync with filters */\n updateFiltersFromReportHierarchy = (reportHierarchy: IReportHierarchy): void => {\n const columns: IReportColumnDef[] = [];\n const oldCustomFilters = [...this.props.storage.data.visibleFilters[FilterBarGroup.Filters]];\n\n for (const property of reportGroups) {\n columns.push(...(reportHierarchy[property] as IReportColumnDef[]));\n }\n\n this.updateFilters(columns);\n\n\n const currentCustomFilters = this.props.storage.data.visibleFilters[FilterBarGroup.Filters];\n for (const oldCustomFilter of oldCustomFilters) {\n if (!currentCustomFilters.includes(oldCustomFilter)) {\n this.props.storage.clearFilterByPath(oldCustomFilter);\n }\n }\n };\n\n isRowFilteredOutForColumn = (values: IRowValues, filters: IChangedFilter[]): boolean => {\n for (const filter of filters) {\n const cleanId = (filter.info.filterName as string) ?? BindingContext.cleanLocalContext(filter.info.id);\n\n if (!applyFilter(values[cleanId] as string | number, filter)) {\n return true;\n }\n }\n\n return false;\n };\n\n /** Sets value helper items to all unique items retrieved from table data */\n updateValueHelpers = (rows: IRow[]): void => {\n // unique keys in original order\n const uniqueKeys: Record> = {};\n // values for the keys stored in object, without order\n const values: Record> = {};\n const filterDef = this.props.definition.filterBarDef?.find(def => def.id === FilterBarGroup.Filters);\n const defaultFilters = filterDef?.defaultFilters ?? [];\n const filtersIds = [\n ...this.props.storage.data.visibleFilters[FilterBarGroup.Filters],\n ...defaultFilters.map((filter) => this.props.storage.data.bindingContext.navigate(filter).toString())\n ].filter(filterName => isValueHelperField(this.props.storage.data.fieldsInfo[filterName], this.props.storage));\n const drilldownFilters = getDrillDownFilters();\n\n const currentFilters = this.props.storage.getChangedFilters().groups[FilterBarGroup.Filters] ?? [];\n\n for (const filterId of filtersIds) {\n uniqueKeys[filterId] = new Set();\n values[filterId] = {};\n }\n\n iterateOverRows(rows, (row) => {\n const originalValues = row.customData.originalValues;\n const originalValuesFormatted = row.customData.originalValuesFormatted;\n const originalReportRow = row.customData.originalRow as IReportRowDef;\n\n for (const filterId of filtersIds) {\n if (drilldownFilters?.[filterId.split(\"/\").slice(-1)[0]]) {\n // drilldown filters are disabled => ignore\n continue;\n }\n\n const labelId = BindingContext.cleanLocalContext(getFilterNameWithoutEntitySetPrefix(filterId));\n const cleanId = (this.props.storage.data.fieldsInfo[filterId]?.filterName as string) ?? labelId;\n const otherColumnsFilters = currentFilters.filter(changedFilter => BindingContext.cleanLocalContext(changedFilter.info.id) !== labelId);\n\n if (originalReportRow.Type === ReportTableRowType.Total || originalReportRow.Type === ReportTableRowType.GrandTotal) {\n continue;\n }\n\n if (isDefined(originalValues?.[cleanId]) && isNotDefined(values[filterId][originalValues[cleanId].toString()]) && !this.isRowFilteredOutForColumn(originalValues, otherColumnsFilters)) {\n const label = originalValuesFormatted[labelId];\n\n uniqueKeys[filterId].add(originalValues[cleanId]);\n values[filterId][originalValues[cleanId].toString()] = isNotDefined(label) || label === \"\" ? this.props.t(\"Common:General.Empty\") : label;\n }\n }\n\n return row;\n });\n\n for (const filterId of filtersIds) {\n if (drilldownFilters?.[filterId.split(\"/\").slice(-1)[0]]) {\n // drilldown filters are disabled => ignore\n continue;\n }\n\n const items: ISelectItem[] = [];\n\n for (const key of uniqueKeys[filterId].keys()) {\n items.push({\n id: key as TSelectItemId,\n label: values[filterId][key.toString()]?.toString()\n });\n }\n\n // apply same sorting rules as used in oData tables\n if (this.props.storage.data.fieldsInfo[filterId]?.valueType !== ValueType.Date) {\n items.sort((a, b) => compareString(a.label, b.label));\n } else {\n items.sort((a, b) => sortCompareFn(getUtcDate(a.id as string), getUtcDate(b.id as string), Sort.Desc));\n }\n\n this.props.storage.data.fieldsInfo[filterId] = {\n ...this.props.storage.data.fieldsInfo[filterId],\n fieldSettings: {\n ...this.props.storage.data.fieldsInfo[filterId]?.fieldSettings,\n items\n }\n };\n }\n\n this.props.storage.refresh();\n };\n\n buildFilterTree = (filters: IFieldData[]): IReportFilterNode => {\n const filtersWithDefs: TBuildReportNodeFilter[] = filters.map(filter => {\n const filterName = BindingContext.cleanLocalContext(filter.bindingContext.getPath());\n const filterDef = this.getColumnFilterDef(filterName);\n return {\n ...filter,\n columnDef: filterDef\n };\n });\n\n return buildFilterTree({\n filters: filtersWithDefs,\n allColumns: this.props.storage.tableAPI?.getState()?.data?.Columns,\n getCustomNode: this.props.getFilterNode\n });\n };\n\n isFilterParameter = (filter: BindingContext | string): boolean => {\n return !!this.props.definition.parameters?.find(param =>\n typeof filter === \"string\" ? param === filter : param === filter.getNavigationPath()\n );\n };\n\n getCorrectFilterValue = (value: any, info: IFieldInfoProperties) => {\n let newValue = value;\n\n if (info.filter?.transformFilterValue) {\n newValue = info.filter?.transformFilterValue(newValue, info as IFieldInfo);\n }\n\n if (isNotDefined(newValue) || isComplexFilterArr(newValue)) {\n return newValue;\n }\n\n if ((info.filterName || info?.type === FieldType.LabelSelect) && info.fieldSettings?.items) {\n // we want to retrieve value from Select items that is different from id\n // replaces values (that are id) with values defined by filterName\n // LabelSelects has to use \"Name\" instead of their default id\n\n if (Array.isArray(newValue)) {\n newValue = info.fieldSettings?.items.filter(item => (newValue as any[]).indexOf(item.id) >= 0).map(item => item.additionalData?.[info.filterName as string] ?? item.id);\n } else {\n const item = info.fieldSettings?.items.find(item => item.id === newValue);\n newValue = item?.additionalData?.[info.filterName as string] ?? item?.id;\n }\n }\n\n if (newValue instanceof Date) {\n newValue = formatDateToDateString(newValue as Date);\n } else if (newValue && typeof newValue === \"object\") {\n for (const key of Object.keys(newValue)) {\n if (newValue[key] instanceof Date) {\n newValue[key] = formatDateToDateString(newValue[key] as Date);\n }\n }\n }\n\n return newValue;\n };\n\n handleFilterChange = (args: ISmartFieldChange) => {\n // if (args.type === FieldType.LabelSelect) {\n // args.value = (args.value as string[]).map((val, index) => args.selectedItems[index].additionalData.Name);\n // }\n\n if (args) {\n this.props.storage.handleFilterChange(args);\n }\n\n if (isSelectBasedComponent(args.type) && !args.triggerAdditionalTasks) {\n this.props.storage.refreshFields();\n return null;\n }\n\n let isParameterChanged = false;\n\n if (args) { // can be called without args, just to refresh filter query value from already changed filter data\n isParameterChanged = this.isFilterParameter(args.bindingContext);\n }\n\n return this.updateTableSettings({\n isParameterChanged,\n filterChange: args\n });\n };\n\n canExpandCollapseRows = (): boolean => {\n const reportHierarchy: IReportHierarchy = this.props.storage.reportHierarchy;\n // if there is no option to configure the report (configuration is disabled), expand/collapse button visibility\n // is driven by this.props.expandable flag and they are always enabled. If there is settings button, we enable/disable\n // the button according to Aggregation settings (only when there is anything to collapse/expand)\n const canCollapse = !!((reportHierarchy?.Aggregate && reportHierarchy.Groups?.length && (reportHierarchy.Groups?.length > 1 || reportHierarchy.Columns.length)) || this.props.disableConfiguration);\n\n return canCollapse || !!this.props.definition?.canExpandCollapseRows?.(this.props.storage);\n };\n\n handleClearFilter = (): void => {\n const filtersChanged = this.props.storage.clearFilters();\n\n if (filtersChanged) {\n this.updateTableSettings({});\n }\n };\n\n setSettings = (settings: IEntity, preventUpdate?: boolean): void => {\n this.props.storage.settings = settings;\n\n if (!preventUpdate) {\n this.forceUpdate();\n }\n };\n\n updateSettings = (newSettings: IEntity, preventUpdate?: boolean): void => {\n const settings = { ...this.props.storage.settings, ...newSettings };\n this.setSettings(settings, preventUpdate);\n };\n\n debouncedSetSettings = debounce((settings: IEntity, callback: () => void): void => {\n callback();\n this.setSettings(settings);\n }, INPUT_DEBOUNCE_TIME);\n\n updateTableSettings = (args: IUpdateTableSettings = {}): IChangedFilter[] => {\n let settings = { ...this.props.storage.settings };\n let andFilters = [];\n const updatedFilters = [];\n const changedFilters = this.props.storage.getChangedFilters();\n\n for (const filter of changedFilters.changedFields) {\n const updatedFilter = { ...filter };\n\n updatedFilters.push(updatedFilter);\n updatedFilter.value = this.getCorrectFilterValue(updatedFilter.value, updatedFilter.info);\n\n if (this.isFilterParameter(updatedFilter.bindingContext)) {\n const value = updatedFilter.value; // updatedFilter.values ? updatedFilter.values : updatedFilter.value;\n\n settings = setBoundValue({\n bindingContext: updatedFilter.bindingContext,\n data: settings,\n newValue: value,\n dataBindingContext: this.props.storage.data.bindingContext\n });\n } else {\n if (!updatedFilter.info?.fieldSettings?.frontendOnly) {\n andFilters.push(updatedFilter);\n }\n }\n }\n\n if (args.isParameterChanged) {\n // if parameter was changed, remove values from non-parameter filters\n // change is propagated to updatedFilters as well, because it has same filter references\n this.props.storage.clearFilters();\n // refresh value helpers, parameter change can change all the values as well\n this.props.storage.unfilteredRows = null;\n\n const newChangedFilters = this.props.storage.getChangedFilters();\n andFilters = andFilters.filter(andFilter => newChangedFilters.groups[FilterBarGroup.Filters]?.find(filter => filter.info.id === andFilter.info.id));\n\n const filterChangeValue = args.filterChange?.parsedValue ?? args.filterChange?.value;\n\n if (args.filterChange && (isNotDefined(filterChangeValue) || (Array.isArray(filterChangeValue) && filterChangeValue.length === 0))) {\n // getChangedFilters doesn't return empty values\n // but parameters needs to be send in the request, even when empty\n settings = setBoundValue({\n bindingContext: args.filterChange.bindingContext,\n data: settings,\n newValue: filterChangeValue,\n dataBindingContext: this.props.storage.data.bindingContext\n });\n }\n\n // in filter with updateFiltersFromResponse, user could've selected dynamic column for sorting,\n // this column can no longer be available after parameter change\n // => remove all dynamic columns from sorting\n if (this.props.definition.updateFiltersFromResponse && this.props.storage.tableAPI) {\n const newSort = this.props.storage.tableAPI.getSort().filter(sort => {\n // if sort column is not in the supported columns,\n // it means it is dynamically generated\n // => remove from sort\n return !!this.getSupportedColumn(sort.id.toString());\n });\n\n this.updateSort(newSort);\n }\n }\n\n const filterTree = this.buildFilterTree(andFilters.map(andFilter => {\n return {\n ...andFilter.info,\n ...andFilter\n };\n }));\n\n if (filterTree) {\n settings.Filter = filterTree;\n } else {\n delete settings.Filter;\n }\n\n settings = (args.filterChange && this.props.onFilterChange?.({\n filterChange: args.filterChange,\n isParameterChanged: args.isParameterChanged,\n settings\n })) ?? settings;\n\n if (!args.filterChange) {\n this.setSettings(settings);\n } else {\n // only change state after some debouncing time\n // prevents creating too many requests while user is writing inside the filter field\n this.debouncedSetSettings(settings, () => {\n // todo does this still make sense with unique row ids?\n // items should be expanded to maximum when filtered\n // if (!this.props.storage.settings?.Filter && settings.Filter) {\n // this.expandAll();\n // }\n });\n }\n\n this.props.storage.refreshFields();\n // return filters with changed values into FilterGroup\n // only way how to pass down new filter values\n return updatedFilters;\n };\n\n get isExpandable(): boolean {\n const tableState = this.props.storage.tableAPI?.getState();\n\n return tableState?.allGroupStatus !== GroupStatus.Expanded;\n }\n\n expandAll = (): void => {\n this.props.onExpandAll?.();\n\n this.props.storage.tableAPI.toggleAllGroups(GroupStatus.Expanded);\n };\n\n collapseAll = (): void => {\n this.props.onCollapseAll?.();\n\n this.props.storage.tableAPI.toggleAllGroups(GroupStatus.Collapsed);\n };\n\n handleGroupToggle = (rows: IRow[]): void => {\n // refresh this.isExpandable\n this.forceUpdate();\n this.props.definition.onGroupToggle?.(this.props.storage);\n };\n\n handleSortSettingsClick = (): void => {\n this.setState({\n isTableSortDialogOpen: true\n });\n };\n\n handleSettingsClick = async (): Promise => {\n this.setState({\n isCustomizationDialogOpen: true,\n dialogReportHierarchy: cloneDeep(this.props.storage.reportHierarchy)\n });\n };\n\n handleExportClick = async (type: TableButtonsAction): Promise => {\n const tableState = this.props.storage.tableAPI.getState();\n let data: IReportData = tableState.data;\n const exportType = type === TableButtonsAction.XLSXExport ? ExportType.XLSX : ExportType.CSV;\n\n // in GeneralLedger, we don't want to export some columns\n if (this.props.definition.id === ReportId.GeneralLedger) {\n data = {\n ...data,\n Columns: data.Columns.filter((column) => {\n return ![\"InitialDebit_SUM\", \"InitialCredit_SUM\", \"FinalDebit_SUM\", \"FinalCredit_SUM\"].includes(column.ColumnAlias);\n })\n };\n }\n\n const {\n rows,\n columns\n } = prepareReportDataForExport(data, this.props.t, tableState.columns as TColumn[], this.props.definition);\n\n const file = await ExcelExport.export({\n columns: columns,\n tableName: this.props.definition.title,\n rows: rows,\n type: exportType\n });\n\n logAction({\n actionId: this.props.definition.path,\n actionType: exportType === ExportType.CSV ? ActionTypeCode.CsvExport : ActionTypeCode.ExcelExport,\n detail: this.logActionDetail\n });\n\n saveAs(file);\n };\n\n get logActionDetail(): string {\n return getReportLogActionDetail(this.props.storage);\n }\n\n handlePdfExportClick = (): void => {\n this.setState({\n showPdfExport: true,\n isTableReadyForPrint: false\n });\n };\n\n handleTableButtonClick = (key: TableButtonsActionType): void => {\n const context = this.context as IAppContext;\n\n switch (key) {\n case TableButtonsAction.XLSXExport:\n case TableButtonsAction.CSVExport:\n this.handleExportClick(key);\n break;\n case TableButtonsAction.PdfExport:\n this.handlePdfExportClick();\n break;\n case TableButtonsAction.Sorting:\n this.handleSortSettingsClick();\n break;\n case TableButtonsAction.Settings:\n this.handleSettingsClick();\n break;\n case TableButtonsAction.ExpandCollapseAll:\n if (this.isExpandable) {\n this.expandAll();\n } else {\n this.collapseAll();\n }\n break;\n case TableButtonsAction.FullscreenOpen:\n context.setFullscreenMode(true);\n break;\n case TableButtonsAction.FullscreenClose:\n context.setFullscreenMode(false);\n break;\n case TableButtonsAction.PdfExportReportFull:\n case TableButtonsAction.PdfExportReportShort:\n this.props.onPrintReportButtonClick?.(key);\n break;\n default:\n this.handleCustomAction(key);\n }\n };\n\n handleCustomAction = (action: string): void => {\n // prepared to be overridden\n };\n\n handleCloseCustomizationDialog = (): void => {\n this.setState({\n dialogReportHierarchy: null,\n isCustomizationDialogOpen: false\n });\n };\n\n handleConfirmCustomizationDialog = (): void => {\n const reportHierarchy: IReportHierarchy = this.state.dialogReportHierarchy;\n const isDrilldown = !!getDrillDownFilters();\n const hasGroupsChanged = this.props.storage.reportHierarchy.Aggregate !== reportHierarchy.Aggregate || !isEqual(this.props.storage.reportHierarchy.Groups, reportHierarchy.Groups);\n\n if (hasGroupsChanged) {\n // unique ids of the rows will change => remove stored, no longer valid openedRowsIds\n LocalSettings.remove(this.props.definition.id, \"openedRowsIds\");\n }\n\n this.updateFiltersFromReportHierarchy(reportHierarchy);\n this.updateTableSettings();\n\n if (!isDrilldown) {\n const variant = this.props.storage.getVariant();\n const currentVariantColumns = variant?.columns;\n const newVariantColumns = this.props.storage.convertReportHierarchyToVariantColumns(reportHierarchy);\n const isColumnsSame = isEqual(newVariantColumns, currentVariantColumns);\n\n if (!isColumnsSame) {\n // only store in variants if not in drilldown\n this.props.storage.setLocalStorageVariant({\n columns: newVariantColumns,\n filters: variant?.filters\n });\n }\n }\n\n this.props.storage.reportHierarchy = reportHierarchy;\n // we need to refresh rows when report hierarchy is changed\n this.props.storage.unfilteredRows = null;\n\n this.setState({\n isCustomizationDialogOpen: false,\n dialogReportHierarchy: null\n });\n\n };\n\n removeItemFromGroup = (group: IGroupListGroupDef, itemId: string) => {\n const index = group.itemIds.indexOf(itemId);\n\n if (index < 0) {\n return;\n }\n\n group.itemIds.splice(index, 1);\n };\n\n convertConfigListToReportHierarchy = (configList: IConfigList, aggregate: boolean) => {\n return {\n Groups: configList.groups[ReportConfigGroup.Groups]?.itemIds.map(this.getColumnOrGroupHierarchyColumn.bind(this, configList, aggregate)) ?? [],\n Columns: configList.groups[ReportConfigGroup.Columns]?.itemIds.map(this.getColumnOrGroupHierarchyColumn.bind(this, configList, aggregate)) ?? [],\n Aggregations: configList.groups[ReportConfigGroup.Aggregations]?.itemIds.map(this.getAggregationHierarchyColumn.bind(this, configList)) ?? []\n };\n };\n\n /** Converts the report hierarchy structure to configuration list definition */\n convertReportHierarchyToConfigListDef = (reportHierarchy: IReportHierarchy, supportedColumns: IReportColumnDef[]): IConfigList => {\n const drillDownFilters = getDrillDownFilters();\n\n const handleColumn = (column: IReportColumnDef, groupId: ReportConfigGroup) => {\n const columnAlias = column.ColumnAlias;\n let itemId = columnAlias;\n const itemOverride = typeof this.props.definition.configListItemsOverride === \"function\" ? this.props.definition.configListItemsOverride(items[itemId]) : this.props.definition.configListItemsOverride?.[itemId];\n const isOverrideValid = itemOverride && (!itemOverride.group || itemOverride.group === groupId);\n\n if (items[itemId].isCopyOnly && !(typeof itemOverride?.isCopyOnly === \"boolean\" && !itemOverride.isCopyOnly)) {\n if (!copies[itemId]) {\n copies[itemId] = 0;\n }\n\n copies[itemId] += 1;\n\n const copyId = getItemCopyId(itemId, copies[itemId]);\n\n items[copyId] = {\n ...items[itemId], id: copyId,\n ...(isOverrideValid && itemOverride),\n isCopyOnly: false\n };\n itemId = copyId;\n } else {\n this.removeItemFromGroup(groups[ReportConfigGroup.AvailableColumns], itemId);\n items[itemId] = {\n ...items[itemId],\n ...(isOverrideValid && itemOverride)\n };\n }\n\n const suffix = column.AggregationFunction ? `_${column.AggregationFunction}` : \"\";\n if (isDefined(drillDownFilters?.[BindingContext.localContext(`${columnAlias}${suffix}`)])) {\n // just like we inject the column into reportHierarchy in \"injectDrillDownFiltersAsColumns\"\n // we cannot let user remove it\n items[itemId].isRequired = true;\n items[itemId].boundTo = ConfigListItemBoundType.Group;\n }\n\n return itemId;\n };\n\n const handleTimeColumn = (column: IReportColumnDef, newItemId: string) => {\n const supportedColumn = this.getSupportedColumn(trimCopyId(column.ColumnAlias));\n\n if (supportedColumn.Type === ReportColumnType.Date) {\n items[newItemId].items = getTimeAggFuncItems();\n items[newItemId].selectedItemId = column.AggregationFunction;\n }\n };\n\n const handleAggregationColumn = (column: IReportColumnDef, newItemId: string) => {\n const supportedColumn = this.getSupportedColumn(trimCopyId(column.ColumnAlias));\n\n if (NumberAggFuncTypes.includes(supportedColumn.Type)) {\n items[newItemId].items = getNumberAggFuncItems();\n } else {\n items[newItemId].items = [getNumberAggFuncItem(NumberAggregationFunction.Count)];\n }\n\n items[newItemId].selectedItemId = column.AggregationFunction;\n };\n\n const hiddenFromAvailable: string[] = [];\n const items: TRecordType = {};\n const groups: TRecordType = {};\n const columns: TRecordType = {\n visible: {\n id: \"visible\",\n label: this.props.t(\"Common:Form.VisibleColumns\"),\n groupIds: null\n },\n available: {\n id: \"available\",\n label: this.props.t(\"Common:Form.AvailableColumns\"),\n groupIds: [ReportConfigGroup.AvailableColumns]\n }\n };\n const copies: TRecordType = {};\n\n supportedColumns.forEach((supportedColumn: IReportColumnDef) => {\n const id = supportedColumn.ColumnAlias;\n\n items[id] = {\n id,\n value: supportedColumn.Label,\n description: supportedColumn.Type === ReportColumnType.Label ? `(${this.props.t(\"Reporting:Config.Label\")})` : (supportedColumn.EntityLabel ? `(${supportedColumn.EntityLabel})` : null),\n isCopyOnly: reportHierarchy.Aggregate\n };\n\n const itemOverride = typeof this.props.definition.configListItemsOverride === \"function\" ? this.props.definition.configListItemsOverride(items[id]) : this.props.definition.configListItemsOverride?.[id];\n const isOverrideValid = itemOverride && (!itemOverride.group || itemOverride.group === id);\n\n if (isOverrideValid) {\n items[id] = {\n ...items[id],\n ...itemOverride\n };\n }\n\n if (itemOverride?.hideFromAvailable) {\n hiddenFromAvailable.push(id);\n }\n });\n\n groups[ReportConfigGroup.AvailableColumns] = {\n id: ReportConfigGroup.AvailableColumns,\n itemIds: Object.keys(items).filter(key => !hiddenFromAvailable.includes(key)),\n isTransparent: true\n };\n\n if (reportHierarchy.Aggregate) {\n columns.visible.groupIds = [ReportConfigGroup.Groups, ReportConfigGroup.Columns, ReportConfigGroup.Aggregations];\n\n groups[ReportConfigGroup.Groups] = {\n id: ReportConfigGroup.Groups,\n label: this.props.t(\"Reporting:Config.FirstColumn\"),\n isHierarchical: true,\n itemIds: reportHierarchy.Groups.map((column) => {\n const itemId = handleColumn(column, ReportConfigGroup.Groups);\n\n handleTimeColumn(column, itemId);\n\n return itemId;\n })\n };\n groups[ReportConfigGroup.Columns] = {\n id: ReportConfigGroup.Columns,\n label: this.props.t(\"Reporting:Config.NextColumns\"),\n itemIds: reportHierarchy.Columns.map((column) => {\n const itemId = handleColumn(column, ReportConfigGroup.Columns);\n\n handleTimeColumn(column, itemId);\n\n return itemId;\n })\n };\n groups[ReportConfigGroup.Aggregations] = {\n id: ReportConfigGroup.Aggregations,\n label: this.props.t(\"Reporting:Config.Aggregations\"),\n itemIds: reportHierarchy.Aggregations.map((column) => {\n const itemId = handleColumn(column, ReportConfigGroup.Aggregations);\n\n handleAggregationColumn(column, itemId);\n\n return itemId;\n })\n };\n } else {\n columns.visible.groupIds = [ReportConfigGroup.Columns];\n\n groups[ReportConfigGroup.Columns] = {\n id: ReportConfigGroup.Columns,\n itemIds: uniq(reportHierarchy.Columns.map((column) => {\n return handleColumn(column, ReportConfigGroup.Columns);\n })),\n isTransparent: true\n };\n }\n\n return {\n items,\n groups,\n columns\n };\n };\n\n getReportHierarchyColumn = (item: IGroupListItemDef, aggFuncGetter?: (item: IGroupListItemDef, column: IReportColumnDef) => TAggregationFunction) => {\n const trimmedId = trimCopyId(item.id);\n const supportedColumn = this.getSupportedColumn(trimmedId);\n const aggFunc = aggFuncGetter(item, supportedColumn);\n\n const hierarchyItem: IReportColumnDef = {\n ColumnAlias: trimmedId\n };\n\n if (aggFunc) {\n hierarchyItem.AggregationFunction = aggFunc;\n }\n\n return hierarchyItem;\n };\n\n getColumnOrGroupHierarchyColumn = (data: IConfigList, aggregate: boolean, itemId: string) => {\n return this.getReportHierarchyColumn(data.items[itemId], (item: IGroupListItemDef, column: IReportColumnDef) => {\n let aggFunc = null;\n\n if (aggregate && column.Type === ReportColumnType.Date) {\n aggFunc = getTimeAggFuncItems().find(funcItem => funcItem.id === item.selectedItemId) ? item.selectedItemId : TimeAggregationFunction.Month;\n }\n\n return aggFunc;\n });\n };\n\n getAggregationHierarchyColumn = (data: IConfigList, itemId: string) => {\n return this.getReportHierarchyColumn(data.items[itemId], (item: IGroupListItemDef, column: IReportColumnDef) => {\n if (NumberAggFuncTypes.includes(column.Type)) {\n return item.selectedItemId || NumberAggregationFunction.Sum;\n } else {\n return NumberAggregationFunction.Count;\n }\n });\n };\n\n handleConfigListChange = (newData: IConfigList, newReportHierarchy?: IReportHierarchy) => {\n const dialogReportHierarchy = newReportHierarchy ?? this.state.dialogReportHierarchy;\n const reportHierarchy = this.convertConfigListToReportHierarchy(newData, !!dialogReportHierarchy.Aggregate);\n\n this.setState({\n dialogReportHierarchy: {\n ...dialogReportHierarchy,\n ...reportHierarchy\n }\n });\n };\n\n createCustomizationDialogContent = () => {\n const currentReportHierarchy: IReportHierarchy = this.state.dialogReportHierarchy;\n const configListData = this.convertReportHierarchyToConfigListDef(currentReportHierarchy, this.props.storage.supportedColumns);\n\n return (\n

    \n
    \n \n
    \n
    \n \n
    \n
    \n );\n };\n\n getSupportedColumn = (columnAlias: string): IReportColumnDef => {\n return getMatchingColumn(this.props.storage.supportedColumns, columnAlias);\n };\n\n /** Try to either return supportedColumn or filter representation in AdditionalFilters\n * AdditionalFilters returned from \"supportedColumns\" endpoint can represent multiple virtual columns for filtering\n * In that case, they have IsColumnAliasFilterPrefix=true and represent every column with the same ColumnAlias prefix */\n getColumnFilterDef = (columnAlias: string): IReportColumnDef => {\n return this.getSupportedColumn(columnAlias) ?? getMatchingColumn(this.props.storage.additionalFilters, columnAlias);\n };\n\n handleAggButtonClick = () => {\n const oldReportHierarchy = this.state.dialogReportHierarchy;\n const shouldAggregate = !oldReportHierarchy.Aggregate;\n const newReportHierarchy: IReportHierarchy = {\n Aggregate: shouldAggregate,\n Groups: [], Columns: [], Aggregations: []\n };\n\n if (shouldAggregate) {\n // move all Currency type to Aggregations\n newReportHierarchy.Columns = oldReportHierarchy.Columns.filter((col: IReportColumnDef) => this.getSupportedColumn(col.ColumnAlias).Type !== ReportColumnType.Currency);\n newReportHierarchy.Aggregations = oldReportHierarchy.Columns.filter((col: IReportColumnDef) => this.getSupportedColumn(col.ColumnAlias).Type === ReportColumnType.Currency);\n } else {\n // move every item to Columns\n newReportHierarchy.Columns = [...oldReportHierarchy.Groups, ...oldReportHierarchy.Columns, ...oldReportHierarchy.Aggregations];\n }\n\n this.setState({\n dialogReportHierarchy: newReportHierarchy\n });\n\n const configListDef = this.convertReportHierarchyToConfigListDef(\n newReportHierarchy,\n this.props.storage.supportedColumns\n );\n\n this.handleConfigListChange(configListDef, newReportHierarchy);\n };\n\n handleTableLoad = async (): Promise => {\n if (!this.props.storage.tableAPI) {\n // table was unloaded before the async task finished\n return;\n }\n\n if (!this.props.storage.getCustomData().isTableReady) {\n this.props.storage.setCustomData({\n isTableReady: true\n });\n }\n const tableState = this.props.storage.tableAPI.getState();\n const hasNoData = !tableState.rowCount;\n\n if (this.props.definition.updateFiltersFromResponse) {\n this.updateFiltersFromReturnedColumns();\n }\n\n // create value helpers from the returned data\n // if filter is applied on the first request,\n // fire one more request without the filter\n if (!this.props.storage.unfilteredRows) {\n if (isNotDefined(this.props.storage.settings.Filter)) {\n this.props.storage.unfilteredRows = this.props.storage.tableAPI.getRowsArray();\n } else {\n // todo add some kind of optimization, mby only load after the first value helper is opened\n const response = await fetchReportTableData({\n path: this.props.definition.path,\n settings: {\n ...this.props.storage.settings,\n Filter: null\n },\n reportHierarchy: this.props.storage.reportHierarchy,\n storage: this.props.storage,\n sort: this.props.storage.tableAPI.getSort()\n });\n const fetchedData = await response.json();\n const preparedData = this.props.storage.tableAPI.prepareData(fetchedData);\n\n this.props.storage.unfilteredRows = preparedData.rowsArray;\n }\n }\n\n this.updateValueHelpers(this.props.storage.unfilteredRows);\n\n this.props.definition.onAfterTableLoad?.(this.props.storage);\n\n if (hasNoData !== this.state.hasNoData) {\n this.setState({\n hasNoData: hasNoData\n });\n }\n };\n\n handleTableReadyForPrint = () => {\n this.setState({\n isTableReadyForPrint: true\n });\n };\n\n handleSortChange = (sort: ISort[]): void => {\n if (!getDrillDownFilters()) {\n const variant = this.props.storage.getVariant();\n const variantColumns = variant?.columns;\n const updatedColumns = variantColumns.map((variantColumn, index) => {\n let updatedColumn = { ...variantColumn };\n const variantColumnId = variantColumn.aggregationFunction ? `${variantColumn.id}_${variantColumn.aggregationFunction}` : variantColumn.id;\n // we want columns with same id have the same sort => use getCleanColumnId\n const sortIndex = sort.findIndex(s => getCleanColumnId(s.id.toString()) === variantColumnId);\n const columnSort = sort?.[sortIndex];\n\n updatedColumn = {\n ...updatedColumn,\n ...this.props.storage.getVariantColumnSortProps(variantColumnId, columnSort, sortIndex)\n };\n\n return updatedColumn;\n });\n\n // some reports return virtual columns, that are not part of the reportHierarchy configuration\n // we still need to store those in variant to remember the applied sort\n // set group to null - column won't be used in reportHierarchy\n for (let i = 0; i < sort.length; i++) {\n const sortCol = sort[i];\n\n if (!updatedColumns.find(col => {\n const colId = col.aggregationFunction ? `${col.id}_${col.aggregationFunction}` : col.id;\n\n return getCleanColumnId(sortCol.id.toString()) === colId;\n })) {\n updatedColumns.push({\n id: sortCol.id.toString(),\n sortOrder: i,\n sortType: sortCol.sort,\n group: null\n });\n }\n }\n\n this.props.storage.setLocalStorageVariant({\n columns: updatedColumns,\n filters: variant?.filters\n });\n } else {\n // in drilldown, ignore variants, just apply the changed settings\n // this.props.storage.reportHierarchy = reportHierarchy;\n }\n };\n\n handleRowSelect = (id: TId, row: IReportRowDef) => {\n // TODO key will probably have other representation than just Document_Id\n const key = row.Value.Document_Id as number;\n\n if (!key) {\n return;\n }\n\n const entitySet = getEntitySetByDocumentType(row.Value.Document_DocumentTypeCode as DocumentTypeCode);\n\n this.props.onRowSelect?.(getBindingContext(entitySet, this.props.oData.getMetadata()).addKey(key));\n };\n\n getSelectedRow = () => {\n const bindingContext = this.props.storage.data.rowBindingContext;\n const key = bindingContext?.getKey();\n const rows = this.props.storage.tableAPI?.getState().data?.Rows;\n\n if (!bindingContext || !this.props.storage.tableAPI || !rows || rows.length === 0) {\n return null;\n }\n\n const selectedRow = this.getReportRowAndPath(this.props.storage.tableAPI.getState().data.Rows, (row) => {\n return row.Value.Document_Id === key;\n });\n\n if (!selectedRow) {\n return null;\n }\n\n return getReportRowId(selectedRow.path);\n };\n\n getReportRowAndPath = (rows: IReportRowDef[], checkFn: (row: IReportRowDef) => boolean, path: number[] = []): {\n row: IReportRowDef,\n path: number[]\n } => {\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const currentPath = [...path, i];\n\n if (checkFn(row)) {\n return {\n row, path: currentPath\n };\n }\n\n if (row.Rows) {\n const found = this.getReportRowAndPath(row.Rows, checkFn, currentPath);\n\n if (found) {\n return found;\n }\n }\n }\n\n return null;\n };\n\n getDefinitionValue = (definitionProp: keyof IReportTableDefinition) => {\n return (typeof this.props.definition[definitionProp] === \"function\")\n ? (this.props.definition[definitionProp] as TGetReportDefValFn)({\n settings: this.props.storage.settings,\n storage: this.props.storage\n })\n : this.props.definition[definitionProp];\n };\n\n getWarningsAlert = () => {\n const warnings: IReportWarning[] = this.props.storage.getCustomData().warnings;\n\n if (!warnings || warnings.length === 0) {\n return null;\n }\n\n const title: React.ReactNode = this.props.t(\"Document:Error.Warning\");\n const subtitles: React.ReactNode[] = [];\n let hoverTitle = \"\";\n const accountsWarnings: TRecordString = {\n AccountsWithoutBSSection: \"BalanceSheet\",\n AccountsWithoutISSection: \"IncomeStatement\"\n };\n\n for (const warning of warnings) {\n let subtitle: React.ReactNode = \"\";\n\n if (Object.keys(accountsWarnings).includes(warning.WarningIdentifier)) {\n const translationGroup = accountsWarnings[warning.WarningIdentifier];\n const fiscalYears: TRecordAny = {};\n const accountsWithBalanceText = `${this.props.t(`Reporting:${translationGroup}.AccountsWithBalance`)} `;\n const accountsNotAssignedText = `${this.props.t(`Reporting:${translationGroup}.AccountsNotAssigned`)}:`;\n\n subtitle += accountsWithBalanceText;\n subtitle = (\n <>\n {subtitle}\n \n {accountsNotAssignedText}\n \n {\"\\n\\n\"}\n \n );\n\n hoverTitle += accountsWithBalanceText;\n hoverTitle += accountsNotAssignedText;\n\n for (const account of warning.AdditionalInfo.Accounts) {\n const fiscalYearId = account.FiscalYear.Id;\n\n if (!fiscalYears[fiscalYearId]) {\n fiscalYears[fiscalYearId] = account.FiscalYear;\n fiscalYears[fiscalYearId].ChartOfAccountsId = account.ChartOfAccountsId;\n fiscalYears[fiscalYearId].Accounts = [];\n }\n\n fiscalYears[fiscalYearId].Accounts.push(account.Account);\n }\n\n const fiscalYearsArray = Object.values(fiscalYears);\n\n for (let i = 0; i < fiscalYearsArray.length; i++) {\n const fiscalYear = fiscalYearsArray[i];\n const fiscalYearText = `${this.props.t(\"Common:Settings.FiscalYear\")} ${fiscalYear.Number}`;\n\n hoverTitle += ` ${fiscalYearText} `;\n subtitle = (\n <>\n {subtitle}\n {fiscalYearText}\n {\"\\n\"}\n \n );\n subtitle = (\n <>\n {subtitle}\n <>\n {\n fiscalYear.Accounts.map((account: IAccountEntity, index: number) => {\n const params = getIntentNavParams({\n route: `${ROUTE_CHARTS_OF_ACCOUNTS}/${fiscalYear.ChartOfAccountsId}/Accounts/${account.Id}`,\n context: this.context,\n storage: this.props.storage\n });\n let linkText = `${account.Number} ${DASH_CHARACTER} ${account.Name}`;\n\n linkText += index < fiscalYear.Accounts.length - 1 ? \", \" : \".\";\n hoverTitle += linkText;\n\n return (\n \n {linkText}\n \n );\n })\n }\n \n {`\\n${i !== fiscalYearsArray.length - 1 ? \"\\n\" : \"\"}`}\n \n );\n }\n } else {\n const fiscalYearMissingText = `${this.props.t(\"Reporting:BalanceSheet.FiscalYearMissing\")} `;\n const dateText = this.props.t(`Reporting:BalanceSheet.${warning.WarningIdentifier}`, { date: DateType.format(warning.AdditionalInfo.date) });\n\n subtitle = (\n <>\n {fiscalYearMissingText}\n {dateText}\n \n );\n\n hoverTitle += fiscalYearMissingText;\n hoverTitle += dateText;\n }\n\n if (subtitle) {\n subtitles.push(subtitle);\n }\n\n hoverTitle += \" \";\n }\n return (\n \n );\n };\n\n handleWarningClose = (): void => {\n this.props.storage.setCustomData({ warnings: null });\n this.props.storage.refresh();\n };\n\n handlePrintDialogClose = (): void => {\n this.setState({\n showPdfExport: false\n });\n };\n\n renderPrintDialog = () => {\n if (!this.state.showPdfExport) {\n return null;\n }\n\n return (\n \n );\n };\n\n disableToolbarButtons(): boolean {\n return this.props.disableToolbarButtons;\n }\n\n customToolbarContent = (): IToolbarItem[] => {\n return this.props.customToolbarButtons?.(this.props.storage);\n };\n\n getStaticToolbarItems = (): TToolbarItem[] => null;\n\n // can be overridden\n getRowAction = (): TCustomRowAction => {\n return this.props.rowAction;\n };\n\n handleActiveRowActionCountChange = (): void => {\n // refresh would reload secondary query filters, we just need to rerender confirmation buttons\n this.forceUpdate();\n };\n\n renderCustomizationDialog = (): ReactElement => {\n if (!this.state.isCustomizationDialogOpen) {\n return null;\n }\n\n return (\n }>\n {this.state.isCustomizationDialogOpen && this.createCustomizationDialogContent()}\n \n );\n };\n\n updateSort = (sort: ISort[]): void => {\n const isSortSame = isEqual(sort, this.props.storage.tableAPI.getSort());\n\n if (!isSortSame) {\n this.handleSortChange(sort);\n this.props.storage.updateCurrentTableColumns(sort);\n }\n };\n\n handleSortingDialogConfirm = (sort: ISort[]): void => {\n this.updateSort(sort);\n\n this.setState({\n isTableSortDialogOpen: false\n });\n };\n\n handleSortingDialogCancel = (): void => {\n this.setState({\n isTableSortDialogOpen: false\n });\n };\n\n renderSortingDialog = (): ReactElement => {\n if (!this.state.isTableSortDialogOpen) {\n return null;\n }\n\n return !COLUMN_INDEX_REGEX.test(col.id.toString()) && !col.disableSort)\n .map(col => ({\n id: col.id,\n label: col.label\n }))}\n sort={this.props.storage.getInitialSortOrder().filter(sort => !COLUMN_INDEX_REGEX.test(sort.id.toString()))}\n onConfirm={this.handleSortingDialogConfirm}\n onCancel={this.handleSortingDialogCancel}/>;\n };\n\n renderDefaultDialogs = (): ReactElement => {\n return (\n <>\n {this.renderPrintDialog()}\n {this.renderCustomizationDialog()}\n {this.renderSortingDialog()}\n \n );\n };\n\n renderFilters = (): ReactElement => (<>\n \n \n \n );\n\n renderToolbar = (): ReactElement => {\n const context = this.context as IAppContext;\n const isAnyFilterError = this.props.storage.isAnyError();\n const visibleButtons = [\n TableButtonsAction.Sorting\n ];\n const disabledButtons: TableButtonsAction[] = [];\n\n if (this.props.showExportButton) {\n visibleButtons.push(\n TableButtonsAction.XLSXExport,\n TableButtonsAction.CSVExport,\n TableButtonsAction.PdfExport\n );\n }\n\n if (this.props.showPrintReportButtons) {\n visibleButtons.push(TableButtonsAction.PdfExportReportFull, TableButtonsAction.PdfExportReportShort);\n }\n\n if (!this.props.disableConfiguration) {\n visibleButtons.push(TableButtonsAction.Settings);\n }\n\n if (!this.props.disableFullscreen) {\n if (context.isFullscreenMode) {\n visibleButtons.push(TableButtonsAction.FullscreenClose);\n } else {\n visibleButtons.push(TableButtonsAction.FullscreenOpen);\n }\n }\n\n if (this.props.expandable) {\n visibleButtons.push(TableButtonsAction.ExpandCollapseAll);\n\n if (!this.canExpandCollapseRows()) {\n disabledButtons.push(TableButtonsAction.ExpandCollapseAll);\n }\n }\n\n if (this.state.hasNoData || isAnyFilterError) {\n for (const action of [TableButtonsAction.XLSXExport, TableButtonsAction.CSVExport, TableButtonsAction.ExpandCollapseAll]) {\n if (!disabledButtons.includes(action)) {\n disabledButtons.push(action);\n }\n }\n }\n\n if (this.disableToolbarButtons()) {\n for (const visibleButton of visibleButtons) {\n if (!disabledButtons.includes(visibleButton)) {\n disabledButtons.push(visibleButton);\n }\n }\n }\n\n return (\n \n {this.customToolbarContent()}\n \n );\n };\n\n renderTable = (): ReactElement => {\n const isAnyFilterError = this.props.storage.isAnyError();\n\n return (\n \n {isAnyFilterError && }\n {!isAnyFilterError &&\n \n }\n \n );\n };\n\n isLoading = (): boolean => !this.props.definition || !this.props.storage.loaded || !this.state.loaded;\n\n render() {\n if (this.isLoading()) {\n return ;\n }\n\n const context = this.context as IAppContext;\n const isFullscreen = context.isFullscreenMode;\n\n return (\n <>\n \n \n {isFullscreen ? null :\n }\n {isFullscreen ? null : this.renderFilters()}\n {this.getWarningsAlert()}\n {this.renderToolbar()}\n {this.renderTable()}\n \n {this.renderDefaultDialogs()}\n \n );\n }\n}\n\nexport const commonReportTranslations = [\"Reporting\", \"Components\", \"Common\", \"Document\", \"Enums\"];\nexport { ReportView as ReportViewClean };\n// todo fix ts interface\n// @ts-ignore\nexport default withTranslation(commonReportTranslations, { withRef: true })(withOData(ReportView));","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ICellValueObject } from \"@components/table\";\nimport { getRouteByEntityType } from \"@odata/EntityTypes\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { VatStatementStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, FieldType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { TReportColumnOverrides } from \"./Report.utils\";\n\nexport const VatReportProps = {\n vatStatementPeriod: BindingContext.localContext(\"DateRange\"),\n vatStatementStatus: BindingContext.localContext(\"VatStatementStatusCodes\")\n};\n\nexport const getVatReportColumnOverrides = (): TReportColumnOverrides => {\n return {\n Document_NumberOurs: {\n formatter: (val: TValue, args: IFormatOptions): ICellValueObject => {\n if (!val) {\n return null;\n }\n\n const docId = args.entity[\"Document_DocumentId\"] ?? args.entity[\"Document_Id\"];\n const docType = args.entity[\"Document_DocumentTypeCode\"] ?? args.entity[\"BusinessPartner_DocumentTypeCode\"];\n const url = `${getRouteByEntityType(docType)}/${docId}`;\n\n return getTableIntentLink(val as string, {\n route: url,\n context: args.storage.context,\n storage: args.storage\n });\n }\n }\n };\n};\n\nexport const getVatStatementStatusFilterDef = (): TFilterDef => {\n const items = getEnumSelectItems(EntityTypeName.VatStatementStatus)\n .filter(item => ![VatStatementStatusCode.Undefined, VatStatementStatusCode.PartiallyFiled].includes(item.id as VatStatementStatusCode));\n return {\n id: VatReportProps.vatStatementStatus,\n label: i18next.t(\"Reporting:VatReports.VatStatementStatus\"),\n type: FieldType.MultiSelect,\n width: BasicInputSizes.M,\n fieldSettings: {\n items: items\n },\n defaultValue: items.map(item => item.id)\n };\n};","import {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportVariantDef } from \"@components/smart/smartTable\";\nimport i18next from \"i18next\";\n\nimport { getSimpleBoolSelectItems } from \"../../../components/smart/FieldInfo\";\nimport { ConfigListItemBoundType, FieldType, Sort } from \"../../../enums\";\nimport { TRecordType } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport {\n assetIntentFormatter,\n CommonReportProps,\n documentNumberOursOverrideFormatterWithPaymentDocs,\n getDocumentTypeFilterDef\n} from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getComposedDateRangeFieldsDefs\n} from \"../customFilterComponents/ComposedDateRange\";\nimport { getAccountsParamDef, IReportTableDefinition, TReportConfigListItemOverride } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { SaldoProps } from \"../saldo/SaldoDef\";\n\nexport const AccountAnalysisProps = {\n accounts: BindingContext.localContext(\"Accounts\"),\n drilldown: BindingContext.localContext(\"DrillDown\"),\n sumAmounts: BindingContext.localContext(\"SumAmounts\"),\n closingAccounts: BindingContext.localContext(\"ClosingAccounts\")\n};\n\nexport enum ClosingAccounts {\n Show = \"Show\",\n DoNotShow = \"DoNotShow\"\n}\n\nexport const AccountAnalysisConfiglistSettings: TRecordType = {\n JournalEntry_Amount: {\n isRequired: true,\n areItemsReadOnly: true,\n boundTo: ConfigListItemBoundType.Column\n }\n};\n\nexport enum AccountAnalysisVariant {\n Evala = \"-69\", // default variant\n FYCBankDrilldown = \"fycbank\", // FE only variant - used just in drilldown\n}\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.AccountAnalysis;\n const title = i18next.t(\"Reporting:AccountAnalysis.Title\");\n const path = \"AccountAnalysis\";\n const initialSortBy = [\n { id: \"Account_Number\", sort: Sort.Asc },\n { id: \"JournalEntry_DateAccountingTransaction\", sort: Sort.Desc },\n { id: \"Document_NumberOurs\", sort: Sort.Asc }\n ];\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange,\n CommonReportProps.dateRangeCustomValue,\n AccountAnalysisProps.accounts,\n AccountAnalysisProps.drilldown,\n AccountAnalysisProps.sumAmounts,\n AccountAnalysisProps.closingAccounts\n ],\n filterDefinition: {\n ...getComposedDateRangeFieldsDefs(tableId),\n [AccountAnalysisProps.accounts]: getAccountsParamDef([], true),\n // hidden parameter only used for drilldown from BalanceSheet\n // not supposed to be seen in filter bar at all\n [AccountAnalysisProps.drilldown]: {\n // needs to be true for table storage to load info\n // set to false onAfterLoad\n isVisible: true,\n defaultValue: \"None\"\n },\n [SaldoProps.sumAmounts]: {\n type: FieldType.ComboBox,\n defaultValue: false,\n label: i18next.t(\"Reporting:AccountAnalysis.SumAmounts\"),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n },\n [AccountAnalysisProps.closingAccounts]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Reporting:AccountAnalysis.ClosingAccountsParam\"),\n defaultValue: \"DoNotShow\",\n fieldSettings: {\n items: [\n {\n id: ClosingAccounts.Show,\n label: i18next.t(\"Reporting:AccountAnalysis.ShowClosingAccounts\")\n },\n {\n id: ClosingAccounts.DoNotShow,\n label: i18next.t(\"Reporting:AccountAnalysis.DoNotShowClosingAccounts\")\n }\n ]\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {\n [BindingContext.localContext(\"DocumentType_Name\")]: getDocumentTypeFilterDef(\"JournalEntry_DocumentTypeCode\")\n }\n }\n ];\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage, true);\n };\n const parameters: string[] = [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n AccountAnalysisProps.accounts,\n AccountAnalysisProps.sumAmounts,\n AccountAnalysisProps.drilldown, AccountAnalysisProps.closingAccounts\n ];\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Account_Number\"\n },\n {\n \"ColumnAlias\": \"PairAccount_Number\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_DateAccountingTransaction\"\n },\n {\n \"ColumnAlias\": \"FiscalPeriod_Name\"\n },\n {\n \"ColumnAlias\": \"Document_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"DocumentType_Name\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_Description\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_Debit\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_Credit\"\n }\n ],\n \"Aggregations\": []\n };\n\n const defaultReportVariants: TRecordType = {\n [AccountAnalysisVariant.Evala]: {\n ReportHierarchy: defaultReportHierarchy\n },\n [AccountAnalysisVariant.FYCBankDrilldown]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"Account_Number\" },\n { \"ColumnAlias\": \"PairAccount_Number\" },\n { \"ColumnAlias\": \"JournalEntry_DateAccountingTransaction\" },\n { \"ColumnAlias\": \"FiscalPeriod_Name\" },\n { \"ColumnAlias\": \"Document_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"JournalEntry_Description\" },\n { \"ColumnAlias\": \"JournalEntry_Amount\" },\n { \"ColumnAlias\": \"JournalEntry_TransactionCurrencyCode\" },\n { \"ColumnAlias\": \"Document_ExchangeRatePerUnit\" },\n { \"ColumnAlias\": \"JournalEntry_TransactionAmount\" }\n ],\n \"Aggregations\": []\n }\n }\n };\n\n const columnOverrides = {\n Document_NumberOurs: {\n formatter: documentNumberOursOverrideFormatterWithPaymentDocs\n },\n Asset: {\n formatter: assetIntentFormatter\n }\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef,\n onBeforeLoad, columnOverrides, parameters, defaultReportHierarchy, defaultReportVariants,\n configListItemsOverride: AccountAnalysisConfiglistSettings\n };\n};","import {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy } from \"@components/smart/smartTable\";\nimport i18next from \"i18next\";\n\nimport { FieldType, Sort } from \"../../../enums\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport {\n assetIntentFormatter,\n CommonReportProps,\n documentNumberOursOverrideFormatterWithPaymentDocs,\n getDocumentTypeFilterDef\n} from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getComposedDateRangeFieldsDefs\n} from \"../customFilterComponents/ComposedDateRange\";\nimport { IReportTableDefinition } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\n\nexport const AccountingJournalProps = {\n impactedAccount: BindingContext.localContext(\"ImpactedAccount\")\n};\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.AccountingJournal;\n const title = i18next.t(\"Reporting:AccountingJournal.Title\");\n const path = \"AccountingJournal\";\n const initialSortBy = [\n { id: \"JournalEntry_DateAccountingTransaction\", sort: Sort.Desc },\n { id: \"Document_NumberOurs\", sort: Sort.Desc }\n ];\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n AccountingJournalProps.impactedAccount\n ],\n filterDefinition: {\n ...getComposedDateRangeFieldsDefs(tableId),\n [AccountingJournalProps.impactedAccount]: {\n type: FieldType.Input,\n label: i18next.t(\"Reporting:AccountingJournal.ImpactedAccount\"),\n // BE accepts string[], we use string\n parser: (val: string) => {\n return [val];\n },\n formatter: (val) => {\n if (!Array.isArray(val)) {\n return val as string;\n }\n\n return (val as string[])?.[0];\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {\n [BindingContext.localContext(\"DocumentType_Name\")]: getDocumentTypeFilterDef(\"JournalEntry_DocumentTypeCode\")\n }\n }\n ];\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage);\n };\n const parameters: string[] = [CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue, AccountingJournalProps.impactedAccount];\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n {\n \"ColumnAlias\": \"JournalEntry_DateAccountingTransaction\"\n },\n {\n \"ColumnAlias\": \"Document_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"DocumentType_Name\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_Description\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_Amount\"\n },\n {\n \"ColumnAlias\": \"DebitAccount_Number\"\n },\n {\n \"ColumnAlias\": \"CreditAccount_Number\"\n }\n ],\n \"Aggregations\": []\n };\n\n const columnOverrides = {\n Document_NumberOurs: {\n formatter: documentNumberOursOverrideFormatterWithPaymentDocs\n },\n Asset: {\n formatter: assetIntentFormatter\n }\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef,\n onBeforeLoad, columnOverrides, parameters, defaultReportHierarchy\n };\n};","import { ConditionType, createFilterRow } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport { CurrencyDef } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy } from \"@components/smart/smartTable\";\nimport { ICellValueObject, ISort } from \"@components/table\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { ClearedStatusCode, DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { DocumentJournalProps } from \"@pages/reports/documentJournal/DocumentJournalDef\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { BasicInputSizes, ConfigListItemBoundType, FieldType, Sort } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ROUTE_DOCUMENT_JOURNAL } from \"../../../routes\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport { DATE_MAX, DATE_MIN, getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport Page, { IProps as IPageProps } from \"../../Page\";\nimport { DocumentStatusLocalPath, getStatusFilterId } from \"../CommonDefs\";\nimport {\n agingIntervalHandleFilterChange,\n agingIntervalOnAfterLoadCallback,\n getAgingIntervalFilterDef,\n getAgingIntervalUnitFilterDef\n} from \"../customFilterComponents/AgingInterval\";\nimport {\n getLabelDrilldownFilters,\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportConfigGroup,\n TGetReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { getWholeDateRangeFilter } from \"../ReportFilter.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportSplitPage } from \"../ReportSplitPage\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { IReportFilterChangeEvent, IReportViewBaseProps } from \"../ReportView\";\n\nexport const AgingProps = {\n calculationDecisiveDate: BindingContext.localContext(\"CalculationDecisiveDate\"),\n agingIntervals: BindingContext.localContext(\"AgingIntervals\"),\n agingIntervalUnit: BindingContext.localContext(\"AgingIntervalUnit\"),\n currency: BindingContext.localContext(\"Currency\"),\n calculateToDay: BindingContext.localContext(\"CalculateToDate\"),\n documentTypes: BindingContext.localContext(\"DocumentTypes\")\n};\n\nexport const AgingAPProps = {\n reportType: BindingContext.localContext(\"AgingAPReportType\")\n};\n\nexport const AgingARProps = {\n reportType: BindingContext.localContext(\"AgingARReportType\")\n};\n\nexport enum AgingType {\n AP = \"AP\",\n AR = \"AR\"\n}\n\nexport enum AgingReportType {\n AfterDueDate = \"AfterDueDate\",\n BeforeDueDate = \"BeforeDueDate\"\n}\n\nexport enum AgingCalculationDecisiveDate {\n DateDue = \"DateDue\",\n DateAccountingTrans = \"DateAccountingTrans\"\n}\n\nconst agingTableBc = BindingContext.localContext(\"AgingTable\");\n\nexport const AgingReceivedTypes = [DocumentTypeCode.InvoiceReceived, DocumentTypeCode.OtherLiability, DocumentTypeCode.CorrectiveInvoiceReceived];\nexport const AgingIssuedTypes = [DocumentTypeCode.InvoiceIssued, DocumentTypeCode.OtherReceivable, DocumentTypeCode.CorrectiveInvoiceIssued];\n\nexport interface IGetAgingDefinition {\n path: string;\n title: string;\n tableId: ReportId;\n reportTypeParam: string;\n prefix: string;\n}\n\nexport const getDefinition = (getDefArgs: IGetAgingDefinition): IReportTableDefinition => {\n const initialSortBy: ISort[] = [{\n id: \"BusinessPartner_Name\",\n sort: Sort.Asc\n }];\n const translatedTitle = i18next.t(getDefArgs.title);\n const showDrilldown = true;\n const disableAggregateButton = true;\n const parameters: string[] = [\n AgingProps.calculationDecisiveDate,\n getDefArgs.reportTypeParam,\n AgingProps.agingIntervals,\n AgingProps.agingIntervalUnit,\n AgingProps.currency,\n AgingProps.calculateToDay,\n AgingProps.documentTypes\n ];\n\n const configListItemsOverride: TGetReportConfigListItemOverride = {\n BusinessPartner_Name: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false\n },\n Document_TransactionAmountDue: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n areItemsReadOnly: true,\n boundTo: ConfigListItemBoundType.Column,\n group: ReportConfigGroup.Aggregations\n }\n };\n\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"BusinessPartner_Name\"\n }\n ],\n \"Columns\": [],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"Document_TransactionAmountDue\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n };\n\n const columnOverrides = (columnId: string): IFieldInfoProperties => {\n if (!columnId.startsWith(\"Document_TransactionAmountDue\")) {\n return null;\n }\n\n return {\n formatter: (val: TValue, args: IFormatOptions): ICellValueObject => {\n if (!val) {\n return null;\n }\n\n const settings = (args.storage as ReportStorage).settings;\n const documentTypes = settings[AgingProps.documentTypes];\n const originalColumn = (args.storage as ReportStorage).tableAPI.getState().data.Columns.find(col => col.ColumnAlias === columnId);\n\n const wholeDateRangeFilter = getWholeDateRangeFilter();\n const { customQueryString } = wholeDateRangeFilter;\n\n const notClearedFilterStatus = createFilterRow({\n type: ConditionType.Excluded,\n value: [getStatusFilterId(EntityTypeName.ClearedStatus, ClearedStatusCode.Cleared)]\n });\n\n const filters = {\n [BindingContext.localContext(\"BusinessPartner_Name\")]: args.entity.BusinessPartner_Name,\n // todo: define special filter just for ClearedStatusCode in DocumentJournal, which filter just by the one column\n // (this filter should add DocumentStatus column and force it as mandatory, so it can't be removed and ensure that ClearedStatusCode column is available\n // check also visibility of the filter values above the filterbar.\n [DocumentStatusLocalPath]: [notClearedFilterStatus],\n [BindingContext.localContext(\"DocumentType_Name\")]: documentTypes,\n [BindingContext.localContext(\"Document_TransactionCurrencyCode\")]: args.entity.Document_TransactionCurrencyCode,\n ...getLabelDrilldownFilters(args.entity),\n ...wholeDateRangeFilter.filters\n };\n\n const decisiveDate = settings[AgingProps.calculationDecisiveDate];\n const dateParam = decisiveDate === AgingCalculationDecisiveDate.DateDue ? \"Document_DateDue\" : \"Document_DateAccountingTransaction\";\n\n // reports on BE use DateTime instead of DateTimeOffset or DateOnly\n // => we receive string in format like 0001-01-01T00:00:00 (with time and without Z at the end)\n // ==> it sometimes fail when we parse it into our date objects\n // ===> remove the time part, we only need the date part\n // todo refactor BE to use either DateTimeOffset or even better, DateOnly\n const fnParseDateOnly = (date: string): string => {\n return date.slice(0, 10);\n };\n\n const toDate = settings[AgingProps.calculateToDay];\n\n if (toDate) {\n filters[DocumentJournalProps.dateClearingStatusTo] = formatDateToDateString(toDate);\n }\n\n if (originalColumn.AdditionalInfo) {\n // BE sends interval for the computed TransactionAmountDue columns\n if (originalColumn.AdditionalInfo.IntervalStartDate === originalColumn.AdditionalInfo.IntervalEndDate) {\n filters[BindingContext.localContext(dateParam)] = fnParseDateOnly(originalColumn.AdditionalInfo.IntervalStartDate);\n } else {\n filters[BindingContext.localContext(dateParam)] = {\n from: fnParseDateOnly(originalColumn.AdditionalInfo.IntervalStartDate),\n to: fnParseDateOnly(originalColumn.AdditionalInfo.IntervalEndDate)\n };\n }\n } else { // TransactionAmountDue sum\n const reportType = args.storage.id === ReportId.AgingAP ? settings[AgingAPProps.reportType] : settings[AgingARProps.reportType];\n const isAfterDueDate = reportType.endsWith(AgingReportType.AfterDueDate);\n\n // for the after due date, MIN - YESTERDAY interval\n const interval = isAfterDueDate ? {\n from: formatDateToDateString(DATE_MIN),\n to: formatDateToDateString(getUtcDayjs(toDate).startOf(\"day\").subtract(1, \"day\"))\n } : { // for before due date, TODAY - MAX\n from: formatDateToDateString(getUtcDayjs(toDate).startOf(\"day\")),\n to: formatDateToDateString(DATE_MAX)\n };\n\n filters[BindingContext.localContext(dateParam)] = interval;\n }\n\n const formattedVal = formatCurrency(val as number, args.entity[originalColumn.DependentColumnsAliases[0]] ?? getCompanyCurrency(args.context));\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_DOCUMENT_JOURNAL,\n context: args.storage.context,\n storage: args.storage,\n filters,\n customQueryString\n });\n }\n };\n };\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n AgingProps.calculateToDay,\n AgingProps.calculationDecisiveDate,\n getDefArgs.reportTypeParam,\n AgingProps.agingIntervals,\n AgingProps.agingIntervalUnit,\n AgingProps.currency,\n AgingProps.documentTypes\n ],\n filterDefinition: {\n [AgingProps.calculationDecisiveDate]: {\n type: FieldType.ComboBox,\n defaultValue: \"DateDue\",\n width: BasicInputSizes.L,\n label: i18next.t(\"Reporting:Aging.DecisiveDate\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Reporting:Aging.FromDateDue\"),\n id: \"DateDue\"\n },\n {\n label: i18next.t(\"Reporting:Aging.FromDateAccTrans\"),\n id: \"DateAccountingTrans\"\n }\n ]\n }\n },\n [getDefArgs.reportTypeParam]: {\n type: FieldType.ComboBox,\n defaultValue: `${getDefArgs.prefix}${AgingReportType.AfterDueDate}`,\n width: BasicInputSizes.L,\n label: i18next.t(\"Reporting:Aging.ReportType\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(`Reporting:Aging.${getDefArgs.prefix}${AgingReportType.AfterDueDate}`),\n id: `${getDefArgs.prefix}${AgingReportType.AfterDueDate}`\n },\n {\n label: i18next.t(`Reporting:Aging.${getDefArgs.prefix}${AgingReportType.BeforeDueDate}`),\n id: `${getDefArgs.prefix}${AgingReportType.BeforeDueDate}`\n }\n ]\n }\n },\n [AgingProps.agingIntervals]: getAgingIntervalFilterDef(getDefArgs),\n [AgingProps.agingIntervalUnit]: getAgingIntervalUnitFilterDef(),\n [AgingProps.currency]: {\n ...CurrencyDef,\n fieldSettings: {\n ...CurrencyDef.fieldSettings,\n preloadItems: true\n },\n label: i18next.t(\"Reporting:Aging.Currency\")\n },\n [AgingProps.calculateToDay]: {\n type: FieldType.Date,\n label: i18next.t(\"Reporting:Aging.CalculateToDay\"),\n defaultValue: () => getUtcDate()\n },\n [AgingProps.documentTypes]: {\n type: FieldType.MultiSelect,\n defaultValue: () => {\n if (getDefArgs.tableId === ReportId.AgingAP) {\n return AgingReceivedTypes;\n } else {\n return AgingIssuedTypes;\n }\n },\n width: BasicInputSizes.L,\n label: i18next.t(\"Reporting:Aging.DocumentType\"),\n fieldSettings: {\n itemsFactory: async (): Promise => {\n const items = getEnumSelectItems(EntityTypeName.DocumentType);\n\n if (getDefArgs.tableId === ReportId.AgingAP) {\n return items.filter(item => AgingReceivedTypes.includes(item.id.toString() as DocumentTypeCode));\n } else {\n return items.filter(item => AgingIssuedTypes.includes(item.id.toString() as DocumentTypeCode));\n }\n }\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n return {\n title: translatedTitle,\n path: getDefArgs.path,\n id: getDefArgs.tableId,\n showDrilldown,\n initialSortBy,\n disableAggregateButton,\n columnOverrides,\n filterBarDef,\n parameters,\n configListItemsOverride,\n defaultReportHierarchy\n };\n};\n\nclass AgingBase extends Page {\n storage: ReportStorage;\n\n constructor(props: IPageProps, context: any) {\n super(props, context);\n\n this.onAfterLoad = this.onAfterLoad.bind(this);\n }\n\n async onAfterLoad(storage: ReportStorage) {\n this.storage = storage;\n\n this.storage.emitter.on(ModelEvent.VariantChanged, this.handleVariantChange);\n agingIntervalOnAfterLoadCallback(storage);\n }\n\n componentWillUnmount() {\n this.storage.emitter.off(ModelEvent.VariantChanged, this.handleVariantChange);\n }\n\n\n handleVariantChange = (): void => {\n agingIntervalOnAfterLoadCallback(this.storage);\n };\n\n\n handleFilterChange = (args: IReportFilterChangeEvent) => {\n agingIntervalHandleFilterChange(args, this.storage);\n\n return args.settings;\n };\n\n getReportViewProps = memoizeOne((): Partial => {\n return {\n onFilterChange: this.handleFilterChange,\n expandable: true\n };\n });\n\n render = () => {\n if (!this.isReady()) {\n return null;\n }\n\n return (\n \n );\n };\n}\n\nexport default AgingBase;\n","import { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { IReportRowDef } from \"@components/smart/smartTable\";\nimport { ICellValueObject } from \"@components/table\";\nimport { IFiscalYearEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, isCashBasisAccountingCompany } from \"@utils/CompanyUtils\";\nimport { isNotDefined } from \"@utils/general\";\n\nimport { REST_API_URL } from \"../../../constants\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { ROUTE_ACCOUNT_ANALYSIS } from \"../../../routes\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport customFetch, { getDefaultPostParams } from \"../../../utils/customFetch\";\nimport { getFiscalYears } from \"../../fiscalYear/FiscalYear.utils\";\nimport { AccountAnalysisProps } from \"../accountAnalysis/AccountAnalysisDef\";\nimport { CommonReportProps } from \"../CommonDefs\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { CUSTOM_BY_DATE_ID, CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport interface IAssetAnalysisAssetData {\n Asset_NumberOurs: string;\n Asset_Name: string;\n InUseAccount_Number: string;\n}\n\n// for drilldown, we need total rows to contain every asset and assets account from that group\nexport const enhanceTotalsWithGroupAssetsData = (rowsData: IReportRowDef[]): Record => {\n const assets: Record = {};\n\n for (const row of rowsData) {\n if (row.Rows?.length === 0) {\n if (row.Value.Asset_NumberOurs) {\n // value row\n assets[row.Value.Asset_NumberOurs as string] = {\n Asset_NumberOurs: row.Value.Asset_NumberOurs as string,\n Asset_Name: row.Value.Asset_Name as string,\n InUseAccount_Number: row.Value.InUseAccount_Number as string\n };\n } else {\n // total row\n row.Value.AssetsData = assets as any;\n }\n\n } else {\n const groupAssets = enhanceTotalsWithGroupAssetsData(row.Rows);\n\n for (const key of Object.keys(groupAssets)) {\n if (!assets[key]) {\n assets[key] = groupAssets[key];\n }\n }\n }\n }\n\n return assets;\n};\n\nexport const getAmountDrilldownFormatter = (useSelectedFiscalYear?: boolean) => {\n return (val: TValue, args: IFormatOptions): ICellValueObject => {\n if (isNotDefined(val)) {\n return null;\n }\n\n const formattedVal = formatCurrency(val, getCompanyCurrency(args.context));\n\n if (isCashBasisAccountingCompany(args.storage.context)) {\n // in cash basis accounting there is no adequate report for drilldown\n return {\n value: formattedVal,\n tooltip: formattedVal\n };\n }\n\n const getAssetFilter = (asset: IAssetAnalysisAssetData) => {\n return `${asset[\"Asset_NumberOurs\"]} - ${asset[\"Asset_Name\"]}`;\n };\n const getAccountFilter = (asset: IAssetAnalysisAssetData) => {\n return asset[\"InUseAccount_Number\"];\n };\n\n // use Assets for total rows (enhanced on FE), or default values returned from BE for value rows\n const assetFilters = args.entity[\"AssetsData\"] ? Object.values(args.entity[\"AssetsData\"]).map((asset) => getAssetFilter(asset as IAssetAnalysisAssetData)) : [getAssetFilter(args.entity as IAssetAnalysisAssetData)];\n const accountFilters = args.entity[\"AssetsData\"] ? Object.values(args.entity[\"AssetsData\"]).map((asset) => getAccountFilter(asset as IAssetAnalysisAssetData)) : [getAccountFilter(args.entity as IAssetAnalysisAssetData)];\n const filters: Record = {\n [BindingContext.localContext(\"Asset\")]: assetFilters,\n [AccountAnalysisProps.accounts]: accountFilters,\n [CommonReportProps.dateRange]: useSelectedFiscalYear ? CUSTOM_DATE_RANGE_ID : CUSTOM_BY_DATE_ID,\n [AccountAnalysisProps.sumAmounts]: true\n };\n\n if (useSelectedFiscalYear) {\n const settings = (args.storage as ReportStorage).settings;\n const fiscalYearId = settings?.[CommonReportProps.fiscalYear];\n const fiscalYear: IFiscalYearEntity = getFiscalYears(args.storage.context).find(fy => fy.Id === fiscalYearId);\n const dateRangeParam: IValueInterval = {\n from: formatDateToDateString(fiscalYear.DateStart),\n to: formatDateToDateString(fiscalYear.DateEnd)\n };\n\n filters[CommonReportProps.dateRangeCustomValue] = dateRangeParam;\n }\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_ACCOUNT_ANALYSIS,\n filters,\n context: args.storage.context,\n storage: args.storage,\n });\n };\n};\n\nexport async function getAssetAnalysisData(hasAccounting: boolean, fiscalYearId: number): Promise {\n let columns = [{\n \"ColumnAlias\": \"Asset_NumberOurs\"\n }, {\n \"ColumnAlias\": \"Asset_CalculatedPrice\"\n }, {\n \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_DepreciationExpense\"\n }];\n\n if (hasAccounting) {\n columns = [\n ...columns,\n {\n \"ColumnAlias\": \"AccountingDepreciationPolicyItemReportView_CalculatedExpense\"\n },\n {\n \"ColumnAlias\": \"DepreciationDiff\"\n }\n ];\n }\n\n\n const assetAnalysisProps: TRecordAny = {\n \"FiscalYearId\": fiscalYearId,\n \"ReportHierarchy\": {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"TaxDepreciationCategory_Name\"\n }\n ],\n \"Columns\": columns,\n \"Aggregations\": []\n }\n };\n\n const response = await customFetch(`${REST_API_URL}/AssetAnalysis`, {\n ...getDefaultPostParams(),\n body: JSON.stringify(assetAnalysisProps)\n });\n\n return response.json();\n\n}","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportRowDef, IReportVariantDef } from \"@components/smart/smartTable\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { BasicInputSizes, ConfigListItemBoundType, FieldType, Sort } from \"../../../enums\";\nimport { getActiveFiscalYear, getActiveFiscalYears, getFiscalYears } from \"../../fiscalYear/FiscalYear.utils\";\nimport { assetIntentFormatter, CommonReportProps } from \"../CommonDefs\";\nimport { IReportTableDefinition, TGetReportConfigListItemOverride } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { enhanceTotalsWithGroupAssetsData, getAmountDrilldownFormatter } from \"./AssetAnalysis.utils\";\nimport { TValue } from \"../../../global.types\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\n\nexport enum AssetAnalysisVariant {\n Inventory = \"-77\",\n Deprecation = \"-78\"\n}\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.AssetAnalysis;\n const title = i18next.t(\"Reporting:AssetAnalysis.Title\");\n const path = \"AssetAnalysis\";\n const initialSortBy = [{ id: \"JournalEntry_DateAccountingTransaction\", sort: Sort.Asc }];\n const hasAccounting = isAccountAssignmentCompany(context);\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.fiscalYear\n ],\n filterDefinition: {\n [CommonReportProps.fiscalYear]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n label: i18next.t(`Reporting:Parameters.${hasAccounting ? \"FiscalYear\" : \"Year\"}`),\n formatter: (val, args): string => {\n const fiscalYears = getFiscalYears(args.storage.context);\n return fiscalYears?.find(fy => fy.Id === val)?.Number;\n },\n defaultValue: (args: IGetValueArgs) => {\n const fiscalYear = getActiveFiscalYear(args.context);\n return fiscalYear?.Id;\n },\n fieldSettings: {\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const fiscalYears = getActiveFiscalYears(args.context, Sort.Desc);\n\n return fiscalYears.map(fiscalYear => {\n return {\n id: fiscalYear.Id,\n label: fiscalYear.Number,\n additionalData: fiscalYear\n };\n });\n }\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const parameters: string[] = [CommonReportProps.fiscalYear];\n\n let deprecationCols = [\n { \"ColumnAlias\": \"Asset_NumberOurs\" },\n { \"ColumnAlias\": \"Asset_Name\" },\n { \"ColumnAlias\": \"Asset_DateFirstPutInUse\" },\n { \"ColumnAlias\": \"Asset_CalculatedPrice\" },\n { \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_AccumulatedDepreciation\" },\n { \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_DepreciationExpense\" },\n { \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_EndValue\" }\n ];\n\n if (hasAccounting) {\n deprecationCols = [\n ...deprecationCols,\n { \"ColumnAlias\": \"AccountingDepreciationPolicyItemReportView_AccumulatedDepreciation\" },\n { \"ColumnAlias\": \"AccountingDepreciationPolicyItemReportView_CalculatedExpense\" },\n { \"ColumnAlias\": \"AccountingDepreciationPolicyItemReportView_EndValue\" },\n { \"ColumnAlias\": \"DepreciationDiff\" },\n { \"ColumnAlias\": \"AssetAccountBalanceReportView_Amount\" }\n ];\n }\n\n let inventoryCols = [\n { \"ColumnAlias\": \"Asset_NumberOurs\" },\n { \"ColumnAlias\": \"Asset_Name\" },\n { \"ColumnAlias\": \"AssetStatus_Name\" },\n { \"ColumnAlias\": \"AssetType_Name\" },\n { \"ColumnAlias\": \"Asset_DateFirstPutInUse\" },\n { \"ColumnAlias\": \"Asset_CalculatedPrice\" }\n ];\n\n if (hasAccounting) {\n inventoryCols = [\n ...inventoryCols,\n { \"ColumnAlias\": \"InUseAccount_Number\" },\n { \"ColumnAlias\": \"AccountingDepreciationPolicy_UsefulLife\" },\n { \"ColumnAlias\": \"AssetAccountBalanceReportView_Amount\" }\n\n ];\n } else {\n inventoryCols = [\n ...inventoryCols,\n { \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_OpeningBalance\" },\n { \"ColumnAlias\": \"TaxDepreciationPolicyItemReportView_EndValue\" }\n ];\n }\n\n const defaultReportVariants: Record = {\n [AssetAnalysisVariant.Deprecation]: {\n ReportHierarchy: {\n \"Aggregate\": true,\n \"Groups\": [\n { \"ColumnAlias\": \"TaxDepreciationCategory_Name\" }\n ],\n \"Columns\": deprecationCols,\n \"Aggregations\": []\n }\n }, [AssetAnalysisVariant.Inventory]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": inventoryCols,\n \"Aggregations\": []\n }\n }\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[AssetAnalysisVariant.Inventory].ReportHierarchy;\n\n const rowsDataFactory = (rowsData: IReportRowDef[]): IReportRowDef[] => {\n enhanceTotalsWithGroupAssetsData(rowsData);\n\n return rowsData;\n };\n\n const configListItemsOverride: TGetReportConfigListItemOverride = {\n Asset_NumberOurs: {\n isRequired: true,\n boundTo: ConfigListItemBoundType.Column\n }\n };\n\n const columnOverrides = {\n Asset_NumberOurs: {\n formatter: assetIntentFormatter\n },\n Asset_CalculatedPrice: {\n formatter: getAmountDrilldownFormatter()\n },\n AssetAccountBalanceReportView_Amount: {\n formatter: getAmountDrilldownFormatter(true)\n },\n DepreciationSettingType_Name: {\n formatter: (val: TValue, args: IFormatOptions): string => {\n /* null means no value, undefined is there for summary rows, which should not be formatted */\n if (val === null) {\n return i18next.t(`FixedAsset:Form.Normal`);\n }\n return val as string;\n }\n }\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, rowsDataFactory,\n configListItemsOverride, columnOverrides, parameters, defaultReportHierarchy, defaultReportVariants\n };\n};","import { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { REST_API_URL } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport DateType, { getUtcDate } from \"../../../types/Date\";\nimport { getDocumentExportFileName, IGetExportFileNameProps } from \"../../documents/Document.utils\";\nimport SendMessageDialog, { IDataBoxSettings, IEmailSettings } from \"../../messages/SendMessageDialog\";\nimport { CommonReportProps } from \"../CommonDefs\";\nimport { PrintReportType } from \"../Report.utils\";\nimport { getBalanceSheetExportUrl } from \"./BalanceSheet\";\nimport { IBalanceSheetCustomData } from \"./BalanceSheet.utils\";\n\n\ninterface IProps extends WithTranslation {\n storage: TableStorage;\n onAfterSend?: () => void;\n}\n\nclass SendBalanceSheetDialog extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n get message() {\n const byDate = this.props.storage.data.entity[CommonReportProps.byDate];\n const company = this.context.getCompany();\n\n return (<>Vážená paní / Vážený pane,

    \n v příloze Vám zasíláme rozvahu společnosti {company.LegalName} ke dni {DateType.format(getUtcDate(byDate))},\n prosím podívejte se.

    \n );\n }\n\n emailSettings: IEmailSettings = {\n sendMessageUrl: `${REST_API_URL}/Dispatch/report/${PrintReportType.BalanceSheet}/EMAIL`\n };\n\n dataBoxSettings: IDataBoxSettings = {\n isReport: true,\n sendMessageUrl: `${REST_API_URL}/Dispatch/report/${PrintReportType.BalanceSheet}/DATABOX`\n };\n\n filename = \"\";\n\n componentDidMount() {\n const company = this.context.getCompany();\n this.emailSettings = {\n ...this.emailSettings,\n defaultEmail: company?.CommunicationContact?.Email\n };\n\n this.dataBoxSettings = {\n ...this.dataBoxSettings,\n defaultId: company.FinancialAdministration?.DataBoxId\n };\n }\n\n onAfterOpen = async (): Promise => {\n const { storage } = this.props;\n\n const isFull = storage.getCustomData().messageReportType === \"full\";\n const opts: IGetExportFileNameProps = {\n queryParams: {\n byDate: formatDateToDateString(storage.data.entity[CommonReportProps.byDate])\n },\n isFull: (!isFull).toString()\n };\n\n this.filename = await getDocumentExportFileName(this.context, \"report\", PrintReportType.BalanceSheet, opts);\n\n this.forceUpdate();\n }\n\n\n handleCloseDialog = () => {\n this.props.storage.setCustomData({ sendingMessageDialogOpen: false });\n this.forceUpdate();\n };\n\n render = () => {\n if (!this.props.tReady || !this.props.storage?.getCustomData().sendingMessageDialogOpen) {\n return null;\n }\n const company = this.context.getCompany();\n const fullReport = this.props.storage.getCustomData().messageReportType === \"full\";\n const byDate = this.props.storage.data.entity[CommonReportProps.byDate];\n const subject = `${company.LegalName}: ${fullReport ? this.props.t(\"DataBox:SendDialog.FullBalanceSheet\") : this.props.t(\"DataBox:SendDialog.ShortBalanceSheet\")} ${DateType.format(getUtcDate(byDate))}`;\n\n const additionalRequestData = {\n BasicView: !fullReport,\n ByDate: byDate\n };\n\n const fileSettings = [{\n previewUrl: getBalanceSheetExportUrl(this.props.storage, !fullReport),\n name: this.filename,\n fileId: BindingContext.NEW_ENTITY_ID_PROP as unknown as number,\n shouldHideCheckBox: true\n }];\n\n return (\n \n );\n };\n}\n\nexport default withTranslation([\"DataBox\"], {withRef: true})(SendBalanceSheetDialog);","import { AlertPosition } from \"@components/alert/Alert\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { IGroupListItemDef } from \"@components/configurationList\";\nimport { getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { SendIcon } from \"@components/icon\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { ISelectionChangeArgs } from \"@components/inputs/select/Select.types\";\nimport { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n IMetaColumnFormatterArgs,\n IReportColumnDef,\n IReportColumnFormatterArgs,\n IReportColumnGroupDef,\n IReportRowDef,\n TMetaColumnFormatter\n} from \"@components/smart/smartTable\";\nimport { updateRows } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { ISort } from \"@components/table\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { ActionTypeCode } from \"@odata/GeneratedEnums\";\nimport { IFormatOptions, logAction } from \"@odata/OData.utils\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\nimport { saveAs } from \"file-saver\";\nimport i18next from \"i18next\";\nimport { isEqual } from \"lodash\";\nimport React from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { SegmentedButton } from \"../../../components/button/SegmentedButton\";\nimport IconSelect from \"../../../components/inputs/select/IconSelect\";\nimport { REST_API_URL } from \"../../../constants\";\nimport {\n BasicInputSizes,\n BorderSize,\n FieldType,\n QueryParam,\n Sort,\n Status,\n ToolbarItemType,\n ValueType\n} from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport { ROUTE_ACCOUNT_ANALYSIS } from \"../../../routes\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport CurrencyType from \"../../../types/Currency\";\nimport DateType, { DATE_MIN, DateFormat, DisplayFormat, getUtcDate } from \"../../../types/Date\";\nimport LocalSettings from \"../../../utils/LocalSettings\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { TableButtonsAction } from \"../../../views/table/TableToolbar.utils\";\nimport { IProps as IPageProps } from \"../../Page\";\nimport { AccountAnalysisProps } from \"../accountAnalysis/AccountAnalysisDef\";\nimport {\n CommonReportProps,\n getByDateDef,\n getComparisonDef,\n getSplitIntoPeriodsDef,\n getUnitsDef,\n ReportDisplayType,\n ReportPeriods,\n WITH_DELTA_SUFFIX\n} from \"../CommonDefs\";\nimport FiscalYearDependentReport, { FiscalYearParameterType } from \"../FiscalYearDepenedentReport\";\nimport { IncomeStatementDelta } from \"../incomeStatement/IncomeStatement\";\nimport {\n commonReportTranslations,\n getLabelDrilldownFilters,\n getReportDefinition,\n IGetReportDefVal,\n IReportTableDefinition,\n labelColumnNamePrefix,\n NumberAggregationFunction,\n ReportColumnType,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TReportColumnOverrides,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { IReportFilterChangeEvent, IReportViewBaseProps } from \"../ReportView\";\nimport {\n enhanceRowsWithIsAsset,\n getAllAccounts,\n getColumnGroupForColumn,\n IBalanceSheetCustomData\n} from \"./BalanceSheet.utils\";\nimport SendBalanceSheetDialog from \"./sendBalanceSheetDialog\";\n\nconst SHORT_SHEET_OPEN_LINES = [\"1\", \"3\", \"37\", \"46\", \"82\", \"83\", \"111\"];\n\nexport const BalanceSheetProps = {\n showOnlyNettoColumn: BindingContext.localContext(\"ShowOnlyNettoColumn\")\n};\n\nconst tableId = ReportId.BalanceSheet;\nconst initialSortBy = [{ id: \"Line\", sort: Sort.Asc }];\n\nexport const getBalanceSheetExportUrl = (storage: TableStorage, isShortReport: boolean) => {\n const company = storage.context.getCompany().Id;\n const byDate = formatDateToDateString(storage.data.entity[CommonReportProps.byDate]);\n\n return `${REST_API_URL}/BalanceSheetPdfExport/${company}/${byDate}/${isShortReport}?CompanyId=${company}`;\n};\n\nexport const toggleGroupsByReportDisplayType = (storage: ReportStorage, key: ReportDisplayType, shortValues: string[]) => {\n // todo we can't allow to call this before the table is loaded\n const state = storage.tableAPI.getState();\n const rows = updateRows({\n rows: state.rows,\n rowsOrder: state.rowsOrder,\n updateFn: (row, level) => {\n return {\n ...row,\n open: key === ReportDisplayType.Full ? !!row.rows : shortValues.includes(row.values?.Line as string)\n };\n }\n });\n\n storage.tableAPI.setState({\n rows\n });\n storage.refresh();\n};\n\nexport const getReportDisplayType = (storage: ReportStorage): ReportDisplayType => {\n return LocalSettings.get(storage.data.definition.id)?.customData?.reportDisplayType as ReportDisplayType;\n};\n\nexport const setReportDisplayType = (storage: ReportStorage, reportDisplayType: ReportDisplayType): void => {\n LocalSettings.set(storage.data.definition.id, { customData: { reportDisplayType: reportDisplayType } });\n};\n\nexport const handleReportDisplayTypeChange = (key: ReportDisplayType, storage: ReportStorage, initialSortBy: ISort[], shortValues: string[]) => {\n const tableState = storage.tableAPI.getState();\n\n if (!tableState.sort || isEqual(tableState.sort, initialSortBy)) {\n toggleGroupsByReportDisplayType(storage, key as ReportDisplayType, shortValues);\n } else {\n storage.tableAPI.setState({\n sort: initialSortBy\n });\n storage.tableAPI.reloadTable();\n }\n\n let settings = storage.settings;\n\n // only trigger data reload if filters changed\n if (settings.Filter && Object.keys(settings.Filter).length > 0) {\n storage.clearFilters();\n settings = {\n ...settings,\n Filter: null\n };\n }\n\n setReportDisplayType(storage, key);\n LocalSettings.remove(storage.data.definition.id, \"openedRowsIds\");\n\n storage.settings = settings;\n};\n\nexport const getColumnBorder = (args: IReportColumnFormatterArgs) => {\n const isLast = args.index === args.allColumns.length - 1;\n let border = BorderSize.None;\n\n if (isLast) {\n return border;\n }\n\n if (!args.settings[CommonReportProps.comparison]) {\n if (args.isInMetaColumn) {\n border = BorderSize.Thick;\n }\n } else if (args.isInMetaColumn && args.metaColumnIndex % 2 === 0) {\n border = BorderSize.Thin;\n } else if (!args.settings[CommonReportProps.showDelta] || args.settings[CommonReportProps.showDelta] === IncomeStatementDelta.No) {\n if (args.isInMetaColumn && args.metaColumnIndex % 2 === 1) {\n border = BorderSize.Thick;\n }\n } else if (args.column.type === ReportColumnType.Delta) {\n border = BorderSize.Thick;\n }\n\n return border;\n};\n\nexport const getPeriodsSplitValues = (column: IReportColumnDef | IReportColumnGroupDef, settings: IEntity) => {\n const additionalInfoDate = column.AdditionalInfo?.LastDayOfPeriod && getUtcDate(column.AdditionalInfo?.LastDayOfPeriod);\n const selectedPeriods = settings[CommonReportProps.splitIntoPeriods];\n\n let label = column.Label;\n\n if (!column.AdditionalInfo || !column.AdditionalInfo.hasOwnProperty(\"LastDayOfPeriod\")) {\n return { label, info: null };\n }\n\n const info = column.AdditionalInfo?.LastDayOfPeriod\n ? i18next.t(\"Reporting:BalanceSheet.StateForDay\",\n { day: DateType.format(additionalInfoDate, DisplayFormat.DateMedium) })\n : i18next.t(\"Reporting:BalanceSheet.OutsideOfRange\");\n\n if (additionalInfoDate) {\n if (selectedPeriods === ReportPeriods.Months) {\n label += ` \\n${DateType.format(additionalInfoDate, DateFormat.month)}`.toUpperCase();\n } else if (selectedPeriods === ReportPeriods.Periods) {\n label += ` \\n${column.AdditionalInfo.PeriodNumber}. ${i18next.t(\"Reporting:BalanceSheet.Period\")}`;\n }\n }\n\n return { label, info };\n};\n\nexport const metaColumnFormatter: TMetaColumnFormatter = (args: IMetaColumnFormatterArgs) => {\n const { label, info } = getPeriodsSplitValues(args.metaColumn, args.settings);\n const border = getColumnBorder({\n column: args.column, index: args.columnIndex,\n isInMetaColumn: true,\n metaColumnIndex: args.index,\n allColumns: args.allColumns,\n settings: args.settings\n });\n\n return { label, info, border };\n};\n\nexport const columnBorderFormatter = (args: IReportColumnFormatterArgs) => {\n const column = { ...args.column };\n\n column.border = getColumnBorder(args);\n\n return column;\n};\n\nexport const resetReportDisplayType = (storage: ReportStorage) => {\n setReportDisplayType(storage, ReportDisplayType.None);\n storage.refresh();\n};\n\nexport const getReportDisplayTypeToolbarButtons = (onChange: (key: string) => void, displayType: ReportDisplayType): IToolbarItem => {\n return {\n id: \"reportType\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n return ;\n }\n };\n};\n\nconst getDefinition = (): IReportTableDefinition => {\n const title = i18next.t(\"Reporting:BalanceSheet.Title\");\n const path = \"BalanceSheet\";\n const disableAggregateButton = true;\n const parameters: string[] = [\n CommonReportProps.byDate,\n BalanceSheetProps.showOnlyNettoColumn,\n CommonReportProps.comparison,\n CommonReportProps.showDelta,\n CommonReportProps.splitIntoPeriods\n ];\n const updateFiltersFromResponse = true;\n\n const configListItemsOverride: TGetReportConfigListItemOverride = (item: IGroupListItemDef): TReportConfigListItemOverride => {\n switch (true) {\n case item.id === \"Section\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n case item.id === \"Line\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Columns\n\n };\n case item.id === \"Number\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Columns\n };\n case item.id === \"Values\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n areItemsReadOnly: true,\n group: ReportConfigGroup.Aggregations\n };\n case item.id.startsWith(labelColumnNamePrefix):\n return {\n ...item,\n allowedGroups: [ReportConfigGroup.Groups, ReportConfigGroup.Columns, ReportConfigGroup.AvailableColumns]\n };\n }\n\n return item;\n };\n\n const defaultReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Section\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Line\"\n },\n {\n \"ColumnAlias\": \"Number\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"Values\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n\n };\n\n\n /** Backend sends account ids that are needed for drilldown only for the leaves\n * => we need to collect those data and propagate them to all levels */\n const rowsDataFactory = (rowsData: IReportRowDef[]): IReportRowDef[] => {\n if (rowsData[0]) {\n enhanceRowsWithIsAsset(rowsData[0], true);\n }\n if (rowsData[1]) {\n enhanceRowsWithIsAsset(rowsData[1], false);\n }\n\n // clear cache for getColumnGroupForColumn, in case column ids has changed\n getColumnGroupForColumn.cache.clear();\n return rowsData;\n };\n\n\n // TODO add handling for the special row with custom rules\n const getColumnOverrideFormatter = (columnId: string) => {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n const usedColumnId = columnId.startsWith(\"Delta\") ? \"Netto\" : columnId;\n const formattedVal = CurrencyType.format(val, {\n currency: args.entity[\"JournalEntry_CurrencyCode\"] ?? \"CZK\",\n scale: currencyUnit({ storage: args.storage as ReportStorage, settings: args.storage.data.entity })\n });\n\n // special rows (lines 82, 83, 102) shouldn't have a drilldown\n const isRowWithoutDrilldown = [82, 83, 102].includes(args.entity.Line);\n\n if (!val || val === 0 || isRowWithoutDrilldown) {\n return formattedVal;\n }\n\n const accounts: string[] = [];\n\n if (usedColumnId.startsWith(\"Netto\") && !args.entity[\"NettoAccounts\"]) {\n // combine Netto accounts from Brutto and Correction accounts\n accounts.push(...getAllAccounts(usedColumnId.replace(\"Netto\", \"Brutto\"), args.entity));\n accounts.push(...getAllAccounts(usedColumnId.replace(\"Netto\", \"Correction\"), args.entity));\n } else {\n accounts.push(...getAllAccounts(usedColumnId, args.entity));\n }\n\n const filters: TRecordAny = {\n [CommonReportProps.dateRange]: CUSTOM_DATE_RANGE_ID,\n [BindingContext.localContext(\"Account_Number\")]: accounts,\n [AccountAnalysisProps.drilldown]: args.entity.IsAsset ? \"BsAssets\" : \"BsLiabilies\",\n [AccountAnalysisProps.closingAccounts]: \"DoNotShow\",\n [AccountAnalysisProps.sumAmounts]: true,\n ...getLabelDrilldownFilters(args.entity)\n };\n\n let dateStart: Date | string;\n let dateEnd: Date | string;\n\n if (columnId.startsWith(\"Delta\")) {\n const firstNettoId = Object.keys(args.entity).find(key => key.startsWith(\"Netto_\") && !key.includes(\"Comp\"));\n const firstColGroup = getColumnGroupForColumn(firstNettoId, args.storage as ReportStorage);\n const compColGroup = getColumnGroupForColumn(columnId.replace(\"Delta\", \"Netto\") + \"_Comp\", args.storage as ReportStorage);\n\n dateStart = compColGroup.AdditionalInfo.LastDayOfPeriod;\n dateEnd = firstColGroup.AdditionalInfo.LastDayOfPeriod;\n } else {\n const columnGroup = getColumnGroupForColumn(usedColumnId, args.storage as ReportStorage);\n\n dateStart = DATE_MIN;\n dateEnd = columnGroup.AdditionalInfo.LastDayOfPeriod;\n }\n\n const dateRangeParam: IValueInterval = {\n from: formatDateToDateString(dateStart),\n to: formatDateToDateString(dateEnd)\n };\n\n filters[CommonReportProps.dateRangeCustomValue] = dateRangeParam;\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_ACCOUNT_ANALYSIS,\n context: args.storage.context,\n storage: args.storage,\n filters\n });\n }\n };\n };\n\n const columnOverrides: TReportColumnOverrides = (columnId: string): IFieldInfoProperties => {\n if ([\"Brutto\", \"Correction\", \"Netto\", \"Delta\"].some(key => columnId.startsWith(key))) {\n return getColumnOverrideFormatter(columnId);\n }\n\n return null;\n };\n\n const currencyUnit = (args: IGetReportDefVal) => {\n return getNestedValue(CommonReportProps.units, args.storage.data.entity);\n };\n\n const onAfterTableLoad = (storage: ReportStorage) => {\n const reportDisplayType = getReportDisplayType(storage);\n\n if (reportDisplayType !== ReportDisplayType.None) {\n toggleGroupsByReportDisplayType(storage, reportDisplayType, SHORT_SHEET_OPEN_LINES);\n }\n };\n\n const onGroupToggle = (storage: ReportStorage) => {\n resetReportDisplayType(storage);\n };\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.byDate,\n BalanceSheetProps.showOnlyNettoColumn,\n CommonReportProps.comparison,\n CommonReportProps.splitIntoPeriods,\n CommonReportProps.units\n ],\n filterDefinition: {\n [CommonReportProps.byDate]: getByDateDef(),\n [BalanceSheetProps.showOnlyNettoColumn]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.L,\n defaultValue: true,\n label: i18next.t(\"Reporting:BalanceSheet.ShowOnlyNettoColumn\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Reporting:BalanceSheet.Netto\"),\n id: true\n },\n {\n label: i18next.t(\"Reporting:BalanceSheet.ShowAll\"),\n id: false\n }\n ]\n }\n },\n [CommonReportProps.comparison]: {\n ...getComparisonDef(true)\n },\n [CommonReportProps.splitIntoPeriods]: getSplitIntoPeriodsDef(),\n [CommonReportProps.units]: getUnitsDef()\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n // filters that are not dynamic and can be specified before hand\n // rest are created AFTER the data are loaded from BE\n defaultFilters: [\n BindingContext.localContext(\"Section\"),\n BindingContext.localContext(\"Number\"),\n BindingContext.localContext(\"Line\")\n ],\n filterDefinition: {\n [BindingContext.localContext(\"Section\")]: {\n label: i18next.t(\"Reporting:Columns.Section\"),\n valueType: ValueType.String,\n isValueHelp: true\n },\n [BindingContext.localContext(\"Number\")]: {\n label: i18next.t(\"Reporting:Columns.Number\"),\n valueType: ValueType.String,\n isValueHelp: true\n },\n [BindingContext.localContext(\"Line\")]: {\n label: i18next.t(\"Reporting:Columns.Line\"),\n valueType: ValueType.String,\n isValueHelp: true\n }\n }\n }\n ];\n\n return {\n title, path, id: tableId,\n onAfterTableLoad, currencyUnit, rowsDataFactory,\n columnOverrides,\n columnFormatter: columnBorderFormatter, metaColumnFormatter,\n initialSortBy, onGroupToggle, disableAggregateButton,\n filterBarDef, parameters, defaultReportHierarchy,\n configListItemsOverride, updateFiltersFromResponse\n };\n};\n\ninterface IProps extends IPageProps, WithAlert {\n\n}\n\nclass BalanceSheet extends React.PureComponent {\n storage: ReportStorage;\n\n onAfterLoad = (storage: ReportStorage) => {\n this.storage = storage;\n\n setReportDisplayType(this.storage, getQueryParameters()?.[QueryParam.ReportDisplayType] as ReportDisplayType ?? getReportDisplayType(storage) ?? ReportDisplayType.Short);\n\n this.storage.emitter.on(ModelEvent.VariantChanged, this.handleVariantChange);\n this.handleVariantChange();\n };\n\n componentWillUnmount() {\n this.storage.emitter.off(ModelEvent.VariantChanged, this.handleVariantChange);\n }\n\n handleVariantChange = (): void => {\n const showDelta = this.storage.getValueByPath(CommonReportProps.comparison)?.includes(WITH_DELTA_SUFFIX);\n this.storage.settings = {\n ...(this.storage.settings ?? {}),\n [CommonReportProps.showDelta]: showDelta\n };\n };\n\n handleReportDisplayTypeChange = (key: string) => {\n handleReportDisplayTypeChange(key as ReportDisplayType, this.storage, initialSortBy, SHORT_SHEET_OPEN_LINES);\n\n this.forceUpdate();\n };\n\n handleOpenSendDialog = (args: ISelectionChangeArgs) => {\n this.storage.setCustomData({ sendingMessageDialogOpen: true, messageReportType: args.value as string });\n this.forceUpdate();\n };\n\n get sendMessageToolbarMenu(): IToolbarItem {\n return {\n id: \"sendMessage\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n const { rowCount, loaded } = this.storage.tableAPI?.getState() ?? {};\n return }\n headerText={this.props.t(\"DataBox:SendDialog.Send\")}\n iconButtonProps={{ style: { order: 4, marginLeft: \"2px\" } }}\n isDisabled={!rowCount || !loaded}\n items={[{\n id: \"short\",\n iconName: \"ExportReportShort\",\n label: this.props.t(\"Components:Table.PdfExportReportShort\")\n }, {\n id: \"full\",\n iconName: \"ExportReportFull\",\n label: this.props.t(\"Components:Table.PdfExportReportFull\")\n }]}/>;\n }\n };\n }\n\n getCustomToolbarDefinitions = () => {\n return [\n getReportDisplayTypeToolbarButtons(this.handleReportDisplayTypeChange, getReportDisplayType(this.storage)),\n this.sendMessageToolbarMenu\n ];\n };\n\n handleExpand = () => {\n resetReportDisplayType(this.storage);\n };\n\n handleSendMessageSuccess = () => {\n this.props.setAlert({\n status: Status.Success,\n title: this.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.storage.t(\"DataBox:SendDialog.MessageHasBeenSent\")\n });\n };\n\n handleFilterChange = (args: IReportFilterChangeEvent) => {\n if (args.filterChange.bindingContext.getPath() === CommonReportProps.comparison) {\n args.settings[CommonReportProps.showDelta] = !!args.filterChange.additionalData?.showDelta;\n args.settings[CommonReportProps.comparison] = (args.filterChange.value as string)?.replace(WITH_DELTA_SUFFIX, \"\");\n }\n\n return args.settings;\n };\n\n handlePrintReportButtonClick = (buttonAction: TableButtonsAction) => {\n const isShortReport = buttonAction === TableButtonsAction.PdfExportReportShort;\n const url = getBalanceSheetExportUrl(this.storage, isShortReport);\n\n logAction({\n actionId: this.storage.id,\n actionType: ActionTypeCode.PDFExport,\n detail: JSON.stringify({\n CompanyId: this.storage.settings.CompanyId,\n IsShortReport: isShortReport\n })\n });\n\n saveAs(url);\n };\n\n getReportViewProps = memoizeOne((): Partial => {\n return {\n customToolbarButtons: this.getCustomToolbarDefinitions,\n onFilterChange: this.handleFilterChange,\n onExpandAll: this.handleExpand,\n onCollapseAll: this.handleExpand,\n onPrintReportButtonClick: this.handlePrintReportButtonClick,\n showPrintReportButtons: true,\n expandable: true\n };\n });\n\n render = () => {\n return (\n <>\n \n {this.storage?.getCustomData().sendingMessageDialogOpen &&\n }\n {this.props.alert}\n \n );\n };\n}\n\nexport default withRouter(withTranslation([...commonReportTranslations, \"DataBox\"])(withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom,\n style: { width: \"400px\" }\n})(BalanceSheet)));","import { getCleanColumnId, IReportColumnGroupDef, IReportRowDef } from \"@components/smart/smartTable\";\nimport { IReportStorageDefaultCustomData, ReportStorage } from \"../ReportStorage\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport memoize from \"../../../utils/memoize\";\n\nexport interface IBalanceSheetCustomData extends IReportStorageDefaultCustomData {\n sendingMessageDialogOpen?: boolean;\n messageReportType?: string;\n}\n\nexport const enhanceRowsWithIsAsset = (row: IReportRowDef, isAsset: boolean) => {\n row.Value.IsAsset = isAsset;\n\n for (const child of row.Rows) {\n enhanceRowsWithIsAsset(child, isAsset);\n }\n};\n\nexport const getColumnGroupForColumn = memoize((columnId: string, storage: ReportStorage): IReportColumnGroupDef => {\n const columnGroups: IReportColumnGroupDef[] = storage.tableAPI.getState().data.ColumnGroups;\n\n return columnGroups.find(colGroup => colGroup.ColumnsInGroup.includes(getCleanColumnId(columnId)));\n});\n\nexport const getAccountsPropNames = (columnId: string) => {\n const splitted = columnId.split(\"_\");\n const isComp = splitted.slice(-1)[0] === \"Comp\";\n\n splitted[0] += \"Accounts\";\n\n return {\n // without date part\n generic: splitted[0] + (isComp ? \"_Comp\" : \"\"),\n // with date part\n extended: splitted.join(\"_\")\n };\n};\n\nexport const getAllAccounts = (id: string, entity: IEntity) => {\n const accounts: string[] = [];\n const props = getAccountsPropNames(id);\n\n if (entity[props.generic]) {\n accounts.push(...entity[props.generic]);\n }\n\n if (props.extended !== props.generic && entity[props.extended]) {\n accounts.push(...entity[props.extended]);\n }\n\n return accounts;\n};","import {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportVariantDef } from \"@components/smart/smartTable\";\nimport { ISort } from \"@components/table\";\nimport { hasEverBeenVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../enums\";\nimport { getDocumentNumberOursOverride } from \"../CommonDefs\";\nimport { composedDateRangeOnBeforeLoadCallback } from \"../customFilterComponents/ComposedDateRange\";\nimport {\n cbaReportCommonParams,\n getCbaReportParamsDef,\n IReportTableDefinition,\n NumberAggregationFunction\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\n\nexport enum CbaEntryLedgerVariants {\n Evala = \"-87\",\n CZK = \"-92\"\n}\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.CbaEntryLedger;\n const title = i18next.t(\"Reporting:CbaEntryLedger.Title\");\n const path = \"CbaEntryLedger\";\n const initialSortBy = [\n { id: \"CbaEntry_Date\", sort: Sort.Desc },\n { id: \"CbaEntryType_Name\", sort: Sort.Asc }\n ] as ISort[];\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [...cbaReportCommonParams],\n filterDefinition: {\n ...getCbaReportParamsDef(tableId)\n },\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ]\n ;\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage);\n };\n\n const parameters: string[] = [...cbaReportCommonParams];\n\n const isVatRegistered = hasEverBeenVatRegisteredCompany(context);\n\n const defaultReportVariants: Record = {\n [CbaEntryLedgerVariants.CZK]: {\n ReportHierarchy: {\n \"Aggregate\": true,\n \"Groups\": [\n { \"ColumnAlias\": \"CbaEntryType_Name\" }\n ],\n \"Columns\": [\n { \"ColumnAlias\": \"CbaEntry_Date\" },\n { \"ColumnAlias\": \"CbaEntry_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"PairedDocument_NumberOurs\" },\n { \"ColumnAlias\": \"CbaEntry_Description\" }\n ],\n \"Aggregations\": [{\n ColumnAlias: \"CbaEntry_AmountTaxed\",\n AggregationFunction: NumberAggregationFunction.Sum\n }, {\n \"ColumnAlias\": \"CbaEntry_AmountNonTaxed\",\n AggregationFunction: NumberAggregationFunction.Sum\n }]\n }\n }, [CbaEntryLedgerVariants.Evala]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"CbaEntryType_Name\" },\n { \"ColumnAlias\": \"CbaEntry_Date\" },\n { \"ColumnAlias\": \"CbaEntry_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"PairedDocument_NumberOurs\" },\n { \"ColumnAlias\": \"CbaEntry_TransactionAmountCleared\" },\n { \"ColumnAlias\": \"CbaEntry_AmountTaxed\" },\n { \"ColumnAlias\": \"CbaEntry_AmountNonTaxed\" },\n ...(isVatRegistered ? [{ \"ColumnAlias\": \"CbaEntry_AmountVat\" }] : []),\n { \"ColumnAlias\": \"CbaEntry_Description\" }\n ],\n \"Aggregations\": []\n }\n }\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[CbaEntryLedgerVariants.Evala].ReportHierarchy;\n\n const columnOverrides = {\n CbaEntry_NumberOurs: getDocumentNumberOursOverride({\n documentTypeProperty: \"CbaEntry_DocumentTypeCode\",\n documentIdProperty: \"CbaEntry_DocumentId\"\n }),\n PairedDocument_NumberOurs: getDocumentNumberOursOverride({\n documentTypeProperty: \"PairedDocument_DocumentTypeCode\",\n documentIdProperty: \"PairedDocument_Id\"\n })\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef,\n onBeforeLoad, columnOverrides, parameters, defaultReportHierarchy, defaultReportVariants\n };\n }\n;","import { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportRowDef, IReportVariantDef, ISmartReportTableRow } from \"@components/smart/smartTable\";\nimport { ISort } from \"@components/table\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency, hasEverBeenVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort, Status } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport CurrencyType from \"../../../types/Currency\";\nimport { CommonReportProps, getDocumentNumberOursOverride } from \"../CommonDefs\";\nimport { composedDateRangeOnBeforeLoadCallback } from \"../customFilterComponents/ComposedDateRange\";\nimport {\n cbaReportCommonParams,\n getCbaReportParamsDef,\n IGetReportDefVal,\n IReportTableDefinition\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\n\n\nexport enum CbaIncomeExpenseVariants {\n CZK = \"-90\",\n Transaction = \"-86\"\n}\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.CbaIncomeExpense;\n const title = i18next.t(\"Reporting:CbaIncomeExpense.Title\");\n const path = \"CbaIncomeExpenseOverview\";\n const initialSortBy = [\n { id: \"CbaIncomeExpenseOverview_DocumentDate\", sort: Sort.Desc }\n ] as ISort[];\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [...cbaReportCommonParams],\n filterDefinition: {\n ...getCbaReportParamsDef(tableId)\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }];\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage);\n };\n const parameters: string[] = [...cbaReportCommonParams];\n\n const isVatRegistered = hasEverBeenVatRegisteredCompany(context);\n\n const defaultReportVariants: Record = {\n [CbaIncomeExpenseVariants.Transaction]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_DocumentDate\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_NumberOurs\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_Description\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_TransactionBankAmount\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_TransactionCashBoxAmount\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_TransactionAmountTaxed\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_TransactionAmountNonTaxed\" },\n ...(isVatRegistered ? [{ \"ColumnAlias\": \"CbaIncomeExpenseOverview_AmountVat\" }] : []),\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_TransactionAmountRemaining\" }\n ],\n \"Aggregations\": []\n }\n }, [CbaIncomeExpenseVariants.CZK]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_DocumentDate\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_NumberOurs\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_Description\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_BankAmount\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_CashBoxAmount\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_AmountTaxed\" },\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_AmountNonTaxed\" },\n ...(isVatRegistered ? [{ \"ColumnAlias\": \"CbaIncomeExpenseOverview_AmountVat\" }] : []),\n { \"ColumnAlias\": \"CbaIncomeExpenseOverview_AmountRemaining\" }\n ],\n \"Aggregations\": []\n }\n }\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[CbaIncomeExpenseVariants.Transaction].ReportHierarchy;\n\n const currencyUnit = (args: IGetReportDefVal) => {\n return getNestedValue(CommonReportProps.units, args.storage.data.entity);\n };\n\n const columnOverrides = (columnId: string): IFieldInfoProperties => {\n const colId = columnId.replace(\"CbaIncomeExpenseOverview_\", \"\");\n const formatCurrency = (val: number, args: IFormatOptions, columnId: string) => {\n const storage = args.storage as ReportStorage;\n const currencyCode = args.entity.CbaIncomeExpenseOverview_TransactionCurrencyCode;\n return CurrencyType.format(val, {\n currency: columnId.startsWith(\"Transaction\") ? currencyCode : getCompanyCurrency(args.context),\n scale: currencyUnit({ storage, settings: {} })\n });\n };\n\n if (colId === \"AmountRemaining\" || colId === \"TransactionAmountRemaining\") {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n if (isNotDefined(val)) {\n return \"\";\n }\n const formattedVal = formatCurrency(val as number, args, colId);\n return {\n value: ({formattedVal}),\n tooltip: formattedVal\n };\n }\n };\n } else if ([\"AmountTaxed\", \"AmountNonTaxed\", \"AmountVat\", \"TransactionAmountTaxed\", \"TransactionAmountNonTaxed\", \"TransactionAmountVat\"].includes(colId)) {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n const typedVal = val as number;\n const formattedVal = formatCurrency(typedVal, args, colId);\n if (typedVal > 0) {\n return {\n value: ({formattedVal}),\n tooltip: formattedVal\n };\n }\n return formattedVal;\n }\n };\n } else if ([\"BankAmount\", \"CashBoxAmount\", \"TransactionBankAmount\", \"TransactionCashBoxAmount\"].includes(colId)) {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n const typedVal = val as number;\n const formattedVal = formatCurrency(typedVal, args, colId);\n if (typedVal > 0) {\n return {\n value: ({formattedVal}),\n tooltip: formattedVal\n };\n } else if (typedVal < 0) {\n return {\n value: ({formattedVal}),\n tooltip: formattedVal\n };\n }\n return formattedVal;\n }\n };\n } else if (colId === \"NumberOurs\") {\n return getDocumentNumberOursOverride({\n documentTypeProperty: \"CbaIncomeExpenseOverview_DocumentTypeCode\",\n documentIdProperty: \"CbaIncomeExpenseOverview_DocumentId\"\n });\n }\n return null;\n };\n\n const rowFormatter = (rowDef: IReportRowDef): Partial => {\n const newRow: Partial = {};\n const amountRemaining = rowDef.Value.CbaIncomeExpenseOverview_AmountRemaining;\n const transAmountRemaining = rowDef.Value.CbaIncomeExpenseOverview_TransactionAmountRemaining;\n if ((isDefined(amountRemaining) && amountRemaining !== 0) ||\n (isDefined(transAmountRemaining) && transAmountRemaining !== 0)) {\n newRow.statusHighlight = Status.Warning;\n }\n\n return newRow;\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, currencyUnit,\n onBeforeLoad, columnOverrides, parameters, defaultReportHierarchy, defaultReportVariants,\n rowFormatter\n };\n};","import styled from \"styled-components/macro\";\nimport { T_TITLE_4_NORMAL } from \"../../../global.style\";\n\nexport const StyledWriteLineGroup = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const WriteLineWrapper = styled.div`\n &:not(:first-child) {\n margin-left: 8px;\n }\n \n ${T_TITLE_4_NORMAL};\n`;\n\nexport const ActionsWrapper = styled.div`\n display: flex;\n margin-left: 8px;\n`;","import React from \"react\";\nimport { ActionsWrapper, StyledWriteLineGroup, WriteLineWrapper } from \"./WriteLineGroup.styles\";\nimport { IconButton } from \"../../button\";\nimport { ZoomInIcon, ZoomOutIcon } from \"../../icon\";\nimport NumericWriteLine from \"./NumericWriteLine\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { isDefined } from \"@utils/general\";\nimport NumberType from \"../../../types/Number\";\nimport { IValidationError } from \"../../../model/Validator.types\";\n\ninterface IProps extends WithTranslation {\n value: string[];\n disabledValues: boolean[];\n onChange: (values: string[], lengthChange: boolean) => void;\n width?: string;\n isLight?: boolean;\n defaultValue?: string;\n errors?: IValidationError[];\n min?: number;\n max?: number;\n}\n\nclass WriteLineGroup extends React.PureComponent {\n static defaultProps = {\n defaultValue: \"0\",\n min: 1\n };\n\n handleValueChange = (value: number, index: number) => {\n const newValues = [...this.props.value];\n\n newValues[index] = value?.toString();\n\n this.props.onChange(newValues, false);\n };\n\n renderValue = (value: string, index: number, isDisabled: boolean, error: IValidationError) => {\n return (\n \n {\n this.handleValueChange(args.value, index);\n }}/>\n \n );\n };\n\n handleRemoveClick = () => {\n this.props.onChange(this.props.value.slice(0, -1), true);\n };\n\n handleAddClick = () => {\n this.props.onChange([...this.props.value, this.props.value?.length > 0 ? this.props.value.slice(-1)[0] : this.props.defaultValue], true);\n };\n\n render() {\n return (\n \n {this.props.value.map((value, index) => {\n return this.renderValue(value, index, !!this.props.disabledValues?.[index], this.props.errors?.[index]);\n })}\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(WriteLineGroup);","import { IFieldDefFn, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { capitalize } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport { debounce, isEqual } from \"lodash\";\nimport React from \"react\";\nimport { TestContext } from \"yup\";\n\nimport Checkbox, { ICheckboxChange } from \"../../../components/inputs/checkbox/Checkbox\";\nimport Field from \"../../../components/inputs/field/Field\";\nimport WriteLineGroup from \"../../../components/inputs/writeLine/WriteLineGroup\";\nimport { INPUT_DEBOUNCE_TIME } from \"../../../constants\";\nimport { BasicInputSizes, FieldType, LabelStatus, ValidatorType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport NumberType from \"../../../types/Number\";\nimport LocalSettings from \"../../../utils/LocalSettings\";\nimport { AgingProps, AgingReportType, IGetAgingDefinition } from \"../aging/AgingBase\";\nimport { ReportId } from \"../ReportIds\";\nimport { IReportStorageDefaultCustomData, ReportStorage } from \"../ReportStorage\";\nimport { IReportFilterChangeEvent } from \"../ReportView\";\n\nexport const afterDueDateDefaultRange = [\"30\", \"30\", \"30\"];\nconst beforeDueDateDefaultRange = [\"7\", \"7\", \"7\"];\n\ninterface IAgingIntervalCustomData extends IReportStorageDefaultCustomData {\n sameRange?: boolean;\n disabledIntervals?: boolean[];\n}\n\nconst getIntervalErrorMessage = (value: string) => {\n const number = NumberType.parse(value);\n let message;\n\n if (isNaN(number)) {\n message = i18next.t(\"Common:Validation.MustBeNumber\");\n } else if (number <= 0) {\n message = i18next.t(\"Common:Validation.SmallNumber\", { min: 1 });\n }\n\n return message ? { message } : null;\n};\n\nconst getCorrectIntervals = (storage: ReportStorage, intervals: string[], sameRange: boolean) => {\n const disabledIntervals: boolean[] = [];\n let correctIntervals = intervals;\n const copyInterval = intervals[0];\n\n if (sameRange) {\n if (!getIntervalErrorMessage(copyInterval)) {\n correctIntervals = new Array(intervals.length).fill(intervals[0]);\n }\n\n for (let i = 0; i < intervals.length; i++) {\n disabledIntervals.push(i !== 0);\n }\n }\n\n return {\n intervals: correctIntervals, disabledIntervals\n };\n};\n\nconst setAgingIntervalsSettings = (value: string[], storage: ReportStorage) => {\n const sameRange = storage.getCustomData().sameRange;\n const { intervals: correctIntervals, disabledIntervals } = getCorrectIntervals(storage, value, sameRange);\n\n storage.setCustomData({ disabledIntervals });\n storage.settings = {\n ...storage.settings,\n [AgingProps.agingIntervals]: correctIntervals\n };\n\n // call storage.handleFilterChange to properly store agingIntervals in LocalSettings\n storage.handleFilterChange({\n bindingContext: storage.data.bindingContext.navigate(AgingProps.agingIntervals),\n parsedValue: correctIntervals,\n value: correctIntervals\n });\n storage.refresh();\n};\n\n// debounce callback cannot change on every rerender to work!\n// has to be defined outside renderIntervals\nconst setAgingIntervalsSettingsDebounced = debounce((value: string[], storage: ReportStorage) => {\n setAgingIntervalsSettings(value, storage);\n}, INPUT_DEBOUNCE_TIME);\n\nconst handleSameRangeChange = (args: ICheckboxChange, storage: ReportStorage, tableId: string) => {\n const checked = args.value;\n const intervals = storage.getValueByPath(AgingProps.agingIntervals);\n\n const { intervals: correctIntervals, disabledIntervals } = getCorrectIntervals(storage, intervals, checked);\n\n storage.setValueByPath(AgingProps.agingIntervals, correctIntervals);\n storage.setCustomData({\n sameRange: checked,\n disabledIntervals\n });\n LocalSettings.set(tableId, {\n customData: {\n ...LocalSettings.get(tableId).customData,\n sameRange: checked\n }\n });\n\n if (intervals && !isEqual(intervals, correctIntervals)) {\n storage.settings = {\n ...storage.settings,\n [AgingProps.agingIntervals]: correctIntervals\n };\n }\n\n // call storage.handleFilterChange to properly store agingIntervals in LocalSettings\n storage.handleFilterChange({\n bindingContext: storage.data.bindingContext.navigate(AgingProps.agingIntervals),\n parsedValue: correctIntervals,\n value: correctIntervals\n });\n storage.refresh();\n};\n\nconst handleIntervalsChange = (value: string[], lengthChange: boolean, storage: ReportStorage) => {\n storage.setValueByPath(AgingProps.agingIntervals, value);\n storage.refreshFields();\n\n\n if (lengthChange) {\n setAgingIntervalsSettings(value, storage);\n } else {\n setAgingIntervalsSettingsDebounced(value, storage);\n }\n};\n\nconst getRenderIntervals = (reportId: ReportId) => {\n return (renderArgs: IFieldDefFn) => {\n const tableStorage = renderArgs.storage as ReportStorage;\n const sameRange = tableStorage.getCustomData().sameRange ?? false;\n const intervals = tableStorage.getValueByPath(AgingProps.agingIntervals);\n const disabledIntervals = tableStorage.getCustomData().disabledIntervals;\n const errors = intervals.map((interval: string) => getIntervalErrorMessage(interval));\n\n return (\n \n
    \n {\n handleSameRangeChange(args, tableStorage, reportId);\n }}/>\n
    \n {\n handleIntervalsChange(value, lengthChange, tableStorage);\n }}\n value={intervals}\n errors={errors}\n defaultValue={\"30\"}\n disabledValues={disabledIntervals}/>\n
    \n
    \n
    \n );\n };\n};\n\nexport const getAgingIntervalFilterDef = (getDefArgs: IGetAgingDefinition) => {\n return {\n id: AgingProps.agingIntervals,\n type: FieldType.Custom,\n label: i18next.t(\"Reporting:Aging.AgingIntervals\"),\n defaultValue: (args: IGetValueArgs) => {\n const savedFilters = LocalSettings.get(getDefArgs.tableId)?.filters;\n let reportType;\n\n if (savedFilters?.[getDefArgs.reportTypeParam]) {\n reportType = savedFilters[getDefArgs.reportTypeParam];\n } else {\n const filterGroup = (args.storage as TableStorage).data.definition.filterBarDef[0];\n const filterId = filterGroup.defaultFilters.find((filter: string) => filter === getDefArgs.reportTypeParam);\n\n reportType = filterGroup.filterDefinition[filterId]?.defaultValue;\n }\n\n return reportType.toString().endsWith(AgingReportType.BeforeDueDate) ? beforeDueDateDefaultRange : afterDueDateDefaultRange;\n },\n render: getRenderIntervals(getDefArgs.tableId),\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs, testContext: TestContext) => {\n return !(value as string[]).some(val => {\n return getIntervalErrorMessage(val);\n });\n },\n message: \"doesn't matter, this message is not used\"\n }\n }\n };\n};\n\nexport const getAgingIntervalUnitFilterDef = () => {\n return {\n id: AgingProps.agingIntervalUnit,\n type: FieldType.ComboBox,\n width: BasicInputSizes.S,\n defaultValue: \"Day\",\n label: i18next.t(\"Reporting:Aging.IntervalUnit\"),\n labelStatus: LabelStatus.Hidden,\n fieldSettings: {\n groupWithPrevious: true,\n items: [\n {\n label: capitalize(i18next.t(\"Reporting:Aging.Days2\")),\n id: \"Day\"\n },\n {\n label: capitalize(i18next.t(\"Reporting:Aging.Weeks2\")),\n id: \"Week\"\n },\n {\n label: capitalize(i18next.t(\"Reporting:Aging.Months2\")),\n id: \"Month\"\n }\n ]\n }\n };\n};\n\nexport const agingIntervalHandleFilterChange = (args: IReportFilterChangeEvent, storage: ReportStorage) => {\n const path = args.filterChange.bindingContext.toString();\n const cleanPath = BindingContext.cleanLocalContext(path);\n\n if (cleanPath.endsWith(\"ReportType\")) {\n const reportType = storage.getValue(args.filterChange.bindingContext);\n args.settings[AgingProps.agingIntervals] = reportType.endsWith(AgingReportType.BeforeDueDate) ? beforeDueDateDefaultRange : afterDueDateDefaultRange;\n args.settings[AgingProps.agingIntervalUnit] = \"Day\";\n\n // call storage.handleFilterChange to properly store value in LocalSettings and storage\n storage.handleFilterChange({\n bindingContext: storage.data.bindingContext.navigate(AgingProps.agingIntervals),\n parsedValue: args.settings[AgingProps.agingIntervals],\n value: args.settings[AgingProps.agingIntervals]\n });\n storage.handleFilterChange({\n bindingContext: storage.data.bindingContext.navigate(AgingProps.agingIntervalUnit),\n parsedValue: args.settings[AgingProps.agingIntervalUnit],\n value: args.settings[AgingProps.agingIntervalUnit]\n });\n }\n};\n\nexport const agingIntervalOnAfterLoadCallback = (storage: ReportStorage) => {\n const intervals = storage.getValueByPath(AgingProps.agingIntervals) as string[];\n const sameRange = intervals.reduce((allSame, interval) => {\n return allSame && interval === intervals[0];\n }, true);\n const { intervals: correctIntervals, disabledIntervals } = getCorrectIntervals(storage, intervals, sameRange);\n\n storage.setCustomData({\n sameRange, disabledIntervals\n });\n LocalSettings.set(storage.tableId, {\n customData: {\n ...LocalSettings.get(storage.tableId).customData,\n sameRange\n }\n });\n};\n","/** Date range composed of two fields - select with values like \"this fiscal year\" + date range picker for custom range */\nimport { TDateRangePickerValue } from \"@components/inputs/date/popup/Calendar.utils\";\nimport { formatDateInterval, IDayInterval, isSameInterval, isValidDateInterval } from \"@components/inputs/date/utils\";\nimport { IInputOnChangeEvent } from \"@components/inputs/input\";\nimport { Select } from \"@components/inputs/select\";\nimport { IFieldDefFn } from \"@components/smart/FieldInfo\";\nimport { IFilterDef, TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport { DatePicker, DateRangePicker } from \"../../../components/inputs/date\";\nimport Field from \"../../../components/inputs/field/Field\";\nimport { BasicInputSizes, FieldType, ValidatorType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { ValidationMessage } from \"../../../model/Validator.types\";\nimport DateType, { DATE_MAX, DATE_MIN, getUtcDate, getUtcDayjs } from \"../../../types/Date\";\nimport { CommonReportProps } from \"../CommonDefs\";\nimport { fetchCompanyDateRanges, IReportDateRange } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport {\n CUSTOM_BY_DATE_ID,\n CUSTOM_DATE_RANGE_ID,\n DEFAULT_RANGE\n} from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nconst findMatchingNamedRange = (namedDateRanges: ISelectItem[], currentDateRange: IDayInterval) => {\n if (!currentDateRange) {\n return namedDateRanges.find(namedRange => namedRange.id === CUSTOM_DATE_RANGE_ID);\n }\n\n return namedDateRanges.find((namedRange) => {\n return DateType.isSameDay(namedRange.additionalData?.dateRange?.from, currentDateRange?.from)\n && DateType.isSameDay(namedRange.additionalData?.dateRange?.to, currentDateRange?.to);\n });\n};\n\nexport const getRenderDateRange = (reportId: ReportId) => {\n return ({ storage, props }: IFieldDefFn) => {\n const dateRangeBc = storage.data.bindingContext.navigate(CommonReportProps.dateRange);\n const dateRangePickerBc = storage.data.bindingContext.navigate(CommonReportProps.dateRangeCustomValue);\n const dateRangeInfo = storage.getInfo(dateRangeBc);\n const currentDateRange: string = props.value as string;\n const dateRangeItems = dateRangeInfo.fieldSettings.items;\n const customDateRangeItem = dateRangeItems.find(item => item.id === CUSTOM_DATE_RANGE_ID);\n const selectedDateRangeItem = dateRangeInfo.fieldSettings.items.find(item => item.id === currentDateRange);\n const datePickerValue = selectedDateRangeItem?.additionalData ? {\n from: getUtcDate(selectedDateRangeItem.additionalData.dateRange.from),\n //.endOf('day') has to correspond to DateRangePicker.parser, otherwise it would cause problems inside WithFormatter\n to: getUtcDayjs(selectedDateRangeItem.additionalData.dateRange.to).endOf(\"day\").toDate()\n } : null;\n const isDisabled = !!(storage as TableStorage).data.predefinedFilters?.[CommonReportProps.dateRange];\n\n const handleNamedRangeChange = (event: ISelectionChangeArgs) => {\n if (event.value === CUSTOM_DATE_RANGE_ID) {\n if (currentDateRange === CUSTOM_DATE_RANGE_ID) {\n return;\n }\n customDateRangeItem.additionalData = null;\n }\n\n storage.clearError(dateRangeBc);\n props.parentProps.onChange({\n bindingContext: dateRangeBc,\n parsedValue: event.value,\n value: event.value\n });\n\n props.parentProps.onChange({\n bindingContext: dateRangePickerBc,\n parsedValue: null,\n value: null\n });\n };\n\n const handleDateRangePickerChange = (e: IInputOnChangeEvent) => {\n const dateRange = e.value as IDayInterval;\n if (isSameInterval(dateRange, datePickerValue)) {\n // don't do anything if value didn't change\n return;\n }\n\n const matchingNamedRange = findMatchingNamedRange(dateRangeItems, dateRange);\n let selectedDateRange = matchingNamedRange?.id;\n\n if (!matchingNamedRange || matchingNamedRange.id === CUSTOM_DATE_RANGE_ID) {\n selectedDateRange = CUSTOM_DATE_RANGE_ID;\n\n const dateRangeParam: IDayInterval = dateRange ? {\n from: dateRange?.from,\n to: dateRange?.to\n } : null;\n\n customDateRangeItem.additionalData = dateRangeParam ? { dateRange: dateRangeParam } : null;\n\n props.parentProps.onChange({\n bindingContext: dateRangePickerBc,\n parsedValue: dateRange,\n value: dateRange\n });\n }\n\n if (!isValidDateInterval(dateRange)) {\n props.parentProps.onChange({\n bindingContext: dateRangePickerBc,\n parsedValue: null,\n value: null\n });\n }\n\n props.parentProps.onChange({\n bindingContext: dateRangeBc,\n parsedValue: selectedDateRange,\n value: selectedDateRange\n });\n };\n\n const handleDatePickerChange = (e: IInputOnChangeEvent) => {\n const date = e.value;\n\n if (getUtcDayjs(date).endOf(\"day\").isSame(datePickerValue?.to)) {\n // don't do anything if value didn't change\n return;\n }\n\n const selectItem = dateRangeItems.find(item => item.id === CUSTOM_BY_DATE_ID);\n const dateRangeParam: IDayInterval = date ? {\n from: DATE_MIN,\n to: date\n } : null;\n\n selectItem.additionalData = dateRangeParam ? { dateRange: dateRangeParam } : null;\n\n props.parentProps.onChange({\n bindingContext: dateRangePickerBc,\n parsedValue: dateRangeParam,\n value: dateRangeParam\n });\n\n props.parentProps.onChange({\n bindingContext: dateRangeBc,\n parsedValue: CUSTOM_BY_DATE_ID,\n value: CUSTOM_BY_DATE_ID\n });\n };\n\n const picker = currentDateRange === CUSTOM_BY_DATE_ID ? (\n \n ) : (\n );\n\n return (\n <>\n \n \n \n \n {picker}\n \n \n );\n };\n};\n\nexport const getComposedDateRangeFilterDef = (reportId: ReportId): IFilterDef => {\n return {\n id: CommonReportProps.dateRange,\n type: FieldType.Custom,\n defaultValue: DEFAULT_RANGE,\n label: i18next.t(\"Reporting:Parameters.DateRange\"),\n render: getRenderDateRange(reportId),\n filter: {\n transformFilterValue(value: TValue, info: IFieldInfo): TValue {\n const item = info.fieldSettings.items.find(i => i.id === value);\n\n // convert IDayInterval to format expected on backend\n if (item?.additionalData?.dateRange) {\n return {\n DateStart: item.additionalData.dateRange.from,\n DateEnd: item.additionalData.dateRange.to\n } as unknown as TValue;\n }\n\n return null;\n }\n },\n // to show correct label instead of id in read only filter bar\n // (not handled automatically because we use FieldType.Custom, instead of FieldType.Select)\n formatter: (val, args): string => {\n let text: string;\n\n switch (true) {\n case val === CUSTOM_DATE_RANGE_ID:\n text = i18next.t(\"Reporting:AccountingJournal.CustomDateRange\");\n break;\n case val === CUSTOM_BY_DATE_ID:\n text = i18next.t(\"Reporting:Parameters.ByDate\");\n break;\n default:\n text = i18next.t(`Enums:DateRange.${val}`);\n }\n\n // when used with drill down filters, we want to show the dates as well\n // because we don't show them in filter bar at that moment\n if ((args.storage as TableStorage)?.data.predefinedFilters) {\n const dateRangeInfo = Object.values(args.storage.data.fieldsInfo).find(info => info.bindingContext.getNavigationPath() === CommonReportProps.dateRange);\n const dateRange: IDayInterval = dateRangeInfo.fieldSettings.items.find(i => i.id === val).additionalData.dateRange;\n // dayjs use wrong way to create a new Date and even though we pass a string that should create a year 1 (0001),\n // it will return year 1900 instead https://github.com/iamkun/dayjs/issues/1237#issuecomment-1102930539\n // => use new Date and THEN wrap it in dayjs to ensure correct year\n const dateStart = getUtcDayjs(dateRange.from);\n const dateEnd = getUtcDayjs(dateRange.to);\n\n if (dateStart.isSameOrBefore(DATE_MIN, \"date\") && dateEnd.isSameOrAfter(DATE_MAX, \"date\")) {\n text = i18next.t(\"Common:Time.All\");\n } else {\n const dateString = formatDateInterval({ from: dateRange.from, to: dateRange.to });\n\n text += ` (${dateString})`;\n }\n }\n\n return text;\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value, args, testContext) => {\n const selectedRangeItem = args.storage.getInfo(args.bindingContext)?.fieldSettings?.items.find(item => item.id === value);\n const dateRange = selectedRangeItem?.additionalData?.dateRange;\n\n if (!dateRange) {\n return true;\n }\n\n const dateRangeInterval: IDayInterval = {\n from: dateRange.from,\n to: dateRange.to\n };\n\n if (value === CUSTOM_BY_DATE_ID) {\n if (!DateType.isValid(dateRangeInterval.to)) {\n return new ValidationError(ValidationMessage.NotADate, false, testContext.path);\n }\n } else {\n if (!isValidDateInterval(dateRangeInterval)) {\n return new ValidationError(ValidationMessage.NotARange, false, testContext.path);\n }\n }\n\n return true;\n }\n }\n }\n };\n};\n\nexport const getDateRangeCustomValueDef = (): TFilterDef => {\n return {\n // fake field, just so that we can store custom date range in variants.\n // needs to be true for table storage to load info\n // set to false onAfterLoad\n isVisible: true,\n fieldSettings: {\n // we don't want to send this as parameter to backend\n frontendOnly: true\n }\n };\n};\n\nexport const getComposedDateRangeFieldsDefs = (reportId: ReportId): Record => {\n return {\n [CommonReportProps.dateRange]: getComposedDateRangeFilterDef(reportId),\n [CommonReportProps.dateRangeCustomValue]: getDateRangeCustomValueDef()\n };\n};\n\nexport const composedDateRangeOnBeforeLoadCallback = async (storage: ReportStorage, addByDateOption?: boolean, addCustomRangeOption = true): Promise => {\n // we need to date range (DateStart - DateEnd) BEFORE the initial table request => retrieve them here instead of via smart select\n const namedDateRanges = await fetchCompanyDateRanges(storage.context);\n storage.setCustomData({ namedDateRanges });\n const dateRangeBc = storage.data.bindingContext.navigate(CommonReportProps.dateRange);\n const dateRangePickerBc = storage.data.bindingContext.navigate(CommonReportProps.dateRangeCustomValue);\n const dateRangeInfo = storage.getInfo(dateRangeBc);\n let selectItems: ISelectItem[] = namedDateRanges.map((dateRange: IReportDateRange) => {\n return {\n id: dateRange.Key,\n label: i18next.t(`Enums:DateRange.${dateRange.Key}`),\n additionalData: {\n dateRange: {\n from: getUtcDate(dateRange.Value.DateStart),\n to: getUtcDate(dateRange.Value.DateEnd)\n }\n }\n };\n });\n if (dateRangeInfo.fieldSettings?.transformFetchedItems) {\n selectItems = dateRangeInfo.fieldSettings.transformFetchedItems(selectItems, { storage });\n }\n\n // hide fake field\n const dateRangeCustomValueInfo = storage.getInfo(storage.data.bindingContext.navigate(CommonReportProps.dateRangeCustomValue));\n\n dateRangeCustomValueInfo.isVisible = false;\n\n const savedCustomDateRange = storage.getValue(dateRangePickerBc);\n\n // add custom options, before !isValidValue check,\n // so that even when namedDateRanges are empty, there are at least the custom options to choose from\n if (addCustomRangeOption) {\n selectItems.push({\n id: CUSTOM_DATE_RANGE_ID,\n label: storage.t(\"Reporting:AccountingJournal.CustomDateRange\"),\n additionalData: savedCustomDateRange ? {\n dateRange: savedCustomDateRange\n } : null\n });\n }\n\n if (addByDateOption) {\n selectItems.push({\n id: CUSTOM_BY_DATE_ID,\n label: storage.t(\"Reporting:Parameters.ByDate\"),\n additionalData: savedCustomDateRange ?\n { dateRange: savedCustomDateRange } :\n {\n dateRange: {\n from: DATE_MIN,\n to: getUtcDate()\n }\n }\n });\n }\n\n // change default value if not present\n const currentValue = storage.data.entity[CommonReportProps.dateRange];\n const isValidValue = (currentValue === CUSTOM_DATE_RANGE_ID && addCustomRangeOption)\n || (currentValue === CUSTOM_BY_DATE_ID && addByDateOption)\n || namedDateRanges.find(namedRange => namedRange.Key === currentValue);\n\n // if no value found, take the first one from the list\n if (!isValidValue) {\n // choose from selectItems instead of namedDateRanges,\n // there might be additional items (custom range) that are not in namedDateRanges\n const value = selectItems?.[0]?.id;\n\n storage.setFilterValue(dateRangeBc, value, value);\n } else if (currentValue === CUSTOM_DATE_RANGE_ID) {\n // if the custom range corresponds to one of the dateRange values, use it instead\n const matchingNamedRange = findMatchingNamedRange(selectItems, {\n from: getUtcDate(savedCustomDateRange.from),\n to: getUtcDate(savedCustomDateRange.to)\n });\n\n if (matchingNamedRange) {\n const value = matchingNamedRange.id;\n\n storage.setFilterValue(dateRangeBc, value, value);\n }\n }\n\n dateRangeInfo.fieldSettings.items = selectItems;\n\n storage.refreshField(CommonReportProps.dateRange);\n};","export const CUSTOM_DATE_RANGE_ID = \"custom\";\nexport const CUSTOM_BY_DATE_ID = \"byDate\";\nexport const DEFAULT_RANGE = \"ThisFiscalYear\";","import { Select } from \"@components/inputs/select\";\nimport { ISelectionChangeArgs, ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IFieldDefFn } from \"@components/smart/FieldInfo\";\nimport { IFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ElectronicSubmissionTypeCode, VatStatementFrequencyCode } from \"@odata/GeneratedEnums\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport { memoize } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport Field from \"../../../components/inputs/field\";\nimport { BasicInputSizes, FieldType } from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport DateType, { getUtcDate, getUtcDateBy, getUtcDayjs } from \"../../../types/Date\";\nimport {\n fetchPossibleSubmissions,\n fetchSubmissionData,\n getSubmissionInfoRowsForYear,\n getVatStatementFrequencyFromSubmission,\n parseSubmissionId,\n SubmissionStatus,\n TPossibleSubmissions\n} from \"../../electronicSubmission/ElectronicSubmission.utils\";\nimport { getVatSubmissionPeriodName } from \"../../electronicSubmission/VatSubmission.utils\";\nimport { CommonReportProps } from \"../CommonDefs\";\nimport { IDateRangeParam } from \"../Report.utils\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { VatReportProps } from \"../VatReport.utils\";\n\nconst getPeriodItemId = (startDate: Dayjs, endDate: Dayjs) => {\n return `${startDate.year()}/${startDate.month()}`;\n};\n\nexport const vatPeriodParameterOnBeforeLoadCallback = async (storage: ReportStorage, type: ElectronicSubmissionTypeCode): Promise => {\n const {\n firstVatPeriodDate,\n lastVatPeriodDate,\n submissions,\n possibleSubmissions,\n year\n } = await fetchSubmissionData({\n context: storage.context,\n oData: storage.oData\n });\n\n const periodBc = storage.data.bindingContext.navigate(VatReportProps.vatStatementPeriod);\n const periodInfo = storage.getInfo(periodBc);\n\n const fnBuildItem = (startDate: Dayjs, endDate: Dayjs, vatFrequency: VatStatementFrequencyCode, customData?: Record) => {\n let label = getVatSubmissionPeriodName(startDate, vatFrequency);\n\n label = label.replace(/\\d{4}/, \"\").trim();\n\n return {\n id: getPeriodItemId(startDate, endDate),\n label,\n additionalData: {\n DateStart: startDate,\n DateEnd: endDate,\n ...(customData ?? {})\n }\n };\n };\n\n // add item for each existing submission of given type\n periodInfo.fieldSettings.items = Array.from(submissions.values())\n .filter(submission => submission.slice(-1)[0].ElectronicSubmissionTypeCode === type)\n .map((submission) => {\n const startDate = getUtcDayjs(submission.slice(-1)[0].DatePeriodStart);\n const endDate = getUtcDayjs(submission.slice(-1)[0].DatePeriodEnd);\n const vatFrequency = getVatStatementFrequencyFromSubmission(submission.slice(-1)[0]);\n\n return fnBuildItem(startDate, endDate, vatFrequency, { \"isLocked\": true });\n });\n\n // add item for each unlocked submission that doesn't have a corresponding BE item yet\n // fetch possible submissions for every possible year\n const promises: (Promise | TPossibleSubmissions)[] = [];\n const years: number[] = [];\n\n for (let i = firstVatPeriodDate.year(); i <= lastVatPeriodDate.year(); i++) {\n if (i === year) {\n // no need to fetch again already fetched data\n promises.push(possibleSubmissions);\n } else {\n promises.push(fetchPossibleSubmissions(i));\n }\n years.push(i);\n }\n\n const res = await Promise.all(promises);\n\n for (let i = 0; i < res.length; i++) {\n const possibleSubmissions = res[i];\n const year = years[i];\n const overviewRows = getSubmissionInfoRowsForYear({\n year,\n submissions: submissions,\n possibleSubmissions,\n lastVatPeriodDate,\n firstVatPeriodDate,\n context: storage.context\n });\n\n for (const row of overviewRows) {\n const submissionInfo = row[type];\n\n if ([SubmissionStatus.Unlocked, SubmissionStatus.Empty].includes(submissionInfo.status)) {\n const { month } = parseSubmissionId(submissionInfo.submissionId);\n const dateStart = getUtcDayjs(getUtcDateBy(year, month, 1));\n const startDate = dateStart;\n const endDate = dateStart.add(submissionInfo.frequency === VatStatementFrequencyCode.Quarterly ? 2 : 0, \"month\").endOf(\"month\");\n\n periodInfo.fieldSettings.items.push(\n fnBuildItem(startDate, endDate, submissionInfo.frequency, { \"isLocked\": false })\n );\n }\n }\n }\n\n const dateRange: IDateRangeParam = storage.getValue(periodBc);\n let period: ISelectItem;\n\n if (!dateRange) {\n const lastLockedPeriod = periodInfo.fieldSettings.items.filter(item => !!item.additionalData[\"isLocked\"]).slice(-1)?.[0];\n period = lastLockedPeriod ?? periodInfo.fieldSettings.items[0];\n const value = (period?.additionalData ?? null) as unknown as TValue;\n\n storage.setFilterValue(periodBc, value ? {\n DateStart: period.additionalData?.DateStart,\n DateEnd: period.additionalData?.DateEnd\n } as unknown as TValue : null, value);\n\n }\n storage.refreshField(VatReportProps.vatStatementPeriod);\n};\n\nconst findMatchingVatPeriod = (periodItems: ISelectItem[], currentDateRange: { DateStart: Date, DateEnd: Date }) => {\n if (!currentDateRange) {\n return periodItems[periodItems.length - 1];\n }\n\n return periodItems.find((period) => {\n return DateType.isSameDay(period.additionalData?.DateStart, getUtcDate(currentDateRange?.DateStart))\n && DateType.isSameDay(period.additionalData?.DateEnd, getUtcDate(currentDateRange?.DateEnd));\n });\n};\n\nconst getYearSelectItems = memoize((periodItems: ISelectItem[]): ISelectItem[] => {\n const years = new Set();\n\n for (const period of periodItems) {\n const year = getUtcDate(period.additionalData.DateStart).getFullYear();\n years.add(year);\n }\n\n return Array.from(years).map((year: number) => {\n return {\n id: year,\n label: year.toString()\n };\n });\n});\n\nexport const getRenderVatStatementParam = () => {\n return (args: IFieldDefFn): ReactElement => {\n const storage = args.storage as ReportStorage;\n const periodBc = storage.data.bindingContext.navigate(VatReportProps.vatStatementPeriod);\n const dateRange = storage.getValue(periodBc);\n const isDisabled = !!(storage as TableStorage).data.predefinedFilters?.[VatReportProps.vatStatementPeriod];\n const allPeriodItems = args.props.info.fieldSettings.items ?? [];\n\n const handleYearChange = (e: ISelectionChangeArgs) => {\n const year = e.value as number;\n const periodItem = allPeriodItems.find((item) => {\n return getUtcDate(item.additionalData.DateStart).getFullYear() === year;\n });\n\n const value = {\n DateStart: periodItem?.additionalData?.DateStart,\n DateEnd: periodItem?.additionalData?.DateEnd\n };\n\n args.props.onChange({\n bindingContext: periodBc,\n value,\n parsedValue: {\n from: value.DateStart,\n to: value.DateEnd\n }\n });\n };\n const handlePeriodChange = (e: ISelectionChangeArgs) => {\n const { DateStart, DateEnd } = e.additionalData;\n\n const value = {\n DateStart,\n DateEnd\n };\n\n args.props.onChange({\n bindingContext: periodBc,\n value,\n parsedValue: {\n from: DateStart,\n to: DateEnd\n }\n });\n };\n\n const yearSelectItems = getYearSelectItems(allPeriodItems);\n const matchingPeriod = findMatchingVatPeriod(allPeriodItems, dateRange) ?? allPeriodItems.slice(-1)?.[0];\n const currentYear = matchingPeriod?.additionalData?.DateStart ? getUtcDayjs(matchingPeriod.additionalData.DateStart).year() : null;\n const periodItems = allPeriodItems.filter((item) => {\n return getUtcDate(item.additionalData.DateStart).getFullYear() === currentYear;\n });\n\n return (\n <>\n \n \n \n \n \n \n \n );\n };\n};\n\n\nexport const vatStatementPeriodParamDef = (): IFilterDef => {\n return {\n id: VatReportProps.vatStatementPeriod,\n type: FieldType.Custom,\n label: i18next.t(\"Reporting:Parameters.DateRange\"),\n fieldSettings: {\n items: []\n },\n render: getRenderVatStatementParam(),\n formatter: (val) => {\n const value = val as unknown as { DateStart: Date, DateEnd: Date };\n return DateType.format(value?.DateStart) + \" - \" + DateType.format(value?.DateEnd);\n }\n };\n};","import { PredefinedFilter } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportVariantDef } from \"@components/smart/smartTable\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport { arrayInsert } from \"@utils/general\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { FieldType, Sort, TextAlign, ValidatorType } from \"../../../enums\";\nimport { TRecordType } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getUtcDate } from \"../../../types/Date\";\nimport {\n getReportViewDocumentStatusExportFormatter,\n getReportViewDocumentStatusFormatter\n} from \"../../documents/DocumentDef\";\nimport {\n byDateOptionalValidationSchema,\n CommonReportProps,\n DocumentStatusLocalPath,\n getDocumentNumberOursOverride,\n getDocumentStatusFilterDef,\n getDocumentTypeFilterDef\n} from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getComposedDateRangeFieldsDefs\n} from \"../customFilterComponents/ComposedDateRange\";\nimport { IReportTableDefinition, TReportColumnOverrides } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { DEFAULT_RANGE } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport enum DocumentJournalVariant {\n Evala = \"-53\", // default variant\n ReceivableAdjustment = \"recadj\", // FE only variant - used just in drilldown\n}\n\nexport const DocumentJournalProps = {\n dateClearingStatusTo: BindingContext.localContext(\"DateClearingStatusTo\"),\n electronicSubmissionId: BindingContext.localContext(\"ElectronicSubmissionId\")\n};\n\n\nexport const DOCUMENT_JOURNAL_PATH = \"DocumentJournal\";\n\n/**\n * Returns common report document status definition, prefix of dependent columns is different per report ->\n * \"Document\" for documentJournal\", \"ReceivableAdjustment\" for ReceivableAdjustments report\n * @param prefix\n */\nexport const getReportDocumentStatusDef = (prefix: string): IFieldInfoProperties => ({\n fieldSettings: {\n disableSort: true\n },\n formatter: getReportViewDocumentStatusFormatter(prefix),\n exportFormatter: getReportViewDocumentStatusExportFormatter(prefix),\n textAlign: TextAlign.Center,\n // use fixed width to prevent huge auto calculated width caused by long tooltip\n width: \"95px\"\n});\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.DocumentJournal;\n const title = i18next.t(\"Reporting:DocumentJournal.Title\");\n const path = DOCUMENT_JOURNAL_PATH;\n const initialSortBy = [{ id: \"Document_DateCreated\", sort: Sort.Desc }];\n const parameters: string[] = [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue, DocumentJournalProps.dateClearingStatusTo,\n DocumentJournalProps.electronicSubmissionId\n ];\n const hasAccounting = isAccountAssignmentCompany(context);\n\n const columnOverrides: TReportColumnOverrides = {\n DocumentStatus: getReportDocumentStatusDef(\"Document\"),\n Document_NumberOurs: getDocumentNumberOursOverride({\n documentTypeProperty: \"Document_DocumentTypeCode\",\n documentIdProperty: \"Document_Id\"\n })\n };\n\n const dateRangeFieldDefs = getComposedDateRangeFieldsDefs(tableId);\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n DocumentJournalProps.dateClearingStatusTo,\n DocumentJournalProps.electronicSubmissionId\n ],\n filterDefinition: {\n ...dateRangeFieldDefs,\n [CommonReportProps.dateRange]: {\n ...dateRangeFieldDefs[CommonReportProps.dateRange],\n defaultValue: hasAccounting ? DEFAULT_RANGE : PredefinedFilter.ThisYear\n },\n [DocumentJournalProps.dateClearingStatusTo]: {\n id: DocumentJournalProps.dateClearingStatusTo,\n label: i18next.t(\"Reporting:DocumentJournal.DateClearingStatusTo\"),\n type: FieldType.Date,\n defaultValue: () => (getUtcDate()),\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customSchema: () => byDateOptionalValidationSchema\n }\n }\n },\n [DocumentJournalProps.electronicSubmissionId]: {\n // hidden parameter for drilldown from ElectronicSubmissions\n // needs to be true for table storage to load info\n // set to false onAfterLoad\n isVisible: true,\n defaultValue: null\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {\n [BindingContext.localContext(\"Document_NumberOurs\")]: {},\n [BindingContext.localContext(\"BusinessPartner_Name\")]: {},\n [BindingContext.localContext(\"DocumentType_Name\")]: getDocumentTypeFilterDef(),\n [DocumentStatusLocalPath]: getDocumentStatusFilterDef(context)\n }\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage);\n };\n\n const defaultReportVariants: TRecordType = {\n [DocumentJournalVariant.Evala]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"Document_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"BusinessPartner_Name\" },\n { \"ColumnAlias\": \"Document_DateCreated\" },\n { \"ColumnAlias\": \"DocumentStatus\" },\n { \"ColumnAlias\": \"CreatedByUser_Name\" },\n { \"ColumnAlias\": \"Document_Amount\" },\n { \"ColumnAlias\": \"Document_TransactionAmountDue\" }\n ],\n \"Aggregations\": []\n }\n },\n [DocumentJournalVariant.ReceivableAdjustment]: {\n ReportHierarchy: {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"Document_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"Document_Amount\" },\n { \"ColumnAlias\": \"Document_Explanation\" },\n { \"ColumnAlias\": \"Document_Note\" }\n ],\n \"Aggregations\": []\n }\n },\n };\n\n if (hasAccounting) {\n defaultReportVariants[DocumentJournalVariant.Evala].ReportHierarchy[\"Columns\"] = arrayInsert(defaultReportVariants[DocumentJournalVariant.Evala].ReportHierarchy[\"Columns\"], { \"ColumnAlias\": \"Document_DateAccountingTransaction\" }, 4);\n defaultReportVariants[DocumentJournalVariant.ReceivableAdjustment].ReportHierarchy[\"Columns\"] = arrayInsert(defaultReportVariants[DocumentJournalVariant.ReceivableAdjustment].ReportHierarchy[\"Columns\"], { \"ColumnAlias\": \"Document_DateAccountingTransaction\" }, 2);\n }\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[DocumentJournalVariant.Evala].ReportHierarchy;\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, parameters,\n columnOverrides, onBeforeLoad, defaultReportHierarchy, defaultReportVariants\n };\n};\n","import { IReportStorageDefaultCustomData, ReportStorage } from \"../ReportStorage\";\nimport { CurrencyUsedByCompanyEntity, EntitySetName } from \"@odata/GeneratedEntityTypes\";\nimport { BankExchangeRateFreshnessCode, ExchangeRateTypeCode } from \"@odata/GeneratedEnums\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { Status } from \"../../../enums\";\nimport DateType, { getUtcDate } from \"../../../types/Date\";\nimport { ITabsProps } from \"@components/tabs\";\nimport { REST_API_URL } from \"../../../constants\";\nimport customFetch from \"../../../utils/customFetch\";\nimport { toTuple } from \"../../../global.types\";\nimport { ExchangeRateProps } from \"./ExchangeRateDef\";\n\nexport const EXCHANGE_RATE_CONTROLLER_URL = `${REST_API_URL}/ExchangeRate`;\nexport const EXCHANGE_RATE_DATES_URL = `${EXCHANGE_RATE_CONTROLLER_URL}/GetExchangeRateDates`;\nexport const GET_EXCHANGE_RATE_URL = `${EXCHANGE_RATE_CONTROLLER_URL}/GetExchangeRate`;\n\nexport interface IExchangeRateCustomData extends IReportStorageDefaultCustomData {\n tabs?: Partial;\n selectedTab?: string;\n}\n\nexport const fetchAndSetExchangeRateDays = async (storage: ReportStorage): Promise => {\n const promises = toTuple([\n await storage.oData.getEntitySetWrapper(EntitySetName.CurrenciesUsedByCompany).query()\n .filter(`${CurrencyUsedByCompanyEntity.BankExchangeRateFreshnessCode} eq '${BankExchangeRateFreshnessCode.PreviousDay}' AND ${CurrencyUsedByCompanyEntity.ExchangeRateTypeCode} eq '${ExchangeRateTypeCode.ByBank}'`)\n .count()\n .top(0)\n .fetchData(),\n await customFetch(EXCHANGE_RATE_DATES_URL)\n ]);\n const [settingsRes, datesRes] = await Promise.all(promises);\n const exchangeRateDates: { DateExchangeRate: string, IsBankExchangeRateForDate: boolean }[] = await datesRes.json();\n const customData: IExchangeRateCustomData = { tabs: {} };\n\n if (exchangeRateDates.length) {\n const newestDateObject = exchangeRateDates.shift();\n const newestDate = getUtcDate(newestDateObject.DateExchangeRate, true);\n const hasDataForNewestDate = newestDateObject.IsBankExchangeRateForDate;\n const showFuture = settingsRes?._metadata?.count > 0;\n\n const mainTabId = formatDateToDateString(newestDate);\n\n storage.settings = {\n ...storage.settings,\n [ExchangeRateProps.exchangeRateDate]: mainTabId\n };\n\n customData.tabs.data = [{\n id: mainTabId,\n hotspotId: \"exchangeRateCurrentTab\",\n title: storage.t(\"ExchangeRate:Current\"),\n status: Status.Success\n }];\n customData.selectedTab = mainTabId;\n\n if (showFuture) {\n customData.tabs.data.push({\n id: \"future\",\n hotspotId: \"exchangeRateFutureTab\",\n title: storage.t(\"ExchangeRate:Future\"),\n isDisabled: !hasDataForNewestDate,\n status: hasDataForNewestDate ? Status.Success : Status.Error\n });\n }\n\n customData.tabs.additionalData = exchangeRateDates.map((dateObject) => {\n const utcDate = getUtcDate(dateObject.DateExchangeRate, true);\n return {\n id: formatDateToDateString(utcDate),\n hotspotId: \"exchangeRateHistoryTab\",\n title: DateType.format(utcDate)\n };\n });\n\n storage.setCustomData(customData);\n }\n};","import { IReportTableDefinition } from \"../Report.utils\";\nimport i18next from \"i18next\";\nimport { getDocumentTypeFilterDef } from \"../CommonDefs\";\nimport { IReportHierarchy } from \"@components/smart/smartTable\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ReportId } from \"../ReportIds\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { fetchAndSetExchangeRateDays } from \"./ExchangeRate.utils\";\nimport { ISort } from \"@components/table\";\nimport { Sort } from \"../../../enums\";\n\nexport const ExchangeRateProps = {\n exchangeRateDate: BindingContext.localContext(\"ExchangeRateDate\"),\n forceToday: BindingContext.localContext(\"ForceToday\")\n};\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.ExchangeRate;\n const title = i18next.t(\"Reporting:ExchangeRate.Title\");\n const path = \"ExchangeRateList\";\n const initialSortBy: ISort[] = [{ id: \"NotTable_CountryName\", sort: Sort.Asc }];\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [\n ExchangeRateProps.exchangeRateDate,\n ExchangeRateProps.forceToday\n ],\n filterDefinition: {\n [BindingContext.localContext(\"DocumentType_Name\")]: getDocumentTypeFilterDef(),\n // hidden parameter - not shown in filter bar\n // instead, it is filled from selected Tab\n [ExchangeRateProps.exchangeRateDate]: {\n // needs to be true for table storage to load info\n // set to false onAfterLoad\n isVisible: true\n },\n // another hidden parameter\n [ExchangeRateProps.forceToday]: {\n isVisible: true\n }\n }\n }\n ];\n const onBeforeLoad = async (storage: ReportStorage) => {\n await fetchAndSetExchangeRateDays(storage);\n };\n const parameters: string[] = [ExchangeRateProps.exchangeRateDate];\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"NotTable_ExchangeRateTypeName\" },\n { \"ColumnAlias\": \"NotTable_CountryName\" },\n { \"ColumnAlias\": \"NotTable_FromCurrencyName\" },\n { \"ColumnAlias\": \"NotTable_FromCurrencyCode\" },\n { \"ColumnAlias\": \"NotTable_Amount\" },\n { \"ColumnAlias\": \"NotTable_ExchangeRateDirect\" }\n ],\n \"Aggregations\": []\n };\n\n const columnOverrides = {\n NotTable_ExchangeRateIndirect: {\n tooltip: i18next.t(\"ExchangeRate:IndirectRateTooltip\")\n }\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, columnOverrides,\n onBeforeLoad, parameters, defaultReportHierarchy,\n disableAggregateButton: true\n };\n};","import { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString, IDayInterval } from \"@components/inputs/date/utils\";\nimport { getSimpleBoolSelectItems, IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportRowDef, IReportRowFormatterArgs } from \"@components/smart/smartTable\";\nimport { IRowValues } from \"@components/table\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { QUnitType } from \"dayjs\";\nimport i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { BasicInputSizes, FieldType, ReportTableRowType, Sort } from \"../../../enums\";\nimport { TRecordAny, TRecordValue, TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ROUTE_ACCOUNTING_JOURNAL } from \"../../../routes\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport { getUtcDayjs } from \"../../../types/Date\";\nimport { byDateValidationSchema, CommonReportProps, getByDateDef, getDateRangeDef } from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getDateRangeCustomValueDef\n} from \"../customFilterComponents/ComposedDateRange\";\nimport { IFiscalYearDependentReportCustomData } from \"../FiscalYearDepenedentReport\";\nimport {\n compareColumnIdsByTimeAggFuncSpecificity,\n getLabelDrilldownFilters,\n IReportDateRange,\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportColumnType,\n ReportConfigGroup,\n TGetReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport const GeneralLedgerProps = {\n showAccountTypes: BindingContext.localContext(\"ShowAccountTypes\"),\n showAccountsWithoutRevenue: BindingContext.localContext(\"ShowAccountsWithoutRevenue\"),\n splitIntoPeriods: BindingContext.localContext(\"SplitIntoPeriods\")\n};\n\nexport enum SplitIntoPeriods {\n None = \"None\",\n Months = \"Months\",\n Periods = \"Periods\"\n}\n\nconst parseAccountNumber = (fullAccountName: string) => {\n // filter unfortunately doesn't work with whole account name, so we set just it's number to filter\n return fullAccountName?.toString().split(\" \")[0];\n};\n\nconst parseFilters = (accFilterName: string, rowValues: IRowValues) => {\n const filters: TRecordAny = {\n ...getLabelDrilldownFilters(rowValues)\n };\n\n if (rowValues.AccountChildrenNames) {\n // AccountChildrenNames contains account itself\n filters[BindingContext.localContext(accFilterName)] = rowValues.AccountChildrenNames;\n } else if (rowValues.Account) {\n\n filters[BindingContext.localContext(accFilterName)] = parseAccountNumber(rowValues.Account as string);\n }\n\n // there can be multiple JournalEntry_DateAccountingTransaction with different agg fns in the hierarchy\n // find the most specific one and use it for drilldown\n const dateAccTransIds = Object.keys(rowValues).filter(key => key.startsWith(\"JournalEntry_DateAccountingTransaction_\"));\n\n // add filter for DateAccountingTransaction\n if (dateAccTransIds.length > 0) {\n dateAccTransIds.sort(compareColumnIdsByTimeAggFuncSpecificity);\n const value = rowValues[dateAccTransIds[0]];\n\n if (value) {\n const period = dateAccTransIds[0].substring(\"JournalEntry_DateAccountingTransaction_\".length).toUpperCase();\n // dayJs typescript interface for these functions expect QUnitType which doesn't contain \"week\"\n // as option, but in docs there is that possibility and it works just fine with \"week\" option\n const from = formatDateToDateString(getUtcDayjs(value.toString()).startOf(period as QUnitType));\n const to = formatDateToDateString(getUtcDayjs(value.toString()).endOf(period as QUnitType));\n filters[BindingContext.localContext(\"JournalEntry_DateAccountingTransaction\")] = { from, to, type: period };\n }\n }\n\n return filters;\n};\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.GeneralLedger;\n const title = i18next.t(\"Reporting:GeneralLedger.Title\");\n const path = \"GeneralLedger\";\n const initialSortBy = [{ id: \"Account\", sort: Sort.Asc }];\n const parameters = [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n CommonReportProps.byDate,\n GeneralLedgerProps.showAccountTypes,\n GeneralLedgerProps.showAccountsWithoutRevenue,\n GeneralLedgerProps.splitIntoPeriods\n ];\n\n const enhanceRowsWithChildrenAccountIds = (rowsData: IReportRowDef[], parentAccountNames?: Set): Set => {\n // includes account itself\n const accountNames: Set = new Set();\n\n // parentAccountNames - probably deprecated, remove if it turns out to be true\n // if (parentAccountNames) {\n // // propagate account names from parent to one level down\n // parentAccountNames.forEach(accountName => accountNames.add(accountName));\n // }\n\n for (const row of rowsData) {\n const rowAccountNames: Set = new Set();\n\n // if (parentAccountNames && (!row.Rows || row.Rows.length === 0)) {\n // parentAccountNames.forEach(accountName => rowAccountNames.add(accountName));\n // }\n\n if (row.Value.Account) {\n const rowAccountName = parseAccountNumber(row.Value.Account as string);\n rowAccountNames.add(rowAccountName);\n }\n\n if (row.Value.AccountChildrenNames) {\n for (const accountName of (row.Value.AccountChildrenNames as string[])) {\n rowAccountNames.add(accountName);\n }\n }\n\n rowAccountNames.forEach(accountName => accountNames.add(accountName));\n\n if (row.Rows) {\n const childrenAccountName = enhanceRowsWithChildrenAccountIds(row.Rows, rowAccountNames);\n\n row.Value.AccountChildrenNames = Array.from(childrenAccountName) as string[];\n childrenAccountName.forEach((accountName => rowAccountNames.add(accountName)));\n }\n\n if ([ReportTableRowType.Total, ReportTableRowType.GrandTotal].includes(row.Type)) {\n row.Value.AccountChildrenNames = Array.from(accountNames) as string[];\n } else {\n row.Value.AccountChildrenNames = Array.from(rowAccountNames) as string[];\n }\n\n }\n\n return accountNames;\n };\n\n const rowsDataFactory = (rowsData: IReportRowDef[], args: IReportRowFormatterArgs): IReportRowDef[] => {\n enhanceRowsWithChildrenAccountIds(rowsData);\n\n const showAccountsWithoutRevenue = args.storage.data.entity[GeneralLedgerProps.showAccountsWithoutRevenue];\n\n if (!showAccountsWithoutRevenue) {\n return rowsData;\n }\n\n return rowsData.map((rowData) => {\n if (rowData.Type !== ReportTableRowType.Group || rowData.Rows?.length > 0) {\n return rowData;\n }\n\n const values = { ...rowData.Value };\n\n // add 0kč to all currency columns of the empty group rows\n for (const col of args.columns) {\n if (!values[col.id] && col.type === ReportColumnType.Currency) {\n values[col.id] = 0;\n }\n }\n\n return {\n ...rowData,\n Value: values\n };\n });\n };\n\n const columnOverrides = (columnId: string) => {\n if (columnId.startsWith(\"JournalEntry_CreditAmount\") || columnId.startsWith(\"JournalEntry_DebitAmount\")) {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n let filters: TRecordValue;\n\n if (columnId.startsWith(\"JournalEntry_CreditAmount\")) {\n filters = parseFilters(\"CreditAccount_Number\", args.entity);\n } else if (columnId.startsWith(\"JournalEntry_DebitAmount\")) {\n filters = parseFilters(\"DebitAccount_Number\", args.entity);\n }\n\n const formattedVal = formatCurrency(val, args.entity[\"JournalEntry_CurrencyCode\"] ?? getCompanyCurrency(args.context));\n\n if (val === 0) {\n return formattedVal;\n }\n\n const storage = (args.storage as ReportStorage);\n const settings = storage.settings;\n const byDate = settings?.[CommonReportProps.byDate];\n const dateRangeBc = args.storage.data.bindingContext.navigate(CommonReportProps.dateRange);\n const dateRange = args.storage.getValue(dateRangeBc);\n const dateRangeInterval = storage.data.customData.dateRanges.find((dr: IReportDateRange) => dr.Key === dateRange).Value;\n // use custom date range, if the byDate param doesn't fit the \"DateEnd\" part of the selected date range\n const isCustomRange = !getUtcDayjs(dateRangeInterval.DateEnd).isSame(byDate);\n const dateRangeParam: IValueInterval = {\n from: formatDateToDateString(dateRangeInterval.DateStart),\n to: formatDateToDateString(byDate)\n };\n\n filters[CommonReportProps.dateRange] = isCustomRange ? CUSTOM_DATE_RANGE_ID : dateRange;\n filters[CommonReportProps.dateRangeCustomValue] = dateRangeParam;\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_ACCOUNTING_JOURNAL,\n context: args.storage.context,\n storage: args.storage,\n filters\n });\n }\n };\n\n }\n return null;\n };\n\n const canExpandCollapseRows = (storage: ReportStorage) => {\n // special case, the table rows are nested even though there is only one Group in report hierarchy\n // ==> we need to enable the expand/collapse button\n return storage.data.entity[GeneralLedgerProps.showAccountTypes] === \"SynthOffBalAnal\";\n };\n\n const configListItemsOverride: TGetReportConfigListItemOverride = {\n Account: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n },\n JournalEntry_DateAccountingTransaction: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n areItemsReadOnly: true,\n hideFromAvailable: true,\n group: ReportConfigGroup.Groups\n },\n InitialDebit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n InitialCredit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n JournalEntry_DebitAmount: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n JournalEntry_CreditAmount: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n FinalDebit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n FinalCredit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n BalanceDebit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n },\n BalanceCredit: {\n isRequired: true,\n isDisabled: true,\n areItemsReadOnly: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Aggregations\n }\n };\n\n const disableAggregateButton = true;\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Account\"\n }\n ],\n \"Columns\": [],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"InitialDebit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"InitialCredit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"JournalEntry_DebitAmount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"JournalEntry_CreditAmount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"FinalDebit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"FinalCredit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"BalanceDebit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"BalanceCredit\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n\n };\n\n const byDateDef = getByDateDef();\n const dateRangeDef = getDateRangeDef();\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n CommonReportProps.byDate,\n GeneralLedgerProps.showAccountTypes,\n GeneralLedgerProps.showAccountsWithoutRevenue,\n GeneralLedgerProps.splitIntoPeriods\n ],\n filterDefinition: {\n [CommonReportProps.dateRange]: {\n ...dateRangeDef,\n fieldSettings: {\n ...dateRangeDef.fieldSettings,\n transformFetchedItems: (items: ISelectItem[]): ISelectItem[] => {\n return items.filter(item => !item.id.toString().includes(\"FiscalPeriod\"));\n }\n }\n },\n [CommonReportProps.dateRangeCustomValue]: getDateRangeCustomValueDef(),\n [CommonReportProps.byDate]: {\n ...byDateDef,\n validator: {\n ...byDateDef.validator,\n settings: {\n customSchema: (args: IGetValueArgs) => {\n return byDateValidationSchema\n .test(\"isInRange\", i18next.t(\"Reporting:GeneralLedger.ByDateRangeError\"),\n function(this: yup.TestContext, value: TValue) {\n const dateRangeBc = args.storage.data.bindingContext.navigate(CommonReportProps.dateRange);\n const dateRange = args.storage.getValue(dateRangeBc);\n const dateRangeInfo = args.storage.getInfo(dateRangeBc);\n const dateRangeItem = dateRangeInfo.fieldSettings?.items?.find(item => item.id === dateRange);\n const byDate = getUtcDayjs(value as Date);\n const range = dateRangeItem?.additionalData?.dateRange as IDayInterval;\n\n return byDate.isBetween(range?.from, range?.to, \"day\", \"[]\");\n });\n }\n }\n }\n },\n [GeneralLedgerProps.showAccountTypes]: {\n type: FieldType.ComboBox,\n defaultValue: \"Synth\" as string,\n label: i18next.t(\"Reporting:GeneralLedger.ShownAccounts\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Reporting:GeneralLedger.Synth\"),\n id: \"Synth\"\n },\n {\n label: i18next.t(\"Reporting:GeneralLedger.SynthOffBal\"),\n id: \"SynthOffBal\"\n },\n {\n label: i18next.t(\"Reporting:GeneralLedger.SynthOffBalAnal\"),\n id: \"SynthOffBalAnal\"\n }\n ]\n }\n },\n [GeneralLedgerProps.showAccountsWithoutRevenue]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Reporting:GeneralLedger.ShowWithoutRevenue\"),\n width: BasicInputSizes.L,\n defaultValue: false,\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n },\n [GeneralLedgerProps.splitIntoPeriods]: {\n type: FieldType.ComboBox,\n label: i18next.t(\"Reporting:GeneralLedger.Split\"),\n width: BasicInputSizes.M,\n defaultValue: SplitIntoPeriods.None,\n fieldSettings: {\n items: [\n { id: SplitIntoPeriods.None, label: i18next.t(\"Reporting:GeneralLedger.SplitNone\") },\n { id: SplitIntoPeriods.Months, label: i18next.t(\"Reporting:GeneralLedger.SplitMonths\") }\n ]\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage, false, false);\n };\n\n return {\n title, initialSortBy, id: tableId, path,\n rowsDataFactory, configListItemsOverride, onBeforeLoad,\n disableAggregateButton, defaultReportHierarchy,\n filterBarDef, parameters, columnOverrides, canExpandCollapseRows\n };\n};","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { REST_API_URL } from \"../../../constants\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { getDocumentExportFileName, IGetExportFileNameProps } from \"../../documents/Document.utils\";\nimport SendMessageDialog, { IDataBoxSettings, IEmailSettings } from \"../../messages/SendMessageDialog\";\nimport { IBalanceSheetCustomData } from \"../balanceSheet/BalanceSheet.utils\";\nimport { CommonReportProps } from \"../CommonDefs\";\nimport { PrintReportType } from \"../Report.utils\";\nimport { getIncomeStatementExportUrl } from \"./IncomeStatement\";\nimport { IncomeStatementProps, IncomeStatementStructure } from \"./IncomeStatementDef\";\n\n\ninterface IProps extends WithTranslation {\n storage: TableStorage;\n onAfterSend?: () => void;\n}\n\nclass SendIncomeStatementDialog extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n get message() {\n const company = this.context.getCompany();\n return (<>Vážená paní / Vážený pane,

    \n v příloze Vám zasíláme výsledovku společnosti {company.LegalName}, prosím podívejte se.

    \n );\n }\n\n emailSettings: IEmailSettings = {\n sendMessageUrl: `${REST_API_URL}/Dispatch/report/${this.reportType}/EMAIL`\n };\n\n dataBoxSettings: IDataBoxSettings = {\n isReport: true,\n sendMessageUrl: `${REST_API_URL}/Dispatch/report/${this.reportType}/DATABOX`\n };\n\n filename = \"\";\n\n componentDidMount() {\n const company = this.context.getCompany();\n this.emailSettings = {\n ...this.emailSettings,\n defaultEmail: company?.CommunicationContact?.Email\n };\n\n this.dataBoxSettings = {\n ...this.dataBoxSettings,\n defaultId: company.FinancialAdministration?.DataBoxId\n };\n }\n\n onAfterOpen = async () => {\n const { storage } = this.props;\n const isFull = storage.getCustomData().messageReportType === \"full\";\n const opts: IGetExportFileNameProps = {\n queryParams: {\n dateRange: storage.data.entity[CommonReportProps.dateRange]\n },\n isFull: (!isFull).toString()\n };\n this.filename = await getDocumentExportFileName(this.context, \"report\", this.reportType, opts);\n\n this.forceUpdate();\n };\n\n get reportType() {\n const statementStructure = this.props.storage.data.entity[IncomeStatementProps.incomeStatementStructure];\n return statementStructure === IncomeStatementStructure.ByNatureOfExpense ? PrintReportType.IncomeStatementByNature : PrintReportType.IncomeStatementByFunction;\n }\n\n handleCloseDialog = () => {\n this.props.storage.setCustomData({ sendingMessageDialogOpen: false });\n this.forceUpdate();\n };\n\n render = () => {\n if (!this.props.tReady || !this.props.storage?.getCustomData().sendingMessageDialogOpen) {\n return null;\n }\n const company = this.context.getCompany();\n const fullReport = this.props.storage.getCustomData().messageReportType === \"full\";\n const subject = `${company.LegalName}: ${fullReport ? this.props.t(\"DataBox:SendDialog.FullIncomeStatement\") : this.props.t(\"DataBox:SendDialog.ShortIncomeStatement\")}`;\n const dateRange = this.props.storage.data.entity[CommonReportProps.dateRange];\n\n const additionalRequestData = {\n BasicView: !fullReport,\n DateRangeCode: dateRange\n };\n\n const fileSettings = [{\n previewUrl: getIncomeStatementExportUrl(this.props.storage, !fullReport),\n name: this.filename,\n fileId: BindingContext.NEW_ENTITY_ID_PROP as unknown as number,\n shouldHideCheckBox: true\n }];\n\n return (\n \n );\n };\n}\n\nexport default withTranslation([\"DataBox\"], { withRef: true })(SendIncomeStatementDialog);","import { AlertPosition } from \"@components/alert/Alert\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { SendIcon } from \"@components/icon\";\nimport { ISelectionChangeArgs } from \"@components/inputs/select/Select.types\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { ActionTypeCode } from \"@odata/GeneratedEnums\";\nimport { logAction } from \"@odata/OData.utils\";\nimport { saveFileFromUrl } from \"@utils/FileStorage\";\nimport React from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\n\nimport IconSelect from \"../../../components/inputs/select/IconSelect\";\nimport { REST_API_URL } from \"../../../constants\";\nimport { QueryParam, Status, ToolbarItemType } from \"../../../enums\";\nimport { TableStorage } from \"../../../model/TableStorage\";\nimport { getQueryParameters } from \"../../../routes/Routes.utils\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { TableButtonsAction } from \"../../../views/table/TableToolbar.utils\";\nimport Page, { IProps as IPageProps } from \"../../Page\";\nimport {\n getReportDisplayType,\n getReportDisplayTypeToolbarButtons,\n handleReportDisplayTypeChange,\n resetReportDisplayType,\n setReportDisplayType\n} from \"../balanceSheet/BalanceSheet\";\nimport { IBalanceSheetCustomData } from \"../balanceSheet/BalanceSheet.utils\";\nimport { CommonReportProps, FiscalYearComparison, ReportDisplayType } from \"../CommonDefs\";\nimport { commonReportTranslations, getReportDefinition, PrintReportType } from \"../Report.utils\";\nimport { ReportSplitPage } from \"../ReportSplitPage\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { IReportFilterChangeEvent, IReportViewBaseProps } from \"../ReportView\";\nimport { getDefinition, IncomeStatementProps, IncomeStatementStructure, initialSortBy } from \"./IncomeStatementDef\";\nimport SendIncomeStatementDialog from \"./sendIncomeStatementDialog\";\n\nexport const INC_STMNT_SHORT_SHEET_OPEN_LINES: string[] = [];\n\nexport enum IncomeStatementDelta {\n Yes = \"Yes\",\n No = \"No\",\n InPercent = \"InPercent\"\n}\n\nexport const getIncomeStatementExportUrl = (storage: TableStorage, isShortReport: boolean): string => {\n const company = storage.context.getCompany().Id;\n const printType = storage.data.entity[IncomeStatementProps.incomeStatementStructure] === IncomeStatementStructure.ByNatureOfExpense ? PrintReportType.IncomeStatementByNature : PrintReportType.IncomeStatementByFunction;\n const dateRange = storage.data.entity[CommonReportProps.dateRange];\n\n return `${REST_API_URL}/IncomeStatementPdfExport/${printType}/${dateRange}/${company}/${isShortReport}?CompanyId=${company}`;\n};\n\ninterface IProps extends IPageProps, WithAlert {\n}\n\nclass IncomeStatement extends Page {\n static defaultProps = {\n getDef: getReportDefinition.bind(null, getDefinition)\n };\n\n storage: ReportStorage;\n\n onAfterLoad = async (storage: ReportStorage) => {\n this.storage = storage;\n\n setReportDisplayType(this.storage, getQueryParameters()?.[QueryParam.ReportDisplayType] as ReportDisplayType ?? getReportDisplayType(storage) ?? ReportDisplayType.Short);\n };\n\n handleReportDisplayTypeChange = (key: string) => {\n handleReportDisplayTypeChange(key as ReportDisplayType, this.storage, initialSortBy, INC_STMNT_SHORT_SHEET_OPEN_LINES);\n\n this.forceUpdate();\n };\n\n handleOpenSendDialog = (args: ISelectionChangeArgs) => {\n this.storage.setCustomData({ sendingMessageDialogOpen: true, messageReportType: args.value as string });\n this.forceUpdate();\n };\n\n handleSendMessageSuccess = () => {\n this.props.setAlert({\n status: Status.Success,\n title: this.storage.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.storage.t(\"DataBox:SendDialog.MessageHasBeenSent\")\n });\n };\n\n get sendMessageToolbarMenu(): IToolbarItem {\n return {\n id: \"sendMessage\",\n itemType: ToolbarItemType.Custom,\n render: () => {\n const { rowCount, loaded } = this.storage.tableAPI?.getState() ?? {};\n return }\n iconButtonProps={{ style: { order: 4, marginLeft: \"2px\" } }}\n isDisabled={!rowCount || !loaded}\n items={[{\n id: \"short\",\n iconName: \"ExportReportShort\",\n label: this.props.t(\"Components:Table.PdfExportReportShort\")\n }, {\n id: \"full\",\n iconName: \"ExportReportFull\",\n label: this.props.t(\"Components:Table.PdfExportReportFull\")\n }]}/>;\n }\n };\n }\n\n renderCustomToolbarButtons = () => {\n return [\n getReportDisplayTypeToolbarButtons(this.handleReportDisplayTypeChange, getReportDisplayType(this.storage)),\n this.sendMessageToolbarMenu\n ];\n };\n\n handleExpand = () => {\n resetReportDisplayType(this.storage);\n };\n\n handleFilterChange = (args: IReportFilterChangeEvent) => {\n if (args.filterChange.bindingContext.getPath() === CommonReportProps.comparison) {\n if (!args.settings[CommonReportProps.comparison] || args.settings[CommonReportProps.comparison] === FiscalYearComparison.None) {\n args.settings[CommonReportProps.showDelta] = IncomeStatementDelta.No;\n } else {\n args.settings[CommonReportProps.showDelta] = this.storage.data.entity[CommonReportProps.showDelta];\n }\n\n // call storage.handleFilterChange to properly store value in LocalSettings and storage\n this.storage.handleFilterChange({\n bindingContext: this.storage.data.bindingContext.navigate(CommonReportProps.showDelta),\n parsedValue: args.settings[CommonReportProps.showDelta],\n value: args.settings[CommonReportProps.showDelta]\n });\n }\n\n return args.settings;\n };\n\n handlePrintReportButtonClick = (buttonAction: TableButtonsAction) => {\n const isShortReport = buttonAction === TableButtonsAction.PdfExportReportShort;\n const url = getIncomeStatementExportUrl(this.storage, isShortReport);\n\n logAction({\n actionId: this.storage.id,\n actionType: ActionTypeCode.PDFExport,\n detail: JSON.stringify({\n CompanyId: this.storage.settings.CompanyId,\n IsShortReport: isShortReport,\n IncomeStatementStructure: this.storage.settings[IncomeStatementProps.incomeStatementStructure]\n })\n });\n\n saveFileFromUrl(url);\n };\n\n getReportViewProps = memoizeOne((): Partial => {\n return {\n customToolbarButtons: this.renderCustomToolbarButtons,\n onFilterChange: this.handleFilterChange,\n onExpandAll: this.handleExpand,\n onCollapseAll: this.handleExpand,\n onPrintReportButtonClick: this.handlePrintReportButtonClick,\n showPrintReportButtons: true,\n expandable: true\n };\n });\n\n render = () => {\n if (!this.isReady()) {\n return null;\n }\n\n return (\n <>\n \n {this.storage?.getCustomData().sendingMessageDialogOpen &&\n }\n {this.props.alert}\n \n );\n };\n}\n\nexport default withRouter(withTranslation([...commonReportTranslations, \"DataBox\"])(withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom,\n style: { width: \"400px\" }\n})(IncomeStatement)));","import styled from \"styled-components/macro\";\n\n\nexport const StyledIndication = styled.span<{ isIncome: boolean }>`\n color: ${props => props.isIncome ? props.theme.C_SEM_el_good : props.theme.C_SEM_el_bad}\n`;","/** Accounts are not send from BE for some rows (merged label groups that contain with_children value)\n * => propagate rows from leaves*/\nimport { IReportRowDef } from \"@components/smart/smartTable\";\n\nexport const enhanceRowsWithAccountIds = (rowsData: IReportRowDef[], propNames: string[]): Record> => {\n const groupedAccounts: Record> = {};\n\n for (const row of rowsData) {\n if (row.Rows?.length === 0) {\n for (const key of Object.keys(row.Value)) {\n if (propNames.some(prop => key.startsWith(prop))) {\n if (!groupedAccounts[key]) {\n groupedAccounts[key] = new Set();\n }\n\n for (const account of (row.Value[key] as string[])) {\n groupedAccounts[key].add(account);\n }\n }\n }\n } else {\n const accIds = enhanceRowsWithAccountIds(row.Rows, propNames);\n\n for (const key of Object.keys(accIds)) {\n if (!groupedAccounts[key]) {\n groupedAccounts[key] = new Set();\n }\n\n if (!row.Value[key]) {\n row.Value[key] = [];\n\n for (const account of accIds[key].values()) {\n (row.Value[key] as string[]).push(account);\n groupedAccounts[key].add(account);\n }\n }\n }\n }\n }\n\n return groupedAccounts;\n};","import { IValueInterval } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { IGroupListItemDef } from \"@components/configurationList\";\nimport { getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { formatDateToDateString } from \"@components/inputs/date/utils\";\nimport { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportRowDef, ISmartReportTableRow } from \"@components/smart/smartTable\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport {\n BasicInputSizes,\n ConfigListItemBoundType,\n FieldType,\n LabelStatus,\n RowType,\n Sort,\n ValueType\n} from \"../../../enums\";\nimport { TRecordValue, TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ROUTE_ACCOUNT_ANALYSIS } from \"../../../routes\";\nimport CurrencyType from \"../../../types/Currency\";\nimport { AccountAnalysisProps } from \"../accountAnalysis/AccountAnalysisDef\";\nimport {\n columnBorderFormatter,\n getReportDisplayType,\n metaColumnFormatter,\n resetReportDisplayType,\n toggleGroupsByReportDisplayType\n} from \"../balanceSheet/BalanceSheet\";\nimport { getColumnGroupForColumn, IBalanceSheetCustomData } from \"../balanceSheet/BalanceSheet.utils\";\nimport {\n CommonReportProps,\n FiscalYearComparison,\n getComparisonDef,\n getDateRangeDef,\n getSplitIntoPeriodsDef,\n getUnitsDef,\n ReportDisplayType,\n ReportSectionTypeCode\n} from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getDateRangeCustomValueDef\n} from \"../customFilterComponents/ComposedDateRange\";\nimport {\n getLabelDrilldownFilters,\n IGetReportDefVal,\n IReportTableDefinition,\n labelColumnNamePrefix,\n NumberAggregationFunction,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { INC_STMNT_SHORT_SHEET_OPEN_LINES, IncomeStatementDelta } from \"./IncomeStatement\";\nimport { StyledIndication } from \"./IncomeStatement.styles\";\nimport { enhanceRowsWithAccountIds } from \"./IncomeStatement.utils\";\nimport { ISelectItem, SelectGroups } from \"@components/inputs/select/Select.types\";\nimport { CUSTOM_DATE_RANGE_ID } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport const initialSortBy = [{ id: \"Line\", sort: Sort.Asc }];\n\nexport const IncomeStatementProps = {\n incomeStatementStructure: BindingContext.localContext(\"IncomeStatementStructure\")\n};\n\nexport enum IncomeStatementStructure {\n ByNatureOfExpense = \"ByNatureOfExpense\",\n ByFunctionOfExpense = \"ByFunctionOfExpense\"\n}\n\nconst onAfterTableLoad = (storage: ReportStorage) => {\n const reportDisplayType = getReportDisplayType(storage);\n\n if (reportDisplayType !== ReportDisplayType.None) {\n toggleGroupsByReportDisplayType(storage, reportDisplayType, INC_STMNT_SHORT_SHEET_OPEN_LINES);\n }\n};\n\nconst onGroupToggle = (storage: ReportStorage) => {\n resetReportDisplayType(storage);\n};\n\nconst rowFormatter = (rowDef: IReportRowDef): Partial => {\n const newRow: Partial = {};\n\n if (rowDef.Value.ReportSectionTypeCode === ReportSectionTypeCode.Sum) {\n newRow.isHighlighted = true;\n newRow.type = RowType.Aggregation;\n newRow.isBold = true;\n }\n\n return newRow;\n};\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.IncomeStatement;\n const title = i18next.t(\"Reporting:IncomeStatement.Title\");\n const path = \"IncomeStatement\";\n const parameters: string[] = [\n IncomeStatementProps.incomeStatementStructure,\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n CommonReportProps.splitIntoPeriods,\n CommonReportProps.showDelta,\n CommonReportProps.comparison\n ];\n const updateFiltersFromResponse = true;\n\n const configListItemsOverride: TGetReportConfigListItemOverride = (item: IGroupListItemDef): TReportConfigListItemOverride => {\n switch (true) {\n case item.id === \"Section\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n case item.id === \"Line\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n boundTo: ConfigListItemBoundType.Group,\n group: ReportConfigGroup.Columns\n\n };\n case item.id === \"Number\":\n return {\n ...item,\n isRequired: true,\n isCopyOnly: false,\n boundTo: ConfigListItemBoundType.Group,\n group: ReportConfigGroup.Columns\n };\n case item.id === \"Indication\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n boundTo: ConfigListItemBoundType.Group,\n group: ReportConfigGroup.Columns\n };\n case item.id === \"JournalEntry_Amount\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n areItemsReadOnly: true,\n value: i18next.t(`Reporting:IncomeStatement.Values`) as string,\n group: ReportConfigGroup.Aggregations\n };\n case item.id.startsWith(labelColumnNamePrefix):\n return {\n ...item,\n allowedGroups: [ReportConfigGroup.Groups, ReportConfigGroup.Columns, ReportConfigGroup.AvailableColumns]\n };\n }\n\n return item;\n };\n\n const defaultReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Section\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Indication\"\n },\n {\n \"ColumnAlias\": \"Line\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"JournalEntry_Amount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n\n };\n\n /** Backend sends account ids that are needed for drilldown only for the leaves\n * => we need to collect those data and propagate them to all levels */\n const rowsDataFactory = (rowsData: IReportRowDef[]): IReportRowDef[] => {\n enhanceRowsWithAccountIds(rowsData, [\"AccountNumbers\"]);\n // clear cache for getColumnGroupForColumn, in case column ids has changed\n getColumnGroupForColumn.cache.clear();\n\n return rowsData;\n };\n\n const columnOverrides = (columnId: string): IFieldInfoProperties => {\n const formatCurrency = (val: number, storage: ReportStorage) => {\n return CurrencyType.format(val, {\n currency: getCompanyCurrency(storage.context),\n scale: currencyUnit({ storage: storage, settings: {} })\n });\n };\n\n if (columnId === \"Indication\") {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n if (isNotDefined(val) || args.entity.ReportSectionTypeCode === ReportSectionTypeCode.Sum) {\n return null;\n }\n\n const isIncome = args.entity.ReportSectionTypeCode === ReportSectionTypeCode.Income;\n\n return {\n value: ({val}),\n tooltip: val as string\n };\n }\n };\n } else if (columnId.startsWith(\"Value\")) {\n return {\n formatter: (val: TValue, args: IFormatOptions) => {\n const storage = args.storage as ReportStorage;\n const formattedVal = formatCurrency(val as number, storage);\n\n if (!val || val === 0 || args.entity.ReportSectionTypeCode === ReportSectionTypeCode.Sum) {\n return formattedVal;\n }\n\n const isComp = columnId.includes(\"Comp\");\n const accountsPropName = \"AccountNumbers\" + (isComp ? \"_Comp\" : \"\");\n const accounts = args.entity[accountsPropName];\n\n const filters: TRecordValue = {\n [CommonReportProps.dateRange]: CUSTOM_DATE_RANGE_ID,\n [AccountAnalysisProps.accounts]: accounts,\n [AccountAnalysisProps.sumAmounts]: true,\n ...getLabelDrilldownFilters(args.entity)\n };\n\n const columnGroup = getColumnGroupForColumn(columnId, args.storage as ReportStorage);\n const dateStart: string = columnGroup.AdditionalInfo.FirstDayOfPeriod;\n const dateEnd: string = columnGroup.AdditionalInfo.LastDayOfPeriod;\n\n const dateRangeParam: IValueInterval = {\n from: formatDateToDateString(dateStart),\n to: formatDateToDateString(dateEnd)\n };\n\n filters[CommonReportProps.dateRangeCustomValue] = dateRangeParam;\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_ACCOUNT_ANALYSIS,\n context: args.storage.context,\n storage: args.storage,\n filters\n });\n }\n };\n }\n\n return null;\n };\n\n const currencyUnit = (args: IGetReportDefVal) => {\n return getNestedValue(CommonReportProps.units, args.storage.data.entity);\n };\n\n const dateRangeDef = getDateRangeDef();\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n IncomeStatementProps.incomeStatementStructure,\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue,\n CommonReportProps.comparison,\n CommonReportProps.showDelta,\n CommonReportProps.splitIntoPeriods,\n CommonReportProps.units\n ],\n filterDefinition: {\n [IncomeStatementProps.incomeStatementStructure]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.M,\n defaultValue: IncomeStatementStructure.ByNatureOfExpense,\n label: i18next.t(\"Reporting:IncomeStatement.IncomeStatementStructure\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Reporting:IncomeStatement.ByNatureOfExpense\"),\n id: IncomeStatementStructure.ByNatureOfExpense\n },\n {\n label: i18next.t(\"Reporting:IncomeStatement.ByFunctionOfExpense\"),\n id: IncomeStatementStructure.ByFunctionOfExpense\n }\n ]\n }\n },\n [CommonReportProps.dateRange]: {\n ...dateRangeDef,\n fieldSettings: {\n ...dateRangeDef.fieldSettings,\n transformFetchedItems: (items: ISelectItem[]): ISelectItem[] => {\n return items.filter(item => !item.id.toString().includes(\"FiscalPeriod\"));\n }\n }\n },\n [CommonReportProps.dateRangeCustomValue]: getDateRangeCustomValueDef(),\n [CommonReportProps.comparison]: getComparisonDef(),\n [CommonReportProps.showDelta]: {\n type: FieldType.ComboBox,\n width: BasicInputSizes.M,\n defaultValue: \"No\",\n label: i18next.t(\"Reporting:BalanceSheet.ShowDelta\"),\n labelStatus: LabelStatus.Visible,\n isDisabled: (arg) => {\n const comparison = arg.storage.getValueByPath(CommonReportProps.comparison);\n\n return !comparison || comparison === FiscalYearComparison.None;\n },\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"Reporting:IncomeStatement.InValues\"),\n id: IncomeStatementDelta.Yes\n },\n {\n label: i18next.t(\"Reporting:IncomeStatement.InPercent\"),\n id: IncomeStatementDelta.InPercent\n }\n ],\n additionalItems: [\n {\n label: i18next.t(\"Reporting:IncomeStatement.DontShow\"),\n id: IncomeStatementDelta.No,\n groupId: SelectGroups.Default\n }\n ]\n }\n },\n [CommonReportProps.splitIntoPeriods]: getSplitIntoPeriodsDef(),\n [CommonReportProps.units]: getUnitsDef()\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n // filters that are not dynamic and can be specified before hand\n // rest are created AFTER the data are loaded from BE\n defaultFilters: [\n BindingContext.localContext(\"Section\"),\n BindingContext.localContext(\"Indication\"),\n BindingContext.localContext(\"Line\")\n ],\n filterDefinition: {\n [BindingContext.localContext(\"Section\")]: {\n label: i18next.t(\"Reporting:Columns.Section\"),\n valueType: ValueType.String,\n isValueHelp: true\n },\n [BindingContext.localContext(\"Indication\")]: {\n label: i18next.t(\"Reporting:Columns.Indication\"),\n valueType: ValueType.String,\n isValueHelp: true\n },\n [BindingContext.localContext(\"Line\")]: {\n label: i18next.t(\"Reporting:Columns.Line\"),\n valueType: ValueType.String,\n isValueHelp: true\n }\n }\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage, false, false);\n };\n\n return {\n title, path, id: tableId,\n columnOverrides, onAfterTableLoad,\n onBeforeLoad, rowsDataFactory, currencyUnit,\n onGroupToggle, rowFormatter, initialSortBy,\n metaColumnFormatter, updateFiltersFromResponse,\n columnFormatter: columnBorderFormatter, filterBarDef, parameters,\n defaultReportHierarchy,\n configListItemsOverride\n };\n};","import { PredefinedFilter } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy } from \"@components/smart/smartTable\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { isAccountAssignmentCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort, TextAlign } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { TValue } from \"../../../global.types\";\nimport { getThemeColorForPaymentStatus } from \"../../banks/Payments.utils\";\nimport { CommonReportProps, getDocumentNumberOursOverride } from \"../CommonDefs\";\nimport {\n composedDateRangeOnBeforeLoadCallback,\n getComposedDateRangeFieldsDefs\n} from \"../customFilterComponents/ComposedDateRange\";\nimport { IReportTableDefinition, TReportColumnOverrides } from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { DEFAULT_RANGE } from \"@pages/reports/customFilterComponents/ComposedDateRange.utils\";\n\nexport const PAYMENT_JOURNAL_PATH = \"PaymentJournal\";\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.PaymentJournal;\n const title = i18next.t(\"Reporting:PaymentJournal.Title\");\n const path = PAYMENT_JOURNAL_PATH;\n const initialSortBy = [{ id: \"Document_DateCreated\", sort: Sort.Desc }];\n const parameters: string[] = [CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue];\n const hasAccounting = isAccountAssignmentCompany(context);\n\n const columnOverrides: TReportColumnOverrides = {\n PaymentStatus_Name: {\n formatter: (value: TValue, args: IFormatOptions) => {\n const color = getThemeColorForPaymentStatus(args.entity[\"PaymentDocument_PaymentStatusCode\"]);\n return {\n value: {value} ,\n tooltip: value ?? \"\"\n };\n },\n textAlign: TextAlign.Center\n },\n PaymentDocument_NumberOurs: getDocumentNumberOursOverride({\n documentTypeProperty: \"PaymentDocument_DocumentTypeCode\",\n documentIdProperty: \"PaymentDocument_Id\"\n })\n };\n\n const dateRangeFieldDefs = getComposedDateRangeFieldsDefs(tableId);\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange, CommonReportProps.dateRangeCustomValue\n ],\n filterDefinition: {\n ...dateRangeFieldDefs,\n [CommonReportProps.dateRange]: {\n ...dateRangeFieldDefs[CommonReportProps.dateRange],\n defaultValue: hasAccounting ? DEFAULT_RANGE : PredefinedFilter.ThisYear\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await composedDateRangeOnBeforeLoadCallback(storage);\n };\n\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": false,\n \"Groups\": [],\n \"Columns\": [\n { \"ColumnAlias\": \"PaymentDocument_NumberOurs\" },\n { \"ColumnAlias\": \"DocumentType_Name\" },\n { \"ColumnAlias\": \"PaymentStatus_Name\" },\n { \"ColumnAlias\": \"PaymentDocument_TransactionAmount\" },\n { \"ColumnAlias\": \"PaymentDocument_TransactionAmountDue\" },\n { \"ColumnAlias\": \"PaymentDocument_Note\" },\n { \"ColumnAlias\": \"PaymentDocument_PaymentDate\" },\n { \"ColumnAlias\": \"PaymentDocument_Amount\" }\n ],\n \"Aggregations\": []\n };\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, parameters,\n columnOverrides, onBeforeLoad, defaultReportHierarchy\n };\n};\n","import styled from \"styled-components/macro\";\nimport { ellipsis } from \"polished\";\n\nexport const CustomCellContentWrapper = styled.div`\n position: relative;\n white-space: nowrap;\n`;\n\nexport const CustomCellOriginalContent = styled.div`\n ${ellipsis()};\n`;\n\nexport const CustomCellCustomContent = styled.div`\n position: absolute;\n top: 0;\n left: calc(100% + 32px);\n`;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISmartReportTableRow } from \"@components/smart/smartTable\";\nimport { filterChildRowsBy, updateRows } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { ICellValueObject, IRow } from \"@components/table\";\nimport {\n EntitySetName,\n IReceivableAdjustmentTypeEntity,\n IRequiredAccountEntity,\n RequiredAccountEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n ClearedStatusCode,\n CurrencyCode,\n DocumentLinkTypeCode,\n DocumentTypeCode,\n PostedStatusCode,\n ReceivableAdjustmentTypeCode,\n RequiredAccountTypeCode,\n VatStatementStatusCode,\n WriteOffTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { REST_API_URL } from \"../../../constants\";\nimport { RowType, Status, ValueType } from \"../../../enums\";\nimport { ColoredText } from \"../../../global.style\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { IFormStorageDefaultCustomData } from \"../../../views/formView/FormStorage\";\nimport { getDocumentPairedTable } from \"../../documents/Document.utils\";\nimport {\n CustomCellContentWrapper,\n CustomCellCustomContent,\n CustomCellOriginalContent\n} from \"./ReceivableAdjustments.styles\";\n\nexport const SMALL_ADJUSTMENT_MAX = 30000;\nexport const RECEIVABLE_ADJUSTMENTS_FORM_TAB = \"ReceivableAdjustments\";\nconst ADJUSTMENTS_URL = `${REST_API_URL}/ReceivableAdjustmentProcessing`;\nexport const PROCESS_ADJUSTMENTS_URL = `${ADJUSTMENTS_URL}/Process`;\nexport const REMOVE_ADJUSTMENTS_URL = `${ADJUSTMENTS_URL}/DeleteCurrent`;\nexport const REC_ADJ_LINK_TYPES = [\n DocumentLinkTypeCode.ReceivableAdjustment, DocumentLinkTypeCode.ReceivableAdjustmentSmall,\n DocumentLinkTypeCode.ReceivableAdjustmentCancellation,\n DocumentLinkTypeCode.DebtWriteOffTaxDeductible, DocumentLinkTypeCode.DebtWriteOffNotTaxDeductible\n];\nexport const WRITE_OFF_REC_ADJ_TYPES = [ReceivableAdjustmentTypeCode.TaxWriteOff, ReceivableAdjustmentTypeCode.NontaxWriteOff];\nexport const REC_ADJ_TYPES_WITH_PARTIAL_AMOUNTS = [\n ...WRITE_OFF_REC_ADJ_TYPES,\n ReceivableAdjustmentTypeCode.ReceivableAdjustmentCancellationPer8ZOR\n];\n\nexport interface IReceivableAdjustmentsCustomData extends IFormStorageDefaultCustomData {\n adjustmentTypeCode?: ReceivableAdjustmentTypeCode;\n adjustmentTypes?: IReceivableAdjustmentTypeEntity[];\n requiredAccounts?: IRequiredAccountEntity[];\n}\n\nexport interface IProcessAdjustmentsParams {\n ReceivableAdjustmentTypeCode: string;\n DateAccountingTransaction: string;\n AccountAssignment: {\n SelectionCode?: string;\n ShortName?: string;\n Name?: string;\n CreditAccountId?: number;\n DebitAccountId: number;\n ChartOfAccountsId: number;\n };\n DocumentIds: number[];\n PartialAdjustments?: {\n DocumentId: number;\n Amount: number;\n }[];\n}\n\nexport interface IRecAdjDocument {\n BusinessPartner_Id?: number;\n BusinessPartner_Name?: string;\n BusinessPartner_BusinessPartnerId?: number;\n MonthsAfterDateDue?: number;\n ReceivableAdjustment_AdjustmentAmount_Small?: number;\n ReceivableAdjustment_NumberOurs?: string;\n ReceivableAdjustment_AdjustmentAmount_Active?: number;\n ReceivableAdjustment_AdjustmentAmount_Total?: number;\n ReceivableAdjustmentInternalDocumentIds_Total?: string[];\n ReceivableAdjustmentInternalDocumentIds_Active?: string[];\n ReceivableAdjustment_Amount?: number;\n ReceivableAdjustment_AmountDue?: number;\n ReceivableAdjustment_CompanyId?: number;\n ReceivableAdjustment_CurrencyCode?: CurrencyCode;\n ReceivableAdjustment_DateDue?: string;\n ReceivableAdjustment_DocumentTypeCode?: DocumentTypeCode;\n DocumentStatus?: string;\n ReceivableAdjustment_PostedStatusCode?: PostedStatusCode;\n ReceivableAdjustment_ClearedStatusCode?: ClearedStatusCode;\n ReceivableAdjustment_VatStatementStatusCode?: VatStatementStatusCode;\n ReceivableAdjustment_Id: number;\n ReceivableAdjustment_WriteOffCode?: WriteOffTypeCode;\n ReceivableAdjustment_WriteOffName?: string;\n ReceivableAdjustment_WriteOffDateAccountingTransaction?: string;\n ReceivableAdjustment_WriteOffFiscalYearId?: number;\n ReceivableAdjustment_WriteOffId?: number;\n ReceivableAdjustment_WriteOffNumberOurs?: string;\n}\n\nexport interface IPartialAdjustment {\n Id: number;\n NumberOurs: string;\n DocumentTypeCode: DocumentTypeCode;\n BusinessPartner_Name: string;\n BusinessPartner_Id: number;\n AmountDue: number;\n Amount: number;\n CurrencyCode: CurrencyCode;\n}\n\nexport const getReceivableAdjustmentsTab = (isInternalDocument: boolean, isCbaCompany: boolean): IFormGroupDef => {\n // internal document shows different values in this tab than all other documents\n // https://solitea-cz.atlassian.net/browse/DEV-12168\n const linkTypes = isInternalDocument ? REC_ADJ_LINK_TYPES :\n [DocumentLinkTypeCode.ReceivableAdjustment, DocumentLinkTypeCode.ReceivableAdjustmentSmall, DocumentLinkTypeCode.ReceivableAdjustmentCancellation];\n\n return {\n id: RECEIVABLE_ADJUSTMENTS_FORM_TAB,\n title: i18next.t(\"Document:FormTab.ReceivableAdjustments\"),\n table: getDocumentPairedTable({\n selectQuery: `TypeCode in (${transformToODataString(linkTypes, ValueType.String)})`,\n addAmountColumn: true,\n isCbaCompany\n })\n };\n};\n\ninterface IGetDefaultAccAss {\n requiredAccounts: IRequiredAccountEntity[];\n adjustmentType: ReceivableAdjustmentTypeCode;\n adjustmentTypes: IReceivableAdjustmentTypeEntity[];\n}\n\nexport const getDefaultAccAss = ({ requiredAccounts, adjustmentType, adjustmentTypes }: IGetDefaultAccAss) => {\n let debitAccount;\n let creditAccount;\n\n const adjustmentGroup = adjustmentTypes.find((at) => at.Code === adjustmentType)?.GroupCode;\n const requiredAccount = adjustmentGroup && requiredAccounts.find((ra) => ra.ReceivableAdjustmentGroupCode === adjustmentGroup);\n\n switch (adjustmentType) {\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8cZORUnder30Thousand:\n debitAccount = \"558\";\n creditAccount = requiredAccount?.AccountNumber ?? \"391004\";\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8aZOR50:\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8aZOR100:\n debitAccount = \"558\";\n creditAccount = requiredAccount?.AccountNumber ?? \"391002\";\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8ZORInsolvency:\n debitAccount = \"558\";\n creditAccount = requiredAccount?.AccountNumber ?? \"391001\";\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentCancellationPer8ZOR:\n debitAccount = \"391\";\n creditAccount = requiredAccount?.AccountNumber ?? \"558\";\n break;\n case ReceivableAdjustmentTypeCode.TaxWriteOff:\n debitAccount = \"546001\";\n break;\n case ReceivableAdjustmentTypeCode.NontaxWriteOff:\n debitAccount = \"546009\";\n break;\n }\n\n if (!debitAccount) {\n return null;\n }\n\n return {\n DebitAccount: debitAccount,\n CreditAccount: creditAccount\n };\n};\n\nconst isDocumentWithUnder30PossiblyApplied = (doc: IRecAdjDocument) => {\n let isApplicable = true;\n const monthsAfterDueDate = doc.MonthsAfterDateDue;\n\n isApplicable = isApplicable && monthsAfterDueDate >= 12;\n isApplicable = isApplicable && monthsAfterDueDate < 30;\n isApplicable = isApplicable && doc.ReceivableAdjustment_AdjustmentAmount_Small > 0;\n\n\n return isApplicable;\n};\n\nexport const isDocumentApplicable = (doc: IRecAdjDocument, adjustmentType: ReceivableAdjustmentTypeCode, isRemoving: boolean): boolean => {\n let isApplicable = !doc.ReceivableAdjustment_WriteOffCode || doc.ReceivableAdjustment_WriteOffCode === WriteOffTypeCode.No;\n\n if (isRemoving) {\n return doc.ReceivableAdjustment_AdjustmentAmount_Active > 0 || (!!doc.ReceivableAdjustment_WriteOffCode && doc.ReceivableAdjustment_WriteOffCode !== WriteOffTypeCode.No);\n }\n\n const monthsAfterDueDate = doc.MonthsAfterDateDue;\n\n switch (adjustmentType) {\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8cZORUnder30Thousand:\n isApplicable = isApplicable && monthsAfterDueDate >= 12;\n isApplicable = isApplicable && monthsAfterDueDate < 30;\n isApplicable = isApplicable && doc.ReceivableAdjustment_Amount <= SMALL_ADJUSTMENT_MAX;\n isApplicable = isApplicable && !doc.ReceivableAdjustment_AdjustmentAmount_Total;\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8aZOR50:\n isApplicable = monthsAfterDueDate >= 18 && monthsAfterDueDate < 30;\n isApplicable = isApplicable && (doc.ReceivableAdjustment_AdjustmentAmount_Total < doc.ReceivableAdjustment_AmountDue);\n isApplicable = isApplicable && (!doc.ReceivableAdjustment_AdjustmentAmount_Total || doc.ReceivableAdjustment_AdjustmentAmount_Total < doc.ReceivableAdjustment_AdjustmentAmount_Active);\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8aZOR100:\n isApplicable = monthsAfterDueDate >= 30;\n isApplicable = isApplicable && (doc.ReceivableAdjustment_AdjustmentAmount_Total < doc.ReceivableAdjustment_AmountDue);\n isApplicable = isApplicable && (!doc.ReceivableAdjustment_AdjustmentAmount_Total || doc.ReceivableAdjustment_AdjustmentAmount_Total < doc.ReceivableAdjustment_AdjustmentAmount_Active);\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentCancellationPer8ZOR:\n isApplicable = doc.ReceivableAdjustment_AdjustmentAmount_Total > 0 && doc.ReceivableAdjustment_AdjustmentAmount_Total !== doc.ReceivableAdjustment_AdjustmentAmount_Active;\n break;\n case ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8ZORInsolvency:\n isApplicable = isApplicable && (!doc.ReceivableAdjustment_AdjustmentAmount_Total || doc.ReceivableAdjustment_AdjustmentAmount_Total < doc.ReceivableAdjustment_AmountDue);\n break;\n case ReceivableAdjustmentTypeCode.NontaxWriteOff:\n case ReceivableAdjustmentTypeCode.TaxWriteOff:\n break;\n default:\n isApplicable = true;\n }\n\n return isApplicable;\n};\n\ninterface IEnhanceRowContent {\n row: ISmartReportTableRow;\n alert: IAlertProps;\n}\n\nconst getOriginalBpRowValue = (row: ISmartReportTableRow): string => {\n const originalValue = row.values[\"BusinessPartner_Name\"];\n const originalStringValue: string = (originalValue as ICellValueObject)?.tooltip as string ?? originalValue?.toString();\n\n return originalStringValue;\n};\n\nexport const enhanceRowWithCustomContent = (row: ISmartReportTableRow, selectedRows: ISmartReportTableRow[], adjustmentType: ReceivableAdjustmentTypeCode, isRemoving: boolean): IEnhanceRowContent => {\n if (isRemoving || adjustmentType !== ReceivableAdjustmentTypeCode.ReceivableAdjustmentPer8cZORUnder30Thousand) {\n return {\n row,\n alert: null\n };\n }\n\n const allChildrenValueRows: IRow[] = filterChildRowsBy(row, (childRow: IRow) => {\n return childRow.type === RowType.Value;\n });\n\n const amount = allChildrenValueRows.reduce((sum: number, currentRow: ISmartReportTableRow) => {\n let newSum = sum;\n const currentRowValues = currentRow.customData.originalValues as IRecAdjDocument;\n\n if (selectedRows.includes(currentRow)) {\n newSum += currentRowValues.ReceivableAdjustment_Amount;\n } else if (isDocumentWithUnder30PossiblyApplied(currentRowValues)) {\n // we have to subtract items that Small was already applied on, but that are not written off\n newSum += currentRowValues.ReceivableAdjustment_AdjustmentAmount_Active;\n }\n\n return newSum;\n }, 0);\n const amountLeft = SMALL_ADJUSTMENT_MAX - amount;\n const content = (\n <>\n {`${i18next.t(\"ReceivableAdjustments:RowContent.Small\")}: `}\n 0 ? \"C_SEM_text_warning\" : \"C_SEM_text_bad\"}>\n {formatCurrency(SMALL_ADJUSTMENT_MAX - amount, CurrencyCode.CzechKoruna)}\n \n \n );\n\n const originalStringValue = getOriginalBpRowValue(row);\n const newBusinessPartnerValue: ICellValueObject = {\n tooltip: originalStringValue,\n value: (\n <>\n \n \n {originalStringValue}\n \n \n {content}\n \n \n \n )\n };\n const newOpenedValues = {\n ...row.openedValues,\n \"BusinessPartner_Name\": newBusinessPartnerValue\n };\n const updatedRow: ISmartReportTableRow = {\n ...row,\n values: newOpenedValues,\n openedValues: newOpenedValues,\n allowOverflow: { BusinessPartner_Name: true }\n };\n\n\n const alert: IAlertProps = amountLeft >= 0 ? null : {\n title: i18next.t(\"ReceivableAdjustments:Error.Small\"),\n isSmall: true,\n status: Status.Error\n };\n\n return {\n row: updatedRow,\n alert: alert\n };\n\n};\n\nexport const resetRows = (rows: Record, rowsOrder: string[], backupRows: Record): Record => {\n return updateRows({\n rows,\n rowsOrder,\n updateFn: (row: ISmartReportTableRow) => {\n const cleanRow = {\n ...(backupRows[row.id.toString()] ?? row),\n isDivider: false,\n isDisabled: false\n };\n\n if (row.openedValues) {\n const cleanOpenedValues = {\n ...row.openedValues,\n BusinessPartner_Name: getOriginalBpRowValue(row)\n };\n\n cleanRow.values = cleanOpenedValues;\n cleanRow.openedValues = cleanOpenedValues;\n }\n\n return cleanRow;\n }\n });\n};\n\nexport const fetchReceivableAdjustmentTypes = memoizeOne(\n async (oData: OData): Promise => {\n const res = await oData.getEntitySetWrapper(EntitySetName.ReceivableAdjustmentTypes)\n .query()\n .fetchData();\n\n return res?.value;\n }\n);\n\nexport const fetchRequiredAccounts = memoizeOne(\n async (oData: OData): Promise => {\n const res = await oData.getEntitySetWrapper(EntitySetName.RequiredAccounts)\n .query()\n .filter(`${RequiredAccountEntity.RequiredAccountTypeCode} eq '${RequiredAccountTypeCode.ReceivableAdjustment}'`)\n .fetchData();\n\n return res?.value;\n }\n);","import { getIntentLink, getTableDrillDownLink } from \"@components/drillDown/DrillDown.utils\";\nimport { SwitchType } from \"@components/inputs/switch/Switch\";\nimport { IGetValueArgs, TGetValueFn } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {\n IReportColumnFormatterArgs,\n IReportHierarchy,\n IReportRowDef,\n TReportColumnFormatter\n} from \"@components/smart/smartTable\";\nimport { DimmedValue } from \"@components/smart/smartTable/SmartReportTable.styles\";\nimport { createBindingContextFromValidatorPath } from \"@odata/Data.utils\";\nimport { getRouteByDocumentType } from \"@odata/EntityTypes\";\nimport { EntitySetName, IReceivableAdjustmentTypeEntity, IRequiredAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport {\n AccountCategoryCode,\n AccountTypeCode,\n DocumentTypeCode,\n ReceivableAdjustmentTypeCode,\n TaxApplicabilityCode,\n WriteOffTypeCode\n} from \"@odata/GeneratedEnums\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { ValidationError } from \"yup\";\n\nimport {\n BasicInputSizes,\n ConfigListItemBoundType,\n FieldType,\n LabelStatus,\n QueryParam,\n ReportTableRowType,\n Sort,\n TextAlign,\n ValidatorType\n} from \"../../../enums\";\nimport { TRecordAny, TValue } from \"../../../global.types\";\nimport { ValidationMessage } from \"../../../model/Validator.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { ROUTE_BUSINESS_PARTNER, ROUTE_DOCUMENT_JOURNAL } from \"../../../routes\";\nimport { formatCurrency } from \"../../../types/Currency\";\nimport DateType, { getUtcDate } from \"../../../types/Date\";\nimport { IFormDef } from \"../../../views/formView/Form\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport {\n getAccAssignmentGroup,\n getAccountSelectionFieldsDef,\n IGetAccAssignmentGroupArgs\n} from \"../../accountAssignment/AccountAssignment.utils\";\nimport { DOCUMENT_DATE_CHANGE_DEBOUNCE } from \"../../documents/DocumentDef\";\nimport { getFiscalYearByDate, getOldestActiveFY } from \"../../fiscalYear/FiscalYear.utils\";\nimport { setDefForTesting } from \"../../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../../PageUtils\";\nimport { getDocumentNumberOursOverride } from \"../CommonDefs\";\nimport { DocumentJournalVariant, getReportDocumentStatusDef } from \"../documentJournal/DocumentJournalDef\";\nimport {\n IReportTableDefinition,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TReportColumnOverrides\n} from \"../Report.utils\";\nimport { getWholeDateRangeFilter } from \"../ReportFilter.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport {\n getDefaultAccAss,\n IReceivableAdjustmentsCustomData,\n REC_ADJ_TYPES_WITH_PARTIAL_AMOUNTS,\n WRITE_OFF_REC_ADJ_TYPES\n} from \"./ReceivableAdjustments.utils\";\n\nexport const ReceivableAdjustmentsProps = {\n dueDateOption: BindingContext.localContext(\"DueDateOption\")\n};\n\nenum DueDateOption {\n All = \"All\",\n OlderThan12Months = \"OlderThan12Months\"\n}\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.ReceivableAdjustments;\n const title = i18next.t(\"Reporting:ReceivableAdjustments.Title\");\n const path = \"ReceivableAdjustments\";\n const initialSortBy = [{ id: \"BusinessPartner_Name\", sort: Sort.Asc }];\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n ReceivableAdjustmentsProps.dueDateOption\n ],\n filterDefinition: {\n [ReceivableAdjustmentsProps.dueDateOption]: {\n type: FieldType.ComboBox,\n defaultValue: DueDateOption.OlderThan12Months,\n width: BasicInputSizes.L,\n label: i18next.t(\"ReceivableAdjustments:Parameters.DueDate\"),\n fieldSettings: {\n items: [\n {\n label: i18next.t(\"ReceivableAdjustments:Parameters.DueDateAll\"),\n id: DueDateOption.All\n },\n {\n label: i18next.t(\"ReceivableAdjustments:Parameters.DueDate12\"),\n id: DueDateOption.OlderThan12Months\n }\n ]\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n const disableAggregateButton = true;\n const updateFiltersFromResponse = true;\n\n const parameters: string[] = [\n ReceivableAdjustmentsProps.dueDateOption\n ];\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"BusinessPartner_Name\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"DocumentStatus\"\n },\n {\n \"ColumnAlias\": \"ReceivableAdjustment_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"ReceivableAdjustment_Amount\"\n },\n {\n \"ColumnAlias\": \"ReceivableAdjustment_AmountDue\"\n }\n ],\n \"Aggregations\": []\n };\n\n const enhanceRowsWithDocumentIds = (rowsData: IReportRowDef[]): { total: string[], active: string[] } => {\n const docIdsTotal: string[] = [];\n const docIdsActive: string[] = [];\n\n for (const row of rowsData) {\n if (row.Rows?.length > 0 && (row.Type === ReportTableRowType.Group || row.Type === ReportTableRowType.MergedGroup)) {\n const docIds = enhanceRowsWithDocumentIds(row.Rows);\n docIdsTotal.push(...docIds.total);\n docIdsActive.push(...docIds.active);\n\n row.Value.ReceivableAdjustmentInternalDocumentIds_Total = docIds.total;\n row.Value.ReceivableAdjustmentInternalDocumentIds_Active = docIds.active;\n } else if (row.Type === ReportTableRowType.Value) {\n docIdsTotal.push(...row.Value.ReceivableAdjustmentInternalDocumentIds_Total as string[]);\n docIdsActive.push(...row.Value.ReceivableAdjustmentInternalDocumentIds_Active as string[]);\n } else if (row.Type === ReportTableRowType.Total || row.Type === ReportTableRowType.GrandTotal) {\n row.Value.ReceivableAdjustmentInternalDocumentIds_Total = docIdsTotal;\n row.Value.ReceivableAdjustmentInternalDocumentIds_Active = docIdsActive;\n }\n }\n\n return {\n total: docIdsTotal,\n active: docIdsActive\n };\n };\n\n // backend doesn't send ReceivableAdjustmentInternalDocumentIds for Groups and Totals, only for Values\n // we need to enhance all the rows with it\n const rowsDataFactory = (rowsData: IReportRowDef[]): IReportRowDef[] => {\n enhanceRowsWithDocumentIds(rowsData);\n\n return rowsData;\n };\n\n const getCommonDrilldownSettings = (documentIds: string[]) => {\n const wholeDateRangeFilter = getWholeDateRangeFilter();\n const customQueryString = `${QueryParam.Variant}=${DocumentJournalVariant.ReceivableAdjustment}&${wholeDateRangeFilter.customQueryString}`;\n\n const filters: TRecordAny = {\n ...wholeDateRangeFilter.filters\n };\n\n filters[BindingContext.localContext(\"DocumentType_Name\")] = [DocumentTypeCode.InternalDocument];\n filters[BindingContext.localContext(\"Document_NumberOurs\")] = documentIds;\n\n return { filters, customQueryString };\n };\n\n const getTotalFormatter = (property: string) => {\n return (val: TValue, args: IFormatOptions) => {\n const formattedVal = formatCurrency(val, args.entity[\"ReceivableAdjustment_CurrencyCode\"] ?? getCompanyCurrency(args.context));\n\n if (!val || val === 0) {\n return formattedVal;\n }\n\n const documentIds: string[] = args.entity[property];\n\n return getTableDrillDownLink(formattedVal, {\n route: ROUTE_DOCUMENT_JOURNAL,\n context: args.storage.context,\n storage: args.storage,\n ...getCommonDrilldownSettings(documentIds)\n });\n };\n };\n\n const columnOverrides: TReportColumnOverrides = {\n ReceivableAdjustment_NumberOurs: getDocumentNumberOursOverride({\n documentTypeProperty: \"ReceivableAdjustment_DocumentTypeCode\",\n documentIdProperty: \"ReceivableAdjustment_Id\"\n }),\n ReceivableAdjustment_AdjustmentAmount_Total: {\n formatter: getTotalFormatter(\"ReceivableAdjustmentInternalDocumentIds_Total\")\n },\n ReceivableAdjustment_AdjustmentAmount_Active: {\n formatter: getTotalFormatter(\"ReceivableAdjustmentInternalDocumentIds_Active\")\n },\n DocumentStatus: getReportDocumentStatusDef(\"ReceivableAdjustment\"),\n MonthsAfterDateDue: {\n formatter: (val: TValue, args: IFormatOptions): string => {\n if (!val) {\n return null;\n }\n\n return `${val} ${args.storage.t(\"Common:Time.Month\", { count: val as number })}`;\n }\n },\n ReceivableAdjustment_WriteOffName: {\n formatter: (val: TValue, args: IFormatOptions) => {\n if (!args.entity.hasOwnProperty(\"ReceivableAdjustment_WriteOffCode\")) {\n return \"\";\n }\n\n const value = args.entity[\"ReceivableAdjustment_WriteOffName\"];\n const code = args.entity[\"ReceivableAdjustment_WriteOffCode\"];\n\n if (!code || code === WriteOffTypeCode.No) {\n return {\n tooltip: value,\n value: (\n \n {value}\n \n )\n };\n }\n\n return getTableDrillDownLink(value, {\n route: ROUTE_DOCUMENT_JOURNAL,\n context: args.storage.context,\n storage: args.storage,\n ...getCommonDrilldownSettings(args.entity[\"ReceivableAdjustment_WriteOffNumberOurs\"])\n });\n }\n }\n };\n\n const columnFormatter: TReportColumnFormatter = (args: IReportColumnFormatterArgs) => {\n if (args.column.id !== \"MonthsAfterDateDue\") {\n return args.column;\n }\n\n const column = { ...args.column, disableSort: true };\n const fiscalYearEnd = args.columnDef?.AdditionalInfo?.ActiveFiscalYear_DateEnd;\n\n column.info = `${i18next.t(\"Reporting:ReceivableAdjustments.ByDate\")} ${DateType.format(getUtcDate(fiscalYearEnd))}`;\n\n return column;\n };\n\n const configListItemsOverride: TGetReportConfigListItemOverride = {\n BusinessPartner_Name: {\n isRequired: true,\n isDisabled: true,\n group: ReportConfigGroup.Groups\n },\n ReceivableAdjustment_Amount: {\n isRequired: true,\n boundTo: ConfigListItemBoundType.Group,\n isCopyOnly: false,\n group: ReportConfigGroup.Columns\n },\n ReceivableAdjustment_AmountDue: {\n isRequired: true,\n boundTo: ConfigListItemBoundType.Group,\n isCopyOnly: false,\n group: ReportConfigGroup.Columns\n }\n };\n\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef,\n columnOverrides, columnFormatter,\n configListItemsOverride, rowsDataFactory,\n parameters, defaultReportHierarchy,\n disableAggregateButton, updateFiltersFromResponse\n };\n};\n\nconst getAdjustmentTypeCode = (args: IGetValueArgs): ReceivableAdjustmentTypeCode => {\n return (args.storage as FormStorage).getCustomData().adjustmentTypeCode;\n};\n\nconst getAdjustmentTypes = (args: IGetValueArgs): IReceivableAdjustmentTypeEntity[] => {\n return (args.storage as FormStorage).getCustomData().adjustmentTypes;\n};\n\nconst getRequiredAccounts = (args: IGetValueArgs): IRequiredAccountEntity[] => {\n return (args.storage as FormStorage).getCustomData().requiredAccounts;\n};\n\nexport const getDialogDefinition: IGetDefinition = (): IDefinition => {\n const entitySet = EntitySetName.InternalDocuments;\n\n const getAccountSettings: IGetAccAssignmentGroupArgs = {\n skipCreateCustom: true,\n skipNoneItem: true,\n skipNoRecordText: true,\n isLabelWithoutDefaultPrefix: true,\n transactionDatePath: \"DateAccountingTransaction\"\n };\n const accAssDefs = getAccountSelectionFieldsDef(DocumentTypeCode.InternalDocument, getAccountSettings);\n\n for (const path of Object.keys(accAssDefs)) {\n accAssDefs[path].isRequired = true;\n }\n\n const accAssGroup = getAccAssignmentGroup(getAccountSettings);\n const isPartialCancelPath = BindingContext.localContext(\"partialCancellation\");\n\n const form: IFormDef = {\n id: \"ReceivableAdjustmentsDialogSpecialForm\",\n translationFiles: getDialogDefinition.translationFiles,\n fieldDefinition: {\n \"DateAccountingTransaction\": {\n width: BasicInputSizes.M,\n label: i18next.t(\"ReceivableAdjustments:Form.DateAccountingTransaction\"),\n isRequired: true,\n fieldSettings: {\n debouncedWait: DOCUMENT_DATE_CHANGE_DEBOUNCE\n },\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value: TValue, args: IGetValueArgs) => {\n const fy = getFiscalYearByDate(args.storage.context, value as Date);\n const oldestActiveFy = getOldestActiveFY(args.storage.context);\n\n if (!fy || oldestActiveFy.Id !== fy.Id) {\n return new ValidationError(i18next.t(\"ReceivableAdjustments:Error.DateAccountingTransactionValidation\"), false, args.bindingContext.getNavigationPath(true));\n }\n\n return true;\n }\n }\n }\n },\n \"Explanation\": {\n // width: BasicInputSizes.M,\n isRequired: true,\n isReadOnly: true,\n type: FieldType.Input\n },\n [isPartialCancelPath]: {\n labelStatus: LabelStatus.Removed,\n type: FieldType.Switch,\n fieldSettings: {\n type: SwitchType.YesNo\n },\n isDisabled: (args: IGetValueArgs) => {\n // disable any of the amounts doesn't correspond to the full amount\n return args.storage.data.entity[BindingContext.localContext(\"selectedDocuments\")].reduce((shouldDisable: boolean, adjustment: any) => {\n return shouldDisable || (adjustment[BindingContext.localContext(\"Amount\")] !== adjustment[BindingContext.localContext(\"AmountDue\")]);\n }, false);\n }\n },\n ...accAssDefs,\n \"AccountAssignmentSelection/AccountAssignment\": {\n ...accAssDefs[\"AccountAssignmentSelection/AccountAssignment\"],\n filter: {\n // enhance original filter with another filter\n select: (args, other) => {\n const originalFilter = (accAssDefs[\"AccountAssignmentSelection/AccountAssignment\"].filter.select as TGetValueFn)(args, other);\n const adjustmentType = getAdjustmentTypeCode(args);\n const adjustmentTypes = getAdjustmentTypes(args);\n const requiredAccounts = getRequiredAccounts(args);\n const defaultAccounts = getDefaultAccAss({\n requiredAccounts, adjustmentType, adjustmentTypes\n });\n\n if (!defaultAccounts) {\n return originalFilter;\n }\n\n return `${originalFilter} AND startswith(DebitAccount/Number,'${defaultAccounts.DebitAccount.slice(0, 3)}') AND startswith(CreditAccount/Number,'${defaultAccounts.CreditAccount}')`;\n }\n }\n },\n \"AccountAssignmentSelection/AccountAssignment/DebitAccount\": {\n ...accAssDefs[\"AccountAssignmentSelection/AccountAssignment/DebitAccount\"],\n fieldSettings: {\n ...accAssDefs[\"AccountAssignmentSelection/AccountAssignment/DebitAccount\"].fieldSettings,\n preloadItems: true\n },\n filter: {\n // enhance original filter with another filter\n select: (args, other) => {\n const originalFilter = (accAssDefs[\"AccountAssignmentSelection/AccountAssignment/DebitAccount\"].filter.select as string);\n const adjustmentType = getAdjustmentTypeCode(args);\n const adjustmentTypes = getAdjustmentTypes(args);\n const requiredAccounts = getRequiredAccounts(args);\n const defaultAccounts = getDefaultAccAss({\n requiredAccounts, adjustmentType, adjustmentTypes\n });\n\n if (!defaultAccounts) {\n return originalFilter;\n }\n\n let extendFilter = `${originalFilter} AND (startswith(Number,'${defaultAccounts.DebitAccount.slice(0, 3)}')`;\n\n if (adjustmentType === ReceivableAdjustmentTypeCode.TaxWriteOff) {\n extendFilter += \" OR startswith(Number,'548')\";\n }\n\n extendFilter += \")\";\n\n if (WRITE_OFF_REC_ADJ_TYPES.includes(adjustmentType)) {\n extendFilter += ` AND CategoryCode eq '${AccountCategoryCode.IncomeStatement}' AND TypeCode eq '${AccountTypeCode.Expense}'`;\n extendFilter += ` AND TaxApplicabilityCode eq '${adjustmentType === ReceivableAdjustmentTypeCode.TaxWriteOff ? TaxApplicabilityCode.TaxApplicable : TaxApplicabilityCode.NotTaxApplicable}'`;\n }\n\n return extendFilter;\n }\n }\n },\n \"AccountAssignmentSelection/AccountAssignment/CreditAccount\": {\n ...accAssDefs[\"AccountAssignmentSelection/AccountAssignment/CreditAccount\"],\n fieldSettings: {\n ...accAssDefs[\"AccountAssignmentSelection/AccountAssignment/DebitAccount\"].fieldSettings\n },\n filter: {\n // enhance original filter with another filter\n select: (args, other) => {\n const originalFilter = (accAssDefs[\"AccountAssignmentSelection/AccountAssignment/CreditAccount\"].filter.select as string);\n const adjustmentType = getAdjustmentTypeCode(args);\n const adjustmentTypes = getAdjustmentTypes(args);\n const requiredAccounts = getRequiredAccounts(args);\n const defaultAccounts = getDefaultAccAss({\n requiredAccounts, adjustmentType, adjustmentTypes\n });\n if (!defaultAccounts) {\n return originalFilter;\n }\n\n return `${originalFilter} AND (startswith(Number,'${defaultAccounts.CreditAccount}'))`;\n }\n }\n },\n [`${BindingContext.localContext(\"selectedDocuments\")}/NumberOurs`]: {\n isCollectionField: true\n },\n [`${BindingContext.localContext(\"selectedDocuments\")}/BusinessPartner_Name`]: {\n isCollectionField: true\n },\n [`${BindingContext.localContext(\"selectedDocuments\")}/AmountDue`]: {\n isCollectionField: true\n },\n [`${BindingContext.localContext(\"selectedDocuments\")}/Amount`]: {\n isCollectionField: true\n }\n },\n additionalProperties: [\n // add as additionalProperty to force its settings into field info\n // (its not by default loaded for togglePropPath)\n { id: isPartialCancelPath }\n ],\n groups: [\n {\n ...accAssGroup,\n title: null,\n isSmallBottomMargin: true,\n rows: [[\n { id: \"DateAccountingTransaction\" },\n ...accAssGroup.rows[0]\n ]]\n },\n {\n id: \"explanation\",\n rows: [\n [{ id: \"Explanation\" }]\n ]\n },\n {\n id: \"partialAmounts\",\n title: (args) => {\n const adjustmentType = getAdjustmentTypeCode(args);\n\n if (WRITE_OFF_REC_ADJ_TYPES.includes(adjustmentType)) {\n return i18next.t(\"ReceivableAdjustments:Form.PartialWriteOff\");\n } else if (adjustmentType === ReceivableAdjustmentTypeCode.ReceivableAdjustmentCancellationPer8ZOR) {\n return i18next.t(\"ReceivableAdjustments:Form.PartialCancel\");\n }\n\n return \"\";\n },\n showGroupDivider: true,\n togglePropPath: isPartialCancelPath,\n lineItems: {\n collection: BindingContext.localContext(\"selectedDocuments\"),\n order: \"\",\n isItemRemovable: false,\n isItemCloneable: false,\n canAdd: false,\n canReorder: false,\n isItemVisible: (args: IGetValueArgs) => {\n return !!args.storage.getValueByPath(isPartialCancelPath);\n },\n columns: [\n {\n id: \"NumberOurs\",\n label: i18next.t(\"ReceivableAdjustments:Form.Document\"),\n width: BasicInputSizes.S,\n isReadOnly: true,\n formatter: (val, args) => {\n const recAdjDoc = args.storage.getValue(args.bindingContext.getParent());\n const docType: DocumentTypeCode = recAdjDoc[BindingContext.localContext(\"DocumentTypeCode\")];\n const docId = recAdjDoc[BindingContext.localContext(\"Id\")];\n\n return getIntentLink(val as string, {\n route: `${getRouteByDocumentType(docType)}/${docId}`,\n context: args.storage.context,\n storage: args.storage\n }) as any;\n }\n },\n {\n id: \"BusinessPartner_Name\",\n label: i18next.t(\"ReceivableAdjustments:Form.BusinessPartner\"),\n width: BasicInputSizes.M,\n isReadOnly: true,\n formatter: (val, args) => {\n const recAdjDoc = args.storage.getValue(args.bindingContext.getParent());\n const businessPartnerId = recAdjDoc[BindingContext.localContext(\"BusinessPartner_Id\")];\n\n return getIntentLink(val as string, {\n route: `${ROUTE_BUSINESS_PARTNER}/${businessPartnerId}`,\n context: args.storage.context,\n storage: args.storage\n }) as any;\n }\n },\n {\n id: \"AmountDue\",\n label: i18next.t(\"ReceivableAdjustments:Form.Total\"),\n textAlign: TextAlign.Right,\n width: BasicInputSizes.S,\n isReadOnly: true,\n formatter: (val, args) => {\n return formatCurrency(val, args.storage.getValue(args.bindingContext.getParent().navigate(\"CurrencyCode\")));\n }\n },\n {\n id: \"Amount\",\n label: i18next.t(\"ReceivableAdjustments:Form.Amount\"),\n textAlign: TextAlign.Right,\n width: BasicInputSizes.S,\n type: FieldType.NumberInput,\n affectedFields: [\n { id: isPartialCancelPath }\n ],\n validator: {\n type: ValidatorType.Custom,\n settings: {\n customValidator: (value, args, testContext) => {\n // Validator can't tell when the local context should be treated as collection\n // => the schema doesn't apply correctly for this local context case\n // => get the value using testContext.path\n const bc = createBindingContextFromValidatorPath(testContext.path, args.storage.data.bindingContext, args.storage.data.entity);\n const val = args.storage.getValue(bc);\n const item = args.storage.getValue(bc.getParent());\n\n if (Number.isNaN(val) || typeof val !== \"number\") {\n return new ValidationError(ValidationMessage.NotANumber, val, testContext.path);\n }\n\n if (val < 1) {\n const error = new ValidationError(ValidationMessage.SmallNumber, val, testContext.path);\n\n error.params = { min: 1 };\n\n return error;\n }\n\n if (val > item[BindingContext.localContext(\"AmountDue\")]) {\n const error = new ValidationError(ValidationMessage.BigNumber, val, testContext.path);\n\n error.params = { max: item[BindingContext.localContext(\"AmountDue\")] };\n\n return error;\n }\n\n return true;\n }\n }\n }\n\n }\n ]\n },\n isVisible: (args: IGetValueArgs) => {\n const adjustmentType = getAdjustmentTypeCode(args);\n\n return REC_ADJ_TYPES_WITH_PARTIAL_AMOUNTS.includes(adjustmentType);\n }\n }\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDialogDefinition.translationFiles = [\"ReceivableAdjustments\", \"Document\", \"Common\"];\nsetDefForTesting(\"ReceivableAdjustmentsDef\", getDialogDefinition);","import { getTableIntentLink } from \"@components/drillDown/DrillDown.utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { getSimpleBoolSelectItems } from \"@components/smart/FieldInfo\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy } from \"@components/smart/smartTable\";\nimport { ICellValueObject } from \"@components/table\";\nimport { getRouteByEntityType } from \"@odata/EntityTypes\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { BasicInputSizes, ConfigListItemBoundType, FieldType, Sort } from \"../../../enums\";\nimport { TRecordType, TValue } from \"../../../global.types\";\nimport BindingContext from \"../../../odata/BindingContext\";\nimport { CommonReportProps, getByDateDef, getDateRangeDef } from \"../CommonDefs\";\nimport {\n getAccountsParamDef,\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportConfigGroup,\n TimeAggregationFunction,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\n\nexport const SaldoProps = {\n accounts: BindingContext.localContext(\"Accounts\"),\n sumAmounts: BindingContext.localContext(\"SumAmounts\"),\n showBalancedSaldo: BindingContext.localContext(\"ShowBalancedSaldo\")\n};\n\nexport const saldoConfigListSettings: TRecordType = {\n Account: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n },\n JournalEntry_DocumentNumberOurs: {\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n },\n JournalEntry_Amount: {\n isRequired: true,\n areItemsReadOnly: true,\n boundTo: ConfigListItemBoundType.Column\n }\n};\n\n\nexport const getDefinition = (): IReportTableDefinition => {\n const tableId = ReportId.Saldo;\n const title = i18next.t(\"Reporting:Saldo.Title\");\n const path = \"Saldo\";\n const initialSortBy = [\n {\n id: `JournalEntry_DateAccountingTransaction_${TimeAggregationFunction.Day}`,\n sort: Sort.Asc\n }\n ];\n const disableAggregateButton = true;\n const parameters: string[] = [\n CommonReportProps.dateRange,\n CommonReportProps.byDate,\n SaldoProps.accounts,\n SaldoProps.sumAmounts,\n SaldoProps.showBalancedSaldo\n ];\n\n const defaultReportHierarchy: IReportHierarchy = {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Account\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_DocumentNumberOurs\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"JournalEntry_DateAccountingTransaction\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"JournalEntry_JournalEntryNumberOurs\"\n },\n {\n \"ColumnAlias\": \"JournalEntry_SymbolVariable\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"JournalEntry_Amount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n };\n\n const dateRangeDef = getDateRangeDef();\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n CommonReportProps.dateRange,\n CommonReportProps.byDate,\n SaldoProps.accounts,\n SaldoProps.sumAmounts,\n SaldoProps.showBalancedSaldo\n ],\n filterDefinition: {\n [CommonReportProps.dateRange]: {\n ...dateRangeDef,\n fieldSettings: {\n ...dateRangeDef.fieldSettings,\n transformFetchedItems: (items: ISelectItem[]): ISelectItem[] => {\n const transformedItems = items.filter(item => !item.id.toString().includes(\"FiscalPeriod\"));\n\n transformedItems.push({\n id: \"All\",\n label: i18next.t(\"Reporting:Saldo.AllRanges\")\n });\n\n return transformedItems;\n }\n }\n },\n [CommonReportProps.byDate]: getByDateDef(),\n [SaldoProps.accounts]: getAccountsParamDef([\"321\", \"311\"], false, true),\n [SaldoProps.sumAmounts]: {\n type: FieldType.ComboBox,\n defaultValue: true,\n label: i18next.t(\"Reporting:Saldo.SumAmounts\"),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n },\n [SaldoProps.showBalancedSaldo]: {\n width: BasicInputSizes.L,\n type: FieldType.ComboBox,\n defaultValue: false,\n label: i18next.t(\"Reporting:Saldo.ShowBalancedSaldo\"),\n fieldSettings: {\n items: getSimpleBoolSelectItems()\n }\n }\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const columnOverrides = {\n JournalEntry_JournalEntryNumberOurs: {\n formatter: (val: TValue, args: IFormatOptions): ICellValueObject => {\n if (!val) {\n return null;\n }\n\n const docId = args.entity[\"JournalEntry_DocumentId\"] ?? args.entity[\"JournalEntry_PaymentDocumentId\"];\n const docType = args.entity[\"JournalEntry_DocumentTypeCode\"];\n const url = `${getRouteByEntityType(docType)}/${docId}`;\n\n return getTableIntentLink(val as string, {\n route: url,\n context: args.storage.context,\n storage: args.storage\n });\n }\n }\n };\n\n\n return {\n title, path, id: tableId, initialSortBy, disableAggregateButton, columnOverrides,\n filterBarDef, parameters, defaultReportHierarchy, configListItemsOverride: saldoConfigListSettings\n };\n};","import { IGroupListItemDef } from \"@components/configurationList\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportVariantDef } from \"@components/smart/smartTable\";\nimport { ElectronicSubmissionTypeCode } from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../enums\";\nimport { TRecordType } from \"../../../global.types\";\nimport {\n vatPeriodParameterOnBeforeLoadCallback,\n vatStatementPeriodParamDef\n} from \"../customFilterComponents/VatPeriodParameter\";\nimport {\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TimeAggregationFunction,\n TReportColumnOverrides,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { getVatReportColumnOverrides, getVatStatementStatusFilterDef, VatReportProps } from \"../VatReport.utils\";\n\nexport enum VatControlStatementReportVariant {\n Evala = \"-131\"\n}\n\nexport const VAT_CONTROL_STATEMENT_REPORT_PATH = \"VatControlStatementReport\";\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.VatControlStatement;\n const title = i18next.t(\"Reporting:VatControlStatement.Title\");\n const path = VAT_CONTROL_STATEMENT_REPORT_PATH;\n const initialSortBy = [{ id: \"Document_VatControlStatementSection\", sort: Sort.Asc }];\n const parameters: string[] = [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ];\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ],\n filterDefinition: {\n [VatReportProps.vatStatementPeriod]: vatStatementPeriodParamDef(),\n [VatReportProps.vatStatementStatus]: getVatStatementStatusFilterDef()\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await vatPeriodParameterOnBeforeLoadCallback(storage, ElectronicSubmissionTypeCode.VatControlStatement);\n };\n\n const defaultReportVariants: TRecordType = {\n [VatControlStatementReportVariant.Evala]: {\n ReportHierarchy: {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Document_VatControlStatementSection\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Document_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"Document_NumberTheirs\"\n },\n {\n \"ColumnAlias\": \"Document_DateTaxableSupply\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"Document_DateVatDeduction\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"BusinessPartner_Name\"\n },\n {\n \"ColumnAlias\": \"BusinessPartner_TaxNumber\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"Document_StdAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_StdAmountVat\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_1RdcAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_1RdcAmountVat\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_2RdcAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_2RdcAmountVat\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_NoVatAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_TotalAmount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n }\n }\n };\n\n\n const configListItemsOverride: TGetReportConfigListItemOverride = (item: IGroupListItemDef): TReportConfigListItemOverride => {\n switch (true) {\n case item.id === \"Document_VatControlStatementSection\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n }\n\n return item;\n };\n\n const columnOverrides: TReportColumnOverrides = {\n ...getVatReportColumnOverrides()\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[VatControlStatementReportVariant.Evala].ReportHierarchy;\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, parameters, columnOverrides,\n onBeforeLoad, defaultReportHierarchy, defaultReportVariants, configListItemsOverride\n };\n};\n","import {IGroupListItemDef} from \"@components/configurationList\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport {IReportHierarchy, IReportVariantDef} from \"@components/smart/smartTable\";\nimport {ElectronicSubmissionTypeCode} from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\n\nimport {IAppContext} from \"../../../contexts/appContext/AppContext.types\";\nimport {Sort} from \"../../../enums\";\nimport {TRecordType} from \"../../../global.types\";\nimport {\n vatPeriodParameterOnBeforeLoadCallback,\n vatStatementPeriodParamDef\n} from \"../customFilterComponents/VatPeriodParameter\";\nimport {\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TimeAggregationFunction,\n TReportColumnOverrides,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport {ReportId} from \"../ReportIds\";\nimport {ReportStorage} from \"../ReportStorage\";\nimport {getVatReportColumnOverrides, getVatStatementStatusFilterDef, VatReportProps} from \"../VatReport.utils\";\n\nexport enum VatStatementReportVariant {\n Evala = \"-130\"\n}\n\nexport const VAT_STATEMENT_REPORT_PATH = \"VatStatementReport\";\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.VatStatement;\n const title = i18next.t(\"Reporting:VatStatement.Title\");\n const path = VAT_STATEMENT_REPORT_PATH;\n const initialSortBy = [{ id: \"Document_VatStatementSection\", sort: Sort.Asc }];\n const parameters: string[] = [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ];\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ],\n filterDefinition: {\n [VatReportProps.vatStatementPeriod]: vatStatementPeriodParamDef(),\n [VatReportProps.vatStatementStatus]: getVatStatementStatusFilterDef()\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await vatPeriodParameterOnBeforeLoadCallback(storage, ElectronicSubmissionTypeCode.VatStatement);\n };\n\n const defaultReportVariants: TRecordType = {\n [VatStatementReportVariant.Evala]: {\n ReportHierarchy: {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"Document_VatStatementSection\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Document_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"Document_NumberTheirs\"\n },\n {\n \"ColumnAlias\": \"Document_DateTaxableSupply\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"Document_DateVatDeduction\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"BusinessPartner_Name\"\n },\n {\n \"ColumnAlias\": \"BusinessPartner_TaxNumber\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"Document_StdAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_StdAmountVat\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_RdcAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_RdcAmountVat\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_NoVatAmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_TotalAmount\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n }\n ]\n }\n }\n };\n\n\n const configListItemsOverride: TGetReportConfigListItemOverride = (item: IGroupListItemDef): TReportConfigListItemOverride => {\n switch (true) {\n case item.id === \"Document_VatStatementSection\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n }\n\n return item;\n };\n\n const columnOverrides: TReportColumnOverrides = {\n ...getVatReportColumnOverrides()\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[VatStatementReportVariant.Evala].ReportHierarchy;\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, parameters, columnOverrides,\n onBeforeLoad, defaultReportHierarchy, defaultReportVariants, configListItemsOverride\n };\n};\n","import { IGroupListItemDef } from \"@components/configurationList\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { IReportHierarchy, IReportVariantDef } from \"@components/smart/smartTable\";\nimport { ElectronicSubmissionTypeCode } from \"@odata/GeneratedEnums\";\nimport i18next from \"i18next\";\n\nimport { IAppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { Sort } from \"../../../enums\";\nimport { TRecordType } from \"../../../global.types\";\nimport {\n vatPeriodParameterOnBeforeLoadCallback,\n vatStatementPeriodParamDef\n} from \"../customFilterComponents/VatPeriodParameter\";\nimport {\n IReportTableDefinition,\n NumberAggregationFunction,\n ReportConfigGroup,\n TGetReportConfigListItemOverride,\n TimeAggregationFunction,\n TReportColumnOverrides,\n TReportConfigListItemOverride\n} from \"../Report.utils\";\nimport { ReportId } from \"../ReportIds\";\nimport { ReportStorage } from \"../ReportStorage\";\nimport { getVatReportColumnOverrides, getVatStatementStatusFilterDef, VatReportProps } from \"../VatReport.utils\";\n\nexport enum VatVIESStatementReportVariant {\n Evala = \"-132\"\n}\n\nexport const VAT_VIES_STATEMENT_REPORT_PATH = \"VatVIESStatementReport\";\n\nexport const getDefinition = (context: IAppContext): IReportTableDefinition => {\n const tableId = ReportId.VatVIESStatement;\n const title = i18next.t(\"Reporting:VatVIESStatement.Title\");\n const path = VAT_VIES_STATEMENT_REPORT_PATH;\n const initialSortBy = [{ id: \"VatClassification_VatViesCode\", sort: Sort.Asc }];\n const parameters: string[] = [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ];\n\n const filterBarDef: IFilterGroupDef[] = [\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Parameters),\n defaultFilters: [\n VatReportProps.vatStatementPeriod,\n VatReportProps.vatStatementStatus\n ],\n filterDefinition: {\n [VatReportProps.vatStatementPeriod]: vatStatementPeriodParamDef(),\n [VatReportProps.vatStatementStatus]: getVatStatementStatusFilterDef()\n }\n },\n {\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n allowCustomFilters: false,\n defaultFilters: [],\n filterDefinition: {}\n }\n ];\n\n const onBeforeLoad = async (storage: ReportStorage) => {\n await vatPeriodParameterOnBeforeLoadCallback(storage, ElectronicSubmissionTypeCode.VatVIESStatement);\n };\n\n const defaultReportVariants: TRecordType = {\n [VatVIESStatementReportVariant.Evala]: {\n ReportHierarchy: {\n \"Aggregate\": true,\n \"Groups\": [\n {\n \"ColumnAlias\": \"BusinessPartner_TaxNumber\"\n },\n {\n \"ColumnAlias\": \"VatClassification_VatViesCode\"\n }\n ],\n \"Columns\": [\n {\n \"ColumnAlias\": \"Document_NumberOurs\"\n },\n {\n \"ColumnAlias\": \"Document_DateTaxableSupply\",\n \"AggregationFunction\": TimeAggregationFunction.Day\n },\n {\n \"ColumnAlias\": \"VatStatementSection_Name\"\n },\n {\n \"ColumnAlias\": \"BusinessPartner_Name\"\n },\n {\n \"ColumnAlias\": \"BusinessPartner_CountryCode\"\n }\n ],\n \"Aggregations\": [\n {\n \"ColumnAlias\": \"Document_AmountNet\",\n \"AggregationFunction\": NumberAggregationFunction.Sum\n },\n {\n \"ColumnAlias\": \"Document_NumberOurs\",\n \"AggregationFunction\": NumberAggregationFunction.Count\n }\n ]\n }\n }\n };\n\n const configListItemsOverride: TGetReportConfigListItemOverride = (item: IGroupListItemDef): TReportConfigListItemOverride => {\n switch (true) {\n case item.id === \"BusinessPartner_TaxNumber\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n case item.id === \"VatClassification_VatViesCode\":\n return {\n ...item,\n isRequired: true,\n isDisabled: true,\n isCopyOnly: false,\n group: ReportConfigGroup.Groups\n };\n }\n\n return item;\n };\n\n const columnOverrides: TReportColumnOverrides = {\n ...getVatReportColumnOverrides()\n };\n\n const defaultReportHierarchy: IReportHierarchy = defaultReportVariants[VatVIESStatementReportVariant.Evala].ReportHierarchy;\n\n return {\n title, path, id: tableId, initialSortBy, filterBarDef, parameters, columnOverrides,\n onBeforeLoad, defaultReportHierarchy, defaultReportVariants, configListItemsOverride\n };\n};\n","import React, { useEffect, useReducer } from \"react\";\nimport { TFormatterFn } from \"../smart/smartTable/SmartTable.utils\";\nimport { TValue } from \"../../global.types\";\nimport dayjs from \"dayjs\";\nimport DateType, { DateFormat } from \"../../types/Date\";\n\ninterface IProps {\n value: Date;\n}\n\nconst RelativeTime: React.FC = ({ value }) => {\n const [, forceUpdate] = useReducer(x => ++x, 0);\n\n useEffect(() => {\n const int = setInterval(() => {\n forceUpdate();\n }, 1000);\n\n return () => clearInterval(int);\n });\n\n return (<>\n {dayjs(value).fromNow()}\n );\n};\n\n\nexport const dateTimeFormatter: TFormatterFn = (val: TValue) => DateType.localFormat(val as Date, DateFormat.dateAndTime);\n\nexport const relativeTimeTableFormatter: TFormatterFn = (val: TValue) => ({\n tooltip: dateTimeFormatter(val),\n value: ()\n});\n\nexport default RelativeTime;","import styled, { css } from \"styled-components/macro\";\nimport { Theme } from \"../../theme\";\nimport { TicketMessageType } from \"./TicketMessage.utils\";\nimport { LocalStackOrder, T_BOLD_tiny, T_PLAIN_big, T_TITLE_4, T_TITLE_4_NORMAL } from \"../../global.style\";\nimport { ButtonGroup } from \"../button\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport TextArea from \"../inputs/textArea\";\nimport { Separator } from \"../separator/Separator\";\nimport { StyledInput, StyledTextArea } from \"../inputs/textArea/TextArea.styles\";\nimport { SeparatorLine } from \"../separator/Separator.styles\";\nimport Clickable from \"../clickable\";\nimport Switch from \"../inputs/switch\";\nimport { ColoredIcon } from \"../icon\";\nimport { DropArea } from \"../fileUploader\";\n\nconst ICON_SIZE = 38;\nconst MESSAGE_MARGIN = 24;\nconst BORDER_SIZE = 2;\nconst ICON_SIZE_WITH_BORDER = ICON_SIZE + 2 * BORDER_SIZE;\nconst STREAM_MAX_WIDTH = 1280;\n\ninterface IType {\n $type: TicketMessageType;\n}\n\nfunction getColorByType(type: TicketMessageType): keyof Theme {\n switch (type) {\n case TicketMessageType.Received:\n return \"C_SPLIT_LAYOUT_BUBBLE\";\n case TicketMessageType.Sent:\n return \"C_BTN_4L_trans_bg_selected\";\n }\n}\n\nfunction isReceived(type: TicketMessageType): boolean {\n return type === TicketMessageType.Received;\n}\n\nexport const StyledMessage = styled.div`\n position: relative;\n margin-bottom: ${MESSAGE_MARGIN}px;\n padding: ${ICON_SIZE_WITH_BORDER / 2}px 50px 0;\n\n ${props => props.$grouped && css`\n margin-top: -${MESSAGE_MARGIN}px;\n padding-top: 18px;\n `};\n\n ${props => isReceived(props.$type) ? css`\n padding-right: 100px;\n align-self: flex-start;\n ` : css`\n padding-left: 100px;\n align-self: flex-end;\n `};\n`;\n\nexport const MessageIconWrapper = styled.div<{ $isDisabled?: boolean } & IType>`\n position: absolute;\n top: 0;\n flex: 0 0 auto;\n width: ${ICON_SIZE}px;\n height: ${ICON_SIZE}px;\n overflow: hidden;\n\n ${props => isReceived(props.$type) ? css`\n left: 0;\n ` : css`\n right: 0;\n `};\n\n border: ${BORDER_SIZE}px solid ${props => props.theme[getColorByType(props.$type)]};\n border-radius: 50%;\n background-color: ${props => props.theme.C_BG_menu};\n ${props => props.$isDisabled && css`opacity: .5`};\n\n svg {\n background-color: ${props => props.theme.C_BG_menu};\n }\n`;\n\nexport const CenteredIcon = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n // in case \n ${T_TITLE_4};\n text-transform: uppercase;\n color: ${props => props.theme.C_TEXT_primary};\n`;\n\nconst CONTENT_HOR_PADDING = 16;\n\nexport const ContentWrapper = styled.div`\n position: relative;\n display: inline-block;\n ${T_TITLE_4_NORMAL};\n padding: 12px ${CONTENT_HOR_PADDING}px;\n max-width: 640px;\n background-color: ${props => props.theme[getColorByType(props.$type)]};\n\n ${props => isReceived(props.$type) ? css`\n border-radius: 3px 20px 20px 20px;\n ` : css`\n border-radius: 20px 3px 20px 20px;\n `};\n`;\n\nexport const MessageSubject = styled.h3`\n ${T_TITLE_4};\n margin-bottom: 12px;\n`;\n\nexport const Header = styled.div<{ isVisible: boolean } & IType>`\n position: absolute;\n top: -3px;\n transform: translate(0, -100%);\n\n ${T_BOLD_tiny};\n color: ${props => props.theme.C_ACT_main};\n visibility: ${props => props.isVisible ? 'visible' : 'hidden'};\n min-width: fit-content;\n white-space: nowrap;\n\n ${props => isReceived(props.$type) ? css`\n left: ${CONTENT_HOR_PADDING}px;\n ` : css`\n right: ${CONTENT_HOR_PADDING}px\n `};\n`;\n\nexport const TicketMessageStreamStyled = styled.div`\n position: relative;\n height: 100%;\n min-width: 100%;\n width: fit-content;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n`;\n\nexport const TicketMessagesWrapper = styled.div`\n display: flex;\n flex-direction: column;\n max-width: ${STREAM_MAX_WIDTH}px;\n`;\n\nexport const UploadedFilesStyled = styled.div`\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n margin: 10px 0 10px 16px;\n`;\n\nexport const TicketMessageAttachmentsStyled = styled.div`\n margin-top: 16px;\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n`;\n\nexport const ButtonGroupStyled = styled(ButtonGroup)`\n gap: 12px;\n flex: 1 0 0;\n`;\n\nexport const InputWrapper = styled.div`\n flex: 1 1 100%;\n margin-right: 12px;\n padding-top: 6px;\n min-width: 220px;\n`;\n\nconst MessageInputStyles = css`\n background: transparent;\n border: none;\n padding-left: 16px;\n`;\n\nexport const SubjectInput = styled(TextArea)`\n ${StyledInput} {\n ${MessageInputStyles};\n\n &, &::placeholder {\n font-weight: bold;\n }\n }\n`;\n\nexport const SeparatorStyled = styled(Separator)`\n margin: 6px 0 6px 16px;\n\n ${SeparatorLine} {\n height: 1px;\n }\n`;\n\nexport const MessageInput = styled(TextArea)`\n ${StyledTextArea} {\n ${MessageInputStyles};\n }\n`;\n\nexport const ClickableStyled = styled(Clickable)`\n margin: 0 3px;\n\n ${ColoredIcon} {\n display: inline-block;\n vertical-align: text-bottom;\n color: ${props => props.theme.C_TEXT_primary};\n }\n`;\n\nexport const MessageFileStyled = styled.span`\n display: inline-flex;\n ${T_PLAIN_big};\n margin-right: 3px;\n flex-wrap: nowrap;\n white-space: nowrap;\n\n &:not(:last-child)::after {\n content: \",\";\n }\n`;\n\nexport const TicketMessageInputStyled = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n z-index: ${LocalStackOrder.AboveContent};\n margin: 6px ${VIEW_PADDING_VALUE}px 0;\n max-width: ${STREAM_MAX_WIDTH}px;\n flex-wrap: wrap;\n gap: 24px;\n`;\n\nexport const TicketMessageInputBackground = styled.div`\n position: relative;\n flex: 1 1 auto;\n\n ${DropArea} {\n display: flex;\n align-items: flex-end;\n flex-wrap: nowrap;\n padding: 3px;\n border-radius: 22px;\n }\n border-radius: 22px;\n background-color: ${props => props.theme.C_BG_menu};\n box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.12);\n min-height: 44px; // todo: remove\n`;\n\nexport const SwitchStyled = styled(Switch)`\n flex: 0 0 auto;\n`;","import React, { useCallback } from \"react\";\nimport { AttachmentIcon, CloseIcon, ColoredIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { ClickableStyled, MessageFileStyled } from \"./TicketMessage.styles\";\nimport { IconButton } from \"../button\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IProps {\n id: number;\n name: string;\n onClick: (id: number) => void;\n onRemove?: (id: number) => void;\n}\n\nconst MessageFile: React.FC = ({ id, name, onClick, onRemove }) => {\n const { t } = useTranslation(\"Components\");\n\n const handleClick = useCallback(() => {\n onClick(id);\n }, [id, onClick]);\n\n const handleRemove = useCallback(() => {\n onRemove(id);\n }, [id, onRemove]);\n\n return (\n \n \n {name}\n \n {onRemove && (\n \n \n \n )}\n \n );\n};\n\nexport default MessageFile;","import React, { useCallback } from \"react\";\nimport { TicketMessageAttachmentsStyled } from \"./TicketMessage.styles\";\nimport MessageFile from \"./MessageFile\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport FileStorage from \"../../utils/FileStorage\";\n\ninterface IProps {\n attachments: IFileMetadataEntity[];\n}\n\nconst TicketMessageAttachments: React.FC = ({ attachments }) => {\n\n const handleDownload = useCallback((id: number) => {\n FileStorage.download(id);\n }, []);\n\n return attachments?.length ? (\n \n {attachments.map(a => (\n \n ))}\n \n ) : null;\n};\n\nexport default TicketMessageAttachments;","import React, { useCallback, useRef, useState } from \"react\";\nimport TestIds from \"../../testIds\";\nimport {\n CenteredIcon,\n ContentWrapper,\n Header,\n MessageIconWrapper,\n MessageSubject,\n StyledMessage\n} from \"./TicketMessage.styles\";\nimport { ITicketMessage } from \"./TicketMessage.utils\";\nimport TicketMessageAttachments from \"./TicketMessageAttachments\";\nimport DateType from \"../../types/Date\";\nimport { delay } from \"lodash\";\nimport { doesElementContainsElement } from \"@utils/general\";\n\ninterface IProps extends ITicketMessage {\n isGrouped?: boolean;\n}\n\nconst TicketMessage: React.FC = (props) => {\n const {\n icon,\n created, createdBy,\n subject, text,\n attachments,\n type,\n isGrouped\n } = props;\n\n const [isVisible, show] = useState(false);\n const _messageRef = useRef();\n const timer = useRef();\n\n const handleMouseEnter = useCallback((event: React.MouseEvent) => {\n timer.current = delay(show, 1000, true);\n }, [show]);\n\n const handleMouseLeave = useCallback((event: React.MouseEvent) => {\n if (!doesElementContainsElement(_messageRef.current, event.relatedTarget as Element)) {\n clearTimeout(timer.current);\n show(false);\n }\n }, [show]);\n\n return (\n \n {!isGrouped && (\n \n {icon}\n \n )}\n \n {subject && {subject}}\n {text}\n \n {(created || createdBy) &&\n
    \n {DateType.localFormat(created, DateType.defaultDateTimeFormat)} ({createdBy})\n
    }\n
    \n
    \n );\n};\n\nexport default TicketMessage;","import React, { useCallback, useEffect, useRef } from \"react\";\n\nimport MessageFile from \"./MessageFile\";\nimport { UploadedFilesStyled } from \"./TicketMessage.styles\";\n\ninterface IProps {\n files: File[];\n onRemove: (file: File, idx: number) => void;\n}\n\nconst UploadedFiles: React.FC = ({ files, onRemove }) => {\n const fileUrl = useRef(\"\");\n\n useEffect(() => {\n return () => {\n if (fileUrl.current) {\n // free memory on component unmount\n URL.revokeObjectURL(fileUrl.current);\n }\n };\n }, []);\n\n const getFileUrl = useCallback((file: File) => {\n if (fileUrl.current) {\n URL.revokeObjectURL(fileUrl.current);\n }\n\n fileUrl.current = URL.createObjectURL(file);\n\n return fileUrl.current;\n }, []);\n\n const handleRemove = useCallback((idx) => {\n const file = files[idx];\n onRemove(file, idx);\n }, [files, onRemove]);\n\n const handleClick = useCallback((idx) => {\n const file = files[idx];\n window.open(getFileUrl(file));\n }, [files]);\n\n return files?.length ? (\n \n {files.map((f, idx) => (\n \n ))}\n \n ) : null;\n};\n\nexport default UploadedFiles;","import React, { useCallback, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { IconSize } from \"../../enums\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport { IconButton } from \"../button\";\nimport FileUploadButton from \"../fileUploadButton/FileUploadButton\";\nimport FileDropArea from \"../fileUploader/FileDropArea\";\nimport { AttachmentIcon, SendMessageIcon } from \"../icon\";\nimport {\n ButtonGroupStyled,\n InputWrapper,\n MessageInput,\n SeparatorStyled,\n SubjectInput,\n SwitchStyled,\n TicketMessageInputBackground,\n TicketMessageInputStyled\n} from \"./TicketMessage.styles\";\nimport { ITicketMessage, TicketMessageType } from \"./TicketMessage.utils\";\nimport UploadedFiles from \"./UploadedFiles\";\n\ninterface IProps {\n showSubject?: boolean;\n onConfirm: (message: ITicketMessage, files: File[]) => Promise;\n onSwitch: () => Promise;\n showSwitch?: boolean;\n isDone?: boolean;\n}\n\nconst TicketMessageInput: React.FC = ({ showSubject, onConfirm, onSwitch, showSwitch, isDone }) => {\n const [text, setText] = useState(\"\");\n const [subject, setSubject] = useState(\"\");\n const [files, setFiles] = useState([]);\n const [busy, setBusy] = useState(false);\n\n const { t } = useTranslation(\"Components\");\n\n const canConfirm = !!((text?.trim() || files?.length) && (!showSubject || subject?.trim()));\n\n const handleConfirm = useCallback(async () => {\n if (!canConfirm) {\n return;\n }\n setBusy(true);\n const message: ITicketMessage = {\n text, subject,\n type: TicketMessageType.Sent\n };\n const res = await onConfirm(message, files);\n if (res) {\n // successfully saved\n setText(\"\");\n setSubject(\"\");\n setFiles([]);\n }\n setBusy(false);\n }, [canConfirm, text, subject, onConfirm, files]);\n\n const handleFileAttached = useCallback((newFiles: File[]) => {\n setFiles([...files, ...newFiles]);\n }, [files]);\n\n const handleFileRemove = useCallback((file: File, idx: number) => {\n const newFiles = [...files];\n newFiles.splice(idx, 1);\n setFiles(newFiles);\n }, [files]);\n\n const renderFileUploadButton = useCallback((onClick: () => void, isDisabled: boolean) => {\n return (\n \n \n \n );\n }, [t]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KeyName.Enter && !e.shiftKey) {\n e.preventDefault();\n if (!busy) {\n handleConfirm();\n }\n }\n }, [handleConfirm, busy]);\n\n const handleTextChange = useCallback((e) => setText(e.value), []);\n const handleSubjectChange = useCallback((e) => setSubject(e.value), []);\n\n const handleSwitch = useCallback(async () => {\n setBusy(true);\n await onSwitch();\n setBusy(false);\n }, [setBusy, onSwitch]);\n\n const hasContent = !!(subject || text || files?.length);\n\n return (\n \n \n \n \n {showSubject && (\n <>\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {showSwitch && }\n \n );\n};\n\nexport default TicketMessageInput;","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { ITicketMessage } from \"./TicketMessage.utils\";\nimport TicketMessage from \"./TicketMessage\";\nimport { TicketMessageStreamStyled, TicketMessagesWrapper } from \"./TicketMessage.styles\";\nimport CustomResizeObserver from \"../customResizeObserver\";\nimport { ScrollBar } from \"../scrollBar\";\nimport TicketMessageInput from \"./TicketMessageInput\";\nimport SimpleBar from \"simplebar-react\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport TestIds from \"../../testIds\";\n\ninterface IProps {\n messages: ITicketMessage[];\n isDone?: boolean;\n placeholder?: string;\n onCreateMessage: (message: ITicketMessage, files: File[]) => Promise;\n canClose?: boolean;\n isCustomer?: boolean;\n onSwitch?: () => Promise;\n}\n\nconst TicketMessageStream: React.FC = ({\n messages,\n isDone,\n placeholder,\n onCreateMessage,\n isCustomer,\n onSwitch,\n canClose\n }) => {\n const _scrollRef = useRef();\n const _messageWrapperRef = useRef();\n\n const [maxH, setMaxH] = useState(0);\n\n const handleResize = useCallback(() => {\n const { height } = _messageWrapperRef.current?.getBoundingClientRect();\n setMaxH(height);\n }, []);\n\n const handleConfirm = useCallback((message: ITicketMessage, files: File[]) => {\n return onCreateMessage(message, files);\n }, [onCreateMessage]);\n\n useEffect(() => {\n handleResize();\n const scrollEl = _scrollRef.current.getScrollElement();\n scrollEl.scrollTop = maxH;\n });\n\n let lastRenderedMessage: ITicketMessage = null;\n\n return (\n \n \n \n \n {messages?.map((m, idx) => {\n const groupWithPrevious = lastRenderedMessage?.createdById && lastRenderedMessage?.createdById === m.createdById;\n lastRenderedMessage = m;\n return (\n \n );\n })}\n \n \n {(!isCustomer || !isDone) && }\n \n );\n};\n\nexport default TicketMessageStream;","import { ITicketMessage } from \"@components/ticketMessage/TicketMessage.utils\";\nimport { TEntityKey } from \"@odata/BindingContext\";\nimport { ITicketEntity } from \"@odata/GeneratedEntityTypes\";\nimport { TicketStatusCode, WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport { TWebsocketMessage } from \"@utils/websocketManager/Websocket.types\";\nimport { debounce } from \"lodash\";\nimport React from \"react\";\n\nimport TicketMessageStream from \"../../components/ticketMessage/TicketMessageStream\";\nimport TestIds from \"../../testIds\";\nimport WebsocketManager from \"../../utils/websocketManager/WebsocketManager\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { currentUserIsCustomer } from \"../admin/users/Users.utils\";\nimport { checkTicketMessageNotification, getStoredMessages, markThreadAsRead } from \"./Tickets.utils\";\n\ninterface IProps {\n storage: FormStorage;\n onCreateMessage: (message: ITicketMessage, files: File[]) => Promise;\n onRefreshTicketNeeded: (unreadFlag?: boolean) => void;\n}\n\ninterface IState {\n id?: TEntityKey;\n messages: ITicketMessage[];\n}\n\nexport default class SmartTicketMessageStream extends React.Component {\n state: IState = {\n messages: []\n };\n\n _cancelWebsocketSubscription: () => void;\n\n componentDidMount() {\n this.setMessagesFromStorage();\n\n const { storage } = this.props;\n if (!storage.data.bindingContext.isNew()) {\n this.markThreadAsRead();\n }\n\n this._cancelWebsocketSubscription = WebsocketManager.subscribe({\n callback: this.handleTicketNotification,\n types: [WebSocketMessageTypeCode.Notification]\n });\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n const { entity, bindingContext } = this.props.storage.data;\n const entityHasChanged = bindingContext.getKey() !== this.state.id && !this.props.storage.loading;\n const messageshasBeenUpdated = (entity.Messages?.length || this.state.messages.length) && entity.Messages?.length !== this.state.messages.length;\n if (messageshasBeenUpdated || entityHasChanged) {\n this.setMessagesFromStorage();\n }\n if (entityHasChanged) {\n // cancel debounced task and mark the new thread as read\n this.markThreadAsRead.cancel();\n this.markThreadAsRead();\n }\n }\n\n componentWillUnmount() {\n this.markThreadAsRead.cancel();\n this._cancelWebsocketSubscription();\n }\n\n markThreadAsRead = debounce(async (): Promise => {\n const { storage } = this.props;\n if (await markThreadAsRead(storage)) {\n // refresh table row\n this.props.onRefreshTicketNeeded?.(true);\n }\n }, 3000);\n\n handleTicketNotification = async (message: TWebsocketMessage): Promise => {\n const { storage } = this.props;\n const {\n shouldRefreshStream,\n ticketId\n } = await checkTicketMessageNotification(message, storage.oData);\n if (shouldRefreshStream && ticketId === this.state.id) {\n await storage.reload({ preserveInfos: true, withoutBusy: true });\n }\n };\n\n handleCreate = async (message: ITicketMessage, files: File[]): Promise => {\n return !!(await this.props.onCreateMessage(message, files));\n };\n\n handleSwitchTicket = async (): Promise => {\n const { storage } = this.props;\n storage.data.entity.TicketStatusCode = storage.data.entity.TicketStatusCode === TicketStatusCode.Done ? TicketStatusCode.InProgress : TicketStatusCode.Done;\n await storage.save();\n this.props.onRefreshTicketNeeded?.();\n this.forceUpdate();\n };\n\n setMessagesFromStorage(): void {\n const { storage } = this.props;\n this.setState({\n messages: getStoredMessages(storage),\n id: storage.data.bindingContext.getKey()\n });\n }\n\n render() {\n const { storage } = this.props;\n const { entity, bindingContext } = storage.data;\n const _currentUserIsCustomer = currentUserIsCustomer(storage.context);\n\n return (\n \n );\n }\n}\n","import styled from \"styled-components/macro\";\nimport { VIEW_PADDING_VALUE } from \"../../views/View.styles\";\nimport { SmartHeaderStyled } from \"../../views/formView/FormView.styles\";\n\nexport const TicketsFormViewStyled = styled.div`\n position: relative;\n padding: ${VIEW_PADDING_VALUE}px 0;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n height: 100%;\n overflow-x: auto;\n`;\n\nexport const SmartHeaderTicketsStyled = styled(SmartHeaderStyled)`\n padding: 0 ${VIEW_PADDING_VALUE}px;\n`;\n","import { ITicketMessage } from \"@components/ticketMessage/TicketMessage.utils\";\nimport { ITicketEntity, TicketEntity } from \"@odata/GeneratedEntityTypes\";\nimport { TicketStatusCode } from \"@odata/GeneratedEnums\";\nimport React from \"react\";\n\nimport { BreadCrumbProvider } from \"../../components/breadCrumb\";\nimport { ContextEvents } from \"../../contexts/appContext/AppContext.types\";\nimport { withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport FileStorage from \"../../utils/FileStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"../../views/formView/FormView\";\nimport SmartTicketMessageStream from \"./SmartTicketMessageStream\";\nimport { SmartHeaderTicketsStyled, TicketsFormViewStyled } from \"./Tickets.styles\";\nimport { getTicketMessageFromCreatedMessage } from \"./Tickets.utils\";\n\ninterface IProps extends IFormViewProps {\n}\n\nclass TicketsFormView extends FormViewForExtend {\n static defaultProps = {\n formProps: {\n shouldHideAuditTrail: true,\n shouldHideVariant: true\n }\n };\n\n onBeforeSave(data?: ITicketEntity): ITicketEntity {\n const { entity, bindingContext } = this.props.storage.data;\n if (bindingContext.isNew()) {\n entity.Number = \"P0000001\";\n entity.TicketStatusCode = TicketStatusCode.InProgress;\n }\n return entity;\n }\n\n handleCreateMessage = async (message: ITicketMessage, files: File[]): Promise => {\n const { storage } = this.props;\n const { entity } = storage.data;\n if (message.subject && !entity.Messages?.length) {\n storage.setValueByPath(TicketEntity.Title, message.subject);\n }\n const currentMessages = storage.getValueByPath(TicketEntity.Messages) ?? [];\n const filePromises = files.map(file => FileStorage.upload({ file }));\n const fileMetadataEntities = await Promise.all(filePromises);\n const enhancedMessage = getTicketMessageFromCreatedMessage(storage, message, fileMetadataEntities);\n const messages = [...currentMessages, enhancedMessage];\n storage.setValueByPath(TicketEntity.Messages, messages);\n\n const result = await this.save({\n successSubtitle: null,\n // just adding a new message, we don't need to check for data consistency\n skipETag: true\n });\n\n return !!result;\n };\n\n handleTableRowRefresh = (unreadFlag: boolean) => {\n const { context, data: { bindingContext } } = this.props.storage;\n if (unreadFlag) {\n context.eventEmitter.emit(ContextEvents.TicketsUnreadCount, bindingContext);\n } else {\n this.props.onTableRefreshNeeded();\n }\n };\n\n renderForm(): React.ReactElement {\n return (\n \n \n \n\n \n \n );\n }\n\n // handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n // return false;\n // }\n\n // renderButtons = (): React.ReactElement => {\n // return null;\n // };\n}\n\nexport default withPermissionContext(TicketsFormView);\n","import { dateTimeFormatter, relativeTimeTableFormatter } from \"@components/relativeTime/relativeTime\";\nimport { withDisplayName } from \"@components/smart/GeneralFieldDefinition\";\nimport {\n FilterBarGroup,\n getDefaultFilterGroupDef,\n IFilterGroupDef\n} from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport {\n EntitySetName,\n EntityTypeName,\n FileMetadataEntity,\n ITicketEntity,\n TicketEntity,\n TicketMessageAttachmentEntity,\n TicketMessageEntity,\n UserCompanyRoleEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { TicketStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumNameSpaceName } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\n\nimport { Sort, TextAlign } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { Model } from \"../../model/Model\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { ISplitPageTableDef, ITableDefTabData } from \"../../views/table/TableView.utils\";\nimport { setDefByEntityType } from \"../getDefByEntityType\";\nimport { getItemBreadCrumbsText, IDefinition, IGetDefinition } from \"../PageUtils\";\nimport { getTicketStatusColor, getTicketStatusDisplayValue, isSaved, ticketStatusFormatter } from \"./Tickets.utils\";\nimport TicketsFormView from \"./TicketsFormView\";\n\nconst LastMessagePath = BindingContext.localContext(\"DateLastModified\");\n\n\nexport const getDefinitions: IGetDefinition = (): IDefinition => {\n const filterBarDef: IFilterGroupDef[] = [{\n ...getDefaultFilterGroupDef(FilterBarGroup.Filters),\n defaultFilters: [\n \"Title\",\n \"TicketStatus\"\n ],\n filterDefinition: {\n Title: {},\n ...withDisplayName(\"TicketStatus\"),\n },\n isValueHelp: true\n }];\n\n const tabs: ITableDefTabData[] = [{\n id: null,\n title: i18next.t(\"Components:FilterBar.All\")\n }, {\n id: TicketStatusCode.InProgress,\n title: getTicketStatusDisplayValue(TicketStatusCode.InProgress)\n }, {\n id: TicketStatusCode.Done,\n title: getTicketStatusDisplayValue(TicketStatusCode.Done)\n }];\n\n const table: ISplitPageTableDef = {\n id: `${EntityTypeName.Ticket}Table`,\n filterBarDef,\n tabs,\n tabsSettings: {\n filterFieldName: TicketEntity.TicketStatusCode\n },\n columns: [\n \"Title\",\n \"TicketStatus\",\n \"DateLastModified\",\n \"Number\",\n LastMessagePath,\n \"DateCreated\"\n ],\n columnDefinition: {\n Title: {},\n TicketStatus: {\n textAlign: TextAlign.Center,\n formatter: ticketStatusFormatter\n },\n DateLastModified: {\n label: i18next.t(\"Tickets:TableView.LastModified\"),\n formatter: dateTimeFormatter\n },\n Number: {},\n DateCreated: {\n label: i18next.t(\"Tickets:TableView.DateCreated\"),\n formatter: relativeTimeTableFormatter\n },\n [LastMessagePath]: {\n label: i18next.t(\"Tickets:TableView.LastMessage\"),\n textAlign: TextAlign.Right,\n fieldSettings: {\n disableSort: true\n },\n formatter: (val: TValue, args: IFormatOptions) =>\n relativeTimeTableFormatter((args.entity as ITicketEntity).DateLastModified, args)\n }\n },\n title: i18next.t(\"Tickets:Title\"),\n initialSortBy: [{ id: \"DateLastModified\", sort: Sort.Desc }]\n };\n\n const summary: ISummaryItem[] = [{\n id: \"Number\",\n label: null\n }, {\n id: \"TicketStatus/Code\",\n label: i18next.t(\"Tickets:Status\"),\n formatter: (val: TValue) => {\n return getTicketStatusDisplayValue(val as TicketStatusCode);\n },\n colorFormatter: (val: TValue) => {\n return getTicketStatusColor(val as TicketStatusCode);\n },\n isVisible: isSaved\n }];\n\n const userEntityAdditionalProps = [\n { id: UserEntity.Name },\n {\n id: UserEntity.CompanyRoles,\n additionalProperties: [\n { id: UserCompanyRoleEntity.Company },\n { id: UserCompanyRoleEntity.CompanyRole }\n ]\n }\n ];\n\n const form: IFormDef = {\n id: `${EntityTypeName.Ticket}Form`,\n title: i18next.t(\"Tickets:TitleSingular\"),\n summary,\n translationFiles: getDefinitions.translationFiles,\n formControl: TicketsFormView,\n getItemBreadCrumbText: (storage: Model) =>\n getItemBreadCrumbsText(storage, i18next.t(\"Tickets:New\"),\n storage.data.entity?.Number && i18next.t(\"Tickets:BreadcrumbDetail\", { number: storage.data.entity.Number })),\n fieldDefinition: {},\n additionalProperties: [\n // todo: load data using additional properties as we don't have usual form layout...\n // (we have custom render of the \"form\")\n { id: TicketEntity.Title },\n {\n id: TicketEntity.CreatedBy,\n additionalProperties: userEntityAdditionalProps\n },\n {\n id: TicketEntity.Messages,\n additionalProperties: [\n { id: TicketMessageEntity.DateCreated },\n { id: TicketMessageEntity.IsReadByTicketAssignee },\n { id: TicketMessageEntity.IsReadByTicketAuthor },\n { id: TicketMessageEntity.Text },\n {\n id: TicketMessageEntity.CreatedBy,\n additionalProperties: userEntityAdditionalProps\n }, {\n id: TicketMessageEntity.Attachments,\n additionalProperties: [\n { id: TicketMessageAttachmentEntity.Description },\n {\n id: TicketMessageAttachmentEntity.File,\n additionalProperties: [\n { id: FileMetadataEntity.Id },\n { id: FileMetadataEntity.Name }\n ]\n }\n ]\n }\n ]\n },\n ]\n };\n\n return {\n entitySet: EntitySetName.Tickets,\n table,\n form\n };\n};\n\ngetDefinitions.translationFiles = [\n \"Tickets\",\n \"Error\", \"Components\",\n getEnumNameSpaceName(EntityTypeName.TicketStatus)\n];\nsetDefByEntityType(EntityTypeName.Ticket, getDefinitions);\n","import { IGetTileDataArgs } from \"@components/dashboard\";\nimport { EvalaPlainIcon, TicketStatusDoneIcon, TicketStatusInProgressIcon } from \"@components/icon\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { ITicketMessage, TicketMessageType } from \"@components/ticketMessage/TicketMessage.utils\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport {\n EntitySetName,\n EntityTypeName,\n IFileMetadataEntity,\n ITicketEntity,\n ITicketMessageEntity,\n IUserEntity,\n IUserNotificationEntity,\n TicketEntity,\n TicketMessageEntity,\n UserCompanyRoleEntity,\n UserEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { NotificationTypeCode, TicketStatusCode } from \"@odata/GeneratedEnums\";\nimport { getEnumDisplayValue } from \"@odata/GeneratedEnums.utils\";\nimport { OData } from \"@odata/OData\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport { getCompanyLogoUrl } from \"@utils/CompanyUtils\";\nimport { INotificationWebsocketMessage, TWebsocketMessage } from \"@utils/websocketManager/Websocket.types\";\nimport React from \"react\";\nimport { DefaultTheme } from \"styled-components\";\n\nimport Avatar from \"../../components/avatar/Avatar\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { AvatarSize, IconSize } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport { ITableStorageDefaultCustomData } from \"../../model/TableStorage\";\nimport { fetchNotificationsMemoized, getNotificationArguments } from \"../../notifications/Notification.utils\";\nimport { getLocalTimeDate, getUtcDate } from \"../../types/Date\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { currentUserIsCustomer, isAgendaCustomer } from \"../admin/users/Users.utils\";\n\nexport interface IUnreadTicketInfo {\n Id: TEntityKey;\n AuthorIsCustomer: boolean;\n IsNotReadByTicketAuthor: boolean;\n IsNotReadByTicketAssignee: boolean;\n}\n\nexport interface ITicketsStorageCustomData extends ITableStorageDefaultCustomData {\n unreadTickets?: IUnreadTicketInfo[];\n}\n\nexport async function getUnfinishedTicketCount(args: IGetTileDataArgs): Promise {\n const { oData, signal } = args;\n\n const query = oData.getEntitySetWrapper(EntitySetName.Tickets)\n .query()\n .filter(`${TicketEntity.TicketStatusCode} eq '${TicketStatusCode.InProgress}'`)\n .count();\n\n const data = await query.fetchData(null, { signal });\n\n return data?._metadata?.count ?? 0;\n}\n\nexport function getTicketStatusColor(code: TicketStatusCode): keyof DefaultTheme {\n let color: keyof DefaultTheme;\n\n switch (code) {\n case TicketStatusCode.InProgress:\n color = \"C_SEM_text_warning\";\n break;\n case TicketStatusCode.Done:\n color = \"C_SEM_text_good\";\n break;\n default:\n color = \"C_TEXT_primary\";\n break;\n }\n\n return color;\n}\n\nexport function getTicketStatusDisplayValue(code: TicketStatusCode): string {\n return getEnumDisplayValue(EntityTypeName.TicketStatus, code);\n}\n\nexport function getTicketStatusIcon(code: TicketStatusCode): React.ReactNode {\n let Icon;\n\n switch (code) {\n case TicketStatusCode.InProgress:\n Icon = TicketStatusInProgressIcon;\n break;\n case TicketStatusCode.Done:\n Icon = TicketStatusDoneIcon;\n break;\n }\n return Icon ? (\n \n ) : null;\n}\n\nexport const isSaved = (args: IGetValueArgs): boolean => !args.storage.data.bindingContext.isNew();\n\nexport const ticketStatusFormatter: TFormatterFn = (val: TValue, args?: IFormatOptions) => {\n const code = val as TicketStatusCode;\n return { tooltip: getTicketStatusDisplayValue(code), value: getTicketStatusIcon(code) };\n};\n\nexport async function markThreadAsRead(storage: FormStorage): Promise {\n const { context, data: { entity } } = storage;\n const readByPropName = getReadPropName(context, entity.CreatedBy);\n let changed = false;\n const updatedMessages = entity.Messages?.map(m => {\n changed = changed || !m[readByPropName];\n return {\n ...m,\n [readByPropName]: true\n };\n });\n // don't send request when there are no changes\n if (!changed) {\n return false;\n }\n // otherwise update the flags\n storage.setValueByPath(TicketEntity.Messages, updatedMessages);\n const result = await storage.save();\n\n return !!result;\n}\n\nexport function hasUnreadMessage(storage: TSmartODataTableStorage, entity: ITicketEntity): boolean {\n const { unreadTickets } = storage.getCustomData();\n const key = entity.Id;\n const unreadTicket = unreadTickets?.find((ticket: IUnreadTicketInfo) => ticket.Id === key);\n if (!unreadTicket) {\n return false;\n }\n const _currentUserIsCustomer = currentUserIsCustomer(storage.context);\n const isAuthor = unreadTicket.AuthorIsCustomer === _currentUserIsCustomer;\n return isAuthor ? unreadTicket.IsNotReadByTicketAuthor : unreadTicket.IsNotReadByTicketAssignee;\n}\n\nexport async function getUnreadCount(storage: TSmartODataTableStorage): Promise {\n\n const query = storage.oData.getEntitySetWrapper(EntitySetName.Tickets).query();\n\n query\n .select(TicketEntity.Id)\n .filter(`${TicketEntity.Messages}/any(m: m/${TicketMessageEntity.IsReadByTicketAssignee} eq false OR m/${TicketMessageEntity.IsReadByTicketAuthor} eq false)`)\n .expand(TicketEntity.Messages, (q) => {\n q.filter(`${TicketMessageEntity.IsReadByTicketAssignee} eq false OR ${TicketMessageEntity.IsReadByTicketAuthor} eq false`)\n .select(TicketMessageEntity.IsReadByTicketAssignee, TicketMessageEntity.IsReadByTicketAuthor);\n })\n .expand(TicketEntity.CreatedBy, (q1) => {\n q1.expand(UserEntity.CompanyRoles, (q2) => {\n q2\n .expand(UserCompanyRoleEntity.Company)\n .expand(UserCompanyRoleEntity.CompanyRole);\n });\n });\n try {\n const result = await query.fetchData();\n return result.value.map(ticket => {\n const unreadInfo: IUnreadTicketInfo = {\n Id: ticket.Id,\n AuthorIsCustomer: isAgendaCustomer(storage.context, ticket.CreatedBy),\n IsNotReadByTicketAuthor: !!ticket.Messages?.find(m => m.IsReadByTicketAuthor === false),\n IsNotReadByTicketAssignee: !!ticket.Messages?.find(m => m.IsReadByTicketAssignee === false),\n };\n return unreadInfo;\n });\n } catch (e) {\n // no action\n }\n return [];\n}\n\nexport function getMessageIcon(context: IAppContext, isAgendaMessage: boolean): React.ReactNode {\n if (isAgendaMessage) {\n const logoURL = getCompanyLogoUrl(context.getCompany());\n return (\n \n );\n }\n return ();\n}\n\nfunction parseTicketMessage(storage: FormStorage, m: ITicketMessageEntity, _isAgendaUser: boolean, isFirst?: boolean): ITicketMessage {\n const _isAgendaMessage = isAgendaCustomer(storage.context, m.CreatedBy);\n\n const message: ITicketMessage = {\n icon: getMessageIcon(storage.context, _isAgendaMessage),\n created: getUtcDate(m.DateCreated),\n createdBy: m.CreatedBy?.Name,\n createdById: m.CreatedBy?.Id,\n text: m.Text,\n type: _isAgendaMessage === _isAgendaUser ? TicketMessageType.Sent : TicketMessageType.Received,\n attachments: m.Attachments?.map(attachment => attachment.File)\n };\n if (isFirst) {\n message.subject = storage.data.entity?.Title ?? \"\";\n }\n return message;\n}\n\nfunction getReadPropName(context: IAppContext, ticketUser: IUserEntity): TicketMessageEntity {\n if (!ticketUser) {\n // if ticketUser is not set, it is a new message -> user is its author\n return TicketMessageEntity.IsReadByTicketAuthor;\n }\n const _currentUserIsCustomer = currentUserIsCustomer(context);\n const _ticketAuthorIsCustomer = isAgendaCustomer(context, ticketUser);\n const isSame = _currentUserIsCustomer === _ticketAuthorIsCustomer;\n return isSame ? TicketMessageEntity.IsReadByTicketAuthor : TicketMessageEntity.IsReadByTicketAssignee;\n}\n\n// When user creates new message, it doesn't contain some information as icon, created info - this function adds it\nexport function getTicketMessageFromCreatedMessage(storage: FormStorage, m: ITicketMessage, files: IFileMetadataEntity[]): ITicketMessageEntity {\n const { context, data: { entity } } = storage;\n const readByPropName = getReadPropName(context, entity.CreatedBy);\n const user = context.getData().userSettings;\n const message: ITicketMessageEntity = {\n Text: m.text,\n DateCreated: getLocalTimeDate(),\n CreatedBy: user,\n [readByPropName]: true,\n };\n if (files?.length) {\n message.Attachments = files.map(f => ({\n File: f\n }));\n }\n return message;\n}\n\nexport function getStoredMessages(storage: FormStorage): ITicketMessage[] {\n const { entity } = storage.data;\n const _isCustomer = currentUserIsCustomer(storage.context);\n return entity.Messages?.map((m, idx) => parseTicketMessage(storage, m, _isCustomer, idx === 0)) ?? [];\n}\n\ninterface ITicketWebSocketInfo {\n shouldRefreshTable: boolean;\n shouldRefreshStream: boolean;\n ticketId: TEntityKey;\n}\n\nexport async function checkTicketMessageNotification(message: TWebsocketMessage, oData: OData): Promise {\n const notificationId = (message as INotificationWebsocketMessage).Parameters.Id;\n const result = await fetchNotificationsMemoized(oData, notificationId);\n const { Notification } = (result.value as IUserNotificationEntity) ?? {};\n const args = getNotificationArguments(Notification);\n const ticketId = args.TicketId;\n const shouldRefreshStream = [\n NotificationTypeCode.NewTicketMessageFromACustomerReceivement,\n NotificationTypeCode.NewTicketMessageFromAnAccountantReceivement\n ].includes(Notification.NotificationTypeCode as NotificationTypeCode);\n const shouldRefreshTable = Notification.NotificationTypeCode === NotificationTypeCode.NewTicketCreated;\n\n return {\n ticketId, shouldRefreshStream, shouldRefreshTable\n };\n}","import { LogoutIcon } from \"@components/icon\";\nimport React, { useCallback, useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { AuthContext } from \"../../contexts/authContext/AuthContext\";\nimport { Button } from \"../../components/button\";\n\ninterface IProps {\n onClick?: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const LogoutButton: React.FunctionComponent = React.memo((props) => {\n const { onClick } = props;\n const { t } = useTranslation([\"UserSetting\"]);\n const authContext = useContext(AuthContext);\n const handleLogoutClick = useCallback(() => {\n authContext.logout();\n onClick?.();\n }, [onClick, authContext]);\n\n return (\n }\n onClick={handleLogoutClick}\n className={props.className}\n style={props.style}\n >\n {t(\"UserSetting:Logout\")}\n \n );\n});","import styled from \"styled-components/macro\";\nimport { T_PLAIN_big } from \"../../global.style\";\n\nexport const StyledItemsList = styled.div`\n display: grid;\n grid-template-columns: max-content auto;\n column-gap: 20px;\n row-gap: 10px;\n`;\n\nexport const SimpleItem = styled.div`\n display: flex;\n align-items: center;\n ${T_PLAIN_big}\n`;\n\nexport const CloseIconWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n top: -1px;\n`;","import React from \"react\";\nimport { CloseIconWrapper, SimpleItem, StyledItemsList } from \"./SimpleItemsList.styles\";\nimport { CloseIcon } from \"../icon\";\nimport { IconSize } from \"../../enums\";\nimport { IconButton } from \"../button\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport TestIds from \"../../testIds\";\n\nexport interface ISimpleItem {\n id: string;\n label: string;\n contentBefore?: string | React.ReactElement;\n}\n\ninterface IProps {\n items: ISimpleItem[];\n onRemove?: (itemId: string) => void;\n style?: React.CSSProperties;\n}\n\nclass SimpleItemsList extends React.PureComponent {\n renderItem = (item: ISimpleItem) => {\n return (\n \n \n {item.contentBefore}\n {item.label}\n \n \n {\n this.props.onRemove?.(item.id);\n }}\n isDecorative>\n \n \n \n \n );\n };\n\n renderItems = () => {\n return this.props.items.map(item => this.renderItem(item));\n };\n\n render() {\n return (\n \n {this.renderItems()}\n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(SimpleItemsList);","import { EditSimpleIcon, FacebookIcon, GoogleIcon } from \"@components/icon\";\nimport { IFieldDef, IFieldDefFn, IGetValueArgs, not, TGetValueFn } from \"@components/smart/FieldInfo\";\nimport { PhoneNumberDef } from \"@components/smart/GeneralFieldDefinition\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { EntityTypeName, IUserCompanyRoleEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getEnumNameSpaceName, getEnumSelectItems } from \"@odata/GeneratedEnums.utils\";\nimport { IFormatOptions } from \"@odata/OData.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { Button } from \"../../components/button\";\nimport { CollapsibleContent } from \"../../components/collapsibleContent\";\nimport Field from \"../../components/inputs/field\";\nimport SimpleItemsList, { ISimpleItem } from \"../../components/simpleItemsList/SimpleItemsList\";\nimport { SmartTable } from \"../../components/smart/smartTable\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { IAuthDevice } from \"../../contexts/authContext/Auth.utils\";\nimport { BasicInputSizes, FieldType, GroupedField, IconSize, LabelStatus, Sort, ValidatorType } from \"../../enums\";\nimport { TValue } from \"../../global.types\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { IFormDef } from \"../../views/formView/Form\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport { isUserOwner } from \"../admin/users/Users.utils\";\nimport { companyCellFormatter } from \"../companies/Company.utils\";\nimport { setDefForTesting } from \"../getDefByEntityType\";\nimport { IDefinition, IGetDefinition } from \"../PageUtils\";\nimport {\n allowDataCollection,\n allowDataCollectionMarketing,\n allowDataCollectionMarketingOwner,\n authDevicesPath,\n changePasswordPath,\n companyRolesPath,\n dataCollectionCheckboxGroupPath,\n facebookIsConnectedPath,\n googleIsConnectedPath,\n IUserEntityExtended,\n IUserSettingCustomData,\n loginEmailPath,\n pairedAccountsPath,\n UserSettingDialogType\n} from \"./UserSetting.utils\";\n\nconst getCompanyRolesColumns = memoizeOne((): IFieldDef[] => {\n return [\n {\n id: \"Company/Name\",\n formatter: (val: TValue, args?: IFormatOptions) => {\n const companyRole = args.entity as IUserCompanyRoleEntity;\n return companyCellFormatter(companyRole.Company);\n },\n additionalProperties: [\n { id: \"Logo\" }\n ]\n },\n {\n id: \"CompanyRole/CompanyRoleName\",\n label: i18next.t(\"UserSetting:Form.MyRole\")\n }\n ];\n}, () => [i18next.hasLoadedNamespace(\"UserSetting\")]);\n\nconst isOwner: TGetValueFn = (args): boolean => {\n return isUserOwner(args.storage.data.entity);\n};\n\nexport const getDefinition: IGetDefinition = (context: IAppContext): IDefinition => {\n const entitySet = \"Users\";\n\n const form: IFormDef = {\n id: \"userSettingSpecialForm\",\n translationFiles: getDefinition.translationFiles,\n summary: [\n {\n id: \"GeneralRoles\",\n formatter: (val, args) => {\n const orgName = args.storage.context.getData().tenant?.Name;\n const roleName = args.storage.data.entity.GeneralRoles?.[0]?.GeneralRole?.GeneralRoleName;\n\n return (\n <>\n {orgName} | {roleName}\n \n );\n }\n }\n ],\n fieldDefinition: {\n FirstName: {\n isReadOnly: not(isOwner)\n },\n LastName: {\n isReadOnly: not(isOwner)\n },\n Email: {\n width: BasicInputSizes.XL,\n isReadOnly: not(isOwner),\n validator: {\n type: ValidatorType.Email\n }\n },\n PhoneNumber: {\n ...PhoneNumberDef,\n isReadOnly: not(isOwner)\n },\n Language: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\"\n }\n },\n ColourTheme: {\n type: FieldType.SegmentedButton,\n fieldSettings: {\n displayName: \"Name\",\n items: getEnumSelectItems(EntityTypeName.ColourTheme)\n }\n },\n TimeFormat: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n // additionalProperties has to be both in fieldSettings and in main object\n // once for form loader and once form SmartSelect loader\n additionalProperties: [\n { id: \"Format\" }\n ]\n },\n additionalProperties: [\n { id: \"Format\" }\n ]\n },\n DateFormat: {\n type: FieldType.ComboBox,\n fieldSettings: {\n displayName: \"Name\",\n additionalProperties: [\n { id: \"Format\" }\n ]\n },\n additionalProperties: [\n { id: \"Format\" }\n ]\n },\n [companyRolesPath]: {\n type: FieldType.Custom,\n render: (args: IFieldDefFn) => {\n return (\n \n \n \n );\n }\n },\n [loginEmailPath]: {\n label: i18next.t(\"UserSetting:Form.LoginEmail\"),\n groupedField: GroupedField.NoWrapStart,\n isReadOnly: true\n\n },\n [changePasswordPath]: {\n type: FieldType.Custom,\n groupedField: GroupedField.NoWrapEnd,\n render: (args: IFieldDefFn) => {\n return (\n \n );\n }\n },\n [pairedAccountsPath]: {\n type: FieldType.Custom,\n label: i18next.t(\"UserSetting:Form.PairedAccounts\"),\n isVisible: (args: IGetValueArgs) => {\n return false; // not yet working on BE https://solitea-cz.atlassian.net/browse/DEV-22268\n // return !!(args.storage.data.entity[googleIsConnectedPath] || args.storage.data.entity[facebookIsConnectedPath]);\n },\n render: (args: IFieldDefFn) => {\n const items: ISimpleItem[] = [];\n\n if (args.storage.data.entity[googleIsConnectedPath]) {\n items.push(\n {\n id: \"google\",\n label: \"Google\",\n contentBefore: \n }\n );\n }\n\n if (args.storage.data.entity[facebookIsConnectedPath]) {\n items.push(\n {\n id: \"facebook\",\n label: \"Facebook\",\n contentBefore: \n }\n );\n }\n\n const onRemoveFn = (id: string) => {\n const storage = args.storage as FormStorage;\n\n storage.setCustomData({\n userSettingDialogTypeKey: id === \"google\" ? UserSettingDialogType.GoogleRemove : UserSettingDialogType.FacebookRemove\n });\n storage.refresh();\n };\n\n return (\n \n \n \n );\n }\n },\n [authDevicesPath]: {\n type: FieldType.Custom,\n label: i18next.t(\"UserSetting:Form.AuthDevices\"),\n isVisible: ({ storage, data }: IGetValueArgs) => {\n const authDevices: IAuthDevice[] = (data ?? storage.data.entity)[authDevicesPath];\n\n return authDevices?.length > 0;\n },\n render: (args: IFieldDefFn) => {\n const authDevices: IAuthDevice[] = args.props.value;\n\n const items: ISimpleItem[] = authDevices.map(device => ({\n id: device.Id,\n label: device.Name\n }));\n\n return (\n \n {\n const storage = args.storage as FormStorage;\n // TODO better approach to communication between definiton a and FormView\n // should we add something like customAction propagated from SmartField to FormView?\n storage.setCustomData({\n userSettingDialogTypeKey: UserSettingDialogType.DeviceRemove,\n removeAuthDevice: id\n });\n storage.refresh();\n }}\n style={{ alignSelf: \"flex-start\", marginTop: \"10px\" }}\n />\n \n );\n }\n },\n [dataCollectionCheckboxGroupPath]: {\n type: FieldType.CheckboxGroup,\n labelStatus: LabelStatus.Removed,\n // use 100% to ensure that the items can wrap when form is small\n width: \"100%\",\n fieldSettings: {\n items: [\n {\n id: allowDataCollection,\n label: i18next.t(\"UserSetting:Form.AllowDataCollection\")\n },\n {\n id: allowDataCollectionMarketing,\n label: i18next.t(\"UserSetting:Form.AllowDataCollectionMarketing\")\n },\n {\n id: allowDataCollectionMarketingOwner,\n label: i18next.t(\"UserSetting:Form.AllowDataCollectionMarketingOwner\")\n }\n ]\n }\n }\n },\n groups: [\n {\n id: \"info\",\n rows: [\n [{ id: \"FirstName\" }, { id: \"LastName\" }, { id: \"Email\" }, { id: \"PhoneNumber\" }]\n ]\n },\n {\n id: \"customization\",\n title: i18next.t(\"UserSetting:Form.CustomizationGroup\"),\n rows: [\n [{ id: \"Language\" }, { id: \"ColourTheme\" }],\n [{ id: \"TimeFormat\" }, { id: \"DateFormat\" }]\n ]\n },\n {\n id: \"organization\",\n title: i18next.t(\"UserSetting:Form.OrganizationGroup\"),\n rows: [[{ id: companyRolesPath }]]\n },\n {\n id: \"login\",\n title: i18next.t(\"UserSetting:Form.LoginGroup\"),\n rows: [\n [{ id: loginEmailPath }, { id: changePasswordPath }],\n [{ id: pairedAccountsPath }],\n [{ id: authDevicesPath }]\n ]\n },\n {\n id: \"dataCollection\",\n title: i18next.t(\"UserSetting:Form.DataCollectionGroup\"),\n rows: [\n [{ id: BindingContext.localContext(\"DataCollection\") }]\n ]\n }\n ],\n additionalProperties: [\n { id: \"Name\" },\n {\n id: \"GeneralRoles\",\n additionalProperties: [{ id: \"GeneralRole/GeneralRoleName\" }]\n }\n ]\n };\n\n return {\n entitySet,\n form\n };\n};\n\ngetDefinition.translationFiles = [\"UserSetting\", \"Common\", getEnumNameSpaceName(EntityTypeName.ColourTheme)];\nsetDefForTesting(\"UserSettingDef\", getDefinition);","import { IUserEntity } from \"@odata/GeneratedEntityTypes\";\nimport { IAuthDevice } from \"../../contexts/authContext/Auth.utils\";\nimport { IFormStorageDefaultCustomData } from \"../../views/formView/FormStorage\";\nimport { REST_API_URL, SESSION_DEMO_STATUS_URL, SESSION_DEMO_URL } from \"../../constants\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { getDefaultPostParams } from \"../../utils/customFetch\";\nimport { logger } from \"../../utils/log\";\nimport { switchToTenant } from \"../../login/Login.utils\";\nimport { ROUTE_HOME } from \"../../routes\";\nimport { handleRedirectResponse } from \"../../utils/RedirectUtils\";\n\nexport enum UserSettingDialogType {\n PasswordChange = \"PasswordChange\",\n GoogleRemove = \"GoogleRemove\",\n FacebookRemove = \"FacebookRemove\",\n DeviceRemove = \"DeviceRemove\"\n}\n\nexport const loginEmailPath = \"##LoginEmail##\";\nexport const changePasswordPath = \"##ChangePassword##\";\nexport const companyRolesPath = \"##CompanyRoles##\";\nexport const pairedAccountsPath = \"##pairedAccounts##\";\nexport const googleIsConnectedPath = \"##googleIsConnected##\";\nexport const facebookIsConnectedPath = \"##facebookIsConnected##\";\nexport const authDevicesPath = \"##authDevices##\";\nexport const allowDataCollection = \"##allowDataCollection##\";\nexport const allowDataCollectionMarketing = \"##allowDataCollectionMarketing##\";\nexport const allowDataCollectionMarketingOwner = \"##allowDataCollectionMarketingOwner##\";\nexport const dataCollectionCheckboxGroupPath = BindingContext.localContext(\"DataCollection\");\n\n\nexport interface IUserEntityExtended extends IUserEntity {\n [loginEmailPath]?: string;\n [changePasswordPath]?: string;\n [companyRolesPath]?: string;\n [pairedAccountsPath]?: string;\n [googleIsConnectedPath]?: string;\n [facebookIsConnectedPath]?: string;\n [authDevicesPath]?: IAuthDevice[];\n [allowDataCollection]?: boolean;\n [allowDataCollectionMarketing]?: boolean;\n [allowDataCollectionMarketingOwner]?: boolean;\n}\n\nexport interface IUserSettingCustomData extends IFormStorageDefaultCustomData {\n userSettingDialogTypeKey?: UserSettingDialogType;\n removeAuthDevice?: string;\n}\n\nexport interface IUserSettingsDataCollection {\n IsAgreedToCollectData: boolean;\n IsAgreedToCollectPersonalDataForMarketing: boolean;\n IsAgreedToCollectPersonalDataForMarketingOwner: boolean;\n}\n\nconst USER_SETTINGS_DATA_COLLECTION_ROUTE = `${REST_API_URL}/UserSettings`;\n\nexport const fetchUserSettingsDataCollection = async (): Promise => {\n const res = await fetch(USER_SETTINGS_DATA_COLLECTION_ROUTE);\n\n return await res.json() as IUserSettingsDataCollection;\n};\n\nexport const saveUserSettingsDataCollection = async (dataCollection: IUserSettingsDataCollection): Promise => {\n await fetch(USER_SETTINGS_DATA_COLLECTION_ROUTE, {\n ...getDefaultPostParams(),\n body: JSON.stringify(dataCollection)\n });\n};\n\nexport enum DemoTenantStatusCode {\n NotCreated = \"NotCreated\",\n Creating = \"Creating\",\n Created = \"Created\"\n}\n\nexport interface IDemoTenantInfo {\n BackgroundJobId?: number;\n DemoTenantId?: number;\n DemoTenantStatus: DemoTenantStatusCode;\n}\n\nasync function fetchDemoTenantRequest(url: string, message = \"Failed to fetch\", method = \"GET\"): Promise {\n try {\n const response = await fetch(url, method === \"GET\" ? undefined : getDefaultPostParams());\n\n if (response.ok) {\n return response.json();\n } else {\n logger.error(`${message}; response status: ${response.status}`);\n }\n } catch (e) {\n logger.error(message, e);\n }\n return false;\n}\n\nexport function getDemoTenantInfo(): Promise {\n return fetchDemoTenantRequest(SESSION_DEMO_STATUS_URL, \"Failed to get demo tenant status\");\n}\n\nexport async function createDemoTenant(): Promise {\n return fetchDemoTenantRequest(SESSION_DEMO_URL, \"Failed to create demo tenant\", \"POST\");\n}\n\nexport async function switchToDemoTenant(tenantId: number): Promise {\n try {\n const response = await switchToTenant({ TenantId: tenantId });\n\n if (response.ok) {\n window.location.assign(ROUTE_HOME);\n return true;\n } else if (response.status === 403) {\n await handleRedirectResponse(response, true);\n return true;\n } else {\n logger.error(`Failed to select demo tenant; response status: ${response.status}`);\n }\n } catch (e) {\n logger.error(\"Failed to select demo tenant\", e);\n }\n return false;\n}\n","// route urls\nimport { escapeRegExp } from \"lodash\";\n\nimport { TRecordString } from \"./global.types\";\n\nexport const ROUTE_HOME = \"/\";\n\nexport const ROUTE_NUMBER_RANGES = \"/numberRanges\";\nexport const ROUTE_CHARTS_OF_ACCOUNTS = \"/chartOfAccounts\";\nexport const ROUTE_FISCAL_YEAR = \"/fiscalYear\";\nexport const ROUTE_INVOICE_RECEIVED = \"/invoicesReceived\";\nexport const ROUTE_INVOICE_ISSUED = \"/invoicesIssued\";\nexport const ROUTE_PROFORMA_INVOICE_RECEIVED = \"/proformaInvoicesReceived\";\nexport const ROUTE_PROFORMA_INVOICE_ISSUED = \"/proformaInvoicesIssued\";\nexport const ROUTE_OTHER_LIABILITY = \"/otherLiability\";\nexport const ROUTE_OTHER_RECEIVABLE = \"/otherReceivable\";\nexport const ROUTE_INTERNAL_DOCUMENT = \"/internalDocument\";\nexport const ROUTE_CORRECTIVE_INVOICE_RECEIVED = \"/correctiveInvoicesReceived\";\nexport const ROUTE_CORRECTIVE_INVOICE_ISSUED = \"/correctiveInvoicesIssued\";\nexport const ROUTE_GENERAL_LEDGER = \"/generalLedger\";\nexport const ROUTE_ELECTRONIC_SUBMISSION = \"/electronicSubmission\";\nexport const ROUTE_ACCOUNTING_JOURNAL = \"/accountingJournal\";\nexport const ROUTE_DOCUMENT_JOURNAL = \"/documentJournal\";\nexport const ROUTE_VAT_STATEMENT_REPORT = \"/vatStatementReport\";\nexport const ROUTE_VAT_CONTROL_STATEMENT_REPORT = \"/vatControlStatementReport\";\nexport const ROUTE_VAT_VIES_STATEMENT_REPORT = \"/vatVIESStatementReport\";\nexport const ROUTE_PAYMENT_JOURNAL = \"/paymentJournal\";\nexport const ROUTE_ACCOUNT_ANALYSIS = \"/accountAnalysis\";\nexport const ROUTE_ASSET_ANALYSIS = \"/assetAnalysis\";\nexport const ROUTE_SALDO = \"/saldo\";\nexport const ROUTE_BALANCE_SHEET = \"/balanceSheet\";\nexport const ROUTE_INCOME_STATEMENT = \"/incomeStatement\";\nexport const ROUTE_AGING_AP = \"/agingAP\";\nexport const ROUTE_AGING_AR = \"/agingAR\";\nexport const ROUTE_RECEIVABLE_ADJUSTMENTS = \"/receivableAdjustments\";\nexport const ROUTE_FISCAL_YEAR_CLOSE = \"/fiscalYearClose\";\nexport const ROUTE_COMPANIES = \"/companies\";\nexport const ROUTE_NEW_COMPANY = \"/newCompany\";\nexport const ROUTE_COMPANY_SETTING = \"/companySetting\";\nexport const ROUTE_MENU = \"/menu\";\nexport const ROUTE_DOCUMENTS = `${ROUTE_MENU}/documents`;\nexport const ROUTE_ACTIONS = `${ROUTE_MENU}/actions`;\nexport const ROUTE_PAYMENTS = `${ROUTE_MENU}/payments`;\nexport const ROUTE_ASSETS = `${ROUTE_MENU}/assets`;\nexport const ROUTE_REPORTING = `${ROUTE_MENU}/reporting`;\nexport const ROUTE_AUDIT = `${ROUTE_MENU}/audit`;\nexport const ROUTE_PAYROLL = `${ROUTE_MENU}/payroll`;\nexport const ROUTE_INITIAL_ACCOUNT_BALANCES = \"/initialAccountBalances\";\nexport const ROUTE_DATA_IMPORT = \"/dataImport\";\nexport const ROUTE_DATA_EXPORT = \"/dataExport\";\nexport const ROUTE_INTEGRATIONS = \"/integrations\";\n\nexport const ROUTE_NOT_FOUND = \"/notFound\";\nexport const ROUTE_USER_SETTING = \"/userSetting\";\nexport const AUDIT_TRAIL = \"auditTrail\";\nexport const ROUTE_DEVTOOLS = \"/devtools\";\nexport const ROUTE_LOGIN = \"/login\";\nexport const ROUTE_LOGIN_REGISTER = `${ROUTE_LOGIN}/register`;\nexport const ROUTE_LOGIN_RESET_PASS_REQUEST = `${ROUTE_LOGIN}/resetPasswordRequest`;\nexport const ROUTE_LOGIN_VERIFY = `${ROUTE_LOGIN}/verify`;\nexport const ROUTE_EMAIL_CONFIRM = `${ROUTE_LOGIN}/confirmEmail`;\nexport const ROUTE_LOGIN_TENANT = `${ROUTE_LOGIN}/tenant`;\nexport const ROUTE_LOGIN_INVITATION = `${ROUTE_LOGIN}/invitation`;\nexport const ROUTE_LOGIN_TENANT_REGISTER = `${ROUTE_LOGIN}/tenantregister`;\nexport const ROUTE_LOGIN_DEVICE = `${ROUTE_LOGIN}/device`;\nexport const ROUTE_LOGIN_RESET_PASS = `${ROUTE_LOGIN}/resetpassword`;\nexport const ROUTE_LOGOUT = \"/logout\";\nexport const ROUTE_LABEL_HIERARCHIES = \"/labelHierarchy\";\nexport const ROUTE_RECURRING_TASKS = \"/recurringTasks\";\nexport const ROUTE_RECURRING_TASKS_EXECUTIONS = \"/executions\";\nexport const ROUTE_EXCHANGE_RATES = \"/exchangeRates\";\nexport const ROUTE_BUSINESS_PARTNER = \"/businessPartner\";\nexport const ROUTE_CUSTOMER_PORTAL_PAYMENT = \"/customerPortalPayment\";\nexport const ROUTE_MINOR_ASSET = \"/minorAsset\";\nexport const ROUTE_FIXED_ASSET = \"/asset\";\nexport const ROUTE_UNORGANIZED_ASSET = \"/unorganizedAsset\";\nexport const ROUTE_CURRENCY_SETTINGS = \"/currencySettings\";\nexport const ROUTE_CATEGORIES = \"/categories\";\nexport const ROUTE_INBOX_SETTINGS = \"/inboxSettings\";\nexport const ROUTE_INBOX_CUSTOMER_APPROVAL = \"/inboxApproval\";\nexport const ROUTE_INBOX_SEND_TO_ACCOUNTANT = \"/createInboxFiles\";\nexport const ROUTE_BANK_ACCOUNTS = \"/bankAccounts\";\nexport const ROUTE_BANK_STATEMENTS = \"/bankStatements\";\nexport const ROUTE_BANK_TRANSACTIONS = \"/bankTransactions\";\nexport const ROUTE_BACKGROUNDJOBS_HISTORY = \"/backgroundJobsHistory\";\nexport const ROUTE_DATA_BOX = \"/dataBox\";\nexport const ROUTE_MESSAGES = \"/messages\";\nexport const ROUTE_TICKETS = \"/tickets\";\nexport const ROUTE_DELETE_LOG = \"/deleteLog\";\nexport const ROUTE_INBOX = \"/inbox\";\nexport const ROUTE_CASH_BOXES = \"/cashBoxes\";\nexport const ROUTE_CASH_RECEIPTS = \"/cashReceipts\";\nexport const ROUTE_CASH_RECEIPTS_RECEIVED = `${ROUTE_CASH_RECEIPTS}/CashReceiptsReceived`;\nexport const ROUTE_CASH_RECEIPTS_ISSUED = `${ROUTE_CASH_RECEIPTS}/CashReceiptsIssued`;\nexport const ROUTE_INCOME_AND_EXPENDITURE = \"/CbaIncomeExpense\";\nexport const ROUTE_CBA_ENTRY_LEDGER = \"/CbaEntryLedger\";\n\nexport const ROUTE_WEBINVOICE = \"/webInvoice\";\nexport const ROUTE_WELCOME_SCREEN = \"/welcomeScreen\";\nexport const ROUTE_CONNECT_WITH_IDOKLAD = \"/connectiDoklad\";\nexport const ROUTE_SWITCH_TO_CUSTOMER_PORTAL = \"/customerPortal\";\n// redirects to correct route based on notification type\nexport const ROUTE_NOTIFICATION_REDIRECT = \"/notificationRedirect\";\n\n// organization settings routes\nexport const ROUTE_ORG_SETTINGS_PREFIX = \"/org\";\nexport const ROUTE_ORG_MENU = `${ROUTE_ORG_SETTINGS_PREFIX}${ROUTE_MENU}`;\nexport const ROUTE_MENU_USERS = `${ROUTE_ORG_MENU}/users`;\nexport const ROUTE_MENU_SUBSCRIPTION = `${ROUTE_ORG_MENU}/subscription`;\nexport const ROUTE_MENU_COMMON_SETTINGS = `${ROUTE_ORG_MENU}/commonSettings`;\n\nexport const ROUTE_USERS = `${ROUTE_ORG_SETTINGS_PREFIX}/users`;\nexport const ROUTE_COMPANY_ROLES = `${ROUTE_ORG_SETTINGS_PREFIX}/companyRoles`;\nexport const ROUTE_SYSTEM_ROLES = `${ROUTE_ORG_SETTINGS_PREFIX}/generalRoles`;\nexport const ROUTE_SUBSCRIPTIONS_PLAN = `${ROUTE_ORG_SETTINGS_PREFIX}/plan`;\nexport const ROUTE_SUBSCRIPTIONS_INVOICING = `${ROUTE_ORG_SETTINGS_PREFIX}/invoicing`;\nexport const ROUTE_SUBSCRIPTIONS_EXTENSIONS = `${ROUTE_ORG_SETTINGS_PREFIX}/extensions`;\nexport const ROUTE_SUBSCRIPTIONS_PAYMENTS = `${ROUTE_ORG_SETTINGS_PREFIX}/payments`;\nexport const ROUTE_ACCOUNT_ASSIGNMENT = `${ROUTE_ORG_SETTINGS_PREFIX}/accountAssignment`;\nexport const ROUTE_CHARTS_OF_ACCOUNTS_TEMPLATES = `${ROUTE_ORG_SETTINGS_PREFIX}/chartOfAccountsTemplates`;\nexport const ROUTE_VAT = `${ROUTE_ORG_SETTINGS_PREFIX}/Vat`;\nexport const ROUTE_DOCUMENT_ITEM_TEMPLATES = `${ROUTE_ORG_SETTINGS_PREFIX}/itemTemplates`;\nexport const ROUTE_GOODBYE_SCREEN = `${ROUTE_ORG_SETTINGS_PREFIX}/goodbye`;\n\n// dashboard pages linked only trough tile\nexport const ROUTE_POSTED_DOCUMENTS_LAST_MONTH = `${ROUTE_ORG_SETTINGS_PREFIX}/postedDocumentsLastMonth`;\nexport const ROUTE_JOURNAL_ENTRIES_LAST_MONTH = `${ROUTE_ORG_SETTINGS_PREFIX}/postedJournalEntriesLastMonth`;\nexport const ROUTE_AGENDA_WORK_OVERVIEW = `${ROUTE_ORG_SETTINGS_PREFIX}/agendaWorkOverview`;\nexport const ROUTE_FISCAL_YEAR_CLOSE_OVERVIEW = `${ROUTE_ORG_SETTINGS_PREFIX}/fiscalYearCloseOverview`;\n\n// Payroll routes\nexport const ROUTE_GOVERNMENT_INSTITUTION = \"/governmentInstitution\";\nexport const ROUTE_HEALTH_INSURANCE_COMPANIES = \"/healthInsuranceCompanies\";\nexport const ROUTE_PENSION_INSURANCE_COMPANIES = \"/pensionInsuranceCompanies\";\nexport const ROUTE_LIFE_INSURANCE_COMPANIES = \"/lifeInsuranceCompanies\";\nexport const ROUTE_WORKING_PATTERNS = \"/workingPattern\";\nexport const ROUTE_EMPLOYMENT = \"/employment\";\nexport const ROUTE_EMPLOYMENT_TEMPLATE = \"/employmentTemplate\";\nexport const ROUTE_EMPLOYEES = \"/employees\";\nexport const ROUTE_SALARY_COMPONENTS = \"/salaryComponents\";\nexport const ROUTE_SALARY_ADVANCES = \"/salaryAdvances\";\nexport const ROUTE_EXTRA_SALARIES = \"/extraSalaries\";\nexport const ROUTE_ABSENCE_CATEGORIES = \"/absenceCategories\";\nexport const ROUTE_ATTENDANCE = \"/attendance\";\nexport const ROUTE_PAYSLIP = \"/payslip\";\nexport const ROUTE_GROUP_DEDUCTIONS = \"/groupDeductions\";\nexport const ROUTE_INDIVIDUAL_DEDUCTIONS = \"/individualDeductions\";\n\n/** Whether this view should support new company wizard\n * (e.g. its not gonna automatically redirect to /companies when opened) */\nexport const WIZARD_SUPPORTED_ROUTES = [\n ROUTE_COMPANIES, ROUTE_DEVTOOLS, ROUTE_USER_SETTING, ROUTE_NEW_COMPANY\n];\n\nexport const ROUTES_AVAILABLE_WITHOUT_COMPANY = [\n ROUTE_WELCOME_SCREEN, ROUTE_DEVTOOLS, ROUTE_USER_SETTING, ROUTE_NEW_COMPANY\n];\n\nexport const LIMITED_ACCESS_SUPPORTED_ROUTES = [\n ROUTE_GOODBYE_SCREEN, ROUTE_DEVTOOLS\n];\n\n// These routes are available only in customer portal -> if user navigates to them, CP settings is forced\nexport const ROUTES_CUSTOMER_PORTAL = [\n ROUTE_CONNECT_WITH_IDOKLAD,\n ROUTE_INBOX_CUSTOMER_APPROVAL,\n ROUTE_INBOX_SEND_TO_ACCOUNTANT\n /* todo: specify this */\n];\n\n// Customer is usually able to navigate to several routes, which are shared for accountant and customer,\n// however some routes has to force turning the customer portal layout off. E.g. companies in case user hits\n// back when previously switch to customer portal from companies dashboard\nexport const ROUTES_NOT_IN_CUSTOMER_PORTAL = [\n ROUTE_COMPANIES,\n ROUTE_INBOX\n /* todo: specify this */\n];\n\nexport function containsRoute(list: string[], route: string): boolean {\n if (!route) {\n return false;\n }\n const needle = route.toLowerCase();\n return !!list.find(r => {\n const lowerRoute = r.toLowerCase();\n return needle === lowerRoute || needle?.startsWith(`${lowerRoute}/`);\n });\n}\n\nexport const doesRouteSupportWizard = (route: string): boolean => {\n return containsRoute(WIZARD_SUPPORTED_ROUTES, route);\n};\n\nexport const isCompanyRelatedRoute = (route: string): boolean => {\n return !isOrganizationSettingsRoute(route) && !containsRoute(ROUTES_AVAILABLE_WITHOUT_COMPANY, route);\n};\n\nexport const isCustomerPortalRoute = containsRoute.bind(null, ROUTES_CUSTOMER_PORTAL);\nexport const isNonCustomerPortalRoute = containsRoute.bind(null, ROUTES_NOT_IN_CUSTOMER_PORTAL);\n\n/* Route for both OrganizationSettings and normal mode */\nexport const isUniversalRoute = (route: string): boolean =>\n [ROUTE_HOME, ROUTE_WELCOME_SCREEN, ROUTE_COMPANIES, ROUTE_NEW_COMPANY, ROUTE_USER_SETTING].includes(route);\n\n\nexport const isOrganizationSettingsRoute = (route: string): boolean => {\n return !!route?.toLowerCase().startsWith(ROUTE_ORG_SETTINGS_PREFIX.toLowerCase()) || route === ROUTE_DEVTOOLS;\n};\n\nexport const getCorrectPath = (path: string, params: TRecordString): string => {\n // todo: Use always :Id parametr in the route, so we don't need this workaround\n if (!path.match(/:Id(\\?|\\/|$)/) && params.Id) {\n path = `${path}/${params.Id}`;\n }\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const re = new RegExp(`:${escapeRegExp(key)}[?]?`, \"g\");\n path = path.replace(re, encodeURIComponent(params[key] ?? \"\"));\n }\n }\n // Replace optional params, which are not set\n path = path.replace(/:[a-zA-Z]+\\?/g, \"\");\n\n // Return path without last slash\n return path.replace(/\\/+$/, \"\");\n};\n","import { QueryParam } from \"../enums\";\nimport * as History from \"history\";\nimport { IHistoryState } from \"../model/Model\";\nimport { TRecordString } from \"../global.types\";\n\ninterface IGetQueryParameters {\n exclude?: QueryParam[];\n historyLocation?: History.Location;\n}\n\nexport const getQueryParameters = (args: IGetQueryParameters = {}): Record => {\n const search = new URLSearchParams(args.historyLocation?.search ?? window.location.search);\n if (args.exclude?.length) {\n for (const e of args.exclude) {\n search.delete(e);\n }\n }\n return Object.fromEntries(\n search\n ) as Record;\n};\n\nexport const removeQueryParam = (history: History.History, param: QueryParam, replaceState?: boolean): void => {\n const search = history.location.search;\n const params = new URLSearchParams(search);\n params.delete(param);\n\n const historyFn = replaceState ? history.replace : history.push;\n\n historyFn({\n pathname: history.location.pathname,\n search: params.toString()\n });\n};\n\ninterface ISetQueryParams {\n history: History.History;\n newParams: TRecordString;\n replaceState?: boolean;\n}\n\nexport const setQueryParams = (args: ISetQueryParams): void => {\n const search = args.history.location.search;\n const params = new URLSearchParams(search);\n for (const [key, val] of Object.entries(args.newParams)) {\n params.set(key, val);\n }\n\n const historyFn = args.replaceState ? args.history.replace : args.history.push;\n\n historyFn({\n pathname: args.history.location.pathname,\n search: params.toString()\n });\n};\n\nexport const getRedirectUriQueryParam = (): string => {\n const { pathname, search } = window.location;\n if (!pathname || pathname === \"/\") {\n return \"\";\n }\n return `${QueryParam.RedirectUri}=${encodeURIComponent(pathname + (search ?? \"\"))}`;\n};","const TestIds = Object.freeze({\n Accordion: \"Accordion\",\n AccordionPanel: \"AccordionPanel\",\n AccordionPanelContent: \"AccordionPanelContent\",\n AccordionPanelIconsWrapper: \"AccordionPanelIconsWrapper\",\n AccountingBalance: \"AccountingBalance\",\n ActionIconWrapper: \"ActionIconWrapper\",\n ActionItemWrapper: \"ActionItemWrapper\",\n AfterTokensText: \"AfterTokensText\",\n AgendaSpan: \"AgendaSpan\",\n Alert: \"Alert\",\n AlertAction: \"AlertAction\",\n AlertContent: \"AlertContent\",\n AlertSubtitle: \"AlertSubtitle\",\n AlertTitle: \"AlertTitle\",\n AmountOverview: \"AmountOverview\",\n AppliedSubTitle: \"AppliedSubTitle\",\n Attachment: \"Attachment\",\n AttachmentName: \"AttachmentName\",\n AuditTrail: \"AuditTrail\",\n AuditTrailLayer: \"AuditTrailLayer\",\n AuditTrailLineOrder: \"AuditTrailLineOrder\",\n AutoCompleteGroup: \"AutoCompleteGroup\",\n AutoCompleteHeader: \"AutoCompleteHeader\",\n Badge: \"Badge\",\n BankAccountFilterTile: \"BankAccountFilterTile\",\n BoldText: \"BoldText\",\n BottomTextLabel: \"BottomTextLabel\",\n BottomTextLink: \"BottomTextLink\",\n Breadcrumb: \"Breadcrumb\",\n BreadcrumbItem: \"BreadcrumbItem\",\n BusyIndicator: \"BusyIndicator\",\n BusyWrapper: \"BusyWrapper\",\n Button: \"Button\",\n ButtonGroup: \"ButtonGroup\",\n CalculatedCoefficient: \"CalculatedCoefficient\",\n CalculatedTax: \"CalculatedTax\",\n CashboxFilterTile: \"CashboxFilterTile\",\n Chat: \"Chat\",\n CheckList: \"CheckList\",\n CheckListItem: \"CheckListItem\",\n Checkbox: \"Checkbox\",\n CheckboxContainer: \"CheckboxContainer\",\n CheckboxGroup: \"CheckboxGroup\",\n CheckboxGroupWrapper: \"CheckboxGroupWrapper\",\n CheckboxGroupColumn: \"CheckboxGroupColumn\",\n CheckboxLabel: \"CheckboxLabel\",\n CheckboxWrapper: \"CheckboxWrapper\",\n ClickableText: \"ClickableText\",\n CollapsibleContent: \"CollapsibleContent\",\n CollapsibleSection: \"CollapsibleSection\",\n CollapsibleSectionBody: \"CollapsibleSectionBody\",\n Color: \"Color\",\n ColorPicker: \"ColorPicker\",\n ColorPickerMenu: \"ColorPickerMenu\",\n ColumnSortIconWrapper: \"ColumnSortIconWrapper\",\n ContentAfterRow: \"ContentAfterRow\",\n CompanyAvatar: \"CompanyAvatar\",\n CompanyDashboard: \"CompanyDashboard\",\n CompanyOpener: \"CompanyOpener\",\n CompanySelector: \"CompanySelector\",\n CompanyTile: \"CompanyTile\",\n CompanyTileBody: \"CompanyTileBody\",\n CompanyTileContent: \"CompanyTileContent\",\n CompanyTileFooter: \"CompanyTileFooter\",\n CompanyTileHeader: \"CompanyTileHeader\",\n ComparisonBorder: \"ComparisonBorder\",\n ConditionalFilterDialog: \"ConditionalFilterDialog\",\n ConfigurationColumn: \"ConfigurationColumn\",\n ConfigurationGroup: \"ConfigurationGroup\",\n ConfigurationItem: \"ConfigurationItem\",\n ConfigurationItemAggregationSelector: \"ConfigurationItemAggregationSelector\",\n ConfigurationItemValue: \"ConfigurationItemValue\",\n ConfigurationList: \"ConfigurationList\",\n ConfigurationListAddAggregationButton: \"ConfigurationListAddAggregationButton\",\n ConfirmationHeader: \"ConfirmationHeader\",\n Content: \"Content\",\n ContentColumn: \"ContentColumn\",\n ContentEditableMessage: \"ContentEditableMessage\",\n ContextMenu: \"ContextMenu\",\n CustomerCompanySelector: \"CustomerCompanySelector\",\n Dashboard: \"Dashboard\",\n DashboardItem: \"DashboardItem\",\n DashboardTile: \"DashboardTile\",\n DashboardTileHeading: \"DashboardTileHeading\",\n DashedResizeLine: \"DashedResizeLine\",\n DataBoxInfo: \"DataBoxInfo\",\n DataBoxPermissionRow: \"DataBoxPermissionRow\",\n DatePickerBase: \"DatePickerBase\",\n DatePickerCalendar: \"DatePickerCalendar\",\n DatePickerMonthLabel: \"DatePickerMonthLabel\",\n DatePickerNextMonth: \"DatePickerNextMonth\",\n DatePickerPopup: \"DatePickerPopup\",\n DatePickerPopupBackButton: \"DatePickerPopupBackButton\",\n DatePickerPrevMonth: \"DatePickerPrevMonth\",\n DatePickerWeeks: \"DatePickerWeeks\",\n DatePickerYearLabel: \"DatePickerYearLabel\",\n DateRangePicker: \"DateRangePicker\",\n DayCurrent: \"DayCurrent\",\n DayCurrentMonth: \"DayCurrentMonth\",\n DayCurrentSelected: \"DayCurrentSelected\",\n DayOutsideMonth: \"DayOutsideMonth\",\n DaySelected: \"DaySelected\",\n DeleteLogHeader: \"DeleteLogHeader\",\n Description: \"Description\",\n DeviceBody: \"DeviceBody\",\n Dialog: \"Dialog\",\n DialogBody: \"DialogBody\",\n DialogFooter: \"DialogFooter\",\n DialogHeader: \"DialogHeader\",\n DialogTitle: \"DialogTitle\",\n DialogSubTitle: \"DialogSubTitle\",\n Document: \"Document\",\n DomainName: \"DomainName\",\n DraftTimeStamp: \"DraftTimeStamp\",\n DrilldownWrapper: \"DrilldownWrapper\",\n DropArea: \"DropArea\",\n DropdownIcon: \"DropdownIcon\",\n EditableText: \"EditableText\",\n EditableTextReadLabel: \"EditableTextReadLabel\",\n EditableWindowCloseIcon: \"EditableWindowCloseIcon\",\n EditVariantsGrid: \"EditVariantsGrid\",\n ElSubDetailIncludedDocuments: \"ElSubDetailIncludedDocuments\",\n ElSubDetailLinks: \"ElSubDetailLinks\",\n ElSubPeriodCell: \"ElSubPeriodCell\",\n ErrorText: \"ErrorText\",\n ErrorStepper: \"ErrorStepper\",\n ErrorWrapper: \"ErrorWrapper\",\n ExpandButton: \"ExpandButton\",\n FastEntryItem: \"FastEntryItem\",\n FastEntryList: \"FastEntryList\",\n FastEntryListHeader: \"FastEntryListHeader\",\n FastEntryListLastField: \"FastEntryListLastField\",\n FastEntryListVirtualization: \"FastEntryListVirtualization\",\n Field: \"Field\",\n FieldContent: \"FieldContent\",\n FieldGroup: \"FieldGroup\",\n FieldGroupToggle: \"FieldGroupToggle\",\n FieldLabel: \"FieldLabel\",\n FieldsWrapper: \"FieldsWrapper\",\n FileIconWrapper: \"FileIconWrapper\",\n FileStrip: \"FileStrip\",\n FileStripItem: \"FileStripItem\",\n FileText: \"FileText\",\n FileUploader: \"FileUploader\",\n FileViewer: \"FileViewer\",\n FilterBar: \"FilterBar\",\n FilterBarToggle: \"FilterBarToggle\",\n FilterReadOnlyGroup: \"FilterReadOnlyGroup\",\n ChangeValueDialog: \"ChangeValueDialog\",\n FloatingText: \"FloatingText\",\n Footer: \"Footer\",\n FormContent: \"FormContent\",\n FormFooter: \"FormFooter\",\n FormGroup: \"FormGroup\",\n FormGroupAction: \"FormGroupAction\",\n FormGroupActions: \"FormGroupActions\",\n FormGroupAuditTrailLayer: \"FormGroupAuditTrailLayer\",\n FormGroupBody: \"FormGroupBody\",\n FormGroupHeader: \"FormGroupHeader\",\n FormGroupLine: \"FormGroupLine\",\n FormView: \"FormView\",\n GainRow: \"GainRow\",\n GainRowLabel: \"GainRowLabel\",\n GainRowValue: \"GainRowValue\",\n GroupedFields: \"GroupedFields\",\n Header: \"Header\",\n HeaderInfoText: \"HeaderInfoText\",\n HeaderSubtitle: \"HeaderSubtitle\",\n HeaderTitle: \"HeaderTitle\",\n HiddenFileInput: \"HiddenFileInput\",\n HiddenItems: \"HiddenItems\",\n Hotspots: \"Hotspots\",\n Icon: \"Icon\",\n IconBar: \"IconBar\",\n IconBarItem: \"IconBarItem\",\n ImageWrapper: \"ImageWrapper\",\n ImportSettings: \"ImportSettings\",\n ImportSettingsColumn: \"ImportSettingsColumn\",\n ImportSettingsColumnHeader: \"ImportSettingsColumnHeader\",\n ImportSettingsDragItem: \"ImportSettingsDragItem\",\n ImportSettingsDropItemLabel: \"ImportSettingsDropItemLabel\",\n ImportSettingsDropItemDroppable: \"ImportSettingsDropItemDroppable\",\n ImportSettingsDropItemSelector: \"ImportSettingsDropItemSelector\",\n ImportSettingsGrid: \"ImportSettingsGrid\",\n ImportSettingsValuePreview: \"ImportSettingsValuePreview\",\n InboxPage: \"InboxPage\",\n InitialAccountBalancesGrid: \"InitialAccountBalancesGrid\",\n InitialAccountBalancesGridCell: \"InitialAccountBalancesGridCell\",\n InputWrapper: \"InputWrapper\",\n Input: \"Input\",\n InputStatus: \"InputStatus\",\n InventoryGrid: \"InventoryGrid\",\n ItemsSummaryTable: \"ItemsSummaryTable\",\n LabelDescription: \"LabelDescription\",\n LabeledWriteLine: \"LabeledWriteLine\",\n Line: \"Line\",\n ListItemRow: \"ListItemRow\",\n ListItemRowLabel: \"ListItemRowLabel\",\n ListItemRowValue: \"ListItemRowValue\",\n LoginPage: \"LoginPage\",\n LoginInputField: \"LoginInputField\",\n LostPass: \"LostPass\",\n Menu: \"Menu\",\n MenuItem: \"MenuItem\",\n Message: \"Message\",\n MessageContent: \"MessageContent\",\n MessageStreamWrapper: \"MessageStreamWrapper\",\n MonthsGrid: \"MonthsGrid\",\n MoreItems: \"MoreItems\",\n Name: \"Name\",\n NewMessage: \"NewMessage\",\n NoData: \"NoData\",\n Notification: \"Notification\",\n NotificationAlert: \"NotificationAlert\",\n NotificationDescription: \"NotificationDescription\",\n NotificationInfo: \"NotificationInfo\",\n Notifications: \"Notifications\",\n NotificationsCount: \"NotificationsCount\",\n NotificationSettings: \"NotificationSettings\",\n NotificationSettingsRow: \"NotificationSettingsRow\",\n NoPreview: \"NoPreview\",\n ObjectList: \"ObjectList\",\n ObjectListItem: \"ObjectListItem\",\n OrganizationTile: \"OrganizationTile\",\n Page: \"Page\",\n PageControlFirstPage: \"PageControlFirstPage\",\n PageControlLastPage: \"PageControlLastPage\",\n PageControlNextPage: \"PageControlNextPage\",\n PageControlPreviousPage: \"PageControlPreviousPage\",\n PageControls: \"PageControls\",\n PageCount: \"PageCount\",\n Paginator: \"Paginator\",\n PairingRow: \"PairingRow\",\n PairingValueTitle: \"PairingValueTitle\",\n PairingValue: \"PairingValue\",\n PaymentOrderGrid: \"PaymentOrderGrid\",\n PdfWrapper: \"PdfWrapper\",\n PencilDialog: \"PencilDialog\",\n PermissionComponent: \"PermissionComponent\",\n PermissionsGrid: \"PermissionsGrid\",\n PlaceholderLine: \"PlaceholderLine\",\n PreviewCanvas: \"PreviewCanvas\",\n PrimaryContent: \"PrimaryContent\",\n PrimarySubTitle: \"PrimarySubTitle\",\n ProductTypeItem: \"ProductTypeItem\",\n BackgroundJobs: \"BackgroundJobs\",\n BackgroundJobsItem: \"BackgroundJobsItem\",\n BackgroundJobsItemsList: \"BackgroundJobsItemsList\",\n BackgroundJobsStatus: \"BackgroundJobsStatus\",\n ProgressBar: \"ProgressBar\",\n ProgressBarDescription: \"ProgressBarDescription\",\n ProgressValue: \"ProgressValue\",\n RadioButton: \"RadioButton\",\n RadioButtonGroup: \"RadioButtonGroup\",\n RadioButtonLabel: \"RadioButtonLabel\",\n ReadOnlyList: \"ReadOnlyList\",\n ReadOnlyListItem: \"ReadOnlyListItem\",\n ReadOnlyListItemLabel: \"ReadOnlyListLabel\",\n ReadOnlyListItemValue: \"ReadOnlyListValue\",\n RequiredMark: \"RequiredMark\",\n ScrollBar: \"ScrollBar\",\n SegmentedButton: \"SegmentedButton\",\n Select: \"Select\",\n SelectInputLabel: \"SelectInputLabel\",\n SelectMenu: \"SelectMenu\",\n SelectMenuColumn: \"SelectMenuColumn\",\n SelectMenuGroup: \"SelectMenuGroup\",\n SelectMenuGroupTitle: \"SelectMenuGroupTitle\",\n SelectMenuHeader: \"SelectMenuHeader\",\n SelectMenuItem: \"SelectMenuItem\",\n SelectSearchInput: \"SelectSearchInput\",\n Separator: \"Separator\",\n SettingLabel: \"SettingLabel\",\n SettingRow: \"SettingRow\",\n SettingsList: \"SettingsList\",\n SettingsListItem: \"SettingListItem\",\n Shellbar: \"Shellbar\",\n ShellbarContent: \"ShellbarContent\",\n ShellbarContentGroup: \"ShellbarContentGroup\",\n ShellbarContentGroupItem: \"ShellbarContentGroupItem\",\n ShellbarContentGroupTitle: \"ShellbarContentGroupTitle\",\n ShellIconsGroup: \"ShellIconsGroup\",\n SimpleGridTable: \"SimpleGridTable\",\n SimpleItem: \"SimpleItem\",\n SimpleTable: \"SimpleTable\",\n Slider: \"Slider\",\n SliderMark: \"SliderMark\",\n SliderMarkLabel: \"SliderMarkLabel\",\n SliderThumb: \"SliderThumb\",\n SliderThumbLabel: \"SliderThumbLabel\",\n SortableList: \"SortableList\",\n SortableListItem: \"SortableListItem\",\n SpiderAnim: \"SpiderAnim\",\n SplitDialogTitle: \"SplitDialogTitle\",\n SplitDialogValue: \"SplitDialogValue\",\n Splitter: \"Splitter\",\n State: \"State\",\n StaticItems: \"StaticItems\",\n Stepper: \"Stepper\",\n Subtitle: \"Subtitle\",\n Summary: \"Summary\",\n SummaryItem: \"SummaryItem\",\n SummaryItemLabel: \"SummaryItemLabel\",\n SummaryItemValue: \"SummaryItemValue\",\n SvgImage: \"SvgImage\",\n Switch: \"Switch\",\n SwitchBody: \"SwitchBody\",\n SwitchCircle: \"SwitchCircle\",\n SwitchPageInfo: \"SwitchPageInfo\",\n SwitchPageLink: \"SwitchPageLink\",\n Tab: \"Tab\",\n TabContent: \"TabContent\",\n TabCount: \"TabCount\",\n Table: \"Table\",\n TableAggregationRow: \"TableAggregationRow\",\n TableCell: \"TableCell\",\n TableCellContent: \"TableCellContent\",\n TableCellAfterContent: \"TableCellAfterContent\",\n TableCellHoverContent: \"TableCellHoverContent\",\n TableGroupRow: \"TableGroupRow\",\n TableHeader: \"TableHeader\",\n TableHeaderCell: \"TableHeaderCell\",\n TableHeaderCellContent: \"TableHeaderCellContent\",\n TableHeaderMetaColumn: \"TableHeaderMetaColumn\",\n TableHeaderMetaColumnContent: \"TableHeaderMetaColumnContent\",\n TableHeaderMetaColumnLabel: \"TableHeaderMetaColumnLabel\",\n TableMasterAction: \"TableMasterAction\",\n TableMergedRow: \"TableMergedRow\",\n TableRow: \"TableRow\",\n TableRowAction: \"TableRowAction\",\n TableSortingItem: \"TableSortingItem\",\n Tabs: \"Tabs\",\n TabsMenu: \"TabsMenu\",\n Tasks: \"Tasks\",\n TaskRow: \"TaskRow\",\n TaskRowCaret: \"TaskRowCaret\",\n TaskRowContent: \"TaskRowContent\",\n TaskRowStatusIcon: \"TaskRowStatusIcon\",\n TenantSelector: \"TenantSelector\",\n TenantTitle: \"TenantTitle\",\n Text: \"Text\",\n TicketMessageInput: \"TicketMessageInput\",\n TicketMessageStream: \"TicketMessageStream\",\n Title: \"Title\",\n TitleColumn: \"TitleColumn\",\n Token: \"Token\",\n TokenInput: \"TokenInput\",\n Tokenizer: \"Tokenizer\",\n Toolbar: \"Toolbar\",\n Tooltip: \"Tooltip\",\n TruncatedValue: \"TruncatedValue\",\n UnderTableText: \"UnderTableText\",\n UserName: \"UserName\",\n ValueHelper: \"ValueHelper\",\n ValueHelperAddButton: \"ValueHelperAddButton\",\n ValueHelperRow: \"ValueHelperRow\",\n ValuePicker: \"ValuePicker\",\n ValuePickerNextValue: \"ValuePickerNextValue\",\n ValuePickerNextValueButton: \"ValuePickerNextValueButton\",\n ValuePickerPrevValue: \"ValuePickerPrevValue\",\n ValuePickerPrevValueButton: \"ValuePickerPrevValueButton\",\n ValuePickerValue: \"ValuePickerValue\",\n ValueWrapper: \"ValueWrapper\",\n VariantLabel: \"VariantLabel\",\n VariantSelector: \"VariantSelector\",\n View: \"View\",\n WelcomeScreen: \"WelcomeScreen\",\n Wizard: \"Wizard\",\n WriteLine: \"WriteLine\",\n WriteLineLabel: \"WriteLineLabel\",\n YearsGrid: \"YearsGrid\",\n YearSwitcher: \"YearSwitcher\"\n});\n\nexport default TestIds;\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWaveMountain(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 445\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"linka\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M300.6 264.2l19.6-13.7 17.6-14.7h19.5l19.6-1.9 13.6-7.8 36.2 7.8 15.6-2 22.5-9.7 16.6-12.7 22.5 4.8 16.6-7.8 26.4 27.4 20.5 20.5 32.3 12.7 7.8 8.8 19.5 14.7 3 8.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M469.7 278l.7 3.1h-2.7V278z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M465.8 278l-.7 3.1h2.6V278z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M467.7 261.9l-12.5 17.2 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M467.7 256.4l-10.5 14.4 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M467.7 252.6l-7.8 10.8 5.1-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 261.9l12.6 17.2-8.2-2.1-4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 256.4l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 252.6l7.9 10.8-5.1-1.3-2.8 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M382.3 271.1l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M378.3 271.1l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M380.3 255.1l-12.5 17.1 8.1-2.1 4.4 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M380.3 249.6L369.7 264l6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M380.3 245.8l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 255.1l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 249.6l10.5 14.4-6.9-1.8-3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 245.8l7.9 10.7-5.2-1.3-2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M441.2 274.1l.7 3.5h-3v-3.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M436.7 274.1l-.7 3.5h2.9v-3.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M438.9 256l-14.1 19.3 9.2-2.3 4.9 2.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M438.9 249.7L427 266l7.8-2 4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M438.9 245.4l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 256l14.2 19.3-9.3-2.3-4.9 2.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 249.7l11.9 16.3-7.8-2-4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 245.4l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M590.6 321.1l73.9-18.7 32.1 3.7 32.2-13.9 35.3-2 18.1-10.2 11.7.6 3-.6 5.4-5.6 18.9 2.3 37.7 10.6 19.5 7.5 14-3 10.3.5 14.5 2.9 7.9 4.7 21.9 1.8 20.7-3.4 43.7 7.2 23.9 6.2h30.8l26.9-9.7 26.1-8.3 33.6 1.6 15.2-11.1 18.7-6.4 14.1-4.5 11.4-6.8 22.1-2.6 27.8 1.3 15.6-3 26-8.3 23.5.4 6.4 4 19.7 2.4 15.4.7 15.2 4.4 23.9 6.2 2.2.1 18.2 3.8 7.3-1.1 18.1-9.4 26.9-11.2 4.6-3.5 37.4-14.4 13.5-7.4 18.1 7.1 47.9-6.2 6.4 4.7 17.9 9.7 29 7.2 5.6 5.4 27.1 15.9 5.2 14.2 19.5 8.3 12.8 8.7 12 9.3 14.2 10.2 21.1 19.4-190 60.7-770.6 21z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1294.2 381.4l1.1 5.5h-4.4v-5.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1287.7 381.4l-1.1 5.5h4.3v-5.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1290.9 353.1l-20.6 30.2 13.5-3.7 7.1 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1290.9 343.3l-17.4 25.4 11.4-3.1 6 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1290.9 336.6l-13 19 8.5-2.3 4.5 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 353.1l20.7 30.2-13.5-3.7-7.2 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 343.3l17.5 25.5-11.4-3.2-6.1 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 336.6l13.1 19-8.6-2.3-4.5 2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1259.7 381.7l.8 4h-3.4v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1254.6 381.7l-.8 4h3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1257.1 361.4l-15.9 21.7 10.4-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1257.1 354.3l-13.4 18.3 8.8-2.2 4.6 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1257.1 349.5l-10 13.7 6.6-1.7 3.4 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 361.4l16 21.7-10.4-2.6-5.6 2.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 354.3l13.5 18.3-8.8-2.2-4.7 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 349.5l10 13.7-6.5-1.7-3.5 1.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1332.1 383.6l.8 4h-3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1327.1 383.6l-.8 4h3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1329.6 363.2l-15.9 21.8 10.4-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1329.6 356.2l-13.4 18.3 8.8-2.2 4.6 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1329.6 351.4l-10 13.6 6.6-1.6 3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 363.2l15.9 21.8-10.4-2.7-5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 356.2l13.4 18.3-8.7-2.2-4.7 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 351.4l10 13.6-6.5-1.6-3.5 1.4z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1205.1 376.2l.6 3.2h-2.6v-3.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1201.1 376.2l-.6 3.2h2.6v-3.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1203.1 360.2l-12.5 17.1 8.2-2.1 4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1203.1 354.7l-10.6 14.4 6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1203.1 350.9l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 360.2l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 354.7l10.5 14.4-6.9-1.8-3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 350.9l7.9 10.7-5.2-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1168 375.8l.5 2.7h-2.2v-2.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1164.7 375.8l-.6 2.7h2.2v-2.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1166.3 362.3l-10.5 14.5 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1166.3 357.6l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1166.3 354.5l-6.6 9 4.3-1.1 2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 362.3l10.6 14.5-6.9-1.8-3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 357.6l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 354.5l6.7 9-4.4-1.1-2.3 1z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtraction_6_00000141446575315588339720000008626430833555998090_\",\n className: \"st8\",\n d: \"M-1.6 446.8l.2-137.5c17.5-7 37.1-13.9 55.1-19.3 20.8-6.2 42.2-11.5 63.6-15.7 11.2-2.2 22.7-4.1 34-5.7 11.7-1.7 23.6-3 35.5-4.1 18.6-1.7 40.3-2.5 64.3-2.5 22.7 0 48.1.8 75.7 2.2 25.9 1.4 54.5 3.5 84.8 6.2 28.3 2.5 59 5.7 91.4 9.4 29.8 3.4 61.9 7.4 95.4 11.8 57.3 7.6 120.3 16.7 192.6 27.8 62.8 9.7 123.8 19.5 177.7 28.2H969l7 1.1c55 8.9 111.2 16 167.1 21.2 33.2 3.1 66.6 5.5 99.1 7.1 35.9 1.8 71.6 2.7 106.1 2.7 20.4 0 40.9-.3 60.8-.9 20.8-.7 41.6-1.7 61.7-3 21-1.4 42-3.2 62.2-5.3 21.1-2.2 42-4.9 62.3-7.9 44.6-6.6 90.6-12.9 136.9-18.7 43.1-5.4 126.2-13.2 159.4-15 34-1.8 98.9-.6 98.9-.6h10.2v117.6l-2002.3.9z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1361.7 396.8l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1357.7 396.8l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1359.7 380.8l-12.5 17.1 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1359.7 375.2l-10.6 14.4 6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1359.7 371.4l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 380.8l12.5 17.1-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 375.2l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 371.4l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1399.9 385.8l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1395.9 385.8l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1397.9 369.7l-12.5 17.2 8.1-2.1 4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1397.9 364.2l-10.6 14.4 6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1397.9 360.4l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 369.7l12.5 17.2-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 364.2l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 360.4l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1480.6 379.3l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1476.6 379.3l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1478.6 363.3l-12.5 17.1 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1478.6 357.7l-10.5 14.4 6.9-1.7 3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1478.6 353.9l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 363.3l12.5 17.1-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 357.7l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 353.9l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M1229.6 404.2l.9 4.7h-4v-4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1223.5 404.2l-1 4.7h4v-4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1226.5 379.8l-19.1 26 12.5-3.2 6.6 2.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1226.5 371.3l-16.1 22 10.6-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1226.5 365.6l-12 16.3 7.9-2 4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 379.8l19.1 26-12.5-3.1-6.6 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 371.3l16.1 22-10.5-2.7-5.6 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 365.6l12 16.3-7.8-2-4.2 1.8z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M803.6 328.6l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M799.6 328.6l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M801.6 312.6l-12.5 17.1 8.1-2.1 4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M801.6 307L791 321.4l6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M801.6 303.2l-7.9 10.8 5.1-1.3 2.8 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 312.6l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 307l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 303.3l7.8 10.7-5.1-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M1017 355.1s7.6 3.7 25.1 16.5c17.1 13.7 16.7 24.8.2 46.2-10.5 16.7 25.9 30.3 25.9 30.3s-23.3 1.1-28.9 0c-5.6-1.1-27.1-.2-27.1-.2s-9-11.9-7.3-26.7 35.3-23.4 28.2-38.6c-7.1-15.2-30-29.5-30-29.5l13.9 2z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M679.9 344.6l.8 3.9h-3.3v-3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M674.8 344.6l-.8 3.9h3.4v-3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M677.4 324.2l-16 21.8 10.4-2.7 5.6 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M677.4 317.1l-13.5 18.4 8.8-2.3 4.7 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M677.4 312.3L667.3 326l6.6-1.7 3.5 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 324.2l15.9 21.8-10.4-2.7-5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 317.1l13.4 18.4-8.8-2.3-4.6 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 312.3l10 13.7-6.6-1.7-3.4 1.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M417.5 302.7l.5 2.6h-2.2v-2.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M414.1 302.7l-.5 2.6h2.2v-2.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M415.8 289.2l-10.6 14.4 6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M415.8 284.5l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M415.8 281.3l-6.6 9.1 4.3-1.1 2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 289.2l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 284.5l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 281.3l6.6 9.1-4.3-1.1-2.3 1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M546.7 301l.6 3.1h-2.6V301z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M542.7 301l-.6 3.1h2.6V301z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M544.7 285l-12.5 17.1 8.2-2.1 4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M544.7 279.5l-10.5 14.4 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M544.7 275.7l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 285l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 279.5l10.6 14.4-6.9-1.8-3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 275.7l7.9 10.7-5.2-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M735.7 353.8l1.3 6.5h-5.5v-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M727.4 353.8l-1.3 6.5h5.4v-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M731.5 320.2l-26.2 35.9 17.2-4.4 9 3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M731.5 308.5l-22.1 30.3 14.5-3.7 7.6 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M731.5 300.6l-16.4 22.6 10.7-2.8 5.7 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 320.2l26.3 35.9-17.2-4.4-9.1 3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 308.6l22.2 30.2-14.5-3.7-7.7 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 300.6l16.5 22.6-10.7-2.8-5.8 2.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M507.7 303.7l1.1 5.1h-4.3v-5.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M501.2 303.7l-1 5.1h4.3v-5.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M504.5 277.6L484 305.5l13.4-3.4 7.1 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M504.5 268.5l-17.2 23.6 11.2-2.9 6 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M504.5 262.3l-12.9 17.6 8.4-2.1 4.5 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 277.6l20.4 27.9-13.3-3.4-7.1 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 268.5l17.2 23.6-11.2-2.9-6 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 262.3l12.8 17.6-8.4-2.1-4.4 1.9z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWaveMountain);\nexport default __webpack_public_path__ + \"static/media/waveMountain.312b0545e09f8db9032e4350f39f33fd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWaveMountainComplex(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 445\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"linka\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M300.6 264.2l19.6-13.7 17.6-14.7h19.5l19.6-1.9 13.6-7.8 36.2 7.8 15.6-2 22.5-9.7 16.6-12.7 22.5 4.8 16.6-7.8 26.4 27.4 20.5 20.5 32.3 12.7 7.8 8.8 19.5 14.7 3 8.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M469.7 278l.7 3.1h-2.7V278z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M465.8 278l-.7 3.1h2.6V278z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 261.9l-12.5 17.2 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 256.4l-10.5 14.4 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M467.7 252.6l-7.8 10.8 5.1-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M467.7 261.9l12.6 17.2-8.2-2.1-4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M467.7 256.4l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M467.7 252.6l7.9 10.8-5.1-1.3-2.8 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M382.3 271.1l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M378.3 271.1l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 255.1l-12.5 17.1 8.1-2.1 4.4 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 249.6L369.7 264l6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M380.3 245.8l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M380.3 255.1l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M380.3 249.6l10.5 14.4-6.9-1.8-3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M380.3 245.8l7.9 10.7-5.2-1.3-2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M441.2 274.1l.7 3.5h-3v-3.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M436.7 274.1l-.7 3.5h2.9v-3.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 256l-14.1 19.3 9.2-2.3 4.9 2.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 249.7L427 266l7.8-2 4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M438.9 245.4l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M438.9 256l14.2 19.3-9.3-2.3-4.9 2.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M438.9 249.7l11.9 16.3-7.8-2-4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M438.9 245.4l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M590.6 321.1l73.9-18.7 32.1 3.7 32.2-13.9 35.3-2 18.1-10.2 11.7.6 3-.6 5.4-5.6 18.9 2.3 37.7 10.6 19.5 7.5 14-3 10.3.5 14.5 2.9 7.9 4.7 21.9 1.8 20.7-3.4 43.7 7.2 23.9 6.2h30.8l26.9-9.7 26.1-8.3 33.6 1.6 15.2-11.1 18.7-6.4 14.1-4.5 11.4-6.8 22.1-2.6 27.8 1.3 15.6-3 26-8.3 23.5.4 6.4 4 19.7 2.4 15.4.7 15.2 4.4 23.9 6.2 2.2.1 18.2 3.8 7.3-1.1 18.1-9.4 26.9-11.2 4.6-3.5 37.4-14.4 13.5-7.4 18.1 7.1 47.9-6.2 6.4 4.7 17.9 9.7 29 7.2 5.6 5.4 27.1 15.9 5.2 14.2 19.5 8.3 12.8 8.7 12 9.3 14.2 10.2 21.1 19.4-190 60.7-770.6 21z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1294.2 381.4l1.1 5.5h-4.4v-5.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1287.7 381.4l-1.1 5.5h4.3v-5.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 353.1l-20.6 30.2 13.5-3.7 7.1 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 343.3l-17.4 25.4 11.4-3.1 6 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1290.9 336.6l-13 19 8.5-2.3 4.5 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1290.9 353.1l20.7 30.2-13.5-3.7-7.2 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1290.9 343.3l17.5 25.5-11.4-3.2-6.1 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1290.9 336.6l13.1 19-8.6-2.3-4.5 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1259.7 381.7l.8 4h-3.4v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1254.6 381.7l-.8 4h3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 361.4l-15.9 21.7 10.4-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 354.3l-13.4 18.3 8.8-2.2 4.6 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1257.1 349.5l-10 13.7 6.6-1.7 3.4 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1257.1 361.4l16 21.7-10.4-2.6-5.6 2.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1257.1 354.3l13.5 18.3-8.8-2.2-4.7 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1257.1 349.5l10 13.7-6.5-1.7-3.5 1.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1332.1 383.6l.8 4h-3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1327.1 383.6l-.8 4h3.3v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 363.2l-15.9 21.8 10.4-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 356.2l-13.4 18.3 8.8-2.2 4.6 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1329.6 351.4l-10 13.6 6.6-1.6 3.4 1.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1329.6 363.2l15.9 21.8-10.4-2.7-5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1329.6 356.2l13.4 18.3-8.7-2.2-4.7 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1329.6 351.4l10 13.6-6.5-1.6-3.5 1.4z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1205.1 376.2l.6 3.2h-2.6v-3.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1201.1 376.2l-.6 3.2h2.6v-3.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 360.2l-12.5 17.1 8.2-2.1 4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 354.7l-10.6 14.4 6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1203.1 350.9l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1203.1 360.2l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1203.1 354.7l10.5 14.4-6.9-1.8-3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1203.1 350.9l7.9 10.7-5.2-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1168 375.8l.5 2.7h-2.2v-2.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1164.7 375.8l-.6 2.7h2.2v-2.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 362.3l-10.5 14.5 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 357.6l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1166.3 354.5l-6.6 9 4.3-1.1 2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1166.3 362.3l10.6 14.5-6.9-1.8-3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1166.3 357.6l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1166.3 354.5l6.7 9-4.4-1.1-2.3 1z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtraction_6_00000131339049436002151560000003714746241000512686_\",\n className: \"st9\",\n d: \"M-1.6 446.8l.2-137.5c17.5-7 37.1-13.9 55.1-19.3 20.8-6.2 42.2-11.5 63.6-15.7 11.2-2.2 22.7-4.1 34-5.7 11.7-1.7 23.6-3 35.5-4.1 18.6-1.7 40.3-2.5 64.3-2.5 22.7 0 48.1.8 75.7 2.2 25.9 1.4 54.5 3.5 84.8 6.2 28.3 2.5 59 5.7 91.4 9.4 29.8 3.4 61.9 7.4 95.4 11.8 57.3 7.6 120.3 16.7 192.6 27.8 62.8 9.7 123.8 19.5 177.7 28.2H969l7 1.1c55 8.9 111.2 16 167.1 21.2 33.2 3.1 66.6 5.5 99.1 7.1 35.9 1.8 71.6 2.7 106.1 2.7 20.4 0 40.9-.3 60.8-.9 20.8-.7 41.6-1.7 61.7-3 21-1.4 42-3.2 62.2-5.3 21.1-2.2 42-4.9 62.3-7.9 44.6-6.6 90.6-12.9 136.9-18.7 43.1-5.4 126.2-13.2 159.4-15 34-1.8 98.9-.6 98.9-.6h10.2v117.6l-2002.3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M721.3 308.7s87 10.7 98 11.7 42 3.5 49.5 3.5 15 3.5 25.5 6.5 32 4.5 38.5 6 57 11 60.5 12 9.8 4.8 9.8 4.8l13.9 2s-1.7-3.2 13.3-2.7 31 2.5 35 1.5 24 6 29 7 44.5 6.5 46 8.5-25.5 7.5-32.5 7-29.5-2-33-.5-47.5 6-53 7.5-31 2-46 1-81-5-85-5.5-96-26.5-106-29-51.2-23.7-56.2-26.2-33.5-16.2-28-17.7c3.4 0 13.7 1.6 20.7 2.6z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1480.6 379.3l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1476.6 379.3l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 363.3l-12.5 17.1 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 357.7l-10.5 14.4 6.9-1.7 3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1478.6 353.9l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1478.6 363.3l12.5 17.1-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1478.6 357.7l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1478.6 353.9l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M803.6 328.6l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M799.6 328.6l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 312.6l-12.5 17.1 8.1-2.1 4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 307L791 321.4l6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M801.6 303.2l-7.9 10.8 5.1-1.3 2.8 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M801.6 312.6l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M801.6 307l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M801.6 303.3l7.8 10.7-5.1-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st12\",\n d: \"M1017 355.1s7.6 3.7 25.1 16.5c17.1 13.7 16.7 24.8.2 46.2-10.5 16.7 25.9 30.3 25.9 30.3s-23.3 1.1-28.9 0c-5.6-1.1-27.1-.2-27.1-.2s-9-11.9-7.3-26.7 35.3-23.4 28.2-38.6c-7.1-15.2-30-29.5-30-29.5l13.9 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M329 264.4s28-.3 31-.3 35 3.3 40 3.3 29 .7 30.7 1c1.7.3 21.7 4.7 24.7 4.7s27.7 4.3 27.7 4.3-4.7 2.7-11.3 3c-6.7.3-27.7-.7-29.3.3-1.7 1-22.7 6.7-36 5-13.3-1.7-33.3-6.3-40-8.3s-15.3-7.3-19.7-8.3c-4.5-1-16.8-3-17.8-4.7zM343.8 284.9s15 1 18.5 3 15.5 3 16.5 4.5-10.5 3.5-19 3.5-25-1.5-30-2.5-15-5.5-8-6.5 22-2 22-2zM317 277.1s5.5 3 10.5 2 9.7-2.2 10.8-2.3c1.2-.2 1.8-2.2-8.7-2.7s-23.3-1-12.6 3zM438 294.4s38.9.3 67.3 1.3 41.4 4.1 77 8.2 104.8 26.6 108.9 28.6c30 9.7-85.1 10.3-100 10.3s-81 6.7-105.2 6.2c-24.2-.5-80.4-28.9-88.2-33-7.7-4.1-9.8-19.1 40.2-21.6z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M417.5 302.7l.5 2.6h-2.2v-2.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M414.1 302.7l-.5 2.6h2.2v-2.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 289.2l-10.6 14.4 6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 284.5l-8.9 12.2 5.8-1.5 3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M415.8 281.3l-6.6 9.1 4.3-1.1 2.3 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M415.8 289.2l10.6 14.4-6.9-1.7-3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M415.8 284.5l8.9 12.2-5.8-1.5-3.1 1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M415.8 281.3l6.6 9.1-4.3-1.1-2.3 1z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M1149.8 399.4s49.4.7 68.2.8c18.8.2 69.8 11.2 79.8 12.7s-77 7.5-96 6.5-64-13.5-69.5-15 .5-4.5 17.5-5zM1248.3 388.1s35.7 8 47.7 7.7c12-.3 40-2.3 48.3-4.3 8.3-2 57 6.3 67.7 2.3 10.7-4 37.3-7 42-10.3 4.7-3.3 12.7-4.7 12.7-6 0-1.3-15.5-.4-17.1-.2s-54.5 2.4-60.1 2.2c-5.6-.1-61.5.4-67.5 0s-72.6-2-84.3-3c-11.7-1-33-1.5-35.6-1.7-2.3.1 2.1 2.4 9.4 3.4 7.2.6 31.8 9.4 36.8 9.9z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1361.7 396.8l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1357.7 396.8l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 380.8l-12.5 17.1 8.2-2.1 4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 375.2l-10.6 14.4 6.9-1.7 3.7 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1359.7 371.4l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1359.7 380.8l12.5 17.1-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1359.7 375.2l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1359.7 371.4l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1399.9 385.8l.6 3.1h-2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1395.9 385.8l-.6 3.1h2.6v-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 369.7l-12.5 17.2 8.1-2.1 4.4 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 364.2l-10.6 14.4 6.9-1.8 3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1397.9 360.4l-7.9 10.8 5.2-1.3 2.7 1.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1397.9 369.7l12.5 17.2-8.2-2.1-4.3 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1397.9 364.2l10.5 14.4-6.9-1.7-3.6 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1397.9 360.4l7.9 10.8-5.2-1.3-2.7 1.1z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1229.6 404.2l.9 4.7h-4v-4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1223.5 404.2l-1 4.7h4v-4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 379.8l-19.1 26 12.5-3.2 6.6 2.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 371.3l-16.1 22 10.6-2.7 5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1226.5 365.6l-12 16.3 7.9-2 4.1 1.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1226.5 379.8l19.1 26-12.5-3.1-6.6 2.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1226.5 371.3l16.1 22-10.5-2.7-5.6 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1226.5 365.6l12 16.3-7.8-2-4.2 1.8z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M1549.3 368.4s69.5-11 91-15.5 62.5-9 76-9 37.5-3 39-2.5-10.5 4.5-25 8.5-42.5 17.5-57 22-59.6 14.2-75.6 12.8-51.1-5.5-58.6-6.5-16.1-4-16.5-6c-.5-1.5 12.2-1.5 26.7-3.8zM1690.3 397.4s29-6 39.5-5 29.5 4.5 24 5.5-31.5 8-49 7.5-34-3-36.5-3.5 8.5-4.5 22-4.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M679.9 344.6l.8 3.9h-3.3v-3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M674.8 344.6l-.8 3.9h3.4v-3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 324.2l-16 21.8 10.4-2.7 5.6 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 317.1l-13.5 18.4 8.8-2.3 4.7 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M677.4 312.3L667.3 326l6.6-1.7 3.5 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M677.4 324.2l15.9 21.8-10.4-2.7-5.5 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M677.4 317.1l13.4 18.4-8.8-2.3-4.6 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M677.4 312.3l10 13.7-6.6-1.7-3.4 1.5z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M726.5 350.2s28.5 2 38 3 19.5 8.5 10.5 8.5-38 9-53 6-31.5-6.5-27-11 18.5-7.5 31.5-6.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M735.7 353.8l1.3 6.5h-5.5v-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M727.4 353.8l-1.3 6.5h5.4v-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 320.2l-26.2 35.9 17.2-4.4 9 3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 308.5l-22.1 30.3 14.5-3.7 7.6 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M731.5 300.6l-16.4 22.6 10.7-2.8 5.7 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M731.5 320.2l26.3 35.9-17.2-4.4-9.1 3.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M731.5 308.6l22.2 30.2-14.5-3.7-7.7 3.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M731.5 300.6l16.5 22.6-10.7-2.8-5.8 2.5z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M1488.6 254.4l20-5.7 24.7-10 17 5.7 51.3-8.3 22 14.3 26.7 19 24 4 12.3 14.3-16.6-11-31 1-18.4-7.6-12.6-11-18.7 1-13.7-3.7-14 4-11.3.3-18.3 10.7-4 6.7.6-8.7 4.7-9.7-12.7-2-21.3 1.7zM1603.8 296.4l25.5 2 23 6.5 18 14-27.5-5-24.5-10.5-32.5-2zM1273.8 267.9l33-6.5 49.5 4 35 8.5 23.5 3.5-30.5 3-30.5-3.5-25 5.5-20 2-16-8.5-21 2-14 4zM803.3 278.4l17 2 46 15-28.5-1-26.5-5-17.5 3.5-14-2.5-20.5 8 24.5-14.5 13 1zM956.6 304.7l19-.5 53 10 41.5 2 52.5-16.5 24 1-16.5 13-40.5 5-17.5 6.5h-42.5l-52.5-16zM493.4 278.7l43.3 4.5 54.5 7.1 29.2 4.2-21.2 1.1-48.2-.9s-26-7.7-35.8-8.8c-9.9-1.1-21.8-7.2-21.8-7.2z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M546.7 301l.6 3.1h-2.6V301z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M542.7 301l-.6 3.1h2.6V301z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 285l-12.5 17.1 8.2-2.1 4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 279.5l-10.5 14.4 6.9-1.8 3.6 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M544.7 275.7l-7.9 10.7 5.2-1.3 2.7 1.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M544.7 285l12.5 17.1-8.2-2.1-4.3 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M544.7 279.5l10.6 14.4-6.9-1.8-3.7 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M544.7 275.7l7.9 10.7-5.2-1.3-2.7 1.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M507.7 303.7l1.1 5.1h-4.3v-5.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M501.2 303.7l-1 5.1h4.3v-5.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 277.6L484 305.5l13.4-3.4 7.1 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 268.5l-17.2 23.6 11.2-2.9 6 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M504.5 262.3l-12.9 17.6 8.4-2.1 4.5 1.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M504.5 277.6l20.4 27.9-13.3-3.4-7.1 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M504.5 268.5l17.2 23.6-11.2-2.9-6 2.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M504.5 262.3l12.8 17.6-8.4-2.1-4.4 1.9z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st11\",\n d: \"M1409.8 288.9s-36.5 10-38 10.5-23 15-29 17-27.5 11.5-27.5 11.5l29-6.5 24.5-9 23-1.5 15-4 28 2s30 12.5 36 14 41 6 41 6l23.5-1.5s-37-6-39.5-7-34.5-21.5-34.5-21.5l-24.5-5-11-9-16 4zM455.6 231.7l19.7-8.3 11-9.3 15 3.6 10.7 7.4-1.7-7.4 9-2 18.7 22 21 15-36.4-14.3-21.3-2-12.7-7-14.6 3.3z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWaveMountainComplex);\nexport default __webpack_public_path__ + \"static/media/waveMountainComplex.4288f1a73d2671635fdd013cf0f1db22.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWaveMountainPanorama(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 445\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"linka\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M1831.185 398.628l-1.954-64.495-22.476-20.522-20.521-4.886-42.997.977-35.18-1.954-11.726-4.886-9.772-7.817-39.088-2.932-29.56-13.925-7.33 10.26-18.322 3.665-21.987 1.466-14.658 5.863-30.049 8.062-19.788-1.466h-10.261l-5.863 3.664-12.46-1.465-10.338-.544-.004-.433-72.883-22.232-32.247 2.199-31.515-15.391-35.179-3.664-17.59-10.994h-11.727l-2.931-.733-5.13-5.863-5.8-2.87-5.759-19.579-22.659-5.665-17.938-4.721-11.331-4.72-15.105 5.665-12.274 6.609-26.436 7.552-9.441 16.051-31.849 7.541-2.14 6.621-28.324-.945-10.997 8.514-10.29 1.201-24.186 5.13-30.782-1.466-26.385-10.993-25.651-9.528h-33.714l-14.658-11.726-18.322-7.329-13.926-5.131-10.993-7.328-21.987-3.665-27.85-12.948-15.066 2.199-16.856-7.33h-19.789l-19.381 7.818-19.788 1.466-15.391-4.886-15.391 8.551-24.186 5.13h-2.199l-12.133-9.284-13.193 1.955-16.612-11.727-26.384-10.749-14.17-5.863-28.176-5.374-13.192-8.062-18.404 6.27-31.84-8.225-22.313 4.153-18.323 8.795-29.316 5.863-5.863 5.13-27.851 14.659-5.863 13.925-19.788 7.329-13.192 8.062-12.46 8.794-14.658 9.528-21.987 18.323.326 147.313h1182.415l-.329-38.167z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st4\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1587.24 318.751l.346 1.707h-1.435v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1585.063 318.751l-.346 1.707h1.434v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1586.151 309.981l-6.854 9.365 4.482-1.145 2.372 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1586.151 306.942l-5.776 7.892 3.777-.966 1.999.857z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1586.151 304.873l-4.307 5.886 2.816-.72 1.491.639z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1586.151 309.983l6.855 9.366-4.482-1.146-2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1586.151 306.944l5.777 7.892-3.777-.965-2 .856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1586.151 304.875l4.308 5.886-2.816-.72-1.492.639z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st4\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1090.332 281.617l.346 1.707h-1.434v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1088.155 281.617l-.346 1.707h1.435v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1089.244 272.847l-6.855 9.366 4.482-1.146 2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1089.244 269.808l-5.777 7.892 3.777-.965 2 .856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1089.244 267.739l-4.308 5.887 2.816-.72 1.492.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1089.244 272.849l6.854 9.366-4.482-1.146-2.372 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1089.244 269.81l5.776 7.892-3.777-.965-1.999.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1089.244 267.741l4.308 5.887-2.817-.72-1.491.638z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st4\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1003.035 293.669l.346 1.708h-1.434v-1.708z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1000.858 293.669l-.345 1.708h1.434v-1.708z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1001.947 284.899l-6.855 9.366 4.482-1.146 2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1001.947 281.86l-5.776 7.892 3.776-.965 2 .856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1001.947 279.792l-4.308 5.886 2.817-.72 1.491.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1001.947 284.901l6.854 9.366-4.481-1.146-2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1001.947 281.862l5.776 7.892-3.777-.965-1.999.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1001.947 279.794l4.308 5.886-2.817-.72-1.491.638z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1283.818 295.323l.346 1.707h-1.434v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1281.641 295.323l-.345 1.707h1.434v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1282.73 286.553l-6.855 9.366 4.482-1.146 2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1282.73 283.514l-5.776 7.892 3.776-.966 2 .857z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1282.73 281.445l-4.308 5.886 2.817-.72 1.491.639z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1282.73 286.555l6.854 9.366-4.481-1.146-2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1282.73 283.516l5.776 7.892-3.777-.965-1.999.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1282.73 281.447l4.308 5.886-2.817-.72-1.491.639z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1046.939 294.291l.346 1.708h-1.434v-1.708z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1044.762 294.291l-.345 1.708h1.434v-1.708z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1045.851 285.522l-6.855 9.365 4.482-1.145 2.373 1.015z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1045.851 282.482l-5.776 7.893 3.776-.966 2 .856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1045.851 280.414l-4.308 5.886 2.816-.72 1.492.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1045.851 285.524l6.854 9.365-4.481-1.145-2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1045.851 282.484l5.776 7.893-3.777-.966-1.999.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1045.851 280.416l4.308 5.886-2.817-.72-1.491.638z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1246.929 297.481l.346 1.707h-1.435v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1244.752 297.481l-.346 1.707h1.434v-1.707z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1245.84 288.711l-6.854 9.365 4.482-1.145 2.372 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1245.84 285.672l-5.776 7.892 3.777-.966 1.999.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1245.84 283.603l-4.308 5.886 2.817-.72 1.491.639z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1245.84 288.713l6.855 9.366-4.482-1.146-2.373 1.016z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1245.84 285.674l5.777 7.892-3.777-.966-2 .857z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1245.84 283.605l4.308 5.886-2.816-.72-1.492.639z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1231.843 298.164l.298 1.472h-1.237v-1.472z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1229.966 298.164l-.298 1.472h1.236v-1.472z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1230.904 290.601l-5.911 8.076 3.865-.988 2.046.876z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1230.904 287.98l-4.981 6.806 3.257-.833 1.724.739z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1230.904 286.196l-3.715 5.076 2.429-.621 1.286.551z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1230.904 290.603l5.911 8.076-3.864-.988-2.047.876z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1230.904 287.982l4.981 6.806-3.256-.833-1.725.738z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1230.904 286.198l3.715 5.076-2.429-.621-1.286.551z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M1667.748 325.827c-60.098-5.375-150.001-18.567-150.001-18.567l-7.817-9.772-8.795-2.443-7.329-8.306-7.896-4.136-.248-1.239-7.818-10.749 2.932-15.636-25.407-11.726-4.886-7.818-8.794-2.932-20.521 4.886-4.886 6.84-10.75 6.84-2.932 11.727-6.84 3.909-5.863 6.841s-24.918 12.215-97.231 19.055c-72.313 6.84-76.955 4.642-76.955 4.642l-12.459-17.834-14.658-2.932-19.544 14.169-12.867 4.561-9.935 15.635h-5.7l-2.769-10.668-13.681-17.834-6.84-5.863h-13.681l-3.909 3.909h-18.566l-10.75 11.726s-36.157 1.955-72.313-.977c-36.157-2.932-135.994-37.134-135.994-37.134l-14.658-10.749-29.968-.651-21.498 8.143-17.915-12.052-12.052-5.212-23.453-2.932-14.658 8.143-12.704 5.212-19.87 2.28-18.567 14.658-30.293 10.749-21.498.326-38.111 28.013 17.264 109.691h879.483l360.588-32.492 15.635-42.02c-.001.002-131.924-3.907-192.022-9.281z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M1137.841 363.458s11.465-3.181 25.749 3.122c14.284 6.303 44.583 18.611 58.424 16.562 13.841-2.049 24.123-5.877 41.534-10.145 17.41-4.268 39.889-4.865 53.904-2.007s81.321 15.178 81.321 15.178l160.587-12.704s-147.558-21.824-258.496-25c-44.497-.898-60.958 19.098-87.257 16.92-26.299-2.178-41.057-16.345-64.13-15.378s-104.451 15.315-104.451 15.315l28.99 4.235 63.825-6.098z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st12\",\n d: \"M1389.841 379.502l-3.22-7.785-5.565 7.736-4.158-8.037-4.988 7.983-3.698-8.261-5 8.361-3.066-9.025-4.657 9.228-2.187-9.577-5.802 8.55-1.491-9.1-7.439 8.286-2.603-8.723-7.207 7.173-3.692-8.673-5.626 7.149-1.752-7.873-6.489 6.539-1.706-7.296-7.069 6.48-1.055-7.749-5.234 6.333-2.194-7.528-5.007 6.284-1.059-7.278-6.151 6.148-.193-6.585-5.094 5.674-1.216-7.438-5.537 6.167-1.213-7.311-5.489 5.772-1.84-7.173-4.787 5.691-.368-6.842-4.468 4.292-.464-5.569-4.756 4.245.01-5.868-5.517 4.955-.5-6.233-4.619 3.739.046-5.32-4.849 3.343-.093-4.814-5.01 2.852-.408-4.667-3.614 3.157-.232-4.298-3.6 2.804-.244-4.531-3.929 2.277.038-3.771-3.452 2.285-.77-3.706-2.89 1.935-.91-3.733-2.833 2.616-.377-3.787-3.512 2.083-.203-3.765-3.681 2.052.292-3.562-3.356 2.034.147-3.558-3.821 1.703.405-3.132-3.696 1.597.474-2.952-3.055 1.62-.184-3.412-3.431 1.408-.163-3.047-3.785 1.329-.505-3.419-3.131 1.434.015-2.861-2.667.884.1-2.719-3.657 1.084-.035-2.294-3.396-.059-.204-2.442-2.598 1.438-.333-3.204-2.669 1.648-.075-3.086-4.584.589.746-2.528-3.063.551.172-2.571-3.228 1.187.844-4.356.982.19-.507 2.616 3.01-1.107-.19 2.831 3.399-.612-.772 2.612 4.164-.534.059 2.451 2.541-1.568.342 3.285 2.628-1.455.257 3.081 3.46.061.03 1.942 3.728-1.106-.099 2.673 2.622-.868-.014 2.685 2.918-1.337.522 3.539 3.899-1.369.16 2.972 3.431-1.408.175 3.255 3.447-1.827-.504 3.135 3.637-1.571-.402 3.109 3.666-1.635-.136 3.306 3.436-2.082-.298 3.647 3.444-1.92.2 3.717 3.442-2.043.333 3.351 2.606-2.406.974 3.994 2.934-1.966.772 3.714 3.792-2.51-.039 3.899 3.822-2.216.228 4.251 3.601-2.804.224 4.159 3.551-3.1.443 5.074 5.117-2.913.09 4.637 4.902-3.38-.045 5.124 4.446-3.598.49 6.108 5.686-5.107-.01 5.878 4.581-4.088.457 5.472 4.527-4.347.349 6.495 4.411-5.243 1.874 7.307 5.627-5.919 1.201 7.239 5.541-6.173 1.216 7.438 5.37-5.98.199 6.769 5.922-5.92 1.013 6.965 4.77-5.986 2.206 7.567 5.486-6.638 1.104 8.118 6.92-6.343 1.684 7.201 6.506-6.556 1.691 7.601 5.366-6.818 3.776 8.866 7.345-7.31 2.571 8.615 7.641-8.51 1.423 8.683 5.683-8.377 2.081 9.114 4.481-8.879 3.136 9.235 4.876-8.155 3.717 8.303 4.923-7.882 4.216 8.149 5.664-7.872 3.906 9.446z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st12\",\n d: \"M1140.567 310.863s50.092 34.987 103.94 53.62c45.43 13.38 65.829 14.968 65.829 14.968s49.227 1.099 79.734-.428c-14.253-.243-85.6-.477-159.924-26.816-68.034-27.656-83.858-41.385-83.858-41.385l-5.721.041z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st12\",\n d: \"M1392.948 372.4c-.929-.007-91.47-1.441-151.711-19.993-60.247-18.554-94.28-42.579-94.617-42.819l.581-.814c.336.239 30.184 22.295 90.264 40.796 60.102 18.509 156.575 19.451 157.503 19.458l-2.02 3.372z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1066.743 306.052l.541 2.673h-2.246v-2.673z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1063.334 306.052l-.541 2.673h2.245v-2.673z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1065.038 292.32l-10.732 14.665 7.017-1.794 3.715 1.59z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1065.038 287.561l-9.044 12.358 5.914-1.512 3.13 1.341z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1065.038 284.323l-6.745 9.216 4.41-1.127 2.335.999z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1065.038 292.324l10.733 14.664-7.017-1.794-3.716 1.591z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1065.038 287.565l9.045 12.357-5.914-1.511-3.131 1.34z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1065.038 284.326l6.746 9.216-4.411-1.127-2.335 1z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1018.924 300.487l.542 2.674h-2.246v-2.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1015.516 300.487l-.542 2.674h2.246v-2.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1017.22 286.755l-10.733 14.665 7.018-1.794 3.715 1.591z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1017.22 281.997l-9.044 12.357 5.913-1.511 3.131 1.34z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1017.22 278.758l-6.745 9.216 4.41-1.127 2.335.999z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1017.22 286.759l10.733 14.664-7.018-1.794-3.715 1.591z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1017.22 282l9.044 12.357-5.913-1.511-3.131 1.34z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1017.22 278.761l6.745 9.216-4.41-1.127-2.335 1z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"st8\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1307.104 300.3l.541 2.673h-2.246V300.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1303.695 300.3l-.541 2.673h2.245V300.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1305.399 286.568l-10.732 14.664 7.017-1.793 3.715 1.59z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1305.399 281.809l-9.044 12.358 5.913-1.512 3.131 1.341z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1305.399 278.57l-6.745 9.217 4.41-1.128 2.335 1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1305.399 286.571l10.733 14.665-7.018-1.794-3.715 1.591z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1305.399 281.813l9.044 12.357-5.913-1.512-3.131 1.341z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1305.399 278.574l6.745 9.216-4.41-1.127-2.335.999z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtraction_6_00000141446575315588339720000008626430833555998090_\",\n className: \"st11\",\n d: \"M-1.641 446.837l.163-137.46c17.536-7 37.07-13.911 55.147-19.344a661.273 661.273 0 0163.63-15.7 681.07 681.07 0 0134.031-5.719 693.679 693.679 0 0135.514-4.1c18.627-1.664 40.274-2.51 64.339-2.51 22.674 0 48.15.752 75.721 2.234 25.934 1.4 54.473 3.478 84.823 6.192 28.3 2.531 59.047 5.688 91.374 9.382 29.808 3.407 61.9 7.379 95.377 11.8 57.267 7.57 120.254 16.666 192.558 27.808 62.8 9.677 123.841 19.543 177.7 28.247l.2.032.075.012 7 1.131c55 8.908 111.217 16.042 167.095 21.2 33.243 3.071 66.6 5.45 99.133 7.072 35.881 1.788 71.583 2.695 106.115 2.695 20.432 0 40.885-.318 60.79-.945a1778.78 1778.78 0 0061.711-3.009c21.025-1.4 41.951-3.191 62.2-5.329a1462.225 1462.225 0 0062.253-7.906c44.572-6.648 90.615-12.944 136.851-18.712 43.066-5.374 126.24-13.241 159.368-15.032 33.968-1.836 98.942-.607 98.942-.607h10.179v117.57l-2002.289.998z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M859.962 356.606l1.238 6.115h-5.136v-6.115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M852.166 356.606l-1.238 6.115h5.136v-6.115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M856.064 325.2l-24.547 33.54 16.049-4.103 8.498 3.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M856.064 314.316l-20.686 28.263 13.525-3.457 7.161 3.066z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M856.064 306.909l-15.428 21.079 10.087-2.579 5.341 2.287z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M856.064 325.208l24.547 33.539-16.05-4.102-8.497 3.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M856.064 314.324l20.685 28.263-13.525-3.457-7.16 3.065z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M856.064 306.916l15.427 21.079-10.087-2.578-5.34 2.286z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M750.782 369.025l1.548 7.642h-6.42v-7.642z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M741.038 369.025l-1.547 7.642h6.419v-7.642z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M745.91 329.771l-30.681 41.92 20.061-5.128 10.62 4.547z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M745.91 316.167l-25.854 35.326 16.905-4.321 8.949 3.831z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M745.91 306.909l-19.282 26.346 12.607-3.223 6.675 2.858z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M745.91 329.78l30.681 41.921-20.06-5.128-10.621 4.547z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M745.91 316.177l25.854 35.325-16.904-4.321-8.95 3.832z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M745.91 306.918l19.283 26.346-12.608-3.223-6.675 2.858z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1440.678 388.932l1.217 6.011h-5.048v-6.011z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1433.016 388.932l-1.217 6.011h5.048v-6.011z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1436.847 358.063l-24.128 32.967 15.776-4.033 8.352 3.576z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1436.847 347.365l-20.332 27.78 13.294-3.398 7.038 3.013z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1436.847 340.084l-15.164 20.719 9.915-2.534 5.249 2.247z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1436.847 358.071l24.127 32.966-15.775-4.033-8.352 3.576z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1436.847 347.373l20.332 27.78-13.294-3.398-7.038 3.013z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1436.847 340.092l15.164 20.718-9.915-2.534-5.249 2.247z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M1390.793 381.656l.768 3.793h-3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1385.957 381.656l-.768 3.793h3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1388.375 362.174l-15.227 20.806 9.956-2.545 5.271 2.256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1388.375 355.423l-12.831 17.532 8.39-2.145 4.441 1.902z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M1388.375 350.828l-9.57 13.076 6.258-1.6 3.312 1.418z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1388.375 362.179l15.227 20.805-9.956-2.545-5.271 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1388.375 355.428l12.832 17.532-8.39-2.145-4.442 1.902z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M1388.375 350.832l9.57 13.076-6.257-1.599-3.313 1.418z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M908.706 345.174l.768 3.793h-3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M903.87 345.174l-.768 3.793h3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M906.288 325.692l-15.226 20.805 9.956-2.545 5.27 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M906.288 318.941l-12.831 17.532 8.39-2.145 4.441 1.902z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M906.288 314.346l-9.569 13.075 6.257-1.599 3.312 1.418z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M906.288 325.697l15.227 20.805-9.956-2.545-5.271 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M906.288 318.945l12.832 17.532-8.39-2.144-4.442 1.901z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M906.288 314.35l9.57 13.076-6.257-1.6-3.313 1.419z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M666.36 319.767l.768 3.793h-3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M661.524 319.767l-.768 3.793h3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M663.942 300.285l-15.227 20.805 9.956-2.545 5.271 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M663.942 293.533l-12.831 17.533 8.389-2.145 4.442 1.902z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M663.942 288.938l-9.57 13.076 6.257-1.599 3.313 1.418z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M663.942 300.29l15.227 20.805-9.956-2.545-5.271 2.256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M663.942 293.538l12.831 17.532-8.389-2.144-4.442 1.901z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M663.942 288.943l9.57 13.076-6.257-1.6-3.313 1.418z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M696.653 310.972l.768 3.793h-3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M691.817 310.972l-.768 3.793h3.186v-3.793z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M694.235 291.49l-15.227 20.805 9.956-2.545 5.271 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M694.235 284.739l-12.831 17.532 8.39-2.145 4.441 1.902z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M694.235 280.143l-9.569 13.076 6.257-1.599 3.312 1.418z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M694.235 291.495l15.227 20.805-9.956-2.545-5.271 2.257z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M694.235 284.743l12.832 17.532-8.39-2.144-4.442 1.901z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M694.235 280.148l9.57 13.076-6.257-1.6-3.313 1.419z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWaveMountainPanorama);\nexport default __webpack_public_path__ + \"static/media/waveMountainPanorama.1882cf9c7b32459063eaf0210e42bce2.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWaveSimple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 445\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"linka\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtraction_6_00000026843961356725122790000008960405084152901792_\",\n className: \"st7\",\n d: \"M-1.6 446.8l.2-137.5c17.5-7 37.1-13.9 55.1-19.3 20.8-6.2 42.2-11.5 63.6-15.7 11.2-2.2 22.7-4.1 34-5.7 11.7-1.7 23.6-3 35.5-4.1 18.6-1.7 40.3-2.5 64.3-2.5 22.7 0 48.1.8 75.7 2.2 25.9 1.4 54.5 3.5 84.8 6.2 28.3 2.5 59 5.7 91.4 9.4 29.8 3.4 61.9 7.4 95.4 11.8 57.3 7.6 120.3 16.7 192.6 27.8 62.8 9.7 123.8 19.5 177.7 28.2H969l7 1.1c55 8.9 111.2 16 167.1 21.2 33.2 3.1 66.6 5.5 99.1 7.1 35.9 1.8 71.6 2.7 106.1 2.7 20.4 0 40.9-.3 60.8-.9 20.8-.7 41.6-1.7 61.7-3 21-1.4 42-3.2 62.2-5.3 21.1-2.2 42-4.9 62.3-7.9 44.6-6.6 90.6-12.9 136.9-18.7 43.1-5.4 126.2-13.2 159.4-15 34-1.8 98.9-.6 98.9-.6h10.2v117.6l-2002.3.9z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWaveSimple);\nexport default __webpack_public_path__ + \"static/media/waveSimple.0111d76459b752809efe5b865f0122a6.svg\";\nexport { ForwardRef as ReactComponent };","import { mix, transparentize } from \"polished\";\nimport { DefaultTheme, ThemeProps } from \"styled-components/macro\";\n\nimport waveMountain from \"../src/static/images/waveMountain.svg\";\nimport waveMountainComplex from \"../src/static/images/waveMountainComplex.svg\";\nimport waveMountainPanorama from \"../src/static/images/waveMountainPanorama.svg\";\nimport waveSimple from \"../src/static/images/waveSimple.svg\";\n\ndeclare module \"styled-components\" {\n // extend styled-components DefaultTheme to receive correct auto suggest in props.theme\n export interface DefaultTheme {\n C_MAIN_brand_gradient_start: string;\n C_MAIN_brand_gradient_end: string;\n C_MAIN_brand_gradient: string;\n C_MAIN_brand_gradient_inactive_company: string;\n\n C_BG_shellbar_grad_start: string;\n C_BG_shellbar_grad_end: string;\n C_BG_shellbar: string;\n C_BG_shellbar_inactive_company: string;\n C_BG_shellbar_notification_alert: string;\n C_BG_progressbar: string;\n C_BG_progressbar_semantic: string;\n C_BG_progresswheel: string;\n C_BG_progresswheel_semantic: string;\n C_BG_progresswheeel_gray: string;\n C_BG_card: string;\n C_BG_menu: string;\n C_BG_selected_color: string,\n C_BG_floorplan: string;\n C_BG_floorplan_inactive_company: string;\n C_BG_stripes: string;\n C_BG_dialogue: string;\n C_BG_popover: string;\n C_BG_active_hotspot: string;\n C_BG_tooltip: string;\n C_BG_info: string;\n C_BG_info_arrow: string;\n C_BG_filterbar: string;\n C_BG_row_field: string;\n C_BG_filestrip: string;\n C_BG_row_field_hover: string;\n C_TEXT_bg_DnD: string;\n C_ACT_main: string;\n C_ACT_main_dark: string;\n C_ACT_der: string;\n C_ACT_hover: string;\n C_ACT_hover_without_opacity: string;\n C_ACT_thick_line: string;\n C_ACT_thick_line_hover: string;\n C_ACT_light_line: string;\n\n C_BTN_4L_emph_bg: string;\n C_BTN_4L_emph_line_color: string;\n C_BTN_4L_emph_line_size: string;\n C_BTN_4L_emph_text: string;\n C_BTN_4L_emph_bg_hover: string;\n C_BTN_4L_emph_line_color_hover: string;\n C_BTN_4L_emph_line_size_hover: string;\n C_BTN_4L_emph_text_hover: string;\n C_BTN_4L_emph_bg_selected: string;\n C_BTN_4L_emph_line_color_selected: string;\n C_BTN_4L_emph_line_size_selected: string;\n C_BTN_4L_emph_text_selected: string;\n\n C_BTN_4D_emph_bg: string;\n C_BTN_4D_emph_line_color: string;\n C_BTN_4D_emph_line_size: string;\n C_BTN_4D_emph_text: string;\n C_BTN_4D_emph_bg_hover: string;\n C_BTN_4D_emph_line_color_hover: string;\n C_BTN_4D_emph_line_size_hover: string;\n C_BTN_4D_emph_text_hover: string;\n C_BTN_4D_emph_bg_selected: string;\n C_BTN_4D_emph_line_color_selected: string;\n C_BTN_4D_emph_line_size_selected: string;\n C_BTN_4D_emph_text_selected: string;\n\n C_BTN_4L_trans_bg: string;\n C_BTN_4L_trans_line_color: string;\n C_BTN_4L_trans_line_size: string;\n C_BTN_4L_trans_text: string;\n C_BTN_4L_trans_bg_hover: string;\n C_BTN_4L_trans_line_color_hover: string;\n C_BTN_4L_trans_line_size_hover: string;\n C_BTN_4L_trans_text_hover: string;\n C_BTN_4L_trans_bg_selected: string;\n C_BTN_4L_trans_line_color_selected: string;\n C_BTN_4L_trans_line_size_selected: string;\n C_BTN_4L_trans_text_selected: string;\n\n C_BTN_4D_trans_bg: string;\n C_BTN_4D_trans_line_color: string;\n C_BTN_4D_trans_line_size: string;\n C_BTN_4D_trans_text: string;\n C_BTN_4D_trans_bg_hover: string;\n C_BTN_4D_trans_line_color_hover: string;\n C_BTN_4D_trans_line_size_hover: string;\n C_BTN_4D_trans_text_hover: string;\n C_BTN_4D_trans_bg_selected: string;\n C_BTN_4D_trans_line_color_selected: string;\n C_BTN_4D_trans_line_size_selected: string;\n C_BTN_4D_trans_text_selected: string;\n\n C_BTN_hover_dark: string;\n C_BTN_hover_light: string;\n\n C_LAB_grey: string;\n C_LAB_yellow: string;\n C_LAB_green: string;\n C_LAB_blue: string;\n C_LAB_purple: string;\n C_LAB_orange: string;\n\n C_SEM_el_good: string;\n C_SEM_el_warning: string;\n C_SEM_el_bad: string;\n C_SEM_el_good_inv: string;\n C_SEM_el_warning_inv: string;\n C_SEM_el_bad_inv: string;\n C_SEM_el_neutral: string;\n C_SEM_text_good: string;\n C_SEM_text_warning: string;\n C_SEM_text_bad: string;\n C_SEM_el_good_hover: string;\n C_SEM_el_bad_hover: string;\n C_SEM_text_good_hover: string;\n C_SEM_text_bad_hover: string;\n C_SEM_el_highlighted: string;\n\n // Semantic colors bg opacity - based on C_SEM_el_good, C_SEM_el_warning, C_SEM_el_bad\n C_SEM_opacity_bg_color: string;\n C_SEM_opacity_validation: string;\n\n // todo: define universal grey shades\n C_GREY_x: string;\n\n C_DSH_border: string;\n\n // todo: rename to defined color by UX (black line in logo, white in dark mode)\n C_EVALA_LOGO: string;\n\n C_TEXT_primary: string;\n C_TEXT_dialogue_title: string;\n C_TEXT_dialogue: string;\n C_TEXT_purple_bg: string;\n C_TEXT_selection: string;\n C_TEXT_link: string;\n C_TEXT_link_hover: string;\n C_TEXT_link_selected: string;\n C_TEXT_link_light: string;\n C_TEXT_link_hover_light: string;\n C_TEXT_link_selected_light: string;\n\n C_ICON_primary_dark: string;\n C_ICON_secondary_dark: string;\n C_ICON_tertiary_dark: string;\n C_ICON_primary_light: string;\n C_ICON_primary_light_hover: string;\n C_ICON_secondary_light: string;\n C_ICON_tertiary_light: string;\n C_ICON_done: string;\n\n C_ICON_document: string;\n\n C_ICON_MENU_main: string;\n C_ICON_MENU_stroke: string;\n C_ICON_MENU_fill: string;\n\n C_ICON_MENU_grad_start?: string,\n C_ICON_MENU_grad_end?: string,\n\n C_ICON_OBJECT_PAGE_main: string;\n\n C_ICON_STATUS_INDICATOR_stroke: string;\n\n C_BUSY_INVERSE: string;\n\n C_FIELD_fill: string;\n C_FIELD_line: string;\n C_FIELD_line_der: string;\n C_FIELD_sync: string;\n C_FIELD_section_line: string,\n\n C_GRD_blue: string;\n C_GRD_red: string;\n C_GRD_pink: string;\n C_GRD_purple: string;\n\n /* Chart colors */\n C_CHART_purple: string;\n C_CHART_blue: string;\n C_CHART_green: string;\n C_CHART_yellow: string;\n C_CHART_red: string;\n C_CHART_orange: string;\n C_CHART_grey: string;\n\n /* not in definition file*/\n C_DEF_tableBorder: string;\n C_LINE_variants: string;\n C_BTN_border_hover: string;\n C_SPLIT_LAYOUT_BUBBLE: string;\n C_FORM_GROUP_HEADER_LINE: string;\n C_SPLIT_LAYOUT_COLLAPSED_HOVER: string;\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_TOP: string;\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_BOTTOM: string;\n\n C_SELECT_SEARCH_INPUT_FOCUS: string;\n C_SELECT_SEARCH_INPUT_BACKGROUND: string;\n\n C_HIERARCHICAL_SELECT_LINE: string;\n\n C_AVATAR_BG_LIGHT: string;\n C_AVATAR_BG_DARK: string;\n C_BG_INACTIVE_COMPANY: string;\n INACTIVE_COMPANY_transparentize: string;\n\n C_AUDIT_TRAIL_DIFF: string;\n C_AUDIT_TRAIL_NO_DIFF: string;\n C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY: string;\n\n C_BG_ACCOUNT_PROGRESS_BG: string;\n\n borderRadius: string;\n borderLargeRadius: string;\n transition_transform_time: string;\n disabled_opacity: string;\n dashboard_tile_shadow_opacity: string;\n shadow_opacity: string;\n lightFieldGroupOpacity: string;\n\n C_CUST_DASHBOARD_TILE_BG: string;\n C_CUST_DASHBOARD_TILE_BG_OPACITY: string;\n C_CUST_DASHBOARD_TILE_BORDER: string;\n C_CUST_DASHBOARD_TILE_BORDER_OPACITY: string;\n\n C_DASHBOARD_TILE_PLACEHOLDER_BORDER: string;\n C_DASHBOARD_TILE_PLACEHOLDER_BG: string;\n\n F_wave: string;\n F_wave_mountain: string;\n F_wave_mountain_complex: string;\n F_wave_mountain_panorama: string;\n\n DEV_TOOLS_link: string;\n }\n}\n\nconst defaultConfig: DefaultTheme = {\n C_MAIN_brand_gradient_start: \"#4701bc\",\n C_MAIN_brand_gradient_end: \"#df0552\",\n get C_MAIN_brand_gradient(): string {\n return `linear-gradient(to right, ${this.C_MAIN_brand_gradient_start}, ${this.C_MAIN_brand_gradient_end})`;\n },\n C_MAIN_brand_gradient_inactive_company: \"linear-gradient(to right,#4701bc8c,#df05528c)\",\n\n C_BG_shellbar_grad_start: \"#7a0399\",\n C_BG_shellbar_grad_end: \"#b10372\",\n get C_BG_shellbar() {\n return `linear-gradient(to top, ${this.C_BG_shellbar_grad_start}, ${this.C_BG_shellbar_grad_end})`;\n },\n C_BG_shellbar_inactive_company: \"linear-gradient(to top,#7a0399cc,#b10372d4)\",\n C_BG_shellbar_notification_alert: \"linear-gradient(to top, #790399, #7b0398 95%, #9a0382, #b10372)\",\n C_BG_progressbar: \"linear-gradient(to right, #b10372, #7a0399)\",\n C_BG_progressbar_semantic: \"linear-gradient(to right, #d42e3c, #6db392)\",\n C_BG_progresswheel: \"conic-gradient(from 0.25turn, #b10372, #7a0399)\",\n C_BG_progresswheel_semantic: \"conic-gradient(from 0.25turn, #d32e3c, #6db292)\",\n C_BG_progresswheeel_gray: \"#dbdada\",\n C_BG_card: \"linear-gradient(to right, #7a0399 0%, #b10372 100%)\",\n\n C_BG_menu: \"#fff\",\n C_BG_selected_color: \"#fff\",\n C_BG_floorplan: \"#fafafa\",\n C_BG_floorplan_inactive_company: \"#fafafa\",\n C_BG_stripes: \"#ebe9e9\",\n C_BG_dialogue: \"linear-gradient(11deg, #92296f 10%, #9e037f 90%)\",\n C_BG_popover: \"linear-gradient(to top, #92296f, #9e037f)\",\n C_BG_active_hotspot: \"#202737\",\n C_BG_tooltip: \"#f2e1eb\",\n C_BG_info: \"#202737, #2a344a\",\n C_BG_info_arrow: \"#2a344a\",\n C_BG_filterbar: \"#690048\",\n C_BG_row_field: \"#fff\",\n C_BG_filestrip: \"rgba(168, 69, 140, 0.22)\",\n C_TEXT_bg_DnD: \"#c83179\",\n\n C_ACT_main: \"#690048\",\n C_ACT_main_dark: \"#b776a3\",\n C_ACT_der: \"#a8458c\",\n C_ACT_hover: \"rgba(242, 225, 235, 0.2)\",\n C_ACT_hover_without_opacity: \"#f2e1eb\",\n C_ACT_thick_line: \"#a7a6a7\",\n C_ACT_thick_line_hover: \"rgba(167, 166, 167, 0.5)\",\n C_ACT_light_line: \"#fff\",\n\n // combination of row background with hover color that has opacity\n get C_BG_row_field_hover() {\n return mix(0.2, this.C_ACT_hover_without_opacity, this.C_BG_row_field) as string;\n },\n\n C_BTN_4L_emph_bg: \"#690048\",\n C_BTN_4L_emph_line_color: \"transparent\",\n C_BTN_4L_emph_line_size: \"0\",\n C_BTN_4L_emph_text: \"#fff\",\n C_BTN_4L_emph_bg_hover: \"#690048\",\n C_BTN_4L_emph_line_color_hover: \"transparent\",\n C_BTN_4L_emph_line_size_hover: \"0\",\n C_BTN_4L_emph_text_hover: \"#f1add5\",\n C_BTN_4L_emph_bg_selected: \"#54063b\",\n C_BTN_4L_emph_line_color_selected: \"transparent\",\n C_BTN_4L_emph_line_size_selected: \"0\",\n C_BTN_4L_emph_text_selected: \"#fff\",\n\n C_BTN_4D_emph_bg: \"transparent\",\n C_BTN_4D_emph_line_color: \"#fff\",\n C_BTN_4D_emph_line_size: \"1\",\n C_BTN_4D_emph_text: \"#fff\",\n C_BTN_4D_emph_bg_hover: \"transparent\",\n C_BTN_4D_emph_line_color_hover: \"#f1add5\",\n C_BTN_4D_emph_line_size_hover: \"1\",\n C_BTN_4D_emph_text_hover: \"#f1add5\",\n C_BTN_4D_emph_bg_selected: \"rgba(0, 0, 0, 0.3)\",\n C_BTN_4D_emph_line_color_selected: \"#fff\",\n C_BTN_4D_emph_line_size_selected: \"1\",\n C_BTN_4D_emph_text_selected: \"#fff\",\n\n C_BTN_4L_trans_bg: \"transparent\",\n C_BTN_4L_trans_line_color: \"transparent\",\n C_BTN_4L_trans_line_size: \"0\",\n C_BTN_4L_trans_text: \"#690048\",\n C_BTN_4L_trans_bg_hover: \"transparent\",\n C_BTN_4L_trans_line_color_hover: \"#f2e1eb\",\n C_BTN_4L_trans_line_size_hover: \"2\",\n C_BTN_4L_trans_text_hover: \"#690048\",\n C_BTN_4L_trans_bg_selected: \"#f2e1eb\",\n C_BTN_4L_trans_line_color_selected: \"transparent\",\n C_BTN_4L_trans_line_size_selected: \"0\",\n C_BTN_4L_trans_text_selected: \"#690048\",\n\n C_BTN_4D_trans_bg: \"transparent\",\n C_BTN_4D_trans_line_color: \"transparent\",\n C_BTN_4D_trans_line_size: \"0\",\n C_BTN_4D_trans_text: \"#fff\",\n C_BTN_4D_trans_bg_hover: \"transparent\",\n C_BTN_4D_trans_line_color_hover: \"transparent\",\n C_BTN_4D_trans_line_size_hover: \"0\",\n C_BTN_4D_trans_text_hover: \"#f1add5\",\n C_BTN_4D_trans_bg_selected: \"rgba(0, 0, 0, 0.3)\",\n C_BTN_4D_trans_line_color_selected: \"transparent\",\n C_BTN_4D_trans_line_size_selected: \"0\",\n C_BTN_4D_trans_text_selected: \"#fff\",\n\n C_BTN_hover_dark: \"#fff\",\n C_BTN_hover_light: \"#000\",\n\n C_LAB_grey: \"#dfdede\",\n C_LAB_yellow: \"#faefb5\",\n C_LAB_green: \"#daeccb\",\n C_LAB_blue: \"#d4edf8\",\n C_LAB_purple: \"#dccbe8\",\n C_LAB_orange: \"#ecd0cb\",\n\n C_SEM_el_good: \"#53b68f\",\n C_SEM_el_warning: \"#f58920\",\n C_SEM_el_bad: \"#e60434\",\n C_SEM_el_good_inv: \"#b1e928\",\n C_SEM_el_warning_inv: \"#ffa55f\",\n C_SEM_el_bad_inv: \"#e5396b\",\n C_SEM_el_neutral: \"#202737\",\n C_SEM_text_good: \"#4a9b7b\",\n C_SEM_text_warning: \"#da7513\",\n C_SEM_text_bad: \"#c5173c\",\n C_SEM_el_good_hover: \"#84caae\",\n C_SEM_el_bad_hover: \"#eb4d6e\",\n C_SEM_text_good_hover: \"#7eb7a0\",\n C_SEM_text_bad_hover: \"#d45a74\",\n C_SEM_el_highlighted: \"#a8458c\",\n\n C_SEM_opacity_bg_color: \"0.35\",\n C_SEM_opacity_validation: \"0.15\",\n\n C_GREY_x: \"#cecece\",\n\n C_DSH_border: mix(0.5, \"#4b4a4b\", \"#fff\"),\n\n C_EVALA_LOGO: \"#1e1e1e\",\n\n C_TEXT_primary: \"#4b4a4b\",\n C_TEXT_dialogue_title: \"#f2e1eb\",\n C_TEXT_dialogue: \"#fff\",\n C_TEXT_purple_bg: \"#fff\",\n C_TEXT_selection: \"#f2e1eb\",\n C_TEXT_link: \"#683fac\",\n C_TEXT_link_hover: \"#711AFF\",\n C_TEXT_link_selected: \"#4511A6\",\n C_TEXT_link_light: \"#9082a7\",\n C_TEXT_link_hover_light: \"#C6B3E6\",\n C_TEXT_link_selected_light: \"#585066\",\n\n C_ICON_primary_dark: \"#771849\",\n C_ICON_secondary_dark: \"#98436D\",\n C_ICON_tertiary_dark: \"#E50041\",\n C_ICON_primary_light: \"#fff\",\n C_ICON_primary_light_hover: \"#f1add5\",\n C_ICON_secondary_light: \"#ddcad1\",\n C_ICON_tertiary_light: \"#e50041\",\n C_ICON_done: \"#48484c\",\n\n C_ICON_document: \"#67154A\",\n\n C_ICON_MENU_main: \"#4c4a4b\",\n C_ICON_MENU_stroke: \"#b21373\",\n C_ICON_MENU_fill: \"#b21373\",\n get C_ICON_MENU_grad_start() {\n return this.C_BG_shellbar_grad_start;\n },\n get C_ICON_MENU_grad_end() {\n return this.C_BG_shellbar_grad_end;\n },\n\n C_ICON_OBJECT_PAGE_main: \"#67154a\",\n\n C_ICON_STATUS_INDICATOR_stroke: \"#4b4a4b\",\n C_BUSY_INVERSE: \"#A0628B\",\n\n C_FIELD_fill: \"#fff\",\n C_FIELD_line: \"#dbdada\",\n C_FIELD_line_der: \"#eeeded\",\n C_FIELD_sync: \"#f2f2f2\",\n C_FIELD_section_line: \"#ebe9e9\",\n\n C_DEF_tableBorder: \"#f5f5f5\",\n C_LINE_variants: \"#fafafa\",\n C_BTN_border_hover: \"#9e037f\",\n C_SPLIT_LAYOUT_BUBBLE: \"#f2f2f2\",\n C_FORM_GROUP_HEADER_LINE: \"#eae9e9\",\n C_SPLIT_LAYOUT_COLLAPSED_HOVER: transparentize(0.97, \"#000\"),\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_TOP: \"#a8458c\",\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_BOTTOM: \"#ededed\",\n\n C_AUDIT_TRAIL_DIFF: \"#b1e928\",\n C_AUDIT_TRAIL_NO_DIFF: \"#eeeded\",\n C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY: \"0.6\",\n\n C_SELECT_SEARCH_INPUT_FOCUS: \"#a23086\",\n C_SELECT_SEARCH_INPUT_BACKGROUND: \"#ad4592\",\n\n C_GRD_blue: \"#4901bb\",\n C_GRD_red: \"#de0553\",\n C_GRD_pink: \"#a1037d\",\n C_GRD_purple: \"#850391\",\n\n C_CHART_purple: \"#b495c9\",\n C_CHART_blue: \"#9fcfe3\",\n C_CHART_green: \"#aacc8f\",\n C_CHART_yellow: \"#f2df7e\",\n C_CHART_red: \"#d97184\",\n C_CHART_orange: \"#edac80\",\n C_CHART_grey: \"#c0c0c0\",\n\n C_HIERARCHICAL_SELECT_LINE: \"#f2e1eb\",\n C_AVATAR_BG_LIGHT: \"#DDDDDD\",\n C_AVATAR_BG_DARK: \"#232323\",\n C_BG_INACTIVE_COMPANY: \"#f3e9ee\",\n INACTIVE_COMPANY_transparentize: \"0.5\",\n\n C_BG_ACCOUNT_PROGRESS_BG: \"#918998\",\n\n borderRadius: \"3px\",\n borderLargeRadius: \"17px\",\n transition_transform_time: \"0.3s\",\n disabled_opacity: \"0.5\",\n dashboard_tile_shadow_opacity: \"0.18\",\n shadow_opacity: \"0.18\",\n lightFieldGroupOpacity: \"0.05\",\n\n C_CUST_DASHBOARD_TILE_BG: \"#fff\",\n C_CUST_DASHBOARD_TILE_BG_OPACITY: \"0.15\",\n C_CUST_DASHBOARD_TILE_BORDER: \"#000\",\n C_CUST_DASHBOARD_TILE_BORDER_OPACITY: \"0.5\",\n\n C_DASHBOARD_TILE_PLACEHOLDER_BG: \"#7D737A\",\n C_DASHBOARD_TILE_PLACEHOLDER_BORDER: \"#723A62\",\n\n F_wave: waveSimple,\n F_wave_mountain: waveMountain,\n F_wave_mountain_complex: waveMountainComplex,\n F_wave_mountain_panorama: waveMountainPanorama,\n\n DEV_TOOLS_link: \"#0000EE\"\n};\n\nconst darkConfig: DefaultTheme = {\n C_MAIN_brand_gradient_start: \"#9155f1\",\n C_MAIN_brand_gradient_end: \"#df0552\",\n get C_MAIN_brand_gradient(): string {\n return `linear-gradient(to right, ${this.C_MAIN_brand_gradient_start}, ${this.C_MAIN_brand_gradient_end})`;\n },\n C_MAIN_brand_gradient_inactive_company: \"linear-gradient(to right, #9155f1, #df0552)\",\n\n C_BG_shellbar_grad_start: \"#7a0399\",\n C_BG_shellbar_grad_end: \"#b10372\",\n get C_BG_shellbar() {\n return `linear-gradient(to top, ${this.C_BG_shellbar_grad_start}, ${this.C_BG_shellbar_grad_end})`;\n },\n C_BG_shellbar_inactive_company: \"linear-gradient(to top, #7a0399, #b10372)\",\n C_BG_shellbar_notification_alert: \"linear-gradient(to top, #790399, #7b0398 95%, #9a0382, #b10372)\",\n C_BG_progressbar: \"linear-gradient(to right, #b10372, #7a0399)\",\n C_BG_progressbar_semantic: \"linear-gradient(to right, #6db392, #d42e3c)\",\n C_BG_progresswheel: \"conic-gradient(from 0.25turn, #b10372, #7a0399)\",\n C_BG_progresswheel_semantic: \"conic-gradient(from 0.25turn, #d32e3c, #6db292)\",\n C_BG_progresswheeel_gray: \"#dbdada\",\n C_BG_card: \"linear-gradient(to right, #7a0399 0%, #b10372 100%)\",\n\n C_BG_menu: \"#282f3f\",\n C_BG_selected_color: \"#fff\",\n C_BG_floorplan: \"#202737\",\n C_BG_floorplan_inactive_company: \"#000\",\n C_BG_stripes: \"#1a202d\",\n C_BG_dialogue: \"linear-gradient(349deg, #92296f 10%, #9e037f 90%)\",\n C_BG_popover: \"linear-gradient(to top, #92296f, #9e037f)\",\n C_BG_active_hotspot: \"#dddddd\",\n C_BG_tooltip: \"#41475a\",\n C_BG_info: \"#dddddd, #ffffff\",\n C_BG_info_arrow: \"#ffffff\",\n C_BG_filterbar: \"#9D6F8F\",\n C_BG_row_field: \"#282f3f\",\n C_BG_filestrip: \"rgba(204, 149, 194, 0.22)\",\n C_TEXT_bg_DnD: \"#da3684\",\n\n get C_BG_row_field_hover() {\n return mix(0.5, this.C_ACT_hover_without_opacity, this.C_BG_row_field);\n },\n\n C_ACT_main: \"#b776a3\",\n C_ACT_main_dark: \"#690048\",\n C_ACT_der: \"#CC95C2\",\n C_ACT_hover: \"rgba(65, 71, 90, 0.5)\",\n C_ACT_hover_without_opacity: \"#41475A\",\n C_ACT_thick_line: \"#a7a6a7\",\n C_ACT_thick_line_hover: \"#a7a6a7\",\n C_ACT_light_line: \"#fff\",\n\n C_BTN_4L_emph_bg: \"#966888\",\n C_BTN_4L_emph_line_color: \"transparent\",\n C_BTN_4L_emph_line_size: \"0\",\n C_BTN_4L_emph_text: \"#000\",\n C_BTN_4L_emph_bg_hover: \"#966888\",\n C_BTN_4L_emph_line_color_hover: \"transparent\",\n C_BTN_4L_emph_line_size_hover: \"0\",\n C_BTN_4L_emph_text_hover: \"#3e4455\",\n C_BTN_4L_emph_bg_selected: \"#b776a3\",\n C_BTN_4L_emph_line_color_selected: \"transparent\",\n C_BTN_4L_emph_line_size_selected: \"0\",\n C_BTN_4L_emph_text_selected: \"#000\",\n\n C_BTN_4D_emph_bg: \"transparent\",\n C_BTN_4D_emph_line_color: \"#000\",\n C_BTN_4D_emph_line_size: \"1\",\n C_BTN_4D_emph_text: \"#000\",\n C_BTN_4D_emph_bg_hover: \"transparent\",\n C_BTN_4D_emph_line_color_hover: \"#3e4455\",\n C_BTN_4D_emph_line_size_hover: \"1\",\n C_BTN_4D_emph_text_hover: \"#3e4455\",\n C_BTN_4D_emph_bg_selected: \"rgba(255, 255, 255, 0.15)\",\n C_BTN_4D_emph_line_color_selected: \"#000\",\n C_BTN_4D_emph_line_size_selected: \"1\",\n C_BTN_4D_emph_text_selected: \"#000\",\n\n C_BTN_4L_trans_bg: \"transparent\",\n C_BTN_4L_trans_line_color: \"transparent\",\n C_BTN_4L_trans_line_size: \"0\",\n C_BTN_4L_trans_text: \"#b776a3\",\n C_BTN_4L_trans_bg_hover: \"transparent\",\n C_BTN_4L_trans_line_color_hover: \"#41475A\",\n C_BTN_4L_trans_line_size_hover: \"2\",\n C_BTN_4L_trans_text_hover: \"#b776a3\",\n C_BTN_4L_trans_bg_selected: \"#41475A\",\n C_BTN_4L_trans_line_color_selected: \"transparent\",\n C_BTN_4L_trans_line_size_selected: \"0\",\n C_BTN_4L_trans_text_selected: \"#b776a3\",\n\n C_BTN_4D_trans_bg: \"transparent\",\n C_BTN_4D_trans_line_color: \"transparent\",\n C_BTN_4D_trans_line_size: \"0\",\n C_BTN_4D_trans_text: \"#000\",\n C_BTN_4D_trans_bg_hover: \"transparent\",\n C_BTN_4D_trans_line_color_hover: \"transparent\",\n C_BTN_4D_trans_line_size_hover: \"0\",\n C_BTN_4D_trans_text_hover: \"#3e4455\",\n C_BTN_4D_trans_bg_selected: \"rgba(255, 255, 255, 0.15)\",\n C_BTN_4D_trans_line_color_selected: \"transparent\",\n C_BTN_4D_trans_line_size_selected: \"0\",\n C_BTN_4D_trans_text_selected: \"#000\",\n\n C_BTN_hover_dark: \"#000\",\n C_BTN_hover_light: \"#fff\",\n\n C_LAB_grey: \"#5c5959\",\n C_LAB_yellow: \"#7e6e12\",\n C_LAB_green: \"#436428\",\n C_LAB_blue: \"#2f5465\",\n C_LAB_purple: \"#61377f\",\n C_LAB_orange: \"#6a491e\",\n\n C_SEM_el_good: \"#b1e928\",\n C_SEM_el_warning: \"#ffa55f\",\n C_SEM_el_bad: \"#e5396b\",\n C_SEM_el_good_inv: \"#53b68f\",\n C_SEM_el_warning_inv: \"#f58920\",\n C_SEM_el_bad_inv: \"#e60434\",\n C_SEM_el_neutral: \"#ebe9e9\",\n C_SEM_text_good: \"#79b426\",\n C_SEM_text_warning: \"#fab883\",\n C_SEM_text_bad: \"#f84386\",\n C_SEM_el_good_hover: \"#85af2c\",\n C_SEM_el_bad_hover: \"#aa335b\",\n C_SEM_text_good_hover: \"#a0ca66\",\n C_SEM_text_bad_hover: \"#b73a6e\",\n C_SEM_el_highlighted: \"#cc95c2\",\n\n C_SEM_opacity_bg_color: \"0.35\",\n C_SEM_opacity_validation: \"0.2\",\n\n C_GREY_x: \"#cecece\",\n\n C_DSH_border: mix(0.5, \"#dedbde\", \"#000\"),\n\n C_EVALA_LOGO: \"#fff\",\n\n C_TEXT_primary: \"#dedbde\",\n C_TEXT_dialogue_title: \"#f2e1eb\",\n C_TEXT_dialogue: \"#fff\",\n C_TEXT_purple_bg: \"#000\",\n C_TEXT_selection: \"#41475A\",\n C_TEXT_link: \"#9082a7\",\n C_TEXT_link_hover: \"#C6B3E6\",\n C_TEXT_link_selected: \"#585066\",\n C_TEXT_link_light: \"#683fac\",\n C_TEXT_link_hover_light: \"#711AFF\",\n C_TEXT_link_selected_light: \"#4511A6\",\n\n C_ICON_primary_dark: \"#b776a3\",\n C_ICON_secondary_dark: \"#8f6286\",\n C_ICON_tertiary_dark: \"#E50041\",\n C_ICON_primary_light: \"#000\",\n C_ICON_primary_light_hover: \"#3e4455\",\n C_ICON_secondary_light: \"#463e55\",\n C_ICON_tertiary_light: \"#e50041\",\n C_ICON_done: \"#dedbde\",\n\n C_ICON_document: \"#AD74AA\",\n\n C_ICON_MENU_main: \"#dedbde\",\n C_ICON_MENU_stroke: \"#b21373\",\n C_ICON_MENU_fill: \"#b21373\",\n get C_ICON_MENU_grad_start() {\n return this.C_BG_shellbar_grad_start;\n },\n get C_ICON_MENU_grad_end() {\n return this.C_BG_shellbar_grad_end;\n },\n\n C_ICON_OBJECT_PAGE_main: \"#b776a3\",\n\n C_ICON_STATUS_INDICATOR_stroke: \"#dedbde\",\n C_BUSY_INVERSE: \"#644D6A\",\n\n C_FIELD_fill: \"#282f3f\",\n C_FIELD_line: \"#495062\",\n C_FIELD_line_der: \"#303748\",\n C_FIELD_sync: \"#272e3d\",\n C_FIELD_section_line: \"#343e56\",\n\n C_DEF_tableBorder: \"#202737\",\n C_LINE_variants: \"#343e56\",\n C_BTN_border_hover: \"#b776a3\",\n\n C_SPLIT_LAYOUT_BUBBLE: \"\",\n C_FORM_GROUP_HEADER_LINE: \"#495062\",\n C_SPLIT_LAYOUT_COLLAPSED_HOVER: \"\",\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_TOP: \"\",\n C_SPLIT_LAYOUT_COLLAPSED_GRADIENT_BOTTOM: \"\",\n\n C_HIERARCHICAL_SELECT_LINE: \"#f2e1eb\",\n C_AVATAR_BG_LIGHT: \"#DDDDDD\",\n C_AVATAR_BG_DARK: \"#232323\",\n C_BG_INACTIVE_COMPANY: \"#2a3140\",\n INACTIVE_COMPANY_transparentize: \"0\",\n\n C_GRD_blue: \"#9255f2\",\n C_GRD_red: \"#de0553\",\n C_GRD_pink: \"#bd1489\",\n C_GRD_purple: \"#ad4592\",\n\n C_CHART_purple: \"#9771b0\",\n C_CHART_blue: \"#7bb2C9\",\n C_CHART_green: \"#95b879\",\n C_CHART_yellow: \"#edd86f\",\n C_CHART_orange: \"#db9465\",\n C_CHART_red: \"#c7586c\",\n C_CHART_grey: \"#a7a6a7\",\n\n C_SELECT_SEARCH_INPUT_FOCUS: \"#a23086\",\n C_SELECT_SEARCH_INPUT_BACKGROUND: \"#ad4592\",\n\n C_AUDIT_TRAIL_DIFF: \"#53b68f\",\n C_AUDIT_TRAIL_NO_DIFF: \"#303748\",\n C_AUDIT_TRAIL_DIFF_VISIBLE_OPACITY: \"0.6\",\n\n C_BG_ACCOUNT_PROGRESS_BG: \"#282f3f\",\n\n borderRadius: \"3px\",\n borderLargeRadius: \"17px\",\n transition_transform_time: \"0.3s\",\n disabled_opacity: \"0.5\",\n dashboard_tile_shadow_opacity: \"0.3\",\n shadow_opacity: \"0.6\",\n lightFieldGroupOpacity: \"0.2\",\n\n C_CUST_DASHBOARD_TILE_BG: \"#fff\",\n C_CUST_DASHBOARD_TILE_BG_OPACITY: \"0.1\",\n C_CUST_DASHBOARD_TILE_BORDER: \"#fff\",\n C_CUST_DASHBOARD_TILE_BORDER_OPACITY: \"0.2\",\n\n C_DASHBOARD_TILE_PLACEHOLDER_BG: \"#23202C\",\n C_DASHBOARD_TILE_PLACEHOLDER_BORDER: \"#60475E\",\n\n F_wave: waveSimple,\n F_wave_mountain: waveMountain,\n F_wave_mountain_complex: waveMountainComplex,\n F_wave_mountain_panorama: waveMountainPanorama,\n\n DEV_TOOLS_link: \"#00c2ee\"\n};\n\nconst customConfig = {\n ...defaultConfig,\n C_ACT_main: \"gray\",\n\n C_ICON_primary_dark: \"#ede046\",\n C_ICON_secondary_dark: \"#2a386c\",\n C_ICON_tertiary_dark: \"#288d1c\",\n C_ICON_primary_light: \"#fff\",\n C_ICON_secondary_light: \"#ddcad1\",\n C_ICON_tertiary_light: \"#e50041\"\n};\n\nexport type TTheme = \"light\" | \"dark\" | \"custom\";\n\nexport const themes: Record = {\n light: defaultConfig,\n dark: darkConfig,\n custom: customConfig,\n};\n\nexport type Theme = DefaultTheme;\nexport type PropsWithTheme = ThemeProps;","import { isNotDefined } from \"@utils/general\";\nimport i18next from \"i18next\";\nimport { TFormatterFn } from \"@components/smart/smartTable/SmartTable.utils\";\n\nclass BooleanType {\n static parse(value: string): boolean {\n if (isNotDefined(value) || value === \"\") {\n return null;\n }\n\n value = value.toLowerCase();\n\n if (value === \"true\" || value === i18next.t(\"Common:General.Yes\").toLowerCase()) {\n return true;\n } else if (value === \"false\" || value === i18next.t(\"Common:General.No\").toLowerCase()) {\n return false;\n }\n\n return null;\n }\n\n static format(value: boolean): string {\n return value ? i18next.t(\"Common:General.Yes\") : i18next.t(\"Common:General.No\");\n }\n\n static isValid(value: boolean): boolean {\n return typeof value === \"boolean\";\n }\n}\n\nexport const booleanFormatter: TFormatterFn = (val) => {\n return BooleanType.format(val as boolean);\n};\n\nexport default BooleanType;\n","import i18next from \"i18next\";\nimport NumberType from \"./Number\";\nimport { TValue } from \"../global.types\";\nimport { CurrencyUnit } from \"../enums\";\nimport { roundToDecimalPlaces } from \"@utils/general\";\nimport { fixMinusSign } from \"@utils/string\";\nimport { CurrencyCode } from \"@odata/GeneratedEnums\";\n\ninterface ICurrencyTypeOptions {\n currency?: string;\n scale?: CurrencyUnit;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n}\n\nclass CurrencyType {\n static parse(value: string, currency: string): number {\n return NumberType.parse(value.replace(this.getCurrencyUnit(currency), \"\"));\n }\n\n static format(value: TValue, {\n currency,\n scale,\n minimumFractionDigits,\n maximumFractionDigits\n }: ICurrencyTypeOptions): string {\n if (value === \"\" || isNaN(value as number)) {\n return value as string;\n } else if (currency) {\n switch (scale) {\n case CurrencyUnit.Thousands:\n return NumberType.format(\n roundToDecimalPlaces(2, parseFloat(value as string) / 1000).toString())\n + ` ${CurrencyType.getThousandsUnit(currency)} ${CurrencyType.getCurrencyUnit(currency)}`;\n case CurrencyUnit.Millions:\n return NumberType.format(\n roundToDecimalPlaces(2, parseFloat(value as string) / 1000000).toString())\n + ` ${CurrencyType.getMillionsUnit(currency)} ${CurrencyType.getCurrencyUnit(currency)}`;\n case CurrencyUnit.Units:\n default:\n return fixMinusSign(\n new Intl.NumberFormat(i18next.language, {\n style: \"currency\",\n currency: currency,\n // we want USD to be formatted as \"$\" without any other prefix\n // because US dollar is more important than all the other dollars\n currencyDisplay: currency === CurrencyCode.USDollar ? \"narrowSymbol\" : \"symbol\",\n minimumFractionDigits,\n maximumFractionDigits\n }).format(value as number));\n }\n } else {\n return NumberType.format(value as number);\n }\n }\n\n static isValid(value: number): boolean {\n return NumberType.isValid(value);\n }\n\n static getThousandsUnit(currency: string): string {\n return CurrencyType.getCompactUnit(1000, currency);\n }\n\n static getMillionsUnit(currency: string): string {\n return CurrencyType.getCompactUnit(1000000, currency);\n }\n\n /**\n * Returns unit for given order in current locale (e.g. scale is 1000 => returns 'tis.' for CZ and 'K' for en)\n */\n static getCompactUnit(scale: number, currency: string): string {\n return new Intl.NumberFormat(i18next.language, {\n style: \"currency\",\n currency: currency,\n notation: \"compact\"\n }).formatToParts(scale).find((part) => part.type === \"compact\")?.value ?? \"\";\n }\n\n static getCurrencyUnit(currency: string): string {\n return new Intl.NumberFormat(i18next.language, {\n style: \"currency\",\n currency: currency\n }).formatToParts(1).find((part) => part.type === \"currency\").value;\n }\n}\n\n\nexport function getCurrencyScale(value: number, currency: CurrencyCode): string {\n let scale = 1;\n while (Math.abs(value) >= 1000) {\n value /= 1000;\n scale *= 1000;\n }\n const unit = CurrencyType.getCompactUnit(scale, currency);\n return `${NumberType.format(value)} ${unit}`;\n}\n\n/** Ignore decimal numbers for whole numbers, but show decimals for numbers with fraction */\nexport const formatCurrencyVariableDecimals = (value: TValue, currency: string): string => {\n return CurrencyType.format(value, {\n currency,\n minimumFractionDigits: Number.isInteger(parseFloat(value as string)) ? 0 : 2\n });\n};\n\n/** Simplified currency formatter always ignores fraction parts */\nexport function formatSimpleCurrency(value: TValue, currency: string): string {\n return CurrencyType.format(value, { currency, maximumFractionDigits: 0 });\n}\n\n/** Basic currency formatter - fills zeros */\nexport function formatCurrency(value: TValue, currency: string): string {\n // todo: we may want to set minimumFractionDigits according to currency minorUnit\n return CurrencyType.format(value, { currency, minimumFractionDigits: 2 });\n}\n\nexport default CurrencyType;","import { getWorkDate, isMaxDay, isMinDay, stripAllDelimiters } from \"@components/inputs/date/utils\";\nimport { isDefined } from \"@utils/general\";\nimport { DevelLocalSettings } from \"@utils/LocalSettings\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\n\nexport type TDateLike = Dayjs | Date | string;\n\n/* Date formats used on BE */\nexport enum DisplayFormat {\n DateShort = \"DateShort\",\n DateMedium = \"DateMedium\",\n DateLong = \"DateLong\",\n DateFull = \"DateFull\",\n TimeShort = \"TimeShort\",\n TimeMedium = \"TimeMedium\",\n TimeLong = \"TimeLong\",\n TimeFull = \"TimeFull\",\n // todo: BE can combine any of the formats above - what each format means?\n // E.g. we have 2 possible time formats: LT and LTS... What is expected in each case?\n DateShortTimeShort = \"DateShort-TimeShort\",\n DateMediumTimeMedium = \"DateMedium-TimeMedium\",\n DateLongTimeLong = \"DateLong-TimeLong\",\n DateFullTimeFull = \"DateFull-TimeFull\",\n DateMediumTimeFull = \"DateMedium-TimeFull\"\n}\n\nconst displayFormatRe = /^(Date|Time)(Short|Medium|Long|Full)(-Time(Short|Medium|Long|Full))?$/;\n// constants that should be same for FE and BE.\n// we should use them to limit date pickers and can be used as special values.\n// use string in constructor instead of number value, otherwise js sets year as 1970 instead of 1\nexport const DATE_MIN = getUtcDate(\"0001-01-01\");\nexport const DATE_MAX = getUtcDate(\"9999-12-31\");\n\n/**\n * Function checks if given format is one of BE displayFormat, which has to be parsed (transformed to classic format)\n * before use for formatting through date functions.\n * @param format\n */\nconst CombinedFormatSeparator = \", \";\n\nexport function isDisplayFormat(format: string): boolean {\n return format.split(CombinedFormatSeparator).every(f => displayFormatRe.test(f));\n}\n\nconst parseDisplayFormat = (displayFormat: DisplayFormat) => {\n switch (displayFormat) {\n case DisplayFormat.DateShort:\n return \"l\";\n case DisplayFormat.DateMedium:\n return \"L\";\n case DisplayFormat.DateLong:\n case DisplayFormat.DateFull:\n return \"LL\";\n case DisplayFormat.TimeShort:\n return \"LT\";\n case DisplayFormat.TimeMedium:\n case DisplayFormat.TimeLong:\n case DisplayFormat.TimeFull:\n return \"LTS\";\n case DisplayFormat.DateShortTimeShort:\n return \"lll\";\n case DisplayFormat.DateMediumTimeMedium:\n return \"llll\";\n case DisplayFormat.DateLongTimeLong:\n return \"LLL\";\n case DisplayFormat.DateFullTimeFull:\n return \"LLLL\";\n default:\n return \"L\";\n }\n};\n\n/* FE specific date formats - should be already dayJS format strings */\nexport enum DateFormat {\n /** Short month format string @example \"2018 January\" */\n yearAndMonth = \"YYYY MMMM\",\n /** Short month format string @example \"January 2018\" */\n monthAndYear = \"MMMM YYYY\",\n /** Day format string @example \"12\" */\n dayOfMonth = \"D\",\n /** Month format string @example \"January\" */\n month = \"MMMM\",\n /** Year format string @example \"2019\" */\n year = \"YYYY\",\n /** Hours format string @example \"23\" */\n hours24h = \"HH\",\n /** Minutes format string @example \"59\" */\n minutes = \"mm\",\n /** Localized date and time */\n dateAndTime = \"L, LT\",\n}\n\n/**\n * Returns standard date format used by dayjs library\n * @param format\n */\nexport const getDateFormat = (format: DisplayFormat | DateFormat | string): string => {\n if (isDisplayFormat(format)) {\n return format.split(CombinedFormatSeparator)\n .map(f => parseDisplayFormat(f as DisplayFormat))\n .join(CombinedFormatSeparator);\n }\n return format as string;\n};\n\n/**\n * Currently all agendas are in CET timezone\n */\nexport function getAgendaTZ(): string {\n return \"Europe/Prague\";\n}\n\n/** Returns date from local storage if set via devtools/timeTravel\n * kept in local settings instead of AppContext so that it is easily accessible from E2E tests as well\n * */\nexport const getDevelTimeTravelDate = (): string => {\n return DevelLocalSettings.get(\"timeTravel\")?.timeTravelDate ?? undefined;\n};\n\n// ! IMPORTANT !\n// only use these methods to obtain date/dayjs objects!\n// never create dayjs() or new Date() by yourself!!\n// this allows us to always create correct dates and use timeTravel in devtools\n\n/**\n * Creates UTC date from given date\n * - for given date it creates its representation in +00 timezone (UTC),\n * which is different from browsers new Date() which creates it in local timezone (typically +01 in europe/prague)\n * @param date\n */\nexport function getUtcDayjs(date?: TDateLike): Dayjs {\n if (!date) {\n const timeTravelDate = getDevelTimeTravelDate();\n // new date in current timezone\n // eslint-disable-next-line custom-rules/no-new-date\n const now = timeTravelDate ? new Date(timeTravelDate) : new Date();\n // convert to UTC date with same day, month and year\n date = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;\n }\n if (typeof date === \"string\" && date.startsWith(\"0001-\")) {\n // min date -> the only way how we can create correct date is to call Date contructor in this case\n // eslint-disable-next-line custom-rules/no-new-date\n return dayjs.utc(new Date(date));\n }\n return dayjs.utc(date);\n}\n\n/**\n * Creates UTC date from given date string\n * @param dateString\n * @param dateOnly\n */\nexport function getUtcDate(dateString?: TDateLike, dateOnly = false): Date {\n if (dateOnly && typeof dateString === \"string\") {\n // for string params, takes only date part without time\n dateString = dateString.split(\"T\")[0];\n }\n return getUtcDayjs(dateString).toDate();\n}\n\nexport function getUtcDateBy(year: number, monthIndex = 0, day = 1, hour = 0, minute = 0, sec = 0): Date {\n // eslint-disable-next-line custom-rules/no-new-date\n return new Date(Date.UTC(year, monthIndex, day, hour, minute, sec));\n}\n\n// TODO refactor code where needed to actually use these two methods\n/**\n * Creates LOCAL date from given date\n * - for given date it creates its representation in LOCAL timezone,\n * which is SAME as browsers new Date()\n * @param date\n */\nexport function getLocalTimeDayjs(date?: TDateLike): Dayjs {\n if (!date) {\n const timeTravelDate = getDevelTimeTravelDate();\n\n return timeTravelDate ? dayjs(getDevelTimeTravelDate()) : dayjs();\n }\n\n if (typeof date === \"string\" && date.startsWith(\"0001-\")) {\n // min date -> the only way how we can create correct date is to call Date contructor in this case\n // eslint-disable-next-line custom-rules/no-new-date\n return dayjs(new Date(date));\n }\n\n return dayjs(date);\n}\n\n/**\n * Creates LOCAL date from given date string\n * @param dateString\n */\nexport function getLocalTimeDate(dateString?: TDateLike): Date {\n return getLocalTimeDayjs(dateString).toDate();\n}\n\ninterface IParseDayArgs {\n date: string;\n format?: string | string[];\n strictMode?: boolean;\n workDate?: Date;\n}\n\nexport function parseDayjs(args: IParseDayArgs): Dayjs {\n const format = args.format ?? Object.values(dayjs.Ls[dayjs.locale()].formats);\n const strictMode = args.strictMode !== false;\n\n if (args.date) {\n const date = args.date.toLowerCase();\n // note: parsing is case-sensitive, e.g. in czech we need lowercase months however in english uppercase. Formatting\n // works in the same way. The format should be exact in strict mode, including delimiters,\n // so strip additional spaces to help user a little.\n let parsedDate = dayjs(date.trim().replace(/\\s+/g, \" \"), format, dayjs.locale(), strictMode).tz(\"GMT\", true);\n\n // if the parsed string doesn't contain a year, dayjs use current year by default,\n // use work date year instead, if set\n if (parsedDate.isValid() && removeWhiteSpace(stripAllDelimiters(date)).length === 4) {\n const workDate = args.workDate ?? getWorkDate();\n\n if (workDate) {\n parsedDate = parsedDate.utc().year(workDate.getUTCFullYear());\n }\n }\n\n return parsedDate;\n }\n return null;\n}\n\ninterface IDateTypeFormatOptions {\n isReadOnly?: boolean;\n local?: boolean; // format in user's local timezone\n}\n\nclass DateType {\n // those just default values that will change based on the UserSetting\n static defaultDateFormat: string = DisplayFormat.DateMedium;\n static defaultTimeFormat: string = DisplayFormat.TimeShort;\n\n static get defaultDateTimeFormat(): string {\n return `${DateType.defaultDateFormat}${CombinedFormatSeparator}${DateType.defaultTimeFormat}`;\n }\n\n static parse(args: IParseDayArgs): Date {\n return parseDayjs(args)?.toDate();\n }\n\n static format(value: Date | Dayjs, format?: DisplayFormat | DateFormat | string, options?: IDateTypeFormatOptions): string {\n if (!value) {\n return \"\";\n }\n\n if (isMaxDay(value) && options?.isReadOnly) {\n return i18next.t(\"Common:Time.WithoutEnd\");\n } else if (isMinDay(value) && options?.isReadOnly) {\n return i18next.t(\"Common:Time.WithoutStart\");\n }\n\n if (!isDefined(format)) {\n format = DateType.defaultDateFormat;\n }\n if (options?.local) {\n const a = dayjs;\n\n return dayjs.tz(value, dayjs.tz.guess()).format(getDateFormat(format));\n }\n return dayjs.utc(value).format(getDateFormat(format));\n }\n\n static localFormat(value: Date | Dayjs, format?: DisplayFormat | DateFormat | string, options?: IDateTypeFormatOptions): string {\n return DateType.format(value, format, { ...(options ?? {}), local: true });\n }\n\n static isValid(value: Date | Dayjs | string): boolean {\n return !!value && dayjs(value).isValid();\n }\n\n static compare(date1: Date, date2: Date): number {\n return date1.getTime() - date2.getTime();\n }\n\n static isSame(date1: Date, date2: Date): boolean {\n return date1?.getTime() === date2?.getTime();\n }\n\n static isSameDay(date1: TDateLike, date2: TDateLike): boolean {\n return getUtcDayjs(date1).isSame(date2, \"day\");\n }\n\n static isToday(date: TDateLike): boolean {\n return DateType.isSameDay(getUtcDayjs(), date);\n }\n}\n\nexport default DateType;","import { isDefined, isNotDefined, roundToDecimalPlaces } from \"@utils/general\";\nimport { fixMinusSign } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport { ICurrencyEntity } from \"@odata/GeneratedEntityTypes\";\nimport BindingContext from \"../odata/BindingContext\";\nimport { Model } from \"../model/Model\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#parameters\nexport enum NumberFormatStyle {\n Decimal = \"decimal\",\n Currency = \"currency\",\n Percent = \"percent\",\n Unit = \"unit\"\n}\n\nexport interface IParserArgs {\n maximumFractionDigits?: number;\n}\n\nexport interface IScaleArgs {\n scale: number;\n minorUnit: number;\n isCurrency: boolean;\n}\n\nclass NumberType {\n /** Parse number based on current locale.\n * Returns NaN if the provided string is wrong and null if no value provided. */\n static parse(value: string, strict?: boolean, args?: IParserArgs): number | null {\n if (isNotDefined(value) || value === \"\") {\n return null;\n }\n\n let num = NumberType.getParser().parse(value);\n if (isDefined(args?.maximumFractionDigits) && !isNaN(num)) {\n num = roundToDecimalPlaces(args.maximumFractionDigits, num);\n }\n\n return num;\n }\n\n static format(value: number | string, {\n useGrouping = true,\n style = NumberFormatStyle.Decimal,\n maximumFractionDigits = 20, // max possible value to avoid unintentional rounding\n ...rest\n }: Intl.NumberFormatOptions = {}): string {\n if (isNotDefined(value) || value === \"\" || isNaN(value as number)) {\n return \"\";\n } else {\n return fixMinusSign(\n new Intl.NumberFormat(i18next.language, {\n useGrouping,\n style,\n maximumFractionDigits, ...rest\n }).format(value as number)\n );\n }\n }\n\n static isValid(value: number): boolean {\n return isDefined(value) && !isNaN(value) && value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER;\n }\n\n // reusable numberParser instance\n static _parser: NumberParser;\n\n static getParser(): NumberParser {\n if (!NumberType._parser) {\n NumberType._parser = new NumberParser(i18next.language);\n }\n return NumberType._parser;\n }\n\n static localeDidChange(): void {\n NumberType._parser = null;\n }\n}\n\nexport default NumberType;\n\n// localized number parsing https://observablehq.com/@mbostock/localized-number-parsing\nexport class NumberParser {\n _groupChar: string;\n _group: RegExp;\n _decimalChar: string;\n _decimal: RegExp;\n _numeral: RegExp;\n _minusSign: string;\n _index: (d: string) => string;\n\n constructor(locale: string) {\n const parts = new Intl.NumberFormat(locale).formatToParts(-12345.6);\n const numerals = [...new Intl.NumberFormat(locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._groupChar = parts.find(d => d.type === \"group\").value;\n this._group = new RegExp(`[${this._groupChar}]`, \"g\");\n this._decimalChar = parts.find(d => d.type === \"decimal\").value;\n this._decimal = new RegExp(`[${this._decimalChar}]`);\n this._numeral = new RegExp(`[${numerals.join(\"\")}]`, \"g\");\n this._minusSign = parts.find(d => d.type === \"minusSign\").value;\n this._index = d => index.get(d).toString();\n }\n\n parse(string: string | number) {\n string = string.toString().trim()\n .replace(this._group, \"\")\n // group returns non breaking space (ascii 160) instead of space (32) for cs-CZ\n // just to be sure, replace all white space characters with empty string\n .replace(/\\s/g, \"\")\n .replace(this._decimal, \".\")\n .replace(this._numeral, this._index)\n // in a case there would be some special character for minus sign in some locale\n .replace(this._minusSign, \"-\");\n\n string = fixMinusSign(string, true);\n\n return string ? +string : NaN;\n }\n}\n\nexport const DEFAULT_SCALE_CURRENCY_VALUE = 2;\nexport const currencyScaleFormatter = (value: number, currency?: ICurrencyEntity): string => {\n const minorUnit = currency?.MinorUnit ?? DEFAULT_SCALE_CURRENCY_VALUE;\n return NumberType.format(value, {\n maximumFractionDigits: minorUnit,\n minimumFractionDigits: minorUnit\n });\n};\n\nexport const currencyScaleParser = (value: string, currency: ICurrencyEntity): number => {\n const minorUnit = currency?.MinorUnit ?? DEFAULT_SCALE_CURRENCY_VALUE;\n return NumberType.parse(value, true, {\n maximumFractionDigits: minorUnit\n });\n};\n\n\nexport const getScale = (bc: BindingContext, storage: Model): IScaleArgs => {\n const prop = bc?.getProperty();\n const defScale = prop?.getScale();\n let currencyBc = prop?.getCurrency() && bc.getParent().navigate(prop.getCurrency());\n if (!currencyBc && bc?.isAnyPartCollection()) {\n // document items doesn't have link to currency, try to get same property from root\n let rootProp;\n try {\n const rootBc = bc.getParent()?.getParent();\n rootProp = rootBc?.navigate(bc.getPath()).getProperty();\n currencyBc = rootProp?.getCurrency() && rootBc.navigate(rootProp?.getCurrency());\n } catch (e) {\n // fall silently\n }\n }\n\n let scale: number;\n if (currencyBc) {\n scale = storage.getValue(currencyBc)?.MinorUnit;\n }\n return { scale: scale ?? defScale, minorUnit: scale ?? 2, isCurrency: !!currencyBc };\n};\n\nexport const isNumber = (n: unknown): boolean => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n?.toString());\n};","import { isComplexFilterArr } from \"@components/conditionalFilterDialog/ConditionalFilterDialog.utils\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { IAffectedRow, TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { IBankAccountEntity, IBusinessPartnerEntity, ICompanyBankAccountEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyBankAccountTypeCode, CountryCode } from \"@odata/GeneratedEnums\";\nimport { ICreateFilterStringSettings, IFormatOptions } from \"@odata/OData.utils\";\nimport {\n buildComplexBankAccountFilterFromBankAccountString,\n changeCountryByIBAN,\n isBankAccount,\n setBankValue,\n tryToCreateIBAN\n} from \"@pages/banks/bankAccounts/BankAccounts.utils\";\nimport { getAgendaCountryCode } from \"@pages/companies/Company.shared.utils\";\nimport Iban from \"iban\";\n\nimport { REST_API_URL } from \"../constants\";\nimport { BankAccountType, GroupedField, Status } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport { IFilterQuery, TableStorage } from \"../model/TableStorage\";\nimport BindingContext from \"../odata/BindingContext\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport { IChangedFilter } from \"../views/table/TableView.utils\";\nimport customFetch, { getDefaultPostParams } from \"./customFetch\";\nimport { isNotDefined } from \"./general\";\nimport { removeWhiteSpace, trimLeadingZeroes } from \"./string\";\n\nexport const BANK_ACCOUNT_COUNTRIES = [\"CZ\", \"US\"];\nexport const BANK_ACCOUNT_BANKS_COUNTRIES = [\"CZ\"];\nexport const BANK_ABA_COUNTRIES = [\"US\"];\n\nexport interface IHandleBlur {\n storage: FormStorage;\n bindingContext: BindingContext;\n root: BindingContext;\n}\n\nexport const ibanValidator = (value: TValue): boolean => {\n return !value || Iban.isValid(value as string);\n};\n\nexport const correctBankCode = (code: string): string => {\n if (code?.length < 4) {\n return code.padStart(4, \"0\");\n }\n\n return code;\n};\n\nexport const createIBANFromAccount = (accountNumber: string, bankCode: string, country: string): string => {\n if (isNotDefined(accountNumber) || isNotDefined(bankCode)) {\n return \"\";\n }\n\n const split = accountNumber?.split(\"-\");\n const pre = split.length > 1 ? split[0].padStart(6, \"0\") : \"000000\";\n const number = split[1] ?? split[0];\n const formatted = `${bankCode}${pre}${number.padStart(10, \"0\")}`;\n\n try {\n return Iban.fromBBAN(country, formatted);\n } catch (e) {\n return \"\";\n }\n};\n\nexport const createAccountFromIBAN = (IBAN: string): { bank: string, account: string } => {\n try {\n const acc = Iban.toBBAN(IBAN, \"/\");\n\n const [bankCode, prefix, accountNumber] = acc.split(\"/\");\n\n // remove empty 000 in the start of account\n const trimmed = parseInt(prefix, 10);\n const account = trimmed ? `${trimmed}-${accountNumber}` : accountNumber;\n\n return {\n bank: bankCode,\n account: account\n };\n } catch (e) {\n return undefined;\n }\n};\n\nexport const generalBankAccountFormatter = (val: TValue, args?: IFormatOptions): string => {\n const account: ICompanyBankAccountEntity = (args.item?.BankAccount ?? args.item ?? args.entity?.BankAccount) as IBankAccountEntity;\n const ifEmptyValue = val?.toString() || args.placeholder;\n\n if (account) {\n if (Array.isArray(account.AccountNumber)) {\n return val?.toString();\n }\n\n const type = getTypeFromAccount(account);\n return formatBankAccount(account, type) || ifEmptyValue;\n }\n\n return ifEmptyValue;\n};\n\nexport const getBankAccountFilterDefinition = (prefix: string, includeAccountNumber?: boolean): IFieldInfo[\"filter\"] => {\n const groupByProperties = [`${prefix}/BankCode`, `${prefix}/CountryCode`, `${prefix}/AbaNumber`, `${prefix}/PaymentServiceID`, `${prefix}/IBAN`];\n\n if (includeAccountNumber) {\n groupByProperties.push(`${prefix}/AccountNumber`);\n }\n\n return {\n groupByProperties,\n buildFilter: (item: IChangedFilter, settings: ICreateFilterStringSettings, storage: TableStorage): IFilterQuery | string => {\n if (isComplexFilterArr(item.value)) {\n return buildComplexBankAccountFilterFromBankAccountString(item, storage, settings);\n } else {\n // call original function that build filter automatically\n return storage.createFilterQueryRecursive([{\n ...item,\n // we need the bc to always be set to AccountNumber, but this function is used from Account navigation filter also\n bindingContext: includeAccountNumber ? item.bindingContext.navigate(\"AccountNumber\") : item.bindingContext,\n info: {\n ...item.info,\n filter: {\n ...item.info.filter,\n // but prevent it from calling this callback again\n buildFilter: null\n }\n }\n }], settings.rootBindingContext);\n }\n }\n };\n};\n\nexport const getTypeFromAccount = (account: IBankAccountEntity): BankAccountType => {\n // some accounts are loaded with Country as object with Code string\n const country = account.CountryCode ?? account?.Country?.Code;\n\n if ((account as ICompanyBankAccountEntity).CompanyBankAccountTypeCode === CompanyBankAccountTypeCode.PaymentService) {\n return BankAccountType.Service;\n }\n\n if (isAbaCountry(country)) {\n return BankAccountType.ABA;\n }\n\n if (isAccountNumberCountry(country)) {\n return BankAccountType.Account;\n }\n\n return BankAccountType.IBANOnly;\n};\n\nexport const formatBankAccountWithoutType = (acc: IBankAccountEntity): string => {\n if (acc) {\n const accountNumber = acc.AccountNumber?.replace(/^0+-/, \"\");\n\n if (acc.BankCode && acc.AccountNumber) {\n return `${accountNumber}/${acc.BankCode}`;\n }\n if (acc.AbaNumber && acc.AccountNumber) {\n return `${acc.AbaNumber}/${accountNumber}`;\n }\n\n return acc.IBAN ?? \"\";\n }\n\n return \"\";\n};\n\nexport const formatBankAccount = (bankAccount: ICompanyBankAccountEntity, type: BankAccountType): string => {\n if (bankAccount.PaymentServiceID) {\n return bankAccount.PaymentServiceID;\n }\n\n let accountNumber = bankAccount.AccountNumber;\n accountNumber = accountNumber?.replace(/^0+-/, \"\");\n\n switch (type) {\n case BankAccountType.ABA:\n return `${bankAccount.AbaNumber}/${accountNumber}`;\n\n case BankAccountType.Account:\n return accountNumber && bankAccount.BankCode ? `${accountNumber}/${bankAccount.BankCode}` : \"\";\n\n }\n\n return ibanFormatter(bankAccount.IBAN);\n};\n\nexport interface IAllBankAccount extends IBankAccountEntity {\n BusinessPartner: IBusinessPartnerEntity;\n}\n\ninterface BankAccountsItemsArgs {\n bankAccounts: ICompanyBankAccountEntity[];\n hasBusinessPartnerCol?: boolean;\n allowedTypes?: BankAccountType[];\n addCurrency?: boolean;\n}\n\nexport const createBankAccountsItems = (args: BankAccountsItemsArgs): ISelectItem[] => {\n const groups: Record = {\n [BankAccountType.Account]: [],\n [BankAccountType.IBANOnly]: [],\n [BankAccountType.ABA]: [],\n [BankAccountType.Service]: []\n };\n\n for (const bankAccount of args.bankAccounts || []) {\n const id = bankAccount.Id ?? (bankAccount as TRecordAny).Code ?? `#${(bankAccount as TRecordAny)[BindingContext.NEW_ENTITY_ID_PROP]}`;\n const type = getTypeFromAccount(bankAccount);\n if (args.allowedTypes && !args.allowedTypes.includes(type)) {\n continue;\n }\n const item: ISelectItem = {\n id: id,\n label: formatBankAccount(bankAccount, type),\n groupId: type,\n additionalData: bankAccount\n };\n\n if (bankAccount.Name) {\n item.tabularData = [item.label];\n if (args.addCurrency) {\n item.tabularData.push(item.additionalData?.TransactionCurrency?.Code || \"\");\n }\n\n item.tabularData.push(bankAccount.Name);\n }\n\n if (args.hasBusinessPartnerCol) {\n item.tabularData = [item.label, (bankAccount as IAllBankAccount).BusinessPartner?.Name];\n }\n\n\n groups[type].push(item);\n }\n\n return [...groups.account, ...groups.ibanOnly, ...groups.aba, ...groups.service];\n};\n\nexport const ibanFormatter = (val: TValue): string => {\n let iban = val as string;\n if (Iban.isValid(iban)) {\n iban = removeWhiteSpace(iban);\n\n const newStringArr: string[] = [];\n const SPACING = 4;\n for (let i = 0, len = iban.length; i < len; i += SPACING) {\n newStringArr.push(iban.slice(i, i + SPACING));\n }\n\n return newStringArr.join(\" \").toUpperCase();\n }\n\n return iban ?? \"\";\n};\n\nexport const getBc = (args: IHandleBlur, name: string): BindingContext => {\n return args.root ? args.root.navigate(name) : args.storage.data.bindingContext.navigate(name);\n};\n\nexport const handleBankAccountOrIBANBlur = (args: IHandleBlur): void => {\n const path = args.bindingContext.getPath(true);\n\n if (isBankAccount(args.root)) {\n if (path === \"IBAN\") {\n handleIBANBlur(args);\n }\n\n if (path === \"AccountNumber\" || path === \"Bank\") {\n handleBankAccountBlur(args);\n }\n }\n};\n\nconst setDefaultCountry = (storage: FormStorage, countryBc: BindingContext) => {\n const country = storage.getValue(countryBc, { useDirectValue: false });\n if (!country) {\n const defaultCountry = getAgendaCountryCode(storage.context, null);\n if (defaultCountry === CountryCode.CzechRepublic || defaultCountry === CountryCode.Slovakia) {\n storage.setValue(countryBc, defaultCountry);\n }\n }\n};\n\nexport const handleIBANBlur = (args: IHandleBlur): void => {\n changeCountryByIBAN(args.storage, args.root);\n args.storage.refresh();\n};\n\n\nexport const handleBankAccountBlur = (args: IHandleBlur): void => {\n const bcAccount = getBc(args, \"AccountNumber\");\n let account = args.storage.getValue(bcAccount);\n\n const splitted = account?.split(\"/\");\n\n const countryBc = getBc(args, \"Country\");\n\n if (splitted && splitted.length === 2) {\n setDefaultCountry(args.storage, countryBc);\n args.storage.setValue(bcAccount, splitted[0]);\n // we have change value -> revalidate\n args.storage.validateFieldSync(bcAccount);\n setBankValue(args.storage, args.root ?? args.storage.data.bindingContext, splitted[1]);\n account = splitted[0];\n }\n \n if (account?.startsWith(\"0\")) {\n account = trimLeadingZeroes(account);\n args.storage.setValue(bcAccount, account);\n args.storage.validateFieldSync(bcAccount); // revalidate field as value has changed\n }\n\n // try to create IBAN\n tryToCreateIBAN(args.storage, bcAccount);\n};\n\nexport const getBankCountry = (args: IGetValueArgs): string => {\n const bc = args.bindingContext.isCollection() ? args.bindingContext : args.bindingContext.getParent();\n const countryBc = bc.navigate(\"Country\");\n return args.storage.getValue(countryBc, { useDirectValue: false });\n};\n\n\nexport const isBankCodeVisible = (args: IGetValueArgs): boolean => {\n const country = getBankCountry(args);\n return !country || isBankCodeCountry(country);\n};\n\nexport const isBankCodeCountry = (country: string): boolean => {\n return BANK_ACCOUNT_BANKS_COUNTRIES.includes(country);\n};\n\n\nexport const isBankAccountVisible = (args: IGetValueArgs): boolean => {\n const country = getBankCountry(args);\n return !country || isAccountNumberCountry(country);\n};\n\nexport const isBankAbaVisible = (args: IGetValueArgs): boolean => {\n return BANK_ABA_COUNTRIES.includes(getBankCountry(args));\n};\n\nexport const isIBANVisible = (args: IGetValueArgs): boolean => {\n return !isAbaCountry(getBankCountry(args));\n};\nexport const isAbaCountry = (country: string): boolean => {\n return BANK_ABA_COUNTRIES.includes(country);\n};\n\nexport const isAccountNumberCountry = (country: string): boolean => {\n return BANK_ACCOUNT_COUNTRIES.includes(country);\n};\n\nexport const isPureIBANCountry = (country: string): boolean => {\n return !isAbaCountry(country) && !isAccountNumberCountry(country);\n};\n\nexport const AccountNumberGroupField = (args: IGetValueArgs): GroupedField => {\n const country = getBankCountry(args);\n return BANK_ABA_COUNTRIES.includes(country) ? GroupedField.MultiEnd : GroupedField.MultiStart;\n};\n\nexport const AbaGroupField = (args: IGetValueArgs): GroupedField => {\n const country = getBankCountry(args);\n return BANK_ABA_COUNTRIES.includes(country) ? GroupedField.MultiStart : undefined;\n};\n\n\nexport const isIBANRequired = (args: IGetValueArgs): boolean => {\n const country = getBankCountry(args);\n return country !== \"CZ\";\n};\n\nexport const handleMarkAsUnrelatedConfirm = async (storage: TSmartODataTableStorage): Promise => {\n storage.tableAPI.setState({ loaded: false });\n const activeRows = await storage.tableAPI.getAffectedRows();\n const ids = Array.from(activeRows)?.map((row: IAffectedRow) => {\n return row.key;\n }) || [];\n\n const result = await customFetch(`${REST_API_URL}/CbaProcessing/MarkAsUnrelatedToBusiness`, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n PaymentDocumentIds: ids.map(id => parseInt(id))\n })\n });\n\n let shouldReload = false;\n if (!result || result.ok) {\n storage.data.alert = {\n status: Status.Success,\n title: storage.t(\"Components:Table.UpdateOk\"),\n subTitle: storage.t(\"Banks:CashBasisAccounting.MarkedAsUnrelated\"),\n useFade: true\n };\n shouldReload = true;\n }\n storage.tableAPI.setState({ loaded: true });\n return shouldReload;\n};","import { CacheStrategy } from \"../enums\";\n// import { MemoizedFunction } from \"lodash\";\nimport memoize from \"./memoize\";\n\nexport interface IClearable {\n clear?: () => void;\n}\n\ntype TCacheRegistry = Partial>;\n\nexport class CacheCleaner {\n static caches: TCacheRegistry = {};\n\n static registerCache(cache: IClearable, cs: CacheStrategy) {\n if (!CacheCleaner.caches[cs]) {\n CacheCleaner.caches[cs] = [];\n }\n CacheCleaner.caches[cs].push(cache);\n }\n\n static clear(cs: CacheStrategy) {\n CacheCleaner.caches[cs]?.forEach(cache => cache.clear?.());\n }\n}\n\n/**\n * Function creates and register functions for every cache strategy, cached content is then cleared automatically by\n * CacheCleaner class\n *\n * @param fn\n * @param resolverFn\n */\nexport function memoizedWithCacheStrategy(fn: (args: T) => Promise, resolverFn: (args: T) => string) {\n const memoizedMethods: Partial Promise) & Partial>> = {};\n\n for (const key in CacheStrategy) {\n if (CacheStrategy.hasOwnProperty(key)) {\n const cs = CacheStrategy[key as CacheStrategy];\n if (cs === CacheStrategy.None) {\n memoizedMethods[cs] = fn;\n } else {\n memoizedMethods[cs] = memoize(fn, resolverFn);\n CacheCleaner.registerCache((memoizedMethods[cs] as any).cache, cs);\n }\n }\n }\n\n return (args: T, cacheStrategy: CacheStrategy) => {\n return memoizedMethods[cacheStrategy](args);\n };\n}","import { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { ICompanyEntity } from \"@odata/GeneratedEntityTypes\";\nimport { AccountingCode, CurrencyCode, VatStatusCode } from \"@odata/GeneratedEnums\";\n\nimport { FILES_API_URL } from \"../constants\";\nimport { AppMode, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport DateType, { getUtcDate, getUtcDayjs } from \"../types/Date\";\nimport { desc } from \"./general\";\nimport { logger } from \"./log\";\n\nconst firstSystemLogoId = -1;\nconst lastSystemLogoId = -50; // TODO back to -100 when all avatars are used again\n\nexport const getCompanyLogoUrl = (company: ICompanyEntity): string => {\n const imageId = company?.Logo?.Id;\n return FILES_API_URL + \"/\" + imageId;\n};\n\nexport const getNextSystemCompanyLogoId = (companies: ICompanyEntity[] = []): number => {\n if (companies.length === 0)\n return firstSystemLogoId;\n\n // we want to find the least used system logo Id starting with -1\n\n const systemLogoIds = companies\n .filter(c => c.Logo != null && c.Logo.Id < 0)\n .map(c => c.Logo.Id)\n .sort(desc); // sort from -1 to -100\n\n if (systemLogoIds.length === 0 || systemLogoIds[0] !== firstSystemLogoId)\n return firstSystemLogoId;\n\n let candidateId = 0;\n let candidateOccurrences = Number.MAX_SAFE_INTEGER;\n\n let currentId = firstSystemLogoId;\n let currentOccurrences = 1;\n\n for (let i = 1; i < systemLogoIds.length; i++) {\n if (systemLogoIds[i] === currentId) {\n currentOccurrences++;\n } else if (currentId - 1 > systemLogoIds[i]) {\n return currentId - 1;\n } else {\n if (currentOccurrences < candidateOccurrences) {\n candidateId = currentId;\n candidateOccurrences = currentOccurrences;\n }\n\n currentId = systemLogoIds[i];\n currentOccurrences = 1;\n }\n }\n\n if (currentId > lastSystemLogoId)\n return currentId - 1;\n\n return candidateOccurrences <= currentOccurrences ? candidateId : currentId;\n};\n\nexport function getCompanyAccountingCode(context: IAppContext): AccountingCode {\n return context?.getCompany()?.AccountingCode as AccountingCode;\n}\n\nexport function isCashBasisAccountingCompany(context: IAppContext): boolean {\n return getCompanyAccountingCode(context) === AccountingCode.CashBasisAccounting;\n}\n\nexport function isAccountAssignmentCompany(context: IAppContext): boolean {\n return getCompanyAccountingCode(context) === AccountingCode.AccountingForBusiness;\n}\n\nexport function getCompanyCurrency(context: IAppContext): CurrencyCode {\n if (!context) {\n logger.warn(`AppContext missing for getCompanyCurrency function, currency might not be correct.`);\n }\n return context?.getCompany()?.CurrencyCode as CurrencyCode ?? CurrencyCode.CzechKoruna;\n}\n\nexport const isAccountAssignmentCompanyValue = (args: IGetValueArgs): boolean => isAccountAssignmentCompany(args.context ?? args.storage.context);\n\nexport function getCompanyVatStatusesSorted(company: ICompanyEntity): ICompanyEntity[\"VatStatuses\"] {\n return company?.VatStatuses?.sort(\n (a, b) => a.DateValidFrom.getTime() - b.DateValidFrom.getTime()\n );\n}\n\nexport function getCompanyLatestVatStatus(company: ICompanyEntity): VatStatusCode {\n const vatStatuses = getCompanyVatStatusesSorted(company);\n\n if (vatStatuses == null || vatStatuses.length === 0) {\n return null;\n }\n\n return vatStatuses[vatStatuses.length - 1].VatStatusCode as VatStatusCode;\n}\n\nexport function getCompanyVatStatusForDate(company: ICompanyEntity, date: Date): VatStatusCode {\n const vatStatuses = getCompanyVatStatusesSorted(company);\n\n if (vatStatuses == null || vatStatuses.length === 0) {\n return null;\n }\n\n for (let i = vatStatuses.length - 1; i >= 0; i--) {\n if (getUtcDayjs(vatStatuses[i].DateValidFrom).isSameOrBefore(date, \"day\")) {\n return vatStatuses[i].VatStatusCode as VatStatusCode;\n }\n }\n\n return null;\n}\n\n/**\n * Returns true if currently selected company (agenda) is registered tax payer\n * or undefined if given date is not valid\n * By default checks for today. Pass another date to check for different date.\n * @param context\n * @param date today by default\n */\nexport function isVatRegisteredCompany(context: IAppContext, date = getUtcDate()): boolean {\n if (!DateType.isValid(date)) {\n // if date is not valid date, we return undefined and caller\n // should handle the undefined state according to the situation\n return undefined;\n }\n return getCompanyVatStatusForDate(context.getCompany(), date) === VatStatusCode.VATRegistered;\n}\n\n/** Some functionalities have to always be available, if the company was at least once VatRegistered.\n * Identified person usually means that the vat functionality should be shown as well. */\nexport const hasEverBeenVatRegisteredCompany = (context: IAppContext, ignoreIdentifiedPerson?: boolean): boolean => {\n const company = context.getCompany();\n\n if (!company) {\n return false;\n }\n\n const today = getUtcDayjs();\n\n return getCompanyVatStatusesSorted(company)\n .filter(status => getUtcDayjs(status.DateValidFrom).isSameOrBefore(today))\n .some(status => status.VatStatusCode === VatStatusCode.VATRegistered || (!ignoreIdentifiedPerson && status.VatStatusCode === VatStatusCode.IdentifiedPerson));\n};\n\nexport function isIdentifiedPersonCompany(context: IAppContext, date = getUtcDate()): boolean {\n if (!DateType.isValid(date)) {\n // if date is not valid date, we return undefined and caller\n // should handle the undefined state according to the situation\n return undefined;\n }\n return getCompanyVatStatusForDate(context.getCompany(), date) === VatStatusCode.IdentifiedPerson;\n}\n\nexport function isDemoTenant(context: IAppContext): boolean {\n const data = context.getData();\n return !!data.tenant?.IsDemo;\n}\n\nexport function getCompanySelectorTitleKey(context: IAppContext): string {\n const isDemo = isDemoTenant(context);\n return isDemo ? \"DemoTitle\" : \"Title\";\n}\n\nexport function isOnOrganizationLevel(args: IGetValueArgs): boolean {\n const { context } = args;\n return context.getAppMode() === AppMode.OrganizationSettings;\n}","import { ITableTileData } from \"@components/dashboard\";\nimport { getTableDrillDownLink, IGetDrillDownParams } from \"@components/drillDown/DrillDown.utils\";\nimport { StatusWarnIcon, StatusYesIcon } from \"@components/icon\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { IGetValueArgs } from \"@components/smart/FieldInfo\";\nimport { TFilterDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { ISmartODataTableAPI } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport {\n fetchValueHelperData,\n IFetchValueHelperItemsOptions\n} from \"@components/smart/smartValueHelper/ValueHelper.utils\";\nimport { ICellValueObject, IColumn, IRow } from \"@components/table\";\nimport {\n getDocumentTypeCodeFromEntityType,\n getEntitySetByDocumentType,\n getRouteByEntityType\n} from \"@odata/EntityTypes\";\nimport {\n DocumentDraftEntity,\n DocumentEntity,\n EntitySetName,\n EntityTypeName,\n IDocumentEntity,\n IFiscalYearEntity,\n IPaymentDocumentEntity,\n PaymentDocumentDraftEntity,\n PaymentDocumentEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { IBatchResult, OData } from \"@odata/OData\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { getDocumentNameTableCell } from \"@pages/documents/Document.utils\";\nimport { isDraftViewCallback } from \"@pages/documents/DocumentCommonDefs\";\nimport { getEnumBuildFilterMethod } from \"@pages/documents/DocumentDef\";\nimport { CellContentStyled } from \"@pages/fiscalYearClose/FiscalYearClose.styles\";\nimport { isCashBasisAccountingCompany, isVatRegisteredCompany } from \"@utils/CompanyUtils\";\nimport i18next from \"i18next\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { FieldType, IconSize, QueryParam, TableViewMode, TextAlign, ValueType } from \"../enums\";\nimport { TableStorage } from \"../model/TableStorage\";\nimport BindingContext, { createPath, IEntity } from \"../odata/BindingContext\";\nimport { getQueryParameters } from \"../routes/Routes.utils\";\nimport { isNotDefined } from \"./general\";\nimport { getOneFetch } from \"./oneFetch\";\n\nexport enum DraftFilterItemKeys {\n UnsavedChanges = \"UnsavedChanges\",\n SavedDocuments = \"SavedDocuments\"\n}\n\nexport interface ICopyEntityArgs {\n copyDataToNewDocument?: boolean;\n includeAttachments?: boolean;\n includeDocumentLinks?: boolean;\n excludeProps?: string[];\n entity?: IEntity;\n skipInvalidProps?: boolean;\n}\n\nexport const draftFilterLocalPath = BindingContext.localContext(\"DocumentDraft\");\n\nexport type IEntityWithDraft = IDocumentEntity | IPaymentDocumentEntity;\n\n/**\n * returns custom filter for filtering documents with attached draft (or without them)\n */\nexport function getFilterForDocumentDrafts(isPaymentDocument = false): Record {\n const isEnum = true;\n const oneFetch = getOneFetch();\n\n return {\n [draftFilterLocalPath]: {\n isValueHelp: false,\n valueType: ValueType.String,\n label: i18next.t(\"Document:General.WorkInProgress\"),\n type: FieldType.MultiSelect,\n // doesn't work for drafts\n isDisabled: isDraftViewCallback,\n fieldSettings: {\n isEnum,\n initialItems: [{\n label: i18next.t(\"Document:General.UnsavedChanges\"),\n id: DraftFilterItemKeys.UnsavedChanges\n }, {\n label: i18next.t(\"Document:General.Saved\"),\n id: DraftFilterItemKeys.SavedDocuments\n }],\n cacheFetchedItemsInFieldInfo: false,\n itemsFactory: async (args: IGetValueArgs): Promise => {\n const { storage, bindingContext } = args;\n const fieldInfo = cloneDeep(storage.getInfo(bindingContext));\n // ANY boolean field, which is not nullable. Response will be grouped by that field,\n // so we can easily determine from the results, if there is or isn't relation to document draft\n fieldInfo.filterName = isPaymentDocument ? [createPath(PaymentDocumentEntity.PaymentDocumentDraft, PaymentDocumentDraftEntity.DocumentTypeCode)]\n : [createPath(DocumentEntity.DocumentDraft, DocumentDraftEntity.CalculateVat)];\n\n const opts: IFetchValueHelperItemsOptions = {\n storage: storage as TableStorage,\n bindingContext, fieldInfo,\n isEnum\n };\n const data = await fetchValueHelperData(opts, oneFetch);\n // prepare uniq items\n let hasDraft = false, hasSavedDoc = false;\n data.forEach((doc: (IDocumentEntity | IPaymentDocumentEntity)) => {\n const conditionProp = isPaymentDocument ? (doc as IPaymentDocumentEntity).PaymentDocumentDraft.DocumentTypeCode : (doc as IDocumentEntity).DocumentDraft.CalculateVat;\n if (isNotDefined(conditionProp)) {\n hasSavedDoc = true;\n } else {\n // CalculateVat is true or false => means there is draft attached\n hasDraft = true;\n }\n });\n\n return fieldInfo.fieldSettings.initialItems.filter(item =>\n (item.id === DraftFilterItemKeys.SavedDocuments && hasSavedDoc) ||\n (item.id === DraftFilterItemKeys.UnsavedChanges && hasDraft)\n );\n },\n itemsForRender(items: ISelectItem[]): ISelectItem[] {\n // little hack, so getFilterBarItemRenderValue from FilterBar.utils.ts don't treat this as enum\n // and uses actual items as values to render read only data.\n return items;\n }\n },\n filter: {\n buildFilter: getEnumBuildFilterMethod((value: DraftFilterItemKeys[], negate = false) => {\n if (!value?.length) {\n return null;\n }\n const filters = value.map(val => {\n const operator = val === DraftFilterItemKeys.SavedDocuments ? \"eq\" : \"ne\";\n return `${isPaymentDocument ? PaymentDocumentEntity.PaymentDocumentDraft : DocumentEntity.DocumentDraft} ${operator} null`;\n });\n const query = filters.join(\" OR \");\n return negate ? `not(${query})` : query;\n }),\n groupByProperties: isPaymentDocument ? [createPath(PaymentDocumentEntity.PaymentDocumentDraft, PaymentDocumentDraftEntity.DocumentTypeCode)]\n : [createPath(DocumentEntity.DocumentDraft, DocumentDraftEntity.CalculateVat)]\n }\n }\n };\n}\n\nexport const setTableViewMode = (storage: TableStorage, isInitial?: boolean): boolean => {\n const tableViewMode = (isInitial && getQueryParameters()[QueryParam.DraftId]) || getQueryParameters()[QueryParam.Drafts] ? TableViewMode.Draft : TableViewMode.Saved;\n\n if (storage.data.tableViewMode !== tableViewMode) {\n storage.data.tableViewMode = tableViewMode;\n storage.refresh();\n\n return true;\n }\n\n return false;\n};\n\nexport const isBasicDraftFilter = \"Document/Id eq null AND TemplateForRecurringTask eq null\";\n\n\n/**\n * Fetch info about unfinished documents and their drafts\n */\ninterface IGetUnfinishedDocumentArgs {\n addDocumentIcon?: boolean;\n hideStatusIcon?: boolean;\n showEmptyLines?: boolean;\n}\n\ninterface IUnfinishedDocumentCount {\n Document: number;\n Draft: number;\n}\n\nexport type IUnfinishedDocumentsCounts = Partial>;\n\nexport async function fetchUnfinishedDocumentsCounts(oData: OData, types: EntityTypeName[], fiscalYear?: IFiscalYearEntity, context?: IAppContext): Promise {\n const ret: IUnfinishedDocumentsCounts = {};\n const docFilters: string[] = [\"DocumentDraft ne null\"];\n let draftDateFilter = \"\"; // draft doesn't have saved FY navigation\n if (fiscalYear?.Id) {\n const fyEndDate = transformToODataString(fiscalYear.DateEnd, ValueType.Date);\n const fyStartDate = transformToODataString(fiscalYear.DateStart, ValueType.Date);\n const dateProp = isCashBasisAccountingCompany(context) ? DocumentDraftEntity.DateCbaDocument : DocumentDraftEntity.DateAccountingTransaction;\n draftDateFilter = `${dateProp} le ${fyEndDate} AND ${dateProp} ge ${fyStartDate} AND `;\n docFilters.push(`FiscalYear/Id eq ${fiscalYear.Id}`);\n }\n const batch = oData.batch();\n\n types.forEach((type) => {\n const documentType = getDocumentTypeCodeFromEntityType(type);\n const entitySet = getEntitySetByDocumentType(documentType);\n\n batch.getEntitySetWrapper(entitySet).query()\n .filter(docFilters.join(\" AND \")).count().top(0);\n batch.getEntitySetWrapper(EntitySetName.DocumentDrafts).query()\n .filter(`${draftDateFilter}${isBasicDraftFilter} AND DocumentTypeCode eq '${documentType}'`).count().top(0);\n });\n\n if (!batch.isEmpty()) {\n const results = await batch.execute() as IBatchResult[];\n\n types.forEach((type, idx) => {\n ret[type] = {\n Document: results?.[2 * idx]?.body?._metadata?.count ?? 0,\n Draft: results?.[2 * idx + 1]?.body?._metadata?.count ?? 0\n };\n });\n }\n\n return ret;\n}\n\nexport function getUnfinishedDocumentsTableData(context: IAppContext, sortedEntityTypes: EntityTypeName[], counts: IUnfinishedDocumentsCounts, args?: IGetUnfinishedDocumentArgs): ITableTileData {\n const columns: IColumn[] = [\n { id: \"docType\", label: i18next.t(\"FiscalYearClose:PayableReceivable.DocType\"), textAlign: TextAlign.Left },\n {\n id: \"unsaved\",\n label: i18next.t(\"FiscalYearClose:UnsavedChanges\"),\n textAlign: TextAlign.Right,\n stretchContent: true\n },\n { id: \"drafts\", label: i18next.t(\"FiscalYearClose:Drafts\"), textAlign: TextAlign.Right, stretchContent: true }\n ];\n const rows: IRow[] = [];\n const _isVatRegistered = isVatRegisteredCompany(context);\n\n const _addRow = (entityType: EntityTypeName, route: string, count: number, countDrafts: number) => {\n if (args?.showEmptyLines || count || countDrafts) {\n rows.push({\n id: rows.length + 1,\n values: {\n docType: getDocumentNameTableCell(entityType, {\n addIcon: args?.addDocumentIcon,\n addDDOPPSuffix: _isVatRegistered\n }),\n unsaved: countTableCell(count, {\n route,\n context,\n filters: {\n [draftFilterLocalPath]: [DraftFilterItemKeys.UnsavedChanges]\n }\n }, args?.hideStatusIcon),\n drafts: countTableCell(countDrafts, {\n route,\n context,\n customQueryString: \"drafts=true\"\n }, args?.hideStatusIcon)\n }\n });\n }\n };\n\n sortedEntityTypes.forEach(entityTypeName => {\n _addRow(entityTypeName, getRouteByEntityType(entityTypeName), counts[entityTypeName].Document, counts[entityTypeName].Draft);\n });\n\n return {\n rows,\n columns\n };\n}\n\nexport const countTableCell = (count: number | string, args: IGetDrillDownParams, hideIcon?: boolean): ICellValueObject => {\n let countValue = count;\n if (typeof count === \"string\") {\n countValue = parseFloat(count);\n }\n const hasValue = (countValue as number) > 0;\n const Icon = hasValue ? StatusWarnIcon : StatusYesIcon;\n\n return {\n tooltip: count?.toString(),\n value: \n {!hideIcon && }\n {/*ensure correct position even without icon*/}\n {hideIcon &&
    }\n {hasValue ? getTableDrillDownLink(count?.toString(), args).value : count}\n \n };\n};","import { IColumn, IRow } from \"@components/table\";\nimport { WorkBook } from \"xlsx\";\nimport { MimeType } from \"../enums\";\nimport { TRecordAny } from \"../global.types\";\nimport NumberType from \"../types/Number\";\n\nexport enum ExportType {\n CSV = \"CSV\",\n XLSX = \"XLSX\"\n}\n\nenum SheetJsDataType {\n String = \"s\",\n Number = \"n\",\n Date = \"d\",\n Boolean = \"b\",\n Error = \"e\",\n Stub = \"z\"\n}\n\nexport interface ITableExport {\n tableId: string;\n rows: IRow[];\n columns: IColumn[];\n type?: ExportType;\n}\n\nexport interface IExport {\n columns: IColumn[];\n rows: TRecordAny[];\n tableName: string;\n type?: ExportType;\n}\n\nexport default class ExcelExport {\n static UTF8_BOM = \"\\uFEFF\";\n static DEFAULT_FILE_NAME = \"export\";\n static META_COL_ROW_ID = \"@isMetaColRow@\";\n\n static getXLSX = async () => {\n const { utils, write } = await import(\"xlsx\");\n return { utils, write };\n };\n\n static async toWorkbook(args: IExport) {\n const XLSX = await ExcelExport.getXLSX();\n const workBook = XLSX.utils.book_new();\n // first add column labels\n const columnRow = [args.columns.map(column => column.label)];\n const rows = args.rows.map(row => args.columns.map(column => row[column.id]));\n const metaColRow: string[][] = [];\n\n // @ts-ignore\n if (args.rows?.[0]?.[ExcelExport.META_COL_ROW_ID]) {\n metaColRow.push(rows.shift());\n }\n\n const workSheet = XLSX.utils.aoa_to_sheet(\n [...metaColRow, ...columnRow, ...rows]\n , {\n cellDates: true,\n dateNF: \"YYYY-MM-DD\"\n }\n );\n\n XLSX.utils.book_append_sheet(workBook, workSheet, \"Data\");\n\n return workBook;\n }\n\n static async workbookToCsv(workBook: WorkBook, withoutBom?: boolean) {\n const XLSX = await ExcelExport.getXLSX();\n // for CSV we need to format numbers to correct localized representation (e.g. 0,1 for cz-cs instead of 0.1)\n // the library sadly doesn't provide this\n const workSheet = workBook.Sheets[workBook.SheetNames[0]];\n // !ref access full range of the workSheet\n const range = XLSX.utils.decode_range(workSheet[\"!ref\"]);\n\n for (let R = range.s.r; R <= range.e.r; ++R) {\n for (let C = range.s.c; C <= range.e.c; ++C) {\n const cell = workSheet[XLSX.utils.encode_cell({ r: R, c: C })];\n\n // cell.t = type\n // cell.v = value\n // cell.w = formatted value\n\n switch (cell?.t) {\n case SheetJsDataType.Number:\n // cell.w is the formatted representation of the cell\n cell.w = NumberType.format(cell.v, { useGrouping: false });\n break;\n default:\n break;\n }\n }\n }\n\n let result = XLSX.utils.sheet_to_csv(workBook.Sheets[workBook.SheetNames[0]], {\n FS: \";\" // Field Separator\n });\n\n if (!withoutBom) {\n result = ExcelExport.UTF8_BOM + result;\n }\n\n return result;\n }\n\n static async workbookToXlsx(workBook: WorkBook) {\n const XLSX = await ExcelExport.getXLSX();\n return XLSX.write(workBook, { bookType: \"xlsx\", type: \"array\" });\n }\n\n static async tableToWorkbook(args: ITableExport) {\n const cleanRows = args.rows.map(row => row.values);\n\n return await ExcelExport.toWorkbook({\n ...args,\n tableName: args.tableId,\n rows: cleanRows\n });\n }\n\n static async tableToCsv(args: ITableExport, withoutBom?: boolean) {\n const workBook = await ExcelExport.tableToWorkbook(args);\n\n return await ExcelExport.workbookToCsv(workBook, withoutBom);\n }\n\n static async exportTableToCsv(args: ITableExport) {\n const csv = await ExcelExport.tableToCsv(args);\n return new File([csv], `${args.tableId || ExcelExport.DEFAULT_FILE_NAME}.csv`, { type: MimeType.CSV });\n }\n\n static async exportTableToXlsx(args: ITableExport) {\n const workBook = await ExcelExport.tableToWorkbook(args);\n const arrayBuffer = await ExcelExport.workbookToXlsx(workBook);\n return new File([arrayBuffer], `${args.tableId || ExcelExport.DEFAULT_FILE_NAME}.xlsx`, { type: MimeType.XLSX });\n }\n\n static async export(args: IExport) {\n let extension, mimeType, convertFn;\n\n switch (args.type) {\n case ExportType.CSV:\n extension = \"csv\";\n mimeType = MimeType.CSV;\n convertFn = ExcelExport.workbookToCsv;\n break;\n case ExportType.XLSX:\n default:\n extension = \"xlsx\";\n mimeType = MimeType.XLSX;\n convertFn = ExcelExport.workbookToXlsx;\n break;\n }\n\n const workBook = await ExcelExport.toWorkbook(args);\n const data = await convertFn(workBook);\n\n return new File([data], `${args.tableName || ExcelExport.DEFAULT_FILE_NAME}.${extension}`, { type: mimeType });\n }\n}","import { FILES_API_URL } from \"../constants\";\nimport { roundToDecimalPlaces } from \"./general\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { parseError } from \"@odata/ODataParser\";\nimport { saveAs } from \"file-saver\";\nimport { getFileNameFromResponseHeaders } from \"@components/fileUploader/File.utils\";\n\nimport { ODataError } from \"@odata/Data.types\";\n\nexport interface IFileProgress {\n /** Size of the file */\n total: number;\n /** Size of the currently downloaded/uploaded part */\n loaded: number;\n percent: number;\n finished: boolean;\n name?: string;\n}\n\nexport interface IFileDownload {\n // custom endpoint\n url?: string;\n progressCallback?: TFileProgressEvent;\n fileName?: string;\n}\n\nexport interface IFileUpload {\n // custom endpoint\n url?: string;\n file: File,\n name?: string;\n progressCallback?: TFileProgressEvent\n}\n\ntype TFileProgressEvent = (event: IFileProgress) => void;\n\nexport default class FileStorage {\n /** Downloads the file and returns it as File object. Can be used to create custom downloader with progress tracker. */\n static async get(id?: number, args: IFileDownload = {}): Promise {\n let url = args?.url ?? FILES_API_URL;\n\n if (id) {\n url += `/${id}`;\n }\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Error while fetching a file: ${response.status}, ${response.statusText}`);\n }\n\n const fileName = getFileNameFromResponseHeaders(response.headers);\n const type = response.headers.get(\"Content-Type\");\n const reader = response.body.getReader();\n const totalSize = +response.headers.get(\"Content-Length\");\n\n let receivedLength = 0; // received that many bytes at the moment\n const chunks = []; // array of received binary chunks (comprises the body)\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n break;\n }\n\n chunks.push(value);\n receivedLength += value.length;\n\n const percentComplete = (receivedLength / totalSize) * 100;\n\n if (args.progressCallback) {\n args.progressCallback({\n total: totalSize,\n loaded: receivedLength,\n percent: roundToDecimalPlaces(2, percentComplete),\n finished: totalSize === receivedLength\n });\n }\n }\n\n return new File(chunks, args.fileName ?? fileName, { type });\n }\n\n /** Opens saveAs dialog for the file, browser will handle the download. */\n static download(id: number) {\n saveFileFromUrl(`${FILES_API_URL}/${id}`);\n }\n\n static async upload(args: IFileUpload): Promise {\n // use XMLHttpRequest instead of fetch to provide progress event\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n const fileName = encodeURIComponent(args.name ?? args.file.name);\n\n request.open(\"POST\", args.url ?? FILES_API_URL);\n request.setRequestHeader(\"Content-Disposition\", `form-data;filename=\"${fileName}\"`);\n\n if (args.file.type) {\n request.setRequestHeader(\"Content-Type\", args.file.type);\n }\n\n if (args.progressCallback) {\n request.upload.onprogress = (e) => {\n const percentComplete = (e.loaded / e.total) * 100;\n\n args.progressCallback({\n name: fileName,\n total: e.total,\n loaded: e.loaded,\n percent: roundToDecimalPlaces(2, percentComplete),\n finished: e.total === e.loaded\n });\n };\n }\n\n request.onload = (e) => {\n if (request.status < 200 || request.status >= 300) {\n try {\n reject(parseError(JSON.parse(request.responseText)));\n } catch (e) {\n reject(new Error(`Error while uploading a file: ${request.status}, ${request.statusText}`));\n }\n }\n\n resolve(JSON.parse(request.response));\n };\n\n request.onerror = (event) => {\n reject(new Error(`Uknown error while uploading a file`));\n };\n\n request.send(args.file);\n });\n }\n\n static async delete(id: number): Promise {\n return fetch(`${FILES_API_URL}/${id}`, {\n method: \"DELETE\"\n });\n }\n}\n\nexport const getFileStorageUploadErrorMessage = (error: ODataError | Error): string => {\n // error thrown from FileStorage.upload can be either oDataError or default Error (with message) when there\n // is complete unknown BE error thrown\n return (error as ODataError)._validationMessages?.[0]?.message ?? (error as ODataError)._message ?? (error as Error).message;\n};\n\n/**\n * Saves file from url to user's computer.\n **/\nexport const saveFileFromUrl = (url: string, name?: string): void => {\n // keep using the saveAs library, because if we use window.location.assign instead,\n // cypress stucks on waiting for page load event, which never happens\n console.info(\"Downloading file from url:\", url, name ? ` with name: ${name}` : \"\");\n saveAs(url, name);\n};","import { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { IReportColumnDef } from \"@components/smart/smartTable\";\nimport { ITableVariant } from \"@components/variantSelector/VariantOdata\";\n\nimport { TRecordAny, TRecordType, TRecordValue } from \"../global.types\";\n\nexport const LOCAL_SETTINGS_KEY = \"local_settings\";\n\nexport interface ICustomizationVariant {\n id: string;\n title: string;\n groups: IFormGroupDef[];\n}\n\nexport interface ISplitPageSettings {\n isCollapsed?: boolean;\n width?: number;\n}\n\nexport interface ILocalSettings {\n filters?: TRecordValue;\n selectedTab?: string;\n reportColumns?: IReportColumnDef[];\n customData?: TRecordAny;\n formVariant?: IFormGroupDef[];\n tableVariant?: ITableVariant;\n splitPageSettings?: ISplitPageSettings;\n openedRowsIds?: Record;\n isFirstRenderAfterLogin?: boolean;\n}\n\ninterface ILocalSettingsObject {\n get: (id: string) => Partial;\n set: (id: string, settings: (Pick | T | null), forceSync?: boolean) => void;\n remove: (id: string, path: keyof T) => void;\n clear: () => void;\n sync: () => void;\n STORAGE_KEY: string;\n}\n\nexport class LocalSettingsManager {\n static settings: ILocalSettingsObject[] = [];\n\n static clear(): void {\n LocalSettingsManager.settings.forEach(settings => {\n // keep time travel and other possible devel settings\n if (settings.STORAGE_KEY !== DEVEL_SETTINGS_KEY) {\n settings.clear();\n }\n });\n }\n\n static register(settings: ILocalSettingsObject): void {\n LocalSettingsManager.settings.push(settings);\n }\n}\n\nexport function LocalSettingsFactory(KEY: string): ILocalSettingsObject {\n\n let settingsCache: TRecordType;\n\n const _getSettings = (): TRecordType => {\n if (settingsCache) {\n return settingsCache;\n }\n\n const settingsString = localStorage.getItem(KEY);\n\n if (settingsString) {\n try {\n settingsCache = JSON.parse(settingsString);\n } catch (e) {\n settingsCache = {};\n }\n } else {\n settingsCache = {};\n }\n\n return settingsCache;\n };\n\n const get = (id: string): Partial => {\n return _getSettings()[id] ?? {};\n };\n\n const remove = (id: string, path: keyof Type) => {\n const allSettings = _getSettings();\n delete allSettings[id]?.[path];\n sync();\n };\n\n const set = (id: string, settings: (Pick | Type | null), forceSync?: boolean) => {\n const allSettings = _getSettings();\n\n allSettings[id] = {\n ...allSettings[id],\n ...settings\n };\n\n if (forceSync) {\n sync();\n }\n\n // todo remove when resolved problem with cypress clear storage\n sync();\n };\n\n /** Removes all stored settings from localStorage */\n const clear = () => {\n settingsCache = null;\n localStorage.removeItem(KEY);\n };\n\n /** Update localstorage with current settings */\n const sync = () => {\n if (settingsCache) {\n localStorage.setItem(KEY, JSON.stringify(settingsCache));\n }\n };\n\n /** Automatically sync settings into localStorage before page change/close */\n window.addEventListener(\"beforeunload\", (e: BeforeUnloadEvent) => {\n // causes problem with cypress\n // cypress clears localStorage before each test\n // BUT the beforeEach call is called BEFORE 'beforeunload' event meaning the storage is cleared then again synced\n // sync();\n });\n\n // If there is a change outside of this window, clear the cache - e.g. setSystemToday in tests, but might also have\n // impact in real app used in different tabs\n window.addEventListener(\"storage\", ({ key }) => {\n if (key === KEY) {\n settingsCache = null;\n }\n });\n\n const settings = { get, set, remove, clear, sync, STORAGE_KEY: KEY };\n LocalSettingsManager.register(settings);\n return settings;\n}\n\nconst LocalSettings = LocalSettingsFactory(LOCAL_SETTINGS_KEY);\n\nexport default LocalSettings;\n\nexport const DEVEL_SETTINGS_KEY = \"devel\";\nexport const DevelLocalSettings = LocalSettingsFactory<{\n timeTravelDate?: string;\n}>(DEVEL_SETTINGS_KEY);","import { GrowthNegativeIcon, GrowthPositiveIcon } from \"@components/icon\";\nimport { fetchAndSetItemsByInfo } from \"@components/smart/smartSelect/SmartSelectAPI\";\nimport { TEntityKey } from \"@evala/odata-metadata/src\";\nimport { getNestedValue, getNewItemsMaxId, setNestedValue } from \"@odata/Data.utils\";\nimport { getEntitySetByDocumentType } from \"@odata/EntityTypes\";\nimport {\n AccountAssignmentEntity,\n DocumentAccountAssignmentSelectionEntity,\n DocumentEntity,\n EntityTypeName,\n IBankTransactionEntity, IDocumentEntity,\n IPaymentDocumentItemEntity,\n ISplitAccountAssignmentEntity,\n PaymentDocumentEntity,\n PaymentDocumentItemAccountAssignmentEntity,\n PaymentDocumentItemAccountAssignmentSelectionEntity,\n PaymentDocumentItemEntity,\n SelectionEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport {\n BankTransactionTypeCode,\n DocumentTypeCode,\n PaymentDocumentItemTypeCode,\n SelectionCode\n} from \"@odata/GeneratedEnums\";\nimport { loadAccountsBasedOnDate } from \"@pages/accountAssignment/AccountAssignment.utils\";\nimport { ExchangeRateDiffLabel, GainWrapper, IconWrapper } from \"@pages/banks/bankTransactions/BankTransactions.styles\";\nimport { getTransactionTypeFromEntity } from \"@pages/banks/bankTransactions/BankTransactions.utils\";\nimport { getBankItemDefaultDateAccountingTransaction } from \"@pages/banks/Pair.utils\";\nimport { IPaymentDocumentItemEntityExpanded } from \"@pages/banks/PairTableView\";\nimport {\n businessPartnerDependentFields,\n loadPartner,\n setSavedContactItems\n} from \"@pages/businessPartner/BusinessPartner.utils\";\nimport { isMatchingAccount, isReceived } from \"@pages/documents/Document.utils\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport {\n BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX,\n BANK_ACCOUNT_PROFORMA_ISSUED,\n BANK_ACCOUNT_PROFORMA_RECEIVED,\n CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX,\n CREATE_CLEARING_SPLIT_ITEMS\n} from \"../constants\";\nimport { IconSize, Status } from \"../enums\";\nimport { TRecordAny } from \"../global.types\";\nimport BindingContext, { createPath, IEntity } from \"../odata/BindingContext\";\nimport TestIds from \"../testIds\";\nimport { getUtcDate } from \"../types/Date\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport { getCompanyCurrency, isAccountAssignmentCompany, isCashBasisAccountingCompany } from \"./CompanyUtils\";\nimport { getDefaultPostParams } from \"./customFetch\";\nimport { isDefined, roundToDecimalPlaces } from \"./general\";\nimport { getInfoByPath } from \"@components/smart/FieldInfo\";\n\nexport const hasPairedChanged = (storage: FormStorage, changedData: TRecordAny): boolean => {\n const pairedOrigData = (storage.data.entity.Items || []).filter((link: IPaymentDocumentItemEntity) => {\n return link.LinkedDocument?.Id && link.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.Payment;\n });\n\n for (const item of pairedOrigData) {\n const id = item?.LinkedDocument?.Id;\n const origItem = changedData[id];\n if (!origItem || origItem.Amount !== item.Amount) {\n return true;\n }\n }\n\n return Object.keys(changedData)?.length !== pairedOrigData.length;\n};\n\ninterface IGetExpenseTitleOptions {\n width?: string;\n withMargin?: boolean;\n}\n\nexport const getExpenseTitle = (isLoss: boolean, options: IGetExpenseTitleOptions = {}): React.ReactNode => {\n const text = i18next.t(`Banks:Pairing.${isLoss ? \"ExchangeRateLoss\" : \"ExchangeRateGain\"}`);\n const Icon = isLoss ? GrowthNegativeIcon : GrowthPositiveIcon;\n\n return (\n \n \n \n {text}\n \n );\n};\n\ninterface ICreateGainArgs {\n gain?: IPaymentDocumentItemEntity;\n item: IPaymentDocumentItemEntity;\n splitItem?: ISplitAccountAssignmentEntity;\n amount: number;\n storage: FormStorage;\n newMax: number;\n date?: Date;\n}\n\nexport const createNewGain = async (args: ICreateGainArgs) => {\n const tValue = Math.abs(args.amount);\n\n const currency = args.storage.data.entity?.TransactionCurrency?.Code;\n if (args.gain) {\n args.gain.PaymentDocumentItemTypeCode = args.amount > 0 ? PaymentDocumentItemTypeCode.ExchangeGain : PaymentDocumentItemTypeCode.ExchangeLoss;\n args.gain.LinkedDocument = { ...args.item.LinkedDocument };\n } else {\n args.gain = BindingContext.createNewEntity(args.newMax ?? 1, {\n PaymentDocumentItemTypeCode: args.amount > 0 ? PaymentDocumentItemTypeCode.ExchangeGain : PaymentDocumentItemTypeCode.ExchangeLoss,\n DateAccountingTransaction: args.item.DateAccountingTransaction,\n LinkedDocument: { ...args.item.LinkedDocument }\n });\n }\n\n args.gain.Amount = tValue;\n args.gain.TransactionAmount = currency === getCompanyCurrency(args.storage.context) ? args.gain.Amount : 0;\n\n const isGain = args.gain.PaymentDocumentItemTypeCode === PaymentDocumentItemTypeCode.ExchangeGain;\n\n const accounts = await loadAccountsBasedOnDate(args.storage, args.date ?? getUtcDate());\n const type = getTransactionTypeFromEntity(args.storage);\n const isIncoming = type === BankTransactionTypeCode.IncomingPayment;\n const sourcePropName = isIncoming ? \"CreditAccount\" : \"DebitAccount\";\n\n const propName = isGain ? \"DebitAccount\" : \"CreditAccount\";\n const propName1 = isGain ? \"CreditAccount\" : \"DebitAccount\";\n const defVal = isGain ? \"663\" : \"563\";\n\n const defAcc = accounts.find((obj: TRecordAny) => isMatchingAccount(obj, { Number: defVal }, true));\n if (defAcc) {\n setNestedValue({\n Id: defAcc.Id,\n Number: defAcc.Number,\n Name: defAcc.Name\n }, `AccountAssignmentSelection/AccountAssignment/${propName1}`, args.gain);\n }\n\n const prefix = args.splitItem ? \"\" : \"AccountAssignmentSelection/AccountAssignment/\";\n const sourcePath = `${prefix}${sourcePropName}`;\n const acc = getNestedValue(sourcePath, args.splitItem ?? args.item);\n\n const path = `AccountAssignmentSelection/AccountAssignment/${propName}`;\n if (acc) {\n setNestedValue({\n Id: acc.Id,\n Name: acc.Name,\n Number: acc.Number\n }, path, args.gain);\n }\n\n setNestedValue(SelectionCode.Own, \"AccountAssignmentSelection/AccountAssignment/Id\", args.gain);\n setNestedValue(SelectionCode.Own, \"AccountAssignmentSelection/Selection/Code\", args.gain);\n\n const name = isGain ? i18next.t(\"Banks:Pairing.ExchangeGain\") : i18next.t(\"Banks:Pairing.ExchangeLoss\");\n setNestedValue(name, \"AccountAssignmentSelection/AccountAssignment/Name\", args.gain);\n\n return args.gain;\n};\n\nexport const loadCreditData = async (storage: FormStorage) => {\n const caInfo = getInfoByPath(storage, `Items/AccountAssignmentSelection/AccountAssignment/CreditAccount`),\n daInfo = getInfoByPath(storage, `Items/AccountAssignmentSelection/AccountAssignment/DebitAccount`);\n\n const cas = caInfo.fieldSettings.items;\n const das = daInfo.fieldSettings.items;\n\n const promises = [];\n\n if (!cas) {\n promises.push(fetchAndSetItemsByInfo(storage, caInfo));\n }\n\n if (!das) {\n promises.push(fetchAndSetItemsByInfo(storage, daInfo));\n }\n\n const [_cas, _das] = await Promise.all(promises);\n\n return {\n cas: cas || _cas || [],\n das: das || _das || []\n };\n};\n\nexport const getAccNumberFromPair = (pair: IPaymentDocumentItemEntityExpanded, isReceived: boolean) => {\n const accName = isReceived ? \"CreditAccount\" : \"DebitAccount\";\n return Number(getNestedValue(`AccountAssignmentSelection/AccountAssignment/${accName}/Number`, pair));\n};\n\n\nexport const getRoundedSplitSum = (item: IPaymentDocumentItemEntity, storage: FormStorage) => {\n const sum = item.SplitAccountAssignments?.reduce((accumulator: number, object: ISplitAccountAssignmentEntity) => {\n return accumulator + (object.TransactionAmount || 0);\n }, 0) || 0;\n\n const maximumFractionDigits = storage.data.entity.TransactionCurrency?.MinorUnit ?? 2;\n return roundToDecimalPlaces(maximumFractionDigits, sum);\n};\n\nenum DocumentItemsType {\n None,\n Single,\n Split\n}\n\ninterface ICreateSplitItemsAndAccountNumberArgs {\n documentType: DocumentTypeCode;\n key: number;\n storage: FormStorage;\n isReceived: boolean;\n transactionType: BankTransactionTypeCode;\n isTaxDocument: boolean;\n isBank: boolean;\n transactionDate: Date;\n pairedDoc: IPaymentDocumentItemEntityExpanded;\n maxId: number;\n}\n\nexport const getFixAccountNumber = (storage: FormStorage, isBank: boolean) => {\n const suffix = _getAccountSuffix(storage);\n const prefix = isBank ? BANK_ACCOUNT_BALANCE_SHEET_ACCOUNT_PREFIX : CASH_BOXES_BALANCE_SHEET_ACCOUNT_PREFIX;\n return `${prefix}${suffix}`;\n};\n\n\nexport const createOrUpdatePair = async (args: ICreateSplitItemsAndAccountNumberArgs) => {\n const _getCa = (item: IEntity) => {\n const selectionCode = item.AccountAssignmentSelection.SelectionCode;\n if (selectionCode === SelectionCode.Default) {\n return document.AccountAssignmentSelection?.AccountAssignment?.[loadAccName]?.Number;\n }\n\n if (selectionCode === SelectionCode.Own || selectionCode === SelectionCode.Copy) {\n return item.AccountAssignmentSelection?.AccountAssignment?.[loadAccName]?.Number;\n }\n };\n\n const _getDocItemsType = (document: IEntity) => {\n let type = DocumentItemsType.None;\n const items = document?.Items || [];\n\n for (const item of items) {\n const itemNumber = _getCa(item);\n if (assNumber !== itemNumber) {\n if (assNumber) {\n type = DocumentItemsType.Split;\n break;\n }\n\n type = DocumentItemsType.Single;\n }\n\n assNumber = itemNumber;\n }\n\n return type;\n };\n\n const _loadDoc = async (): Promise => {\n const entitySet = getEntitySetByDocumentType(args.documentType);\n const query = args.storage.oData.getEntitySetWrapper(entitySet)\n .query(args.key)\n .expand(DocumentEntity.AccountAssignmentSelection,\n q => q.expand(DocumentAccountAssignmentSelectionEntity.AccountAssignment, q => q.expand(loadAccName)))\n .expand(PaymentDocumentEntity.Items,\n q => q.expand(DocumentEntity.AccountAssignmentSelection,\n q => q.expand(DocumentAccountAssignmentSelectionEntity.AccountAssignment, q => q.expand(loadAccName)))\n );\n\n const result = await query.fetchData();\n return result?.value as IEntity;\n };\n\n const _manageSingleAccount = async () => {\n const accounts = await loadAccountsBasedOnDate(args.storage, args.transactionDate);\n const fixNumberAcc = getFixAccountNumber(args.storage, args.isBank);\n const fixAcc = accounts?.find(a => isMatchingAccount(a, { Number: fixNumberAcc }, true));\n const account = accounts?.find(a => isMatchingAccount(a, { Number: assNumber?.toString() }, true));\n\n if ((args.isReceived && fixAcc) || (!args.isReceived && account)) {\n const fixPath = createPath(PaymentDocumentItemEntity.AccountAssignmentSelection, PaymentDocumentItemAccountAssignmentSelectionEntity.AccountAssignment, fixAccName);\n const path = createPath(PaymentDocumentItemEntity.AccountAssignmentSelection, PaymentDocumentItemAccountAssignmentSelectionEntity.AccountAssignment, setAccName);\n\n if (fixAcc && account) {\n setNestedValue({\n Id: fixAcc.Id,\n Number: fixAcc.Number,\n Name: fixAcc.Name\n }, fixPath, pair);\n\n setNestedValue({\n Id: account.Id,\n Number: account.Number,\n Name: account.Name\n }, path, pair);\n\n pair.AccountAssignmentSelection.AccountAssignment.Name = args.transactionType === BankTransactionTypeCode.IncomingPayment ?\n args.storage.t(\"Banks:Pairing.PaymentIncoming\") : args.storage.t(\"Banks:Pairing.PaymentOutgoing\");\n\n pair.AccountAssignmentSelection.AccountAssignment.ShortName =\n `${pair.AccountAssignmentSelection.AccountAssignment.DebitAccount?.Number} / ${pair.AccountAssignmentSelection.AccountAssignment.CreditAccount?.Number}`;\n\n setNestedValue(SelectionCode.Own,\n createPath(PaymentDocumentItemEntity.AccountAssignmentSelection, PaymentDocumentItemAccountAssignmentSelectionEntity.AccountAssignment, AccountAssignmentEntity.Id), pair);\n setNestedValue(SelectionCode.Own,\n createPath(PaymentDocumentItemEntity.AccountAssignmentSelection, PaymentDocumentItemAccountAssignmentSelectionEntity.Selection, SelectionEntity.Code), pair);\n } else {\n setNestedValue(null, path, pair);\n setNestedValue(null, fixPath, pair);\n }\n }\n };\n\n const _manageSplitAccount = async () => {\n splitRequestData = {\n DocumentId: args.key,\n Amount: args.pairedDoc.Amount,\n TransactionAmount: args.pairedDoc.TransactionAmount,\n ClearedAmount: args.pairedDoc.ClearedAmount ?? args.pairedDoc.TransactionAmount,\n ClearingDate: args.transactionDate\n };\n\n setNestedValue(SelectionCode.Split, \"AccountAssignmentSelection/AccountAssignment/Id\", pair);\n setNestedValue(SelectionCode.Split, \"AccountAssignmentSelection/Selection/Code\", pair);\n };\n\n\n // !! LEGEND !!\n // debit/credit, MD/D\n // Incoming Payment => 221.../X where X can be both based on document AR, InvoiceReceived = Credit, InvoiceIssued = Debit\n // Outgoing payment => X/221.... where X is the same is in incoming payment\n\n const fixAccName = args.transactionType === BankTransactionTypeCode.IncomingPayment ? PaymentDocumentItemAccountAssignmentEntity.DebitAccount : PaymentDocumentItemAccountAssignmentEntity.CreditAccount;\n const setAccName = args.transactionType === BankTransactionTypeCode.IncomingPayment ? PaymentDocumentItemAccountAssignmentEntity.CreditAccount : PaymentDocumentItemAccountAssignmentEntity.DebitAccount;\n const loadAccName = args.isReceived ? PaymentDocumentItemAccountAssignmentEntity.CreditAccount : PaymentDocumentItemAccountAssignmentEntity.DebitAccount;\n\n const hasAccountAssignment = isAccountAssignmentCompany(args.storage.context);\n const isNew = !isDefined(args.pairedDoc?.Id) && !isDefined(args.pairedDoc?.[BindingContext.NEW_ENTITY_ID_PROP]);\n const pair = isNew ? BindingContext.createNewEntity(args.maxId, args.pairedDoc) : args.pairedDoc;\n const pairedDoc = args.pairedDoc;\n const isChanged = isNew || (pairedDoc.OrigData?.Amount !== pairedDoc.Amount || pairedDoc.OrigData?.ClearedAmount !== pairedDoc.ClearedAmount);\n\n let type = DocumentItemsType.None;\n\n let splitRequestData: IEntity;\n\n let assNumber = 0;\n let document: IEntity;\n\n // if it is not newly created pair we don't overwrite it, user may change it\n if (isChanged) {\n if (!args.isTaxDocument && (args.documentType === DocumentTypeCode.ProformaInvoiceIssued || args.documentType === DocumentTypeCode.ProformaInvoiceReceived)) {\n assNumber = args.documentType === DocumentTypeCode.ProformaInvoiceReceived ? BANK_ACCOUNT_PROFORMA_RECEIVED : BANK_ACCOUNT_PROFORMA_ISSUED;\n type = DocumentItemsType.Single;\n } else {\n document = await _loadDoc();\n type = _getDocItemsType(document);\n }\n\n // split account has to be calculated every time because it operates with number and they can be changed in dialog\n if (hasAccountAssignment) {\n switch (type) {\n case DocumentItemsType.Single:\n await _manageSingleAccount();\n break;\n\n case DocumentItemsType.Split:\n await _manageSplitAccount();\n break;\n }\n }\n }\n\n const scale = args.storage.data.entity.TransactionCurrency?.MinorUnit ?? 2;\n\n pair.PaymentDocumentItemTypeCode = PaymentDocumentItemTypeCode.Payment;\n pair.TransactionAmount = roundToDecimalPlaces(scale, pairedDoc.TransactionAmount);\n pair.Amount = roundToDecimalPlaces(scale, pairedDoc.Amount);\n pair.ClearedAmount = pairedDoc.ClearedAmount;\n pair.ExchangeRate = pairedDoc.ExchangeRate;\n pair.LinkedDocument.ExchangeRatePerUnit = pairedDoc.LinkedDocument.ExchangeRatePerUnit;\n if (hasAccountAssignment) {\n pair.DateAccountingTransaction = pairedDoc.DateAccountingTransaction ?? getUtcDate();\n }\n\n let gains: IPaymentDocumentItemEntity[];\n\n if (isChanged) {\n const exchangeGain = pairedDoc.ExchangeGain;\n const hasAssignment = !!pair.AccountAssignmentSelection?.AccountAssignment?.CreditAccount?.Id\n !!pair.AccountAssignmentSelection?.AccountAssignment?.DebitAccount?.Id;\n\n if (hasAssignment && type === DocumentItemsType.Single && exchangeGain && !isCashBasisAccountingCompany(args.storage.context)) {\n gains = [await createNewGain({\n item: pair,\n gain: pair.Gains?.[0],\n amount: exchangeGain,\n storage: args.storage,\n newMax: args.maxId + 1,\n date: pair?.DateAccountingTransaction ?? getBankItemDefaultDateAccountingTransaction(args.storage)\n })];\n }\n } else {\n gains = pairedDoc.Gains;\n }\n\n delete pair.ExchangeGain;\n delete pair.IsTaxDocument;\n delete pair.Gains;\n delete pair.OrigData;\n\n return { pair, gains, splitRequestData };\n};\n\nconst _getAccountSuffix = (storage: FormStorage) => {\n return storage.data.entity.BankStatement?.BankAccount?.BalanceSheetAccountNumberSuffix ?? storage.data.entity?.CashBox?.BalanceSheetAccountNumberSuffix;\n};\n\n\nconst getBusinessPartnerData = (items: IPaymentDocumentItemEntity[]) => {\n let bpId: number = undefined;\n for (const item of items) {\n const currentBpId = item?.LinkedDocument?.BusinessPartner?.BusinessPartner?.Id;\n if (currentBpId && currentBpId !== bpId) {\n if (bpId) {\n return {\n Id: undefined,\n isSet: true,\n };\n }\n\n bpId = currentBpId;\n }\n }\n\n return {\n Id: bpId,\n isSet: isDefined(bpId) ? true : false\n };\n};\n\nexport const correctBpForLinkedDocument = async (storage: FormStorage, entity: IBankTransactionEntity, items: IPaymentDocumentItemEntity[]) => {\n const bpData = getBusinessPartnerData(items);\n if (isDefined(bpData.Id)) {\n const bp = await loadPartner(bpData.Id.toString(), storage.oData);\n if (bp) {\n storage.processDependentField(businessPartnerDependentFields(), bp, storage.data.bindingContext);\n setSavedContactItems(storage, bp.Contacts);\n }\n } else {\n if (bpData.isSet) {\n entity.BusinessPartner = null;\n setSavedContactItems(storage, []);\n }\n }\n}\n\nexport const savePairChanges = async (storage: FormStorage, pairedDocs: Record, type: BankTransactionTypeCode) => {\n const entity = storage.data.entity as IBankTransactionEntity;\n\n if (!entity.Items) {\n entity.Items = [];\n }\n\n const entityType = storage.data.bindingContext?.getEntityType()?.getName?.();\n const isBank = entityType === EntityTypeName.BankTransaction;\n\n let maxNew = getNewItemsMaxId(entity.Items) + 1;\n let items: IPaymentDocumentItemEntityExpanded[] = [];\n\n if (isBank) {\n await correctBpForLinkedDocument(storage, entity, Object.values(pairedDocs) as IPaymentDocumentItemEntity[]);\n }\n\n const splitData: IEntity[] = [];\n\n const transactionDate = getBankItemDefaultDateAccountingTransaction(storage);\n\n for (const [key, link] of Object.entries(pairedDocs)) {\n if (link.Amount === 0) {\n delete pairedDocs[key];\n continue;\n }\n\n const documentType = link?.LinkedDocument.DocumentTypeCode as DocumentTypeCode;\n const _isReceived = isReceived(documentType as DocumentTypeCode);\n\n const isTaxDocument = link?.IsTaxDocument;\n\n const { pair, gains, splitRequestData } = (await createOrUpdatePair({\n documentType, storage, isReceived: _isReceived, isTaxDocument, isBank, transactionDate,\n maxId: maxNew++,\n transactionType: type,\n key: Number(key),\n pairedDoc: link\n }));\n\n if (splitRequestData) {\n splitData.push(splitRequestData);\n }\n\n items.push(pair);\n\n if (gains?.length > 0) {\n items = items.concat(gains);\n maxNew += gains.length;\n }\n }\n\n if (splitData.length > 0) {\n const url = `${CREATE_CLEARING_SPLIT_ITEMS}?CompanyId=${storage.context.getCompany().Id}`;\n const Payment = {\n AccountNumber: getFixAccountNumber(storage, isBank),\n PaymentDate: transactionDate,\n CurrencyCode: storage.context.getDefaultCurrency(),\n TransactionCurrencyCode: entity.TransactionCurrency?.Code,\n ExchangeRatePerUnit: entity.ExchangeRatePerUnit ?? 1,\n IsCredit: type === BankTransactionTypeCode.IncomingPayment,\n IsDebit: type === BankTransactionTypeCode.OutgoingPayment\n };\n\n const response = await fetch(url, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n Payment,\n ClearedDocuments: splitData\n })\n });\n\n const results = await response.json();\n for (const returnedItem of results) {\n const item = items.find(item => item.LinkedDocument.Id === returnedItem.DocumentId);\n let splitItems;\n\n if (returnedItem.SplitAccountAssignments?.length > 0) {\n let i = 0;\n splitItems = [];\n for (const split of returnedItem.SplitAccountAssignments) {\n splitItems.push({\n [BindingContext.NEW_ENTITY_ID_PROP]: `${BindingContext.NEW_ENTITY_ID_PROP} = ${i++}`,\n Amount: split.Amount,\n TransactionAmount: split.TransactionAmount,\n DebitAccount: {\n Name: split.DebitAccount.Name,\n Number: split.DebitAccount.Number,\n Id: split.DebitAccount.Id\n },\n CreditAccount: {\n Name: split.CreditAccount.Name,\n Number: split.CreditAccount.Number,\n Id: split.CreditAccount.Id\n },\n Description: split.Description\n });\n }\n }\n\n item.SplitAccountAssignments = splitItems;\n\n for (const ex of returnedItem.ExchangeRateDifferences) {\n items.push({\n [BindingContext.NEW_ENTITY_ID_PROP]: ++maxNew,\n Amount: ex.Amount,\n TransactionAmount: ex.TransactionAmount,\n DateAccountingTransaction: transactionDate,\n LinkedDocument: { ...item.LinkedDocument },\n PaymentDocumentItemTypeCode: ex.PaymentDocumentItemTypeCode,\n AccountAssignmentSelection: {\n AccountAssignment: {\n Id: ex.AccountAssignmentSelection.AccountAssignment.Id,\n Name: ex.AccountAssignmentSelection.AccountAssignment.Name,\n ShortName: ex.AccountAssignmentSelection.AccountAssignment.ShortName,\n CreditAccount: {\n Id: ex.AccountAssignmentSelection.AccountAssignment.CreditAccount.Id,\n Number: ex.AccountAssignmentSelection.AccountAssignment.CreditAccount.Number,\n Name: ex.AccountAssignmentSelection.AccountAssignment.CreditAccount.Name\n },\n DebitAccount: {\n Id: ex.AccountAssignmentSelection.AccountAssignment.DebitAccount.Id,\n Number: ex.AccountAssignmentSelection.AccountAssignment.DebitAccount.Number,\n Name: ex.AccountAssignmentSelection.AccountAssignment.DebitAccount.Name\n }\n },\n Selection: {\n Code: ex.AccountAssignmentSelection.Code\n }\n }\n });\n }\n }\n }\n\n const unpairedDocs = (storage.data.entity.Items || []).filter((link: IEntity) => {\n return !link.LinkedDocument?.Id;\n });\n\n const _setSplitError = (item: IPaymentDocumentItemEntity) => {\n const id = item.Id ?? `#id=${(item as TRecordAny)[BindingContext.NEW_ENTITY_ID_PROP]}`;\n const _path = `Items(${id})/AccountAssignmentSelection/AccountAssignment`;\n const bc = storage.data.bindingContext.navigate(_path);\n\n if (item.LinkedDocument?.Id && (\n !item.AccountAssignmentSelection?.Selection?.Code || (item.AccountAssignmentSelection?.Selection?.Code === SelectionCode.Split && !item.SplitAccountAssignments))) {\n storage.setError(bc, {\n message: i18next.t(\"Banks:Transactions.MissingSplit\")\n });\n }\n };\n\n const mergedItems = items.concat(unpairedDocs).map((item) => {\n _setSplitError(item);\n return item;\n });\n\n storage.data.entity.Items = mergedItems;\n storage.handleFirstChange();\n};","export interface RedirectType {\n Error: {\n Code: string;\n Message: string;\n RedirectUrl: string;\n Data: string;\n };\n}\n\nexport async function establishRedirect(response: Response): Promise {\n const redirectJson = await response.json() as RedirectType;\n if (redirectJson.Error.Code !== \"Redirect\") {\n throw new Error(\"Unexpected code from redirect status code: \" + redirectJson.Error.Code);\n }\n const establishSessionRespons = await fetch(redirectJson.Error.RedirectUrl + \"/api/auth/session/establishSession\", {\n method: \"POST\",\n body: redirectJson.Error.Data,\n mode: \"cors\",\n credentials: \"include\"\n });\n if (!establishSessionRespons.ok) {\n throw new Error(\"Session redirection failed.\");\n }\n return redirectJson.Error.RedirectUrl;\n}\n\nexport async function handleRedirectResponse(response: Response, inNewTab?: boolean): Promise {\n const redirectUrl = await establishRedirect(response);\n if (inNewTab) {\n window.open(redirectUrl, \"_blank\");\n } else {\n window.location.assign(redirectUrl);\n }\n}","import { REST_API_URL } from \"../constants\";\nimport { IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\n\nexport const ROSSUM_EXTRACT_URL = `${REST_API_URL}/Rossum`;\n// https://developers.rossum.ai/docs/document-import-specification\nconst eligibleExtensions = [\"pdf\", \"png\", \"jpeg\", \"jpg\", \"tiff\", \"xlsx\", \"xls\", \"docx\", \"doc\"];\n\nexport const isFileRossumEligible = (fileMetadata: IFileMetadataEntity, ignoreIsdoc?: boolean): boolean => {\n return (ignoreIsdoc || !fileMetadata.IsIsdocReadable) && fileMetadata.IsRossumReadable;\n};","import { DocumentAccountAssignmentEntity } from \"@odata/GeneratedEntityTypes\";\nimport { DocumentLinkTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n creditAndDebitAccount,\n getDocumentFilterByUsedAccountNumber\n} from \"@pages/accountAssignment/AccountAssignment.utils\";\n\nconst initialAccountBalancesNumbers = [\"701\", \"702\"];\n\nexport const getInitialBalancesAccountFilter = (): string => {\n const conditions = initialAccountBalancesNumbers.reduce((filters, account) => {\n filters.push(...(creditAndDebitAccount.map(type => getDocumentFilterByUsedAccountNumber(type, account))));\n return filters;\n }, []);\n\n return conditions.join(\" OR \");\n};\n\nexport const FUTURE_EXPENSES_ACCOUNT = \"383\";\nexport const FUTURE_REVENUES_ACCOUNT = \"385\";\n\nexport const ACCRUAL_ACCOUNT_ACTIVE = \"388\";\nexport const ACCRUAL_ACCOUNT_PASSIVE = \"389\";\n\nexport const CLOSING_ACCOUNTS_PREFIX = \"7\";\n\nexport const excludeInitialBalancesFilter = `not(${getInitialBalancesAccountFilter()})`;\nexport const getOpenAccrualFilter = (isOpen = true): string =>\n `DocumentLinks/${isOpen ? \"all\" : \"any\"}(link: link/TypeCode in ('${DocumentLinkTypeCode.EstimatedAccruedRevenue}', '${DocumentLinkTypeCode.EstimatedAccruedExpense}')${isOpen ? \" eq false\" : \"\"})`;\nexport const accruedRevenueFilter = getDocumentFilterByUsedAccountNumber(DocumentAccountAssignmentEntity.DebitAccount, ACCRUAL_ACCOUNT_ACTIVE);\nexport const accruedExpenseFilter = getDocumentFilterByUsedAccountNumber(DocumentAccountAssignmentEntity.CreditAccount, ACCRUAL_ACCOUNT_PASSIVE);\n","import { IAuthContext } from \"../contexts/authContext/AuthContext\";\nimport { TRecordString } from \"../global.types\";\nimport { isEvalaProduction } from \"../global.utils\";\nimport { ISessionData } from \"../login/state/sessionSlice\";\nimport { logger } from \"./log\";\n\nabstract class Analytics {\n readonly ID: string;\n\n async initialize(userId: string): Promise {\n throw new Error(\"Method 'initialize' must be implemented.\");\n }\n\n async sendEvent(event: string, data?: TRecordString): Promise {\n throw new Error(\"Method 'sendEvent' must be implemented.\");\n }\n\n enableTracking(): void {\n // @ts-ignore\n // window[\"ga-disable-\" + this.ID] = false;\n }\n\n /**\n * Maybe disables tracking\n * https://stackoverflow.com/a/26758245/3352544\n * */\n disableTracking(): void {\n // @ts-ignore\n // window[\"ga-disable-\" + this.ID] = true;\n }\n}\n\n\nclass ReactGA4Wrapper extends Analytics {\n readonly ID = \"G-JDMH610TNZ\";\n ReactGA4: typeof import(\"react-ga4\");\n\n async initialize(userId: string): Promise {\n // log registered user into Google Analytics,\n // lazy load the library so that it doesn't pollute app pointlessly\n if (!this.ReactGA4) {\n this.ReactGA4 = await import(\"react-ga4\");\n this.ReactGA4.default.initialize(this.ID, {\n gaOptions: {\n userId: userId\n }\n });\n this.disableTracking();\n }\n }\n\n async sendEvent(event: string): Promise {\n /** We only want to send one custom event to GA/GTM,\n * but once the script is loaded, it fires event everytime something happens on the page.\n * => try to disable it after we fire our custom event to prevent it from firing more of them.*/\n this.enableTracking();\n this.ReactGA4.default.event({\n category: event,\n action: event\n });\n this.disableTracking();\n }\n}\n\nclass ReactGTMWrapper extends Analytics {\n readonly ID = \"GTM-5TF563J\";\n TagManager: typeof import(\"react-gtm-module\");\n\n async initialize(): Promise {\n if (!this.TagManager) {\n this.TagManager = await import(\"react-gtm-module\");\n this.TagManager.initialize({\n gtmId: this.ID\n });\n // send consent to GTM\n this.gtag('consent', 'update', {\n 'ad_storage': 'granted',\n 'analytics_storage': 'granted',\n 'ad_user_data': 'granted',\n 'ad_personalization': 'granted'\n });\n this.gtag({\n event: \"update_consent\"\n });\n this.disableTracking();\n }\n }\n\n gtag(...args: unknown[]) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(...args);\n }\n\n async sendEvent(event: string, data?: TRecordString): Promise {\n this.enableTracking();\n this.TagManager.dataLayer({\n dataLayer: {\n event: event,\n ...data\n }\n });\n this.disableTracking();\n }\n}\n\nconst ReactGA4WrapperInstance = new ReactGA4Wrapper();\nconst ReactGTMWrapperInstance = new ReactGTMWrapper();\n\nexport const fireGAEvent = async (event: string, userId: string): Promise => {\n if (isEvalaProduction()) {\n // try catch, just to be safe\n try {\n await ReactGA4WrapperInstance.initialize(userId);\n ReactGA4WrapperInstance.sendEvent(event);\n } catch (e) {\n logger.warn(\"google analytics EVENT call failed\", e);\n }\n }\n};\n\ntype IGetSessionParams = { context: IAuthContext; sessionData?: never; UserGuid?: never; }\n | { context?: never; sessionData: ISessionData; UserGuid?: never; }\n | { UserGuid: string; context?: never; sessionData?: never };\n\nexport function getSessionGTMParams({ context, sessionData, UserGuid }: IGetSessionParams): TRecordString {\n const tenantId = sessionData?.TenantId ?? context?.tenantId;\n const userId = UserGuid ?? sessionData?.UserGuid ?? context?.userGuid;\n return { tenant_id: tenantId?.toString(), user_id: userId?.toString() };\n}\n\nexport const fireGTMEvent = async (event: string, data?: TRecordString): Promise => {\n if (isEvalaProduction()) {\n try {\n await ReactGTMWrapperInstance.initialize();\n ReactGTMWrapperInstance.sendEvent(event, data);\n } catch (e) {\n logger.warn(\"google analytics TAG call failed\", e);\n }\n }\n};\n\nexport const fireSklikEvent = async () => {\n if (isEvalaProduction()) {\n try {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = \"https://c.seznam.cz/js/rc.js\";\n script.async = true;\n\n script.onload = () => {\n // Update identities using provided email (or hashed email)\n // @ts-ignore\n window.sznIVA.IS.updateIdentities({\n eid: null\n });\n\n // Send conversion hit\n // @ts-ignore\n window.rc.conversionHit({\n id: 100225724, // Sklik conversion ID\n value: null, // Order value in CZK\n consent: null // Consent: 0 (no consent) or 1 (consent)\n });\n };\n\n script.onerror = () => {\n logger.warn(\"Failed to load sklik script.\");\n };\n\n document.head.appendChild(script);\n } catch (e) {\n logger.warn(\"sklik call failed\");\n }\n }\n};","function animationFrameThrottle(callback) {\n let animationBusy = false;\n\n return (...args) => {\n if (!animationBusy) {\n animationBusy = true;\n\n requestAnimationFrame(() => {\n callback.apply(this, args);\n animationBusy = false;\n });\n }\n };\n}\n\nexport default animationFrameThrottle;","import { BackendErrorCode } from \"../enums\";\nimport i18n from \"../i18n\";\nimport { logger } from \"./log\";\n\nimport { ODataError } from \"@odata/Data.types\";\n\nlet companyId: number;\n\nexport function isNetworkError(error: unknown): boolean {\n if (error instanceof TypeError) {\n if (error.message.includes('Failed to fetch') ||\n error.message.includes('NetworkError') ||\n error.message.includes('Fetch event timeout') ||\n error.message.includes('The network connection was lost')) {\n return true;\n }\n }\n return false;\n}\n\n/** Injects CompanyId param to every request*/\nconst customFetch = (url: RequestInfo, options?: RequestInit): Promise => {\n let newUrl = typeof url === \"string\" ? url : url.url;\n\n if (companyId) {\n const [baseUrl, search] = newUrl.split(\"?\");\n const searchParams = new URLSearchParams(search);\n\n if (!searchParams.has(\"CompanyId\")) {\n searchParams.set(\"CompanyId\", companyId.toString());\n }\n\n newUrl = `${baseUrl}?${searchParams.toString()}`;\n }\n\n try {\n return fetch(newUrl, {\n ...options\n });\n } catch (e) {\n if (isNetworkError(e)) {\n // todo: may be some common handling + retry logic\n throw new ODataError(BackendErrorCode.NoConnection, i18n.t(\"Common:Error.NoConnection\"));\n }\n // rethrow if unknown error\n logger.error(\"Unknown fetch error\", e);\n throw e;\n }\n};\n\ncustomFetch.setCompanyId = (newCompanyId: number) => {\n companyId = newCompanyId;\n};\n\ncustomFetch.getCompanyId = (): number => {\n return companyId;\n};\n\nexport const getDefaultHeaders = () => {\n return {\n \"Content-Type\": \"application/json\"\n };\n};\n\nexport const getDefaultPostParams = () => {\n return {\n method: \"POST\",\n headers: getDefaultHeaders()\n };\n};\n\nexport default customFetch;","import { isDefined } from \"./general\";\n\n/**\n * Function returns true if @param element is completely visible in @param container\n * @param container\n * @param element\n */\nexport function isVisibleInContainer(container: HTMLElement, element: HTMLElement): boolean {\n const viewportTop = container.scrollTop;\n const viewportBottom = viewportTop + container.offsetHeight;\n const itemTop = element.offsetTop;\n const itemBottom = itemTop + element.offsetHeight;\n return viewportTop <= itemTop && viewportBottom >= itemBottom;\n}\n\n/**\n * Scrolls element into container according to options. Difference from build-in scrollIntoView is that different\n * scrollable container is used than body element\n * Todo: horizontal positioning if needed?\n * @param container\n * @param element\n * @param options\n * @param offset\n */\nexport function scrollIntoView(container: HTMLElement, element: HTMLElement, options: ScrollIntoViewOptions, offset?: { top?: number, left?: number }): void {\n const { offsetTop, offsetHeight } = element;\n let top = offsetTop, left = 0;\n\n top += offset?.top ?? 0;\n left += offset?.left ?? 0;\n\n // todo: nearest\n if (options.block === \"end\") {\n top -= container.offsetHeight + offsetHeight;\n }\n if (options.block === \"center\") {\n top -= (container.offsetHeight - offsetHeight) / 2;\n }\n\n const opts: ScrollToOptions = { top, left };\n if (options.behavior) {\n opts.behavior = options.behavior;\n }\n container.scrollTo(opts);\n}\n\nexport function scrollIntoViewIfNeeded(container: HTMLElement, element: HTMLElement, options: ScrollIntoViewOptions): void {\n if (!isVisibleInContainer(container, element)) {\n scrollIntoView(container, element, options);\n }\n}\n\nexport function joinReactNodes(nodes: React.ReactNode[], separator: string): React.ReactNode {\n return nodes.reduce((prev, curr) => (isDefined(curr) && isDefined(prev) ? [prev, separator, curr] : (isDefined(prev) ? prev : curr)), null);\n}\n\n/**\n * Return real numeric value for element property (we mostly need this for calculations, so it returns number)\n * @param element\n * @param propName\n */\nexport function calcCssProp(element: HTMLElement, propName: string): number {\n return parseInt(window.getComputedStyle(element, null).getPropertyValue(propName));\n}\n\n/**\n * detect Safari browser. Note: vendor is deprecated property, but used. Detecting only by \"safari\" in userAgent is\n * not reliable as many other browsers have such a string in their userAgent\n */\nexport function isSafariBrowser(): boolean {\n return navigator.vendor === \"Apple Computer, Inc.\" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\n\n/**\n * Forces repaint the element in the DOM. E.g. when element becomes visible and Safari stuck with\n * rendering it from shadow DOM again.\n * @param el\n */\nexport function forceRepaintElement(el: HTMLElement): void {\n // define global force-repaint class once\n const styleId = \"force-repaint-style\";\n const cssClass = \"force-repaint\";\n if (!document.getElementById(styleId)) {\n const style = document.createElement(\"style\");\n style.id = styleId;\n style.innerHTML = `.${cssClass} { transform: translateZ(0px); }`;\n document.head.appendChild(style);\n }\n el.classList.toggle(cssClass);\n}","export interface IFetchMiddleWareBeforeArgs {\n request: Request;\n stop: () => void;\n}\n\nexport type TFetchMiddlewareBefore = (args: IFetchMiddleWareBeforeArgs) => Promise;\n\nexport interface IFetchMiddleWareAfterArgs {\n originalRequest: Request;\n response: Response;\n stop: () => void;\n}\n\nexport type TFetchMiddlewareAfter = (args: IFetchMiddleWareAfterArgs) => Promise;\n\nclass FetchWithMiddleware {\n private beforeMiddlewares: TFetchMiddlewareBefore[] = [];\n private afterMiddlewares: TFetchMiddlewareAfter[] = [];\n public originalFetch = window.fetch.bind(window);\n\n constructor() {\n window.fetch = this.fetch;\n }\n\n // called before fetch call\n public useBefore = (middleware: TFetchMiddlewareBefore): void => {\n this.beforeMiddlewares.push(middleware);\n };\n\n // called after fetch call\n public useAfter = (middleware: TFetchMiddlewareAfter): void => {\n this.afterMiddlewares.push(middleware);\n };\n\n public removeBefore = (middleware: TFetchMiddlewareBefore): void => {\n this.beforeMiddlewares = this.beforeMiddlewares.filter((m) => m !== middleware);\n };\n\n public removeAfter = (middleware: TFetchMiddlewareAfter): void => {\n this.afterMiddlewares = this.afterMiddlewares.filter((m) => m !== middleware);\n };\n\n public fetch = async (url: RequestInfo | URL, options?: RequestInit): Promise => {\n let request = new Request(url, options);\n let shouldStop = false;\n const stopFn = () => {\n shouldStop = true;\n };\n\n for (const middleware of this.beforeMiddlewares) {\n request = (await middleware({\n request, stop: stopFn\n }) || request) as Request;\n\n if (shouldStop) {\n return request as unknown as Response;\n }\n }\n let response = await this.originalFetch(request);\n\n for (const middleware of this.afterMiddlewares) {\n response = await middleware({\n originalRequest: request,\n response,\n stop: stopFn\n }) || response;\n\n // if middleware returns response, cancel the request and return the response immediately\n if (shouldStop) {\n return response as Response;\n }\n }\n\n return response;\n };\n}\n\n// singleton instance\nconst fetchWithMiddleware = new FetchWithMiddleware();\n\nexport default fetchWithMiddleware;","import { IOriginalBatchBody, IOriginalBatchResult } from \"@odata/OData\";\n\nimport { BATCH_API_URL } from \"../../constants\";\n\n/** When we want to check headers or status of request, it usually means we want to check either the main request,\n * or in case of batch request, of its nested responses.\n * These functions unify the way we check responses in both cases.*/\n\ntype TGetOrigResponseCheckValFn = (response: Response) => T;\ntype TGetBatchResponseCheckValFn = (response: IOriginalBatchResult) => T;\ntype TCheckCallbackFn = (args: T) => boolean;\n\ninterface ICheckResponseArgs {\n response: Response;\n getOrigResponseCheckVal: TGetOrigResponseCheckValFn;\n getBatchResponseCheckVal: TGetBatchResponseCheckValFn;\n checkCallback: TCheckCallbackFn;\n}\n\nconst checkResponse = async (args: ICheckResponseArgs): Promise => {\n const { response, getOrigResponseCheckVal, getBatchResponseCheckVal, checkCallback } = args;\n const origResponseCheckVal = getOrigResponseCheckVal(response);\n\n if (checkCallback(origResponseCheckVal)) {\n return true;\n }\n\n const isBatch = response.url.endsWith(BATCH_API_URL);\n\n if (!isBatch) {\n return false;\n }\n const bodyPromise = response.json() as Promise;\n // override response.json, so that it can be consumed again without throwing exception\n response.json = async () => bodyPromise;\n\n const body = await bodyPromise;\n\n if (!body.responses) {\n return false;\n }\n\n for (const batchResult of body.responses) {\n const batchResponseCheckVal = getBatchResponseCheckVal(batchResult);\n const res = checkCallback(batchResponseCheckVal);\n\n if (res) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const checkResponseStatus = async (response: Response, checkFn: TCheckCallbackFn): Promise => {\n return checkResponse({\n response,\n getOrigResponseCheckVal: (res) => res.status,\n getBatchResponseCheckVal: (res) => res.status,\n checkCallback: checkFn\n });\n};\n\n\nexport const checkResponseHeader = async (response: Response, checkFn: TCheckCallbackFn): Promise => {\n return checkResponse({\n response,\n getOrigResponseCheckVal: (res) => res.headers,\n getBatchResponseCheckVal: (res) => new Headers(res.headers),\n checkCallback: checkFn\n });\n};","import { FOCUS_MANAGER_WRAPPER_ATTR } from \"@components/focusManager\";\nimport { IDayInterval } from \"@components/inputs/date/utils\";\nimport Big from \"big.js\";\nimport { debounce, DebounceSettings } from \"lodash\";\nimport React from \"react\";\n\nimport { Sort } from \"../enums\";\nimport { TRecordAny, TValue } from \"../global.types\";\nimport { getUtcDate, getUtcDateBy, getUtcDayjs } from \"../types/Date\";\nimport NumberType from \"../types/Number\";\nimport memoizeOne from \"./memoizeOne\";\nimport { compareString } from \"./string\";\nimport { logger } from \"@utils/log\";\n\n// sort array ascending\nexport const asc = (a: number, b: number): number => a - b;\n\n// sort array descending\nexport const desc = (a: number, b: number): number => b - a;\n\n// sort function for boolean values, true values goes first. For reverse order, you may use compare function.\nexport function sortCompareBooleanFn(a: boolean, b: boolean): number {\n return (!!b ? 1 : 0) - (!!a ? 1 : 0);\n}\n\nexport function sortCompareFn(a: T, b: T, dir = Sort.Asc): number {\n const coeff = dir === Sort.Asc ? 1 : -1;\n\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n return coeff * sortCompareBooleanFn(a, b);\n }\n\n if (typeof a === \"number\" || (a instanceof Date)) {\n return coeff * (((a ?? 0) as number) - (((b ?? 0) as unknown) as number));\n }\n return coeff * compareString((a as unknown) as string, (b as unknown) as string);\n}\n\nexport const clamp = (number: number, min: number, max: number): number => {\n return Math.min(Math.max(number, min), max);\n};\n\nexport const quantile = (arr: number[], q: number): number => {\n const sorted = arr.sort(asc);\n const pos = ((sorted.length) - 1) * q;\n const base = Math.floor(pos);\n const rest = pos - base;\n if ((sorted[base + 1] !== undefined)) {\n return sorted[base] + rest * (sorted[base + 1] - sorted[base]);\n } else {\n return sorted[base];\n }\n};\n\n/**\n * Modulo function that always returns positive values\n */\nexport const mod = (n: number, m: number): number => {\n return ((n % m) + m) % m;\n};\n\n// returns cartesian multiplication of given array params\nexport function cartesian(...paramList: unknown[][]): unknown[][] {\n return paramList.reduce(\n (results, params) => {\n if (!params) {\n return results;\n }\n return results\n .map(result => params.map(entry => result.concat([entry])))\n .reduce((subResults, result) => subResults.concat(result), []);\n }, [[]]\n );\n}\n\n/**\n * For given length of string, returns the minimum and maximum possible number values\n * E.g. for length = 2, the function returns {min: 10, max: 99}\n *\n * Returns null for invalid values\n *\n * @param length\n * @returns {{min: number, max: number}} numberRange\n */\nexport const numberRangeFromStringLength = (length: number): { min: number, max: number } => {\n if (length <= 0) {\n return null;\n }\n\n return {\n min: Math.pow(10, length - 1) - (length === 1 ? 1 : 0),\n max: maxNumberFromMaxStringLength(length)\n };\n};\n\n/**\n * For given max length of string, returns maximum possible number value\n * E.g. for length = 2 returns 99\n *\n * Returns null for invalid values\n *\n * @param maxLength\n * @returns {number} maxNumber\n */\nexport const maxNumberFromMaxStringLength = (maxLength: number): number => {\n if (maxLength <= 0) {\n return null;\n }\n\n return Math.pow(10, maxLength) - 1;\n};\n\nexport function arrayMove(arr: T[], old_index: number, new_index: number): T[] {\n while (old_index < 0) {\n old_index += arr.length;\n }\n while (new_index < 0) {\n new_index += arr.length;\n }\n if (new_index >= arr.length) {\n let k = new_index - arr.length + 1;\n while (k--) {\n arr.push(undefined);\n }\n }\n arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\n return arr;\n}\n\n// returns new array with inserted item\nexport function arrayInsert(array: T[], item: T, index: number): T[] {\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\n\nexport function findLastRowItemInFlex(elem: HTMLElement): boolean[] {\n const childNodes = elem.children;\n const lastItemFlags = new Array(childNodes.length);\n let rowOffset = (childNodes[0] as HTMLElement).offsetTop;\n for (let i = 1; i < childNodes.length; i++) {\n const currentItemOffset = (childNodes[i] as HTMLElement).offsetTop;\n if (currentItemOffset !== rowOffset) {\n lastItemFlags[i - 1] = true;\n rowOffset = currentItemOffset;\n }\n }\n\n lastItemFlags[lastItemFlags.length - 1] = true;\n return lastItemFlags;\n}\n\nexport function findItemFlexWidth(elem: HTMLElement): number {\n const childNodes = elem.children;\n const rowOffset = (childNodes[0] as HTMLElement).offsetTop;\n for (let i = 1; i < childNodes.length; i++) {\n const currentItemOffset = (childNodes[i] as HTMLElement).offsetTop;\n if (currentItemOffset !== rowOffset) {\n const previousItem = (childNodes[i - 1] as HTMLElement);\n return previousItem.offsetLeft + previousItem.offsetWidth;\n }\n }\n\n return 0;\n}\n\nexport function forEachKey(obj: T, callback: (key: keyof T) => void): void {\n for (const key of Object.keys(obj)) {\n if (obj.hasOwnProperty(key)) {\n callback(key as keyof T);\n }\n }\n}\n\nexport const isObjectEmpty = (obj: unknown): boolean => {\n return !obj || (!(obj instanceof Date) && typeof obj === \"object\" && Object.keys(obj).length === 0);\n};\n\nexport const getYearQuarter = (date: Date | string): number => {\n const month = getUtcDate(date).getMonth() + 1;\n\n return Math.floor(month / 3) + (month % 3 === 0 ? 0 : 1);\n};\n\nexport const getWeekNumber = function(date: Date | string): number {\n date = getUtcDate(date);\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\n // January 4 is always in week 1.\n const week1 = getUtcDateBy(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000\n - 3 + (week1.getDay() + 6) % 7) / 7);\n};\n\nexport const handleRefHandlers = (ref: any, ...refHandlers: any[]): void => {\n for (const refHandler of refHandlers) {\n if (!refHandler) {\n continue;\n }\n\n if (typeof refHandler === \"function\") {\n refHandler(ref);\n } else {\n refHandler[\"current\"] = ref;\n }\n }\n};\n\n// some neat TS trick to force composeRefHandlers to accept generic argument\ninterface IComposeRefHandlers {\n (...refHandlers: React.Ref[]): (element: T) => void;\n}\n\nexport const composeRefHandlers: IComposeRefHandlers = memoizeOne((...refHandlers: React.Ref[]): (element: T) => void => {\n return (element: T) => handleRefHandlers(element, ...refHandlers);\n});\n\n\nexport enum TabIndex {\n NormalOrder = 0,\n Disabled = -1,\n TemporaryDisabled = -2\n}\n\nexport const FOCUSABLE_INPUTS_SELECTORS = [\"input:enabled\", \"select:enabled\", \"textarea:enabled\"];\nexport const FOCUSABLE_ELEMENTS_SELECTORS = [...FOCUSABLE_INPUTS_SELECTORS, \"button:enabled\", \"[href]\", `[tabindex]:not([tabindex=\"${TabIndex.Disabled}\"]):not([${FOCUS_MANAGER_WRAPPER_ATTR}=true])`];\n\nexport const FOCUSABLE_ELEMENTS_SELECTORS_WITHOUT_TEMPORARY_DISABLED = FOCUSABLE_ELEMENTS_SELECTORS\n .map(selector => selector.startsWith(\"[tabindex]\") ? `${selector}:not([tabindex=\"${TabIndex.TemporaryDisabled}\"])` : selector);\n\n/** Returns focusable elements without elements that we deliberately don't ever have focus on. */\nexport const getFocusableElements = (rootElem: Element | HTMLElement): NodeListOf => {\n const selector = FOCUSABLE_ELEMENTS_SELECTORS_WITHOUT_TEMPORARY_DISABLED.join(\", \");\n return rootElem?.querySelectorAll(selector);\n};\n\n/** Returns all focusable elements, without exception. Only use in specific cases. */\nexport const getAllFocusableElements = (rootElem: Element | HTMLElement): NodeListOf => {\n return rootElem?.querySelectorAll(\"button:enabled, [href], input:enabled, select:enabled, textarea:enabled, [tabindex]\");\n};\n\nexport const getFocusableInputs = (rootElem: Element | HTMLElement): NodeListOf => {\n const selector = FOCUSABLE_INPUTS_SELECTORS.join(\", \");\n return rootElem?.querySelectorAll(selector);\n};\n\nexport function getTemporaryDisabledFocusableElements(rootElem: Element | HTMLElement): NodeListOf {\n const selector = `[tabindex=\"${TabIndex.TemporaryDisabled}\"]`;\n return rootElem?.querySelectorAll(selector);\n}\n\nexport const focusNextElement = (currentElement: Element | HTMLElement): void => {\n if (currentElement) {\n const allFocusableNodes = getFocusableElements(document.body);\n\n for (const [i, node] of allFocusableNodes.entries()) {\n if (node.isSameNode(currentElement)) {\n (allFocusableNodes.item(i + 1) as HTMLElement)?.focus();\n break;\n }\n }\n }\n};\n\nexport const doesElementContainsElement = (ref: Element, el: Element): boolean => {\n if (!ref) {\n return false;\n }\n\n return el instanceof Element && ref?.contains(el)\n // the target can get outside of DOM because React could have already done re-rendering\n && document.body.contains(el);\n};\n\nexport const roundToDecimalPlaces = (places = 1, number: number): number => {\n if (isNaN(number) || !isFinite(number)) {\n return number;\n }\n try {\n const x = new Big(number).round(places);\n if (x.eq(0)) { // solves negative zero (eg. -9 * 0 = -0, but -0 === 0)\n return 0;\n }\n return x.toNumber();\n } catch(e) {\n logger.error(`roundToDecimalPlaces received invalid Number value: ${number}`, e);\n return number;\n }\n};\n\n// https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\nexport const uuidv4 = () => {\n /* eslint-disable no-mixed-operators */\n // @ts-ignore\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: number) =>\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n );\n /* eslint-enable no-mixed-operators */\n};\n\nexport const getRandomInt = (min: number, max: number): number => {\n return Math.floor((Math.random() * (max - min + 1)) + min);\n};\n\nexport const getElementOuterHeight = (element: HTMLElement): number => {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\n return height;\n};\n\nexport const isOverflowing = (element: HTMLElement, offset = 0): boolean => {\n return element && element.scrollWidth > element.clientWidth + offset;\n};\n\nexport const isNotDefined = (element: unknown): element is (undefined | null) => {\n return element === undefined || element === null;\n};\n\nexport const isDefined = (element: unknown): boolean => {\n return element !== undefined && element !== null;\n};\n\n/**\n * Returns result of function call or value itself if value is not callable\n * @param value\n * @param args\n */\nexport const getValue = (value: ((...args: any[]) => T) | T, ...args: any[]): T => {\n if (typeof value === \"function\") {\n return (value as Function)(...args);\n }\n\n return value;\n};\n\n/** Compares simple (string, number, boolean, Date) values\n * Returns true if equal */\nexport const areSimpleValuesEqual = (val1: T, val2: T): boolean => {\n if (val1 instanceof Date && val2 instanceof Date) {\n return (val1 as Date).getTime() === (val2 as Date).getTime();\n }\n\n return val1 === val2;\n};\n\nexport function areObjectsEqual(o1: T, o2: T, compareFields: string[] = o1 ? Object.keys(o1) : o2 ? Object.keys(o2) : []): boolean {\n if (!o1 || !o2) {\n // could be undefined/null\n return o1 === o2;\n }\n\n const o1Fixed = o1 as Record;\n const o2Fixed = o1 as Record;\n\n return !compareFields.some(field =>\n (isDefined(o1Fixed[field]) !== isDefined(o2Fixed[field]) || (isDefined(o1Fixed[field]) && o1Fixed[field] !== o2Fixed[field])));\n}\n\n// actually not sure why this exists instead of _.isEqual\nexport const areValuesEqual = (val1: T, val2: T): boolean => {\n if ((typeof val1 === \"object\" || typeof val2 === \"object\") && !(val1 instanceof Date || val2 instanceof Date)) {\n return areObjectsEqual(val1 as Record, val2 as Record);\n }\n\n return areSimpleValuesEqual(val1, val2);\n};\n\n/**\n * Returns date range between start and end of the given day/s.\n * Used for filters that use DateTimeOffset but are only interested in the day value.\n *\n * @param {Date} dateTime\n * @param {Date} toDateTime\n * @returns {{from: Date, to: Date}} dateRange\n */\nexport const dateTimeToDateRange = (dateTime: Date | string, toDateTime?: Date): IDayInterval => {\n const from = getUtcDayjs(dateTime);\n const to = getUtcDayjs(toDateTime ?? dateTime);\n\n return {\n from: from.startOf(\"date\").toDate(),\n to: to.endOf(\"day\").toDate()\n };\n};\n\nexport const isTwoPrimitiveArraysEqual = (arr1: unknown[], arr2: unknown[]): boolean => {\n if (!arr1 || !arr2) {\n // eslint-disable-next-line\n return arr1 == arr2;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n};\n\n/** Simulate callback call repeat while mouse button is held down,\n * similar to what browser does automatically for keyDown event. */\nexport const mouseDownRepeat = (callback: () => void): void => {\n let isFirstTimeout = true;\n const firstDelay = 600;\n const delay = 60;\n let lastTimestamp: number;\n let shouldEnd = false;\n\n // use animation frame, otherwise the changes doesn't look smooth\n const handleHoldTimeout = (timestamp: number) => {\n if (shouldEnd) {\n return;\n }\n\n if (!lastTimestamp) {\n lastTimestamp = timestamp;\n }\n\n const currentDelay = isFirstTimeout ? firstDelay : delay;\n\n if (timestamp - lastTimestamp >= currentDelay) {\n callback();\n lastTimestamp = timestamp;\n isFirstTimeout = false;\n }\n\n requestAnimationFrame(handleHoldTimeout);\n };\n\n const handleMouseUp = () => {\n shouldEnd = true;\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n\n callback();\n document.addEventListener(\"mouseup\", handleMouseUp);\n requestAnimationFrame(handleHoldTimeout);\n};\n\nexport const deepFreeze = (obj: any) => {\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function(prop) {\n if (obj.hasOwnProperty(prop)\n && obj[prop] !== null\n && (typeof obj[prop] === \"object\" || typeof obj[prop] === \"function\")\n && !Object.isFrozen(obj[prop])) {\n deepFreeze(obj[prop]);\n }\n });\n\n return obj;\n};\n\n/** Transform items from rows to columns order */\nexport function sortItemsInColumns(items: ItemType[], numColumns: number): ItemType[] {\n const orderedItems: ItemType[] = [];\n\n let base = 0;\n let columnFirstIndex = 0;\n\n for (let i = 0; i < items.length; i++) {\n if (i > 0 && i % numColumns === 0) {\n base += 1;\n columnFirstIndex = 0;\n }\n\n orderedItems[i] = items[columnFirstIndex + base];\n\n const rowsInThisColumn = Math.floor(items.length / numColumns) + (items.length % numColumns > i % numColumns ? 1 : 0);\n\n columnFirstIndex += rowsInThisColumn;\n }\n\n return orderedItems;\n}\n\n/** For range from 'min' to 'max' with 'step', returns the closest possible value in the range */\nexport const getClosestValueInRange = (value: number, min: number, max: number, step: number): number => {\n if (value <= min) {\n return min;\n }\n\n const stepModulo = value % step;\n const minModulo = min % step;\n const diff = stepModulo - minModulo;\n\n if (diff === 0) {\n return value > max ? max : value;\n }\n\n const delta = diff >= (step / 2) ? step - diff : -diff;\n\n if (value + delta > max) {\n // if value would get outside of range, return previous value in the range,\n // even though it isn't the closest\n return value - (diff < 0 ? step + diff : diff);\n }\n\n return value + delta;\n};\n\n/**\n * Return true if all values in array are defined and equal\n */\nexport const compareDefinedArrays = (arr1: unknown[], arr2: unknown[]): boolean => {\n if (!arr1 || !arr2) {\n return false;\n }\n\n for (let i = 0; i < arr1?.length; i++) {\n if (!compareDefined(arr1[i], arr2[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const compareDefined = (val1: unknown, val2: unknown): boolean => {\n return val1 && val2 && val1 === val2;\n};\n\n/**\n * Removes item from array. Returns removed item or null if item is not present.\n * @param array\n * @param item\n */\nexport function removeItemFromArray(array: Type[], item: Type): Type {\n const index = array.findIndex(val => val === item);\n if (index !== -1) {\n array.splice(index, 1);\n return item;\n }\n return null;\n}\n\n/**\n * Adds od removes item from array according to its presence in array. Return true if item was added, false if removed.\n * @param array\n * @param item\n */\nexport function toggleItemInArray(array: Type[], item: Type): boolean {\n const removed = removeItemFromArray(array, item);\n if (removed === null) {\n array.push(item);\n return true;\n }\n return false;\n}\n\n/** Keeps queue of promises for all the calls and resolves them all with the final result, once the func is finally called */\nexport const asyncDebounced = any>(func: T, wait?: number, options?: DebounceSettings): ((...args: any) => Promise>) => {\n let resolvers: { resolve: ((value: ReturnType) => void), reject: ((error: Error) => void) }[] = [];\n\n const debounced = debounce(async (...args) => {\n try {\n const result = await func(...args);\n\n for (const resolver of resolvers) {\n resolver.resolve(result);\n }\n } catch (e) {\n for (const resolver of resolvers) {\n resolver.reject(e);\n }\n } finally {\n resolvers = [];\n }\n }, wait, options);\n\n return (...args: any) => {\n return new Promise((resolve, reject) => {\n resolvers.push({ resolve, reject });\n debounced(...args);\n });\n };\n};\n\n/**\n * Returns a hash code from a string\n * @param {String} str The string to hash.\n * @return {Number} A 32bit integer\n * @see https://stackoverflow.com/questions/6122571/simple-non-secure-hash-function-for-javascript\n */\nexport function hashCode(str: string): string {\n let hash = 0;\n\n for (let i = 0, len = str.length; i < len; i++) {\n const chr = str.charCodeAt(i);\n\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n return hash.toString();\n}\n\nexport function repeatArray(arr: T[], n: number): T[] {\n return [].concat(...Array(n).fill(arr));\n}\n\nexport function ifPositive(value: number, positive: T, negative: T, zero: T = null): T {\n if (value > 0) {\n return positive;\n } else if (value < 0) {\n return negative;\n } else {\n return zero;\n }\n}\n\nexport function formatPercent(value: TValue, opts?: {\n decimalPlaces: number;\n absolute: boolean;\n}): string {\n if (!isDefined(value)) {\n return \"\";\n }\n const numeric = parseFloat(value as unknown as string);\n const val = opts?.absolute === false ? numeric : Math.abs(numeric);\n const formattedNumber = NumberType.format(val, { maximumFractionDigits: opts?.decimalPlaces ?? 0 });\n return `${formattedNumber} %`;\n}\n\nexport function removeNullValuesFromObject(o: TRecordAny): void {\n for (const [key, value] of Object.entries(o)) {\n if (value === null) {\n delete o[key];\n }\n }\n}\n\n\nexport function isElementVisible(element: HTMLElement): boolean {\n const computedStyle = getComputedStyle(element);\n\n // https://stackoverflow.com/a/21696585/3352544\n return !!element.offsetParent && computedStyle.visibility !== \"hidden\" && computedStyle.opacity !== \"0\";\n}\n\n/**\n * Returns a promise that resolves after a given number of milliseconds,\n * debugging purposes\n * @param ms\n */\nexport function wait(ms: number): Promise {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n","export enum KeyboardShortcut {\n ALT_D = \"ALT_D\",\n ALT_N = \"ALT_N\",\n ALT_C = \"ALT_C\",\n ALT_R = \"ALT_R\",\n ALT_S = \"ALT_S\",\n ALT_X = \"ALT_X\",\n CTRL_Q = \"CTRL_Q\",\n ALT_UP = \"ALT_UP\",\n ALT_DOWN = \"ALT_DOWN\",\n ALT_SHIFT_UP = \"ALT_SHIFT_UP\",\n ALT_SHIFT_DOWN = \"ALT_SHIFT_DOWN\",\n ALT_SHIFT_S = \"ALT_SHIFT_S\",\n SHIFT_SHIFT = \"SHIFT_SHIFT\",\n}\n\nexport interface IKeyboardShortcut {\n id: KeyboardShortcut;\n keys: {\n char: string;\n // alt key on Windows, option key on Mac\n altKey?: boolean;\n ctrlKey?: boolean;\n shiftKey?: boolean;\n }[];\n}\n\n/** If callback returns true, the event is considered as resolved and will not be propagated to another subscriber */\nexport type TSubscriberCallback = (shortcut: KeyboardShortcut, event: KeyboardEvent) => boolean;\n\nexport interface ISubscriber {\n callback: TSubscriberCallback,\n shortcuts: KeyboardShortcut[];\n /** This subscriber will always be called first, even if other subscribers has subscribed after this one */\n isPrioritized?: boolean;\n}","import {\n IKeyboardShortcut,\n ISubscriber,\n KeyboardShortcut\n} from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport React from \"react\";\nimport * as deviceDetect from \"react-device-detect\";\n\nimport { KeyName } from \"../../keyName\";\n\nconst shortcuts: Record = {\n [KeyboardShortcut.ALT_D]: {\n id: KeyboardShortcut.ALT_D,\n keys: [\n {\n char: \"d\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_N]: {\n id: KeyboardShortcut.ALT_N,\n keys: [\n {\n char: \"n\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_C]: {\n id: KeyboardShortcut.ALT_C,\n keys: [\n {\n char: \"c\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_S]: {\n id: KeyboardShortcut.ALT_S,\n keys: [\n {\n char: \"s\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_R]: {\n id: KeyboardShortcut.ALT_R,\n keys: [\n {\n char: \"r\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_X]: {\n id: KeyboardShortcut.ALT_X,\n keys: [\n {\n char: \"x\",\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_UP]: {\n id: KeyboardShortcut.ALT_UP,\n keys: [\n {\n char: KeyName.ArrowUp,\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_DOWN]: {\n id: KeyboardShortcut.ALT_DOWN,\n keys: [\n {\n char: KeyName.ArrowDown,\n altKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_SHIFT_UP]: {\n id: KeyboardShortcut.ALT_SHIFT_UP,\n keys: [\n {\n char: KeyName.ArrowUp,\n altKey: true,\n shiftKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_SHIFT_DOWN]: {\n id: KeyboardShortcut.ALT_SHIFT_DOWN,\n keys: [\n {\n char: KeyName.ArrowDown,\n altKey: true,\n shiftKey: true\n }\n ]\n },\n [KeyboardShortcut.CTRL_Q]: {\n id: KeyboardShortcut.CTRL_Q,\n keys: [\n {\n char: \"q\",\n ctrlKey: true\n }\n ]\n },\n [KeyboardShortcut.ALT_SHIFT_S]: {\n id: KeyboardShortcut.ALT_SHIFT_S,\n keys: [\n {\n char: \"s\",\n altKey: true,\n shiftKey: true\n }\n ]\n },\n [KeyboardShortcut.SHIFT_SHIFT]: {\n id: KeyboardShortcut.SHIFT_SHIFT,\n keys: [\n {\n char: KeyName.Shift,\n shiftKey: true\n },\n {\n char: KeyName.Shift,\n shiftKey: true\n }\n ]\n }\n};\n\nclass KeyboardShortcutsManager {\n #subscribers: ISubscriber[] = [];\n pressedKeys: string[] = [];\n #pressTimer: ReturnType;\n static PARTIAL_SHORTCUT = \"partial\";\n\n // we start with global handling, but subscribe could be provided DOM ref,\n // to only handle key presses from that DOM subtree\n public subscribe = (subscriber: ISubscriber): () => void => {\n this.#subscribers.push(subscriber);\n\n if (this.#subscribers.length === 1) {\n this.startListening();\n }\n\n return /*unsubscribe*/() => {\n const index = this.#subscribers.findIndex(s => s === subscriber);\n this.#subscribers.splice(index, 1);\n\n if (this.#subscribers.length === 0) {\n this.stopListening();\n }\n };\n };\n\n private startListening = (): void => {\n document.body.addEventListener(\"keydown\", this.handleKeyDown);\n };\n\n private stopListening = (): void => {\n document.body.removeEventListener(\"keydown\", this.handleKeyDown);\n };\n\n _notifySubscribers = (shortcut: KeyboardShortcut, event: KeyboardEvent, subscribers: ISubscriber[]): boolean => {\n // iterate from the back so that the later subscribers are notified first\n for (let i = subscribers.length - 1; i >= 0; i--) {\n const subscriber = subscribers[i];\n\n if (subscriber.shortcuts.includes(shortcut)) {\n const eventHandled = subscriber.callback(shortcut, event);\n\n if (eventHandled) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n private notifySubscribers = (shortcut: KeyboardShortcut, event: KeyboardEvent): void => {\n let notified = false;\n const prioritySubscribers = this.#subscribers.filter(sub => sub.isPrioritized);\n\n if (prioritySubscribers.length > 0) {\n notified = this._notifySubscribers(shortcut, event, prioritySubscribers);\n }\n\n if (!notified) {\n this._notifySubscribers(shortcut, event, this.#subscribers);\n }\n };\n\n public isEventShortcut = (event: KeyboardEvent | React.KeyboardEvent, shortcutId: KeyboardShortcut): boolean | string => {\n const shortcut = shortcuts[shortcutId];\n const index = this.pressedKeys.length;\n const currentShortcutKey = shortcut.keys[index];\n\n if (!currentShortcutKey) {\n return false;\n }\n\n const currentShortcutChar = currentShortcutKey.char.toLowerCase();\n let condition: boolean = !!currentShortcutKey.ctrlKey === event.ctrlKey && !!currentShortcutKey.altKey === event.altKey && !!currentShortcutKey.shiftKey === event.shiftKey;\n const pressedKey = event.key.toLowerCase();\n\n // on Mac, alt by default works as altGr,\n // meaning for some keyboard layouts, different character is triggered than the on user pressed (like \"<\" or accent characters)\n // and the event.key returns \"Dead\" or some special value instead of value of the pressed key.\n // ==> use event.code which always returns value of the pressed key.\n // !warning! the returned key always corresponds to the key on the keyboard and doesn't care about the system keyboard layout;\n // meaning, if the user use QUERTZ layout, event.code will still return y when y is pressed on keyboard.\n // https://stackoverflow.com/questions/61255621/trying-to-prevent-a-dead-key-from-being-typed-from-a-mac-keyboard\n // https://apple.stackexchange.com/questions/10761/how-to-disable-composite-keys-on-mac-os-x\n if (currentShortcutKey.altKey && deviceDetect.isMacOs) {\n const keyValue = event.code?.toLowerCase().startsWith(\"key\") ? `key${currentShortcutChar}` : currentShortcutChar;\n\n condition = condition && keyValue === event.code?.toLowerCase();\n } else {\n\n condition = condition && currentShortcutChar === pressedKey;\n }\n\n if (condition && index < shortcut.keys.length - 1) {\n return KeyboardShortcutsManager.PARTIAL_SHORTCUT;\n }\n\n return condition;\n };\n\n private getShortcutFromEvent = (event: KeyboardEvent): { shortcut: KeyboardShortcut, finished: boolean } => {\n if (!event.key) {\n return null;\n }\n\n for (const shortcut of Object.values(shortcuts)) {\n const res = this.isEventShortcut(event, shortcut.id);\n\n if (res === KeyboardShortcutsManager.PARTIAL_SHORTCUT) {\n return { shortcut: shortcut.id, finished: false };\n } else if (res) {\n return { shortcut: shortcut.id, finished: true };\n }\n }\n\n return null;\n };\n\n private finishPress = (): void => {\n this.pressedKeys = [];\n\n if (this.#pressTimer) {\n clearTimeout(this.#pressTimer);\n this.#pressTimer = null;\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.repeat) {\n return;\n }\n\n const res = this.getShortcutFromEvent(event);\n\n if (res) {\n if (!res.finished) {\n this.pressedKeys.push(event.key.toLowerCase());\n this.#pressTimer = setTimeout(() => {\n this.finishPress();\n }, 300);\n } else {\n this.finishPress();\n event.preventDefault();\n this.notifySubscribers(res.shortcut, event);\n }\n } else {\n this.finishPress();\n }\n };\n}\n\nconst keyboardShortcutsManager = new KeyboardShortcutsManager();\n\nexport default keyboardShortcutsManager;","import { REST_API_URL } from \"../constants\";\nimport { getDefaultPostParams } from \"./customFetch\";\n\nenum ConsoleLogType {\n Trace = \"trace\",\n Debug = \"debug\",\n Information = \"info\",\n Warning = \"warn\",\n Error = \"error\"\n}\n\nenum LogType {\n Trace = \"Trace\",\n Debug = \"Debug\",\n Information = \"Information\",\n Warning = \"Warning\",\n Error = \"Error\"\n}\n\ntype TCustomLogData = Record;\n\ninterface ILogBody {\n level: LogType;\n error?: {\n innerError?: Error;\n message?: string;\n },\n stacktrace: string;\n customData?: TCustomLogData;\n}\n\nclass Logger {\n trace(message: string, error?: Error, customLogData?: TCustomLogData) {\n this.log(LogType.Trace, ConsoleLogType.Trace, message, error, customLogData);\n }\n\n debug(message: string, error?: Error, customLogData?: TCustomLogData) {\n this.log(LogType.Debug, ConsoleLogType.Debug, message, error, customLogData);\n }\n\n info(message: string, error?: Error, customLogData?: TCustomLogData) {\n this.log(LogType.Information, ConsoleLogType.Information, message, error, customLogData);\n }\n\n warn(message: string, error?: Error, customLogData?: TCustomLogData) {\n this.log(LogType.Warning, ConsoleLogType.Warning, message, error, customLogData);\n }\n\n error(message: string, error?: Error, customLogData?: TCustomLogData) {\n this.log(LogType.Error, ConsoleLogType.Error, message, error, customLogData);\n }\n\n log(logType: LogType, consoleLogType: ConsoleLogType, message: string | unknown, error?: Error, customLogData?: TCustomLogData) {\n if (message && typeof message === \"object\") {\n // in case someone calls logger with error from catch block by mistake\n if (message instanceof Error) {\n message = (message as Error).message;\n error = message as Error;\n } else {\n message = \"unknown error\";\n }\n }\n\n // eslint-disable-next-line no-console\n console[consoleLogType](message, error);\n this._sendLog(logType, message as string, error, customLogData);\n }\n\n _buildErrorBody(error: Error) {\n if (error instanceof Error) {\n const result = {\n name: \"\", // TODO: add name ?\n message: error.message,\n stackTrace: error.stack\n };\n // if (error.innerError) {\n // result.innerError = this._buildErrorBody(error.innerError);\n // }\n return result;\n } else {\n return null;\n }\n }\n\n _buildLogBody(level: LogType, message: string, error?: Error, customLogData?: TCustomLogData) {\n const innerError = this._buildErrorBody(error);\n const err = new Error();\n const body: ILogBody = {\n level: level,\n stacktrace: err.stack,\n error: {\n message: message,\n innerError: innerError\n },\n customData: customLogData\n };\n return body;\n }\n\n async _sendLog(level: LogType, message: string, error: Error, customLogData?: TCustomLogData) {\n const body = this._buildLogBody(level, message, error, customLogData);\n try {\n await fetch(`${REST_API_URL}/logging`, {\n ...getDefaultPostParams(),\n redirect: \"error\",\n body: JSON.stringify(body)\n });\n } catch (e) {\n }\n }\n}\n\nconst logger = new Logger();\n\nexport { logger };","import { memoize as _memoize, MemoizedFunction } from \"lodash\";\nimport { clearAllMemoizeOneObjs } from \"./memoizeOne\";\n\nconst memoizedFunctions: MemoizedFunction[] = [];\n\nexport function clearAllMemoizedData(): void {\n clearAllMemoizeOneObjs();\n memoizedFunctions.forEach(f => f?.cache?.clear?.());\n}\n\n/**\n * Lodash memoize wrapper - saves memoized functions to set.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction memoize any>(func: T, resolver?: (...args: Parameters) => any): T & MemoizedFunction {\n const memoized = _memoize(func, resolver);\n memoizedFunctions.push(memoized);\n return memoized;\n}\n\nexport default memoize;","export interface IMemoized

    {\n (...params: [...P]): R;\n\n reset: () => void;\n}\n\nconst memoizeOneObjs: IMemoized[] = [];\n\nexport function clearAllMemoizeOneObjs(): void {\n memoizeOneObjs.forEach(m => m.reset());\n}\n\n/**\n * Returns memoized function which will return same value if called with same parameters and context.\n * Doesn't keep history, only one last value.\n * @param {function} func Potentially performance heavy function.\n * @param {function} getDependencies Callback that returns implicit set of parameters to be checked for equality. Can be used instead/or together with function parameters.\n * @returns {function} Memoized function\n */\nfunction memoizeOne

    (func: (...params: [...P]) => R, getDependencies?: (...params: [...P]) => any []): IMemoized {\n let wasCalled = false;\n let lastArgs: any[] = [];\n let lastDependencies: any[] = [];\n let lastValue: any = null;\n let lastThis: any = null;\n let reset = false;\n\n const argsEqual = (args1: any, args2: any) => {\n if (args1.length !== args2.length) {\n return false;\n }\n\n for (let i = 0; i < args1.length; i++) {\n if (args1[i] instanceof Date && args2[i] instanceof Date && args1[i].getTime() !== args2[i].getTime()) {\n return false;\n } else if (args1[i] !== args2[i]) {\n return false;\n }\n }\n\n return true;\n };\n\n const memoized: IMemoized = function(this: any, ...newArgs: [...P]): R {\n const newDependencies: any[] = getDependencies?.(...newArgs);\n\n if (!reset && wasCalled && lastThis === this && argsEqual(lastArgs, newArgs) && (!getDependencies || argsEqual(lastDependencies, newDependencies))) {\n return lastValue;\n }\n\n\n wasCalled = true;\n reset = false;\n lastArgs = newArgs;\n lastDependencies = newDependencies;\n lastValue = func.apply(this, newArgs);\n lastThis = this;\n return lastValue;\n };\n\n /** Call to force new value */\n memoized.reset = () => {\n reset = true;\n };\n\n memoizeOneObjs.push(memoized);\n\n return memoized;\n}\n\nexport default memoizeOne;","/**\n * Returns wrapped fetch function that only allows one fetch to be called at a time.\n * If another fetch is called during the previous is still pending, the previous request is canceled and 'AbortError' exception is thrown for it.\n * Use one fetch with try catch block and handle 'AbortError'.\n * @returns {function(...[*]=)}\n */\nimport { FETCH_ABORT_ERROR } from \"../constants\";\nimport customFetch from \"./customFetch\";\n\nexport type TFetchFn = (url: string, options?: RequestInit) => Promise;\n\nexport interface IOneFetch {\n fetch: TFetchFn;\n abort: () => void;\n isFetching: () => boolean;\n}\n\nexport const ONE_FETCH_ABORT_MESSAGE = \"oneFetch: fetch was aborted because another fetch was called. If you see this error, make sure you are not duplicating requests and alternatively try / catch FETCH_ABORT_ERROR.\";\n\nexport const isAbortException = (e: Error): boolean => {\n return e.name === FETCH_ABORT_ERROR;\n};\n\n/** The reason parameter of the abort call is actually passed as the exception,\n * so we don't want to use string but custom DOMException with the same name as the default AbortError exception.*/\nconst getCustomAbortReason = () => {\n return new DOMException(ONE_FETCH_ABORT_MESSAGE, FETCH_ABORT_ERROR);\n};\n\nconst getOneFetch = (): IOneFetch => {\n let abortController: AbortController;\n\n return {\n fetch: async (url: string, options?: RequestInit): Promise => {\n if (abortController && !abortController.signal.aborted) {\n abortController.abort(getCustomAbortReason());\n }\n\n abortController = new AbortController();\n\n const res = await customFetch(url, {\n ...options,\n signal: abortController.signal\n });\n\n abortController = null;\n\n return res;\n },\n abort() {\n abortController?.abort(getCustomAbortReason());\n },\n isFetching() {\n return !!abortController;\n }\n };\n};\n\nexport { getOneFetch };","import { logger } from \"./log\";\nimport { TRecordAny, TRecordType } from \"../global.types\";\nimport { REST_API_URL } from \"../constants\";\nimport { getDefaultPostParams } from \"./customFetch\";\n\nexport interface IP13nResponse {\n Value: TRecordAny;\n}\n\nconst emptyResponse: IP13nResponse = { Value: {} };\n\nexport class P13n {\n static baseUrl = `${REST_API_URL}/Personalization`;\n\n data: TRecordAny = {};\n unfinishedGet: TRecordType> = {};\n unfinishedUpdate: TRecordType> = {};\n\n handleError(error?: Error | string): void {\n if (typeof error === \"string\") {\n logger.error(error);\n return;\n }\n\n // TODO change to global error handling (should it throw exception..?)\n logger.error(\"error in P13n\", error);\n }\n\n async update(id: string, name: K, data: T[K] = null): Promise {\n if (!this.data[id]) {\n this.data[id] = {};\n }\n this.data[id][name] = data;\n\n const value: TRecordAny = {\n [name]: data\n };\n\n // TODO batch multiple update calls fired at the same time into one,\n // instead of calling them on after each other\n\n // We should not send another request if the previous one is not finished yet\n // -> results to conflicts on BE and not storing value at all\n // and eventual get call can wait for it to be done before it tries to load current data\n const currentPromise = this.unfinishedUpdate[id];\n let resolveFn: () => void;\n\n // unfinishedUpdate has to await ALL the update calls (both PATCH and possible POST)\n // otherwise, wrong order of requests can happen, resulting with POST request on already existing path which cause error\n // => each update call has to create its own promise\n // so that all the calls happens sequentially\n const newPromise = new Promise((resolve) => {\n resolveFn = resolve;\n });\n this.unfinishedUpdate[id] = newPromise;\n\n if (currentPromise) {\n await currentPromise;\n }\n\n try {\n // use PATCH (and POST if needed) instead of PUT\n // PUT replaces the whole object, but we don't want to GET the current data before every update\n // => using PATCH is safer\n let res = await fetch(`${P13n.baseUrl}/${id}`, {\n method: \"PATCH\",\n body: JSON.stringify({ value }),\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n\n if (res.status === 404) {\n res = await fetch(P13n.baseUrl, {\n ...getDefaultPostParams(),\n body: JSON.stringify({\n value,\n elementId: id\n })\n });\n }\n\n if (res.status > 300) {\n this.handleError(`error in P13n status: ${res.status} - ${res.statusText}`);\n return false;\n }\n\n return true;\n } catch (e) {\n this.handleError(e);\n return false;\n } finally {\n resolveFn();\n\n if (this.unfinishedUpdate[id] === newPromise) {\n this.unfinishedUpdate[id] = null;\n } // else - another update call already stored its new promise\n }\n }\n\n async get(id: string, name?: string, forceUpdate?: boolean): Promise {\n let item = this.data[id];\n\n if (!item || forceUpdate) {\n if (!this.unfinishedGet[id] || forceUpdate) {\n this.unfinishedGet[id] = this._getOrEmpty(id);\n }\n item = (await this.unfinishedGet[id]).Value;\n }\n\n this.data[id] = item;\n\n return !name ? item : item[name] || undefined;\n }\n\n async delete(id: string): Promise {\n try {\n if (this.unfinishedUpdate[id]) {\n // wait for all the currently running updates to end, before loading the new, correct data\n await this.unfinishedUpdate[id];\n }\n\n const response = await fetch(`${P13n.baseUrl}/${id}`, { method: \"DELETE\" });\n\n if (response.status > 300) {\n this.handleError();\n return false;\n }\n\n return true;\n } catch (e) {\n this.handleError(e);\n return false;\n }\n }\n\n async _getOrEmpty(id: string): Promise {\n try {\n if (this.unfinishedUpdate[id]) {\n // wait for all the currently running updates to end, before loading the new, correct data\n await this.unfinishedUpdate[id];\n }\n\n const response = await fetch(`${P13n.baseUrl}/${id}`);\n\n if (response.status === 404) {\n return emptyResponse;\n } else if (response.status > 300) {\n this.handleError();\n return emptyResponse;\n }\n\n return await response.json();\n } catch (e) {\n this.handleError(e);\n return emptyResponse;\n }\n }\n}\n\nconst personalization = new P13n();\n\nexport default personalization;\n","import { CompanyPermissionCode, GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { IEntity } from \"@odata/BindingContext\";\nimport { TableStorage } from \"../model/TableStorage\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport { IPermissionContext } from \"../contexts/permissionContext/PermissionContext\";\nimport { Model } from \"../model/Model\";\nimport { isEntityOwner } from \"@pages/admin/users/Users.utils\";\n\nexport const canUnlock = (storage: FormStorage | TableStorage, generalPermissions: Set, entity: IEntity): boolean => {\n return generalPermissions.has(GeneralPermissionCode.Unlocking) ||\n entity[storage.data.definition.lockProperty]?.every?.((lock: IEntity) => lock.CreatedBy?.Id === storage.context.getData()?.userSettings?.Id);\n};\n\nexport function checkPermissionWithOwnPermission(storage: Model, permissionContext: IPermissionContext, permission: CompanyPermissionCode): boolean {\n return permissionContext.ownOnlyPermissions.has(permission) ? isEntityOwner(storage.context, storage.data.entity)\n : permissionContext.companyPermissions.has(permission);\n}","import { deburr, escapeRegExp } from \"lodash\";\n\nimport { ValueType } from \"../enums\";\nimport NumberType from \"../types/Number\";\nimport { isNotDefined } from \"./general\";\n\n/**\n * Convert first letter of the string to uppercase\n */\nexport const capitalize = (value: string): string => {\n if (!value) {\n return \"\";\n }\n\n return `${value?.[0].toUpperCase()}${value?.slice(1)}`;\n};\n\n/** According to spec, initials should always be just two letters (first name, last surname), even if user has multiple names. */\nexport const initials = (value: string): string => {\n if (!value) {\n return \"\";\n }\n\n const names = value.trim().split(\" \");\n\n // First letter of first name and first letter of last name\n return `${names[0]?.[0]}${names[names.length - 1]?.[0]}`.toUpperCase();\n};\n\nexport const isUpperCase = (char: string): boolean => char === char.toUpperCase();\n\nexport const startsWithAccentsInsensitive = (haystack: string, needle: string): boolean => {\n if (!haystack || !needle) {\n return false;\n }\n return [haystack.toLowerCase(), deburr(haystack).toLowerCase()].some(str => startsWith(str, needle.toLowerCase()));\n};\n\nexport const startsWith = (haystack: string, needle: string): boolean => {\n if (!haystack || !needle) {\n return false;\n }\n const [h, n] = [haystack, needle].map(str => fixWhiteSpaceChar(str).toLowerCase());\n return h.startsWith(n);\n};\n\nexport const endsWith = (haystack: string, needle: string): boolean => {\n if (!haystack || !needle) {\n return false;\n }\n const [h, n] = [haystack, needle].map(str => fixWhiteSpaceChar(str).toLowerCase());\n return h.endsWith(n);\n};\n\n/**\n * Replace hyphen character with minus character and vice versa when parsing\n * @param value\n * @param isParsing\n */\nexport const fixMinusSign = (value: string, isParsing = false): string => {\n const hyphenChar = \"-\";\n const minusChar = \"−\";\n\n return value.replace(isParsing ? minusChar : hyphenChar, isParsing ? hyphenChar : minusChar);\n};\n\n/**\n * Sometimes we need to ignore differences between space and hard space, e.g. during search,\n * so this method replaces any white character to simple space\n * @param value\n */\nexport const fixWhiteSpaceChar = (value: string): string => {\n if (typeof value === \"string\") {\n return value?.replaceAll(/\\s+/g, \" \");\n }\n return value;\n};\n\nexport const removeWhiteSpace = (string: string): string => {\n return string?.replace(/\\s/g, \"\");\n};\n\nexport const trimLeadingZeroes = (s: string): string => {\n return s?.replace(/^0+/, \"\");\n};\n\n/**\n * Regular expression to search string from the beginning of any word. Zeroes at the beginning are ignored as\n * blank characters. It mixes [,.-/] to support different date and number formats.\n * @param str\n * @param searchType adds some tweaks to Number/Date type searches\n */\nexport const startOfWordRegExp = (str: string, searchType = ValueType.String): RegExp => {\n let optionalPrefix = \"\";\n str = escapeRegExp(str);\n if (searchType === ValueType.Number) {\n // ignore thousand separator when searching numbers and also remove possible white characters from search string\n str = removeWhiteSpace(str).replace(/([0-9])/g, `$1[${NumberType.getParser()._groupChar}]?`);\n // fix minus sign\n str = fixMinusSign(str);\n // For numbers we don't search from \"non-word\" characters, just from start, but let us skip all non-number characters (currency symbol, minus sign)\n return new RegExp(`((^[^0-9]*))(${str})`, \"im\");\n }\n if (searchType === ValueType.Date) {\n optionalPrefix = \"0*\";\n }\n return new RegExp(`((^|\\\\s|[\\\\/.,_-])${optionalPrefix})(${str})`, \"im\");\n};\n\n/**\n * Test if any word in haystack starts with needle, accent insensitive (only in haystack).\n * If needle contains diacritics, it should have exact match in the haystack\n * @param haystack\n * @param needle\n * @param searchType\n */\nexport const anyPartStartsWithAccentsInsensitive = (haystack: string, needle: string, searchType = ValueType.String): boolean => {\n return testAccentsInsensitiveWithRegex(haystack, startOfWordRegExp(needle, searchType));\n};\n\n/**\n * Tests string with regexp regardless of accent in str.\n * @param haystack\n * @param regex\n */\nexport const testAccentsInsensitiveWithRegex = (haystack: string, regex: RegExp): boolean => {\n if (isNotDefined(haystack) || isNotDefined(regex)) {\n return false;\n }\n\n return regex?.test(haystack) || regex?.test(deburr(haystack));\n};\n\nexport const testWithRegex = (haystack: string, regex: RegExp): boolean => {\n if (isNotDefined(haystack) || isNotDefined(regex)) {\n return false;\n }\n\n return regex?.test(haystack);\n};\n\n/**\n * Get starts of words accent insensitive (only in haystack). If needle contains diacritics,\n * it should have exact match in the haystack\n * @param haystack\n * @param needle\n * @param searchType\n */\nexport const getStartsWithWordAccentsInsensitiveIndex = (haystack: string, needle: string, searchType = ValueType.String): {\n index: number,\n length: number\n} => {\n if (!haystack || !needle) {\n return undefined;\n }\n\n const regex = startOfWordRegExp(needle, searchType);\n\n let res = regex.exec(haystack);\n if (!res) {\n res = regex.exec(deburr(haystack));\n }\n\n // We would like to return index of the first character of the searched string, so if the first match is\n // start of the string \"^\" the matched word starts at index 0, in other cases, we need to add length of\n // the first match\n return !res ? undefined : { index: res.index + res[1].length, length: res[3].length };\n};\n\ninterface ISplitStringResults {\n prefix: string;\n root: string;\n suffix: string;\n}\n\n/**\n * Splits string to search result parts, so the needle could be highlighted\n * @param haystack\n * @param needle\n * @param searchType\n */\nexport function splitStringToSearchedParts(haystack: string, needle: string, searchType = ValueType.String): ISplitStringResults {\n const res = getStartsWithWordAccentsInsensitiveIndex(haystack, needle, searchType);\n if (res) {\n const prefix = haystack.substring(0, res.index);\n const root = haystack.substring(res.index, res.length + res.index);\n const suffix = haystack.substring(res.length + res.index);\n return { prefix, root, suffix };\n }\n return null;\n}\n\nexport const includesAccentsInsensitive = (haystack: string, needle: string): boolean => {\n if (!haystack || !needle) {\n return false;\n }\n return [haystack.toLowerCase(), deburr(haystack).toLowerCase()].some(str => str.includes(needle.toLowerCase()));\n};\n\nexport const indexOfAccentsInsensitive = (haystack: string, needle: string): number => {\n let foundIndex = -1;\n if (haystack && needle) {\n [haystack.toLowerCase(), deburr(haystack).toLowerCase()].forEach(str => {\n const index = str.indexOf(needle.toLowerCase());\n if (index !== -1) {\n foundIndex = index;\n }\n });\n }\n return foundIndex;\n};\n\n/**\n * Compares string for sorting, e.g. using array sort method. Returns same result as array sort\n * method is expecting (-1/0/1)\n * @param str1\n * @param str2\n */\nexport function compareString(str1: string, str2: string): number {\n return (str1 ?? \"\").localeCompare(str2 ?? \"\");\n}\n\n/**\n * Calculates text width according to font / element style\n * Note: canvasContext does not support letter spacing, so the result is not 100% accurate\n */\nlet canvasContext: CanvasRenderingContext2D;\n\nexport function getTextWidth(text: string, font: string, props?: { fontWeight: string; fontStyle: string; }): number {\n if (!canvasContext) {\n canvasContext = document.createElement(\"canvas\").getContext(\"2d\");\n }\n const { fontWeight, fontStyle } = props ?? {};\n canvasContext.font = `${fontStyle ?? \"normal\"} normal ${fontWeight ?? \"normal\"} ${font}`;\n const metrics = canvasContext.measureText(text);\n return metrics.width;\n}\n\nexport function getTextWidthByElement(text: string, element: HTMLElement): number {\n const { font, fontWeight, fontStyle, textTransform } = (element && window.getComputedStyle(element)) ?? {};\n if (!font) {\n return undefined;\n }\n if (textTransform === \"uppercase\") {\n text = text.toUpperCase();\n }\n return getTextWidth(text, font, { fontWeight, fontStyle });\n}","import { TRecordString } from \"../global.types\";\n\nexport function join(...parts: string[]): string {\n if (parts.length === 0) {\n return '';\n }\n let result = parts[0];\n for (let i = 1; i < parts.length; i++) {\n if (!result.endsWith('/')) {\n result += '/';\n }\n result += parts[i];\n }\n return result;\n}\n\nexport function createUrl(url: string, parameters: TRecordString = {}): string {\n const queryString = joinParameters(parameters);\n return [url, queryString].filter(i => i).join('?');\n}\n\n/**\n * Join parameters with encoding, which is optional to be able to prevent double encoding of params\n * (e.g. in oData expand statement)\n * @param parameters\n * @param separator\n * @param shouldEncodeParams\n * @returns {string}\n */\nexport function joinParameters(parameters: TRecordString, separator = \"&\", shouldEncodeParams = true): string {\n const keys = Object.keys(parameters);\n keys.sort();\n if (keys.length > 0) {\n return keys\n .map(k => k + '=' + (shouldEncodeParams ? encodeURIComponent(parameters[k]) : parameters[k]))\n .join(separator);\n }\n return \"\";\n}","import { WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n IBackgroundJobWebsocketMessage,\n INotificationWebsocketMessage,\n ISessionInvalidatedWebsocketMessage,\n TWebsocketMessage\n} from \"./Websocket.types\";\n\nexport type {\n IBackgroundJobWebsocketMessage,\n INotificationWebsocketMessage,\n ISessionInvalidatedWebsocketMessage,\n TWebsocketMessage\n};\n\nexport const WS_URL = `${window.location.protocol === \"https:\" ? \"wss\" : \"ws\"}://${window.location.host}/api/ws/Notification`;\n\nexport const isNotificationWebsocketMessage = (message: TWebsocketMessage): message is INotificationWebsocketMessage => {\n return message.WebSocketMessageType === WebSocketMessageTypeCode.Notification;\n};\n\nexport const isBackgroundJobWebsocketMessage = (message: TWebsocketMessage): message is IBackgroundJobWebsocketMessage => {\n return message.WebSocketMessageType === WebSocketMessageTypeCode.BackgroundJob;\n};\n\nexport const isSessionInvalidatedWebsocketMessage = (message: TWebsocketMessage): message is ISessionInvalidatedWebsocketMessage => {\n return message.WebSocketMessageType === WebSocketMessageTypeCode.SessionInvalidated;\n};\n\nexport const isSessionTerminatedWebsocketMessage = (message: TWebsocketMessage): message is ISessionInvalidatedWebsocketMessage => {\n return message.WebSocketMessageType === WebSocketMessageTypeCode.SessionInvalidated;\n};","import { WebSocketMessageTypeCode } from \"@odata/GeneratedEnums\";\nimport { throttle } from \"lodash\";\n\nimport { ENV_DISABLE_WEBSOCKET } from \"../../constants\";\nimport customFetch from \"../customFetch\";\nimport { logger } from \"../log\";\nimport {\n ILoginWebsocketMessage,\n ISystemWebsocketMessage,\n IWebsocketSubscriber,\n TWebsocketMessage\n} from \"./Websocket.types\";\n\nexport const IsWebsocketDisabled = process.env[ENV_DISABLE_WEBSOCKET] === \"1\";\n\ninterface ITokenResponse {\n NotificationDomain: string;\n Token: string;\n}\n\nclass WebsocketManager {\n #subscribers: IWebsocketSubscriber[] = [];\n socket: WebSocket;\n isFirstConnect = true;\n token: string;\n\n private connectToWs = async (companyId = customFetch.getCompanyId()): Promise => {\n if (!this.#subscribers?.length || this.socket || IsWebsocketDisabled) {\n return; // already connected, no subscribers or websocket disabled, do not connect\n }\n\n try {\n const tokenResponse = await fetch(\"/api/rest/Notification/token\");\n if (!tokenResponse.ok) {\n throw new Error(\"Failed to fetch notification token\");\n }\n const response = await tokenResponse.json() as ITokenResponse;\n this.token = response.Token;\n\n const wsUrl = `${window.location.protocol === \"https:\" ? \"wss\" : \"ws\"}://${response.NotificationDomain}/api/ws/Notification`;\n\n this.socket = new WebSocket(wsUrl);\n\n this.socket.onopen = this.onOpen;\n this.socket.onmessage = this.onMessage;\n this.socket.onclose = this.onClose;\n this.socket.onerror = this.onError;\n } catch (e) {\n this.socket = null;\n this.connectWithTimeout();\n // fail silently\n logger.error(\"websocket connect failed\", e);\n }\n };\n\n // there is weird behavior in _.throttle, that allows the throttled function to be called more often than the set timeout\n // https://github.com/lodash/lodash/issues/3051\n // if both leading and trailing is set to true => leading call of new interval is called immediately after the previous trailing invocation\n // => FIRST EVER CALL make directly connectToWs and every subsequent call make to connectWithTimeout with leading set to false\n private connectWithTimeout = throttle((): void => {\n this.connectToWs();\n }, 3000, { leading: false });\n\n public close = (): void => {\n this.socket?.close();\n };\n\n private onOpen = (event: Event): void => {\n const loginMessage : ILoginWebsocketMessage = {\n Parameters: {\n Token: this.token\n },\n WebSocketMessageType: WebSocketMessageTypeCode.Login\n };\n this.socket.send(JSON.stringify(loginMessage));\n };\n\n private onMessage = (event: MessageEvent): void => {\n const parsedMessage = this.parseMessage(event.data);\n\n if (parsedMessage.WebSocketMessageType === WebSocketMessageTypeCode.System) {\n const systemMessage = parsedMessage as ISystemWebsocketMessage;\n if (systemMessage.Parameters.IsError === \"True\") {\n logger.error(\"Websocket error: \" + systemMessage.Parameters.Message);\n }\n } else {\n this.notifySubscribers(parsedMessage);\n }\n };\n\n // always called on WebSocket close\n private onClose = (event: CloseEvent): void => {\n // if we lost connection for some reason, try to regain it\n this.socket = null;\n this.connectWithTimeout();\n };\n\n // called before onClose in case of error\n private onError = (event: Event): void => {\n };\n\n\n public subscribe = (subscriber: IWebsocketSubscriber): () => void => {\n this.#subscribers.push(subscriber);\n\n if (this.isFirstConnect) {\n this.isFirstConnect = false;\n this.connectToWs();\n } else {\n this.connectWithTimeout();\n }\n\n return /*unsubscribe*/() => {\n const index = this.#subscribers.findIndex(s => s === subscriber);\n\n this.#subscribers.splice(index, 1);\n };\n };\n\n private notifySubscribers = (message: TWebsocketMessage): void => {\n for (const subscriber of this.#subscribers) {\n if (subscriber.types.includes(message.WebSocketMessageType)) {\n subscriber.callback(message);\n }\n }\n };\n\n private parseMessage = (message: string): TWebsocketMessage => {\n return JSON.parse(message) as TWebsocketMessage;\n };\n\n}\n\nconst defaultWebsocketManager = new WebsocketManager();\n\nexport default defaultWebsocketManager;","import { IconButton } from \"@components/button\";\nimport { AddIcon } from \"@components/icon\";\nimport { IInputOnChangeEvent } from \"@components/inputs/input\";\nimport { WriteLineWrapper } from \"@components/navigation/NavDashboard.styles\";\nimport { TEntityKey } from \"@odata/BindingContext\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { BreadCrumbProvider } from \"../components/breadCrumb/BreadCrumbProvider\";\nimport Dialog from \"../components/dialog/Dialog\";\nimport WriteLine from \"../components/inputs/writeLine/WriteLine\";\nimport ObjectList, { ISection } from \"../components/objectList/ObjectList\";\nimport { ScrollBar } from \"../components/scrollBar/ScrollBar\";\nimport ViewHeader from \"../components/smart/smartHeader/SmartHeader\";\nimport { Toolbar } from \"../components/toolbar\";\nimport { IconSize, TextAlign } from \"../enums\";\nimport KeyboardShortcutsManager from \"../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport ConfirmationButtons from \"../views/table/ConfirmationButtons\";\nimport { TableButtonsAction } from \"../views/table/TableToolbar.utils\";\nimport View from \"../views/View\";\nimport { ObjectListAlertWrapper } from \"@components/objectList/ObjectList.styles\";\n\ninterface IProps extends WithTranslation {\n className?: string;\n title?: string;\n sections?: ISection[];\n id: string;\n searchTerm?: string;\n\n onFilter?: (searchTerm: string) => void;\n onAdd?: () => void;\n onHandleAction?: (templateId: TEntityKey, type: string) => void;\n onDelete?: (id: string) => Promise;\n alert?: React.ReactElement;\n\n scrollRef?: React.RefObject;\n}\n\ninterface IState {\n confirmationDialogId?: string;\n isConfirmationDialogBusy?: boolean;\n}\n\nconst scrollBarStyles: React.CSSProperties = { overflowX: \"hidden\", position: \"relative\" };\n\nclass ObjectListPage extends React.Component {\n _unsubscribeKeyboardShortcuts: () => void;\n\n componentDidMount() {\n this._unsubscribeKeyboardShortcuts = KeyboardShortcutsManager.subscribe({\n shortcuts: [KeyboardShortcut.ALT_N],\n callback: this.handleKeyboardShortcut\n });\n }\n\n componentWillUnmount() {\n this._unsubscribeKeyboardShortcuts?.();\n }\n\n state: IState = {\n confirmationDialogId: \"\",\n isConfirmationDialogBusy: false\n };\n\n handleKeyboardShortcut = (shortcut: KeyboardShortcut, event: KeyboardEvent): boolean => {\n if (shortcut === KeyboardShortcut.ALT_N) {\n this.handleAdd();\n return true;\n }\n\n return false;\n };\n\n handleFilterChange = (e: IInputOnChangeEvent) => {\n const searchTerm = e.value as string;\n this.props.onFilter?.(searchTerm);\n };\n\n handleAction = async (id: string, type: string) => {\n if (type === \"delete\") {\n this.setState({\n confirmationDialogId: id\n });\n }\n\n this.props.onHandleAction(id, type);\n };\n\n handleConfirmAccept = async () => {\n this.setState({\n isConfirmationDialogBusy: true\n });\n\n await this.props.onDelete?.(this.state.confirmationDialogId);\n\n this.setState({\n confirmationDialogId: \"\",\n isConfirmationDialogBusy: false\n });\n };\n\n handleConfirmCancel = () => {\n this.setState({\n confirmationDialogId: \"\"\n });\n };\n\n handleAdd = (): void => {\n this.props.onAdd?.();\n };\n\n get scrollbarNodeProps() {\n return {\n ref: this.props.scrollRef\n };\n }\n\n getDeleteItemName = (): string => {\n return this.props.sections?.find(section => section.children?.find(child => child.id === this.state.confirmationDialogId))?.children?.find(child => child.id === this.state.confirmationDialogId)?.name;\n };\n\n render() {\n return (\n <>\n \n \n \n\n {this.props.alert && (\n {this.props.alert}\n )}\n\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.confirmationDialogId &&\n }>\n {this.props.t(\"Common:General.DeleteMessage\", { item: this.getDeleteItemName() })}\n \n }\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\", \"Error\"])(ObjectListPage);","import { WithAlert } from \"@components/alert/withAlert\";\nimport { IColumnContent, IListItem, ISection } from \"@components/objectList\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport BindingContext, { createBindingContext, IEntity, TEntityKey } from \"@odata/BindingContext\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { WithOData } from \"@odata/withOData\";\nimport ObjectListPage from \"@pages/ObjectListPage\";\nimport Page, { IPageParams, IPageState } from \"@pages/Page\";\nimport {\n deleteObjectListItem,\n getStandardObjectListActions,\n IDefinition,\n IPageProps,\n ObjectListAction\n} from \"@pages/PageUtils\";\nimport { isVisibleInContainer, scrollIntoView } from \"@utils/dom.utils\";\nimport { sortCompareBooleanFn } from \"@utils/general\";\nimport { anyPartStartsWithAccentsInsensitive, compareString } from \"@utils/string\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation } from \"react-i18next\";\nimport { RouteComponentProps } from \"react-router-dom\";\n\nimport { FILES_API_URL, NEW_ITEM_DETAIL } from \"../constants\";\nimport { AppContext, IAppContext } from \"../contexts/appContext/AppContext.types\";\nimport { QueryParam, Status } from \"../enums\";\nimport { getQueryParameters } from \"../routes/Routes.utils\";\nimport { PropsWithTheme } from \"../theme\";\nimport DialogFormView from \"./formView/DialogFormView\";\nimport { FormStorage } from \"./formView/FormStorage\";\n\nexport interface IObjectListProps extends WithAlert, WithOData, WithTranslation, RouteComponentProps, IPageProps, PropsWithTheme {\n entitySet: string;\n getDef: (context: IAppContext) => IDefinition;\n translationPath: string;\n id: string;\n itemIconName?: string;\n width?: string;\n height?: string;\n}\n\nexport interface IObjectListState extends IPageState {\n searchTerm: string;\n}\n\nexport abstract class ObjectListView, C> extends Page {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n protected _refFormView = React.createRef();\n protected abstract _formStorageId: string;\n _scrollRef = React.createRef();\n _isCustomImageSvg = false;\n\n storage: FormStorage;\n loading: boolean;\n _scrollToBc: BindingContext;\n formView: typeof DialogFormView = DialogFormView;\n\n data: T[] = [];\n\n state: IObjectListState = {\n searchTerm: \"\"\n };\n\n constructor(props: IObjectListProps, context: IAppContext) {\n super(props, context);\n\n this.renderContents = this.renderContents.bind(this);\n this.createItems = this.createItems.bind(this);\n this.getFilteredItems = this.getFilteredItems.bind(this);\n }\n\n async componentDidMount() {\n super.componentDidMount();\n\n this.storage = new FormStorage({\n id: this._formStorageId,\n oData: this.props.oData,\n t: this.props.t,\n history: this.props.history,\n match: this.props.match,\n theme: this.props.theme,\n context: this.context,\n refresh: () => {\n this._refFormView.current?.forceUpdate();\n }\n });\n }\n\n async componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n super.componentDidUpdate(prevProps, prevState);\n\n const shouldReload = !!this.getKey() && ((!this.storage.loaded && this.detailData?.bc && !this.loading) || this.getKey() !== (prevProps.match?.params as IPageParams)?.Id);\n\n if (shouldReload) {\n this.loading = true;\n await this.storage.init({\n bindingContext: this.detailData.bc,\n definition: this.detailData.def\n });\n this.loading = false;\n this.refreshPage(this.detailData.bc);\n }\n }\n\n renderContents(item: T): IColumnContent[] {\n return [];\n }\n\n refreshPage(scrollToBc: BindingContext): void {\n this._scrollToBc = scrollToBc;\n this.forceUpdate(() => {\n this._scrollToBc && this.scrollToItem(this._scrollToBc.getKey());\n this._scrollToBc = null;\n });\n }\n\n createItemSubTitle = (item: T): React.ReactElement => {\n return null;\n };\n\n createItems(items: T[]): IListItem[] {\n return (items || []).map((item, idx) => {\n const logoId = item?.Logo?.Id;\n const id = item.Id?.toString();\n return {\n id,\n // if we scroll manually to the listItem, we need to use index as a key,\n // so react don't scroll automatically (without animation)\n key: !!this._scrollToBc ? idx.toString() : id,\n name: item.Name,\n subTitle: this.createItemSubTitle(item),\n isDefault: item.IsDefault,\n iconName: logoId ? \"\" : this.props.itemIconName,\n iconTitle: item.Name,\n customImageSrc: logoId ? `${FILES_API_URL}/${logoId}` : null,\n isCustomImageSvg: this._isCustomImageSvg,\n actions: [...getStandardObjectListActions(this.storage.t, item.IsActive, item.IsDefault), ...this.customActions(item)],\n contents: this.renderContents(item)\n };\n });\n }\n\n getFilteredItems(items: T[]): T[] {\n const filteredItems = (this.state.searchTerm ? items.filter((item) => {\n return anyPartStartsWithAccentsInsensitive(item.Name, this.state.searchTerm);\n }) : items) ?? [];\n return filteredItems.sort((a, b) => {\n if (a.IsDefault !== b.IsDefault) {\n return sortCompareBooleanFn(a.IsDefault, b.IsDefault);\n }\n\n if (a.IsActive !== b.IsActive) {\n return sortCompareBooleanFn(a.IsActive, b.IsActive);\n }\n return compareString(a.Name, b.Name);\n });\n }\n\n showMessage = (status: Status, subTitle: string): void => {\n this.props.setAlert({\n title: status === Status.Error ? this.props.t(\"Components:ObjectList.Error\") : this.props.t(\"Common:Validation.SuccessTitle\"),\n status, subTitle\n });\n };\n\n showError = (e: ODataError, id: TEntityKey): void => {\n const code = e._validationMessages?.[0]?.code;\n const message = code ? this.props.t(`Error:${code}`) : e._validationMessages?.[0]?.message ?? this.props.t(\"Common:Errors.ErrorHappened\");\n\n this.props.setAlert({\n status: Status.Error,\n subTitle: message,\n title: this.props.t(\"Components:ObjectList.Error\")\n });\n };\n\n customActions = (item: T): IToolbarItem[] => {\n return [];\n };\n\n handleFilterChange = (searchTerm: string): void => {\n this.setState({\n searchTerm\n });\n };\n\n handleCustomAction = async (itemId: TEntityKey, type: string): Promise => {\n return null;\n };\n\n handleAction = async (itemId: TEntityKey, type: string): Promise => {\n switch (type) {\n case ObjectListAction.Edit:\n this.setUrl(itemId as string);\n break;\n\n case ObjectListAction.ToggleActive:\n const item = this.data.find(item => item.Id?.toString() === itemId?.toString());\n if (item) {\n const updateData = {\n IsActive: !item.IsActive\n };\n let bc: BindingContext;\n try {\n await this.props.oData.fromPath(this.props.entitySet).update(itemId, updateData);\n\n item.IsActive = !item.IsActive;\n this.data = [...this.data];\n bc = createBindingContext(this.props.entitySet, this.props.oData.metadata).addKey(itemId);\n await this.onAfterSave(bc, true);\n } catch (e) {\n this.showError(e, itemId);\n }\n\n this.refreshPage(bc);\n }\n break;\n default:\n await this.handleCustomAction(itemId, type);\n }\n };\n\n handleCloseDialog = (): void => {\n this.setUrl(\"\");\n delete this.storage.data.alert;\n this.storage.loaded = false;\n };\n\n getSaveMessage = (id: TEntityKey, isNew: boolean): string => {\n return \"\";\n };\n\n handleConfirmDialog = async (isNew: boolean): Promise => {\n const key = this.storage.data.bindingContext.getKey();\n await this.onAfterSave(this.detailData?.bc);\n this.handleCloseDialog();\n this.props.setAlert({\n status: Status.Success,\n title: i18next.t(\"Common:Validation.SuccessTitle\"),\n subTitle: this.getSaveMessage(key, isNew)\n });\n\n this.scrollToItem(key);\n };\n\n scrollToItem = (id: TEntityKey): void => {\n const item = document.querySelector(`[data-listitemid=\"${id}\"]`) as HTMLElement;\n\n if (this._scrollRef.current && item && !isVisibleInContainer(this._scrollRef.current, item)) {\n scrollIntoView(this._scrollRef.current, item, { behavior: \"smooth\", block: \"center\" });\n\n item.focus({\n preventScroll: true\n });\n }\n };\n\n abstract onAfterSave(bc: BindingContext, refreshList?: boolean): Promise;\n\n onAfterDelete = (item: T): Promise => {\n return Promise.resolve(undefined);\n };\n\n handleAdd = (): void => {\n this.setUrl(NEW_ITEM_DETAIL);\n };\n\n get showDialog(): boolean {\n const action = getQueryParameters()?.[QueryParam.Action];\n return !!this.getKey() && !action;\n }\n\n handleDelete = async (id: TEntityKey): Promise => {\n try {\n const item = this.data?.find(item => item.Id?.toString() === id?.toString());\n await deleteObjectListItem(this.props.entitySet, this.props.oData, this.data, id);\n await this.onAfterDelete(item);\n } catch (e) {\n this.scrollToItem(id);\n this.showError(e, id);\n }\n this.forceUpdate();\n };\n\n customRender = (): React.ReactElement => {\n return undefined;\n };\n\n getSections = (data: T[]): ISection[] => {\n return [{\n id: \"main\",\n children: this.createItems(this.getFilteredItems(data))\n }];\n };\n\n render() {\n if (!this.isReady()) {\n return null;\n }\n const FormViewComponent = this.formView;\n const isNew = this.detailData?.bc?.isNew();\n\n return (\n <>\n \n\n {this.showDialog &&\n }\n {this.customRender()}\n \n );\n }\n}","import styled, { css } from \"styled-components/macro\";\n\nimport { LocalStackOrder } from \"../global.style\";\n\nexport const VIEW_PADDING_VALUE = 38;\n\ninterface IView {\n withoutPadding: boolean;\n withoutMinWidth?: boolean;\n isFullscreen?: boolean;\n}\n\nexport const FullScreenViewZIndex = LocalStackOrder.AboveOverlay + 1;\n\n// use wrapper div to push down the content and scrollbar\n// but keep the scrollbar on the edge of the page and only use padding for the content in StyledView\nexport const StyledViewWrapper = styled.div`\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n\n ${props => !props.withoutPadding && css`\n padding-top: ${VIEW_PADDING_VALUE}px;\n `}\n ${props => props.isFullscreen && css`\n position: fixed;\n top: 0;\n left: 0;\n z-index: ${FullScreenViewZIndex};\n background-color: ${props => props.theme.C_BG_floorplan};\n `}\n`;\n\nexport const StyledView = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n height: 100%;\n ${props => !props.withoutMinWidth && css`\n min-width: 300px;\n `};\n ${props => !props.withoutPadding && css`\n padding: 0 ${VIEW_PADDING_VALUE}px ${VIEW_PADDING_VALUE}px;\n `};\n`;\n\nexport const FixedFooter = styled.div`\n\n ${props => !props.withoutPadding && css`\n padding: 0 ${VIEW_PADDING_VALUE}px;\n `};\n`;","import { HOTSPOT_VIEW_ATTR } from \"@components/hotspots/Hotspots.utils\";\nimport React, { PropsWithChildren } from \"react\";\nimport SimpleBar from \"simplebar-react\";\n\nimport { IScrollBarProps, ScrollBar } from \"../components/scrollBar/ScrollBar\";\nimport TestIds from \"../testIds\";\nimport { FixedFooter, StyledView, StyledViewWrapper } from \"./View.styles\";\n\nexport interface IViewProps {\n renderScrollbar?: boolean;\n scrollProps?: Partial & { ref?: React.Ref };\n nonScrollableContent?: React.ReactElement;\n // special prop for floating alerts (CenteredBottom), to be rendered above the scrollbar\n floatingAlert?: React.ReactElement;\n withoutPadding?: boolean;\n withoutMinWidth?: boolean;\n\n // content rendered beneath the scrollable part\n fixedFooter?: React.ReactElement;\n isFullscreen?: boolean;\n\n testid?: string;\n hotspotContextId: string;\n\n onDragEnter?: (event: React.DragEvent) => void;\n onDragLeave?: (event: React.DragEvent) => void;\n onDragOver?: (event: React.DragEvent) => void;\n onDrop?: (event: React.DragEvent) => void;\n\n style?: React.CSSProperties;\n className?: string;\n passRef?: React.Ref;\n key?: string;\n}\n\n/** Use this component in views to get correct padding and scrollbar */\nexport default class View extends React.PureComponent> {\n static defaultProps = {\n renderScrollbar: true\n };\n\n handleDragLeave = (event: React.DragEvent) => {\n const isDragLeaveLocal = (event.currentTarget as HTMLElement).contains(event.relatedTarget as HTMLElement);\n if (!isDragLeaveLocal) {\n this.props.onDragLeave?.(event);\n }\n };\n\n render() {\n let content = (\n \n {this.props.children}\n \n );\n\n if (this.props.renderScrollbar) {\n content = (\n \n {content}\n \n );\n }\n\n return (\n \n {content}\n {this.props.fixedFooter\n ? {this.props.fixedFooter}\n : null}\n {this.props.nonScrollableContent}\n {this.props.floatingAlert}\n \n );\n }\n}","import React, { useCallback, useEffect, useState } from \"react\";\nimport { IInputOnChangeEvent } from \"@components/inputs/input\";\nimport { IWriteLineSettings } from \"@components/smart/FieldInfo\";\nimport { getFileNameWriteLineDef } from \"./FileViewUtils\";\nimport { splitFileName } from \"@components/fileUploader/File.utils\";\nimport { useTranslation } from \"react-i18next\";\nimport WriteLine from \"../../components/inputs/writeLine/WriteLine\";\nimport styled from \"styled-components/macro\";\n\ninterface IProps {\n name: string;\n onChange: (name: string) => Promise;\n className?: string;\n}\n\nconst FileRenameWriteLineStyled = styled(WriteLine)`\n // negative margin to shift the field into the padding area of the parent\n // prevent from overlapping with SplitPage control buttons\n margin: -20px 130px 16px 0;\n font-size: 14px;\n`;\n\n\nconst FileRenameWriteLine: React.FC = ({ name, onChange, className }) => {\n const { prefix, extension } = splitFileName(name);\n const { t } = useTranslation(\"Components\");\n\n const [currentName, setCurrentName] = useState(\"\");\n\n const handleChange = useCallback((args: IInputOnChangeEvent) => {\n setCurrentName(args.value);\n }, [setCurrentName]);\n\n const handleCancel = useCallback(() => {\n setCurrentName(prefix);\n }, [setCurrentName, prefix]);\n\n const handleConfirm = useCallback(async () => {\n if (!currentName?.trim()) {\n handleCancel();\n return;\n }\n const isConfirmed = await onChange(`${currentName}.${extension}`);\n if (!isConfirmed) {\n handleCancel();\n }\n }, [currentName, extension, handleCancel, onChange]);\n\n const def = getFileNameWriteLineDef(t);\n delete def.fieldSettings.formatter;\n\n useEffect(() => {\n setCurrentName(prefix);\n }, [name, prefix]);\n\n return (\n \n );\n};\n\nexport default FileRenameWriteLine;","import { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { setBoundValue } from \"@odata/Data.utils\";\nimport {\n EntitySetName,\n EntityTypeName,\n FileMetadataEntity,\n IEntityAttachmentEntity,\n IFileMetadataEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { BatchRequest, isBatchResultOk } from \"@odata/OData\";\nimport { attachInboxFile, loadInboxFileMetadata } from \"@pages/inbox/Inbox.utils\";\nimport dayjs from \"dayjs\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { NEW_ITEM_DETAIL } from \"../../../constants\";\nimport { FileAction, Status } from \"../../../enums\";\nimport { ModelEvent } from \"../../../model/Model\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport FileStorage, { getFileStorageUploadErrorMessage, IFileProgress } from \"../../../utils/FileStorage\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { AlertPosition } from \"../../alert/Alert\";\nimport { WithAlert, withAlert } from \"../../alert/withAlert\";\nimport { WithConfirmationDialog, withConfirmationDialog } from \"../../dialog/withConfirmationDialog\";\nimport { IFile } from \"../../fileUploader/File\";\nimport { getUniqueFileName, isValidFileName } from \"../../fileUploader/File.utils\";\nimport FileInfoDialog from \"../../fileUploader/FileInfoDialog\";\nimport FileRenameDialog from \"../../fileUploader/FileRenameDialog\";\nimport FileUploader, { IFileActionEvent } from \"../../fileUploader/FileUploader\";\nimport { TId } from \"../../table\";\n\ninterface IProps extends WithTranslation, WithAlert, WithConfirmationDialog {\n storage: FormStorage;\n /** Collection inside current binding context, that handles the files */\n collection: string;\n /**\n * Name of file property\n * e.g. documents use Attachments set, but the file it self is in File property - complete path /InvoicesReceived(20)/Attachments(1)/File\n */\n fileProperty?: string;\n isReadOnly?: boolean;\n isLocalDropArea?: boolean;\n isHidden?: boolean;\n customFileActions?: (file: IFileMetadataEntity, storage: FormStorage) => ISelectItem[];\n onCustomFileAction?: (fileMetadata: IFileMetadataEntity, actionId: string, attachId: number) => void;\n /** New files were added into FileUploader either via \"Add\" button or with drag and drop */\n onNewFiles?: () => void;\n /** Files that were previously added to file uploader were successfully uploaded */\n onFilesUploaded?: (files: IFileMetadataEntity[]) => void;\n onFileClick?: (file: IFileMetadataEntity) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n /** List of elements, that handles file drop for themselves,\n * and when user hovers files over them, in case this FileDropArea is global,\n * we should disable hover state in this FileDropArea */\n otherFileDropAreas?: HTMLElement[];\n ref?: React.Ref;\n\n className?: string;\n style?: React.CSSProperties;\n}\n\ninterface IState {\n busy: boolean;\n showInfoForFile: number;\n showRenameFile?: TId;\n}\n\n/** Handles upload/download/removal of files that combines OData and backend file storage.\n * Accepts defaultFiles from parent, so that we can save one backend request. */\nclass SmartFileUploader extends React.Component {\n state: IState = {\n busy: false,\n showInfoForFile: null\n };\n\n // in case another files are dropped to SmartFileUploader while previous files are still uploading\n // we want to wait for all the previous to finish\n uploadInProgress: Promise[] = [];\n\n getCollectionBcMemoized = memoizeOne(\n () => {\n return this.props.storage.data.bindingContext.navigate(this.props.collection);\n }\n , () => [this.props.storage.data.bindingContext]);\n\n get isNew() {\n return this.props.storage.data.bindingContext.isNew();\n }\n\n // rerender file uploader on item change, to prevent it from keeping wrong state\n // e.g. to not keep removing state when another document in table is selected\n // when bindingContext is new, bindingContext.toString() may change due to savedDraft,\n // however we don't want to remount the FileUploader (it is still the same document)\n // e.g. bc.isNew() -> draft is saved -> same file uploader, so it's not rerendered\n // bc.isNew() with saved draft -> row is changed to different draft -> key has to change, so fileUploader is remounted\n _lastBindingContext: BindingContext;\n _fileUploaderKey: string;\n get fileUploaderKey(): string {\n const { bindingContext } = this.props.storage.data;\n\n // new(new) -> draftId(new) -> differentDraftId(key)\n // draftId(key) -> differentDraftId(key)\n // Id(key) -> new(new) -> draftId(new)\n if (this._fileUploaderKey && ((this._lastBindingContext.getKey()?.toString().startsWith(NEW_ITEM_DETAIL) && bindingContext.isNew())\n || this._lastBindingContext.getKey() === bindingContext.getKey())) {\n // switching from new entity to new entity with possible draft key -> keep \"new\"\n // or when entity key is same\n // -> no change to fileUploaderKey\n } else {\n this._fileUploaderKey = bindingContext.getKey()?.toString();\n }\n this._lastBindingContext = bindingContext;\n\n return this._fileUploaderKey;\n }\n\n getCollectionBc = () => {\n return this.getCollectionBcMemoized();\n };\n\n getCollection = () => {\n return this.props.storage.getValue(this.getCollectionBc()) ?? [];\n };\n\n fileSortByDateCreated = (file1: IFile, file2: IFile) => {\n return dayjs(file2.metadata.DateCreated).diff(file1.metadata.DateCreated);\n };\n\n getFiles = (): IFile[] => {\n const items: IEntity[] = this.getCollection();\n\n return items\n .map(item => {\n const fileItem = this.props.fileProperty ? item[this.props.fileProperty] : item;\n\n return {\n // combine id in case same file was added twice as two different attachments\n id: this.props.fileProperty ? `${item.Id}-${fileItem.Id}` : fileItem.Id,\n name: fileItem.Name,\n metadata: fileItem\n };\n })\n .sort(this.fileSortByDateCreated);\n };\n\n getFileMetadata = (fileId: number): IFileMetadataEntity => {\n const item = this.getItemByFileId(fileId);\n let fileMetadata = item;\n\n if (this.props.fileProperty) {\n fileMetadata = item[this.props.fileProperty];\n }\n\n return fileMetadata;\n };\n\n getAttachmentId = (fileId: string) => {\n const split = fileId.split(\"-\");\n return parseInt(split[0]);\n };\n\n getCleanFileId = (fileId: string) => {\n const split = fileId.split(\"-\");\n\n return parseInt(split[1] ?? split[0]);\n };\n\n itemContainsFile = (fileId: number) => {\n return (item: IEntity) => this.props.fileProperty ? item[this.props.fileProperty].Id === fileId : item.Id === fileId;\n };\n\n getItemByFileId = (fileId: number) => {\n const items = [...this.getCollection()];\n return items.find(this.itemContainsFile(fileId));\n };\n\n getFileBindingContext = (fileId: number) => {\n const item = this.getItemByFileId(fileId);\n let bc = this.getCollectionBc().addKey(item.Id);\n\n if (this.props.fileProperty) {\n bc = bc.navigate(this.props.fileProperty);\n }\n\n return bc;\n };\n\n handleUploadProgress = (event: IFileProgress) => {\n // TODO how to handle file upload properly? loading indicator?\n };\n\n updateEntity = (newItems: IEntity[], isSaved = true) => {\n const { storage } = this.props;\n // store in the local entity as well, because that's where we show the files from\n const itemsBc = this.getCollectionBc();\n if (isSaved) {\n // origEntity needs to be updated as well, otherwise the data would be malformed on form save\n storage.setValueToEntityAndOrigEntity(itemsBc, newItems);\n // update also draft so the new files are not duplicated\n storage.getCustomData().draft = setBoundValue({\n bindingContext: itemsBc,\n dataBindingContext: storage.data.bindingContext,\n data: storage.getCustomData().draft,\n newValue: newItems\n });\n } else {\n storage.setValue(itemsBc, newItems);\n }\n };\n\n handleNewFiles = async (files: File[]) => {\n let resolveUploadInProgress: () => void;\n\n this.uploadInProgress.push(new Promise((resolve) => {\n resolveUploadInProgress = resolve;\n }));\n\n if (this.uploadInProgress.length > 1) {\n // wait for the previous uploads to finish\n await Promise.allSettled(this.uploadInProgress.slice(0, -1));\n }\n\n this.props.onNewFiles?.();\n this.setBusy(true);\n\n const draftId = this.props.storage.data.entity[this.props.storage.data.definition?.draftDef?.draftProperty]?.Id;\n const isDraftSaved = !!draftId;\n const isNew = this.isNew && !isDraftSaved;\n const newItems = [];\n const oldFileNames = this.getFiles().map(f => f.name);\n const newFileNames: string[] = [];\n const badFileNames: string[] = [];\n const promises = [];\n\n for (const file of files) {\n if (!isValidFileName(file.name)) {\n badFileNames.push(file.name);\n continue;\n }\n\n const fileName = getUniqueFileName(file.name, [...oldFileNames, ...newFileNames]);\n\n newFileNames.push(fileName);\n promises.push(FileStorage.upload({ file, name: fileName, progressCallback: this.handleUploadProgress }));\n }\n\n if (badFileNames.length > 0) {\n this.props.setAlert({\n title: this.props.t(\"Components:FileUploader.BadFileName\", {\n count: badFileNames.length,\n files: badFileNames.join(\", \")\n }),\n subTitle: this.props.t(\"Components:FileUploader.FileNameRules\"),\n status: Status.Error\n });\n }\n\n if (promises.length > 0) {\n const responses = await Promise.allSettled(promises);\n const batch: BatchRequest = this.props.storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n const queryableEntityPath = this.getQueryableEntityPath();\n const queryableEntity = queryableEntityPath ? batch.fromPath(queryableEntityPath) : null;\n\n for (const res of responses) {\n if (res.status === \"fulfilled\") {\n let item: IEntity = res.value;\n\n if (this.props.fileProperty) {\n item = {\n [this.props.fileProperty]: item\n };\n if (isNew) {\n item.Id = item[this.props.fileProperty].Id;\n }\n }\n\n if (isNew) {\n newItems.push(item);\n } else {\n queryableEntity.create(item);\n }\n } else {\n this.showUploadErrorAlert(this.getOdataErrorMessage((res.reason ?? res) as unknown as ODataError));\n }\n }\n\n if (!isNew && !batch.isEmpty()) {\n const batchResponse = await batch.execute();\n let error = null;\n\n for (const res of batchResponse) {\n if (isBatchResultOk(res)) {\n newItems.push(res.body.value);\n } else if (!error) {\n error = res.body as ODataError;\n }\n }\n\n if (error) {\n this.showUploadErrorAlert(this.getOdataErrorMessage(error));\n }\n }\n\n this.updateEntity([\n ...this.getCollection(),\n ...newItems\n ], !!queryableEntity);\n }\n\n this.setBusy(false);\n\n // if all uploads failed don't fire onFilesUploaded\n if (newItems.length > 0) {\n this.props.onFilesUploaded?.(newItems.map(item => {\n const fileItem = this.props.fileProperty ? item[this.props.fileProperty] : item;\n\n return this.getFileMetadata(fileItem.Id);\n }));\n }\n\n resolveUploadInProgress?.();\n // remove promise of this upload\n this.uploadInProgress.shift();\n };\n\n loadAllAttachments = async (): Promise => {\n const { oData, data: { bindingContext, entity } } = this.props.storage;\n const isNew = bindingContext.isNew();\n\n const draftDef = this.props.storage.data.definition?.draftDef;\n const draftProp = draftDef?.draftProperty;\n const es = draftDef?.draftEntitySet;\n\n const entitySet = isNew ? es : bindingContext.getEntitySet().getName();\n\n const Id = isNew ? entity?.[draftProp]?.Id : bindingContext.getKey();\n if (Id) {\n const query = oData.getEntitySetWrapper(entitySet as EntitySetName).query(Id)\n .select(\"Id\")\n .expand(this.props.collection, (subQuery) => {\n if (this.props.fileProperty) {\n subQuery.expand(this.props.fileProperty,\n (q) => q.select(FileMetadataEntity.Id, FileMetadataEntity.IsIsdocReadable, FileMetadataEntity.IsRossumReadable, FileMetadataEntity.Name, FileMetadataEntity.Size));\n }\n });\n const response = await query.fetchData();\n return response.value[this.props.collection] as IEntityAttachmentEntity[];\n }\n return [];\n };\n\n handleAttachInboxFiles = async (inboxFiles: TId[]): Promise => {\n const { storage } = this.props;\n const { bindingContext, entity } = storage.data;\n // unselect possibly selected file, switch splitPageState, so fileView is visible\n this.props.onNewFiles?.();\n\n const _attachInboxFile = async (entityType: EntityTypeName, documentId: number) => {\n await attachInboxFile(inboxFiles, entityType, documentId as number);\n const items = await this.loadAllAttachments();\n this.updateEntity(items);\n\n if (items.length && this.props.fileProperty) {\n this.props.onFilesUploaded?.(items.map(item => item[this.props.fileProperty as keyof IEntityAttachmentEntity] as IFileMetadataEntity));\n }\n this.forceUpdate();\n };\n\n const draftProp = storage.data.definition?.draftDef?.draftProperty;\n const _getDraftId = (entity: IEntity): number => +entity?.[draftProp]?.Id;\n\n if (!this.isNew) {\n // document is saved, just attach new files\n const inboxEntityTypeCode = bindingContext.getEntityType().getName() as EntityTypeName;\n await _attachInboxFile(inboxEntityTypeCode, +bindingContext.getKey());\n } else if (draftProp) {\n const entityType = draftProp as EntityTypeName;\n const draftId = _getDraftId(entity);\n if (!draftId) {\n await (new Promise((resolve, reject) => {\n // for new documents, we need to save draft first and then attach file to the draft\n storage.emitter.emit(ModelEvent.RequestCreateDraft, async () => {\n // attachInboxFile after draft has been created\n try {\n await _attachInboxFile(entityType, _getDraftId(entity));\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n }));\n } else {\n await _attachInboxFile(entityType, draftId);\n }\n } else {\n // new entity which does not support draft\n const inboxEntities = (await loadInboxFileMetadata(storage.oData, inboxFiles));\n storage.setCustomData({\n inboxFilesToConvert: [\n ...(storage.getCustomData().inboxFilesToConvert ?? []),\n ...(inboxEntities ?? [])\n ]\n });\n const attachments = inboxEntities.map(inboxFile => {\n return this.props.fileProperty ? {\n Id: inboxFile.FileMetadata?.Id,\n [this.props.fileProperty]: inboxFile.FileMetadata\n } : inboxFile.FileMetadata;\n }) as IEntityAttachmentEntity[];\n this.updateEntity([\n ...this.getCollection(),\n ...attachments\n ], false);\n if (attachments.length && this.props.fileProperty) {\n this.props.onFilesUploaded?.(attachments.map(item => item[this.props.fileProperty as keyof IEntityAttachmentEntity] as IFileMetadataEntity));\n }\n this.forceUpdate();\n }\n return true;\n };\n\n getOdataErrorMessage = (error: ODataError | Error) => {\n return getFileStorageUploadErrorMessage(error);\n };\n\n showUploadErrorAlert = (error: string) => {\n this.showErrorAlert(this.props.storage.t(`Components:FileUploader.UploadError`), error);\n };\n\n showUpdateErrorAlert = (error: string) => {\n this.showErrorAlert(this.props.storage.t(`Components:FileUploader.UpdateError`), error);\n };\n\n showErrorAlert = (title: string, subTitle: string) => {\n this.props.setAlert({\n title,\n subTitle,\n status: Status.Error\n });\n };\n\n getQueryableEntityPath = () => {\n const isNew = this.isNew;\n const bindingContext = this.getCollectionBc();\n const draftId = this.props.storage.data.entity[this.props.storage.data.definition?.draftDef?.draftProperty]?.Id;\n const isDraftSaved = !!draftId;\n\n return !isNew ? bindingContext.toString()\n : (isDraftSaved ? `${this.props.storage.data.definition.draftDef.draftEntitySet}(${draftId})/${this.props.collection}` : null);\n };\n\n handleRemoveFiles = async (files: TId[]) => {\n return this.removeFiles(\n files.map(file => this.getCleanFileId(file.toString()))\n );\n };\n\n removeFiles = async (fileIds: number[]) => {\n if (!fileIds || fileIds.length === 0) {\n return;\n }\n\n this.setBusy(true);\n\n const items = [...this.getCollection()];\n\n const batch: BatchRequest = this.props.storage.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n const queryableEntityPath = this.getQueryableEntityPath();\n const queryableEntity = queryableEntityPath ? batch.fromPath(this.getQueryableEntityPath()) : null;\n\n for (const fileId of fileIds) {\n const index = items.findIndex(this.itemContainsFile(fileId));\n const item: IEntity = items.splice(index, 1)[0];\n\n queryableEntity?.delete(item.Id);\n }\n\n if (queryableEntity) {\n await batch.execute();\n }\n\n const { storage } = this.props;\n const inboxFiles = storage.getCustomData().inboxFilesToConvert;\n if (inboxFiles?.length) {\n const newInboxFiles = inboxFiles.filter(item => !fileIds?.includes(item.FileMetadata?.Id));\n storage.setCustomData({ inboxFilesToConvert: newInboxFiles });\n }\n\n this.updateEntity(items);\n this.setBusy(false);\n };\n\n updateFile = async (fileId: number, values: IEntity) => {\n this.setBusy(true);\n\n const items = [...this.getCollection()];\n const itemIndex = items.findIndex(this.itemContainsFile(fileId));\n const fileEntitySet = this.getCollectionBc().navigate(\"File\").getEntitySet();\n const queryable = this.props.storage.oData.fromPath(fileEntitySet.getName());\n\n try {\n await queryable.update(fileId, values);\n\n if (this.props.fileProperty) {\n items[itemIndex][this.props.fileProperty] = {\n ...items[itemIndex][this.props.fileProperty],\n ...values\n };\n } else {\n items[itemIndex] = {\n ...items[itemIndex],\n ...values\n };\n }\n\n this.updateEntity(items);\n } catch (error) {\n this.showUpdateErrorAlert(this.getOdataErrorMessage(error));\n }\n\n this.setBusy(false);\n };\n\n handleFileClick = (fileId: TId) => {\n const fileMetadata = this.getFileMetadata(this.getCleanFileId(fileId.toString()));\n this.props.onFileClick?.(fileMetadata);\n };\n\n handleFileRename = async (fileName: string) => {\n const fileId = this.state.showRenameFile;\n const cleanFileId = this.getCleanFileId(fileId.toString());\n const fileNames = this.getFiles().filter(f => f.id !== fileId).map(f => f.name);\n\n await this.updateFile(cleanFileId, { Name: getUniqueFileName(fileName, fileNames) });\n this.handleRenameDialogClose();\n };\n\n handleFileAction = async (args: IFileActionEvent) => {\n const fileId = this.getCleanFileId(args.id.toString());\n\n switch (args.action) {\n case FileAction.Download:\n FileStorage.download(fileId);\n break;\n case FileAction.Info:\n this.setInfoDialog(fileId);\n break;\n case FileAction.Rename:\n this.setState({ showRenameFile: args.id });\n break;\n case FileAction.Delete:\n const isConfirmed = await this.props.confirmationDialog.open({\n content: this.props.t(\"Common:Confirmations.ConfirmDelete\")\n });\n\n if (isConfirmed) {\n this.removeFiles([fileId]);\n }\n\n break;\n default:\n if (this.props.onCustomFileAction) {\n const fileMetadata = this.getFileMetadata(fileId);\n const attachId = this.getAttachmentId(args.id.toString());\n this.props.onCustomFileAction(fileMetadata, args.action, attachId);\n }\n\n break;\n }\n };\n\n setBusy = (busy: boolean) => {\n this.setState({\n busy\n });\n };\n\n setInfoDialog = (file: number) => {\n this.setState({\n showInfoForFile: file\n });\n };\n\n handleCloseInfoDialog = () => {\n this.setInfoDialog(null);\n };\n\n renderInfoDialog = () => {\n const fileBindingContext = this.getFileBindingContext(this.state.showInfoForFile);\n const fileMetadata = this.props.storage.getValue(fileBindingContext);\n\n return (\n \n );\n };\n\n handleRenameDialogClose = () => {\n this.setState({ showRenameFile: null });\n };\n\n renderRenameDialog = () => {\n const fileId = this.getCleanFileId(this.state.showRenameFile.toString());\n const fileBindingContext = this.getFileBindingContext(fileId);\n const fileMetadata = this.props.storage.getValue(fileBindingContext);\n\n return (\n \n );\n };\n\n getCustomFileActions = (fileId: TId): ISelectItem[] => {\n if (!this.props.customFileActions) {\n return null;\n }\n\n const fileMetadata = this.getFileMetadata(this.getCleanFileId(fileId.toString()));\n\n return this.props.customFileActions(fileMetadata, this.props.storage);\n };\n\n hideInboxFileIds = memoizeOne(() => {\n return this.props.storage.getCustomData().inboxFilesToConvert?.map(item => item.Id);\n }, () => [this.props.storage.getCustomData().inboxFilesToConvert]);\n\n render() {\n const { bindingContext } = this.props.storage?.data ?? {};\n if (!bindingContext) {\n return null;\n }\n\n return (\n <>\n {this.props.alert}\n {!!this.state.showInfoForFile && this.renderInfoDialog()}\n {!!this.state.showRenameFile && this.renderRenameDialog()}\n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"], { withRef: true })(withAlert({\n autoHide: true,\n position: AlertPosition.CenteredBottom\n})(withConfirmationDialog(SmartFileUploader)));","import styled from \"styled-components/macro\";\nimport { DropArea, DROPAREA_PADDING, DropAreaWithPadding } from \"@components/fileUploader\";\nimport View from \"../View\";\n\nexport const FileViewStyled = styled(View)`\n ${DropArea} {\n ${DropAreaWithPadding};\n margin-top: ${DROPAREA_PADDING}px;\n }\n`;","import { AlertPosition } from \"@components/alert/Alert\";\nimport { WithAlert, withAlert } from \"@components/alert/withAlert\";\nimport { WithConfirmationDialog, withConfirmationDialog } from \"@components/dialog/withConfirmationDialog\";\nimport {\n fileNameToMime,\n getFileNameExtension,\n getUniqueFileName,\n splitFileName\n} from \"@components/fileUploader/File.utils\";\nimport {\n FileToolbarItem,\n getFileNameFromSrc,\n getFileViewer,\n IFileViewerProps,\n isFileOpenable\n} from \"@components/fileViewers/FileViewers.utils\";\nimport { HotspotViewIds } from \"@components/hotspots/HotspotViewIds\";\nimport { ISelectItem } from \"@components/inputs/select/Select.types\";\nimport { DocumentEntity, IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { getCleanDraftKey } from \"@pages/PageUtils\";\nimport { removeWhiteSpace } from \"@utils/string\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport SmartField, {\n ISmartFieldChange,\n ISmartFieldTempDataActionArgs\n} from \"../../components/smart/smartField/SmartField\";\nimport SmartFileUploader from \"../../components/smart/smartFileUploader/SmartFileUploader\";\nimport { FILES_API_URL } from \"../../constants\";\nimport { ModelEvent } from \"../../model/Model\";\nimport BindingContext, { areBindingContextsDifferent, IEntity } from \"../../odata/BindingContext\";\nimport { getAlertFromError } from \"../formView/Form.utils\";\nimport { FormStorage } from \"../formView/FormStorage\";\nimport { FileViewStyled } from \"./FileView.styles\";\nimport { getFileNameWriteLineDef, getFiles } from \"./FileViewUtils\";\n\ninterface IProps extends WithConfirmationDialog, WithTranslation, WithAlert {\n formStorage: FormStorage;\n isVisible?: boolean;\n isBusy?: boolean;\n onNewFiles?: () => void;\n onFilesUploaded?: (isFirstUpload: boolean) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n /** Can be used in case current entity uses FileView which has global file drop area.\n *otherFileDropArea is list of elements, that handles file drop for themselves, outside of the FileView.\n * When user hovers files over them, in case this FileDropArea is global,\n * we should disable hover state in this FileDropArea, so that use knows which of the drop areas will be used. */\n otherFileDropAreas?: HTMLElement[];\n\n ref?: React.RefObject;\n}\n\ninterface IState {\n selectedFile: IFileMetadataEntity;\n}\n\nclass FileView extends React.PureComponent {\n state: IState = {\n selectedFile: null\n };\n\n formBcBackup: BindingContext = null;\n hasFormBcChanged = true;\n filesProperty: string;\n\n componentDidMount() {\n if (this.props.isVisible) {\n this.init();\n this.formBcBackup = this.props.formStorage?.data?.bindingContext;\n }\n }\n\n getAttachmentsBc = (): BindingContext => {\n return this.props.formStorage.data.bindingContext.navigate(DocumentEntity.Attachments);\n };\n\n getFileNameBc = (): BindingContext => {\n const attachment = this.props.formStorage.data.entity?.Attachments?.find((attachment: IEntity) => attachment[this.filesProperty].Id === this.state.selectedFile.Id);\n\n if (!attachment) {\n return null;\n }\n\n return this.getAttachmentsBc()\n .addKey(attachment.Id)\n .navigate(`${this.filesProperty}/Name`);\n };\n\n init = () => {\n this.hasFormBcChanged = false;\n this.initFiles();\n };\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n const { formStorage } = this.props;\n if (areBindingContextsDifferent(this.formBcBackup, formStorage?.data?.bindingContext)) {\n this.hasFormBcChanged = true;\n }\n\n // we want to automatically pre-open file, if only one is present\n // but only the first time FileView is opened\n // this should reset everytime selected row changes\n const isLoaded = !!(formStorage?.loaded && !formStorage?.isBusy());\n if (isLoaded && this.props.isVisible && this.hasFormBcChanged) {\n this.init();\n }\n\n this.formBcBackup = formStorage?.data?.bindingContext;\n }\n\n getCurrentForm = () => {\n return this.props.formStorage?.data?.definition;\n };\n\n isFormReadOnly = () => {\n return this.props.formStorage?.isReadOnly;\n };\n\n handleFileChange = (file: IFileMetadataEntity, preventDownload?: boolean) => {\n this.setState({\n selectedFile: file\n });\n };\n\n handleNewFiles = () => {\n this.props.onNewFiles?.();\n if (this.state.selectedFile) {\n this.setState({\n selectedFile: null\n });\n }\n };\n\n handleFilesUploaded = (files: IFileMetadataEntity[]) => {\n const isFirstUpload = files.length === 1 && getFiles(this.props.formStorage).length === 1;\n this.props.onFilesUploaded?.(isFirstUpload);\n this.props.formStorage.emitter.emit(ModelEvent.FilesUploaded, files);\n\n if (isFirstUpload) {\n const file = files[0];\n this.filesProperty = this.getCurrentForm().files.property;\n if (isFileOpenable(file.Name)) {\n this.handleFileChange(file, true);\n }\n }\n };\n\n handleReturnFromFile = () => {\n this.props.formStorage.cancelFields([this.getFileNameBc()]);\n this.setState({\n selectedFile: null\n });\n };\n\n initFiles = () => {\n const filesDef = this.getCurrentForm()?.files;\n if (!filesDef) {\n return;\n }\n\n const files = getFiles(this.props.formStorage);\n this.filesProperty = filesDef.property;\n const selectedFile = files?.length === 1 && (this.filesProperty ? files[0][this.filesProperty] : files[0]);\n\n if (isFileOpenable(selectedFile.Name)) {\n this.handleFileChange(selectedFile, true);\n } else {\n this.setState({\n selectedFile: null\n });\n }\n };\n\n handleFileRemove = async (src: string) => {\n const isConfirmed = await this.props.confirmationDialog.open({\n content: this.props.formStorage.t(\"Common:Confirmations.ConfirmDelete\")\n });\n\n if (!isConfirmed) {\n return;\n }\n\n const fileId = parseInt(getFileNameFromSrc(src));\n const attachmentsBc = this.getAttachmentsBc();\n const attachments: IEntity[] = this.props.formStorage.getValue(attachmentsBc);\n\n const attachmentId = attachments.find((attachment: IEntity) => attachment[this.filesProperty].Id === fileId).Id;\n const isDraft = !!this.props.formStorage.data.entity[this.props.formStorage.data.definition.draftDef.draftProperty]?.Id;\n let path = attachmentsBc.toString();\n\n if (isDraft) {\n path = `${this.props.formStorage.data.definition.draftDef.draftEntitySet}(${getCleanDraftKey(this.props.formStorage.data.bindingContext.getKey())})/${DocumentEntity.Attachments}`;\n }\n\n const queryable = this.props.formStorage.oData.fromPath(path);\n\n try {\n await queryable.delete(attachmentId);\n\n this.props.formStorage.setValueToEntityAndOrigEntity(attachmentsBc, attachments.filter(attachment => attachment.Id !== attachmentId));\n\n this.setState({\n selectedFile: null\n });\n } catch (e) {\n this.props.setAlert({\n ...getAlertFromError(e),\n isSmall: false\n });\n }\n };\n\n handleFileNameChange = (e: ISmartFieldChange) => {\n const originalName = this.props.formStorage.getValue(this.getFileNameBc());\n const extension = getFileNameExtension(originalName);\n\n if (extension) {\n e.value = `${e.value || \"\"}.${extension}`;\n }\n\n this.props.formStorage.handleTemporalChange(e);\n this.props.formStorage.refreshFields();\n };\n\n handleFileNameCancel = (args: ISmartFieldTempDataActionArgs) => {\n this.props.formStorage.handleCancel(args)\n .then(() => this.props.formStorage.refreshFields());\n };\n\n /** Can be triggered by pressing enter or clicking on confirm button.*/\n handleFileNameConfirm = async (args: ISmartFieldTempDataActionArgs) => {\n const fileNameBc = this.getFileNameBc();\n const fileName = this.props.formStorage.getValue(fileNameBc);\n let { prefix } = splitFileName(fileName);\n\n prefix = removeWhiteSpace(prefix);\n\n // if the WriteLine is confirmed when empty,\n // restore the original file name\n if (!prefix) {\n await this.props.formStorage.handleCancel(args);\n this.props.formStorage.refreshFields();\n return;\n }\n\n const fileEntitySet = fileNameBc.getParent().getEntitySet();\n const queryable = this.props.formStorage.oData.fromPath(fileEntitySet.getName());\n\n const attachments: IEntity[] = getFiles(this.props.formStorage);\n const uniqueName = getUniqueFileName(fileName, attachments.filter(attachment => attachment[this.filesProperty].Id !== this.state.selectedFile.Id).map(attachment => attachment[this.filesProperty].Name));\n\n await this.props.formStorage.handleConfirm(args);\n\n if (uniqueName !== fileName) {\n this.props.formStorage.setValue(fileNameBc, uniqueName);\n }\n\n this.props.formStorage.refreshFields();\n\n queryable.update(this.state.selectedFile.Id, {\n Name: uniqueName\n });\n\n };\n\n renderFileNameChange = () => {\n const fileNameBc = this.getFileNameBc();\n\n // form bc has changed, but selectedFile is not yet correctly updated\n if (!fileNameBc) {\n return null;\n }\n\n return (\n \n );\n };\n\n renderFileViewer = () => {\n const fileNameBc = this.getFileNameBc();\n\n // form bc has changed, but selectedFile is not yet correctly updated\n if (!fileNameBc) {\n return null;\n }\n\n return (\n this.getFileViewer()\n );\n };\n\n handleFileViewerOnCustomFileAction = (actionId: string) => {\n this.props.formStorage.emitter.emit(ModelEvent.CustomFileAction,\n {\n file: this.state.selectedFile,\n action: actionId\n }\n );\n };\n\n getFileViewer = () => {\n const form = this.getCurrentForm();\n const mime = fileNameToMime(this.state.selectedFile.Name);\n const src = `${FILES_API_URL}/${this.state.selectedFile.Id}`;\n const isReadOnly = this.isFormReadOnly();\n\n const customFileActions = form?.getCustomAttachmentFileActions?.(this.state.selectedFile, this.props.formStorage);\n\n const props: IFileViewerProps = {\n src,\n isReadOnly,\n fileName: this.state.selectedFile.Name,\n hiddenItems: isReadOnly && getFiles(this.props.formStorage)?.length === 1 ? [FileToolbarItem.Dashboard] : [],\n onGoToList: this.handleReturnFromFile,\n isRemoveDisabled: !!this.props.formStorage.getBackendDisabledFieldMetadata(this.getAttachmentsBc())?.cannotDelete,\n onFileRemove: this.handleFileRemove,\n customFileActions: customFileActions ?? null,\n onCustomFileAction: this.handleFileViewerOnCustomFileAction\n };\n\n return getFileViewer(mime, props);\n };\n\n handleDragEnter = (event: DragEvent) => {\n this.props.onDragEnter?.(event);\n };\n\n handleDragLeave = (event: DragEvent) => {\n this.props.onDragLeave?.(event);\n };\n\n handleCustomFileAction = (file: IFileMetadataEntity, actionId: string, attachId: number) => {\n this.props.formStorage.emitter.emit(ModelEvent.CustomFileAction, { file: file, action: actionId, attachId });\n };\n\n getCustomFileActionsItems = (file: IFileMetadataEntity, storage: FormStorage): ISelectItem[] => {\n const form = this.getCurrentForm();\n\n return form?.getCustomAttachmentFileActions?.(file, storage)?.map(item => {\n return {\n id: item.id,\n label: item.label,\n iconName: item.iconName,\n isDisabled: item.isDisabled || item.isBusy\n } as ISelectItem;\n });\n\n };\n\n render() {\n const form = this.getCurrentForm();\n const isBusy = this.props.isBusy || !this.props.formStorage?.loaded;\n return (<>\n {this.props.alert}\n {/*file name writeline has to be outside of scroll bar*/}\n {/*because it's in the padding area of the parent*/}\n {this.state.selectedFile &&\n this.renderFileNameChange()\n }\n }>\n {this.state.selectedFile &&\n this.renderFileViewer()\n }\n \n \n );\n }\n}\n\nexport default withTranslation([\"Document\", \"Components\"], { withRef: true })(withAlert({ position: AlertPosition.CenteredBottom })(withConfirmationDialog(FileView)));","import { FormStorage } from \"../formView/FormStorage\";\nimport { BasicInputSizes, FieldType, LabelStatus, TextAlign } from \"../../enums\";\nimport { getFileNameOnly } from \"@components/fileUploader/File.utils\";\nimport { TFunction } from \"i18next\";\nimport { IFieldInfoProperties } from \"@components/smart/FieldInfo\";\n\nexport const APPLY_ISDOC_ACTION = \"applyIsDoc\";\nexport const APPLY_ROSSUM_ACTION = \"applyRossum\";\n\nexport const getFiles = (formStorage: FormStorage) => {\n const formDefinition = formStorage?.data?.definition;\n if (!formDefinition?.files || !formStorage.data.bindingContext) {\n return [];\n }\n\n const filesBc = formStorage.data.bindingContext.navigate(formDefinition.files.collection);\n\n return formStorage.getValue(filesBc);\n};\n\nexport const getFileNameWriteLineDef = (t: TFunction): IFieldInfoProperties => ({\n type: FieldType.WriteLine,\n width: BasicInputSizes.L,\n labelStatus: LabelStatus.Removed,\n textAlign: TextAlign.Left,\n isConfirmable: true,\n isRequired: false,\n fieldSettings: {\n isExtending: true,\n formatter: getFileNameOnly,\n placeholder: t(\"Components:FileUploader.Name\")\n }\n});","import { IEntity } from \"@odata/BindingContext\";\nimport React, { ReactElement } from \"react\";\n\nimport Dialog, { IDialogProps } from \"../../components/dialog\";\nimport ConfirmationButtons from \"../table/ConfirmationButtons\";\nimport { IProps } from \"./Form\";\nimport { IFormStorageDefaultCustomData } from \"./FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"./FormView\";\n\nexport interface IDialogFormViewProps extends IFormViewProps {\n dialogProps?: Omit & { title?: string };\n // called after successful form save, with data received from the save method\n onAfterConfirm?: (savedData: IEntity) => void;\n onClose?: () => void;\n getCustomFooter?: (args: IGetCustomFooterArgs) => React.ReactElement;\n confirmText?: string;\n}\n\ninterface IGetCustomFooterArgs {\n onConfirm: () => void;\n onClose: () => void;\n}\n\nclass DialogFormView = IDialogFormViewProps, S = Record> extends FormViewForExtend {\n static defaultProps: Partial> = {\n isInDialog: true,\n hideButtons: true\n };\n\n // override to pass props necessary for DialogFormView.\n // defaultProps are not enough, because PlugAndPlay form passes some formProps as well\n getFormProps = (): Partial => {\n return {\n hideHeader: true,\n hideBreadcrumbs: true,\n withoutPadding: true,\n withoutPaddingForAlert: true,\n renderScrollbar: false,\n ...this.props.formProps\n };\n };\n\n handleDialogConfirm = async (): Promise => {\n this.props.storage.setBusy(true);\n\n const result = await this.save();\n\n this.props.storage.setBusy(false);\n\n if (result) {\n this.props.onAfterConfirm?.(result.data);\n }\n };\n\n getFooter = (): ReactElement => {\n if (this.props.getCustomFooter) {\n return this.props.getCustomFooter({\n onConfirm: this.handleDialogConfirm,\n onClose: this.props.onClose\n });\n }\n\n return (\n \n );\n };\n\n render() {\n const { aretateWidth, aretateHeight, ...passProps } = this.props.dialogProps ?? {};\n return (\n

    \n {this.isReady() && this.renderForm()}\n \n );\n }\n}\n\nexport default DialogFormView;","import { ISmartODataTableAPI } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { ODataError } from \"@odata/Data.types\";\nimport { saveEntity } from \"@odata/Data.utils\";\nimport {\n CorrectiveInvoiceReceivedEntity,\n DocumentEntity,\n EntitySetName,\n IBankTransactionEntity,\n ICompanyEntity,\n IDocumentDraftEntity\n} from \"@odata/GeneratedEntityTypes\";\nimport { DocumentTypeCode } from \"@odata/GeneratedEnums\";\nimport { BatchRequest, isBatchResultOk } from \"@odata/OData\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { amountFields } from \"@pages/documents/corrective/CommonCorrectiveSharedUtils\";\nimport { DRAFT_ITEM_ID_PATH } from \"@pages/documents/Document.utils\";\nimport { getCompanyCurrency } from \"@utils/CompanyUtils\";\nimport { isDefined, isNotDefined } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { UnregisterCallback } from \"history\";\nimport { debounce } from \"lodash\";\nimport React, { ReactElement } from \"react\";\n\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport SmartFormDeleteButton from \"../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\nimport SmartTableManager from \"../../components/smart/smartTable/SmartTableManager\";\nimport { NEW_ITEM_DETAIL, SAVE_DRAFT_DELAY } from \"../../constants\";\nimport { ContextEvents } from \"../../contexts/appContext/AppContext.types\";\nimport { PageViewMode, QueryParam } from \"../../enums\";\nimport BindingContext, { areBindingContextsDifferent, createBindingContext, IEntity } from \"../../odata/BindingContext\";\nimport { getQueryParameters, setQueryParams } from \"../../routes/Routes.utils\";\nimport { getAlertFromError } from \"./Form.utils\";\nimport { IFormStorageDefaultCustomData, IFormStorageSaveResult, ISaveArgs } from \"./FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"./FormView\";\n\nexport interface IDraftFormViewProps extends IFormViewProps {\n preventDraftSave?: boolean;\n withoutButtons?: boolean;\n}\n\ninterface IEntityWithDraft extends IEntity {\n DocumentTypeCode?: string;\n Company?: ICompanyEntity;\n Amount?: number;\n TransactionAmount?: number;\n}\n\nclass DraftFormView = IDraftFormViewProps, S = Record> extends FormViewForExtend {\n _lastUsedStorageBc: BindingContext = null;\n _isDeletingDraft = false;\n _savingDraftPromise: Promise = null;\n _copyAmountFromDraft = false;\n\n _unblockUrlChanges: UnregisterCallback;\n _ignoreNextBlock = false;\n\n documentTypeCode: DocumentTypeCode = null;\n\n get _documentItemDomainType(): string {\n return null;\n }\n\n get preventDraftSave(): boolean {\n return !!getQueryParameters()?.[QueryParam.PreventDraftSave] || this.props.preventDraftSave || this.props.formProps?.isSimple || !!this.props.storage.getEditOverride();\n }\n\n get savedDraftKey(): string {\n // when called in catchUrlChanges, url in browser is already changed, but storage.history still has previous one\n return getQueryParameters({ historyLocation: this.props.storage.history?.location })[QueryParam.DraftId];\n }\n\n get draftProp(): keyof E {\n return this.props.storage.data.definition.draftDef.draftProperty as keyof E;\n }\n\n get draftEntitySet(): EntitySetName {\n return this.props.storage.data.definition.draftDef.draftEntitySet;\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.catchUrlChanges();\n window.addEventListener(\"beforeunload\", this.handlePageUnload);\n }\n\n async saveWithMove() {\n const result = await this.save({\n skipAfterSave: true\n });\n\n if (result) {\n this.props.storage.setFormAlert(null);\n this.props.onOpenNextDraft?.();\n }\n }\n\n handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n if (!this.canProcessShortcuts()) {\n return false;\n }\n\n if (shortcut === KeyboardShortcut.ALT_SHIFT_S && this.isDraftView()) {\n if (!this.shouldDisableSaveButton()) {\n this.saveWithMove();\n }\n\n return true;\n }\n\n return super.handleKeyboardShortcut(shortcut, event);\n }\n\n // because PureForm is re-rendered before FormStorage.updateTabsVisibility is called\n componentDidUpdate(prevProps: Readonly

    , prevState: Readonly): void {\n const lastUsedStorageBc = this._lastUsedStorageBc;\n\n if (areBindingContextsDifferent(this.props.storage.data.bindingContext, lastUsedStorageBc)) {\n this._lastUsedStorageBc = this.props.storage.data.bindingContext;\n\n if (lastUsedStorageBc || this.entity.TransactionCurrency?.Code !== getCompanyCurrency(this.props.storage.context)) {\n this.resetFormTabsTable();\n }\n if (this.props.storage.isBusy && this._removeBusyAfterUpdate) {\n // when saving draft from new entity, we need to keep the busy state until we have correct\n // bindingContext in storage, which is changed according to URL in SplitPageBase,\n // so we wait on next didUpdate\n this.props.storage.setBusy(false);\n this._removeBusyAfterUpdate = false;\n }\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.flushSaveDraft();\n // can be used inside other contexts like audit trail or recurring tasks, which doesn't have history object, only call conditionally\n this._unblockUrlChanges?.();\n window.removeEventListener(\"beforeunload\", this.handlePageUnload);\n }\n\n /** Temporarily prevents the URL from changing when the user makes modifications to the form and then navigates away.\n * It saves the draft and generates a new draft ID, which is then used to update the browser's history state. */\n catchUrlChanges = (): void => {\n // catch before url is changed, probably equivalent of onbeforeunload event\n // we want to save draft before url change happens, so that we have current bc and company\n // TODO if opened inside editable window dialog, throws this error \"react_devtools_backend_compact.js:2367 Warning: A history supports only one prompt at a time \"\n this._unblockUrlChanges = this.props.storage.history?.block((args) => {\n if (!this._ignoreNextBlock) {\n // pathname is not enough for when changing between drafts => take search in consideration as well\n const isDifferentPath = args.pathname !== this.props.storage.history.location.pathname || args.search !== this.props.storage.history.location.search;\n\n if (isDifferentPath) {\n this.flushSaveDraft();\n\n if (this.props.storage.data.bindingContext?.isNew() && !this.savedDraftKey) {\n const newDraftId = this.entity.DocumentDraft?.Id;\n\n if (newDraftId) {\n this._ignoreNextBlock = true;\n this.redirectToDraftPage(newDraftId, true);\n } else {\n const draftPromise = this._savingDraftPromise ?? this.saveDraftDebounced.flush();\n\n if (draftPromise) {\n this.props.storage.setBusy(true);\n // wait until the draft is saved\n draftPromise.then((newDraftId) => {\n // request can fail and return null\n if (newDraftId) {\n this._ignoreNextBlock = true;\n this.redirectToDraftPage(newDraftId, true);\n }\n\n this.props.storage.setBusy(false);\n // navigate to the original path\n this._ignoreNextBlock = true;\n this.props.storage.history.push(args);\n });\n // block url change until draft is saved\n return false;\n }\n }\n }\n }\n } else {\n this._ignoreNextBlock = false;\n }\n\n // don't actually block the url change\n return null;\n });\n };\n\n // Tab close/refresh (pageUnload) is not handled by catchUrlChanges,\n // it has to be handled here.\n // This handler cannot be async, so it is only going to work if the newDraftId is already available.\n handlePageUnload = (event: BeforeUnloadEvent): void => {\n this.flushSaveDraft();\n\n if (this.props.storage.data.bindingContext.isNew() && !this.savedDraftKey) {\n const newDraftId = this.entity.DocumentDraft?.Id;\n\n if (newDraftId) {\n this._ignoreNextBlock = true;\n this.redirectToDraftPage(newDraftId, true);\n }\n }\n };\n\n\n isDraftView = (): boolean => {\n return !!this.savedDraftKey;\n };\n\n shouldDisableDraftButton = (): boolean => {\n const isNew = this.props.storage.data.bindingContext.isNew();\n const isDirty = this.props.storage.isDirty(this.props.storage.data.bindingContext);\n\n return !isNew && !isDirty;\n };\n\n // => reset table manually\n resetFormTabsTable = (): void => {\n const activeTab = this.props.storage.getGroupStatus(\"Tabs\");\n const tabDef = this.props.storage.data.definition?.groups?.find(group => group.id === \"Tabs\")?.tabs?.find(tab => tab.id === activeTab?.activeTab);\n\n if (tabDef?.table.id) {\n (SmartTableManager.getTable(tabDef?.table.id) as ISmartODataTableAPI)?.reset();\n }\n };\n\n handleSaveDraft = async (): Promise => {\n await this.saveDraftAndApplyEffects();\n };\n\n flushSaveDraft = async (): Promise => {\n await this.saveDraftDebounced.flush();\n };\n\n getCopyExcludeProps = (): string[] => {\n return [\n DocumentEntity.SymbolVariable, DocumentEntity.NumberTheirs,\n CorrectiveInvoiceReceivedEntity.ExternalCorrectedDocumentNumber\n ];\n };\n\n /** Changes url to \"new\" and presets the document with current data OR in draft view creates a new draft */\n handleCopy = async (): Promise => {\n const { storage } = this.props;\n storage.setBusy(true);\n const copy = this.createEntityCopy({\n copyDataToNewDocument: true,\n excludeProps: this.getCopyExcludeProps()\n });\n if (this.isDraftView()) {\n const draftId = await this.createNewDraft(copy);\n if (draftId) {\n setQueryParams({\n history: storage.history,\n newParams: { [QueryParam.DraftId]: draftId }\n });\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n this.props.onTableRefreshNeeded();\n }\n } else {\n storage.setCustomData({\n initialData: copy\n });\n this.props.onAdd?.();\n }\n this._removeBusyAfterUpdate = true;\n };\n\n // todo would be nice to have this in formStorage, so that it is not tied to view and can be called from anywhere\n // probably all the draft related methods should be in formStorage\n deleteDraft = async (draftId?: number): Promise => {\n if (this._isDeletingDraft === true) {\n return;\n }\n this._isDeletingDraft = true;\n this.saveDraftDebounced.cancel();\n const newId = await this._savingDraftPromise;\n const idToRemove = draftId ?? this.entity[this.draftProp]?.Id ?? newId;\n if (idToRemove) {\n await this.props.storage.oData.getEntitySetWrapper(this.props.storage.data.definition.draftDef.draftEntitySet).delete(idToRemove);\n this.entity[this.draftProp] = null;\n this.forceUpdate(); // reload footer buttons\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n this._isDeletingDraft = false;\n };\n\n handleDiscardChanges = async (): Promise => {\n await this.deleteDraft();\n const bc = this.props.storage.data.bindingContext;\n if (bc.isNew()) {\n // !!! order matters\n // in draftView, discard changes acts like delete, so we need to reload table, but stay on draftTable\n const wasDraftView = this.isDraftView();\n wasDraftView && this.props.onTableRefreshNeeded();\n this.props.onCancel?.();\n wasDraftView && setQueryParams({\n history: this.props.storage.history,\n newParams: { [QueryParam.Drafts]: \"true\" }\n });\n } else {\n this.props.onTableRefreshNeeded({ refreshRowOnly: true, rowBc: this.getCorrectRowBc() });\n this.props.onCancel?.();\n }\n };\n\n getKey = (): string => {\n const draftProp = this.props.storage.data.definition.draftDef.draftProperty;\n\n return this.entity?.[draftProp]?.Id ?? this.savedDraftKey;\n };\n\n getDraftBc = (): BindingContext => {\n const key = this.getKey();\n return createBindingContext(this.draftEntitySet, this.props.storage.oData.metadata).addKey(key ?? NEW_ITEM_DETAIL, !key);\n };\n\n // saveDraftSync must not be async because savingDraftPromise check should be done synchronously\n // not to duplicate the new draft request.\n saveDraftSync = (updateTable = true): Promise => {\n if (this.preventDraftSave) {\n return null;\n }\n const { storage } = this.props;\n // this is draft only entity - there is draft table on the left, entity has not been saved yet.\n const isDraftOnly = storage.data.bindingContext.isNew();\n\n const draftProp = storage.data.definition.draftDef.draftProperty;\n const key = this.getKey();\n\n if (this._savingDraftPromise && !key) {\n // if new draft is already saving, wait for it to end, to get the new draftId\n // we don't need to wait for it to end if we already have draftId - we just need to fire request with the last changes\n return this._savingDraftPromise.then(() => this.saveDraftSync(updateTable));\n }\n\n const documentTypeCode = this.documentTypeCode;\n // during evaluation of this function, row can be change and storage will have new data loaded\n // => copy everything from storage that we need to use, but do not use _.cloneDeep, because it will try copy all the data (html references) and can freeze everything\n const storageCopyData = {\n entity: { ...this.entity },\n draft: { ...storage.getCustomData().draft },\n draftEtag: storage.getCustomData().draftEtag,\n bindingContext: storage.data.bindingContext\n };\n\n const entity = this.entity;\n const draftBc = this.getDraftBc();\n\n this._savingDraftPromise = new Promise(async (resolve, reject) => {\n // first call prepareDataForSave and AFTER createEntityCopy, because createEntityCopy removes some unwanted properties\n const preparedData = await this.prepareDataForSave(entity, true);\n const draftData = this.createEntityCopy({\n includeAttachments: true,\n includeDocumentLinks: true,\n entity: preparedData,\n skipInvalidProps: true\n }) as IEntity;\n\n const batch: BatchRequest = storage.oData.batch();\n batch.beginAtomicityGroup(\"draft\");\n\n if (draftBc.isNew()) {\n // remove copied Id from the document\n delete draftData.Id;\n }\n\n const navigationToEntity = storage.data.definition.draftDef.navigationFromDraft;\n const navigationToItem = storage.data.definition.draftDef.navigationToItem;\n\n draftData[navigationToEntity] = isDraftOnly ? null : {\n Id: entity.Id,\n _metadata: {\n \"\": { type: `#Solitea.Evala.DomainModel.${documentTypeCode}` }\n }\n };\n\n draftData.DocumentTypeCode = documentTypeCode;\n draftData.Company = { Id: entity.Company?.Id ?? this.context.getCompanyId() };\n\n draftData.Items = (draftData.Items ?? []).map((item: IEntity): IEntity => {\n // add reference to original DocumentItem, so we can compare values with original ones\n if (item.Id && draftData[navigationToEntity]?.Id) {\n item[navigationToItem] = {\n Id: item.Id,\n _metadata: {\n \"\": { type: `#Solitea.Evala.DomainModel.${this._documentItemDomainType}` }\n }\n };\n }\n\n const boundDraftId = item[DRAFT_ITEM_ID_PATH];\n if (boundDraftId) {\n item.Id = boundDraftId;\n }\n return item;\n });\n\n saveEntity({\n bindingContext: draftBc,\n entity: draftData,\n originalEntity: storageCopyData.draft,\n etag: storageCopyData.draftEtag,\n batch\n });\n\n if (draftData.Company.Id !== this.context.getCompanyId()) {\n // when user switch company before draft request is send, saving draft would fail or it would lead to\n // unexpected results (save the draft in different company, etc...).\n // todo: We should handle this in another way, for now, just prevent obvious errors\n return null;\n }\n\n try {\n const result = await batch.execute();\n\n if (!isBatchResultOk(result[0])) {\n const error = result[0];\n\n if (storage.isEtagMismatchError(error)) {\n storage.handleEtagMismatchError().then(this.scrollPageUp);\n } else {\n storage.setFormAlert(getAlertFromError(error?.body as ODataError));\n }\n\n this.forceUpdate(this.scrollPageUp);\n\n resolve(null);\n return;\n }\n const savedDraft = result[0]?.body?.value;\n const draftId = result[0]?.body?.value?.Id;\n const draftEtag = result[0].body._metadata.etag;\n\n if (this._isDeletingDraft === true) {\n resolve(draftId);\n return;\n }\n\n storage.setCustomData({\n draftEtag: draftEtag\n });\n\n const _activeRowHasChanged = () => {\n const copiedEntity = storageCopyData.entity;\n return (copiedEntity?.Id && copiedEntity?.Id !== this.entity.Id) ||\n (copiedEntity?.[this.draftProp]?.Id && copiedEntity[draftProp].Id !== this.entity[this.draftProp]?.Id);\n };\n\n if (!_activeRowHasChanged()) {\n const draftData = await storage.queryDraft(storage.data.mergedDefinition, draftId ?? key);\n\n // we have to check again after async call if active row has not changed\n if (!_activeRowHasChanged()) {\n const expandedDraft: IEntity = draftData.draft;\n storage.setCustomData({ draft: expandedDraft });\n\n for (const item of (expandedDraft.Items || [])) {\n const documentItem = storage.data.entity.Items?.find((docItem: IEntity) => {\n return (isDefined(docItem.Id) && docItem.Id === item[navigationToItem]?.Id) || (isNotDefined(docItem.Id) && isNotDefined(docItem[DRAFT_ITEM_ID_PATH]) && docItem.Order === item[navigationToItem].Order);\n });\n if (documentItem) {\n documentItem[DRAFT_ITEM_ID_PATH] = item.Id;\n }\n }\n\n if (draftId) {\n (this.entity[this.draftProp] as IDocumentDraftEntity) = {\n Id: draftId,\n DateLastModified: savedDraft.DateLastModified\n };\n\n // summary items should display current value - https://solitea-cz.atlassian.net/browse/DEV-14449\n\n // BankTransactions/CashReceipts have Amount fields and we don't want to change them here\n // we also want to keep header in sync with draft data only when it's pure draft entity (without saved entity),\n // see DEV-14449 - value from the header should be in sync with table.\n if (this._copyAmountFromDraft && isDraftOnly) {\n amountFields.forEach(field => {\n // only apply new value if the value wasn't changed\n // while the draft was saving\n // e.g. in Corrective documents, TransactionAmount is applied from corrected document\n // and we don't want to override the value with old value from draft\n const prop = field as keyof E;\n\n if (storageCopyData.entity[prop] === this.entity[prop]) {\n this.entity[field as keyof E] = expandedDraft[field];\n }\n });\n }\n\n if (draftBc.isNew()) {\n // we need to reload footer buttons and disable send action\n this.forceUpdate();\n }\n }\n }\n }\n\n this._savingDraftPromise = null;\n resolve(draftId);\n } catch (err) {\n reject(err);\n }\n });\n\n this._savingDraftPromise.catch(() => {\n this._savingDraftPromise = null;\n });\n\n return this._savingDraftPromise.then((draftId) => {\n if (storageCopyData.bindingContext.isNew()) {\n this.context.eventEmitter.emit(ContextEvents.RecalculateDrafts);\n }\n storage.refresh();\n if (updateTable) {\n this.props.onTableRefreshNeeded?.({\n refreshRowOnly: true,\n rowBc: this.getCorrectRowBc()\n });\n }\n\n return draftId;\n });\n };\n\n getCorrectRowBc = (): BindingContext => {\n return this.isDraftView() ? this.getDraftBc() : this.props.storage.data.bindingContext;\n };\n\n saveDraftDebounced = debounce(() => {\n return this.saveDraftSync();\n }, SAVE_DRAFT_DELAY);\n\n /** Saves a draft of the form after the first change is made.\n * Subsequent changes will trigger a delayed save or a save when the user navigates away from the page.*/\n saveDraft = (): Promise => {\n if (this.preventDraftSave) {\n return null;\n }\n\n const draftId = this.entity[this.draftProp]?.Id ?? this.savedDraftKey;\n\n if (!draftId && this.props.storage.data.bindingContext.isNew() && !this._savingDraftPromise) {\n // save draft without redirecting url, to prevent visual changes\n // url will will be replaced in history the moment user tries to navigate away\n return this.saveDraftSync();\n } else {\n return this.saveDraftDebounced();\n }\n };\n\n redirectToDraftPage = (draftId: number, replaceState?: boolean): void => {\n setQueryParams({\n history: this.props.storage.history,\n newParams: {\n [QueryParam.Drafts]: \"true\",\n [QueryParam.DraftId]: draftId.toString()\n },\n replaceState\n });\n };\n\n\n saveDraftAndApplyEffects = async (withoutBusy?: boolean): Promise => {\n const { storage } = this.props;\n\n if (!withoutBusy) {\n storage.setBusy(true);\n }\n\n this.saveDraftDebounced.cancel();\n\n if (this._savingDraftPromise) {\n await this._savingDraftPromise;\n }\n\n try {\n const draftSaved = await this.saveDraftSync(false);\n\n if (draftSaved) {\n // https://solitea-cz.atlassian.net/browse/DEV-13662\n storage.clearAllErrors();\n storage.clearFormAlert();\n\n const bc = storage.data.bindingContext;\n\n if (bc.isNew() && !this.isDraftView()) {\n this.redirectToDraftPage(this.entity[this.draftProp].Id);\n if (!withoutBusy) {\n this._removeBusyAfterUpdate = true;\n }\n // skip set busy -> false\n return;\n } else {\n this.props.onTableRefreshNeeded({ refreshRowOnly: true, rowBc: this.getCorrectRowBc() });\n }\n }\n } catch (error) {\n storage.setFormAlert(getAlertFromError(error));\n this.scrollPageUp();\n }\n\n if (!withoutBusy) {\n storage.setBusy(false);\n }\n };\n\n isSavedWithoutChanges = (): boolean => {\n const isNew = this.props.storage.data.bindingContext.isNew();\n const isChanged = this.props.storage.data.status?.isChanged;\n\n return !isNew && !this.entity[this.draftProp]?.Id && !isChanged;\n };\n\n shouldAllowCopy = (): boolean => {\n return this.props.storage.pageViewMode !== PageViewMode.FormReadOnly && (!this.props.storage.data.bindingContext.isNew() || this.isDraftView());\n };\n\n shouldDisableCopyButton = (): boolean => {\n return this.props.storage.data.disabled\n // most buttons should be disabled when the form is in editOverride mode\n || !!this.props.storage.getEditOverride()\n || (!this.isSavedWithoutChanges() && !this.isDraftView());\n };\n\n renderCustomFooterButtons = (): React.ReactElement => {\n return null;\n };\n\n createNewDraft = async (copy: IEntity): Promise => {\n const storage = this.props.storage;\n const draftBc = createBindingContext(storage.data.definition.draftDef.draftEntitySet, storage.oData.metadata).addKey(NEW_ITEM_DETAIL, true);\n const batch: BatchRequest = storage.oData.batch();\n const data = await this.prepareDataForSave(this.entity, true);\n data.DocumentTypeCode = this.documentTypeCode;\n data.Company = { Id: this.context.getCompany().Id };\n\n delete data.PaymentDocumentDraft;\n\n batch.beginAtomicityGroup(\"draft\");\n saveEntity({\n bindingContext: draftBc,\n entity: data,\n batch\n });\n const result = await batch.execute();\n return (result[0]?.body as ODataQueryResult)?.value?.Id;\n };\n\n async save(saveArgs?: Partial): Promise {\n // if draft save is in progress, wait for it to end, unless it might result to unexpected behavior due\n // to temporal entity processing in onAfterLoad (of the draft)\n await this._savingDraftPromise;\n return super.save(saveArgs);\n }\n\n prepareDataForSave = async (entity: IBankTransactionEntity, isDraft: boolean): Promise => {\n throw Error(`prepareDataForSave must be specified in ${this.constructor.name}`);\n };\n\n renderSaveButtons(): ReactElement {\n throw Error(`renderSaveButtons must be specified in ${this.constructor.name}`);\n }\n\n renderButtons = (): React.ReactElement => {\n if (this.props.withoutButtons) {\n return <>;\n }\n const { storage } = this.props;\n const isFormReadOnly = storage.isReadOnly;\n const isSavedWithoutChanges = this.isSavedWithoutChanges();\n\n return (\n \n {this.isDeletable &&\n \n }\n {!isFormReadOnly &&\n \n }\n {this.renderCustomFooterButtons()}\n\n {!isFormReadOnly &&\n <>\n {this.shouldAllowCopy() && }\n {!this.preventDraftSave &&\n \n }\n {this.renderSaveButtons()}\n \n }\n \n );\n };\n}\n\nexport default DraftFormView;","import { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { IGroupSubItemProps, ISubItemProps } from \"@components/configurationList/Item\";\nimport { getInfoValue, IFieldDef, isRequiredForCustomization } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef, IFormLineItemsDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { forEachKey, isDefined, uuidv4 } from \"@utils/general\";\nimport { isEqual } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport ConfigurationList, {\n COPY_SIGN,\n IConfigList,\n IGroupListGroupDef,\n IGroupListItemDef,\n isCopy\n} from \"../../components/configurationList/ConfigurationList\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport Switch from \"../../components/inputs/switch\";\nimport Tabs, { ITabsProps } from \"../../components/tabs/Tabs\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { ConfigListItemBoundType, FastEntryInputSizes, FieldType, GroupedField } from \"../../enums\";\nimport { TRecordAny, TRecordType } from \"../../global.types\";\nimport BindingContext, { createPath } from \"../../odata/BindingContext\";\nimport ConfirmationButtons from \"../table/ConfirmationButtons\";\nimport { FormStorage } from \"./FormStorage\";\n\ninterface IProps extends WithTranslation, WithBusyIndicator {\n storage: FormStorage;\n title: string;\n}\n\ninterface IState {\n data?: IConfigList;\n itemsData?: IConfigList[];\n selectedTabId: string;\n showItemsSummary?: boolean;\n}\n\ninterface IConvertDataToList {\n allowNewLine?: boolean;\n isFirstColumnMultiGroup?: boolean;\n groups: IFormGroupDef[];\n processedGroups?: IFormGroupDef[];\n processCollection?: boolean;\n}\n\nconst USED_FIELDS_COLUMN_ID = \"used\";\nconst AVAILABLE_FIELDS_COLUMN_ID = \"available\";\nconst AVAILABLE_FIELDS_GROUP_ID = \"_availableFieldsGroup_\";\nconst NEW_LINE_ID = \"_newline_\";\nconst COLLAPSED_ID = \"_collapsed_\";\nconst COMBINED_ID = \"_combined_\";\nconst MAIN_TAB_ID = \"##MAIN_TAB_ID##\";\n\nclass FormCustomizationDialog extends React.Component {\n state: IState = {\n selectedTabId: MAIN_TAB_ID,\n showItemsSummary: false\n };\n\n tabGroup: IFormGroupDef[] = [];\n\n async componentDidMount() {\n const withoutItems = [], itemGroups = [];\n\n for (const group of this.props.storage.getVariant() || []) {\n if (group.tabs || group.table) {\n this.tabGroup.push(group);\n } else if (this.isSpecialGroup(group)) {\n itemGroups.push(group);\n // push also items group to all groups, so we can keep order\n withoutItems.push(group);\n } else {\n withoutItems.push(group);\n }\n }\n\n const itemsDataPromises = itemGroups.filter(group => {\n return !((!group?.lineItems && !group?.collection) || group.customizationData?.useForCustomization === false);\n }).map(group => this.convertItemsDataToList(group));\n \n const [data, ...itemsData] = await Promise.all([this.convertDataToList(withoutItems, itemGroups), ...itemsDataPromises]);\n this.setState({\n data,\n itemsData,\n showItemsSummary: this.getInitialItemsSummarySwitchValue()\n });\n }\n\n isSpecialGroup = (group: IFormGroupDef) => {\n return !!group.lineItems || !!group.collection;\n };\n\n isCustomGroup = (group: IFormGroupDef) => {\n const definedGroups = this.props.storage.data.definition.groups;\n\n if (!definedGroups) {\n return false;\n }\n\n return !definedGroups.find(origGroup => origGroup.id === group.id);\n };\n\n /** If first group in definition is without title,\n * it is supposed to look 'transparent' in the config dialog */\n isGroupFirstDefaultNonGroup = (group: IFormGroupDef) => {\n const definedGroups = this.props.storage.data.definition.groups;\n\n if (!definedGroups) {\n return false;\n }\n\n return definedGroups[0]?.id === group.id && !definedGroups[0].title;\n };\n\n convertDataFromList = (data: IConfigList) => {\n const { storage } = this.props;\n const { definition } = storage.data;\n\n const groups = [];\n for (const groupId of data.columns.used.groupIds) {\n const defGroup = definition.groups.find(group => group.id === groupId);\n const groupList = data.groups[groupId];\n const items = groupList.itemIds;\n let baseBc = storage.data.bindingContext;\n\n const group: IFormGroupDef = {\n ...(defGroup ?? {}),\n id: groupList.id\n };\n\n if (groupList.label && groupList.isLabelEditable) {\n group.title = groupList.label;\n }\n\n if (defGroup?.lineItems) {\n // just initialization, skip type check for mandatory props\n group.lineItems = {} as IFormLineItemsDef;\n baseBc = baseBc.navigate(defGroup.lineItems.collection);\n }\n if (defGroup?.collection) {\n baseBc = baseBc.navigate(defGroup.collection);\n }\n\n const _isBlockField = (info: IFieldInfo) => {\n // block fields are automatically wrapped/on separate row (new line is added before and after)\n return info.type === FieldType.EditableText || info.type === FieldType.TextArea;\n };\n\n const _addRow = () => {\n if (row.length > 0) {\n currentRows.push(row);\n }\n row = [];\n };\n\n let rows: IFieldDef[][] = [];\n let row: IFieldDef[] = [];\n const currentRows = rows;\n\n if (defGroup?.customizationData?.isLocked) {\n rows = defGroup.rows;\n // in case collection group would be locked\n row = defGroup.lineItems?.columns;\n } else {\n let skipNewLine = false;\n\n const _addField = (id: string) => {\n const info = storage.getInfo(baseBc.navigate(id));\n const isBlockElement = _isBlockField(info);\n\n if (isBlockElement && row.length > 0) {\n // add new line before block element if it's not first item on row\n _addRow();\n }\n\n row.push({ id });\n\n if (info?.customizationData?.dependents) {\n for (const dependentId of info?.customizationData?.dependents) {\n row.push({ id: dependentId });\n }\n }\n if (info?.collapsedRows || isBlockElement) {\n // automatically add new rows after field with collapsible group\n _addRow();\n skipNewLine = true;\n }\n };\n\n for (const id of items) {\n if (id.startsWith(COMBINED_ID)) {\n const item = data.items[id];\n for (const combinedItem of item.combinedItems) {\n _addField(combinedItem.id);\n }\n\n continue;\n }\n\n if (id.startsWith(NEW_LINE_ID)) {\n if (!skipNewLine) {\n _addRow();\n }\n skipNewLine = false;\n continue;\n }\n skipNewLine = false;\n\n _addField(id);\n }\n\n if (row.length > 0) {\n currentRows.push(row);\n }\n }\n\n if (group.lineItems) {\n group.lineItems.columns = row;\n } else {\n group.rows = rows;\n }\n groups.push(group);\n\n // add dependent groups from original definitions\n defGroup?.customizationData?.dependents?.forEach(depGroupId => {\n const origGroup = definition.groups.find(group => group.id === depGroupId);\n groups.push(origGroup);\n });\n }\n\n return groups;\n };\n\n convertItemsDataToList = async (group: IFormGroupDef) => {\n const { rows, ...groupDef } = group;\n const updatedGroup: IFormGroupDef = groupDef;\n\n // if \"lineItems\" group includes rows, they are converted in standard way, skip it here\n // but keep it for \"collection\"\n if (group?.collection) {\n updatedGroup.rows = rows;\n }\n\n const isCollection = !!group.collection;\n return this._convertDataToList({\n groups: [updatedGroup],\n allowNewLine: isCollection,\n isFirstColumnMultiGroup: false,\n processCollection: true\n });\n };\n\n createAvailableItemsGroup = () => {\n return this.createGroup(AVAILABLE_FIELDS_GROUP_ID, null, {\n isTransparent: true,\n isGrowing: true,\n shouldSort: true\n });\n };\n\n createGroup = (id: string, label?: string, additionalProps?: TRecordAny) => {\n return {\n id,\n label,\n itemIds: [] as string[],\n ...additionalProps\n };\n };\n\n getItemRightIcon = (info: IFieldInfo): string => {\n return null;\n // switch (info.type) {\n // case FieldType.CheckboxGroup:\n // return \"CheckboxGroup\";\n // case FieldType.Checkbox:\n // return \"Checkbox\";\n // case FieldType.Switch:\n // return \"Switch\";\n // case FieldType.TextArea:\n // case FieldType.EditableText:\n // return null;\n // case FieldType.RadioButtonGroup:\n // return \"RadioButtonGroup\";\n // case FieldType.LabelSelect:\n // return \"Label\";\n // default:\n // return null;\n // }\n };\n\n _convertDataToList = async (args: IConvertDataToList): Promise => {\n let newLineIndex = 0;\n const { storage } = this.props;\n let name: string;\n let id: string;\n const rootBc = storage.data.bindingContext;\n let groupBc = storage.data.bindingContext;\n const listGroup: TRecordType = {};\n const listItems: TRecordType = {};\n const listGroupIds: string[] = [];\n const usedFields: Record = {};\n const availableFieldsGroup = this.createAvailableItemsGroup();\n\n const usedSubItems: TRecordType = {};\n const dependentGroups: TRecordType = {};\n // we process separately items and other groups. Fields in items groups should not be processed as available fields,\n // so we need to skip all fields starting with one of these group prefixes\n const processedGroups = args.processedGroups || [];\n\n let currentItem: IGroupListItemDef;\n let isCombiningItem: boolean;\n\n const _addNewLine = (isCopyOnly: boolean, group: IGroupListGroupDef) => {\n if (args.allowNewLine) {\n const newLineId = `${NEW_LINE_ID}${isCopyOnly ? \"\" : `${COPY_SIGN}${newLineIndex}`}`;\n const newLineItem = {\n id: newLineId,\n value: this.props.t(\"Components:VersionSelect.NewLine\"),\n icon: \"Enter\",\n isCopyOnly,\n width: FastEntryInputSizes.XS\n };\n\n newLineIndex++;\n group.itemIds.push(newLineId);\n listItems[newLineId] = newLineItem;\n }\n };\n\n const _createItem = (id: string, info: IFieldInfo, bc: BindingContext): IGroupListItemDef => {\n const required = isRequiredForCustomization({\n info,\n bindingContext: info.bindingContext,\n storage\n });\n // required fields that have defaultValue can be removed\n const canBeRemoved = !required || isDefined(info.defaultValue);\n\n const subItems: ISubItemProps[] = [];\n info.customizationData?.dependents?.forEach(id => {\n usedSubItems[id] = true;\n const label = storage.getInfo(storage.data.bindingContext.navigate(id))?.label ?? id;\n subItems.push({\n id, value: label\n });\n });\n\n if (info.collapsedRows) {\n info.collapsedRows?.flat().forEach(field => {\n usedSubItems[field.id] = true;\n const label = field.label ?? storage.getInfo(storage.data.bindingContext.navigate(field.id))?.label ?? field.id;\n subItems.push({\n id: field.id, value: label\n });\n });\n }\n\n return {\n id,\n value: info?.label,\n isRequired: !canBeRemoved,\n boundTo: !canBeRemoved ? ConfigListItemBoundType.Column : null,\n subItems,\n rightIcon: this.getItemRightIcon(info),\n description: info.description ? `(${info.description})` : \"\"\n };\n };\n\n const _processField = (id: string, group: IGroupListGroupDef, info?: IFieldInfo) => {\n const bc = info?.bindingContext ?? groupBc.navigate(id);\n info = info ? info : storage.getInfo(bc);\n const { prefix } = group;\n\n // flag for ignoring fields -- for available group it is easy, just skip\n // we can't just remove it from definition tho, as it has it purpose to be there\n // set special flag for list to hide it but not remove it from data\n const shouldIgnore = getInfoValue(info?.customizationData, \"useForCustomization\", {\n storage,\n context: storage.context\n }) === false;\n\n if (shouldIgnore) {\n return false;\n }\n\n if (info?.groupedField === GroupedField.MultiStart || info?.groupedField === GroupedField.WrappedMultiStart || info?.groupedField === GroupedField.NoWrapStart) {\n // \"bound\" items (with sharp edges) --- create one FAKE parent and put them all inside combineItems\n // keep flag we are adding combined items\n // IMPORTANT ---- they have to be in a row in the fieldDefinition !!!!!!\n isCombiningItem = true;\n usedFields[createPath(prefix, id)] = true;\n currentItem = {\n id: `${COMBINED_ID}-${id}`,\n value: info?.label,\n combinedItems: [_createItem(id, info, bc)]\n };\n } else if (isCombiningItem) {\n // item bound to another item (with sharp edges) in info via property groupedField\n currentItem.combinedItems.push(_createItem(id, info, bc));\n usedFields[createPath(prefix, id)] = true;\n\n if (info?.groupedField === GroupedField.MultiEnd || info?.groupedField === GroupedField.WrappedMultiEnd || info?.groupedField === GroupedField.NoWrapEnd) {\n isCombiningItem = false;\n currentItem.isRequired = currentItem.combinedItems.some(item => item.isRequired);\n currentItem.boundTo = currentItem.isRequired ? ConfigListItemBoundType.Column : null;\n }\n\n return false;\n } else {\n currentItem = _createItem(id, info, bc);\n }\n\n usedFields[createPath(prefix, currentItem.id)] = true;\n group.itemIds.push(currentItem.id);\n listItems[currentItem.id] = currentItem;\n\n return false;\n };\n\n const _processRows = (rows: IFieldDef[][], group: IGroupListGroupDef) => {\n let skipAddNew = false;\n for (const [i, row] of (rows || []).entries()) {\n if (i > 0 && !skipAddNew) {\n _addNewLine(false, group);\n }\n\n for (const field of row || []) {\n skipAddNew = _processField(field.id, group);\n }\n }\n };\n\n const _processColumns = (columns: IFieldDef[], group: IGroupListGroupDef) => {\n for (const field of columns || []) {\n _processField(field.id, group);\n }\n };\n\n const _getGroupSubItems = (grpDef: IFormGroupDef, prefix: string, rowsOnly = false): IGroupSubItemProps[] => {\n const subItems: IGroupSubItemProps[] = [];\n\n grpDef.rows?.flat().forEach(item => {\n usedSubItems[createPath(prefix, item.id)] = true;\n const bc = item.isCollectionField === false ? rootBc.navigate(item.id) : groupBc.navigate(item.id);\n const info = storage.getInfo(bc);\n subItems.push({ id: item.id, value: info?.label });\n });\n\n // process also line items and store them in usedSubItems, so they are not displayed in the available items\n // it's necessary for localContext fields in line items as they cannot be tested by bc.isAnyPartOfCollection,\n // e.g. UsersForm->COMPANY_ROLE_LINES_PATH\n grpDef.lineItems?.columns.forEach(column => {\n usedSubItems[createPath(prefix, column.id)] = true;\n });\n\n if (rowsOnly) {\n return subItems;\n }\n return [{\n id: grpDef.id,\n value: getInfoValue(grpDef, \"title\", { storage }),\n subItems\n }];\n };\n\n const _getGroupPrefix = (group: IFormGroupDef) => group.lineItems?.collection ?? group.collection;\n\n for (const group of args.groups || []) {\n groupBc = storage.data.bindingContext;\n const prefix = _getGroupPrefix(group);\n if (prefix) {\n groupBc = groupBc.navigate(prefix);\n }\n\n const useForCustomization = getInfoValue(group?.customizationData, \"useForCustomization\", {\n storage,\n context: storage.context\n });\n const { isLocked } = group.customizationData ?? {};\n const isCollection = !!(group.collection || group.lineItems?.collection);\n const isGroupLockedForCustomization = isLocked || (isCollection && !args.processCollection);\n const subItems: IGroupSubItemProps[] = [];\n\n if (dependentGroups[group.id] || isGroupLockedForCustomization) {\n // add fields of dependent groups to usedSubItems, so they are not added to different group. They are\n // bound to the dependent group and cannot be customized\n subItems.push(..._getGroupSubItems(group, prefix, true));\n }\n\n if (useForCustomization === false || dependentGroups[group.id]) {\n continue;\n }\n\n group.customizationData?.dependents?.forEach((id) => {\n dependentGroups[id] = true;\n const depGroupDef = args.groups.find(grp => grp.id === id);\n subItems.push(..._getGroupSubItems(depGroupDef, prefix));\n });\n\n const groupTitle = getInfoValue(group, \"title\", { storage });\n if (args.processCollection && !id) {\n id = group.id;\n name = groupTitle;\n }\n const newGroup = this.createGroup(group.id, groupTitle, {\n isDraggable: args.isFirstColumnMultiGroup,\n isTransparent: this.isGroupFirstDefaultNonGroup(group) || !args.isFirstColumnMultiGroup,\n isLabelEditable: typeof group.title !== \"function\" && !isGroupLockedForCustomization,\n isRemovable: this.isCustomGroup(group),\n isDropDisabled: isGroupLockedForCustomization,\n prefix,\n // we need to process subitems to remove them from available items, but we don't want to display\n // them in the toolip most likely as they are editable in collection tab\n subItems: isCollection ? [] : subItems,\n isLocked: isGroupLockedForCustomization\n });\n\n if (isGroupLockedForCustomization) {\n // create subItems to be displayed in tooltip of the locked group\n } else {\n if (group.rows) {\n _processRows(group.rows, newGroup);\n } else if (group.lineItems?.columns) {\n _processColumns(group.lineItems.columns, newGroup);\n }\n }\n\n listGroup[group.id] = newGroup;\n listGroupIds.push(group.id);\n\n if (group.lineItems?.collection) {\n usedFields[group.lineItems.collection] = true;\n }\n }\n\n forEachKey(listGroup, (key) => {\n // remove used subfields for each group\n const grp = listGroup[key];\n grp.itemIds = grp.itemIds.filter(id => !usedSubItems[createPath(grp.prefix, id)]);\n });\n\n // rest available fields\n _addNewLine(true, availableFieldsGroup);\n\n const availableEntities = this.props.storage.data.definition.fieldDefinition;\n\n const groupPath = groupBc.removeKey().getPath(true);\n const processedGroupPrefixes = args.processedGroups?.map(group => _getGroupPrefix(group))?.filter(collection => !!collection) ?? [];\n\n for (const [key, item] of Object.entries(availableEntities)) {\n const id = item.id || key;\n\n if (!usedFields[id] && !usedSubItems[id]) {\n const bc = rootBc.navigate(id);\n const shouldProcessField = args.processCollection ? id.startsWith(groupPath) : !processedGroupPrefixes.some(path => id.startsWith(path));\n if (shouldProcessField) {\n const path = args.processCollection ? id.substring(groupPath.length + 1) : id;\n const info = await this.props.storage.loadInfo({\n path: id,\n fieldDef: {\n ...item,\n id\n }\n }, bc);\n\n // todo: multi start and multi end fields are not one after another...\n // either there have to be property that aligns them or there have to be set of right ordered available items\n _processField(path, availableFieldsGroup, info);\n }\n }\n }\n\n listGroup[AVAILABLE_FIELDS_GROUP_ID] = availableFieldsGroup;\n\n return {\n id, name, // collection id\n items: listItems,\n groups: listGroup,\n columns: {\n [USED_FIELDS_COLUMN_ID]: {\n id: USED_FIELDS_COLUMN_ID,\n label: this.props.t(`Common:Form.${args.isFirstColumnMultiGroup ? \"VisibleFields\" : \"VisibleItemsFields\"}`),\n shouldShowAddButton: args.isFirstColumnMultiGroup,\n groupIds: listGroupIds,\n afterContent: args.processCollection ? this.renderItemsSummarySwitch(this.getInitialItemsSummarySwitchValue(), listGroupIds) : null\n },\n [AVAILABLE_FIELDS_COLUMN_ID]: {\n id: AVAILABLE_FIELDS_COLUMN_ID,\n isDropDisabled: true,\n label: this.props.t(`Common:Form.${args.isFirstColumnMultiGroup ? \"AvailableFields\" : \"AvailableItemsFields\"}`),\n groupIds: [AVAILABLE_FIELDS_GROUP_ID],\n // there are edge cases which can cause field that is required on backend, to be in the AVAILABLE_FIELDS_GROUP_ID\n // (e.g. for non Vat payer, VatClassification is not supposed to be shown in the form, even though it is technically required)\n // => fields in the available column has to always be allowed to be moved\n cannotBeBoundTo: true\n }\n }\n };\n };\n\n convertDataToList = async (groups?: IFormGroupDef[], processedGroups?: IFormGroupDef[]): Promise => {\n return this._convertDataToList({\n groups,\n processedGroups,\n allowNewLine: true,\n isFirstColumnMultiGroup: true\n });\n };\n\n handleClose = () => {\n this.props.storage.setCustomData({\n isCustomizationDialogOpen: false\n });\n this.props.storage.refresh();\n };\n\n handleItemsDataChange = (newData: IConfigList) => {\n this.setState((currState) => ({\n itemsData: currState.itemsData.map((config) => config.id === currState.selectedTabId ? newData : config)\n }));\n };\n\n handleDataChange = (newData: IConfigList) => {\n this.setState({\n data: newData\n });\n };\n\n handleConfirmDialog = async () => {\n let groups = this.convertDataFromList(this.state.data);\n if (this.state.itemsData?.length) {\n this.state.itemsData.forEach(config => {\n const alreadyContainedGroup = groups.find(grp => grp.id === config.id);\n const data = this.convertDataFromList(config)[0];\n\n if (alreadyContainedGroup) {\n if (data.lineItems) {\n alreadyContainedGroup.lineItems.columns = data.lineItems.columns;\n } else if (data.rows) {\n alreadyContainedGroup.rows = data.rows;\n }\n } else {\n groups.push(data);\n }\n });\n }\n\n if (this.tabGroup) {\n groups = groups.concat(this.tabGroup);\n }\n\n if (this.shouldShowDisplayItemsSummarySwitch()) {\n const lineItemsGroup = groups.find(group => this.isSpecialGroup(group));\n\n lineItemsGroup.lineItems.shouldShowItemsSummary = this.state.showItemsSummary;\n }\n\n const currentVariant = this.props.storage.getVariant();\n const isVariantSame = isEqual(groups, currentVariant);\n\n if (!isVariantSame) {\n this.props.storage.setLocalStorageVariant(groups);\n\n this.props.setBusy(true);\n await this.props.storage.reload({\n preserveInfos: false,\n preserveData: false,\n withoutBusy: true\n });\n this.props.setBusy(false);\n }\n\n this.handleClose();\n };\n\n handleAddGroup = () => {\n this.setState(state => {\n const data = state.data;\n const id = uuidv4();\n const newGroup = this.createGroup(id, this.props.t(\"Components:VersionSelect.NewGroup\"), {\n isLabelEditable: true,\n isDraggable: true,\n isRemovable: true\n });\n\n const groups = { ...data.groups, [id]: newGroup };\n const items = { ...data.items };\n\n return {\n data: {\n ...data,\n groups,\n items,\n columns: {\n ...data.columns,\n [USED_FIELDS_COLUMN_ID]: {\n ...data.columns[USED_FIELDS_COLUMN_ID],\n groupIds: data.columns[USED_FIELDS_COLUMN_ID].groupIds.concat(id)\n }\n }\n }\n };\n });\n };\n\n handleRemoveGroup = (groupId: string) => {\n const oldGroup = this.state.data.groups[groupId];\n const newGroups: TRecordType = {\n ...this.state.data.groups,\n [AVAILABLE_FIELDS_GROUP_ID]: {\n ...this.state.data.groups[AVAILABLE_FIELDS_GROUP_ID],\n itemIds: [\n ...this.state.data.groups[AVAILABLE_FIELDS_GROUP_ID].itemIds,\n ...oldGroup.itemIds.filter(itemId => !isCopy(itemId) && !itemId.startsWith(COLLAPSED_ID))\n ]\n }\n };\n\n delete newGroups[groupId];\n\n const newData: IConfigList = {\n ...this.state.data,\n columns: {\n ...this.state.data.columns\n },\n groups: newGroups\n };\n\n for (const columnId of Object.keys(newData.columns)) {\n newData.columns[columnId].groupIds = newData.columns[columnId].groupIds.filter(group => group !== groupId);\n }\n\n this.setState({\n data: newData\n });\n };\n\n renderItemsList = (selectedTabId: string) => {\n const data = this.state.itemsData.find(config => config.id === selectedTabId);\n return ;\n };\n\n renderMainList = () => {\n return ;\n };\n\n getInitialItemsSummarySwitchValue = () => {\n const currentVariant = this.props.storage.getVariant();\n const lineItemGroup = currentVariant.find(group => this.isSpecialGroup(group));\n\n return !!lineItemGroup && !!lineItemGroup.lineItems?.shouldShowItemsSummary;\n };\n\n handleItemsSummarySwitchChange = (checked: boolean) => {\n const getUpdatedConfig = (config: IConfigList) => {\n return {\n ...config,\n columns: {\n ...config.columns,\n [USED_FIELDS_COLUMN_ID]: {\n ...config.columns[USED_FIELDS_COLUMN_ID],\n afterContent: this.renderItemsSummarySwitch(checked, config.columns[USED_FIELDS_COLUMN_ID].groupIds)\n }\n }\n };\n };\n\n this.setState({\n showItemsSummary: checked,\n // rerender the switch\n data: getUpdatedConfig(this.state.data),\n itemsData: this.state.itemsData.map(config => getUpdatedConfig(config))\n });\n };\n\n renderItemsSummarySwitch = (checked: boolean, groupIds: string[]): React.ReactElement => {\n if (!this.shouldShowDisplayItemsSummarySwitch(groupIds)) {\n return null;\n }\n\n return (\n \n );\n };\n\n getTabData = () => {\n const tabs = [{\n id: MAIN_TAB_ID, // something which don't collide with any collection group id\n title: this.props.t(\"Components:VersionSelect.Header\"),\n content: (props: ITabsProps) => {\n return this.renderMainList();\n }\n }];\n\n this.state.itemsData?.forEach(config => {\n tabs.push({\n id: config.id,\n title: config.name ?? this.props.t(\"Components:VersionSelect.Items\"),\n content: (props: ITabsProps) => {\n return this.renderItemsList(props.selectedTabId);\n }\n });\n });\n\n return tabs;\n };\n\n handleTabChange = (selectedTab: string) => {\n this.setState({\n selectedTabId: selectedTab\n });\n };\n\n shouldDisplayItemsTab = () => {\n const lineItemGroup = this.props.storage.data.definition.groups.find(group => this.isSpecialGroup(group));\n return !!lineItemGroup;\n };\n\n shouldShowDisplayItemsSummarySwitch = (renderedGroups?: string[]) => {\n const lineItemGroup = this.props.storage.data.definition.groups.find(group => (!renderedGroups || renderedGroups.includes(group.id)) && this.isSpecialGroup(group));\n\n return !!lineItemGroup && !!lineItemGroup.lineItems?.itemsSummaryRenderer;\n };\n\n render() {\n if (!this.state.data) {\n return null;\n }\n\n const shouldDisplayItemsTab = this.shouldDisplayItemsTab();\n return (\n }>\n {shouldDisplayItemsTab && }\n {this.props.busyIndicator}\n {!shouldDisplayItemsTab && this.renderMainList()}\n \n );\n }\n}\n\nexport default withBusyIndicator({ passBusyIndicator: true })(withTranslation([\"Common\"])(FormCustomizationDialog));","import { IHeaderIcon } from \"@components/header/Header\";\nimport { getInfoValue, IFieldDef, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { IGetSmartHeaderCustomInfo } from \"@components/smart/smartHeader/SmartHeader.utils\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { IPaneBookmark } from \"@components/splitLayout\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { EntitySetName, EntityTypeName, IFileMetadataEntity } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { IPrepareQuerySettings } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { IFilesDefinition, TFieldsDefinition } from \"@pages/PageUtils\";\nimport { composeRefHandlers } from \"@utils/general\";\nimport { canUnlock } from \"@utils/permissionUtils\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport SimpleBar from \"simplebar-react\";\n\nimport Alert, { AlertPosition } from \"../../components/alert/Alert\";\nimport { BreadCrumbProvider } from \"../../components/breadCrumb\";\nimport BusyIndicator from \"../../components/busyIndicator/BusyIndicator\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { PortalRootElementProvider } from \"../../contexts/portalRootElement/PortalRootElementProvider\";\nimport { FormMode, IconSize, Status } from \"../../enums\";\nimport { LocalStackOrder } from \"../../global.style\";\nimport { TRecordAny } from \"../../global.types\";\nimport { Model, ModelEvent } from \"../../model/Model\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport BindingContext, { areBindingContextsDifferent, IEntity } from \"../../odata/BindingContext\";\nimport TestIds from \"../../testIds\";\nimport View from \"../View\";\nimport { focusFirstInputField, IEditOverride } from \"./Form.utils\";\nimport FormCustomizationDialog from \"./FormCustomizationDialog\";\nimport { FormAlertPosition, FormStorage } from \"./FormStorage\";\nimport { IFormViewProps } from \"./FormView\";\nimport {\n FormAlertContainer,\n FormContent,\n FormFooter,\n LockedFormEditOverrideStatus,\n LockedFormOverrideOverlay,\n SmartHeaderStyled\n} from \"./FormView.styles\";\nimport { IPureFormProps, PureForm } from \"./PureForm\";\n\n// D => DraftEntity interface\nexport interface IFormDef {\n // string template is used to enforce that EntityType of the definition can be inferred from the id\n id: `${EntityTypeName}Form` | `${string}SpecialForm`;\n title?: string;\n summary?: ISummaryItem[];\n /** Adds custom action buttons into header.\n * onClick should be handled in extended FormView in overridden handleCustomHeaderAction method. */\n customHeaderActions?: (Omit & {\n isDisabled?: TInfoValue;\n isVisible?: TInfoValue\n })[];\n auditTrailSummary?: ISummaryItem[];\n groups?: IFormGroupDef[];\n formControl?: React.ComponentType;\n fieldDefinition: TFieldsDefinition;\n /** List of properties that should be fetched with the other data, but doesn't have their own field representation.\n * Similar to additionalProperties from field info, but related to the whole form, not particular field (different binding context path). */\n additionalProperties?: IFieldDef[];\n files?: IFilesDefinition;\n isReadOnly?: TInfoValue;\n /** Add delete action to the footer buttons. */\n isDeletable?: TInfoValue;\n translationFiles: string[];\n lockProperty?: string;\n permissions?: (CompanyPermissionCode | GeneralPermissionCode)[];\n getItemBreadCrumbText?: (storage: Model) => string;\n secondaryBookmark?: TInfoValue;\n showChanges?: boolean;\n getCustomAttachmentFileActions?: (file: IFileMetadataEntity, storage: FormStorage) => IToolbarItem[];\n // settings applied to prepareQuery, things like nested filter can be passed\n querySettings?: IPrepareQuerySettings;\n\n draftDef?: IFormDraftSettings;\n}\n\nexport interface IFormDraftSettings {\n draftProperty: keyof E,\n draftEntitySet: EntitySetName,\n navigationToItem: string,\n draftAdditionalProps: IFieldDef[],\n navigationFromDraft: keyof D,\n}\n\nexport type TSecondaryBookmarkDef = Omit & { content: React.ReactElement };\n\nexport const generateComparisonProps = (props: IFormViewProps) => {\n const isComparison = props.storage?.formMode === FormMode.AuditTrail;\n return {\n style: props.style,\n passRef: props.passRef,\n renderScrollbar: !isComparison,\n hideBreadcrumbs: props.formProps?.hideBreadcrumbs || isComparison,\n hideHeader: isComparison\n };\n};\n\ntype TPureFormProps = Pick\n\nexport interface IProps extends WithTranslation, WithOData, TPureFormProps, WithPermissionContext {\n title?: string;\n subtitle?: string;\n subtitleStatus?: Status;\n formName?: string;\n defaultData?: TRecordAny;\n refScroll?: React.Ref;\n refContent?: React.Ref;\n refHeader?: React.Ref;\n style?: React.CSSProperties;\n headerIcons?: IHeaderIcon[];\n getCustomHeaderInfo?: (storage: FormStorage) => IGetSmartHeaderCustomInfo;\n shouldHideAuditTrail?: boolean;\n shouldHideVariant?: boolean;\n\n hideHeader?: boolean;\n hideBreadcrumbs?: boolean;\n /** Won't render BusyIndicator automatically based on storage.isBusy(),\n * instead, it is expected that it will be rendered elsewhere (e.g. in Dialog busy state) */\n hideBusyIndicator?: boolean;\n /**\n * Add root element provider to pass autocomplete menus to */\n addRootElementContext?: boolean;\n // for Form(View) usage in Dialog, where we want to save space\n smallErrorAlert?: boolean;\n className?: string;\n withoutPadding?: boolean; // top, left and right padding of form element\n withoutPaddingForAlert?: boolean; // bottom padding for success alert\n\n // light weighted form typically used in dialogs without some icons and buttons\n isSimple?: boolean;\n\n prependContent?: React.ReactElement;\n // form can be \"locked\" by backend disabled metadata,\n // this prop alters the state and look of the form\n // and some of the locked fields will be allowed for editing.\n // also, draft is cleared and disabled in this case, as well as some of the form buttons\n editOverride?: IEditOverride;\n\n customFooterButtons?: React.ReactElement | ((storage: FormStorage) => React.ReactElement);\n\n /** Should be used for Forms in Dialogs, to get correct width automatically.\n * Scrollbar prevents dialog from having width based on the form width. */\n renderScrollbar?: boolean;\n passRef?: React.Ref;\n}\n\nclass Form extends React.Component {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n _scrollBarInstanceRef = React.createRef();\n _refFooter = React.createRef();\n _refFormContent = React.createRef();\n lastBindingContext: BindingContext;\n\n public static defaultProps = {\n formName: \"default\",\n renderScrollbar: true\n };\n\n // resizeObserver: ResizeObserver;\n // footerWidth: number;\n\n constructor(props: IProps) {\n super(props);\n this.props.storage.emitter.on(ModelEvent.RecalculateScrollbar, this.recalculateScrollbar);\n // this.resizeObserver = new ResizeObserver(this.handleFooterResize);\n }\n\n componentDidMount() {\n // if (this._refFooter.current) {\n // this.resizeObserver.observe(this._refFooter.current);\n // this.setButtonsMaxWidth(this._refFooter.current);\n // }\n this.lastBindingContext = this.props.storage.data.bindingContext;\n\n if (this.props.storage.data.bindingContext.isNew()) {\n this.focusFirstField();\n }\n }\n\n componentWillUnmount() {\n this.props.storage.emitter.off(ModelEvent.RecalculateScrollbar, this.recalculateScrollbar);\n // this.resizeObserver.disconnect();\n }\n\n _focusOnLoad = false;\n\n componentDidUpdate(prevProps: Readonly): void {\n if (areBindingContextsDifferent(this.lastBindingContext, this.props.storage.data.bindingContext)) {\n this.lastBindingContext = this.props.storage.data.bindingContext;\n\n this._focusOnLoad = this.props.storage.data.bindingContext.isNew();\n }\n // focus first field (after form loads), cause when switching from one form to new one, the old form fields\n // are still rendered and they might be disabled in case the entity is e.g. locked (then the focus didn't work)\n if (this._focusOnLoad && !this.props.storage.isBusy()) {\n this._focusOnLoad = false;\n this.focusFirstField();\n }\n }\n\n focusFirstField = () => {\n focusFirstInputField(this._refFormContent.current);\n };\n\n recalculateScrollbar = () => {\n // @ts-ignore\n this._scrollBarInstanceRef.current?.recalculate();\n };\n\n handleBlur = async (args: ISmartFieldBlur) => {\n await this.props.onBlur(args);\n };\n\n handleChange = (e: ISmartFieldChange) => {\n this.props.onChange(e);\n };\n\n // setButtonsMaxWidth = (footer: HTMLElement) => {\n // const footerIsFullWidth = (footer.offsetWidth - 150) <= footer.querySelector(\"div\").offsetWidth;\n // const buttonTextWrappers = footer.querySelectorAll(\"button span\");\n // for (let i = 0; i < buttonTextWrappers.length; i++) {\n // buttonTextWrappers[i].style.maxWidth = footerIsFullWidth ? \"fit-content\" : \"inherit\";\n // }\n // };\n //\n // handleFooterResize = (entries: readonly ResizeObserverEntry[]) => {\n // const footer = (entries[0].target as HTMLElement);\n // // check if footer buttons are on fullwidth\n // // we want to change buttons just on width change, resize sensor is called also when buttons are shrank and therefore footer height is changed\n // // TODO: move footer to separate component\n // if (footer.offsetWidth !== this.footerWidth) {\n // this.setButtonsMaxWidth(footer);\n // }\n // this.footerWidth = footer.offsetWidth;\n // };\n\n handleAlertFadeEnd = (): void => {\n delete this.props.storage.data.alert;\n this.props.storage.refresh();\n };\n\n handleRemove = (bc: BindingContext) => {\n this.props.onRemove?.(bc);\n };\n\n handleFormSubmit = (e: React.FormEvent) => {\n // we want to handle form submit through our own props\n e.preventDefault();\n }\n\n renderContent = () => {\n const formDef = this.props.storage.data.definition;\n const isFormReadOnly = getInfoValue(formDef, \"isReadOnly\", {\n storage: this.props.storage,\n data: this.props.storage.data.entity\n });\n const alert = this.props.storage.data.alert;\n\n const formElement: React.ElementType = isFormReadOnly ? \"div\" : \"form\";\n\n const formContentArgs = isFormReadOnly ? {} : {\n // novalidate prevents some browsers default behavior\n // e.g. https://stackoverflow.com/questions/5392882/why-is-chrome-showing-a-please-fill-out-this-field-tooltip-on-empty-fields\n noValidate: true\n };\n const IconEditOverride = this.props.editOverride?.icon;\n\n let content = (<>\n {this.props.prependContent}\n \n {!this.props.hideHeader &&\n IGetSmartHeaderCustomInfo)}\n shouldHideVariant={this.props.shouldHideVariant}\n onChange={this.handleChange}/>\n }\n {this.props.editOverride &&\n \n \n {this.props.editOverride.description}\n \n }\n {alert && (alert.position === FormAlertPosition.Top || [Status.Error, Status.Warning].includes(alert.status)) &&\n \n }\n \n \n {this.props.children &&\n \n {this.props.children}\n \n }\n );\n\n if (this.props.addRootElementContext) {\n content = ({content});\n }\n\n const successAlert = alert && alert.status === Status.Success && alert.position !== FormAlertPosition.Top && (\n \n );\n\n return (\n \n {content}\n \n );\n };\n\n render() {\n if (!this.props.storage.data.bindingContext) {\n return null;\n }\n return (\n <>\n {this.props.editOverride &&\n \n }\n {!this.props.hideBreadcrumbs &&\n \n }\n {this.props.storage.getCustomData().isCustomizationDialogOpen &&\n }\n {this.props.storage.isBusy() && !this.props.hideBusyIndicator &&\n }\n {/*always render content, even with BusyIndicator, to prevent its complete remounting*/}\n {this.renderContent()}\n \n );\n }\n}\n\nexport default withPermissionContext(withOData(withTranslation([\"Common\", \"Error\"])(Form)));","import { IAlertProps, IBaseAlertProps } from \"@components/alert/Alert\";\nimport { IProps as IIconProps } from \"@components/icon\";\nimport { getInfoValue, IGetValueArgs, TGetValueFn, TInfoValue, TInfoValueProp } from \"@components/smart/FieldInfo\";\nimport { IFormGroupDef, IFormLineItemsDef, TFormTable } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport { isODataError, ODataError } from \"@odata/Data.types\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { getOldestActiveFY } from \"@pages/fiscalYear/FiscalYear.utils\";\nimport { IDefinition } from \"@pages/PageUtils\";\nimport { isNetworkError } from \"@utils/customFetch\";\nimport { getFocusableInputs } from \"@utils/general\";\nimport { Dayjs } from \"dayjs\";\nimport i18next from \"i18next\";\nimport React from \"react\";\n\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { BackendErrorCode, FormMode, Status } from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { IFilterQuery } from \"../../model/TableStorage\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport { getUtcDayjs } from \"../../types/Date\";\nimport { FormStorage } from \"./FormStorage\";\n\nexport interface IEditOverride {\n id: string;\n icon: React.ComponentType;\n description: string;\n}\n\nexport const setBreadCrumbs = (storage: FormStorage): void => {\n storage.context.setViewBreadcrumbs({\n items: [\n {\n key: \"selectedAccount\",\n link: null,\n title: storage.data.definition.getItemBreadCrumbText(storage)\n }\n ],\n lockable: false\n });\n};\n\nexport const getSummaryItems = (storage: FormStorage): ISummaryItem[] => {\n const def = storage?.data?.definition;\n let items;\n if (def) {\n items = storage.formMode === FormMode.AuditTrail ? def.auditTrailSummary || def.summary : def.summary;\n }\n\n return items || [];\n};\n\nexport const getEntitySetFromDefinition = (definition: IDefinition, context: IAppContext, parentId?: string): string => {\n return getInfoValue(definition, \"entitySet\", {\n context: context,\n data: { parentId: parentId }\n });\n};\n\n/**\n * Sets group status as new / editing -> if it's set to creating, we expand the group, otherwise we keep the previous state\n * @param groupId\n * @param storage\n * @param isCreating\n * @param forceExpand\n */\nexport function setGroupStatus(groupId: string, storage: FormStorage, isCreating: boolean, forceExpand?: boolean): void {\n const groupStatus = storage.getGroupStatus(groupId);\n // expand the group when group status change to isCreating, otherwise we keep the previous state\n const isExpanded = forceExpand || isCreating || groupStatus?.isExpanded;\n\n storage.setGroupStatus({\n isCreating,\n isExpanded\n }, groupId);\n}\n\nexport const getFormTableFilterQuery = (storage: FormStorage, tableDef: TFormTable, bindingContext: BindingContext): IFilterQuery => {\n const defaultFilter = getInfoValue(tableDef, \"filter\", {\n storage\n });\n\n return {\n query: (typeof defaultFilter === \"string\" ? defaultFilter : defaultFilter?.query) ?? `${tableDef.parentKey} eq ${bindingContext.getKey()}`,\n collectionQueries: defaultFilter?.collectionQueries\n };\n};\n\nexport const isRequiredOnlyInTemporalDialog = (args: IGetValueArgs): boolean => {\n return !args.isValidateAll;\n};\n\nexport function getAlertFromError(error: ODataError | Error | string): IBaseAlertProps {\n // use Set instead of Array, so that none of the messages is repeated multiple times\n const subTitle = new Set();\n let detailData: TRecordAny;\n let title = i18next.t(\"Common:Errors.ErrorHappened\");\n const internalError = i18next.t(\"Common:Errors.InternalError\");\n\n if (isODataError(error)) {\n const isFieldValidationError = error._code === BackendErrorCode.ValidationError;\n\n if (isFieldValidationError) {\n title = i18next.t(\"Common:General.FormValidationErrorTitle\");\n }\n\n detailData = error;\n\n if (error?._validationMessages?.length) {\n for (const valMessage of error._validationMessages) {\n subTitle.add(valMessage.message);\n }\n } else if (!!BackendErrorCode[error?._code]) {\n subTitle.add(error._message ?? internalError);\n } else {\n // unknown error, just show not translated code & message\n // show nothing in subtitle and display full error in detail\n subTitle.add(internalError);\n }\n } else if (isNetworkError(error)) {\n title = i18next.t(\"Common:Errors.NoConnection\");\n subTitle.add(i18next.t(\"Common:Errors.NoConnectionMessage\"));\n } else {\n if (typeof error === \"string\") {\n subTitle.add(error);\n } else {\n subTitle.add(internalError);\n detailData = { \"Error\": (error as unknown)?.toString() };\n }\n }\n\n return {\n detailData,\n status: Status.Error,\n useFade: false,\n title,\n subTitle: Array.from(subTitle)\n };\n}\n\nexport function getDisabledFormPageAlert(): IAlertProps {\n return {\n status: Status.Warning,\n title: i18next.t(\"Common:Errors.PageLocked\"),\n isSmall: true,\n useFade: true\n };\n}\n\nexport function addLineActionInfoValueCallback(itemsGroup: IFormGroupDef, name: TInfoValueProp, actionIds: string[], callback: TGetValueFn): void {\n const originalValue = itemsGroup.lineItems[name as keyof IFormLineItemsDef] as TInfoValue;\n\n itemsGroup.lineItems = {\n ...itemsGroup.lineItems,\n [name]: (args: IGetValueArgs, smartFastEntryListProps: TRecordAny): boolean => {\n const customActionId = smartFastEntryListProps.customAction?.id;\n\n // possibility for multiple callbacks from different wrappers\n // (e.g. if assets wanted to have this check as well)\n if (!actionIds.includes(customActionId)) {\n return typeof originalValue === \"boolean\" ? originalValue : originalValue?.(args, smartFastEntryListProps);\n }\n\n return callback(args, smartFastEntryListProps);\n }\n };\n}\n\n/**\n * pick new Date from active FY, so there is a match with loaded accounts and the default\n * value of the form is valid. Use it when form contains accounts, so they are correctly\n * loaded or the date is not set, so user sees the validation in that case\n */\nexport function defaultDateFromActiveFiscalYear(args: IGetValueArgs): Dayjs {\n const activeFY = getOldestActiveFY(args.context);\n const now = getUtcDayjs();\n if (!activeFY) {\n return null;\n } else if (now.isBetween(activeFY.DateStart, activeFY.DateEnd, \"day\", \"[]\")) {\n return now;\n } else if (now.isBefore(activeFY.DateStart, \"day\")) {\n return getUtcDayjs(activeFY.DateStart);\n }\n return getUtcDayjs(activeFY.DateEnd);\n}\n\nexport function isFormReadOnly(args: IGetValueArgs): boolean {\n return !!(args.storage as FormStorage).isReadOnly;\n}\n\nexport function focusFirstInputField(el: HTMLElement): void {\n const elements = Array.from(getFocusableInputs(el)) ?? [];\n const firstElement = elements[0];\n\n firstElement?.focus({\n // only works in Firefox so far :/\n // @ts-ignore\n focusVisible: true\n });\n}\n\nexport const getCurrentLineItem = (storage: FormStorage, bc: BindingContext) => {\n const items = storage.data.entity.Items;\n return getBoundValue({\n bindingContext: bc,\n dataBindingContext: storage.data.bindingContext,\n data: items\n });\n};\n\nexport function getOrigValue(storage: FormStorage, bc: BindingContext): TValue {\n return getBoundValue({\n bindingContext: bc,\n data: storage.data.origEntity,\n dataBindingContext: storage.data.bindingContext\n });\n}","import { AlertAction, IAlertProps, IBaseAlertProps } from \"@components/alert/Alert\";\nimport { isSelectBasedComponent } from \"@components/inputs/select/SelectAPI\";\nimport {\n allowCreateValues,\n getInfoValue,\n IFieldDef,\n isVisible,\n isVisibleByPath,\n TFieldDefaultValue\n} from \"@components/smart/FieldInfo\";\nimport { getCollapsedGroupId } from \"@components/smart/Smart.utils\";\nimport { ActionType, ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport {\n ISmartFieldBlur,\n ISmartFieldChange,\n ISmartFieldValidationError\n} from \"@components/smart/smartField/SmartField\";\nimport { IDependentFieldDef, IFormGroupDef } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { ISummaryItem } from \"@components/smart/smartSummaryItem/SmartSummaryItem\";\nimport SmartTableManager from \"@components/smart/smartTable/SmartTableManager\";\nimport { IFormVariant, IVariant, Variant, VariantType } from \"@components/variantSelector/VariantOdata\";\nimport { isODataError, IValidationMessage, ODataError } from \"@odata/Data.types\";\nimport {\n createBindingContextFromValidatorPath,\n getBoundValue,\n getNestedValue,\n getNewItemsMaxId,\n ICachedFieldState,\n ISaveEntity,\n isNavigationForUpdate,\n IStorageSmartFieldValues,\n mainBatchRequestId,\n saveEntity,\n setBoundValue,\n setDirtyFlag,\n setNestedValue\n} from \"@odata/Data.utils\";\nimport { getFieldInfo, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport {\n EntitySetName,\n IEvalaMetadataRule,\n IInboxFileEntity,\n OdataActionName,\n ODataEntityMetadata\n} from \"@odata/GeneratedEntityTypes\";\nimport { BatchRequest, EVALA_METADATA_HEADER, IBatchResult, isBatchResultOk, isIUrl } from \"@odata/OData\";\nimport { IPrepareQuerySettings, prepareQuery } from \"@odata/OData.utils\";\nimport { ODataQueryResult } from \"@odata/ODataParser\";\nimport { DRAFT_ITEM_ID_PATH, tWithFallback } from \"@pages/documents/Document.utils\";\nimport customFetch from \"@utils/customFetch\";\nimport { isDefined, isNotDefined, isObjectEmpty, removeNullValuesFromObject, uuidv4, wait } from \"@utils/general\";\nimport { logger } from \"@utils/log\";\nimport memoizeOne from \"@utils/memoizeOne\";\nimport { getOneFetch, isAbortException } from \"@utils/oneFetch\";\nimport i18next from \"i18next\";\nimport i18n from \"i18next\";\nimport { cloneDeep, isEmpty, mergeWith } from \"lodash\";\nimport React from \"react\";\nimport { ObjectSchema } from \"yup\";\n\nimport { AUDIT_API_URL } from \"../../constants\";\nimport {\n BackendErrorCode,\n FieldType,\n FormMode,\n NavigationSource,\n PageViewMode,\n QueryParam,\n Sort,\n Status,\n ValidationErrorType,\n ValueType\n} from \"../../enums\";\nimport { TRecordAny, TRecordString, TValue } from \"../../global.types\";\nimport { IMergedFieldDef, IModel, ModelEvent, ModelType, TMergedDefinition } from \"../../model/Model\";\nimport { IStorageModelData, StorageModel } from \"../../model/StorageModel\";\nimport { Validator } from \"../../model/Validator\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport BindingContext, {\n areBindingContextsDifferent,\n createBindingContext,\n IEntity,\n splitPath,\n TEntityKey\n} from \"../../odata/BindingContext\";\nimport { ROUTE_NOT_FOUND } from \"../../routes\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport memoize from \"../../utils/memoize\";\nimport { IFormDef } from \"./Form\";\nimport { getAlertFromError, getFormTableFilterQuery, IEditOverride } from \"./Form.utils\";\n\n\n// if there is array with more items then indicator value, save is async (with different processing)\nconst LARGE_DATA_INDICATOR = 500;\n// how much items is process in one step (the bigger the number, the longer freeze when saving large datasets)\nconst LARGE_DATA_CHUNK_SIZE = 200;\n\nexport interface IContextInitArgs {\n definition?: IFormDef;\n bindingContext?: BindingContext;\n formMode?: FormMode;\n\n /** If provided, data are used instead of firing a request */\n data?: IEntity;\n /** Don't load variants for forms without customization */\n ignoreVariants?: boolean;\n /** Don't set default values of empty fields */\n ignoreDefaults?: boolean;\n\n preserveInfos?: boolean;\n /** Used when variant (configuration) changes.\n * We want to load data for the newly add fields, but we want to keep any changes user might have done to the form. */\n preserveData?: boolean;\n onAfterLoad?: () => void;\n}\n\nexport enum FormAlertPosition {\n Top = \"top\",\n Bottom = \"bottom\"\n}\n\nexport interface IFormAlert extends IBaseAlertProps, Pick {\n position?: FormAlertPosition;\n}\n\nexport interface IFormStorageSaveResult {\n bindingContext: BindingContext;\n data: IEntity;\n // todo improve interface both here and in OData.parseQueryResult\n // full response object returned from backend\n response?: any;\n}\n\nexport interface IGetCorrectErrorBc {\n matchedBindingContext: BindingContext;\n error: IValidationMessage;\n entity: IEntity;\n}\n\n\ninterface IAddFieldArgs {\n path: string;\n useForValidationByDefault: boolean;\n fieldDef?: IFieldDef;\n useForLoad?: boolean;\n collectionPath?: string;\n /** Required fields that are not present in current variant are still add to mergedDefinition,\n * so that their default values are set or their values are fetched during loading.\n * This property is stored to easily find out if the fields is part of the variant without having to run complicated search through the whole variant definition. */\n isNotInVariant?: boolean;\n}\n\ninterface IBindingContextMap {\n bindingContext: BindingContext;\n entity: IEntity;\n}\n\ninterface IFormStorageReloadArgs {\n preserveInfos: boolean;\n preserveData?: boolean;\n withoutBusy?: boolean;\n}\n\nexport type TGetCorrectErrorBc = (args: IGetCorrectErrorBc) => BindingContext;\nexport type TCustomResponseHandler = (response: IBatchResult[], args: IValidateAndSave, formStorage: FormStorage) => Promise;\nexport type TShouldUseCustomResHandler = (response: IBatchResult[]) => boolean;\n\nexport interface ISaveArgs {\n queryParams?: TRecordAny;\n successSubtitle?: string;\n data?: IEntity;\n bindingContext?: BindingContext;\n skipLoad?: boolean;\n // callback called before executing the batch request\n // provides the batch object, to inject custom requests\n onBeforeExecute?: (batch: BatchRequest) => Promise;\n // list of entities (of navigation properties) with independent entity set that will be handled by prepareBatch\n // to create PATCH requests automatically\n updateEnabledFor?: string[];\n\n /** Sometimes (e.g. when amount is changed on item with existing deferred plan),\n * we want to react differently to error returned from BE (show dialog with options instead of error alert) */\n customResponseHandler?: TCustomResponseHandler;\n shouldUseCustomResponseHandler?: TShouldUseCustomResHandler;\n\n // Do not add etag to the request\n skipETag?: boolean;\n\n /** When backend returns validation error, there can be a mismatch between the entity path\n * that BE returns the error for and between the path we use on FE for the field.\n *\n * e.g. BE matches the error to \"..../AccountAssignmentSelection\" but our field has path \"...../AccountAssignmentSelection/AccountAssignment\"\n *\n * We can solve this with getCorrectErrorBc that we provide in custom FormView, to return correct binding context. */\n getCorrectErrorBc?: TGetCorrectErrorBc;\n\n // used in dialogs, where we don't want to render alert for field validation, to save space\n fieldValidationWithoutErrorAlert?: boolean;\n\n // if you have some special operation after save is done\n skipAfterSave?: boolean;\n}\n\nexport interface IGroupStatus {\n isCreating?: boolean;\n isExpanded?: boolean;\n isMenuOpened?: boolean;\n activeTab?: string;\n selectedOption?: string;\n /** tabs with tables are hidden by default,\n and will only be shown once we know that they contain data */\n visibleTabs?: Record;\n}\n\nexport interface IValidateAndSave extends Omit, Omit {\n}\n\ntype TJobFn = (entity: IEntity, bc?: BindingContext) => {};\n\ninterface IHandleOdataError {\n error: ODataError;\n bindingContext: BindingContext;\n entity?: IEntity;\n getCorrectErrorBc?: TGetCorrectErrorBc;\n fieldValidationWithoutErrorAlert?: boolean;\n}\n\nexport interface IFormStatus {\n groups?: Record;\n isChanged?: boolean;\n}\n\nexport interface IFormStorageDefaultCustomData {\n busy?: boolean;\n busyDelayed?: boolean;\n draft?: IEntity;\n draftEtag?: string;\n isCustomizationDialogOpen?: boolean;\n isFirstRefreshAfterInit?: boolean;\n // whether we want to show \"copy\" on the form (has been created by copy button on another form)\n isCopy?: boolean;\n /* data stored in formStorage.customData with this key,\n will be used as initial data (default entity) next time \"init\" methods id called\n used for copy functionality*/\n initialData?: IEntity;\n Parent?: BindingContext;\n // ParentType?: string;\n // if bc set, TemporalPropertyDialog is opened for that bc\n temporalPropertyDialogBc?: BindingContext;\n // When there is some entity without draft, we want to attach temporarily inbox files to it when new one is created\n // and call ConvertToDocuments API on save\n inboxFilesToConvert?: IInboxFileEntity[];\n isDeleteButtonBusy?: boolean;\n // form can be \"locked\" by backend disabled metadata,\n // this prop alters the state and look of the form\n // and some of the locked fields will be allowed for editing.\n // also, draft is cleared and disabled in this case, as well as some of the form buttons\n editOverride?: IEditOverride;\n // alternative to the usePrompt on Page,\n // if you always want to the default usePrompt (warning when leaving dirty form), set it as a defaultProps on Page,\n // if you want to use custom usePrompt dynamically, set it here\n usePrompt?: {\n dialogConfirmText: string;\n dialogContent: React.ReactNode;\n };\n /** Can be used in case current entity uses FileView which has global file drop area.\n *otherFileDropArea is list of elements, that handles file drop for themselves, outside of the FileView.\n * When user hovers files over them, in case this FileDropArea is global,\n * we should disable hover state in this FileDropArea, so that use knows which of the drop areas will be used. */\n otherFileDropAreas?: HTMLElement[];\n}\n\nexport interface IFormStorageData extends IStorageModelData {\n status?: IFormStatus;\n definition?: IFormDef;\n origEntity?: Partial;\n // metadata object returned from backend for the current entity\n // contains etag and can contain DisabledPropertyRules/EnabledPropertyRules\n metadata?: ODataEntityMetadata;\n name?: string;\n alert?: IFormAlert;\n // form locked => lock icon in breadcrumbs, disabled fields are driven by evala metadata\n locked?: boolean;\n // form disabled => every field disabled, so far used when lock or delete table action is active\n disabled?: boolean;\n mergedDefinition?: TMergedDefinition;\n // results from additional promises added from concrete form view via function getAdditionalLoadPromise\n // todo unknown instead of any\n additionalResults?: any;\n}\n\ninterface IUpdateDependentFieldArgs {\n field: IDependentFieldDef;\n fromBindingContext: BindingContext;\n toBindingContext: BindingContext;\n updatedData: TRecordAny;\n}\n\ninterface IValidateAllRetVal {\n hasError: boolean;\n errorSubtitles: React.ReactNode[];\n validationErrors: TRecordString;\n}\n\ninterface IDisabledFieldMetadata {\n // translated, concatenated message of all the errors related to the field\n message: string;\n // entity cannot be deleted - applicable for collection item, e.g. Items(4)\n cannotBeDeleted?: boolean;\n // cannot add item to collection - applicable for whole collection, e.g. Items\n cannotAdd?: boolean;\n // cannot remove item from collection - applicable for whole collection, e.g. Items, Attachments..\n cannotDelete?: boolean;\n // unmodified data retrieved from backend\n originalRules: IEvalaMetadataRule[];\n}\n\nexport class MockOData {\n\n}\n\ninterface IFormModelOptions {\n // --------------------- DataImport specific ---------------------\n // settings used in DataImport\n // which doesn't use FormView, but still needs to render and validate fields based on form definition\n\n // prevent calling updateTabsVisibility during init\n ignoreTabsVisibility?: boolean;\n // enforce that all columns will be sent to Validator.createValidationSchema\n useAllFieldsForValidation?: boolean;\n}\n\nexport interface IFormModel extends IModel, IFormModelOptions {\n pageViewMode?: PageViewMode;\n}\n\nexport class FormStorage extends StorageModel, C> {\n // used for saves new items - by default when loading data, we want to reset alerts (which is done in init)\n // but for saving new items we want to display alert even after new stuff is load\n _preserveAlert: boolean;\n\n // flag for FIRST-TIME load. Don't turn it OFF once it is set, as it will result in form flicking when changing rows\n loaded: boolean;\n formMode: FormMode = FormMode.Default;\n // read only mode for the whole page (hide table, different buttons)\n pageViewMode: PageViewMode = PageViewMode.Default;\n\n options: IFormModelOptions;\n\n groupRefs: TRecordAny;\n activeGroups: Record = {};\n\n data: IFormStorageData;\n\n ignoreVariants: boolean;\n LOCAL_STORAGE_VARIANT_NAME = \"formVariant\";\n type = ModelType.Form;\n oneFetchEntity = getOneFetch();\n oneFetchDraft = getOneFetch();\n tabsDataBatch: BatchRequest;\n\n shouldDelayInitialBusy = true;\n\n constructor(args: IFormModel) {\n super(args);\n\n this.data = {\n entity: {},\n bindingContext: args?.bindingContext,\n fieldsInfo: {},\n temporalData: {},\n additionalFieldData: {},\n definition: args.definition as IFormDef\n };\n\n if (args.pageViewMode) {\n this.pageViewMode = args.pageViewMode;\n }\n\n this.options = {\n ignoreTabsVisibility: !!args.ignoreTabsVisibility,\n useAllFieldsForValidation: !!args.useAllFieldsForValidation\n };\n\n this.groupRefs = {};\n }\n\n _getReadOnlyFromDef = (): boolean => {\n return getInfoValue(this.data.definition, \"isReadOnly\", {\n storage: this.getThis(),\n data: this.data.entity\n });\n };\n\n get isReadOnly(): boolean {\n return this.pageViewMode === PageViewMode.FormReadOnly || this._getReadOnlyFromDef();\n }\n\n get isDisabled(): boolean {\n return this.data?.disabled;\n }\n\n // computed from the BE disabled flag api\n // returns null if the field is not disabled or metadata object, if the field is disabled\n // cached using _.memoize, reset on form init\n getBackendDisabledFieldMetadata = memoize((bc: BindingContext): IDisabledFieldMetadata => {\n const rules = new Map();\n const evalaMetadata = this.data.metadata?.metadata;\n const fieldInfo = this.getInfo(bc);\n const navPath = fieldInfo?.backendPath ? bc.getParent().navigate(fieldInfo.backendPath).getNavigationPath() : bc.getNavigationPath();\n\n /** Adds weight to the applicable rules, that tells how strong the rule is for the given binding context,\n * so that we can differentiate between prefix matches and when the rule targets our particular binding context*/\n const fnFindApplicableRules = (rulesMap: Record): {\n rules: IEvalaMetadataRule[];\n weight: number;\n } => {\n // find applicable rule - either navPath fully matches or just prefix matches\n let rules = rulesMap?.[navPath];\n let weight = navPath.split(\"/\").length;\n\n if (!rules) {\n let tmpBc = bc.getParent();\n const rootBcPath = bc.getRootParent().toString();\n\n while (tmpBc.toString() !== rootBcPath && !rules) {\n const prefixNavPath = tmpBc.getNavigationPath();\n rules = rulesMap?.[prefixNavPath];\n\n // rules with CannotBeDeleted/CannotAdd/CannotDelete has to match full binding context, not just prefix\n if (rules) {\n rules = rules.filter(rule => !rule.CannotBeDeleted && !rule.CannotAdd && !rule.CannotDelete);\n\n if (rules.length === 0) {\n rules = null;\n }\n }\n\n weight = prefixNavPath.split(\"/\").length;\n tmpBc = tmpBc.getParent();\n }\n }\n\n if (!rules) {\n return null;\n }\n\n return {\n rules,\n weight\n };\n };\n\n const fieldDisabledRules = fnFindApplicableRules(evalaMetadata?.DisabledPropertyRules);\n\n if (fieldDisabledRules?.rules) {\n for (const rule of fieldDisabledRules.rules) {\n rules.set(rule.ErrorCode, rule);\n }\n }\n\n if (evalaMetadata?.EnabledPropertyRules && Object.keys(evalaMetadata.EnabledPropertyRules).length > 0) {\n const fieldEnabledRules = fnFindApplicableRules(evalaMetadata?.EnabledPropertyRules);\n\n for (const enabledRules of Object.values(evalaMetadata.EnabledPropertyRules)) {\n // skip the current navigation path's enabled rules\n if (enabledRules === fieldEnabledRules?.rules) {\n continue;\n }\n\n for (const rule of enabledRules) {\n // check if the error code of the current rule is not in the enabled rules for the current navigation path\n if (!fieldEnabledRules || !fieldEnabledRules?.rules?.find(r => r.ErrorCode === rule.ErrorCode)) {\n rules.set(rule.ErrorCode, rule);\n }\n }\n }\n\n if (fieldDisabledRules?.rules && fieldEnabledRules?.rules) {\n for (const rule of fieldEnabledRules.rules) {\n if (fieldDisabledRules.weight >= fieldEnabledRules.weight) {\n continue;\n }\n\n // if we have enabled rule with bigger weight than disabled rule, remove the disabled rule from errors\n const disabledRule = fieldDisabledRules.rules.find(r => r.ErrorCode === rule.ErrorCode);\n\n if (disabledRule) {\n rules.delete(rule.ErrorCode);\n }\n }\n }\n }\n\n if (rules.size === 0) {\n return null;\n }\n\n const message = Array.from(rules.keys()).map(errCode => this.t(`Error:${errCode}`)).join(\"\\n\");\n\n // return a string of the error codes mapped to their corresponding error messages\n return {\n cannotBeDeleted: Array.from(rules.values()).some(rule => rule.CannotBeDeleted),\n cannotAdd: Array.from(rules.values()).some(rule => rule.CannotAdd),\n cannotDelete: Array.from(rules.values()).some(rule => rule.CannotDelete),\n message,\n originalRules: Array.from(rules.values())\n };\n }, (bc: BindingContext) => {\n return bc.getNavigationPath();\n });\n\n getOrigEntity = (): E => {\n return this.data.origEntity as E;\n };\n\n // todo improve interfaces and generics,\n // remove this function if we manage to use correct generics in functions like getFormTableFilterQuery\n // this is just hack to make TS work without them\n getThis = (): FormStorage => {\n return this as unknown as FormStorage;\n };\n\n init = async (args: IContextInitArgs): Promise => {\n const prevBindingContext = this.data.bindingContext;\n const { bindingContext } = args;\n // sometimes we switch entity type of the form when the selected row is changed (e.g. labels/label hierarchy)\n const hasEntityChanged = prevBindingContext?.getPath(true) !== bindingContext.getPath(true);\n\n this.loading = true;\n this.afterLoaded = false;\n\n // store immediately, before calling collectColumnData, because it can be used in callbacks like isRequired that are called from there\n // it can also be used in some components that are rendered during init\n this.storeSingleValue(\"bindingContext\", bindingContext);\n\n this.reset(hasEntityChanged);\n if (args.formMode) {\n this.formMode = args.formMode;\n }\n this.data.definition = args.definition ?? this.data?.definition;\n\n if (isDefined(args.ignoreVariants) ? !args.ignoreVariants : !this.ignoreVariants) {\n await this.loadVariants(VariantType.Form, bindingContext);\n\n // ignore fields in variants that are not in fieldDefinition\n // this could happen e.g. when we forget to create a migration for removed field,\n // and it will still be present in user variant\n const fnFieldPresentInDefinition = (group: IFormGroupDef, field: IFieldDef) => {\n const collection = group.collection ?? group.lineItems?.collection;\n const path = collection ? `${collection}/${field.id}` : field.id;\n const presentInDefinition = !!this.data.definition.fieldDefinition[path];\n\n if (!presentInDefinition) {\n logger.warn(`${field.id} stored in current variant is not present in current form definition. It is possible a migration should be created to remove it from users variants`);\n }\n\n return presentInDefinition;\n };\n for (const variant of Object.values(this.data.variants.allVariants)) {\n if (variant.formGroups) {\n for (const formGroup of variant.formGroups) {\n if (!formGroup.title) {\n // title can be a function, which is not serialized -> get it from original definition\n const origDef = this.data.definition.groups.find(grp => grp.id === formGroup.id);\n formGroup.title = origDef?.title ?? \"\";\n }\n if (formGroup.rows) {\n formGroup.rows = formGroup.rows.map(row => row.filter(field => fnFieldPresentInDefinition(formGroup, field)));\n }\n }\n }\n }\n }\n\n // store ignoreVariants if defined to be reused,\n // init is called from inside FormStorage, and we need to know\n // if the first init call from outside used ignoreVariants\n // => ignoreVariants always if not changed otherwise\n if (isDefined(args.ignoreVariants)) {\n this.ignoreVariants = args.ignoreVariants;\n }\n\n const canLoadDataFromBindingContext = bindingContext && !(bindingContext.isNew() || bindingContext.isLocal());\n // based on current definition merge defaultField def with groups and store it to mergedDefinition\n // merged definition is preserved among request of the same entity type (by same formstorage instance)\n if (!this.data.mergedDefinition) {\n try {\n this.collectColumnData(bindingContext, this.getVariant());\n } catch (e) {\n // Error loading variant, fallback to base definition\n logger.error(e.toString());\n // LocalStorage variant is broken -> clear it, select default variant and try to load it again\n this.setLocalStorageVariant(null);\n // remove partly created mergedDefinition\n delete this.data.mergedDefinition;\n this.collectColumnData(bindingContext, this.getVariant());\n }\n }\n\n let loadData: Promise = null;\n if (!args.data) {\n loadData = this.load(this.data.mergedDefinition, args.bindingContext, canLoadDataFromBindingContext);\n } else {\n // e.g. when document is copied\n // in case we are not loading data from BE, we need to clear related data -> metadata, etc...\n this.clearDisabledFieldMetadataCache();\n // todo: should we clear also origEntity??\n }\n let data = null;\n\n // create infos based on binding context. Part of infos is memoized, for now only fieldSettings is deepcloned and is recreated\n const fieldsInfo = this.loadInfos(this.data.mergedDefinition, bindingContext, args.preserveInfos);\n\n\n const promises: (Promise | void)[] = [loadData, fieldsInfo];\n promises.push(...(this.getAdditionalLoadPromise(args) || []));\n\n await Promise.all(promises)\n .then(async (results: TRecordAny[]) => {\n // Check if store binding context doesn't change in the meantime -> in that case, do not store the results\n if (areBindingContextsDifferent(this.data.bindingContext, bindingContext)) {\n return;\n }\n\n // store fieldsInfo immediately, otherwise they will not be available in Model.getInfo\n const loadedData = results[0];\n const loadedFieldsInfo = results[1];\n const additionalResults = results.slice(2);\n this.store({ fieldsInfo: loadedFieldsInfo });\n\n const preservedEntity = args.preserveData ? this.data.entity : null;\n const preservedOrigEntity = args.preserveData ? this.data.origEntity : null;\n // if we are preserving data, we need to preserve additionalFieldData as well\n // to not lose errors and dirty states\n const additionalFieldData = args.preserveData ? this.data.additionalFieldData : {};\n let _data: IFormStorageData = loadedData;\n // !_data => only init default values for new form\n if (!args.data && isObjectEmpty(_data?.entity)) {\n _data = this.clearForm(this.data.mergedDefinition, bindingContext);\n } else if (!args.ignoreDefaults && isObjectEmpty(_data?.origEntity)) {\n // if there are some data, set default values for empty fields,\n // e.g. when we open partial draft generated from isDoc\n\n // store the loaded data into entity first,\n // many of the isVisible callbacks that are used to check whether the default value should be set\n // use storage.entity as source of data, not args.entity\n this.store({\n entity: (args.data as Partial) ?? _data.entity,\n origEntity: cloneDeep(args.data as Partial) ?? _data.origEntity\n });\n this.setDefaultValueOfEmptyFields(this.data.mergedDefinition, bindingContext, args.data ?? _data.entity);\n }\n\n // Switching between newForm and already saved form resets group statuses\n const hasBcChanged = areBindingContextsDifferent(bindingContext, prevBindingContext);\n\n let entity: Partial;\n let origEntity: Partial;\n\n if (args.data) {\n entity = args.data as Partial;\n origEntity = cloneDeep(args.data as Partial);\n } else if (args.preserveData) {\n entity = preservedEntity;\n origEntity = preservedOrigEntity;\n\n // only update the entity with the loaded data if the entity doesn't have the property yet\n // use _.mergeWith to achieve this effect,\n // _.merge only ignores \"undefined\" values in the _data.entity, but it still overrides the preserved changed values in entity with values from _data.entity\n const fnCustomizer = (objValue: TValue, srcValue: TValue) => {\n if (isNotDefined(objValue)) {\n return srcValue;\n }\n\n return objValue;\n };\n\n mergeWith(entity, _data.entity, fnCustomizer);\n mergeWith(origEntity, _data.origEntity, fnCustomizer);\n } else {\n entity = _data.entity;\n origEntity = _data.origEntity;\n }\n\n data = {\n origEntity,\n entity,\n bindingContext,\n status: this.clearFormStatus(hasBcChanged || bindingContext.isNew() ? {} : this.data.status?.groups),\n additionalFieldData: additionalFieldData,\n additionalResults: additionalResults,\n temporalData: {}\n } as IFormStorageData;\n\n data.alert = this._preserveAlert ? this.data.alert : null;\n\n this._preserveAlert = false;\n\n this.setCustomData({ inboxFilesToConvert: null });\n\n this.store(data);\n // update uuid so that we can recognize that the form has been reloaded (even when bc hasn't changed)\n this.updateUuid();\n\n // !! the order matters !!\n // ONE AND ONLY FORM force update IS CALLED FROM onAfterLoad ==>\n // A. we need set loaded true before so smartselects can be loaded when force update in onAfterLoad is called\n // B. If you modify something requiring current values setting from entity in on after load ---->\n // CALL THIS METHOD YOURSELF AT THE END\n // C. EVERY overloaded onAfterLoad HAS TO CALL refresh !!!!!\n this.loaded = true;\n this.loading = false;\n\n await args.onAfterLoad?.();\n await this.onAfterLoad?.();\n this.afterLoaded = true;\n\n this.createFormValidationSchema();\n })\n .catch((e: Error) => {\n if (isAbortException(e)) {\n return null;\n }\n if (isODataError(e)) {\n if (e._code === BackendErrorCode.PermissionError) {\n // todo: should we handle it in some special way??\n }\n const alert = getAlertFromError(e);\n this.store({ alert });\n }\n this.loading = false;\n logger.error(e.toString());\n });\n\n if (!this.options.ignoreTabsVisibility) {\n this.updateTabsVisibility(null, true);\n }\n\n return data;\n };\n\n initWithoutLoad = async (definition: IFormDef, bindingContext: BindingContext): Promise => {\n this.data.definition = definition;\n this.data.bindingContext = bindingContext;\n this.collectColumnData(bindingContext, this.getVariant());\n const fieldsInfo = await this.loadInfos(this.data.mergedDefinition, bindingContext);\n this.store({\n entity: {\n Id: bindingContext.getKey()\n } as unknown as E,\n origEntity: {},\n fieldsInfo,\n bindingContext,\n definition,\n additionalFieldData: {},\n additionalResults: {}\n });\n this.updateTabsVisibility(null, true);\n };\n\n /**\n * resets user changes to original saved data\n */\n async resetData(): Promise {\n const { bindingContext, mergedDefinition, origEntity } = this.data;\n let clearedData;\n if (bindingContext.isNew()) {\n clearedData = this.clearForm(mergedDefinition, bindingContext);\n } else {\n clearedData = {\n entity: cloneDeep(origEntity),\n formStatus: this.clearFormStatus()\n };\n }\n\n this.store({\n ...clearedData,\n alert: null,\n additionalFieldData: {},\n temporalData: {}\n });\n await this.onAfterLoad?.();\n }\n\n handleFirstChange = (): void => {\n if (!this.data.status.isChanged && this.afterLoaded) {\n this.data.status.isChanged = true;\n\n this.refresh();\n }\n };\n\n /** !!Call from every place that could affect visibility of any tab, if \"reload\" isn't called instead.!!\n\n * @param affectedTabs list of tab ids that should be used to built visibility check request. If null, every tab will be checked.\n * @param rerenderOnlyIfSomeVisible performance optimization - if false, tab form group won't be re-rendered if no tab is visible\n *\n * Fetch first item (optimization, probably faster than count) for each table in tab,\n * to find out, whether we want to show the tab at all.\n * Don't await updateTabsVisibility so that the form isn't blocked for even longer period of time. */\n updateTabsVisibility = async (affectedTabs: string[], rerenderOnlyIfSomeVisible?: boolean): Promise => {\n const definition = this.data.definition;\n\n if (this.formMode === FormMode.AuditTrail) {\n // completely hide tabs in AuditTrail (at least for now, before any spec/designs are made)\n return;\n }\n\n for (const group of (definition.groups ?? [])) {\n const origStatus = this.getGroupStatus(group.id);\n const visibleTabs: Record = origStatus?.visibleTabs ?? {};\n const waitingTabs: string[] = [];\n this.tabsDataBatch?.abort();\n this.tabsDataBatch = this.oData.batch();\n\n this.tabsDataBatch.beginAtomicityGroup(\"group1\");\n\n const isVisible = getInfoValue(group, \"isVisible\", {\n storage: this.getThis(),\n bindingContext: this.data.bindingContext,\n context: this.context\n });\n\n if (!group.tabs || !isVisible) {\n continue;\n }\n\n for (const tab of group.tabs) {\n if (affectedTabs && !affectedTabs.includes(tab.id)) {\n continue;\n }\n\n if (!tab.table) {\n visibleTabs[tab.id] = true;\n continue;\n }\n\n waitingTabs.push(tab.id);\n\n const wrapper = this.tabsDataBatch.getEntitySetWrapper(tab.table.entitySet);\n const filter = getFormTableFilterQuery(this.getThis(), tab.table, this.data.bindingContext);\n\n wrapper.query().top(1).filter(filter.query);\n }\n\n try {\n if (waitingTabs.length > 0) {\n const res = await this.tabsDataBatch.execute();\n\n for (let i = 0; i < res.length; i++) {\n visibleTabs[waitingTabs[i]] = (res[i]?.body as ODataQueryResult)?.value?.length > 0;\n }\n }\n } catch (e) {\n if (isAbortException(e)) {\n return;\n }\n }\n\n\n if (!rerenderOnlyIfSomeVisible || Object.keys(visibleTabs).length > 0) {\n let activeTab: string;\n\n if (origStatus?.activeTab && visibleTabs[origStatus.activeTab]) {\n activeTab = origStatus.activeTab;\n\n // if the original active tab is affected, reload the SmartTable to get new data\n if (affectedTabs?.includes(activeTab)) {\n const tableId = group.tabs.find(tab => tab.id === activeTab).table.id;\n\n SmartTableManager.getTable(tableId).reloadTable();\n }\n } else {\n // of original active tab isn't visible, take first visible tab\n activeTab = group.tabs.find(tab => visibleTabs[tab.id])?.id;\n }\n\n this.setGroupStatus({\n ...origStatus,\n visibleTabs,\n activeTab\n }, group.id);\n\n this.refreshGroupByKey(group.id);\n }\n }\n };\n\n getVariant = (): IFormGroupDef[] => {\n const { groups } = this.data.definition;\n const savedVariant = this.getLocalStorageVariant() ?? this.data.variants?.currentVariant?.formGroups;\n\n if (savedVariant) {\n /**\n * If there is saved variant, we need to combine it with original group definition, because\n * serialization breaks callbacks and react components in the def.\n */\n return savedVariant.map(savedGroup => {\n const originalDef: Partial = groups.find(g => g.id === savedGroup.id) ?? {};\n const { id, title, rows, lineItems } = savedGroup;\n const mergedGroupDef = {\n ...originalDef,\n id, title, rows\n };\n if (originalDef.lineItems) {\n mergedGroupDef.lineItems = {\n ...originalDef.lineItems,\n ...lineItems\n };\n }\n return mergedGroupDef;\n });\n }\n // return FE definition if no other variant is set\n return groups ?? [];\n };\n\n setEntity = (entity: E): void => {\n this.data.origEntity = cloneDeep(entity);\n this.data.entity = entity;\n };\n\n /** Sets value to both data.entity and data.origEntity when we need to avoid data inconsistency */\n setValueToEntityAndOrigEntity = (bindingContext: BindingContext, value: any) => {\n this.setValue(bindingContext, value);\n this.data.origEntity = setBoundValue({\n bindingContext: bindingContext,\n dataBindingContext: this.data.bindingContext,\n data: this.data.origEntity,\n newValue: value\n });\n };\n\n storeSingleValue = (name: keyof IFormStorageData, value: any): void => {\n this.storeSingleValueWithoutCheck(name, value);\n };\n\n getDefaultValue(bc: BindingContext): T {\n const info = this.getInfo(bc);\n return getInfoValue(info, \"defaultValue\", {\n data: this.data.entity,\n storage: this.getThis(),\n info: info,\n context: this.context\n });\n }\n\n /**\n * Sometimes, we use localContext path as custom collection. In this case, we check first path of the bc\n * and check if there is a group with lineItems with collection prop of the same path.\n * @param bc\n */\n isLocalContextCollection(bc: BindingContext): boolean {\n const [basePath] = splitPath(bc.getNavigationPath(true));\n if (BindingContext.isLocalContextPath(basePath)) {\n const collectionGroup = this.data.definition.groups.find(g =>\n g.lineItems?.collection === basePath);\n return !!collectionGroup;\n }\n return false;\n }\n\n setDefaultValue = (bc: BindingContext, rootBindingContext = this.data.bindingContext, data?: IEntity): TFieldDefaultValue => {\n let fieldBc = bc;\n const info = this.getInfo(fieldBc);\n // todo: should we set default value only for visible fields??\n if (info && info.defaultValue !== undefined) {\n\n // skip setting up the collection field (like Items/Name)\n if (!fieldBc.isValid() || (info?.isCollectionField ?? this.isLocalContextCollection(fieldBc))) {\n return null;\n }\n\n const updatedData = data ?? this.data.entity;\n\n const defVal = cloneDeep(getInfoValue(info, \"defaultValue\", {\n data: updatedData,\n storage: this.getThis(),\n info: info,\n bindingContext: info.bindingContext,\n context: this.context\n }));\n\n if (defVal === undefined) {\n // if undefined is returned from the callback, do not set anything to the entity\n return defVal;\n }\n\n this.correctEnumValue(fieldBc, defVal, updatedData);\n\n if (isNavigationForUpdate(fieldBc, defVal)) {\n fieldBc = fieldBc.navigate(fieldBc.getKeyPropertyName());\n }\n\n setBoundValue({\n bindingContext: fieldBc,\n data: updatedData,\n newValue: defVal,\n dataBindingContext: rootBindingContext,\n preventCloning: true\n });\n\n if (this.hasError(bc)) {\n // we are setting default value, so we should probably remove errors from that field\n this.clearError(bc);\n }\n\n // on first load, we work with data object and no active fields needs to be set. We set active fields only\n // when working with entity\n if (!data) {\n this.addActiveField(bc);\n }\n\n return defVal;\n }\n return null;\n };\n\n setDefaultValueByPath = (path: string, rootBindingContext = this.data.bindingContext, data?: IEntity): TFieldDefaultValue => {\n return this.setDefaultValue(rootBindingContext.navigate(path), rootBindingContext, data);\n };\n\n clearFormStatus = (groups: Record = {}): IFormStatus => {\n // preserve expanded group and active tab when switching items\n if (!isObjectEmpty(groups)) {\n for (const key of Object.keys(groups)) {\n groups[key] = {\n isExpanded: groups[key].isExpanded,\n activeTab: groups[key].activeTab\n };\n }\n }\n return {\n groups: groups\n };\n };\n\n loadInfos = async (columnData: TMergedDefinition, bindingContext: BindingContext, preserve = false): Promise> => {\n if (preserve) {\n for (const info of Object.values(this.data.fieldsInfo)) {\n const def = columnData[info.bindingContext.getNavigationPath(true)];\n info.fieldSettings.additionalItems = [...(def?.fieldDef?.fieldSettings?.additionalItems) || []];\n }\n return this.data.fieldsInfo;\n } else {\n const columns = Object.values(columnData);\n const infos: Record = {};\n const infoPromises: Promise[] = [];\n for (const column of columns) {\n infoPromises.push(this.loadInfo(column, bindingContext.navigate(column.path)));\n }\n const infosResult = await Promise.all(infoPromises);\n for (const info of infosResult) {\n infos[info.bindingContext.getFullPath(true)] = info;\n }\n return infos;\n }\n };\n\n addGroupRef = (ref: any, groupId: string) => {\n this.groupRefs[groupId] = ref;\n };\n\n\n reset = (hasEntityChanged: boolean): void => {\n if (hasEntityChanged) {\n // only reset if needed, to prevent unnecessary calls of createFormValidationSchema\n // which is slow because yup uses clone a lot internally\n this.data.mergedDefinition = null;\n }\n // NOTE: customData must not be reset. They may contain data, which are not entity specific.\n // For entity specific data, localContext on entity might be used or some other mechanism.\n // this.data.customData = {};\n };\n\n getFieldValues(bc: BindingContext, info?: IFieldInfo): IStorageSmartFieldValues {\n info = info || this.getInfo(bc);\n\n const data = super.getFieldValues(bc, info);\n\n const idBindingContext = bc.isNavigation() && !bc.isCollection() ?\n bc.navigate(bc.getKeyPropertyName()) : bc;\n\n const origEntity = this.data.origEntity;\n let origValue = getBoundValue({\n bindingContext: idBindingContext,\n data: origEntity,\n dataBindingContext: this.data.bindingContext\n }) as TValue;\n\n const _isVisible = (this.formMode === FormMode.AuditTrail) || data.isVisible;\n\n if (Array.isArray(data.value)) {\n const path = info.fieldSettings?.keyPath;\n\n if (path) {\n const values = [];\n for (const value of data.value) {\n values.push(getNestedValue(path, value as unknown as TRecordAny));\n }\n data.value = values;\n\n // same transformation for origValue,\n // otherwise, SmartFieldUtils.isSameValue will always fail for labels on user locked documents\n if (Array.isArray(origValue)) {\n const origValues = [];\n for (const value of origValue as IEntity[]) {\n origValues.push(getNestedValue(path, value as unknown as TRecordAny));\n }\n origValue = origValues;\n }\n }\n }\n\n return {\n ...data,\n origValue,\n isVisible: _isVisible\n };\n }\n\n clearForm = (parsedDefinition: TMergedDefinition, bindingContext: BindingContext) => {\n const defaultData: Partial = {};\n const columns = Object.values(parsedDefinition);\n for (const column of columns) {\n this.setDefaultValueByPath(column.path, bindingContext, defaultData);\n }\n\n return {\n origEntity: {},\n entity: defaultData,\n formStatus: this.clearFormStatus()\n };\n };\n\n setDefaultValueOfEmptyFields = (parsedDefinition: TMergedDefinition, bindingContext: BindingContext, data: IEntity): void => {\n const columns = Object.values(parsedDefinition);\n for (const column of columns) {\n const _isVisible = isVisibleByPath(this.getThis(), column.path, data);\n const fieldBc = bindingContext.navigate(column.path);\n if (_isVisible && !isDefined(this.getValue(fieldBc, { dataStore: data }))) {\n this.setDefaultValue(fieldBc, bindingContext, data);\n }\n }\n };\n\n createFormValidationSchema = memoizeOne(() => {\n const colData: IMergedFieldDef[] = Object.values(this.data.mergedDefinition);\n const columnNames = colData.filter(column => this.options.useAllFieldsForValidation || column.useForValidation).map(column => column.path);\n\n this.createValidationSchema(columnNames);\n }, () => [this.data.mergedDefinition]);\n\n collectColumnData = (bindingContext: BindingContext, groups: IFormGroupDef[]): TMergedDefinition => {\n let currentGroupId = \"\";\n\n const _add = ({\n path,\n useForValidationByDefault,\n fieldDef,\n useForLoad = true,\n collectionPath = \"\",\n isNotInVariant\n }: IAddFieldArgs) => {\n const isLocalContext = BindingContext.isLocalContextPath(path);\n if (!isLocalContext && !this.isValidPath(path)) {\n throw new Error(`Cannot navigate to ${path} from ${bindingContext.getFullPath()}`);\n }\n const defaultFieldDef = this.data.definition.fieldDefinition?.[path];\n fieldDef = {\n ...defaultFieldDef,\n ...fieldDef\n };\n\n const useForValidation = fieldDef.useForValidation ?? useForValidationByDefault;\n\n for (const def of fieldDef?.additionalProperties || []) {\n if (!def.id.startsWith(\"/\")) {\n let fieldPath = isLocalContext ? collectionPath : path;\n fieldPath = fieldPath ? `${fieldPath}/${def.id}` : def.id;\n\n if (!this.data.mergedDefinition[fieldPath]) {\n _add({\n path: fieldPath,\n useForValidationByDefault: false,\n fieldDef: def,\n useForLoad: true\n });\n }\n }\n }\n // for (const column of fieldDef?.columns || []) {\n // _add(`${fieldDef.id}/${column.id}`, false, column, true);\n // }\n\n this.data.mergedDefinition[path] = {\n groupId: currentGroupId,\n path,\n useForLoad,\n fieldDef,\n useForValidation,\n isNotInVariant\n };\n\n return fieldDef;\n };\n\n if (!this.data.mergedDefinition) {\n this.data.mergedDefinition = {};\n const additionalProperties = this.data.definition.additionalProperties;\n\n if (additionalProperties) {\n for (const property of additionalProperties) {\n _add({\n path: property.id,\n useForValidationByDefault: false,\n fieldDef: property\n });\n if (property.columns) {\n for (const column of property.columns) {\n _add({\n path: `${property.id}/${column.id}`,\n useForValidationByDefault: false,\n fieldDef: column,\n useForLoad: true\n });\n }\n }\n }\n }\n\n const _processRows = (rows: IFieldDef[][], prefix: string, firstLevel = true) => {\n if (rows) {\n rows.forEach(row => {\n row.forEach(column => {\n if (typeof column === \"function\") {\n // ignore custom fields\n return;\n }\n\n const path = column.isCollectionField !== false ? `${prefix}${column.id}` : column.id;\n\n _add({\n path: path,\n useForValidationByDefault: true,\n fieldDef: column\n });\n\n if (firstLevel && this.data.definition.fieldDefinition[path]?.collapsedRows) {\n _processRows(this.data.definition.fieldDefinition[path].collapsedRows, prefix, false);\n }\n });\n });\n }\n };\n\n const _processGroup = (group: IFormGroupDef) => {\n currentGroupId = group.id;\n if (group.tabs) {\n for (const tabGroup of group.tabs) {\n _processGroup(tabGroup);\n }\n }\n // specified collection means all the other fields has to be prefixed with its path\n const prefix = group.collection ? `${group.collection}/` : \"\";\n\n const lineItemsDef = group.lineItems;\n if (lineItemsDef && lineItemsDef.collection) {\n [...lineItemsDef.columns, ...(lineItemsDef.additionalFields ?? [])].forEach((column) => {\n const key = `${lineItemsDef.collection}/${column.id}`;\n const isLocal = BindingContext.isLocalContextPath(key);\n\n _add({\n path: key,\n useForValidationByDefault: true,\n fieldDef: column,\n useForLoad: !isLocal,\n collectionPath: lineItemsDef.collection\n });\n });\n if (lineItemsDef.order) {\n _add({\n path: `${prefix}${lineItemsDef.collection}/${lineItemsDef.order}`,\n useForValidationByDefault: false,\n fieldDef: null\n });\n }\n }\n\n _processRows(group.rows, prefix);\n };\n\n for (const group of groups) {\n _processGroup(group);\n }\n\n if (this.data.definition.summary) {\n (this.data.definition.summary as ISummaryItem[]).forEach(item => {\n const name = item.id;\n if (!this.data.mergedDefinition[name]) {\n _add({\n path: name,\n useForValidationByDefault: false,\n fieldDef: item\n });\n }\n });\n }\n\n // add required fields from fieldDefinition that are not part of the variant,\n // - we need them in mergedDefinition to be able to set their default values,\n // add the rest of the fields from fieldDefinition,\n // - sometimes, we need the fields to have their info loaded (e.g. when we use local context field that is not used in any group),\n // - now we have to add it in additionalProperties. This will add it automatically, but with useForLoad set to false,\n // - so hopefully without any performance impact\n for (const key of Object.keys(this.data.definition.fieldDefinition ?? {})) {\n if (!this.data.mergedDefinition[key]) {\n _add({\n path: key,\n useForValidationByDefault: false,\n isNotInVariant: true,\n useForLoad: true\n });\n }\n }\n }\n\n return this.data.mergedDefinition;\n };\n\n setFormAlert = (alert: IFormAlert): void => {\n this.store({\n alert: {\n ...alert,\n onClose: () => {\n // clear alert after it is closed (e.g. fade out of success alert)\n this.clearFormAlert();\n this.refresh();\n },\n // form alerts are always without action because user has to solve the problem in the form to make the alert disappear\n action: AlertAction.None\n }\n });\n };\n\n clearFormAlert = (): void => {\n this.store({\n alert: null\n });\n };\n\n getMultiValue = (e: ISmartFieldChange) => {\n const info = this.getInfo(e.bindingContext);\n const path = info?.fieldSettings?.keyPath;\n let eventValues: string[] = e.value as string[];\n let existingValues = this.getValue(e.bindingContext);\n\n if (!existingValues) {\n // list of current values might not be initialized\n existingValues = [];\n }\n\n const values = [];\n\n if (!eventValues) {\n // beware of babel bug https://github.com/babel/babel/issues/9530\n eventValues = [];\n }\n\n for (const value of eventValues) {\n // if the relation already exist, we need to keep its values (like Id)\n const originalData = existingValues.find((val: any) => getNestedValue(path, val) === value) ?? {};\n const data = setNestedValue(value, path, originalData);\n\n if (info?.fieldSettings?.localDependentFields?.length > 0) {\n const selectedItem = e.selectedItems.find(item => item.id === value);\n\n if (!selectedItem) {\n // for wrong cases where the given selected item (props.value) is not actually in the list of props.items\n continue;\n }\n\n for (const field of info.fieldSettings.localDependentFields) {\n const dependentValue = getNestedValue(field.from.id, selectedItem.additionalData);\n if (isDefined(dependentValue)) {\n setNestedValue(dependentValue, field.to?.id ?? field.from.id, data);\n }\n }\n }\n values.push(data);\n }\n\n // add proper new id for new items (items without existing id)\n // todo should this be handled here? This way it works with SmartLabelSelect,\n // but this case (multi select that adds/removes items, not just represents list of references)\n // should probably be handled more generally on SmartMultiSelect\n const keyPropertyName = e.bindingContext.getKeyPropertyName();\n\n for (let i = 0; i < values.length; i++) {\n if (!values[i].hasOwnProperty(keyPropertyName)) {\n values[i] = {\n ...BindingContext.createNewEntity(getNewItemsMaxId(values)),\n ...values[i]\n };\n }\n }\n return values;\n };\n\n storeMultiValue = (e: ISmartFieldChange, skipTempData?: boolean): void => {\n if (e.triggerAdditionalTasks) {\n const values = this.getMultiValue(e);\n this.setValue(e.bindingContext, values, null, skipTempData);\n\n setDirtyFlag(this.getThis(), e.bindingContext);\n } else if (e.type === FieldType.FileInput) {\n this.setValue(e.bindingContext, e.value, null, skipTempData);\n }\n };\n\n clearEmptyLineItems = (itemsFieldId: string, keepOne = false): void => {\n const fieldBc = this.data.bindingContext.navigate(itemsFieldId);\n const itemsGroup = this.data.definition.groups.find(group => group.id === itemsFieldId);\n const newItems = [];\n\n if (this.data.entity?.[itemsFieldId]) {\n for (const element of this.data.bindingContext.iterateNavigation(itemsFieldId, this.data.entity[itemsFieldId])) {\n // TODO: !element.entity.LinkedDocument?.Id => this is another case where new item is created on\n // internal doc form and isn't dirty, yet we don't want to clear it -> find some better way how to handle these exceptions\n if (!element.bindingContext.isNew() || this.isDirty(element.bindingContext) || element.entity[DRAFT_ITEM_ID_PATH] || element.entity.LinkedDocument?.Id) {\n newItems.push(element.entity);\n }\n }\n }\n\n if (keepOne && !newItems.length && this.data.entity?.[itemsFieldId]?.[0]) {\n newItems.push(this.data.entity[itemsFieldId][0]);\n }\n\n if (itemsGroup.lineItems.order && itemsGroup.lineItems.order !== \"Id\") {\n newItems\n .sort((a, b) => a[itemsGroup.lineItems.order] - b[itemsGroup.lineItems.order])\n .forEach((item, idx) => {\n item[itemsGroup.lineItems.order] = idx + 1;\n });\n }\n\n this.store({\n entity: setBoundValue({\n bindingContext: fieldBc,\n data: this.data.entity,\n newValue: newItems,\n dataBindingContext: this.data.bindingContext,\n preventCloning: true\n })\n });\n };\n\n handleTemporalChange(e: ISmartFieldChange): void {\n this.addActiveField(e.bindingContext);\n this.addActiveFieldsFromAffectedFields(e.bindingContext);\n\n const path = e.bindingContext.getFullPath();\n const info = this.getInfo(e.bindingContext);\n\n if (isSelectBasedComponent(e.type) && !e.triggerAdditionalTasks && !allowCreateValues(info)) {\n // update only currentValue for select based components\n const data = this.data.temporalData[path] ?? {};\n this.data.temporalData[path] = data;\n return;\n }\n\n const value = Array.isArray(e.value) ? this.getMultiValue(e) : e.value;\n\n this.data.temporalData[e.bindingContext.getFullPath()] = {\n value,\n additionalData: e.additionalData,\n originalEvent: e\n };\n }\n\n handleFieldStateChange(bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState): void {\n let _shouldRefresh = false;\n if (!state.isRequired && prevState.isRequired) {\n // Field stopped being required -> clear possible errors\n this.clearError(bc);\n _shouldRefresh = true;\n }\n if (state.isVisible && !prevState.isVisible) {\n // Field became visible -> set default value for the field if value not present\n if (isNotDefined(this.getValue(bc))) {\n this.setDefaultValue(bc);\n _shouldRefresh = true;\n }\n }\n if (_shouldRefresh) {\n this.refreshFields();\n }\n }\n\n handleChange(e: ISmartFieldChange): void {\n const isMultiSelectField = Array.isArray(e.value);\n if (!isMultiSelectField) {\n super.handleChange(e);\n } else {\n this.storeMultiValue(e, true);\n }\n\n let updatedData = this.data.entity;\n const info = this.getInfo(e.bindingContext);\n if (allowCreateValues(info) && info.fieldSettings?.displayName) {\n // for creating new items we still want to be in the entity itself\n const bc = e.bindingContext.getNavigationBindingContext(info.fieldSettings?.displayName);\n updatedData = this.setBoundValue({\n bindingContext: bc,\n data: updatedData,\n newValue: e.currentValue,\n dataBindingContext: this.data.bindingContext,\n preventCloning: true\n });\n }\n\n this.store({\n entity: updatedData\n });\n\n if (e.triggerAdditionalTasks && !isMultiSelectField) {\n const info = this.getInfo(e.bindingContext);\n\n // if value is null, navigation to entity is already set to null, setting display name to null would\n // cause wrong data state (instead of null object containing only empty display name, eg. Vat: { Rate: null })\n if (info?.fieldSettings?.displayName && !e.bindingContext.isLocal() && e.value !== null) {\n // for selects copy also displayName from additionalData to entity, so it's in sync\n // todo: will it work in all cases? Maybe when localDependentFields are not defined?\n const def = { id: info.fieldSettings.displayName };\n this.processDependentField([{\n from: def,\n to: def,\n navigateFrom: NavigationSource.Itself\n }], e.additionalData, e.bindingContext);\n }\n if (info?.fieldSettings?.localDependentFields?.length > 0) {\n this.processDependentField(info.fieldSettings.localDependentFields, e.additionalData, e.bindingContext);\n }\n\n if (info?.fieldSettings?.dependentFields?.length > 0) {\n // todo: might not work for collection forms\n this.loadDependentFields(info, e);\n }\n\n this.correctEnumValue(e.bindingContext, e.value);\n }\n\n this.handleFirstChange();\n }\n\n processDependentField = (fields: IDependentFieldDef[], data: IEntity, rootBc?: BindingContext) => {\n for (const field of fields) {\n let value = field.value ?? getNestedValue(field.from.id, data);\n const bc = field.navigateFrom === NavigationSource.Itself ? rootBc : field.navigateFrom === NavigationSource.Parent ? rootBc.getParent() : this.data.bindingContext;\n const targetBc = bc.navigate(field.to?.id ?? field.from.id);\n\n if (value === undefined) {\n // use null instead of undefined,\n // otherwise we don't send the value in the request, and it won't get deleted from the entity on save\n value = null;\n } else if (typeof value === \"object\") {\n value = cloneDeep(value);\n }\n this.clearAndSetValue(targetBc, value, true);\n this.correctEnumValue(targetBc, value);\n }\n };\n\n // Inverse process to \"processDependentFields\"\n // -> it extracts fields from storage according to \"to\" property and builds data according to \"from\" property\n extractFields(fields: IDependentFieldDef[]): Partial {\n const data: Partial = {};\n for (const field of fields) {\n const value = this.getValue(this.data.bindingContext.navigate(field.to?.id ?? field.from.id));\n setNestedValue(value, field.from.id, data);\n }\n return data;\n }\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n if (args.actionType === ActionType.Reorder || args.actionType === ActionType.Remove) {\n setDirtyFlag(this.getThis(), args.bindingContext);\n }\n\n if (args.actionType === ActionType.Remove) {\n // remove all errors and current values from removed field\n // it caused problems when user removed and added again row ---> same ID and Path so errors were transferred\n args.affectedItems?.forEach(item => {\n const bc = args.bindingContext.addKey(item);\n\n this.clearCollectionAdditionalFieldDataByPath(bc.getFullPath());\n // same thing for the field info,\n // everything related to the old item should be cleared\n this.clearInfo(bc);\n });\n }\n\n this.store({\n entity: this.setBoundValue({\n bindingContext: args.bindingContext,\n data: this.data.entity,\n newValue: args.items,\n dataBindingContext: this.data.bindingContext,\n preventCloning: true\n })\n });\n\n // just pressing add button don't change state of the form\n // DEV-13762\n if (args.actionType !== ActionType.Add) {\n this.handleFirstChange();\n }\n\n this.refreshFields();\n };\n\n handleLineItemsChange = (args: ISmartFieldChange): void => {\n this.handleChange(args);\n };\n\n loadDependentFields = async (parentItem: IFieldInfo, data: ISmartFieldChange): Promise => {\n const bindingContext = data.bindingContext;\n const settings: IPrepareQuerySettings = {};\n\n const _updateDependentField = (args: IUpdateDependentFieldArgs) => {\n let updatedValue;\n\n if (args.field.parseData) {\n updatedValue = args.field.parseData(loadedData);\n } else {\n updatedValue = getBoundValue({\n bindingContext: args.fromBindingContext,\n data: loadedData,\n dataBindingContext: data.bindingContext\n });\n }\n\n return this.setBoundValue({\n bindingContext: args.toBindingContext,\n data: args.updatedData,\n newValue: updatedValue,\n dataBindingContext: this.data.bindingContext,\n preventCloning: true\n });\n };\n\n const filter = getInfoValue(parentItem.filter, \"dependentFields\", {\n info: parentItem,\n data: this.data.entity,\n context: this.context\n });\n\n if (filter) {\n for (const path of Object.keys(filter)) {\n settings[path] = { filter: filter[path] };\n }\n }\n\n const columns = parentItem.fieldSettings?.dependentFields.map(column => ({ ...column.from }));\n\n let bc;\n if (parentItem.fieldSettings?.entitySet) {\n const entitySet = getInfoValue(parentItem.fieldSettings, \"entitySet\", {\n data: this.data.entity\n });\n bc = createBindingContext(entitySet, this.oData.metadata);\n } else {\n bc = bindingContext.isNavigation() ? bindingContext : bindingContext.getParent();\n }\n\n const query = await prepareQuery({\n oData: this.oData,\n bindingContext: bc.addKey(data.value as string),\n fieldDefs: columns,\n settings\n }).fetchData();\n\n if (!query) {\n // no dependent fields are loaded for businessPartner fetched from ARES\n return;\n }\n\n const loadedData = query?.value ?? {};\n const fields: BindingContext[] = [];\n\n let updatedData = this.data.entity;\n\n for (const field of parentItem.fieldSettings?.dependentFields) {\n if (isDefined(field.to)) {\n const fromPath = field.from.id;\n const toPath = field.to?.id;\n\n const fromBindingContext = bindingContext.navigateWithSiblingFallback(fromPath);\n const toBindingContext = this.data.bindingContext.navigate(toPath);\n fields.push(toBindingContext);\n\n updatedData = _updateDependentField({\n field: field,\n fromBindingContext,\n toBindingContext,\n updatedData\n });\n }\n }\n\n this.store({\n entity: updatedData\n });\n\n await this.validateFields(fields);\n this.refreshFields();\n };\n\n queryDraft = async (columnData: TMergedDefinition, draftId: TEntityKey, redirectToNotFoundOnFail?: boolean): Promise<{\n draft: IEntity;\n draftEtag: string;\n }> => {\n const draftDef = this.data.definition.draftDef;\n const draftBc = createBindingContext(draftDef.draftEntitySet, this.oData.metadata).addKey(draftId);\n const draftDefinition = cloneDeep(columnData);\n\n for (const key of Object.keys(draftDefinition)) {\n try {\n const bc = draftBc.navigate(key);\n const isFieldLockedByBe = !!this.getBackendDisabledFieldMetadata?.(bc);\n // in case the field is locked by BE, we want to ignore draft\n if (isFieldLockedByBe) {\n // do not load locked fields\n delete draftDefinition[key];\n }\n } catch {\n delete draftDefinition[key];\n }\n }\n\n const draftColumns = [...this.convertMergedDefToColumns(draftDefinition), ...draftDef.draftAdditionalProps];\n\n const draftQuery = await prepareQuery({\n oData: this.oData,\n bindingContext: draftBc,\n fieldDefs: draftColumns\n }).fetchData(this.oneFetchDraft.fetch);\n\n if (redirectToNotFoundOnFail && draftQuery === null) {\n this.history.replace(ROUTE_NOT_FOUND);\n }\n\n const draft = draftQuery?.value ?? {};\n const draftEtag = draftQuery?._metadata.etag;\n\n return { draft, draftEtag };\n };\n\n loadDraft = async (entity: IEntity, columnData: TMergedDefinition, isNew: boolean, canLoadDataFromBindingContext: boolean): Promise => {\n const draftDef = this.data.definition.draftDef;\n const queryParams = getQueryParameters();\n\n if ((isNew && draftDef && queryParams[QueryParam.DraftId]) || entity[draftDef.draftProperty]?.Id) {\n const draftId = entity[draftDef.draftProperty]?.Id ?? queryParams[QueryParam.DraftId];\n\n try {\n const { draft, draftEtag } = await this.queryDraft(columnData, draftId, !canLoadDataFromBindingContext);\n\n this.setCustomData({\n draft: cloneDeep(draft),\n draftEtag\n });\n\n delete draft.Id;\n\n // we don't care about lock on draft\n if (this.data.definition.lockProperty) {\n delete draft[this.data.definition.lockProperty];\n }\n\n removeNullValuesFromObject(draft);\n\n for (let item of (draft.Items || [])) {\n item[DRAFT_ITEM_ID_PATH] = item.Id;\n const linkedId = item[draftDef.navigationToItem]?.Id;\n delete item.Id;\n if (linkedId) {\n const origItem = entity.Items?.find((origItem: IEntity) => origItem.Id === linkedId);\n removeNullValuesFromObject(item);\n item = Object.assign(item, { ...origItem, ...item });\n } else {\n const newId = getNewItemsMaxId(draft.Items) + 1;\n item[BindingContext.NEW_ENTITY_ID_PROP] = newId;\n }\n delete item[draftDef.navigationToItem];\n }\n delete entity.Items;\n\n entity = {\n ...entity,\n ...draft,\n [draftDef.draftProperty]: { ...draft, Id: draftId }\n };\n } catch (e) {\n if (isAbortException(e)) {\n return null;\n }\n logger.error(\"FormStorage.loadDraft - error loading draft\", e);\n }\n }\n\n // this method uses non-generic props like DocumentItem anyway\n // => it's ok to change the type\n // but it would be to move it somewhere else... (DocumentFormView?)\n return entity as unknown as E;\n };\n\n convertMergedDefToColumns = (columnData: TMergedDefinition): IFieldDef[] => {\n return Object.values(columnData).filter(column => column.useForLoad).map(column => {\n // use column.path even when fieldDef exist\n // it holds correct id (sometimes with navigation part)\n return { ...column.fieldDef, id: column.path };\n });\n };\n\n load = async (columnData: TMergedDefinition, bindingContext: BindingContext, canLoadDataFromBindingContext: boolean): Promise> => {\n if (this.loaded) {\n // don't call the first time (this.loaded), to ensure correct busy state in the second pane Bubble in split page :/\n this.setBusy(true);\n }\n\n let entity: Partial = {};\n let metadata: ODataEntityMetadata;\n\n if (canLoadDataFromBindingContext) {\n const columns = this.convertMergedDefToColumns(columnData);\n\n // support local context only case - no request to backend\n if (!bindingContext.isLocal() && !(this.oData instanceof MockOData)) {\n const settings: IPrepareQuerySettings = this.data.definition.querySettings ?? {};\n\n if (this.data.definition.groups) {\n // add order for collections into the query,\n // to ensure the data are always in the same, correct order\n for (const lineItemsGroup of this.data.definition.groups.filter(g => g.lineItems)) {\n if (!settings[lineItemsGroup.lineItems.collection]) {\n settings[lineItemsGroup.lineItems.collection] = {\n sort: [{\n id: lineItemsGroup.lineItems.order,\n sort: lineItemsGroup.lineItems.orderDirection ?? Sort.Asc\n }]\n };\n }\n }\n\n for (const lineItemsGroup of this.data.definition.groups.filter(g => g.collection)) {\n if (!settings[lineItemsGroup.collection]) {\n settings[lineItemsGroup.collection] = {\n sort: [{ id: lineItemsGroup.collectionOrder, sort: Sort.Asc }]\n };\n }\n }\n }\n\n let options: RequestInit = null;\n\n if (!this.isReadOnly) {\n options = {\n headers: {\n [EVALA_METADATA_HEADER]: \"true\"\n }\n };\n }\n\n const query = await prepareQuery({\n oData: this.oData,\n bindingContext: bindingContext,\n fieldDefs: columns,\n settings\n }).fetchData(this.oneFetchEntity.fetch, options);\n\n if (query === null) {\n const auditRes = await customFetch(`${AUDIT_API_URL}/${bindingContext.getEntityType().getName()}/${bindingContext.getKey()}`);\n this.history.replace(`${ROUTE_NOT_FOUND}?${auditRes.ok ? `${QueryParam.EntityWasDeleted}=true` : \"\"}`);\n }\n entity = query?.value ?? {};\n metadata = query?._metadata;\n }\n }\n\n const origEntity = cloneDeep(entity); // deep copy so that updates done to 'data' won't be reflected in 'origEntity'\n\n // draft load depends on metadata, store it in advance\n // do this here, after the promises are awaited, so that the cache is not filled with wrong data in the meantime\n this.clearDisabledFieldMetadataCache(metadata);\n\n const draftDef = this.data.definition.draftDef;\n if (draftDef?.draftProperty && draftDef?.draftEntitySet && !this.isReadOnly) {\n entity = await this.loadDraft(entity, columnData, bindingContext.isNew(), canLoadDataFromBindingContext);\n }\n\n if (this.loaded) {\n // set delayedRefresh true so that the busy indicator disappears AFTER\n // the form content is already re-rendered with new data\n this.setBusy(false, true, false, true);\n }\n\n return {\n origEntity,\n entity,\n metadata\n };\n };\n\n // refresh stored metadata from BE\n clearDisabledFieldMetadataCache(metadata?: ODataEntityMetadata) {\n this.store({ metadata });\n // reset getBackendDisabledFieldMetadata cache\n this.getBackendDisabledFieldMetadata.cache.clear();\n }\n\n /** Fetch just disabled field metadata, we don't care about other parts of the entity.\n * Used when user switches from read only form (which doesn't load the metadata) to editable form. */\n loadDisabledFieldMetadata = async (): Promise => {\n const res = await prepareQuery({\n oData: this.oData,\n bindingContext: this.data.bindingContext,\n fieldDefs: []\n }).fetchData(this.oneFetchEntity.fetch, {\n headers: {\n [EVALA_METADATA_HEADER]: \"true\"\n }\n });\n const metadata = res?._metadata;\n this.clearDisabledFieldMetadataCache(metadata);\n };\n\n // delete inbox files, which were temporarily attached to the new document\n removeAttachedInboxFiles(batch: BatchRequest): void {\n const { inboxFilesToConvert } = this.getCustomData();\n if (inboxFilesToConvert?.length) {\n const wrapper = batch.getEntitySetWrapper(EntitySetName.InboxFiles);\n inboxFilesToConvert.map(item => wrapper.action(OdataActionName.InboxFileRemoveInboxFileLeaveFileMetadata, item.Id));\n }\n }\n\n save = async (args: ISaveArgs = {}): Promise => {\n let mainResultIndex = 0;\n\n const onBeforeExecute = async (batch: BatchRequest) => {\n // inject another onBeforeExecute to find out index of the main result\n // by comparing urls and current binding context\n await args.onBeforeExecute?.(batch);\n\n this.removeAttachedInboxFiles(batch);\n\n const requests = batch.getRequests();\n\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i];\n\n if (!isIUrl(request) && request.id === mainBatchRequestId) {\n mainResultIndex = i;\n }\n }\n };\n\n const response = await this.validateAndSave({\n ...args,\n bindingContext: args.bindingContext ?? this.data.bindingContext,\n entity: args.data ?? this.data.entity,\n originalEntity: this.data.origEntity,\n onBeforeExecute,\n getCorrectErrorBc: args.getCorrectErrorBc\n });\n\n if (!response) {\n return null;\n }\n\n const mainResponse = response[mainResultIndex];\n\n // todo the check for < 300 should probably be for all the results, not just one\n // somehow consolidate with the check in validateAndSave\n if (mainResponse && mainResponse.status < 300) {\n // display ok\n const data = mainResponse.body?.value;\n const bindingContext = this.data.bindingContext.isNew()\n ? createBindingContext(this.data.bindingContext.getFullPath(), this.oData.getMetadata()).removeKey().addKey(data)\n : this.data.bindingContext;\n\n this.setCustomData({ inboxFilesToConvert: null });\n\n if (this.data.bindingContext.isNew()) {\n this._preserveAlert = true;\n // Reset group status after saving new form\n const status = this.clearFormStatus({});\n /**\n * Storing new bindingContext \"clears\" all infos and therefore items for select. Changing route will\n * trigger refresh and selects triggers items load when storage is not loading :-/. This will most likely\n * need more complex refactoring, e.g. selects might not store items in fieldInfos, trigger it in render,\n * etc... so we have more control about it. For now, setting storage loading state in advance would help.\n * */\n this.loading = true;\n this.store({\n bindingContext,\n status\n });\n } else {\n // new items will change URL which reloads the page it self\n if (!args.skipLoad) {\n await this.loadDataAfterSave();\n }\n }\n\n if (!args.skipLoad && args.successSubtitle) {\n this.displaySaveOkMessage(args.successSubtitle);\n }\n\n return {\n bindingContext,\n data,\n response\n };\n }\n\n return null;\n };\n\n displaySaveOkMessage = (subTitle: string): void => {\n const alert = {\n status: Status.Success,\n title: tWithFallback(this.data.definition.translationFiles?.[0], \"Validation.SuccessTitle\", \"Common\"),\n subTitle\n };\n\n this.store({\n alert\n });\n this.refresh();\n };\n\n loadDataAfterSave = (): Promise => {\n return this.init({\n preserveInfos: true,\n definition: this.data.definition,\n bindingContext: this.data.bindingContext\n });\n };\n\n reload = async ({\n preserveInfos = true,\n preserveData,\n withoutBusy\n }: IFormStorageReloadArgs = { preserveInfos: true }): Promise => {\n if (!this.data.bindingContext || !this.data.definition) {\n // can't reload form with no item selected\n return;\n }\n\n this.data.mergedDefinition = null;\n\n if (!withoutBusy) {\n this.setBusy(true);\n }\n\n await this.init({\n preserveInfos,\n preserveData,\n definition: this.data.definition,\n bindingContext: this.data.bindingContext\n });\n\n if (!withoutBusy) {\n this.setBusy(false);\n }\n };\n\n setBusy = (busy = true, refreshPage = false, isBusyDelayed = false, delayedRefresh = false): void => {\n this.setCustomData({ busy, busyDelayed: isBusyDelayed });\n\n if (!delayedRefresh) {\n // usually, we want the busy state to change immediately\n this.refreshSync(refreshPage);\n } else {\n // but sometimes we may want to offset it so that the content under the busy indicator is already\n // re-rendered before the busy indicator disappears\n this.refresh(true);\n }\n };\n\n isBusy = (): boolean => {\n return this.getCustomData().busy;\n };\n\n expandErrorGroups = (): void => {\n for (const group of this.getVariant()) {\n if (group.rows) {\n for (const row of group.rows) {\n for (const parentFieldName of row) {\n const parentFieldBc = this.data.bindingContext.navigate(`${group.collection ? `${group.collection}/` : \"\"}${parentFieldName?.id}`);\n const info = this.getInfo(parentFieldBc);\n\n if (info.collapsedRows) {\n for (const collapsedRow of info.collapsedRows) {\n for (const fieldName of collapsedRow) {\n let fieldBc = this.data.bindingContext.navigate(fieldName?.id);\n\n if (fieldBc.getParent()?.isCollection()) {\n const parentBc = fieldBc.getParent();\n const name = fieldBc.getPath();\n const path = parentBc.getNavigationPath();\n const collData = this.getValueByPath(path);\n const keyName = fieldBc.getKeyPropertyName();\n if (Array.isArray(collData)) {\n for (const row of collData) {\n const parentWithKey = isDefined(row[keyName]) ? parentBc.addKey(row[keyName]) : parentBc.addKey(row[BindingContext.NEW_ENTITY_ID_PROP], true);\n fieldBc = parentWithKey.navigate(name);\n if (this.hasError(fieldBc)) {\n this.expandGroup(true, getCollapsedGroupId(parentFieldName));\n break;\n }\n }\n }\n }\n\n if (this.hasError(fieldBc)) {\n this.expandGroup(true, getCollapsedGroupId(parentFieldName));\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n };\n\n validate = async (withoutAlert?: boolean, entity?: IEntity): Promise => {\n const { hasError, errorSubtitles, validationErrors } = await this.validateAll(entity);\n\n if (hasError) {\n const alert = {\n status: Status.Error,\n title: this.t(\"Common:General.FormValidationErrorTitle\"),\n subTitle: errorSubtitles?.length ? errorSubtitles.join(\"\\n\") : this.t(\"Common:General.FormValidationErrorSubTitle\"),\n detailData: validationErrors\n };\n\n this.store({\n alert: withoutAlert ? null : alert\n });\n\n if (withoutAlert) {\n // log at least to console, so it's easier for developers to find out what's wrong\n console.error(alert.subTitle, alert.detailData);\n }\n\n this.expandErrorGroups();\n }\n\n return hasError;\n };\n\n /**\n * Some fields might be hidden according to some different field. We need to send null values to the BE in such\n * cases, so the model is not invalid. We may keep the model up to date manually in every handleChange, but this\n * would loose some simplicity of isVisible flag in def. This method goes through all fields and if they are\n * invisible, it sets null value to the storage. Except for isVisible flags, which are set to \"false\" directly\n * in def, because such a field is never visible in form, so it has different purpose (e.g. default company\n * value, etc...) -> we don't want to clear such value.\n */\n clearHiddenFields = (entity: IEntity = this.data.entity, rootBindingContext = this.data.bindingContext): Partial => {\n const clearedData = cloneDeep(entity);\n BindingContext.each(entity, rootBindingContext, (value, bindingContext) => {\n const fieldInfo = this.getInfo(bindingContext);\n if (fieldInfo) {\n const prop = bindingContext?.getProperty();\n const isNullable = prop?.isNullable();\n const isBoolean = prop?.getType().getName() === ValueType.Boolean;\n const shouldClear = fieldInfo.clearIfInvisible !== false && !isVisible({\n data: entity,\n info: fieldInfo,\n bindingContext,\n storage: this.getThis(),\n context: this.context\n });\n if (shouldClear && (isNullable || isBoolean)) {\n setBoundValue({\n bindingContext,\n data: clearedData,\n newValue: isNullable ? null : false,\n dataBindingContext: rootBindingContext,\n preventCloning: true\n });\n }\n }\n return true;\n }, true);\n\n return clearedData as Partial;\n };\n\n /** Recursively goes through whole entity and returns binding context for entity with matching TemporaryGuid */\n findValueByGuid = (guid: string, entity: IEntity = this.data.entity): BindingContext => {\n return BindingContext.find(entity, this.data.bindingContext, (value, bindingContext) => {\n return (value as IEntity)?.TemporaryGuid === guid;\n });\n };\n\n /** Recursively goes through whole entity and injects unique TemporaryGuid property\n * to every non empty, non enum, dependent navigation property */\n injectTemporaryGuids = (entity: IEntity, bidingContext: BindingContext = this.data.bindingContext): IEntity => {\n BindingContext.each(entity, bidingContext, (value, bc) => {\n const property = bc.getProperty();\n\n if (property?.isReadOnly()) {\n return false;\n }\n\n let entitySet;\n\n try {\n entitySet = bc?.getEntitySet();\n } catch {\n }\n\n const isObjectWithoutGuid = (typeof value === \"object\") && !isEmpty(value) && !(value as IEntity)?.TemporaryGuid;\n\n if (isObjectWithoutGuid && !bc?.isEnum() && !entitySet && !bc.isRoot() && !bc.isCollection()) {\n (value as IEntity).TemporaryGuid = uuidv4();\n }\n\n return true;\n });\n\n return entity;\n };\n\n isEtagMismatchError = (error: IBatchResult): boolean => {\n return error.status === 412;\n };\n\n handleEtagMismatchError = async (): Promise => {\n this._preserveAlert = true;\n this.setFormAlert({\n status: Status.Warning,\n title: this.t(\"Common:Warnings.Warning\"),\n subTitle: this.t(\"Common:Warnings.DataChanged\")\n });\n\n await this.reload();\n };\n\n discontinuousFunction = async (entity: IEntity, largeData: IEntity[], bc: BindingContext, fn: TJobFn) => {\n // first clear entity trimmed for large data by default way\n const resultEntity = fn(entity as Partial);\n const length = largeData.length;\n\n let lowCounter = 0;\n let topCounter = LARGE_DATA_CHUNK_SIZE;\n const resultArray: IEntity[] = [];\n\n do {\n const _items = largeData.slice(lowCounter, topCounter);\n\n await (new Promise(resolve => {\n setTimeout(() => {\n const data: IEntity[] = fn(_items as any, bc) as IEntity[];\n resultArray.push(...data);\n resolve(true);\n });\n }));\n\n lowCounter += LARGE_DATA_CHUNK_SIZE;\n topCounter = Math.min(length, topCounter + LARGE_DATA_CHUNK_SIZE);\n } while (lowCounter < length);\n\n return {\n array: resultArray,\n entity: resultEntity\n };\n };\n\n checkForLargeData = (entity: IEntity = this.data.entity) => {\n // for now only 1st level of large arrays are supported as it is (and probably will:) be sufficient\n for (const key of Object.keys(entity)) {\n if (!BindingContext.isMetaProperty(key)) {\n const value = entity[key];\n if (Array.isArray(value) && value?.length > LARGE_DATA_INDICATOR) {\n return {\n path: key,\n data: value,\n bc: this.data.bindingContext.navigate(key)\n };\n }\n }\n }\n\n return undefined;\n };\n\n trimArrayFromNonDirty = (largeData: IEntity[], rootBc: BindingContext) => {\n const bcPath = rootBc.getFullPath();\n const trimmedArray: IEntity[] = [];\n for (const row of largeData) {\n const id = isDefined(row[BindingContext.NEW_ENTITY_ID_PROP]) ? `${BindingContext.NEW_ENTITY_ID_PROP}=${row[BindingContext.NEW_ENTITY_ID_PROP]}` : row.Id;\n const bcRowPath = `${bcPath}(${id})`;\n\n if (this.data.additionalFieldData[bcRowPath]?.dirty) {\n trimmedArray.push(row);\n }\n }\n\n return trimmedArray;\n };\n\n validateAndSave = async (args: IValidateAndSave) => {\n\n // TODO:\n // potentially we want to call clearHidden fields before validation\n // be aware, args.entity is not always the whole entity so we always need to validate this.data.entity\n // (double call of clearHiddenFields ?)\n\n this.setBusy(true);\n let entityForSave;\n const validationEntity = cloneDeep(this.data.entity);\n const largeData = this.checkForLargeData(validationEntity);\n\n // BOTH SCENARIOS STEPS:\n // 1. Clear hidden fields in WHOLE ENTITY (that is not what we are actually saving and is not part of beforeSave changes)\n // 2. Validate such cleared entity (that is not what we are saving, same as No. 1)\n // 3. Clear hidden fields in saving data (data with 'onbeforesave' (and similar) post processing)\n // 4. Inject GUID attributes to saving data\n\n if (largeData) {\n // first separate large array and the rest of the entity for easier manipulation\n setNestedValue([], largeData.path, validationEntity);\n // clear hidden fields and keep separation of entity and array\n const clearedData = await this.discontinuousFunction(validationEntity, largeData.data, largeData.bc, this.clearHiddenFields);\n // for speed purposes we validate only dirty flagged rows in large data array, in 99.9% cases should be sufficient,\n // the theoretical 0.1% will have to be handled by BE validation\n const trimmedLargeData = this.trimArrayFromNonDirty(clearedData.array, largeData.bc);\n // replace (for now empty) array with trimmed array (based on dirty flags)\n setNestedValue(trimmedLargeData, largeData.path, clearedData.entity);\n\n // classic validation but not with full entity but entity with cleared array (based on dirty flag)\n if (await this.validate(args.fieldValidationWithoutErrorAlert, clearedData.entity)) {\n this.setBusy(false);\n return null;\n }\n\n // now we throw away validationEntity and start working on what we are really saving ---> args.entity\n const largeSavingData = this.checkForLargeData(args.entity);\n if (largeSavingData) {\n setNestedValue([], largeSavingData.path, args.entity);\n\n const clearedSavingData = await this.discontinuousFunction(args.entity, largeSavingData.data, largeSavingData.bc, this.clearHiddenFields);\n const guidData = await this.discontinuousFunction(clearedSavingData.entity, clearedSavingData.array, largeSavingData.bc, this.injectTemporaryGuids);\n setNestedValue(guidData.array, largeSavingData.path, guidData.entity);\n entityForSave = guidData.entity;\n } else {\n // this is the case with large data but data are not part of saving data\n entityForSave = this.injectTemporaryGuids(this.clearHiddenFields(args.entity as unknown as E), args.bindingContext);\n }\n } else {\n this.data.entity = this.clearHiddenFields();\n // todo: ... we may want to call clearHiddenField on args entity before validation and then\n // validate only args.entity instead stored data?\n if (await this.validate(args.fieldValidationWithoutErrorAlert)) {\n this.setBusy(false);\n return null;\n }\n\n // inject TemporaryGuid to each entity so that we can pair them correctly with backend errors\n // otherwise, BE is not capable to provide useful error paths\n // todo add E generic to IValidateAndSave instead of unknown casting here\n entityForSave = this.injectTemporaryGuids(this.clearHiddenFields(args.entity as unknown as E), args.bindingContext);\n }\n\n const batch: BatchRequest = this.oData.batch();\n batch.beginAtomicityGroup(\"group1\");\n\n try {\n saveEntity({\n entity: entityForSave,\n originalEntity: args.originalEntity,\n bindingContext: args.bindingContext,\n queryParams: args.queryParams || {},\n updateEnabledFor: args.updateEnabledFor,\n changesOnly: true,\n etag: !args.skipETag && this.data.metadata?.etag,\n batch\n });\n\n await args.onBeforeExecute?.(batch);\n\n // batch be empty if there is no change in the form,\n // but response object is still expected\n if (batch.isEmpty()) {\n return [new Response(\"\", { status: 200, statusText: \"ok\" })];\n }\n\n const response = await batch.execute();\n\n // todo the check for < 300 should probably be for all the results, not just the first one\n const error = response[0];\n if (!isBatchResultOk(error)) { // TODO handle 500 differently, doesn't have return body and message\n if (args.shouldUseCustomResponseHandler?.(response)) {\n return await args.customResponseHandler(response, args, this.getThis());\n }\n\n // etag not matching => entity was changed from somewhere else,\n // user doesn't have up-to-date data\n if (this.isEtagMismatchError(error)) {\n await this.handleEtagMismatchError();\n return;\n }\n\n return await this.handleOdataError({\n error: error.body as ODataError,\n bindingContext: args.bindingContext,\n entity: entityForSave,\n getCorrectErrorBc: args.getCorrectErrorBc,\n fieldValidationWithoutErrorAlert: args.fieldValidationWithoutErrorAlert\n });\n\n }\n return response;\n } catch (error) {\n this.setFormAlert(getAlertFromError(error));\n }\n };\n\n /** For given IValidationMessage of ODataError,\n * tries to return binding context of the field that the error is related to. */\n getODataErrorValidationMessagePropBindingContext = (args: IHandleOdataError, valMessage: IValidationMessage): BindingContext => {\n let propBindingContext: BindingContext;\n\n // use guid to find the correct binding context, if provided\n if (valMessage.entity?.temporaryGuid) {\n propBindingContext = this.findValueByGuid(valMessage.entity?.temporaryGuid, args.entity);\n\n if (valMessage.property && propBindingContext.getEntityType().getProperty(valMessage.property)) {\n propBindingContext = propBindingContext.navigate(valMessage.property);\n }\n } else if (valMessage.property) {\n try {\n propBindingContext = args.bindingContext.navigate(valMessage.property);\n } catch (error) {\n // wrong field name in error list\n const errMsg = `FormStorage.validateAndSave: wrong field name in error list ${valMessage.property}`;\n\n logger.error(errMsg);\n throw new Error(errMsg);\n }\n }\n if (args.getCorrectErrorBc) {\n propBindingContext = args.getCorrectErrorBc({\n matchedBindingContext: propBindingContext ?? args.bindingContext,\n error: valMessage,\n entity: args.entity\n });\n }\n\n return propBindingContext;\n };\n\n handleOdataError = async (args: IHandleOdataError): Promise => {\n logger.error(args.error?._message);\n\n // todo can we tell if the error is tied to some field and show Některá pole jsou špatně vyplněná\n // or whether its more deep error that should show something better because it cannot be fixed by changing value of one of the fields?\n const isFieldValidationError = args.error?._code === BackendErrorCode.ValidationError;\n const isPermissionError = args.error?._code === BackendErrorCode.PermissionError;\n const title = isPermissionError ? this.t(\"Common:Errors.PermissionError\") :\n (args.fieldValidationWithoutErrorAlert ? this.t(\"Common:General.FormValidationDialogErrorTitle\") :\n (isFieldValidationError ? this.t(\"Common:General.FormValidationErrorTitle\")\n : this.t(\"Common:Errors.ErrorHappened\")));\n\n // use Set instead of Array, so that none of the messages is repeated multiple times\n const messages: Set = new Set();\n\n // handle BE validation messages, which should be displayed in context of fields\n const valMessages = args.error?._validationMessages ?? [];\n\n for (const err of valMessages) {\n const message = err.message;\n\n let propBindingContext: BindingContext;\n\n try {\n propBindingContext = this.getODataErrorValidationMessagePropBindingContext(args, err);\n\n if (!propBindingContext) {\n // message without binding to property -> display it as main message\n messages.add(message);\n continue;\n }\n } catch (e) {\n // we are not able to parse every error, f.e. update in items, at least display common message in such case,\n // is may be enough in a lot of cases\n messages.add(message);\n continue;\n }\n\n const path = propBindingContext.getNavigationPath(true);\n const mergedDef = this.data.mergedDefinition[path];\n\n if (mergedDef && !mergedDef.isNotInVariant) {\n if (!args.fieldValidationWithoutErrorAlert) {\n messages.add(message);\n }\n\n // Display validation error on field\n this.handleValidationError({\n bindingContext: propBindingContext,\n data: {\n errorType: ValidationErrorType.Backend,\n message\n }\n });\n } else {\n // info doesn't have to be loaded for the field\n // => load info to get label\n const fieldInfo = await getFieldInfo({\n bindingContext: propBindingContext,\n context: this.context,\n fieldDef: {\n id: path,\n ...mergedDef\n }\n });\n\n const hasDefinition = !!this.data.definition.fieldDefinition[path];\n\n if (hasDefinition) {\n // error for field that is not present in the form\n messages.add(this.t(\"Common:Errors.ErrorForFieldMissingInConfiguration\", {\n fieldName: fieldInfo?.label,\n error: message\n }));\n } else {\n // without definition, the field cannot even be add to the form via config\n // => just show error, but hopefully this won't happen very often\n messages.add(message);\n }\n }\n }\n\n if (args.fieldValidationWithoutErrorAlert && messages.size === 0\n // if there is some weird error from backend (not tied to field), we still want to show alert, otherwise user has no idea what happened\n && valMessages?.length !== 0) {\n return;\n }\n // If there are validation message from BE, it should be displayed at the top, so user is clearly\n // informed about the errors (it might be useful also in cases the validation is not visible on the field\n // so user is always able to read the error.\n const subTitle = (args.error?._validationMessages?.length && Array.from(messages)) ||\n (isPermissionError ? this.t(\"Common:Errors.PermissionErrorSubTitle\") : this.t(\"Common:General.FormValidationErrorSubTitle\"));\n\n this.setFormAlert({\n detailData: args.error,\n status: Status.Error,\n // this flag indicates we show only small oneliner alert and title is more like generic stuff, subtitle holds more important information\n title,\n // last error message is displayed also at the top of the form (usually the only one)\n // todo: once we are able to distinguish which fields are visible and able to show validation error,\n // show common `this.t(\"Common:General.FormValidationErrorSubTitle\")` as subtitle\n subTitle\n });\n };\n\n handleValidationError = (error: ISmartFieldValidationError): void => {\n this.setError(error.bindingContext, error.data);\n };\n\n _getGroupKeyFromBc = (bc: BindingContext): string => {\n const mergedFields = this.data.mergedDefinition;\n const path = bc.getNavigationPath(true);\n const def = mergedFields[path];\n return def?.groupId;\n };\n\n addActiveGroup = (bc: BindingContext): void => {\n this.addActiveGroupByKey(this._getGroupKeyFromBc(bc));\n };\n\n addActiveGroupByKey = (key: string): void => {\n this.activeGroups[key] = true;\n };\n\n refreshGroup = (bc: BindingContext): void => {\n this.refreshGroupByKey(this._getGroupKeyFromBc(bc));\n };\n\n refreshGroupByKey = (key: string): void => {\n this.groupRefs[key]?.forceUpdate();\n };\n\n _refreshGroups = (): void => {\n for (const key of Object.keys(this.activeGroups || {})) {\n this.groupRefs[key]?.forceUpdate();\n }\n\n this.activeGroups = {};\n };\n\n _shouldRefreshField = (path: string): boolean => {\n if (!isObjectEmpty(this.activeGroups)) {\n const def = this.data.mergedDefinition[path];\n\n // if this field is going to be refreshed via group refresh skip it\n if (def?.groupId && this.activeGroups[def.groupId]) {\n return false;\n }\n }\n return true;\n };\n\n refreshFields(triggerAdditionalTasks?: boolean, debounce?: boolean): void {\n super.refreshFields(triggerAdditionalTasks, debounce);\n this._refreshGroups();\n }\n\n /**\n * Yup doesn't validate nested fields of null navigations, so we need to add empty objects to the entity\n * if the navigation is not nullable\n * @param schema\n * @param entity\n * @param bc\n */\n _addEmptyNavigationObjects = (schema: ObjectSchema, entity: IEntity, bc: BindingContext): IEntity => {\n if (schema.fields) {\n for (const prop of Object.keys(schema.fields)) {\n if (isNotDefined(entity[prop]) && bc.isValidNavigation(prop)) {\n const fieldBc = bc.navigate(prop);\n if (fieldBc.isNavigation() && !fieldBc.isCollection() && !fieldBc.getProperty()?.isNullable()) {\n entity[prop] = {};\n }\n }\n }\n }\n return entity;\n };\n\n validateAll = async (entity?: IEntity, depth = 0): Promise => {\n let hasError = false;\n const errorSubtitles: React.ReactNode[] = [];\n const validationErrors: TRecordString = {};\n const allCleared = this.clearAllErrors();\n try {\n if (!this._validationSchema && depth < 10) {\n // validation schema is created after form load. If user submits the form before the schema is created,\n // wait for it and then validate again\n await wait(100);\n return this.validateAll(entity, depth + 1);\n }\n const data = this._addEmptyNavigationObjects(this._validationSchema, entity ?? this.data.entity, this.data.bindingContext);\n await this._validationSchema.validate(data, {\n abortEarly: false\n });\n } catch (error) {\n hasError = true;\n\n // if there are multiple errors for one field, show the first one\n const usedPaths: string[] = [];\n\n if (!error?.inner) {\n // this is not a validation error, may be some type error occured during validation -> rethrow\n throw error;\n }\n\n for (const err of error.inner) {\n if (err.type === ValidationErrorType.Form) {\n errorSubtitles.push(err.message);\n continue;\n }\n let bindingContext = createBindingContextFromValidatorPath(err.path, this.data.bindingContext, this.data.entity);\n\n const bindingContextPath = bindingContext.toString();\n\n if (usedPaths.includes(bindingContextPath)) {\n continue;\n } else {\n usedPaths.push(bindingContextPath);\n }\n\n let field = this.getInfo(bindingContext);\n\n if (!field) {\n // this indicating select component we validate it's key value but store the result to BC of the select itself\n field = this.getInfo(bindingContext.getParent());\n if (field) {\n bindingContext = bindingContext.getParent();\n }\n }\n\n let mergedDef = this.data.mergedDefinition[bindingContext.getNavigationPath(true, this.data.bindingContext)];\n\n if (mergedDef.useForValidation === false && bindingContext.isEnum()) {\n // weird cases with enum Selects,\n // for some reason validator pairs the required error with somePath/Code,\n // even though it has useForValidation =>\n // => it wouldn't get matched here with the field itself,\n // because the fields bc is just somePath without Code\n // ==> correct it\n const parentBc = bindingContext.getParent();\n\n if (this.getInfo(parentBc)) {\n mergedDef = this.data.mergedDefinition[parentBc.getNavigationPath(true, this.data.bindingContext)];\n bindingContext = parentBc;\n }\n }\n\n if (!mergedDef || mergedDef.isNotInVariant) {\n // error for field that is not present in the form\n errorSubtitles.push(this.t(\"Common:Errors.ErrorForFieldMissingInConfiguration\", {\n fieldName: mergedDef?.fieldDef?.label,\n error: Validator.getErrorText(err, i18next)\n }));\n } else {\n const errorObject = {\n params: err.params,\n errorType: err.type,\n message: err.message\n };\n\n validationErrors[err.path] = Validator.getErrorText(err, i18n);\n\n if (this.getTemporalData(bindingContext)) {\n this.setTemporalError(bindingContext, errorObject);\n } else {\n this.setError(bindingContext, errorObject);\n }\n }\n }\n }\n\n return {\n hasError: !allCleared || hasError,\n errorSubtitles,\n validationErrors\n };\n };\n\n async handleBlur(args: ISmartFieldBlur): Promise {\n if (!args.wasChanged) {\n return undefined;\n }\n\n super.blur(args);\n\n // test for field specific error\n const oldError = this.getError(args.bindingContext);\n\n if (oldError && oldError.errorType === ValidationErrorType.Field) {\n return oldError;\n }\n\n return this.validateField(args.bindingContext, {}, this.data);\n }\n\n getLocalStorageVariant = (): IFormVariant => {\n if (this.ignoreVariants) {\n return null;\n }\n if (!this._cachedVariant) {\n this._cachedVariant = LocalSettings.get(this.id)?.formVariant;\n }\n\n (this._cachedVariant as IFormVariant)?.forEach(formGroup => {\n if (formGroup && !formGroup.title) {\n // title can be a function, which is not serialized -> get it from original definition\n const origDef = this.data.definition.groups.find(grp => grp.id === formGroup.id);\n formGroup.title = origDef.title;\n }\n });\n\n return this._cachedVariant as IFormVariant;\n };\n\n setLocalStorageVariant = (variant: IVariant): void => {\n this._cachedVariant = variant;\n LocalSettings.set(this.id, {\n formVariant: variant as IFormVariant\n });\n };\n\n changeVariant = async (variant: Variant): Promise => {\n await super.changeVariant(variant);\n // note: without busy is important here. In case we are adding fields during the variant change, their infos\n // are not loaded yet so if we re-render the form (form is rendered behind the busy indicator) it will/might\n // fail on several places.\n await this.reload({\n preserveInfos: false,\n preserveData: false,\n withoutBusy: true\n });\n };\n\n handleRemove(bc: BindingContext): void {\n let valBc = bc;\n let value = null;\n\n if (bc.getKey()) { // removing item from collection\n const keyProp = bc.getKeyPropertyName();\n\n valBc = bc.removeKey();\n value = [...this.getValue(valBc)];\n\n const index = value.findIndex((item: IEntity) => item[keyProp] === bc.getKey());\n\n value.splice(index, 1);\n }\n\n this.setValue(valBc, value);\n this.clearAdditionalFieldData(bc);\n this.clearInfo(bc);\n }\n\n expandGroup = (expand: boolean, id: string): void => {\n this.store({\n status: {\n ...this.data.status,\n groups: {\n ...this.data.status?.groups,\n [id]: {\n ...this.data.status?.groups[id],\n isExpanded: expand\n }\n }\n }\n });\n this.emitter.emit(ModelEvent.GroupStatusChanged, {\n groupStatus: { isExpanded: expand },\n id\n });\n };\n\n setGroupStatus = (groupStatus: IGroupStatus, id: string): void => {\n this.store({\n status: {\n ...this.data.status,\n groups: {\n ...this.data.status?.groups,\n [id]: {\n ...this.data.status?.groups?.[id],\n ...groupStatus\n }\n }\n }\n });\n this.emitter.emit(ModelEvent.GroupStatusChanged, { groupStatus, id });\n };\n\n getGroupStatus = (groupId: string): IGroupStatus => {\n return this.data.status?.groups[groupId] ?? {};\n };\n\n getEditOverride = (): IEditOverride => {\n return this.getCustomData()?.editOverride;\n };\n\n setEditOverride = (editOverride: IEditOverride): void => {\n this.setCustomData({\n editOverride\n });\n // call refresh to re-render SmartFormDeleteButton which is dependent on editOverride\n this.refresh(true);\n };\n\n clearEditOverride = (): void => {\n this.setCustomData({\n editOverride: null\n });\n // call refresh to re-render SmartFormDeleteButton which is dependent on editOverride\n this.refresh(true);\n };\n}","import { StyledButton, StyledButtonGroup } from \"@components/button\";\nimport { transparentize } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport Alert from \"../../components/alert\";\nimport SmartHeader from \"../../components/smart/smartHeader\";\nimport Tabs from \"../../components/tabs/Tabs\";\nimport { LocalStackOrder, T_PLAIN_small } from \"../../global.style\";\nimport { TableWrapper } from \"../table/TableView.styles\";\nimport { VIEW_PADDING_VALUE } from \"../View.styles\";\n\nexport const FormFooter = styled.div<{\n hasTopMargin?: boolean;\n isEditOverride?: boolean;\n}>`\n display: flex;\n /* Top margin reserves space for possible alert, but do we need this always (e.g. in read-only state)? */\n margin-top: ${props => props.hasTopMargin === false ? 0 : \"22px\"};\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-bottom: 38px;\n }\n\n ${StyledButtonGroup} {\n justify-content: flex-end;\n }\n\n ${props => props.isEditOverride && css`\n z-index: ${LocalStackOrder.AboveContent + 1};\n `}\n`;\n\nexport const FormContent = styled.form.attrs({\n autocomplete: \"off\"\n})<{\n withoutPadding?: boolean;\n isEditOverride?: boolean;\n}>`\n position: relative;\n ${props => !props.withoutPadding && css`\n padding-bottom: ${VIEW_PADDING_VALUE}px;\n `};\n ${props => props.isEditOverride && css`\n fieldset, ${LockedFormEditOverrideStatus} {\n z-index: ${LocalStackOrder.AboveContent + 1};\n }\n `};\n`;\n\nexport const FormHeaderTopMargin = 12;\n\nexport const SmartHeaderStyled = styled(SmartHeader) <{\n hideBreadcrumbs?: boolean\n}>`\n`;\n\nexport const FormAlertContainer = styled(Alert)`\n margin-bottom: 30px;\n`;\n\nexport const StyledErrorWrapper = styled.div`\n margin-bottom: 19px;\n`;\n\nexport const LockedFormEditOverrideStatus = styled.div`\n position: relative;\n display: flex;\n gap: 6px;\n align-items: center;\n margin-bottom: 42px;\n padding: 4px 0 4px 18px;\n color: ${props => props.theme.C_ACT_main};\n background-color: ${props => props.theme.C_BG_tooltip};\n border-radius: ${props => props.theme.borderRadius};\n ${T_PLAIN_small};\n`;\n\nexport const LockedFormOverrideOverlay = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${props => transparentize(0.7, props.theme.C_BG_tooltip)};\n z-index: ${LocalStackOrder.AboveContent};\n // idk how to do this properly without pointer-events: none\n // hopefully UX won't care about the elements under the overlay being clickable\n pointer-events: none;\n`;\n\nexport const FormTabs = styled(Tabs) <{\n hasTitle?: boolean;\n isFirst?: boolean;\n}>`\n margin-top: ${props => props.isFirst ? 0 : props.hasTitle ? \"35px\" : \"65px\"};\n\n ${TableWrapper} {\n margin-top: 0;\n }\n`;","import styled, { css } from \"styled-components/macro\";\nimport { SIMPLE_TIMELINE_POINT_SIZE, SimpleTimeLineStatus } from \"./SimpleTimeline.utils\";\nimport { DefaultTheme } from \"styled-components\";\nimport { transparentize } from \"polished\";\n\nconst getPointColor = (theme: DefaultTheme, status: SimpleTimeLineStatus): string => {\n switch (status) {\n case SimpleTimeLineStatus.History:\n return transparentize(0.5, theme.C_ACT_main);\n case SimpleTimeLineStatus.Current:\n return theme.C_ACT_main;\n case SimpleTimeLineStatus.Future:\n return \"transparent\";\n }\n};\n\nconst getPointBorderColor = (theme: DefaultTheme, status: SimpleTimeLineStatus): string => {\n switch (status) {\n case SimpleTimeLineStatus.History:\n return transparentize(0.5, theme.C_ACT_main);\n case SimpleTimeLineStatus.Current:\n return theme.C_ACT_main;\n case SimpleTimeLineStatus.Future:\n return theme.C_ACT_main;\n }\n};\n\ninterface IPoint {\n status?: SimpleTimeLineStatus;\n isFirst?: boolean;\n isLast?: boolean;\n isNextFuture?: boolean;\n topOffset?: string;\n bottomLineOverflow?: string;\n}\n\nconst LineStyles = css`\n content: \"\";\n position: absolute;\n width: 1px;\n border: 1px;\n border-color: ${props => props.status === SimpleTimeLineStatus.Future ? props.theme.C_ACT_main : transparentize(0.5, props.theme.C_ACT_main)};\n\n\n`;\n\nconst TopLineStyles = css`\n ${LineStyles};\n top: 0;\n height: calc(${props => props.topOffset} - ${SIMPLE_TIMELINE_POINT_SIZE / 2}px);\n border-style: ${props => props.status === SimpleTimeLineStatus.Future ? \"dashed\" : \"solid\"};\n`;\n\nconst BottomLineStyles = css`\n ${LineStyles};\n top: calc(${props => props.topOffset} + ${SIMPLE_TIMELINE_POINT_SIZE / 2}px);\n // -3 px so that the dashed lines (top and bottom) do not connect into one continue line and there is a correct space between them \n height: calc(100% - ${props => props.isNextFuture ? \"3px\" : \"0px\"} - ${props => props.topOffset} - ${SIMPLE_TIMELINE_POINT_SIZE / 2}px + ${props => props.bottomLineOverflow});\n border-color: ${props => props.isNextFuture ? props.theme.C_ACT_main : transparentize(0.5, props.theme.C_ACT_main)};\n border-style: ${props => props.isNextFuture ? \"dashed\" : \"solid\"};\n`;\n\nexport const StyledSimpleTimelineItem = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n align-items: center;\n\n ${props => !props.isFirst && css`\n &:before {\n ${TopLineStyles};\n }\n `};\n\n ${props => !props.isLast && css`\n &:after {\n ${BottomLineStyles};\n }\n `};\n`;\n\n\nexport const SimpleTimeLinePoint = styled.div`\n position: relative;\n width: ${SIMPLE_TIMELINE_POINT_SIZE}px;\n height: ${SIMPLE_TIMELINE_POINT_SIZE}px;\n border-radius: 50%;\n background-color: ${props => getPointColor(props.theme, props.status)};\n border: 1px solid ${props => getPointBorderColor(props.theme, props.status)};\n top: calc(${props => props.topOffset} - ${SIMPLE_TIMELINE_POINT_SIZE / 2}px);\n`;\n\nexport const StyledSimpleTimeline = styled.div`\n display: flex;\n flex-direction: column;\n\n & ${StyledSimpleTimelineItem} {\n height: 50px;\n }\n`;","import React from \"react\";\nimport { SimpleTimeLinePoint, StyledSimpleTimeline, StyledSimpleTimelineItem } from \"./SimpleTimelline.styles\";\nimport { SimpleTimeLineStatus } from \"./SimpleTimeline.utils\";\n\nexport interface ISimpleTimelineProps {\n items: ISimpleTimelineItemProps[];\n}\n\nconst SimpleTimeline = React.memo((props: React.PropsWithChildren) => {\n return (\n \n {props.items.map((item, index) => {\n return ;\n })}\n \n );\n});\n\nexport interface ISimpleTimelineItemProps {\n status: SimpleTimeLineStatus;\n isFirst?: boolean;\n isLast?: boolean;\n isNextFuture?: boolean;\n /** Item has 100% height, this will specify where the point should be placed. */\n topOffset?: string;\n /** The top and bottom line automatically fill the height of the timeline item.\n * Item can be used in components that has some margin between them (e.g. FastEntry).\n * bottomLineOverflow will stretch the bottom line so that it connects with the next one. */\n bottomLineOverflow?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const SimpleTimelineItem = React.memo((props: React.PropsWithChildren) => {\n const topOffset = props.topOffset ?? \"50%\";\n\n return (\n \n \n \n );\n});\n\nexport default SimpleTimeline;","import styled, { css } from \"styled-components/macro\";\nimport Dialog from \"../../components/dialog\";\nimport { StyledButton } from \"@components/button\";\n\nexport const DialogStyledTemporalPropertyDialog = styled(Dialog)<{ showTimeLine: boolean; }>`\n ${props => props.showTimeLine && css`\n // move SmartFastEntryList add button\n ${StyledButton}:first-of-type {\n margin-left: 30px;\n }\n `};\n`;","import { IAlertProps } from \"@components/alert/Alert\";\nimport { WithBusyIndicator, withBusyIndicator } from \"@components/busyIndicator/withBusyIndicator\";\nimport { FIELD_VER_MARGIN, FIELD_VER_MARGIN_SMALL } from \"@components/inputs/field/Field.styles\";\nimport { SimpleTimelineItem } from \"@components/simpleTimeline/SimpleTimeline\";\nimport {\n SIMPLE_TIMELINE_POINT_MARGIN,\n SIMPLE_TIMELINE_POINT_SIZE,\n SimpleTimeLineStatus\n} from \"@components/simpleTimeline/SimpleTimeline.utils\";\nimport { ifAny, IFieldDef, IGetValueArgs, TTemporalDialogSettings } from \"@components/smart/FieldInfo\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { getBoundValue } from \"@odata/Data.utils\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { PrEntityValueSourceCode } from \"@odata/GeneratedEnums\";\nimport {\n cleanupHistoryValues,\n EntityValueSourcePropNameSuffix,\n getDefaultTemporalDateValidFrom,\n getDefaultTemporalDateValidTo,\n getGroupingProperties,\n getTimelineStatus,\n groupAndOptimizeRanges,\n ISmartTemporalPropertyDialogCustomData,\n TTemporal,\n ungroupAndOptimizeRanges\n} from \"@odata/TemporalUtils\";\nimport { logger } from \"@utils/log\";\nimport { cloneDeep } from \"lodash\";\nimport React from \"react\";\n\nimport SmartFastEntryList, {\n ActionType,\n ICustomPreContentArgs,\n ISmartFastEntriesActionEvent\n} from \"../../components/smart/smartFastEntryList\";\nimport { LabelStatus, Status, ValidationErrorType } from \"../../enums\";\nimport { IValidationError } from \"../../model/Validator.types\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport DateType, { DATE_MAX, getUtcDayjs } from \"../../types/Date\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { FormStorage } from \"../../views/formView/FormStorage\";\nimport ConfirmationButtons from \"../../views/table/ConfirmationButtons\";\nimport { DialogStyledTemporalPropertyDialog } from \"./SmartTemporalPropertyDialog.styles\";\n\ninterface IProps extends WithBusyIndicator {\n storage: FormStorage;\n bindingContext: BindingContext;\n temporalItemBindingContext: BindingContext;\n onChange?: (args: ISmartFieldChange) => void;\n onClose?: (current?: TTemporal) => void;\n}\n\nclass SmartTemporalPropertyDialog extends React.Component {\n oldTemporalBag: TTemporal[] = null;\n oldOrigTemporalBag: TTemporal[] = null;\n // DateValidFrom/To fields has shared definitions for whole property bag\n // SmartTemporalPropertyDialog changes the definition dynamically with correct configuration,\n // backups are used to restore original values when the dialog is closed\n dateValidFromFieldInfoBackup: IFieldInfo;\n dateValidToFieldInfoBackup: IFieldInfo;\n\n componentDidMount() {\n this.init()\n .then(() => this.props.setBusy(false));\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\n if (!this.props.bindingContext.getRootParent().isSame(this.props.storage.data.bindingContext)) {\n // close dialog on url/row change\n this.close();\n }\n }\n\n componentWillUnmount() {\n const dateValidFromPath = this.props.temporalItemBindingContext.navigate(`${this.temporalPropertyBagPath}/DateValidFrom`).toString(true);\n const dateValidToPath = this.props.temporalItemBindingContext.navigate(`${this.temporalPropertyBagPath}/DateValidTo`).toString(true);\n\n this.props.storage.data.fieldsInfo[dateValidFromPath] = this.dateValidFromFieldInfoBackup;\n this.props.storage.data.fieldsInfo[dateValidToPath] = this.dateValidToFieldInfoBackup;\n\n this.clearItemsInfo(this.props);\n\n (this.props.storage as FormStorage).setCustomData({\n openedDialogBindingContext: null\n });\n }\n\n async init(): Promise {\n const { bindingContext, storage } = this.props;\n\n (storage as FormStorage).setCustomData({\n openedDialogBindingContext: bindingContext\n });\n\n const dialogSettings = this.getDialogSettings();\n const groupingProperties = this.getGroupingProperties();\n this.oldTemporalBag = this.entity[this.temporalPropertyBagPath];\n this.oldOrigTemporalBag = this.origEntity[this.temporalPropertyBagPath];\n\n let newBag = groupAndOptimizeRanges(this.entity[this.temporalPropertyBagPath], groupingProperties);\n\n if (dialogSettings.extractHistory) {\n newBag = await dialogSettings.extractHistory(storage, this.entity, newBag);\n }\n\n if (!newBag?.length) {\n const emptyItem = BindingContext.createNewEntity(1, {\n DateValidFrom: getDefaultTemporalDateValidFrom(dialogSettings),\n DateValidTo: getDefaultTemporalDateValidTo(dialogSettings)\n }) as TTemporal>;\n newBag = [emptyItem];\n\n // remove #id, item will be given Id in the next few lines\n delete emptyItem[BindingContext.NEW_ENTITY_ID_PROP];\n }\n this.entity[this.temporalPropertyBagPath] = newBag.map((item, index) => ({\n ...item,\n // not saved items in the property bag can be without Id,\n // so we are not extracting it in groupTemporalRanges at all,\n // and instead we can just use indexes, this Id is not used anyway, it is just needed for SmartFastEntry list to work properly\n Id: index\n }));\n // we need to convert even origEntity.TemporalPropertyBag,\n // so that we can use it in callbacks, e.g. to find SimpleTimeLineStatus.History items\n this.origEntity[this.temporalPropertyBagPath] = groupAndOptimizeRanges(this.oldOrigTemporalBag, groupingProperties).map((item, index) => ({\n ...item,\n Id: index\n }));\n\n const dateValidFromFieldInfo = this.props.storage.getInfo(this.props.temporalItemBindingContext.navigate(`${this.temporalPropertyBagPath}/DateValidFrom`));\n const dateValidToFieldInfo = this.props.storage.getInfo(this.props.temporalItemBindingContext.navigate(`${this.temporalPropertyBagPath}/DateValidTo`));\n\n // backup field infos,\n // alter them just for the current use in the dialog\n // restore them when the dialog is closed\n this.dateValidFromFieldInfoBackup = cloneDeep(dateValidFromFieldInfo);\n this.dateValidToFieldInfoBackup = cloneDeep(dateValidToFieldInfo);\n\n const dateValidToIsDisabled = (args: IGetValueArgs) => {\n const items = this.getItems();\n const currentItemBc = args.bindingContext.getParent();\n const currentItemIndex = items.findIndex(item => currentItemBc.isSame(this.getBindingContext().addKey(item)));\n const isLast = items.length - 1 === currentItemIndex;\n\n if (dialogSettings?.cannotBeEnded) {\n if (isLast) {\n return true;\n }\n }\n\n if (dialogSettings?.withoutGaps) {\n if (!isLast) {\n return true;\n }\n }\n\n return false;\n };\n\n if (dateValidToFieldInfo.isDisabled) {\n dateValidToFieldInfo.isDisabled = ifAny(dateValidToFieldInfo.isDisabled, dateValidToIsDisabled);\n } else {\n dateValidToFieldInfo.isDisabled = dateValidToIsDisabled;\n }\n\n if (dialogSettings?.dateType) {\n dateValidFromFieldInfo.type = dialogSettings.dateType;\n dateValidToFieldInfo.type = dialogSettings.dateType;\n }\n\n if (dialogSettings?.isCalendarDateDisabledDateValidFrom) {\n if (!dateValidFromFieldInfo.fieldSettings) {\n dateValidFromFieldInfo.fieldSettings = {};\n }\n\n dateValidFromFieldInfo.fieldSettings.isDateDisabled = dialogSettings.isCalendarDateDisabledDateValidFrom;\n }\n\n if (dialogSettings?.isCalendarDateDisabledDateValidTo) {\n if (!dateValidToFieldInfo.fieldSettings) {\n dateValidToFieldInfo.fieldSettings = {};\n }\n\n dateValidToFieldInfo.fieldSettings.isDateDisabled = dialogSettings.isCalendarDateDisabledDateValidTo;\n }\n\n this.clearItemsInfo(this.props);\n }\n\n /** Usually, temporal properties are inside TemporalPropertyBag collection.\n * We have one case in Company, with collection that contains DateValidFrom/DateValidTo,\n * but has different name, because it was created before backend implemented temporal property concept.\n * Since BE guys doesn't seem to be keen on changing that, use custom path or get the collection from binding context instead of using hardcoded TemporalPropertyBag.*/\n getTemporalPropertyBagPath = memoizeOne((): string => {\n return this.props.bindingContext.getParent().getPath(true);\n }, () => [this.props.bindingContext.toString()]);\n\n get temporalPropertyBagPath(): string {\n return this.getTemporalPropertyBagPath();\n }\n\n getEntity = memoizeOne((): IEntity => {\n return getBoundValue({\n data: this.props.storage.data.entity,\n bindingContext: this.props.temporalItemBindingContext,\n dataBindingContext: this.props.storage.data.bindingContext\n });\n }, () => [this.props.storage.data.entity, this.props.temporalItemBindingContext]);\n\n getOrigEntity = memoizeOne((): IEntity => {\n return getBoundValue({\n data: this.props.storage.data.origEntity,\n bindingContext: this.props.temporalItemBindingContext,\n dataBindingContext: this.props.storage.data.bindingContext\n }) ?? {};\n }, () => [this.props.storage.data.origEntity, this.props.temporalItemBindingContext]);\n\n get entity(): IEntity {\n return this.getEntity();\n }\n\n get origEntity(): IEntity {\n return this.getOrigEntity();\n }\n\n clearItemsInfo = (props: IProps): void => {\n // clear field info for items, so that the changes done to it here, won't be transferred to another dialog\n // => the items (their SmartField) will be forced to copy the field info from the default one in each dialog\n props.storage.clearCollectionInfoByPath(`${this.props.temporalItemBindingContext.toString()}/${this.temporalPropertyBagPath}(`);\n };\n\n isItemRemovable = (args: IGetValueArgs): boolean => {\n // todo not sure how this should actually work\n // => keep line commented for now\n // return this.getItems().length > 1 && isTemporalLineItemRemovable(args);\n\n // this should support our only case (VatRegistered state in company form)\n const items = this.getItems();\n const itemIndex = items.findIndex(item => args.bindingContext.isSame(args.bindingContext.removeKey().addKey(item)));\n\n return itemIndex !== 0 && itemIndex === items.length - 1;\n };\n\n getGroupingProperties = memoizeOne((): string[] => {\n return getGroupingProperties(this.props.bindingContext, this.props.storage);\n });\n\n getColumns = memoizeOne((): IFieldDef[] => {\n const dialogSettings = this.getDialogSettings();\n\n return [\n ...(dialogSettings.columns ? dialogSettings.columns.map(col => ({ id: col })) : [{ id: this.props.bindingContext.getPath() }]),\n { id: \"DateValidFrom\" },\n { id: \"DateValidTo\" }\n ];\n }, () => [this.props.bindingContext]);\n\n close = (current?: TTemporal>): void => {\n this.clearAllErrors();\n\n this.props.onClose?.(current);\n this.props.storage.setCustomData({ temporalPropertyDialogBc: null });\n this.props.storage.refresh();\n };\n\n getBindingContext = memoizeOne(() => {\n return this.props.temporalItemBindingContext.navigate(this.temporalPropertyBagPath);\n });\n\n updateDateValidToBasedOnNextValidFrom = (dateValidToBc: BindingContext, nextDateValidFrom: Date): void => {\n const dialogSettings = this.getDialogSettings();\n // const granularity = getGranularity(dialogSettings);\n const newPreviousItemDateValidTo = getUtcDayjs(nextDateValidFrom).subtract(1, \"day\").toDate();\n\n if (DateType.isValid(newPreviousItemDateValidTo)) {\n this.props.storage.setValue(dateValidToBc, newPreviousItemDateValidTo);\n }\n };\n\n setItemDefaultValues = (item: TTemporal): void => {\n const items = this.getItems();\n const newItemBc = this.getBindingContext().addKey(item);\n const newItemIndex = items.length - 1;\n const previousItem = items[newItemIndex - 1];\n const dialogSettings = this.getDialogSettings();\n\n for (const column of this.getColumns()) {\n const colBc = newItemBc.navigate(column.id);\n\n if (column.id === \"DateValidFrom\") {\n this.props.storage.setValue(colBc, getDefaultTemporalDateValidFrom(dialogSettings, items));\n } else if (column.id === \"DateValidTo\") {\n this.props.storage.setValue(colBc, getDefaultTemporalDateValidTo(dialogSettings, items));\n } else {\n this.props.storage.setValue(colBc, previousItem[column.id]);\n }\n }\n\n const updatedNewItem = this.props.storage.getValue(newItemBc) as TTemporal;\n\n this.updateDateValidToBasedOnNextValidFrom(this.getBindingContext().addKey(previousItem).navigate(\"DateValidTo\"), updatedNewItem.DateValidFrom);\n };\n\n validateDates = (): boolean => {\n const itemsBc = this.getBindingContext();\n const items = this.getItems();\n let anyError = false;\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemBc = itemsBc.addKey(item);\n const dateValidFromBc = itemBc.navigate(\"DateValidFrom\");\n const dateValidToBc = itemBc.navigate(\"DateValidTo\");\n let dateFromHasError = false;\n let dateToHasError = false;\n\n // compare dates in the current item\n if (item.DateValidFrom && item.DateValidTo && getUtcDayjs(item.DateValidFrom).isSameOrAfter(item.DateValidTo, \"date\")) {\n dateFromHasError = true;\n dateToHasError = true;\n const error: IValidationError = {\n message: this.props.storage.t(\"Components:TemporalProperty.ValidationDateFromBeforeDateTo\"),\n errorType: ValidationErrorType.Field\n };\n\n this.props.storage.setError(dateValidFromBc, error);\n this.props.storage.setError(dateValidToBc, error);\n }\n\n // compare with previous items\n if (i > 0) {\n const previousItem = items[i - 1];\n\n if (previousItem.DateValidTo && item.DateValidFrom && getUtcDayjs(item.DateValidFrom).isSameOrBefore(previousItem.DateValidTo, \"date\")) {\n dateFromHasError = true;\n\n this.props.storage.setError(dateValidFromBc, {\n message: this.props.storage.t(\"Components:TemporalProperty.ValidationDateFromAfterPreviousDateTo\"),\n errorType: ValidationErrorType.Field\n });\n }\n }\n\n if (!dateFromHasError) {\n this.props.storage.clearError(dateValidFromBc);\n } else {\n anyError = true;\n }\n\n if (!dateToHasError) {\n this.props.storage.clearError(dateValidToBc);\n } else {\n anyError = true;\n }\n }\n\n return !anyError;\n };\n\n clearAllErrors = (): void => {\n this.props.storage.clearCollectionAdditionalFieldDataByPath(this.getBindingContext().getFullPath());\n };\n\n handleDateValidChange = (args: ISmartFieldChange): void => {\n const path = args.bindingContext.getPath();\n\n if (![\"DateValidFrom\", \"DateValidTo\"].includes(path)) {\n return;\n }\n\n const dialogSettings = this.getDialogSettings();\n\n if (dialogSettings.withoutGaps && path === \"DateValidFrom\") {\n const items = this.getItems();\n const itemBc = args.bindingContext.getParent();\n const itemIndex = items.findIndex(item => itemBc.isSame(itemBc.removeKey().addKey(item)));\n const prevItem = items[itemIndex - 1];\n\n if (prevItem) {\n this.updateDateValidToBasedOnNextValidFrom(itemBc.removeKey().addKey(prevItem).navigate(\"DateValidTo\"), args.value as Date);\n }\n }\n\n // when DateValidFrom/To is changed, we need to re-render whole SmartFastEntryList\n // to re-render SimpleTimeline (could be changed for two line items for SimpleTimeLineStatus.Future)\n this.props.storage.addActiveField(this.getBindingContext());\n };\n\n handleLineItemsChange = (args: ISmartFieldChange): void => {\n this.props.storage.handleLineItemsChange(args);\n\n this.props.onChange?.(args);\n this.handleDateValidChange(args);\n this.props.storage.refreshFields();\n\n if (args.triggerAdditionalTasks) {\n // to ensure that the add button isDisabled callback is called (can be affected by e.g. date changes)\n this.props.storage.refresh();\n }\n };\n\n handleLineItemsBlur = async (args: ISmartFieldBlur): Promise => {\n await this.props.storage.handleBlur(args);\n this.props.storage.refresh();\n };\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n this.props.storage.handleLineItemsAction(args);\n\n if (args.actionType === ActionType.Add) {\n const [item] = args.affectedItems;\n this.setItemDefaultValues(item as TTemporal);\n this.validateAll();\n } else if (args.actionType === ActionType.Remove) {\n // last item of cannotBeEnded should always have infinity in DateValidTo\n const items = this.getItems();\n const lastItem = items[items.length - 1];\n\n if (lastItem.DateValidTo !== DATE_MAX) {\n this.props.storage.setValue(this.getBindingContext().addKey(lastItem).navigate(\"DateValidTo\"), DATE_MAX);\n }\n\n this.validateAll();\n }\n\n this.props.storage.refresh();\n };\n\n /** Validates all fields inside the dialog,\n * returns true if ok, false if error */\n validateAll = async (): Promise => {\n const items = this.getItems();\n const columns = this.getColumns();\n const promises: Promise[] = [];\n\n for (const item of items) {\n const itemBc = this.getBindingContext().addKey(item);\n\n for (const column of columns) {\n promises.push(\n this.props.storage.validateField(itemBc.navigate(column.id))\n );\n }\n }\n\n const res = await Promise.all(promises);\n\n this.props.storage.refreshFields();\n\n\n return res.every(error => !error);\n };\n\n handleConfirm = async (): Promise => {\n const { storage, temporalItemBindingContext } = this.props;\n\n if (!(await this.validateAll()) || !this.validateDates()) {\n this.props.storage.refreshFields();\n return;\n }\n\n try {\n const properties = this.getGroupingProperties();\n const cleanedValues = cleanupHistoryValues(this.entity[this.temporalPropertyBagPath]);\n const ungrouped = ungroupAndOptimizeRanges(cleanedValues, this.oldTemporalBag, properties);\n\n const today = getUtcDayjs();\n const current = this.entity[this.temporalPropertyBagPath].find((bag: TTemporal) => today.isBetween(bag.DateValidFrom, bag.DateValidTo, \"day\", \"[]\"));\n\n // only apply CurrentTemporalPropertyBag if it exists in the entity\n // not the case for Company/VatStatuses\n if (temporalItemBindingContext.isValidNavigation(\"CurrentTemporalPropertyBag\")) {\n const propertyBagBc = temporalItemBindingContext.navigate(\"CurrentTemporalPropertyBag\");\n if (current) {\n if (!this.entity.CurrentTemporalPropertyBag) {\n this.entity.CurrentTemporalPropertyBag = {};\n }\n for (const prop of properties) {\n this.entity.CurrentTemporalPropertyBag[prop] = current[prop];\n const sourceCodePropName = `${prop}${EntityValueSourcePropNameSuffix}`;\n if (propertyBagBc.isValidNavigation(sourceCodePropName)) {\n this.entity.CurrentTemporalPropertyBag[sourceCodePropName] = current.SourceCode ?? PrEntityValueSourceCode.Entity;\n }\n }\n } else {\n if (this.entity.CurrentTemporalPropertyBag) {\n // only remove grouping properties,\n // we don't want to affect other, unrelated properties that can have current value\n for (const prop of properties) {\n delete this.entity.CurrentTemporalPropertyBag[prop];\n }\n }\n\n }\n }\n\n this.entity[this.temporalPropertyBagPath] = ungrouped;\n this.origEntity[this.temporalPropertyBagPath] = this.oldOrigTemporalBag;\n this.close(current);\n } catch (e) {\n logger.error(\"error ranges ungrouping\", e);\n }\n };\n\n handleCancel = (): void => {\n this.entity[this.temporalPropertyBagPath] = this.oldTemporalBag;\n this.origEntity[this.temporalPropertyBagPath] = this.oldOrigTemporalBag;\n this.close();\n };\n\n getDialogSettings = memoizeOne((): TTemporalDialogSettings => {\n const fieldInfo = this.props.storage.getInfo(this.props.bindingContext);\n\n return fieldInfo.fieldSettings.temporalDialog ?? {};\n }, () => []);\n\n getCustomPreContent = (args: ICustomPreContentArgs): React.ReactNode => {\n if (args.items?.length < 2) {\n return null;\n }\n\n const status = getTimelineStatus(args.item as TTemporal);\n const nextItem = args.items[args.index + 1] as TTemporal;\n let isNextFuture = false;\n\n if (nextItem) {\n isNextFuture = getTimelineStatus(nextItem) === SimpleTimeLineStatus.Future;\n }\n\n // some margins differ for when the fast entry items are wrapped and not wrapped (LabelStatus.Removed)\n const topOffset = args.labelStatus === LabelStatus.Removed ? 18 : 35;\n const bottomLineOverflow = args.labelStatus === LabelStatus.Removed ? FIELD_VER_MARGIN_SMALL : FIELD_VER_MARGIN;\n\n return (\n

    \n \n
    \n );\n };\n\n getAddDisabledAlert = (): IAlertProps => {\n return {\n isSmall: true,\n status: Status.Warning,\n title: this.props.storage.t(\"Components:TemporalProperty.WarningOnlyOnePlanPossible\")\n };\n };\n\n getItems = (): TTemporal[] => {\n return this.entity[this.temporalPropertyBagPath] ?? [];\n };\n\n render() {\n const dialogSettings = this.getDialogSettings();\n const title = dialogSettings.dialogTitle;\n const items = this.getItems();\n const today = getUtcDayjs();\n const addDisabled = dialogSettings.onlyOneFuturePlan // future also means if the DateValidFrom is today\n ? items.filter(item => getTimelineStatus(item) === SimpleTimeLineStatus.Future || today.isSame(item.DateValidFrom)).length >= 1\n : false;\n const planChange = !(dialogSettings.withoutGaps && dialogSettings.cannotBeEnded);\n\n return (\n 1}\n onConfirm={this.handleConfirm}\n onClose={this.handleCancel}\n busy={this.props.busy}\n title={title}\n footer={}>\n 1 ? SIMPLE_TIMELINE_POINT_SIZE + SIMPLE_TIMELINE_POINT_MARGIN : 0}\n canAdd={true}\n isAddDisabled={addDisabled}\n customAddButtonText={this.props.storage.t(`Components:TemporalProperty.${planChange ? \"PlanChange\" : \"AddChange\"}`)}\n addDisabledAlert={addDisabled ? this.getAddDisabledAlert() : null}\n isCollapsible={false}\n onBlur={this.handleLineItemsBlur}\n canReorder={false}\n isItemRemovable={this.isItemRemovable}\n isItemCloneable={false}\n isItemSelectable={false}\n groupId={\"temporalPropertyDialog\"}\n customPreContent={this.getCustomPreContent}\n order={null}\n />\n \n );\n }\n}\n\nexport default withBusyIndicator({ defaultBusyState: true })(SmartTemporalPropertyDialog);","import { getDrillDownNavParams, THistoryLocation } from \"@components/drillDown/DrillDown.utils\";\nimport { IHeaderIcon } from \"@components/header/Header\";\nimport { getInfoValue, isFieldDisabled } from \"@components/smart/FieldInfo\";\nimport { ISmartFastEntriesActionEvent } from \"@components/smart/smartFastEntryList\";\nimport {\n ISmartFieldBlur,\n ISmartFieldChange,\n ISmartFieldTempDataActionArgs\n} from \"@components/smart/smartField/SmartField\";\nimport { ISmartFormGroupActionEvent } from \"@components/smart/smartFormGroup/SmartFormGroup\";\nimport { IGetSmartHeaderCustomInfo } from \"@components/smart/smartHeader/SmartHeader.utils\";\nimport { ICachedFieldState } from \"@odata/Data.utils\";\nimport { getRouteByEntityType } from \"@odata/EntityTypes\";\nimport { EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { CompanyPermissionCode, GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { isPermissionErrorCode } from \"@odata/ODataParser\";\nimport { TTemporal } from \"@odata/TemporalUtils\";\nimport { tWithFallback } from \"@pages/documents/Document.utils\";\nimport { CustomerPortal } from \"@pages/home/CustomerPortal.utils\";\nimport { DRAFT_BC_PREFIX } from \"@pages/PageUtils\";\nimport { ICopyEntityArgs } from \"@utils/DraftUtils\";\nimport { composeRefHandlers, isDefined } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { logger } from \"@utils/log\";\nimport { capitalize } from \"@utils/string\";\nimport { cloneDeep } from \"lodash\";\nimport React, { Component } from \"react\";\n\nimport Alert from \"../../components/alert/Alert\";\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport { Button, ButtonGroup } from \"../../components/button\";\nimport SmartFormDeleteButton from \"../../components/smart/smartFormDeleteButton/SmartFormDeleteButton\";\nimport { NEW_ITEM_DETAIL } from \"../../constants\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { FieldType, FormMode, PageViewMode, QueryParam, Status } from \"../../enums\";\nimport { AwaitedArray } from \"../../global.types\";\nimport { ModelEvent } from \"../../model/Model\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport SmartTemporalPropertyDialog from \"../../pages/payroll/SmartTemporalPropertyDialog\";\nimport { AUDIT_TRAIL } from \"../../routes\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\nimport DateType from \"../../types/Date\";\nimport KeyboardShortcutsManager from \"../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport { NoPermission } from \"../notFound\";\nimport Form, { generateComparisonProps, IProps } from \"./Form\";\nimport { focusFirstInputField, getAlertFromError, setBreadCrumbs } from \"./Form.utils\";\nimport {\n FormStorage,\n IContextInitArgs,\n IFormStorageDefaultCustomData,\n IFormStorageSaveResult,\n ISaveArgs\n} from \"./FormStorage\";\n\nenum SpecialHeaderIcon {\n Settings = \"Settings\",\n AuditTrail = \"AuditTrail\"\n}\n\nexport interface ITableRefreshNeeded {\n refreshRowOnly?: boolean;\n rowBc?: BindingContext;\n modelRefreshOnly?: boolean;\n}\n\nexport interface IFormViewProps extends WithPermissionContext {\n storage: FormStorage;\n style?: React.CSSProperties;\n onCancel?: () => void;\n onBeforeSave?: () => void;\n onSaveFail?: () => void;\n onAfterSave?: (refresh: boolean, preventTableViewRefresh?: boolean) => void;\n onGroupExpand?: (isExpanded: boolean, id: string) => void;\n onTableRefreshNeeded?: (args?: ITableRefreshNeeded) => void;\n onOpenNextDraft?: () => void;\n // switch page to \"new\" entity state, just like when \"+\" button is clicked above table\n onAdd?: (type?: string) => void;\n passRef?: React.Ref;\n ref?: React.Ref>;\n title?: string;\n hideButtons?: boolean;\n pageViewMode?: PageViewMode;\n formProps?: Partial;\n skipLoad?: boolean;\n // FormView rendered in dialog has bit different alert behavior\n // - should not be shown for field validations\n // - isSmall should be used\n isInDialog?: boolean;\n hideBusyIndicator?: boolean;\n allowCopy?: boolean;\n}\n\nclass FormView = IFormViewProps, S = Record> extends Component {\n _refScroll = React.createRef();\n _refFormContent = React.createRef();\n _refHeader = React.createRef();\n _refView = React.createRef();\n _isMounted: boolean;\n _removeBusyAfterUpdate = false;\n\n _unsubscribeKeyboardShortcuts: () => void;\n\n constructor(props: P) {\n\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleLineItemsChange = this.handleLineItemsChange.bind(this);\n this.handleFieldStateChange = this.handleFieldStateChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.save = this.save.bind(this);\n this.onAfterLoad = this.onAfterLoad.bind(this);\n this.onAfterSave = this.onAfterSave.bind(this);\n this.onBeforeSave = this.onBeforeSave.bind(this);\n this.renderForm = this.renderForm.bind(this);\n this.renderButtons = this.renderButtons.bind(this);\n this.shouldHideButtons = this.shouldHideButtons.bind(this);\n this.handleDelete = this.handleDelete.bind(this);\n this.handleKeyboardShortcut = this.handleKeyboardShortcut.bind(this);\n this.getFormSubtitle = this.getFormSubtitle.bind(this);\n this.renderTemporalPropertyDialog = this.renderTemporalPropertyDialog.bind(this);\n this.handleSmartTemporalPropertyDialogChange = this.handleSmartTemporalPropertyDialogChange.bind(this);\n\n this._unsubscribeKeyboardShortcuts = KeyboardShortcutsManager.subscribe({\n shortcuts: [KeyboardShortcut.ALT_D, KeyboardShortcut.ALT_C, KeyboardShortcut.ALT_S, KeyboardShortcut.ALT_SHIFT_S],\n callback: this.handleKeyboardShortcut\n });\n }\n\n shouldHideButtons(): boolean {\n return CustomerPortal.isActive;\n }\n\n componentDidMount(): void {\n this._isMounted = true;\n this.props.storage.emitter.on(ModelEvent.AfterLoad, this.onAfterLoad);\n this.props.storage.getAdditionalLoadPromise = this.getAdditionalLoadPromise;\n }\n\n componentDidUpdate(prevProps: Readonly

    , prevState: Readonly): void {\n if (this.props.storage.isBusy && this._removeBusyAfterUpdate) {\n this.props.storage.setBusy(false);\n this._removeBusyAfterUpdate = false;\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n this.props.storage.emitter.off(ModelEvent.AfterLoad, this.onAfterLoad);\n this._unsubscribeKeyboardShortcuts?.();\n }\n\n shouldComponentUpdate(nextProps: Readonly

    , nextState: Readonly): boolean {\n // this form is updated only directly using force update\n return false;\n }\n\n get shouldShowBreadCrumbs(): boolean {\n return !this.props.formProps?.hideBreadcrumbs;\n }\n\n get entity(): E {\n return this.props.storage.getEntity();\n }\n\n get isEntityReady(): boolean {\n return this.props.storage.loaded && !this.props.storage.loading && this.props.storage.afterLoaded;\n }\n\n /** Can be overriden*/\n getFormProps = (): Partial => {\n return this.props.formProps;\n };\n\n getReadOnlyNavButtonText = (): string => {\n return tWithFallback(this.props.storage.data.definition?.translationFiles?.[0], \"Form.OpenFormAction\", \"Common\");\n };\n\n // render Edit button for FormReadOnly\n // otherwise call renderButtons method, which can be overridden by inherited form views\n renderButtonsByContext = (): React.ReactElement => {\n const viewMode = this.props.storage.pageViewMode;\n\n if (this.shouldHideButtons()) {\n return null;\n }\n\n const hasPermission = (permissions: string[]) => {\n return permissions.some(p => this.props.permissionContext.companyPermissions.has(p as CompanyPermissionCode) || this.props.permissionContext.generalPermissions.has(p as GeneralPermissionCode));\n };\n\n if (viewMode === PageViewMode.FormReadOnly) {\n // try to find route instead of just reusing the current one\n // (FormView could be inside DialogPage)\n // add more routes into getRouteByEntityType if not working for your case\n const route = getRouteByEntityType(this.props.storage.data.bindingContext.getEntityType().getName() as EntityTypeName);\n const search = getQueryParameters({ exclude: [QueryParam.ViewMode] });\n\n const bc = this.props.storage.data.bindingContext;\n const key = bc.getKey();\n const entityKey = key.toString().startsWith(DRAFT_BC_PREFIX) ? NEW_ITEM_DETAIL : key;\n let path = window.location.pathname;\n\n if (route) {\n // dependent entity like ChartOfAccounts(1)/Accounts(2)\n if (!!bc.getParent()) {\n const parentKey = bc.getParent().getKey();\n path = `${route}/${parentKey}/${bc.getPath(true)}/${entityKey}`;\n } else {\n path = `${route}/${entityKey}`;\n }\n }\n\n if (search) {\n path += \"?\" + new URLSearchParams(search).toString();\n }\n\n if (this.props.storage.data.definition?.permissions && !hasPermission(this.props.storage.data.definition?.permissions)) {\n return null;\n }\n\n return (\n \n \n {this.getReadOnlyNavButtonText()}\n \n \n );\n }\n\n return this.renderButtons();\n };\n\n handleFormCancel = (): void => {\n this.props.onCancel?.();\n };\n\n canProcessShortcuts = () => {\n if (!this.isEntityReady) {\n return false; // no shortcuts when entity is not yet ready\n }\n\n if (this.props.storage.pageViewMode === PageViewMode.FormReadOnly) {\n return false;\n }\n\n return true;\n };\n\n handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n const { storage } = this.props;\n\n if (!this.canProcessShortcuts()) {\n return false;\n }\n\n switch (shortcut) {\n // copy date from focused date to all other date fields in the same form group\n case KeyboardShortcut.ALT_D:\n // 1.find field definition by the data-name\n // 2.if the field is a date field, find all other non-disabled date fields in the form group\n // 3.propagate field value to those fields\n if (document.activeElement.tagName.toUpperCase() !== \"INPUT\") {\n return true;\n }\n\n const fieldName = document.activeElement.getAttribute(\"data-name\");\n const fieldInfo = storage.getInfo(storage.data.bindingContext.navigate(fieldName));\n\n if (!fieldInfo || fieldInfo.type !== FieldType.Date) {\n return true;\n }\n\n const value = storage.getValueByPath(fieldName);\n\n if (!DateType.isValid(value)) {\n return true;\n }\n\n const formGroup = storage.getVariant().find(group => group.rows.find(row => row.find(def => def.id === fieldName)));\n const otherDateFields: string[] = [];\n\n for (const row of formGroup.rows) {\n for (const def of row) {\n const otherFieldBc = storage.data.bindingContext.navigate(def.id);\n const otherFieldInfo = storage.getInfo(otherFieldBc);\n\n if (otherFieldInfo.type === FieldType.Date && otherFieldInfo.id !== fieldName && !isFieldDisabled(otherFieldInfo, storage, otherFieldBc)) {\n otherDateFields.push(otherFieldInfo.id);\n }\n }\n }\n\n for (const otherDateField of otherDateFields) {\n this.handleChange({\n bindingContext: this.props.storage.data.bindingContext.navigate(otherDateField),\n value,\n parsedValue: value,\n groupId: formGroup.id,\n triggerAdditionalTasks: true,\n type: FieldType.Date\n });\n }\n\n return true;\n // make a copy, handled on DocumentFormView, the only form with copy functionality\n case KeyboardShortcut.ALT_C:\n return false;\n // \"press\" save button\n case KeyboardShortcut.ALT_S:\n if (!this.shouldDisableSaveButton()) {\n this.handleSaveClick();\n return true;\n }\n return false;\n }\n\n return false;\n }\n\n get isDeletable(): boolean {\n return !this.props.storage.data.bindingContext.isNew() && !!getInfoValue(this.props.storage.data.definition, \"isDeletable\", {\n storage: this.props.storage,\n context: this.context\n });\n }\n\n /**\n * Can be used to stop user from deleting entity, e.g. by showing confirmation dialog.\n * to be overridden in extended classes\n * @returns boolean shouldAllow - true to allow removal, false to prevent it\n * */\n async onBeforeDelete(): Promise {\n return true;\n }\n\n async handleDelete(): Promise {\n const allowDelete = await this.onBeforeDelete();\n\n if (!allowDelete) {\n return;\n }\n\n const storage = this.props.storage;\n const isNew = storage.data.bindingContext.isNew();\n let isOk = true;\n\n if (!isNew) {\n storage.setBusy(true);\n\n try {\n const editOverride = storage.getEditOverride();\n const setWrapper = storage.oData.fromPath(storage.data.bindingContext.removeKey().getFullPath());\n\n if (editOverride) {\n setWrapper.queryParameters({\n [editOverride.id]: \"true\"\n });\n }\n\n await setWrapper.delete(storage.data.bindingContext.getKey());\n } catch (e) {\n isOk = false;\n storage.setFormAlert(getAlertFromError(e));\n this.scrollPageUp();\n }\n\n storage.setBusy(false);\n }\n\n if (isOk) {\n this.props.onCancel?.();\n !isNew && this.props.onTableRefreshNeeded();\n }\n }\n\n shouldDisableSaveButton = (): boolean => {\n return this.props.storage.isDisabled;\n };\n\n shouldDisableCancelButton = (): boolean => {\n return this.props.storage.isDisabled || (!this.props.storage.data.status?.isChanged && !this.props.storage.data.bindingContext.isNew());\n };\n\n renderButtons(): React.ReactElement {\n const storage = this.props.storage;\n const isFormReadOnly = storage.isReadOnly;\n\n return (\n \n \n {this.isDeletable &&\n \n }\n {this.shouldAllowCopy() && }\n {!isFormReadOnly &&\n \n }\n \n );\n }\n\n scrollPageDown = (): void => {\n if (!this._refScroll.current) {\n return;\n }\n\n this._refScroll.current.scrollTop = this._refScroll.current.scrollHeight;\n };\n\n scrollPageUp = (): void => {\n if (!this._refScroll.current) {\n return;\n }\n\n this._refScroll.current.scrollTop = 0;\n // when we are scrolling up, set also focus to first element, so user has correct context even if works with keyboard\n focusFirstInputField(this._refFormContent.current);\n };\n\n /* Can be overridden in inherited form views */\n setBreadcrumbs = (): void => {\n if (!this.shouldShowBreadCrumbs) {\n return;\n }\n this.props.storage.data.definition.getItemBreadCrumbText && setBreadCrumbs(this.props.storage as unknown as FormStorage);\n };\n\n fireFormLoadedEvent = (): void => {\n // fire event that can be easily handled in cypress tests\n // to wait for form to be loaded\n setTimeout(() => {\n this._refView.current?.dispatchEvent(\n new CustomEvent(\"formLoaded\", { bubbles: true })\n );\n });\n };\n\n onAfterLoad(): Promise {\n this.setBreadcrumbs();\n // call refreshSync to ensure \"refreshPage\" is going to be used,\n // otherwise, _.debounce will call refresh with the last parameters,\n // and there can be some inherited form views that calls refresh without \"refreshPage\"\n this.props.storage.refreshSync(true);\n this.fireFormLoadedEvent();\n\n return Promise.resolve();\n }\n\n getAdditionalLoadPromise = (args: IContextInitArgs): (Promise | void)[] => {\n return undefined;\n };\n\n // todo this returns FormView interface, meaning the return type has to overidden in inheriting classes\n // can the return value be defined in generic way?\n getAdditionalResults(): AwaitedArray[\"getAdditionalLoadPromise\"]>> {\n return this.props.storage.data.additionalResults;\n }\n\n // for overload in heirs\n onBeforeSave(data?: E): E {\n return undefined;\n }\n\n // todo rework \"save\" methods in extended form views to use super.save instead of handling everything redundantly\n async save(saveArgs?: Partial): Promise {\n let data;\n try {\n this.props.onBeforeSave?.();\n data = this.onBeforeSave();\n } catch (e) {\n this.props.storage.setFormAlert({\n status: Status.Error,\n title: this.props.storage.t(\"Common:General.FormValidationErrorTitle\"),\n subTitle: e.message\n });\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return null;\n }\n\n const isNew = this.props.storage.data.bindingContext.isNew();\n\n const result = await this.props.storage.save({\n data,\n successSubtitle: tWithFallback(this.props.storage.data.definition?.translationFiles?.[0], \"Validation.Saved\", \"Common\"),\n fieldValidationWithoutErrorAlert: !!this.props.isInDialog,\n skipLoad: this.props.skipLoad,\n ...saveArgs\n });\n\n if (!this._isMounted) {\n return null;\n }\n\n if (!result) {\n this.props.onSaveFail?.();\n this.forceUpdate(this.scrollPageUp);\n return result;\n }\n\n this.onAfterSave(isNew, false);\n this.forceUpdate(isNew ? this.scrollPageDown : undefined);\n\n return result;\n }\n\n handleSaveClick = (): void => {\n this.save();\n };\n\n onAfterSave(isNew: boolean, preventTableViewRefresh: boolean): void {\n this.props.onAfterSave?.(isNew, preventTableViewRefresh);\n }\n\n async handleBlur(args: ISmartFieldBlur): Promise {\n await this.props.storage.handleBlur(args);\n this.props.storage.refreshFields();\n }\n\n handleRemove = (bc: BindingContext): void => {\n this.props.storage.handleRemove(bc);\n this.props.storage.refresh();\n };\n\n handleTemporalChange = (e: ISmartFieldChange): void => {\n this.props.storage.handleTemporalChange(e);\n this.props.storage.refreshFields();\n };\n\n handleConfirm = (args: ISmartFieldTempDataActionArgs): void => {\n this.props.storage.handleConfirm(args, this.handleChange)\n .then(() => this.props.storage.refreshFields());\n };\n\n handleCancel = (args: ISmartFieldTempDataActionArgs): void => {\n this.props.storage.handleCancel(args)\n .then(() => this.props.storage.refreshFields());\n };\n\n handleChange(e: ISmartFieldChange): void {\n this.props.storage.handleChange(e);\n\n // triggerAdditionalTasks === true for select like components has same\n // meaning as triggerAdditionalTasks === undefined for the rest types\n const shouldUpdate = e.triggerAdditionalTasks !== false;\n this.props.storage.refreshFields(shouldUpdate);\n }\n\n handleFieldStateChange(bc: BindingContext, state: ICachedFieldState, prevState: ICachedFieldState): void {\n this.props.storage.handleFieldStateChange(bc, state, prevState);\n }\n\n handleLineItemsChange(args: ISmartFieldChange): void {\n this.props.storage.handleLineItemsChange(args);\n this.props.storage.refreshFields();\n }\n\n handleLineItemsAction = (args: ISmartFastEntriesActionEvent): void => {\n this.props.storage.handleLineItemsAction(args);\n this.props.storage.refresh();\n };\n\n handleGroupAction = (args: ISmartFormGroupActionEvent): void => {\n // Custom implementation is needed for group actions\n };\n\n createEntityCopy(args: ICopyEntityArgs = {}): E {\n const copy = cloneDeep(this.entity);\n delete (copy as IEntity).Id;\n return copy;\n }\n\n /** Changes url to \"new\" and presets the document with current data OR in draft view creates a new draft */\n handleCopy = async (): Promise => {\n const { storage } = this.props;\n storage.setBusy(true);\n const copy = this.createEntityCopy();\n storage.setCustomData({\n initialData: copy\n });\n this.props.onAdd?.();\n this._removeBusyAfterUpdate = true;\n };\n\n shouldAllowCopy = (): boolean => {\n return this.props.allowCopy && this.props.storage.pageViewMode !== PageViewMode.FormReadOnly && !this.props.storage.data.bindingContext.isNew();\n };\n\n shouldDisableCopyButton = (): boolean => {\n return this.props.storage.data.disabled\n // most buttons should be disabled when the form is in editOverride mode\n || !!this.props.storage.getEditOverride();\n };\n\n get isAuditTrail(): boolean {\n return this.props.storage.formMode === FormMode.AuditTrail;\n }\n\n shouldShowAuditTrailIcon = (): boolean => {\n return !this.getFormProps()?.shouldHideAuditTrail\n && this.props.storage instanceof FormStorage && !this.isAuditTrail;\n };\n\n getAuditTrailLink = (): THistoryLocation => {\n const link = `${window.location.pathname}/${AUDIT_TRAIL}`;\n\n // use getDrillDownNavParams to propagate correct breadcrumbs via browser state\n // used e.g. in CompanySetupWizard\n return getDrillDownNavParams({ route: link, context: this.props.storage.context, storage: this.props.storage });\n };\n\n handleSettingsClick = (): void => {\n this.props.storage?.setCustomData({\n isCustomizationDialogOpen: true\n });\n this.props.storage?.refresh();\n };\n\n // can be override in extended classes\n async handleCustomHeaderAction(actionId: string): Promise {\n return undefined;\n }\n\n getHeaderIcons(): IHeaderIcon[] {\n const isNew = this.props.storage?.data?.bindingContext?.isNew();\n const icons: IHeaderIcon[] = [];\n\n if (this.props.storage instanceof FormStorage && !this.getFormProps()?.shouldHideVariant) {\n icons.push({\n // hotspotId is built from id and we need it to be different from table settings button\n id: `${SpecialHeaderIcon.Settings}-form`,\n label: capitalize(this.props.storage.t(\"Common:Form.Customize\")),\n iconName: \"Settings\",\n onClick: this.handleSettingsClick,\n ignoreMasterDisabled: true\n });\n }\n\n if (this.shouldShowAuditTrailIcon()) {\n if (!this.props.permissionContext) {\n logger.error(\"permissionContext missing in FormView, wrap current form view in withPermissionContext\");\n }\n icons.push({\n id: SpecialHeaderIcon.AuditTrail,\n label: this.props.storage.t(\"Common:Form.AuditTrail\"),\n iconName: \"AuditTrail\",\n isDisabled: isNew || !this.props.permissionContext?.generalPermissions?.has(GeneralPermissionCode.AuditTrail),\n link: this.getAuditTrailLink(),\n ignoreMasterDisabled: true\n });\n }\n\n if (!this.getFormProps()?.isSimple) {\n const customHeaderActions = this.props.storage.data.definition.customHeaderActions ?? [];\n\n for (const customHeaderAction of customHeaderActions) {\n const infoValArgs = { storage: this.props.storage };\n\n if (!isDefined(customHeaderAction.isVisible) || getInfoValue(customHeaderAction, \"isVisible\", infoValArgs)) {\n const { isVisible, ...passProps } = customHeaderAction;\n icons.push({\n ...passProps,\n onClick: this.handleCustomHeaderAction.bind(this, customHeaderAction.id),\n isDisabled: (isDefined(customHeaderAction.isDisabled) && getInfoValue(customHeaderAction, \"isDisabled\", infoValArgs))\n || this.props.storage.data.disabled\n });\n }\n }\n }\n\n return icons;\n }\n\n // to be overridden in extended FormView\n getCustomHeaderInfo = (): IGetSmartHeaderCustomInfo => {\n return null;\n };\n\n handleGroupExpand = (isExpanded: boolean, id: string): void => {\n this.props.onGroupExpand?.(isExpanded, id);\n };\n\n isCopy = () => {\n return this.props.storage.getCustomData().isCopy;\n };\n\n getFormTitle = (): string => {\n return this.props.storage.t(this.props.title);\n };\n\n getFormSubtitle(): string {\n if (this.isCopy()) {\n return this.props.storage.t(\"Common:General.CopyOf\");\n }\n\n return \"\";\n }\n\n getFormSubtitleStatus = (): Status => {\n if (this.isCopy()) {\n return Status.Warning;\n }\n\n return null;\n };\n\n /** Can be overridden */\n handleSmartTemporalPropertyDialogChange(args: ISmartFieldChange): void {\n //\n }\n\n renderTemporalPropertyDialog(onClose?: (current?: TTemporal) => void): React.ReactElement {\n const temporalPropertyDialogBc = this.props.storage.getCustomData().temporalPropertyDialogBc;\n\n if (!temporalPropertyDialogBc) {\n return null;\n }\n // usually it's same as storage.data.bindingContext, but for temporal LineItems it is BC of current item\n const temporalItemBaseBc = temporalPropertyDialogBc.getParent().getParent();\n\n return (\n <>\n {temporalPropertyDialogBc &&\n \n }\n \n );\n }\n\n renderFooter = (): React.ReactElement => {\n const isComparison = this.props.storage?.formMode === FormMode.AuditTrail;\n const shouldRenderFooter = !isComparison && !this.props.hideButtons;\n\n // return null if footer should be hidden,\n // otherwise Form.tsx sees children (even react.fragment), and renders empty FormFooter element, which has margin\n return shouldRenderFooter ? this.renderButtonsByContext() : null;\n };\n\n renderForm(): React.ReactElement {\n const { hideBusyIndicator, ...restFormProps } = this.getFormProps() ?? {};\n return (<>\n \n {this.renderFooter()}\n \n {this.renderTemporalPropertyDialog()}\n );\n }\n\n isReady = (): boolean => {\n return this.props.storage.loaded && !!this.props.storage.data.bindingContext;\n };\n\n renderCustomDialogs(): React.ReactElement {\n return null;\n }\n\n render() {\n // in case storage is not loaded, we can't render form, but it's not loading either,\n // so there was some error during the load\n if (!this.props.storage.loaded && !this.props.storage.loading && this.props.storage.data?.alert) {\n const { position, ...alertProps } = this.props.storage.data.alert;\n if (isPermissionErrorCode(alertProps?.detailData?._code)) {\n return ();\n }\n // possibly error happened during the load, present it to the user\n // not nice, but better than infinite loading\n return ();\n }\n\n if (!this.isReady()) {\n if (this.props.hideBusyIndicator) {\n // hide busy indicator if needed eg. in dialog or elsewhere where is already handled by parent component\n return null;\n }\n return ;\n }\n\n return (<>\n {this.renderForm()}\n {this.renderCustomDialogs()}\n );\n }\n}\n\nexport default withPermissionContext(FormView);\nexport { FormView as FormViewForExtend };","import { WithOData, withOData } from \"@odata/withOData\";\nimport { handleRefHandlers } from \"@utils/general\";\nimport * as History from \"history\";\nimport i18next, { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { withTheme } from \"styled-components\";\n\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { Optional } from \"../../global.types\";\nimport { IHistoryState } from \"../../model/Model\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport { IDefinition, IGetDefinitionOptionalTranslation } from \"../../pages/PageUtils\";\nimport { PropsWithTheme } from \"../../theme\";\nimport { IDialogFormViewProps } from \"./DialogFormView\";\nimport { FormStorage, IFormStorageData } from \"./FormStorage\";\nimport { FormViewForExtend, IFormViewProps } from \"./FormView\";\n\nexport type TFormViewProps =\n Optional, keyof WithPermissionContext>\n | Optional, keyof WithPermissionContext>;\n\n/** Use form anywhere, without preparing form storage */\ninterface IProps extends WithOData, WithPermissionContext, PropsWithTheme {\n getDef: IGetDefinitionOptionalTranslation;\n data?: IEntity;\n // expects correct translations to be loaded and provided\n t: TFunction;\n bindingContext: BindingContext;\n\n history?: History.History;\n initialData?: IFormStorageData;\n formViewProps?: Partial;\n formView?: React.ComponentType;\n onAfterLoad?: (formStorage: FormStorage) => void;\n onCancel?: () => void;\n\n formRef?: React.Ref>;\n showButtons?: boolean;\n ignoreVariants?: boolean;\n\n onAfterSave?: (isNew: boolean, preventTableViewRefresh?: boolean) => void;\n\n className?: string;\n}\n\nclass PlugAndPlayForm extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n storage: FormStorage;\n def: IDefinition;\n formRef = React.createRef>();\n\n constructor(props: IProps, context: IAppContext) {\n super(props, context);\n\n this.def = this.props.getDef(this.context);\n\n this.storage = new FormStorage({\n id: this.def.form.id,\n oData: this.props.oData,\n t: this.props.t,\n theme: this.props.theme,\n context: context,\n history: this.props.history,\n initialHistoryState: this.props.history?.location?.state,\n refresh: () => {\n this.forceUpdate();\n this.formRef.current?.forceUpdate();\n }\n });\n }\n\n componentDidMount() {\n this.init();\n }\n\n init = async () => {\n if (this.props.getDef.translationFiles) {\n // first load translations, then get definition\n await i18next.loadNamespaces(this.props.getDef.translationFiles);\n // retrieve the definition again, now with surely loaded translations\n this.def = this.props.getDef(this.context);\n }\n\n await this.storage.init({\n definition: this.def.form,\n bindingContext: this.props.bindingContext,\n data: this.props.data,\n ignoreVariants: this.props.ignoreVariants !== false,\n onAfterLoad: () => {\n // stores initial data before onAfterLoad on FormView is called\n if (this.props.initialData) {\n this.storage.store({\n ...this.props.initialData,\n entity: {\n ...this.storage.data.entity,\n ...this.props.initialData?.entity\n },\n customData: {\n ...this.storage.data.customData,\n ...this.props.initialData?.customData\n }\n });\n }\n }\n });\n\n this.props.onAfterLoad?.(this.storage);\n\n this.storage.refresh();\n };\n\n handleFormRef = (ref: FormViewForExtend) => {\n handleRefHandlers(ref, this.formRef, this.props.formRef);\n };\n\n render() {\n const FormView = this.props.formView;\n\n return (\n );\n }\n}\n\nexport default withTheme(withPermissionContext(withOData(PlugAndPlayForm)));","import BindingContext from \"../odata/BindingContext\";\nimport { FormStorage } from \"../views/formView/FormStorage\";\nimport React from \"react\";\n\ninterface ICustomGroupRenderWrapperProps {\n bindingContext: BindingContext;\n storage: FormStorage;\n children: () => React.ReactNode;\n}\n\nexport class RefRegistrar extends React.Component {\n constructor(props: ICustomGroupRenderWrapperProps) {\n super(props);\n props.storage.addRef(this, props.bindingContext);\n }\n\n componentWillUnmount() {\n this.props.storage.removeRef(this, this.props.bindingContext);\n }\n\n render() {\n return this.props.children();\n }\n}","import React from \"react\";\nimport { FormStorage, IGroupStatus } from \"../../../views/formView/FormStorage\";\nimport { IFieldDef } from \"../FieldInfo\";\nimport { getCollapsedGroupId } from \"../Smart.utils\";\n\n\nexport interface ISmartCollapsedBaseProps {\n storage: FormStorage;\n def: IFieldDef;\n onExpand?: (isExpanded: boolean, id: string) => void;\n}\n\nexport function getCollapsedGroupStatus(storage: FormStorage, def: IFieldDef): IGroupStatus {\n return storage.data.status?.groups[getCollapsedGroupId(def)] ?? {};\n}\n\nabstract class SmartCollapsedBase extends React.Component {\n\n getStatus(): IGroupStatus {\n return getCollapsedGroupStatus(this.props.storage, this.props.def);\n }\n\n handleToggle = (): void => {\n const status = this.getStatus() || {};\n const id = getCollapsedGroupId(this.props.def);\n const isExpanded = !status?.isExpanded;\n this.props.storage.setGroupStatus({\n ...status,\n isExpanded\n }, id);\n\n this.props.onExpand?.(isExpanded, id);\n };\n}\n\nexport default SmartCollapsedBase;","import React from \"react\";\nimport { CollapseWrapper } from \"../../formGroup\";\nimport TestIds from \"../../../testIds\";\nimport FieldGroup, { FieldGroupPaddingType } from \"../../fieldGroup/FieldGroup\";\nimport SmartCollapsedBase, { ISmartCollapsedBaseProps } from \"./SmartCollapsedBase\";\n\ninterface IProps extends ISmartCollapsedBaseProps {\n hasEditableFields: boolean;\n}\n\nclass SmartCollapsedFormGroup extends SmartCollapsedBase {\n\n render() {\n const { hasEditableFields, children } = this.props;\n const { isCreating, isExpanded } = this.getStatus();\n\n return isExpanded ? (\n \n \n {children}\n \n \n ) : null;\n }\n}\n\nexport default SmartCollapsedFormGroup;\n","import SmartCollapsedBase, { ISmartCollapsedBaseProps } from \"./SmartCollapsedBase\";\nimport { CreatingTitle, ExpandIconBackground, ExpandIconParent, ExpandIconWrapper } from \"../../formGroup\";\nimport { IconButton } from \"../../button\";\nimport { MoreOptionsIcon } from \"../../icon\";\nimport React from \"react\";\n\ninterface IProps extends ISmartCollapsedBaseProps {\n isCollapsedGroupDisabled?: boolean;\n}\n\nclass SmartCollapseToggle extends SmartCollapsedBase {\n\n render() {\n const { isCollapsedGroupDisabled, def } = this.props;\n const status = this.getStatus();\n\n return (\n \n \n \n \n \n \n \n \n {status.isCreating &&\n {def.creatingTitle}\n }\n \n );\n }\n}\n\nexport default SmartCollapseToggle;","import { IconButton } from \"@components/button\";\nimport { LastFieldWrapper, RightIconButtonGroup } from \"@components/fastEntry/FastEntry.styles\";\nimport { CloseIcon } from \"@components/icon\";\nimport { isDefined } from \"@utils/general\";\nimport React from \"react\";\n\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport {\n FieldVisibility,\n FormMode,\n GroupedField,\n IconSize,\n LabelStatus,\n NavigationSource,\n Sort,\n TextAlign\n} from \"../../../enums\";\nimport { TValue } from \"../../../global.types\";\nimport { FieldAdditionalData, Model } from \"../../../model/Model\";\nimport { RefRegistrar } from \"../../../model/RefRegistrar\";\nimport BindingContext, { createPath, IEntity } from \"../../../odata/BindingContext\";\nimport TestIds from \"../../../testIds\";\nimport memoizeOne from \"../../../utils/memoizeOne\";\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { ITableDef } from \"../../../views/table/TableView.utils\";\nimport {\n ButtonGroupStyled,\n GroupedKey,\n SmartFieldInHeaderStyled,\n SmartFieldStyled,\n SwitchInHeaderStyled\n} from \"../../formGroup\";\nimport FormGroup from \"../../formGroup/FormGroup\";\nimport { IFormGroupAction } from \"../../formGroup/FormGroupActions\";\nimport FieldsWrapper from \"../../inputs/field/FieldsWrapper\";\nimport { SwitchType } from \"../../inputs/switch/Switch\";\nimport {\n getInfoValue,\n ICustomizationData,\n IFieldDef,\n isVisible,\n TInfoValue,\n TTemporalDialogSettings\n} from \"../FieldInfo\";\nimport SmartFastEntryList, { ActionType, addEmptyLineItem, ISmartFastEntriesActionEvent } from \"../smartFastEntryList\";\nimport { ISmartFieldBlur, ISmartFieldChange } from \"../smartField/SmartField\";\nimport { getTooltip } from \"../smartField/SmartFieldUtils\";\nimport { IActionItem, SmartActionButton } from \"./SmartActionButton\";\nimport { getCollapsedGroupStatus } from \"./SmartCollapsedBase\";\nimport SmartCollapsedFormGroup from \"./SmartCollapsedFormGroup\";\nimport SmartCollapseToggle from \"./SmartCollapseToggle\";\nimport SmartFormGroupBase, { ISmartFormGroupBaseProps } from \"./SmartFormGroupBase\";\n\nexport interface IDependentFieldDef {\n from: IFieldDef;\n to: IFieldDef;\n parseData?: (arg: IEntity) => any;\n navigateFrom?: NavigationSource;\n value?: TValue;\n}\n\nexport interface ISmartFormGroupActionEvent {\n id: string;\n groupId: string;\n}\n\nexport interface IFormLineItemsDef {\n /** Used for navigation to items without own EntityType */\n collection: string;\n /** Columns displayed in line item */\n columns: IFieldDef[];\n additionalFields?: IFieldDef[];\n // order is required to make sure, backend will always return the items in the right order,\n // and so that we can use it to manually sort the items in AuditTrail\n order: string;\n orderDirection?: Sort;\n /** Flag if user can manually change the order, e.g. MinorAsset->Items are ordered by transaction date */\n canReorder?: TInfoValue;\n /** Indicates whether first item is marked as primary. It displays colored background with title. */\n containsPrimary?: boolean;\n /* Indicates whether the content is collapsible, so only first item is visible at first */\n isCollapsible?: boolean;\n /* Indicates whether the last item can be removed (remove button is not disabled). Disabled by default.\n Last item can be removed on \"Type B\" line items, which allow to add items from external source (e.g. editable window) */\n isTheOnlyItemRemovable?: boolean;\n /* Indicates if there should be rendered switch in group header, which removes all items at once / adds first item */\n isGroupToggleable?: boolean;\n /* Indicates whether whole lineItems group is readonly (not every single line) */\n isReadOnly?: TInfoValue;\n /* Indicates whether particular line item can be removed (so remove action icon is displayed for it) */\n isItemCloneable?: TInfoValue;\n isItemRemovable?: TInfoValue;\n isItemVisible?: TInfoValue;\n isItemDisabled?: TInfoValue;\n /*Indicates whether to render checkbox before the FastEntry item. Used to select items for custom action.*/\n isItemSelectable?: TInfoValue;\n isDisabled?: TInfoValue;\n /* Indicates whether FastEntry list should show add button and add items */\n canAdd?: TInfoValue;\n /* Whether the add button should be disabled */\n isAddDisabled?: TInfoValue;\n isAddButtonTransparent?: boolean;\n /** For single line only one label line is used. True by default. **/\n useLabelWrapping?: boolean;\n /** Never virtualize items */\n disableVirtualization?: boolean;\n\n /** Display line number in the beginning of each row*/\n showLineNumbers?: boolean;\n\n /** Adds icon which will open extended group actions. So far, only used for custom line items actions.*/\n actions?: TSmartFormGroupAction[];\n /** Adds custom buttons next to the \"Add\" button. Fires \"onLineItemsAction\" event, like other actions/customAction */\n customActionButtons?: IActionItem[];\n disableFieldsOnActiveAction?: boolean;\n /** Renders custom items summary next to the \"Add\" button. */\n itemsSummaryRenderer?: TInfoValue;\n /** Visibility is controlled via variant management/config dialog */\n shouldShowItemsSummary?: boolean;\n\n /** Dialog settings for whole temporal line item */\n temporalDialog?: TTemporalDialogSettings;\n\n /** Custom renderer for collections */\n render?: (args: IGroupRenderFn) => React.ReactElement;\n}\n\n\nexport type TFormTable =\n Omit\n & {\n id: string;\n columns: IFieldDef[];\n isSimplified?: boolean;\n preventAutoReset?: boolean;\n};\nexport type TSmartFormGroupAction = (Omit & {\n confirmLabel: string,\n isDisabled?: TInfoValue\n});\n\nexport interface IFormGroupDef {\n id: string;\n\n title?: TInfoValue;\n tooltip?: ((storage?: FormStorage) => React.ReactElement) | string;\n showGroupDivider?: boolean;\n isLightText?: boolean;\n\n customizationData?: ICustomizationData;\n /** Removable group renders remove icon. */\n isRemovable?: TInfoValue;\n isVisible?: TInfoValue;\n\n tabs?: IFormGroupDef[];\n\n /** Defines group of fields that are together in one row */\n rows?: (IFieldDef[])[];\n afterContent?: IFieldDef[];\n /** If defined, multiple groups are rendered, one for each item in given collection.\n * Other parameters (title, rows...) are reused in the groups. */\n collection?: string;\n /** If collection is used, collectionOrder is required to make sure, backend will always return the items in the right order,\n * and so that we can use it to manually sort the items in AuditTrail\n * */\n collectionOrder?: string;\n /** Use if you need different header for every item in collection */\n collectionItemTitle?: string | ((index: number, item: IEntity, storage: FormStorage) => string);\n /** Defines collection of items rendered as line items */\n lineItems?: IFormLineItemsDef;\n /** todo: remove this exception\n * Sometimes, we use group without label to place collapsedRows on other than last place in a group.\n * In that case, we want the group to have same bottom padding as fields would otherwise have between themselves,\n * instead of the bigger gap that we have between groups. */\n isSmallBottomMargin?: boolean;\n /**\n * If group is toggleable, this should be id of property,\n * which will be set to true / false (switch is displayed in header when configured),\n * Note: property should be added to additionalProperties, so it's definition is correctly load - FormStorage\n * doesn't work directly with this property */\n togglePropPath?: string;\n\n // only main table supports customizing (columnDefinition)\n // tabs in tables should have all their settings directly in columns\n table?: TFormTable;\n\n /* List of action items displayed at the end of the group. Click on the item emits event on storage */\n actions?: IActionItem[];\n /** Alignment of the actions button group. Right by default. */\n actionsAlignment?: TextAlign;\n}\n\ninterface IProps extends ISmartFormGroupBaseProps {\n isInEdit?: boolean;\n\n onExpand: (isExpanded: boolean, id: string) => void;\n onRemove?: (bindingContext: BindingContext) => void;\n onLineItemsChange: (args: ISmartFieldChange) => void;\n onLineItemsAction: (args: ISmartFastEntriesActionEvent) => void;\n onGroupAction?: (args: ISmartFormGroupActionEvent) => void;\n}\n\nexport interface IGroupRenderFn {\n storage: Model;\n props: ISmartFormGroupRenderProps;\n groupId: string;\n}\n\nexport interface ISmartFormGroupRenderProps extends Pick, Pick {\n groupId: string;\n isReadOnly: boolean;\n customAction: TSmartFormGroupAction,\n onCustomActionFinish: () => void;\n customFooterContent: React.ReactNode;\n isLight: boolean;\n bindingContext: BindingContext;\n onBlur: (args: ISmartFieldBlur) => Promise;\n onChange: (args: ISmartFieldChange) => void;\n onAction: (args: ISmartFastEntriesActionEvent) => void;\n}\n\nexport default class SmartFormGroup extends SmartFormGroupBase {\n static contextType = AppContext;\n\n handleExpand = (isExpanded: boolean, id: string): void => {\n this.props.onExpand?.(isExpanded, id);\n this.forceUpdate();\n };\n\n renderField = (rows: IFieldDef[], opts: {\n isInOpenGroup: boolean,\n isCreating?: boolean,\n collapseToggle?: React.ReactElement,\n isLastRow?: boolean\n }): React.ReactElement[] => {\n let multiArray: React.ReactElement[] = [];\n const array: React.ReactElement[] = [];\n let currentArray = array;\n\n const { isInOpenGroup, isCreating, collapseToggle, isLastRow } = opts;\n\n const _isGroupedFieldStart = () => {\n return [GroupedField.MultiStart, GroupedField.NoWrapStart, GroupedField.WrappedMultiStart].includes(groupedField);\n };\n\n const _isGroupFieldEnd = () => {\n return [GroupedField.MultiEnd, GroupedField.NoWrapEnd, GroupedField.WrappedMultiEnd].includes(groupedField);\n };\n\n const isRemovable = getInfoValue(this.props.def, \"isRemovable\", {\n storage: this.props.storage\n });\n\n const _addField = (field: IFieldDef, bc: BindingContext, isLast?: boolean) => {\n const isMultiMiddle = !groupedField && isMultiField;\n const addGroupedToggle = isLast && collapseToggle;\n\n if (_isGroupedFieldStart() || (addGroupedToggle && !isMultiField)) {\n multiArray = [];\n currentArray = multiArray;\n if ([GroupedField.MultiStart, GroupedField.WrappedMultiStart].includes(groupedField)) {\n isMultiField = true;\n }\n }\n\n const smartField =\n ;\n\n if (isLast && isLastRow && isRemovable) {\n currentArray.push(\n {smartField}\n \n \n \n \n \n );\n } else {\n currentArray.push(smartField);\n }\n\n if (addGroupedToggle) {\n currentArray.push(collapseToggle);\n }\n\n if ((_isGroupFieldEnd() || addGroupedToggle) && multiArray?.length > 0) {\n const shouldAddGroup = addGroupedToggle || groupedField !== GroupedField.WrappedMultiEnd;\n if (shouldAddGroup) {\n array.push({multiArray});\n } else {\n // no grouping when using WrappedMultiEnd, just use sharp edges on single fields\n array.push(...multiArray);\n }\n currentArray = array;\n isMultiField = false;\n multiArray = [];\n }\n };\n let groupedField: GroupedField;\n let isMultiField = false;\n for (let i = 0; i < rows.length; i++) {\n const field = this.getFieldDefinition(rows[i]);\n const bc = this.props.bindingContext.navigate(field.id);\n\n groupedField = getInfoValue(field, \"groupedField\", {\n bindingContext: bc,\n storage: this.props.storage\n });\n\n if (field.fieldVisibility && this.props.storage.formMode !== FormMode.AuditTrail) {\n if ((this.props.isInEdit && field.fieldVisibility === FieldVisibility.CreateOnly) ||\n (!this.props.isInEdit && field.fieldVisibility === FieldVisibility.EditOnly)) {\n continue;\n }\n }\n\n // use props bindingContext, not storage bindingContext\n // group can be navigated inside the collection\n if (bc.getParent()?.isCollection()) {\n const path = bc.getPath();\n const values = this.props.storage.getValue(bc.getParent()) || [];\n let newItemsCount = 0;\n for (const expandedField of values) {\n const key = bc.getKeyPropertyName();\n const isNew = !expandedField[key];\n const fieldBc = bc.getParent().addKey(expandedField[key] || newItemsCount++, isNew).navigate(path);\n\n _addField(field, fieldBc);\n }\n\n continue;\n }\n\n _addField(field, bc, i === rows.length - 1);\n }\n\n return array;\n };\n\n // rowsTop -- groups.rows has nested array\n renderFields = (rowsTop: (IFieldDef[])[], isInOpenGroup: boolean, isCreating = false): React.ReactElement[] => {\n return (rowsTop || []).map((rows, index) => {\n if (!rows || !rows.length) {\n return null;\n }\n const lastField = this.getFieldDefinition(rows[rows.length - 1]);\n\n const {\n hasVisibleCollapsedFields,\n hasEnabledCollapsedFields\n } = this.getCollapsedFieldsVisibility(lastField);\n\n const collapseToggle = hasVisibleCollapsedFields && (lastField.collapsedRows || []).length > 0 && isInOpenGroup && (\n \n );\n\n const isRemovable = getInfoValue(this.props.def, \"isRemovable\", {\n storage: this.props.storage\n });\n const isLastRow = index === rowsTop.length - 1;\n\n return (\n \n {this.renderField(rows, { isInOpenGroup, isCreating, collapseToggle, isLastRow })}\n {!isRemovable && this.props.def.afterContent && isLastRow &&\n this.renderField(this.props.def.afterContent, {\n isInOpenGroup,\n isCreating\n })\n }\n \n {isRemovable && this.props.def.afterContent && isLastRow &&\n \n {this.renderField(this.props.def.afterContent, { isInOpenGroup })}\n \n }\n {this.renderCollapsedGroup(lastField, hasVisibleCollapsedFields, !hasEnabledCollapsedFields)}\n );\n });\n };\n\n getCollectionBindingContext = memoizeOne((collection: IFormLineItemsDef) => {\n return this.props.bindingContext.navigate(collection.collection);\n }, () => [this.props.bindingContext.toString()]);\n\n // toggle switch of toggleable line items\n handleGroupToggle = (checked: boolean) => {\n const { def, storage } = this.props;\n const { id, lineItems } = def;\n const bindingContext = storage.data.bindingContext.navigate(lineItems.collection);\n const affectedItems = storage.getValue(bindingContext) || [];\n\n // store temporarily removed items to storage, so it's bound to the entity\n const localContextPath = BindingContext.localContext(createPath(id, lineItems.collection, \"removedItems\"));\n\n if (checked) {\n // user turns line items group on. It should return back previous items (if set) or one empty item\n const removedItems = storage.getValueByPath(localContextPath) || [];\n if (!removedItems.length) {\n // add new empty item\n const newItem = addEmptyLineItem({\n storage,\n bindingContext,\n newItemsCount: 1,\n index: 1,\n order: lineItems.order,\n columns: lineItems.columns,\n context: this.context\n });\n removedItems.push(newItem);\n }\n this.props.onLineItemsAction?.({\n bindingContext,\n actionType: ActionType.Add,\n groupId: id,\n items: removedItems,\n affectedItems: removedItems\n });\n } else {\n // closes the group, removes all items, saves them for later restoration if needed\n this.props.onLineItemsAction?.({\n bindingContext,\n actionType: ActionType.Remove,\n groupId: id,\n items: [],\n affectedItems\n });\n // save removed items for later restoration\n storage.setValueByPath(localContextPath, affectedItems);\n }\n }\n\n renderLineItems = (collection: IFormLineItemsDef): React.ReactElement => {\n const { storage } = this.props;\n const bindingContext = this.getCollectionBindingContext(collection);\n const { selectedOption } = storage.getGroupStatus(this.props.def.id);\n\n const customAction = selectedOption ? this.props.def.lineItems.actions.find(action => action.id === selectedOption) : null;\n\n // todo: do we want to support table in audit trail?? If so, remove the last condition above and prepare audit\n // trail to render changes in table.\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n\n const isReadOnly = !isAuditTrail && (storage.isReadOnly || getInfoValue(collection, \"isReadOnly\", {\n storage,\n data: storage.data.entity\n }));\n\n const props = {\n groupId: this.props.def.id,\n useLabelWrapping: collection.useLabelWrapping !== false,\n showLineNumbers: !selectedOption && collection.showLineNumbers,\n isCollapsible: collection.isCollapsible,\n isReadOnly: isReadOnly,\n //TODO: for safety we won't turn this on now due to the lack of time for proper testing.. turn on after release\n //renderAsFastEntryForReadOnly: !(collection.isReadOnly === true || storage.isReadOnly),\n containsPrimary: collection.containsPrimary,\n disableVirtualization: collection.disableVirtualization,\n customAction: customAction,\n onCustomActionFinish: this.handleCustomActionFinish,\n customActionButtons: collection.customActionButtons,\n disableFieldsOnActiveAction: collection.disableFieldsOnActiveAction,\n customFooterContent: collection.shouldShowItemsSummary && getInfoValue(collection, \"itemsSummaryRenderer\", {\n bindingContext: this.props.bindingContext.navigate(this.props.def.lineItems.collection),\n storage: this.props.storage,\n context: this.context\n }),\n isItemVisible: collection.isItemVisible,\n isItemRemovable: collection.isItemRemovable,\n isItemCloneable: collection.isItemCloneable,\n isItemDisabled: collection.isItemDisabled,\n isItemSelectable: collection.isItemSelectable,\n isDisabled: collection.isDisabled,\n isLight: !!selectedOption,\n storage: this.props.storage,\n bindingContext: bindingContext,\n // when ordered by Id, only use it to fetch from backend, but ignore it here.\n // it would cause problems in SmartFastEntry list, because Id would collide with new items #id\n order: collection.order === \"Id\" ? null : collection.order,\n orderDirection: collection.orderDirection,\n canReorder: !isAuditTrail && !selectedOption && (collection.canReorder ?? true),\n canAdd: collection.canAdd ?? true,\n isAddDisabled: collection.isAddDisabled,\n isAddButtonTransparent: collection.isAddButtonTransparent,\n isTheOnlyItemRemovable: collection.isTheOnlyItemRemovable,\n isGroupToggleable: collection.isGroupToggleable,\n columns: collection.columns,\n onBlur: this.handleBlur,\n onChange: this.props.onLineItemsChange,\n onAction: this.props.onLineItemsAction\n };\n\n if (collection.render) {\n return \n {() => {\n return collection.render({\n storage: this.props.storage,\n props,\n groupId: this.props.def.id\n }\n );\n }}\n ;\n }\n\n return (\n \n );\n };\n\n getVisibleActions(): IActionItem[] {\n const actions = this.props.def.actions || [];\n const { storage } = this.props;\n return actions.filter(action => {\n const { isDisabled, ...info } = action;\n return isVisible({ info, storage, context: this.props.storage.context });\n });\n }\n\n handleCustomButtonAction = (id: string): void => {\n this.props.onGroupAction?.({ id, groupId: this.props.def.id });\n };\n\n isFormGroupOptionDisabled = (action: TSmartFormGroupAction): boolean => {\n if ((typeof action.isDisabled === \"boolean\" && action.isDisabled) || this.props.bindingContext.isNew()) {\n return true;\n }\n\n return getInfoValue(action, \"isDisabled\", {\n bindingContext: this.props.bindingContext.navigate(this.props.def.lineItems.collection),\n storage: this.props.storage,\n context: this.context\n });\n };\n\n getFormGroupOptions = () => {\n if (this.props.storage.isReadOnly || this.props.storage.formMode === FormMode.AuditTrail) {\n return null;\n }\n\n return this.props.def.lineItems?.actions?.map((action) => {\n return {\n ...action,\n isDisabled: this.isFormGroupOptionDisabled(action)\n };\n });\n };\n\n getTitle = (): string => {\n if (isDefined(this.props.title)) {\n return this.props.title;\n }\n return getInfoValue(this.props.def, \"title\", {\n storage: this.props.storage\n });\n };\n\n renderActions = (visibleActions: IActionItem[]): React.ReactElement => {\n if (!visibleActions.length || this.props.storage.formMode === FormMode.AuditTrail || this.props.isSimple) {\n return null;\n }\n return (\n \n {visibleActions.map(action => (\n ))}\n \n );\n };\n\n getFixedHeaderFieldProps = memoizeOne(() => ({\n labelStatus: LabelStatus.Removed,\n hasPadding: false\n }));\n\n renderAdditionalHeaderContent = (): React.ReactElement => {\n const { togglePropPath, lineItems } = this.props.def;\n\n if (togglePropPath) {\n const { storage } = this.props;\n const bc = storage.data.bindingContext.navigate(togglePropPath);\n return (\n \n );\n }\n if (lineItems?.isGroupToggleable) {\n const { storage } = this.props;\n const items = storage.getValueByPath(lineItems.collection);\n const hasLineItems = !!items?.length;\n return (\n \n );\n }\n return null;\n };\n\n handleGroupRemove = (): void => {\n this.props.onRemove?.(this.props.bindingContext);\n };\n\n handleOptionClick = (optionId: string): void => {\n this.props.storage.setGroupStatus({ selectedOption: optionId }, this.props.def.id);\n this.forceUpdate();\n };\n\n handleCustomActionFinish = (): void => {\n this.props.storage.setGroupStatus({ isMenuOpened: false, selectedOption: null }, this.props.def.id);\n this.forceUpdate();\n };\n\n handleOptionsButtonToggle = (): void => {\n const { storage } = this.props;\n const groupId = this.props.def.id;\n const { isMenuOpened } = storage.getGroupStatus(groupId);\n storage.setGroupStatus({ isMenuOpened: !isMenuOpened }, groupId);\n this.forceUpdate();\n };\n\n renderCollapsedGroup(def: IFieldDef, showCollapsedGroup = true, isCollapsedGroupDisabled = false): React.ReactElement {\n if (!def?.collapsedRows?.length) {\n return null;\n }\n\n const status = getCollapsedGroupStatus(this.props.storage, def);\n const isCreating = status?.isCreating;\n\n return showCollapsedGroup && (\n \n {this.renderFields(def.collapsedRows, false, isCreating)}\n \n );\n }\n\n render() {\n const { storage } = this.props;\n let auditTrailData;\n const isAuditTrail = storage.formMode === FormMode.AuditTrail;\n if (isAuditTrail) {\n auditTrailData = storage.getAdditionalFieldData(this.props.bindingContext, FieldAdditionalData.AuditTrailData);\n }\n\n const hasVisibleFields = this.getFieldsVisibility();\n const visibleActions = this.getVisibleActions();\n\n // todo: how we can handle this better for audit trail? Do we want to show all fields or only fields, which are\n // visible at least in one form??\n if (!hasVisibleFields && !isAuditTrail && !visibleActions.length) {\n return null;\n }\n const { isMenuOpened, selectedOption } = storage.getGroupStatus(this.props.def.id);\n\n let isWithoutMargin = false;\n if (this.props.def.togglePropPath) {\n isWithoutMargin = !storage.getValueByPath(this.props.def.togglePropPath);\n }\n\n return (\n \n {this.props.def.rows &&\n \n {this.renderFields(this.props.def.rows, true)}\n \n }\n {this.props.def.lineItems && this.renderLineItems(this.props.def.lineItems)}\n {this.renderActions(visibleActions)}\n \n );\n }\n}","import React from \"react\";\n\nimport { FormStorage } from \"../../../views/formView/FormStorage\";\nimport { FormTabs } from \"../../../views/formView/FormView.styles\";\nimport { GroupHeader } from \"../../formGroup/GroupHeader\";\nimport { IFormGroupDef } from \"./SmartFormGroup\";\n\ninterface ISmartFormTabsProps {\n storage: FormStorage;\n group: IFormGroupDef;\n index: number;\n renderGroup: (group: IFormGroupDef, index: number, title?: string, isInTab?: boolean) => React.ReactElement;\n}\n\n// standalone component, so that we can use storage.addGroupRef on it to be re-renderable via storage.refreshGroupByKey\nexport default class SmartFormTabs extends React.Component {\n handleTabChange = (activeTab: string): void => {\n this.props.storage.setGroupStatus({ activeTab }, this.props.group.id);\n };\n\n render() {\n const { group } = this.props;\n const groupStatus = this.props.storage.getGroupStatus(group.id);\n\n return (\n \n \n {\n return !!groupStatus?.visibleTabs?.[groupDef.id];\n })\n .map((groupDef, i) => {\n return {\n id: groupDef.id,\n title: groupDef.title as string,\n // content has to be memoized, to prevent table rerendering\n content: () => {\n return this.props.renderGroup(groupDef, this.props.index, \"\", true);\n }\n };\n })}\n selectedTabId={groupStatus?.activeTab ?? group.tabs?.[0]?.id}/>\n \n );\n }\n}\n","import React from \"react\";\nimport { IFieldDef } from \"../FieldInfo\";\nimport BindingContext, { IEntity } from \"../../../odata/BindingContext\";\nimport SimpleTableWithPaginator from \"../../simpleTable/SimpleTableWithPaginator\";\nimport { IColumn, ILoadMoreItemsEvent, IRow, ISort } from \"../../table\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { getFormattedValues, prepareColumns } from \"../smartTable/SmartTable.utils\";\nimport { FieldVisibility } from \"../../../enums\";\nimport { IPrepareQuerySettings, prepareQuery } from \"@odata/OData.utils\";\nimport { WithOData, withOData } from \"@odata/withOData\";\nimport { StorageModel } from \"../../../model/StorageModel\";\nimport { IFilterQuery } from \"../../../model/TableStorage\";\nimport { ISimpleTableProps } from \"../../simpleTable\";\nimport { IFieldInfo } from \"@odata/FieldInfo.utils\";\n\ninterface IProps extends WithOData, Pick {\n columns: IFieldDef[];\n bindingContext: BindingContext;\n pageSize?: number;\n storage?: StorageModel;\n renderScrollbar?: boolean;\n initialSortBy?: ISort[];\n filter?: IFilterQuery;\n}\n\ninterface IState {\n currentPage: number;\n rowCount: number;\n columns: IFieldInfo[];\n rows: IRow[];\n busy: boolean;\n width: string;\n}\n\nclass SmartSimpleTable extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps = {\n pageSize: 10\n };\n\n tableRef = React.createRef();\n\n state: IState = {\n currentPage: 0,\n rowCount: null,\n columns: [],\n rows: [],\n busy: true,\n width: null\n };\n\n componentDidMount() {\n this.init();\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (prevState.busy && !this.state.busy && this.tableRef?.current) {\n // fixate width to prevent jumping during loading\n this.setState({\n width: `${this.tableRef?.current.clientWidth + 1}px`\n });\n }\n }\n\n init = async () => {\n const columns = await prepareColumns({\n bindingContext: this.props.bindingContext,\n context: this.context,\n columns: this.props.columns.filter(column => ![FieldVisibility.ExportOnly].includes(column.fieldVisibility))\n });\n\n this.setState({\n columns\n }, this.fetchData);\n };\n\n get sort() {\n return this.props.initialSortBy;\n }\n\n fetchData = async (skip = 0, top = this.props.pageSize) => {\n this.setState({\n busy: true\n });\n\n const sort = this.sort;\n const settings: IPrepareQuerySettings = {};\n\n if (sort?.length > 0) {\n // orderBy is always done on the root level, not in the expands\n settings[\"\"] = { // \"\" for top level settings\n sort\n };\n }\n\n if (this.props.filter?.collectionQueries) {\n for (const key of Object.keys(this.props.filter.collectionQueries)) {\n settings[key] = {\n filter: this.props.filter.collectionQueries[key].query\n };\n }\n }\n\n let query = prepareQuery({\n oData: this.props.oData,\n bindingContext: this.props.bindingContext,\n fieldDefs: this.state.columns,\n settings\n });\n\n query = query.count().skip(skip).top(top);\n\n if (this.props.filter?.query) {\n query.filter(this.props.filter.query);\n }\n\n const result = await query.fetchData();\n const rows = result.value.map((row: IEntity) => this.createRowProperties(row));\n const newRows = [...this.state.rows];\n\n for (let i = skip; i < skip + top; i++) {\n // for non existing rows, pass null explicitly instead of undefined\n // so that we know that onLoadMoreItems isn't supposed to be fired for those rows\n newRows[i] = rows[i - skip] ?? null;\n }\n\n this.setState({\n rowCount: result._metadata.count,\n rows: newRows,\n busy: false,\n width: null\n });\n };\n\n createRowProperties = (row: IEntity) => {\n const idBindingContext = this.props.bindingContext.addKey(row[this.props.bindingContext.getKeyPropertyName()]);\n\n return {\n id: idBindingContext,\n values: getFormattedValues({\n columns: this.state.columns,\n values: row,\n valuesBindingContext: this.props.bindingContext,\n storage: this.props.storage\n })\n };\n };\n\n handlePageChange = (page: number) => {\n this.setState({\n currentPage: page\n });\n };\n\n handleLoadMoreItems = (args: ILoadMoreItemsEvent) => {\n this.fetchData(args.startIndex, args.stopIndex - args.startIndex);\n };\n\n getColumns = (): IColumn[] => {\n return this.state.columns.map(column => ({\n id: column.id,\n textAlign: column.textAlign,\n label: column.label\n }));\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default withOData(SmartSimpleTable);","import { getInfoValue, isVisible, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { getTooltip } from \"@components/smart/smartField/SmartFieldUtils\";\nimport React from \"react\";\n\nimport FormGroup from \"../../components/formGroup\";\nimport SmartFormGroup, { IFormGroupDef, TFormTable } from \"../../components/smart/smartFormGroup/SmartFormGroup\";\nimport SmartFormTabs from \"../../components/smart/smartFormGroup/SmartFormTabs\";\nimport SmartSimpleTable from \"../../components/smart/smartSimpleTable\";\nimport { SmartTable } from \"../../components/smart/smartTable\";\nimport BindingContext, { createBindingContext, IEntity } from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { FormTableWrapper } from \"../table/TableView.styles\";\nimport { getFormTableFilterQuery } from \"./Form.utils\";\nimport { IPureFormProps } from \"./PureForm.types\";\n\nexport type { IPureFormProps };\n\nexport class PureForm extends React.Component {\n renderTable = memoizeOne((groupDef: IFormGroupDef, tableDef: TFormTable, keyBindingContext: BindingContext, isInTab: boolean, key: string) => {\n const { storage } = this.props;\n /**\n * In case storage data binding context is new, we don't want to render the table at all,\n * because the filter won't be valid. If there will be a need to render the table in this case,\n * move the visibility condition from common \"Tabs\" group to all specific table groups, because the inner table\n * group may be re-rendered by resize handler of SmartFormTabs and it doesn't go through the visibility check\n * of the Tabs group. See https://solitea-cz.atlassian.net/browse/DEV-28150\n */\n const isNew = storage.data.bindingContext.isNew();\n // in case storage is busy, we don't want to render the table at all -> may be some action is in progress, so\n // we should not to fire additional requests if the properties might not be valid or incomplete.\n const isBusy = storage.isBusy();\n if (!tableDef.entitySet || isNew || isBusy) {\n return null;\n }\n const bindingContext = createBindingContext(tableDef.entitySet, storage.oData.getMetadata());\n const filterQuery = getFormTableFilterQuery(storage, tableDef, storage.data.bindingContext);\n const table = (\n \n {tableDef.isSimplified ? (\n \n ) : (\n \n )}\n \n );\n\n return isInTab ? (\n \n {table}\n \n ) : (\n \n {table}\n \n );\n });\n\n getGroupTitle = (group: IFormGroupDef, index: number, item: IEntity): TInfoValue => {\n if (typeof group.collectionItemTitle === \"string\") {\n return group.collectionItemTitle;\n }\n\n return group.collectionItemTitle?.(index, item, this.props.storage) ?? group.title;\n };\n\n renderStandardGroup = (group: IFormGroupDef, bindingContext: BindingContext, key: string, title?: string) => {\n const { storage } = this.props;\n const _handleRef = (ref: any) => {\n storage.addGroupRef(ref, group.id);\n };\n return (\n \n );\n };\n\n renderCollection = (group: IFormGroupDef, index: number) => {\n const collectionBc = this.props.storage.data.bindingContext.navigate(group.collection);\n const collection = this.props.storage.getValue(collectionBc) ?? [];\n\n return collection.map((item: IEntity, i: number) => {\n const updatedGroupDef = { ...group };\n updatedGroupDef.title = this.getGroupTitle(group, i, item);\n\n return this.renderStandardGroup(updatedGroupDef, collectionBc.addKey(item), `${index}-${i}`);\n });\n };\n\n renderTabs = (group: IFormGroupDef, index: number) => {\n const _handleRef = (ref: any) => {\n this.props.storage.addGroupRef(ref, group.id);\n };\n\n\n return (\n \n );\n };\n\n renderGroup = (group: IFormGroupDef, index: number, title?: string, isInTab?: boolean) => {\n const { tooltip, ...info } = group;\n if (!this.props.storage.data.fieldsInfo\n || !isVisible({ info, storage: this.props.storage, context: this.props.storage.context })\n ) {\n return null;\n }\n\n if (group.tabs) {\n return this.renderTabs(group, index);\n }\n\n if (group.table) {\n const key = this.props.storage.data.uuid ? `${group.table.id}-${this.props.storage.data.uuid}` : group.table.id;\n return this.renderTable(group, group.table, this.props.storage.data.bindingContext, isInTab, key);\n }\n\n if (group.collection) {\n return this.renderCollection(group, index);\n }\n\n return this.renderStandardGroup(group, this.props.storage.data.bindingContext, index.toString(), title);\n };\n\n render() {\n return (\n

    \n {this.props.storage.getVariant().map((item: IFormGroupDef, i: number) => {\n return this.renderGroup(item, i);\n })}\n
    \n );\n }\n}","import { IInputOnBlurEvent } from \"@components/inputs/input\";\nimport React from \"react\";\n\nimport BusyIndicator from \"../../components/busyIndicator\";\nimport Dialog, { IDialogProps } from \"../../components/dialog/Dialog\";\nimport FieldsWrapper from \"../../components/inputs/field/FieldsWrapper\";\nimport SmartField, { ISmartFieldChange } from \"../../components/smart/smartField/SmartField\";\nimport BindingContext from \"../../odata/BindingContext\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport ConfirmationButtons from \"../table/ConfirmationButtons\";\nimport { FormStorage } from \"./FormStorage\";\n\nexport interface IRenderFieldProps {\n storage: FormStorage;\n bindingContext: BindingContext;\n onBlur: (e: IInputOnBlurEvent) => void;\n onTemporalChange: (args: ISmartFieldChange) => void;\n}\n\nexport interface ITemporalFormDialogProps extends Pick {\n storage: FormStorage;\n fieldPaths: string[][];\n title: string;\n onClose: (isConfirmed: boolean) => void;\n isLoading?: boolean;\n confirmText?: string;\n onChange?: (args: ISmartFieldChange) => void;\n onTemporalChange?: (args: ISmartFieldChange) => void;\n renderField?: (name: string, props: IRenderFieldProps) => React.ReactElement;\n}\n\nexport default class TemporalFormDialog extends React.PureComponent {\n\n getFieldBindingContexts = memoizeOne((): BindingContext[] => {\n const { storage, fieldPaths } = this.props;\n\n return [].concat(...fieldPaths).map(propName => storage.data.bindingContext.navigate(propName));\n });\n\n get isLoading(): boolean {\n return this.props.isLoading || !this.props.storage.loaded || this.props.storage.isBusy();\n }\n\n handleConfirmDialog = async (): Promise => {\n const errors = await this.props.storage.validateFields(this.getFieldBindingContexts());\n if (!errors?.some(e => !!e)) {\n const isConfirmed = await this.props.storage.confirmFields(this.getFieldBindingContexts(), this.props.onChange);\n if (isConfirmed) {\n this.props.onClose(true);\n return;\n }\n }\n this.props.storage.refreshFields();\n };\n\n handleCancel = (): void => {\n this.props.storage.cancelFields(this.getFieldBindingContexts());\n this.props.onClose(false);\n };\n\n handleBlur = (bc: BindingContext, e: IInputOnBlurEvent): void => {\n this.props.storage.validateField(bc)\n .then(() => this.forceUpdate());\n };\n\n handleTemporalChange = (args: ISmartFieldChange): void => {\n const { storage } = this.props;\n this.props.onTemporalChange?.(args);\n storage.handleTemporalChange(args);\n storage.refreshFields();\n };\n\n renderFields = (): React.ReactElement => {\n return (<>\n {this.props.fieldPaths.map((row, idx) => (\n \n {row.map((name) => {\n const { storage } = this.props;\n const bindingContext = storage.data.bindingContext.navigate(name);\n const renderProps = {\n storage,\n bindingContext,\n onBlur: this.handleBlur.bind(this, bindingContext),\n onTemporalChange: this.handleTemporalChange\n };\n\n return this.props.renderField?.(name, renderProps) ?? (\n \n );\n }\n )}\n \n ))}\n );\n };\n\n render = (): React.ReactElement => (\n \n }>\n {!this.isLoading ? (\n <>\n {this.props.children}\n \n {this.renderFields()}\n \n \n ) : }\n \n );\n}","import { LocalSettingsFactory } from \"@utils/LocalSettings\";\n\n/* First icon should be aligned with agenda name's (select in menu) text top */\nexport const ShellBarPadding = 51;\nexport const ShellBarWidth = \"4em\";\n\nconst MainSettingsId = \"MainLocalSettings\";\nexport const VariantId = \"\"; // Local settings support more variants of settings, but we don't need it here\n\nexport interface IMainSettings {\n SubscriptionNotificationClosedAt?: Date;\n}\n\nexport const MainLocalSettings = LocalSettingsFactory(MainSettingsId);","export enum ExtendedShellContent {\n Add = \"add\",\n Applications = \"applications\",\n DashboardSettings = \"dashboardSettings\",\n Help = \"help\",\n None = \"none\",\n Notifications = \"notifications\",\n Search = \"search\",\n Settings = \"settings\",\n UserSettings = \"usersettings\"\n}\n\nexport const SHELL_NOTIFICATION_ID = \"ShellNotification\";","import styled from \"styled-components/macro\";\nimport { T_TITLE_2 } from \"../../global.style\";\n\nexport const StyledErrorPage = styled.div`\n height: 100vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n transform: translateY(-120px);\n align-items: center;\n & > div {\n width: 400px;\n height: 400px;\n }\n & > h2 {\n ${T_TITLE_2};\n color: ${props => props.theme.C_ACT_thick_line};\n white-space: pre-wrap;\n text-align: center;\n }\n`;","import React, { ReactElement } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BeaverAnim, MoleAnim } from \"../../animations/Animations\";\nimport { QueryParam } from \"../../enums\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\nimport { StyledErrorPage } from \"./NotFound.styles\";\n\nexport function NotFound(): ReactElement {\n const { t } = useTranslation(\"Common\");\n const entityWasDeleted = getQueryParameters()?.[QueryParam.EntityWasDeleted] === \"true\";\n return (\n \n \n

    {t(`Common:Errors.${entityWasDeleted ? \"EntityWasDeleted\" : \"Error404\"}`)}

    \n
    \n );\n}\n\nexport function NoPermission(): ReactElement {\n const { t } = useTranslation(\"Common\");\n return (\n \n \n

    {t(\"Common:Errors.Error403\")}

    \n
    \n );\n}","import { IAlertProps } from \"@components/alert/Alert\";\nimport { IPopperOptions } from \"@components/popperWrapper\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { Button, ButtonGroup, IProps as IButtonProps } from \"../../components/button\";\n\nexport interface IProps {\n onConfirm: () => void;\n onCancel: () => void;\n confirmText?: string | React.ReactElement;\n cancelText?: string | React.ReactElement;\n isDisabled?: boolean;\n isLight?: boolean;\n isTransparent?: boolean;\n ignoreTheme?: boolean;\n disabledAlert?: IAlertProps;\n cancelButtonProps?: Partial;\n confirmButtonProps?: Partial;\n useWrapper?: boolean;\n}\n\nexport const buttonAlertPopperOptions: IPopperOptions = {\n placement: \"bottom\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 8]\n }\n }\n ]\n};\n\nclass ConfirmationButtons extends React.PureComponent {\n getDisableAlert = (): IAlertProps => {\n return this.props.isDisabled ? this.props.disabledAlert : null;\n };\n\n render() {\n const Wrapper = this.props.useWrapper ? ButtonGroup : React.Fragment;\n return (\n // ButtonGroup can be replaced with fragment,\n // if we improve Toolbar to not use components but custom item definitions instead (or dedicated item type for confirmation buttons)\n \n {this.props.children}\n {this.props.onCancel && }\n \n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(ConfirmationButtons);","import styled, { css } from \"styled-components/macro\";\nimport { getFocusBorderElement, T_PLAIN_small, T_PLAIN_tiny } from \"../../global.style\";\nimport { transparentize } from \"polished\";\n\ninterface ISlider {\n pos?: string;\n width?: string;\n hoverOnly?: boolean;\n isFirst?: boolean;\n}\n\nexport const StyledSlider = styled.div.attrs(props => ({\n style: { width: props.width }\n}))`\n display: flex;\n flex-direction: column;\n align-items: flex-start; \n position: relative; \n`;\n\nexport const Line = styled.div`\n position: relative;\n width: 100%;\n height: 16px;\n display: flex;\n align-items: center;\n cursor: pointer;\n // space for labels\n margin-top: 19px;\n`;\n\nexport const Background = styled.div`\n position: relative;\n width: 100%;\n height: 3px; \n border-radius: ${props => props.theme.borderLargeRadius};\n background-color: ${props => props.theme.C_ACT_hover_without_opacity};\n`;\n\ninterface IValueRange {\n left?: string;\n right?: string;\n}\n\nexport const ValueRange = styled.div.attrs(props => ({\n style: {\n clipPath: `polygon(${props.left} 0, calc(100% - ${props.right}) 0, calc(100% - ${props.right}) 100%, ${props.left} 100%)`\n }\n}))`\n position: absolute;\n left: 0;\n right: 0;\n height: 100%;\n border-radius: ${props => props.theme.borderLargeRadius};\n background: ${props => props.theme.C_BG_progressbar};\n`;\n\nexport const LabelWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Label = styled.div`\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translate(-50%, -100%);\n white-space: nowrap;\n ${T_PLAIN_small};\n \n ${props => props.hoverOnly && css`\n visibility: hidden;\n `} \n`;\n\nexport const StyledThumb = styled.div.attrs(props => ({\n style: { left: props.pos }\n}))`\n position: absolute;\n \n width: 13px;\n height: 16px;\n \n top: 50%; \n transform: translate(-50%, -50%);\n \n ${getFocusBorderElement({ keyboardOnly: true, offset: 2 })};\n \n .slider_x0020_styl {\n stroke: ${props => transparentize(0.5, props.theme.C_ACT_main)};\n fill: ${props => props.theme.C_ACT_hover_without_opacity};\n }\n \n &:hover, &:focus {\n .slider_x0020_styl {\n stroke: ${props => props.theme.C_ACT_main};\n }\n \n ${Label}{\n visibility: visible;\n }\n }\n \n &:active {\n .slider_x0020_styl {\n stroke: ${props => props.theme.C_ACT_main};\n fill: ${props => props.theme.C_ACT_main};\n }\n }\n`;\n\nexport const Mark = styled.div.attrs(props => ({\n style: { left: props.pos }\n}))`\n position: absolute;\n height: 7px;\n width: 1px;\n transform: translateX(-50%);\n background-color: ${props => transparentize(0.5, props.theme.C_ACT_main)};\n`;\n\nexport const MarksLabels = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n margin-top: 3px;\n`;\n\nexport const MarkLabel = styled.span.attrs(props => ({\n style: { left: props.pos }\n}))`\n position: ${props => props.isFirst ? \"relative\" : \"absolute\"};\n transform: translateX(-50%);\n ${T_PLAIN_tiny};\n`;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgThumb(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Vrstva_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: 0,\n y: 0,\n viewBox: \"0 0 14 18\",\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 className: \"slider_x0020_styl\",\n d: \"M13 3.5C13 2.1 11.9 1 10.5 1h-7C2.1 1 1 2.1 1 3.5v7.3c0 .6.1 1.2.6 1.6l4 4c.8.8 2 .8 2.8 0l4-4c.4-.4.6-1 .6-1.6V3.5z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgThumb);\nexport default __webpack_public_path__ + \"static/media/thumb.2132f9762034ab0300df5a27cd7e318c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback } from \"react\";\nimport {\n Background,\n Label,\n Line,\n Mark,\n MarkLabel,\n MarksLabels,\n StyledSlider,\n StyledThumb,\n ValueRange\n} from \"./Slider.styles\";\nimport { ReactComponent as ThumbSvg } from \"./thumb.svg\";\nimport animationFrameThrottle from \"../../utils/animationFrameThrottle\";\nimport { TRecordType } from \"../../global.types\";\nimport { clamp, getClosestValueInRange } from \"@utils/general\";\nimport { range } from \"lodash\";\nimport { KeyName } from \"../../keyName\";\nimport TestIds from \"../../testIds\";\nimport memoize from \"../../utils/memoize\";\n\nexport enum SliderLabel {\n Hidden = \"Hidden\",\n Visible = \"Visible\",\n VisibleOnHover = \"VisibleOnHover\"\n}\n\nexport enum SliderMarks {\n Hidden = \"Hidden\",\n Visible = \"Visible\",\n FirstAndLast = \"FirstAndLast\"\n}\n\nexport enum SliderMarksLabels {\n Hidden = \"Hidden\",\n Visible = \"Visible\",\n FirstAndLast = \"FirstAndLast\"\n}\n\nexport interface IThumb {\n id: string;\n value: number;\n}\n\nexport interface IProps {\n // start of the colored part\n from: number;\n // end of the colored part\n to: number;\n\n thumbs: IThumb[];\n onThumbValueChange: (id: string, value: number, dragEnd: boolean) => string | void;\n\n min: number;\n max: number;\n step: number;\n\n labelFormatter?: (value: number) => string;\n marksFormatter?: (markValue: number) => string;\n\n labelMode: SliderLabel;\n marksMode: SliderMarks;\n marksLabelsMode: SliderMarksLabels;\n\n width: string;\n}\n\n\nexport default class SliderBase extends React.PureComponent {\n lineRef = React.createRef();\n valueRangeRef = React.createRef();\n thumbsRefs: TRecordType = {};\n lastMoveValue: number = null;\n\n getClosestThumb = (val: number) => {\n return this.props.thumbs.reduce((closestThumb, currentThumb) => {\n if (!closestThumb || Math.abs(currentThumb.value - val) < Math.abs(closestThumb.value - val)) {\n return currentThumb;\n }\n\n return closestThumb;\n\n }, null);\n };\n\n handleLineMouseDown = (event: React.MouseEvent) => {\n this.handleMouseDown(\n this.getClosestThumb(this.domPositionToValue(event.clientX)).id,\n event\n );\n };\n\n handleLineTouchStart = (event: React.TouchEvent) => {\n this.handleTouchStart(\n this.getClosestThumb(this.domPositionToValue(event.touches[0].clientX)).id,\n event\n );\n };\n\n handleMouseDown = (thumbId: string, event: React.MouseEvent) => {\n if (event.button !== 0) {\n return;\n }\n\n // prevent mouse selection\n event.preventDefault();\n // prevent multiple thumbs mouse down\n event.stopPropagation();\n\n this.handlePosChange(thumbId, event.clientX);\n\n document.addEventListener(\"mousemove\", this.handleMouseMove(thumbId));\n document.addEventListener(\"mouseup\", this.handleMouseUp(thumbId));\n };\n\n // keep reference for add/removeEventListener by memoizing the handlers for 'id'\n handleMouseMove = memoize((thumbId: string) => {\n return (event: MouseEvent): void => {\n event.preventDefault();\n\n this.handlePosChange(thumbId, event.clientX);\n };\n });\n\n handleMouseUp = memoize((thumbId: string) => {\n return (event: MouseEvent) => {\n this.handleDragEnd(thumbId);\n\n document.removeEventListener(\"mousemove\", this.handleMouseMove(thumbId));\n document.removeEventListener(\"mouseup\", this.handleMouseUp(thumbId));\n };\n });\n\n handleTouchStart = (thumbId: string, event: React.TouchEvent) => {\n this.handlePosChange(event.touches[0].clientX);\n\n document.addEventListener(\"touchmove\", this.handleTouchMove(thumbId));\n document.addEventListener(\"touchend\", this.handleTouchEnd(thumbId));\n };\n\n handleTouchMove = memoize((thumbId: string) => {\n return (event: TouchEvent): void => {\n this.handlePosChange(thumbId, event.touches[0].clientX);\n };\n });\n\n handleTouchEnd = memoize((thumbId: string) => {\n return (event: TouchEvent) => {\n this.handleDragEnd(thumbId);\n\n document.removeEventListener(\"touchmove\", this.handleTouchMove(thumbId));\n document.removeEventListener(\"touchend\", this.handleTouchEnd(thumbId));\n };\n });\n\n handleDragEnd = (thumbId: string) => {\n this.setThumbValue(thumbId, this.lastMoveValue);\n this.lastMoveValue = null;\n };\n\n handlePosChange = animationFrameThrottle((thumbId: string, dragPos: number) => {\n this.lastMoveValue = this.getClosestValue(\n this.domPositionToValue(dragPos)\n );\n const thumbRef = this.thumbsRefs[thumbId];\n\n thumbRef.focus();\n\n this.props.onThumbValueChange?.(thumbId, this.lastMoveValue, false);\n // this.updatePosWithoutRerender(thumbId, this.lastMoveValue);\n });\n\n // performance optimization\n // can be used in 'handlePosChange' instead of calling firing 'onThumbValueChange' every time,\n // thus changing state of the parent component and rerendering slider everytime\n // this changes the DOM directly\n updatePosWithoutRerender = (thumbId: string, value: number) => {\n const percentValue = this.valueToPercentage(value);\n const thumbRef = this.thumbsRefs[thumbId];\n\n thumbRef.style.left = percentValue;\n thumbRef.children[1].textContent = this.getLabel(value);\n\n const sortedThumbs: IThumb[] = [\n ...this.props.thumbs.filter(thumb => thumb.id !== thumbId),\n { id: thumbId, value: this.lastMoveValue }\n ];\n\n\n sortedThumbs.sort((thumb1, thumb2) => thumb1.value - thumb2.value);\n\n const left = sortedThumbs.length > 1 ? this.valueToPercentage(sortedThumbs[0].value) : \"0\";\n const right = `calc(100% - ${this.valueToPercentage(sortedThumbs[sortedThumbs.length - 1].value)})`;\n\n this.valueRangeRef.current.style.clipPath = `polygon(${left} 0, calc(100% - ${right}) 0, calc(100% - ${right}) 100%, ${left} 100%)`;\n };\n\n handleKeyDown = (thumbId: string, event: React.KeyboardEvent) => {\n switch (event.key) {\n case KeyName.ArrowUp:\n case KeyName.ArrowRight:\n event.preventDefault();\n this.setThumbValue(thumbId, this.getCurrentThumbValue(thumbId) + this.props.step);\n break;\n case KeyName.ArrowDown:\n case KeyName.ArrowLeft:\n event.preventDefault();\n this.setThumbValue(thumbId, this.getCurrentThumbValue(thumbId) - this.props.step);\n break;\n case KeyName.Home:\n event.preventDefault();\n this.setThumbValue(thumbId, this.props.min);\n break;\n case KeyName.End:\n event.preventDefault();\n this.setThumbValue(thumbId, this.props.max);\n break;\n }\n };\n\n getCurrentThumbValue = (thumbId: string) => {\n const thumb = this.props.thumbs.find(thumb => thumb.id === thumbId);\n\n return clamp(thumb.value, this.props.min, this.props.max);\n };\n\n setThumbValue = (thumbId: string, value: number) => {\n const thumbFocusId = this.props.onThumbValueChange?.(\n thumbId, clamp(value, this.props.min, this.props.max),\n true\n );\n\n // onThumbValueChange can return thumbId in case we need to change focus to another one, after the change\n // this happens when one of the thumbs cross over the other\n // because element stays the same when being dragged\n // but changes its position after rerender - From thumb is always the left one To thumb the right one\n if (thumbFocusId) {\n this.thumbsRefs[thumbFocusId].focus();\n }\n };\n\n getClosestValue = (position: number) => {\n return getClosestValueInRange(position, this.props.min, this.props.max, this.props.step);\n };\n\n domPositionToValue = (position: number) => {\n const backgroundRect = this.lineRef.current.getBoundingClientRect();\n const normalizedPos = clamp(position - backgroundRect.x, 0, backgroundRect.width);\n\n return this.percentageToValue(normalizedPos * 100 / backgroundRect.width);\n };\n\n valueToPercentage = (value: number) => {\n return `${\n clamp(\n (value - this.props.min) * 100 / this.getMaxRange(),\n 0,\n 100\n )}%`;\n };\n\n percentageToValue = (percent: number) => {\n return (percent * this.getMaxRange() / 100) + this.props.min;\n };\n\n getMaxRange = () => {\n return this.props.max - this.props.min;\n };\n\n getLabel = (value: number): string => {\n return this.props.labelFormatter?.(value) ?? value.toString();\n };\n\n renderMarks = () => {\n if (this.props.marksMode === SliderMarks.Hidden) {\n return null;\n }\n\n const marks = [];\n let values: number[];\n\n if (this.props.marksMode === SliderMarks.FirstAndLast) {\n values = [this.props.min, this.props.max];\n } else {\n values = [this.props.min, ...range(this.props.min + this.props.step, this.props.max, this.props.step), this.props.max];\n }\n\n for (let i = 0; i < values.length; i++) {\n const val = values[i];\n\n marks.push(\n \n );\n }\n\n return marks;\n };\n\n renderMarksLabels = () => {\n if (this.props.marksLabelsMode === SliderMarksLabels.Hidden) {\n return null;\n }\n\n const labels = [];\n let values: number[];\n\n if (this.props.marksLabelsMode === SliderMarksLabels.FirstAndLast) {\n values = [this.props.min, this.props.max];\n } else {\n values = [this.props.min, ...range(this.props.min + this.props.step, this.props.max, this.props.step), this.props.max];\n }\n\n for (let i = 0; i < values.length; i++) {\n const val = values[i];\n\n labels.push(\n {val}\n );\n }\n\n return (\n \n {labels}\n \n );\n };\n\n handleThumbRef = memoize((thumbId: string) => {\n return (ref: HTMLDivElement) => {\n this.thumbsRefs[thumbId] = ref;\n };\n });\n\n renderThumbs = () => {\n return (\n this.props.thumbs.map(thumb => {\n const pos = this.valueToPercentage(thumb.value);\n\n return (\n \n );\n })\n\n );\n };\n\n render() {\n return (\n \n \n \n \n \n {this.renderMarks()}\n {this.renderThumbs()}\n \n {this.renderMarksLabels()}\n \n );\n }\n}\n\nexport interface IThumbProps {\n id: string;\n pos: string;\n\n onMouseDown?: (id: string, e: React.MouseEvent) => void;\n onTouchStart?: (id: string, e: React.TouchEvent) => void;\n onKeyDown?: (id: string, e: React.KeyboardEvent) => void;\n\n label: string;\n labelMode: SliderLabel;\n\n // accessibility props\n value: number;\n min: number;\n max: number;\n}\n\nexport const Thumb = React.forwardRef((props: IThumbProps, ref: React.Ref) => {\n const handleMouseDown = useCallback((e) => {\n props.onMouseDown(props.id, e);\n }, [props.id, props.onMouseDown]);\n\n const handleTouchStart = useCallback((e) => {\n props.onTouchStart(props.id, e);\n }, [props.id, props.onTouchStart]);\n\n const handleKeyDown = useCallback((e) => {\n props.onKeyDown(props.id, e);\n }, [props.id, props.onKeyDown]);\n\n return (\n \n \n {props.labelMode !== SliderLabel.Hidden &&\n \n }\n \n );\n});","import { SizeUnit } from \"../../enums\";\n\nexport enum PrintType {\n SinglePage = \"SinglePage\",\n MultiplePages = \"MultiplePages\"\n}\n\nexport enum PrintOrientation {\n Portrait = \"Portrait\",\n Landscape = \"Landscape\"\n}\n\nexport enum PaperSize {\n A3 = \"A3\",\n A4 = \"A4\",\n A5 = \"A5\",\n B4 = \"B4\",\n B5 = \"B5\",\n Letter = \"Letter\",\n Legal = \"Legal\",\n Tabloid = \"Tabloid\",\n Custom = \"Custom\"\n}\n\nexport enum PrintPageSelection {\n All = \"All\",\n Custom = \"Custom\"\n}\n\nexport enum PrintMargin {\n None = \"None\",\n Custom = \"Custom\"\n}\n\nexport interface IPaperSize {\n // in mm\n width: number;\n // in mm\n height: number;\n} // usual screen DPI standard\nexport const PaperSizes: Record = {\n [PaperSize.A5]: {\n width: 148,\n height: 210\n },\n [PaperSize.A4]: {\n width: 210,\n height: 297\n },\n [PaperSize.A3]: {\n width: 297,\n height: 420\n },\n [PaperSize.B5]: {\n width: 176,\n height: 250\n },\n [PaperSize.B4]: {\n width: 250,\n height: 353\n },\n [PaperSize.Letter]: {\n width: 215.9,\n height: 279.4\n },\n [PaperSize.Legal]: {\n width: 215.9,\n height: 355.6\n },\n [PaperSize.Tabloid]: {\n width: 279.4,\n height: 431.8\n },\n [PaperSize.Custom]: {\n width: null,\n height: null\n }\n};\n// DPI used for export - bigger DPI => more quality => bigger files\nexport const DPI = 200;\nexport const STANDARD_DPI = 96;\nexport const ONE_INCH_IN_MM = 25.4;\n\nexport interface IPrintDialogSettings {\n printType: PrintType;\n orientation: PrintOrientation;\n paperSize: PaperSize;\n paperWidth: number;\n paperHeight: number;\n sizeUnit: SizeUnit;\n scale: number;\n pageSelection: PrintPageSelection;\n customPageSelection: string;\n printFilterSettings: boolean;\n printPageNumbers: boolean;\n printHeader: boolean;\n header: string;\n printFooter: boolean;\n footer: string;\n printMargin: PrintMargin;\n marginTop: number;\n marginBottom: number;\n marginLeft: number;\n marginRight: number;\n printCropMarks: boolean;\n cropMarksIndentation: number;\n cropMarksThickness: number;\n}\n\nexport const PRINT_DIALOG_DEFAULT_SETTINGS: IPrintDialogSettings = {\n // number values are always stored in current unit and converted to px on demand\n printType: PrintType.MultiplePages,\n orientation: PrintOrientation.Portrait,\n paperSize: PaperSize.A4,\n paperWidth: PaperSizes[PaperSize.A4].width,\n paperHeight: PaperSizes[PaperSize.A4].height,\n sizeUnit: SizeUnit.Millimeters,\n scale: 100,\n pageSelection: PrintPageSelection.All,\n customPageSelection: \"\",\n printFilterSettings: true,\n printPageNumbers: false,\n printHeader: false,\n header: \"\",\n printFooter: false,\n footer: \"\",\n printMargin: PrintMargin.None,\n marginTop: null, marginBottom: null,\n marginLeft: null, marginRight: null,\n printCropMarks: false,\n cropMarksIndentation: 3,\n cropMarksThickness: 0.25\n};","import styled from \"styled-components/macro\";\nimport { DIALOG_PADDING } from \"./Dialog.styles\";\n\nexport const Wrapper = styled.div`\n height: 100%;\n display: flex;\n`;\n\nexport const LeftContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n flex: 1 1 auto;\n padding: ${DIALOG_PADDING};\n`;\n\n\nexport const RightFormWrapper = styled.div<{ _width: string }>`\n padding: ${DIALOG_PADDING};\n width: ${props => props._width};\n overflow: auto;\n`;","import React from \"react\";\nimport { LeftContentWrapper, RightFormWrapper, Wrapper } from \"./DialogTwoColumnContentView.styles\";\nimport { DialogSeparatorLine } from \"./Dialog.styles\";\n\ninterface IProps {\n wrapperContent?: React.ReactElement;\n leftContent: React.ReactElement;\n rightContent: React.ReactElement;\n rightWidth: string;\n passRef?: React.RefObject;\n}\n\nexport default class DialogTwoColumnContentView extends React.PureComponent {\n render() {\n return (\n \n {this.props.wrapperContent}\n \n {this.props.leftContent}\n \n \n \n {this.props.rightContent}\n \n \n );\n }\n}","import styled from \"styled-components/macro\";\n\nexport const StyledGroupedFields = styled.div`\n display: flex;\n flex-wrap: wrap; \n position: relative;\n`;","import React from \"react\";\nimport TestIds from \"../../testIds\";\nimport { StyledGroupedFields } from \"./GroupedFields.styles\";\n\n/** Expects array of Field components as children. Renders them with correct sharpLeft/right prop */\nexport default class GroupedField extends React.PureComponent {\n render() {\n return (\n \n {\n React.Children.map(this.props.children, (child, i) => {\n const field = child as React.ReactElement;\n const sharpLeft = i > 0;\n const sharpRight = i < React.Children.count(this.props.children) - 1;\n\n return React.cloneElement(field, {\n isSharpLeft: sharpLeft,\n isSharpRight: sharpRight,\n children: React.cloneElement(field.props.children, {\n isSharpLeft: sharpLeft,\n isSharpRight: sharpRight\n })\n });\n })\n }\n \n );\n }\n}","import React from \"react\";\nimport SliderBase, { SliderLabel, SliderMarks, SliderMarksLabels } from \"./SliderBase\";\nimport memoizeOne from \"../../utils/memoizeOne\";\n\nexport interface IProps {\n value: number;\n onChange?: (value: number) => void;\n\n min?: number;\n max?: number;\n step?: number;\n\n labelFormatter?: (value: number) => string;\n marksFormatter?: (markValue: number) => string;\n\n labelMode?: SliderLabel;\n marksMode?: SliderMarks;\n marksLabelsMode?: SliderMarksLabels;\n\n width?: string;\n}\nexport default class Slider extends React.PureComponent {\n thumbId = \"value\";\n\n static defaultProps = {\n min: 0,\n max: 100,\n step: 1,\n labelMode: SliderLabel.Hidden,\n marksMode: SliderMarks.Hidden,\n marksLabelsMode: SliderMarksLabels.Hidden,\n width: \"100%\"\n };\n\n handleThumbValueChange = (id: string, value: number) => {\n this.props.onChange?.(value);\n };\n\n getThumbs = memoizeOne((value: number) => {\n return [{\n id: this.thumbId,\n value\n }];\n });\n\n render() {\n return (\n \n );\n }\n}\n","import { removeWhiteSpace } from \"../string\";\nimport { SizeUnit } from \"../../enums\";\nimport { DPI, ONE_INCH_IN_MM, STANDARD_DPI } from \"@utils/pdfPrinting/Print.types\";\n\nexport const mmToPx = (mm: number) => {\n return mm * DPI / ONE_INCH_IN_MM;\n};\n\nexport const pxToMm = (px: number) => {\n // 1 millimeter = 3.78 pixel\n return px * ONE_INCH_IN_MM / DPI;\n};\n\nexport const inToPx = (inches: number) => {\n return inches * DPI;\n};\n\nexport const pxToIn = (px: number) => {\n return px / DPI;\n};\n\nexport const ptToPx = (pt: number): number => {\n return pt / 0.75 / STANDARD_DPI * DPI;\n};\n\nexport const pxToPt = (px: number): number => {\n return px * 0.75 / STANDARD_DPI * DPI;\n};\n\nexport const ptToMm = (pt: number): number => {\n // one pt is 1/72 inch\n return pt * ONE_INCH_IN_MM / 72;\n};\n\nexport const convertFromPxToUnit = (value: number, unit: SizeUnit) => {\n switch (unit) {\n case SizeUnit.Inches:\n return pxToIn(value);\n case SizeUnit.Centimeters:\n return pxToMm(value) / 10;\n case SizeUnit.Millimeters:\n default:\n return pxToMm(value);\n }\n};\n\nexport const convertFromUnitToPx = (value: number, unit: SizeUnit) => {\n switch (unit) {\n case SizeUnit.Inches:\n return inToPx(value);\n case SizeUnit.Centimeters:\n return mmToPx(value * 10);\n case SizeUnit.Millimeters:\n default:\n return mmToPx(value);\n }\n};\n\nexport const adjustPxScale = (px: number) => {\n return px / STANDARD_DPI * DPI;\n};\n\nexport const customPagesRangeRegex = /^((\\d+)|(\\d+-\\d+))(,((\\d+)|(\\d+-\\d+)))*$/;\n\nexport const parsePagesRange = (pagesRange: string): number[] => {\n const pages: number[] = [];\n // remove all white space\n pagesRange = removeWhiteSpace(pagesRange);\n\n if (!(customPagesRangeRegex.test(pagesRange))) {\n return pages;\n }\n\n const ranges = pagesRange.split(\",\");\n\n for (const range of ranges) {\n if (range.includes(\"-\")) {\n // range\n const [fromPage, toPage] = range.split(\"-\");\n let fromPageNumber = parseInt(fromPage);\n let toPageNumber = parseInt(toPage);\n\n if (fromPageNumber <= 0) {\n fromPageNumber = 1;\n }\n\n if (toPageNumber < fromPageNumber) {\n toPageNumber = fromPageNumber;\n }\n\n for (let i = fromPageNumber; i <= toPageNumber; i++) {\n pages.push(i);\n }\n } else {\n // single page\n pages.push(parseInt(range));\n }\n }\n\n return pages;\n};\n\n/** Compare aspect ratios of two rectangles. Useful when trying to fit image into new rectangle. */\nexport const compareRatios = (width1: number, height1: number, width2: number, height2: number) => {\n const ratio1 = width1 / height1;\n const ratio2 = width2 / height2;\n\n return ratio1 <= ratio2;\n};\n\n/** Returns size of the first rectangle so that it fits into the second. */\nexport const fitRectangle = (width1: number, height1: number, width2: number, height2: number, preventEnlarge?: boolean) => {\n if (preventEnlarge && width2 >= width1 && height2 >= height1) {\n return [width1, height1];\n }\n\n const shrinkByWidth = compareRatios(width2, height2, width1, height1);\n const ratio = shrinkByWidth ? width1 / width2 : height1 / height2;\n\n return [width1 / ratio, height1 / ratio];\n};","import { adjustPxScale, fitRectangle, mmToPx, ptToMm, ptToPx, pxToMm } from \"./Print.utils\";\nimport { range } from \"lodash\";\nimport { FONTS } from \"../../global.style\";\nimport { logger } from \"../log\";\nimport { clamp } from \"../general\";\nimport memoizeOne from \"../memoizeOne\";\nimport jsPDF from \"jspdf\";\nimport evalaLogoSignatureSvg from \"../../static/images/evalaLogoSignature.svg\";\nimport { DPI, PrintOrientation, PrintType, STANDARD_DPI } from \"@utils/pdfPrinting/Print.types\";\n\n// all numbers are in PX\n// conversion is driven by the DPI constant\nexport interface PdfPrintOptions {\n width: number;\n height: number;\n orientation: PrintOrientation;\n printType: PrintType;\n\n scale: number;\n\n header?: string;\n footer?: string;\n printPageNumbers?: boolean;\n\n printCropMarks?: boolean;\n cropMarksMargin?: number;\n cropMarksThickness?: number;\n\n marginTop?: number;\n marginBottom?: number;\n marginLeft?: number;\n marginRight?: number;\n\n textListAppendix?: ITextListGroup[];\n}\n\nexport interface ITextListGroup {\n label: string;\n subGroups: ITextListSubGroup[];\n}\n\nexport interface ITextListSubGroup {\n label?: string;\n values: string[];\n}\n\nconst HEADER_FOOTER_FONT_SIZE = ptToPx(9);\n// 1.2 is normal line height\nconst LINE_HEIGHT = HEADER_FOOTER_FONT_SIZE * 1.2;\nconst HEADER_FOOTER_VERTICAL_MARGIN = adjustPxScale(8);\nconst HEADER_FOOTER_SMALL_MARGIN = adjustPxScale(6);\nconst HEADER_FOOTER_BIG_MARGIN = adjustPxScale(12);\nconst HEADER_FOOTER_FONT = `${HEADER_FOOTER_FONT_SIZE}px ${FONTS.join(\" , \")}`;\nconst CROP_MARK_LENGTH = mmToPx(3);\nconst CANVAS_UPSCALE = 2;\n\nexport default class PdfPrinting {\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas\n static MAX_CANVAS_SIZE = 16384;\n static MAX_CANVAS_ONE_SIDE_SIZE = 65535;\n\n private canvas: HTMLCanvasElement;\n private canvasCtx: CanvasRenderingContext2D;\n\n private options: PdfPrintOptions;\n\n // in case the width/height are too big for canvas to handle\n // output paperSize can differ (be bigger) from the canvas size\n private paperWidth: number;\n private paperHeight: number;\n\n constructor(options: PdfPrintOptions) {\n this.updateOptions(options);\n }\n\n public init = async (element: HTMLElement) => {\n // render the original canvas in bigger scale, to improve the quality of the pdf render\n let scale = CANVAS_UPSCALE;\n const scaledWidth = element.scrollWidth * scale;\n const scaledHeight = element.scrollHeight * scale;\n\n // limit the size of the 'element' to the max canvas dimension\n const [width, height] = this.limitRectangleToCanvasMax(scaledWidth, scaledHeight);\n\n scale = width !== scaledWidth ? width / element.scrollWidth : scale;\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n\n canvas.width = width;\n canvas.height = height;\n context.scale(scale, scale);\n context.font = HEADER_FOOTER_FONT;\n\n const { default: html2canvas } = await import(\"html2canvas\");\n\n this.canvas = await html2canvas(element, {\n backgroundColor: \"#fff\",\n logging: false,\n canvas,\n scale: 1\n });\n\n this.canvasCtx = this.canvas.getContext(\"2d\");\n\n return this.canvas;\n };\n\n /** Set options via this method everytime there's any change in them.\n * This way, other methods can be called without those options. */\n public updateOptions = (options: Partial) => {\n this.options = {\n ...this.options,\n ...options\n };\n\n // store page dimensions in px for convenience\n if (options.width || options.height) {\n this.paperWidth = options.width ?? this.options.width;\n this.paperHeight = options.height ?? this.options.height;\n\n // we can't render bigger canvas than MAX_CANVAS_SIZE\n const [pageWidthInPx, pageHeightInPx] = this.limitRectangleToCanvasMax(this.paperWidth, this.paperHeight);\n\n this.options.width = pageWidthInPx;\n this.options.height = pageHeightInPx;\n }\n\n this.options.marginTop = this.options.marginTop ?? 0;\n this.options.marginBottom = this.options.marginBottom ?? 0;\n this.options.marginLeft = this.options.marginLeft ?? 0;\n this.options.marginRight = this.options.marginRight ?? 0;\n };\n\n /** Limits dimension to MAX_CANVAS_SIZE */\n limitRectangleToCanvasMax = (width: number, height: number) => {\n let resultWidth = width;\n let resultHeight = height;\n\n const maxCanvasArea = PdfPrinting.MAX_CANVAS_SIZE * PdfPrinting.MAX_CANVAS_SIZE;\n const ratio = height / width;\n const maxWidth = Math.min(Math.floor(Math.sqrt(maxCanvasArea / ratio)), PdfPrinting.MAX_CANVAS_ONE_SIDE_SIZE);\n const maxHeight = Math.min(Math.floor(maxWidth * ratio), PdfPrinting.MAX_CANVAS_ONE_SIDE_SIZE);\n\n if (width > maxWidth || height > maxHeight) {\n [resultWidth, resultHeight] = fitRectangle(width, height, maxWidth, maxHeight);\n logger.warn(`PdfPrinting: provided dimensions would exceed maximum limit on canvas area (${maxCanvasArea} square px) and has been reduced to ${resultWidth}, ${resultHeight} `);\n }\n\n return [resultWidth, resultHeight];\n };\n\n /** Width in px of the paper space used for content */\n public getContentWidth = () => {\n return this.options.width - this.getAllHorizontalMargins();\n };\n\n /** Height in px of the paper space used for content */\n public getContentHeight = () => {\n return this.options.height - this.getAllVerticalMargins();\n };\n\n /** Content width recalculated with default screen dpi (96).\n * This way we can upscale the images but cut only the correct part from the source. */\n public getSourceContentWidth = () => {\n return this.getContentWidth() * STANDARD_DPI / DPI / this.options.scale * CANVAS_UPSCALE;\n };\n\n public getSourceContentHeight = () => {\n return this.getContentHeight() * STANDARD_DPI / DPI / this.options.scale * CANVAS_UPSCALE;\n };\n\n /** Actual width of the content on page \"N\" */\n public getSourceContentWidthForPage = (page: number) => {\n return this.getColumnForPage(page) + 1 < this.getColumnCount() ? this.options.width :\n ((this.canvas.width - ((this.getColumnCount() - 1) * (this.getContentWidth() / DPI * STANDARD_DPI) / this.options.scale)) * this.options.scale / STANDARD_DPI * DPI) * CANVAS_UPSCALE;\n };\n\n /** Actual height of the content on page \"N\" */\n public getSourceContentHeightForPage = (page: number) => {\n return this.getRowForPage(page) + 1 < this.getRowCount() ? this.options.height :\n ((this.canvas.height - ((this.getRowCount() - 1) * (this.getContentHeight() / DPI * STANDARD_DPI) / this.options.scale)) * this.options.scale / STANDARD_DPI * DPI) * CANVAS_UPSCALE;\n };\n\n public getColumnCount = () => {\n if (!this.canvas) {\n return 0;\n }\n\n return Math.ceil(this.canvas.width / this.getSourceContentWidth());\n };\n\n public getRowCount = () => {\n if (!this.canvas) {\n return 0;\n }\n\n return Math.ceil(this.canvas.height / this.getSourceContentHeight());\n };\n\n public getColumnForPage = (page: number) => {\n return (page - 1) % this.getColumnCount();\n };\n\n public getRowForPage = (page: number) => {\n return Math.floor((page - 1) / this.getColumnCount());\n };\n\n public getMaxPageCount = () => {\n if (this.options.printType === PrintType.SinglePage) {\n return 1;\n }\n\n if (!this.canvas) {\n return 0;\n }\n\n const maxCount = this.getColumnCount() * this.getRowCount();\n\n if (maxCount <= 0) {\n return 0;\n }\n\n return isFinite(maxCount) ? maxCount : 1;\n };\n\n getAllVerticalMargins = () => {\n return this.options.marginTop + this.options.marginBottom + this.getHeaderHeight() + this.getFooterHeight();\n };\n\n getAllHorizontalMargins = () => {\n return this.options.marginLeft + this.options.marginRight;\n };\n\n /** Canvas doesn't support multi line text. Manually split the lines based on available width. */\n splitTextToLines = memoizeOne((text: string, maxWidth: number): string[] => {\n if (maxWidth <= 0) {\n return [];\n }\n\n const lines: string[] = [];\n let remainingText = text;\n let endOfLine = 0;\n let maxFound = false;\n let minFound = false;\n\n // calling 'measureText' lots of times is slow - we want to avoid that\n // find length of the first line by going through the characters one by one\n // then expect all the other lines to have similar length\n while (remainingText) {\n const currentLine = remainingText.slice(0, endOfLine);\n const measurements = this.canvasCtx.measureText(currentLine);\n const lineWidth = measurements.width;\n const endCurrentLine = () => {\n lines.push(remainingText.slice(0, endOfLine));\n remainingText = remainingText.slice(endOfLine);\n\n endOfLine = Math.min(remainingText.length, endOfLine);\n maxFound = false;\n minFound = false;\n };\n\n if (lineWidth > maxWidth) {\n endOfLine -= 1;\n maxFound = true;\n\n if (minFound) {\n if (endOfLine === 0) {\n // maxWidth isn't big enough to fit even one character\n break;\n }\n endCurrentLine();\n }\n } else if (currentLine.length === remainingText.length) {\n endCurrentLine();\n } else {\n if (maxFound) {\n endCurrentLine();\n } else {\n endOfLine += 1;\n minFound = true;\n }\n }\n }\n\n\n return lines;\n });\n\n measureTextHeight = (text: string, maxWidth: number) => {\n return this.splitTextToLines(text, maxWidth).length * LINE_HEIGHT;\n };\n\n renderText = (canvasCtx: CanvasRenderingContext2D, text: string, startX: number, startY: number, maxWidth: number) => {\n const lines = this.splitTextToLines(text, maxWidth);\n let y = startY;\n\n for (const line of lines) {\n canvasCtx.fillText(line, startX, y);\n y += LINE_HEIGHT;\n }\n };\n\n getMaxHeaderWidth = () => {\n return this.getContentWidth() - HEADER_FOOTER_SMALL_MARGIN - HEADER_FOOTER_BIG_MARGIN;\n };\n\n getMemoizedHeaderHeight = memoizeOne(() => {\n if (!this.options.header) {\n return 0;\n }\n\n return this.measureTextHeight(this.options.header, this.getMaxHeaderWidth()) + 2 * HEADER_FOOTER_VERTICAL_MARGIN;\n }, () => [this.options.header]);\n\n getHeaderHeight = () => {\n return this.getMemoizedHeaderHeight();\n };\n\n getMaxFooterWidth = () => {\n let width = this.getContentWidth() - HEADER_FOOTER_SMALL_MARGIN - HEADER_FOOTER_BIG_MARGIN;\n\n if (this.options.printPageNumbers) {\n width -= this.getPageNumberWidth();\n }\n\n return width;\n };\n\n getFooterTextHeight = () => {\n return this.measureTextHeight(this.options.footer, this.getMaxFooterWidth());\n };\n\n getMemoizedFooterHeight = memoizeOne(() => {\n if (!this.options.footer && !this.options.printPageNumbers) {\n return 0;\n }\n\n let height;\n\n if (this.options.footer) {\n height = this.getFooterTextHeight();\n } else if (this.options.printPageNumbers) {\n height = LINE_HEIGHT;\n }\n\n return height + 2 * HEADER_FOOTER_VERTICAL_MARGIN;\n }, () => [this.options.footer, this.options.printPageNumbers]);\n\n getFooterHeight = () => {\n return this.getMemoizedFooterHeight();\n };\n\n getPageNumberWidth = () => {\n if (!this.options.printPageNumbers) {\n return 0;\n }\n\n // use fixed number to prevent infinite loop\n // getMaxPageCount depends on rowCount that depends on footer height that depends on page number width and so on...\n return this.canvasCtx.measureText(\"99\").width + 2 * HEADER_FOOTER_SMALL_MARGIN;\n };\n\n renderHeader = (canvasCtx: CanvasRenderingContext2D) => {\n if (!this.options.header) {\n return;\n }\n\n canvasCtx.textBaseline = \"top\";\n canvasCtx.textAlign = \"start\";\n\n this.renderText(\n canvasCtx, this.options.header,\n this.options.marginLeft + HEADER_FOOTER_VERTICAL_MARGIN,\n this.options.marginTop + HEADER_FOOTER_VERTICAL_MARGIN,\n this.getMaxHeaderWidth()\n );\n };\n\n renderFooter = (canvasCtx: CanvasRenderingContext2D) => {\n if (!this.options.footer) {\n return;\n }\n\n canvasCtx.textBaseline = \"top\";\n canvasCtx.textAlign = \"start\";\n\n this.renderText(\n canvasCtx, this.options.footer,\n this.options.marginLeft + HEADER_FOOTER_VERTICAL_MARGIN,\n this.options.height - this.options.marginBottom - HEADER_FOOTER_VERTICAL_MARGIN - this.getFooterTextHeight(),\n this.getMaxFooterWidth()\n );\n };\n\n renderPageNumbers = (canvasCtx: CanvasRenderingContext2D, page: number) => {\n if (!this.options.printPageNumbers || this.options.printType === PrintType.SinglePage) {\n return;\n }\n\n canvasCtx.textBaseline = \"bottom\";\n canvasCtx.textAlign = \"end\";\n canvasCtx.fillText(page.toString(), this.options.width - this.options.marginRight - HEADER_FOOTER_VERTICAL_MARGIN, this.options.height - this.options.marginBottom - HEADER_FOOTER_VERTICAL_MARGIN);\n };\n\n /** Returns canvas that contains image for the page \"page\"\n * accepts custom canvas element the is gonna get repaint over */\n public getCanvasOfPage = (page: number, canvas?: HTMLCanvasElement) => {\n const pageCanvas = canvas ?? document.createElement(\"canvas\");\n const pageCanvasContext = pageCanvas.getContext(\"2d\");\n\n pageCanvas.width = this.options.width;\n pageCanvas.height = this.options.height;\n\n // set white background\n pageCanvasContext.fillStyle = \"white\";\n pageCanvasContext.fillRect(0, 0, pageCanvas.width, pageCanvas.height);\n\n pageCanvasContext.fillStyle = \"#4b4a4b\";\n pageCanvasContext.font = HEADER_FOOTER_FONT;\n\n this.renderHeader(pageCanvasContext);\n this.renderFooter(pageCanvasContext);\n this.renderPageNumbers(pageCanvasContext, page);\n\n const contentWidth = this.getContentWidth();\n const contentHeight = this.getContentHeight();\n\n let sourceX, sourceY, sourceWidth, sourceHeight, destinationWidth, destinationHeight;\n const destinationX = this.options.marginLeft;\n const destinationY = this.options.marginTop + this.getHeaderHeight();\n\n if (this.options.printType === PrintType.SinglePage) {\n // fit the whole canvas to the result dimensions\n const [fittedCanvasWidth, fittedCanvasHeight] = fitRectangle(this.canvas.width, this.canvas.height, contentWidth, contentHeight);\n\n sourceX = 0;\n sourceY = 0;\n sourceWidth = this.canvas.width;\n sourceHeight = this.canvas.height;\n destinationWidth = fittedCanvasWidth;\n destinationHeight = fittedCanvasHeight;\n } else {\n if (!page) {\n throw new Error(\"You need to pass the 'page' argument in MultiplePages PrintType\");\n }\n\n const sourceContentWidth = this.getSourceContentWidth();\n const sourceContentHeight = this.getSourceContentHeight();\n const column = this.getColumnForPage(page);\n const row = this.getRowForPage(page);\n\n\n sourceX = column * sourceContentWidth;\n sourceY = row * sourceContentHeight;\n sourceWidth = sourceContentWidth;\n sourceHeight = sourceContentHeight;\n destinationWidth = contentWidth;\n destinationHeight = contentHeight;\n }\n\n pageCanvasContext.drawImage(this.canvas,\n sourceX, sourceY,\n sourceWidth, sourceHeight,\n destinationX, destinationY,\n destinationWidth,\n destinationHeight\n );\n\n return pageCanvas;\n };\n\n /** Width of the page gets bigger if crop marks are used */\n getResultPageWidth = (width: number) => {\n // todo this can cause the canvas to get over the MAX_CANVAS_SIZE as well\n if (this.options.printCropMarks) {\n width += 2 * CROP_MARK_LENGTH + 2 * this.options.cropMarksMargin;\n }\n\n return width;\n };\n\n /** Height of the page gets bigger if crop marks are used */\n getResultPageHeight = (height: number) => {\n if (this.options.printCropMarks) {\n height += 2 * CROP_MARK_LENGTH + 2 * this.options.cropMarksMargin;\n }\n\n return height;\n };\n\n getPageContentSize = (page: number) => {\n let pageContentWidth, pageContentHeight;\n\n if (this.options.printType === PrintType.SinglePage) {\n [pageContentWidth, pageContentHeight] = fitRectangle(this.canvas.width, this.canvas.height, this.getContentWidth(), this.getContentHeight());\n } else {\n pageContentWidth = this.getSourceContentWidthForPage(page);\n pageContentHeight = this.getSourceContentHeightForPage(page);\n }\n\n pageContentWidth += this.getAllHorizontalMargins();\n pageContentHeight += this.getAllVerticalMargins();\n\n pageContentWidth = clamp(pageContentWidth, 0, this.options.width);\n pageContentHeight = clamp(pageContentHeight, 0, this.options.height);\n\n return [pageContentWidth, pageContentHeight];\n };\n\n renderCropMarks = (pageCanvas: HTMLCanvasElement, page: number) => {\n if (!this.options.printCropMarks) {\n return;\n }\n\n const pageContentWidth = this.options.width;\n const pageContentHeight = this.options.height;\n let resultPageWidth = this.getResultPageWidth(this.options.width);\n let resultPageHeight = this.getResultPageHeight(this.options.height);\n\n [resultPageWidth, resultPageHeight] = this.limitRectangleToCanvasMax(resultPageWidth, resultPageHeight);\n\n // we need to use new temporary canvas, to change dimensions of the original canvas\n // because width/height change causes the whole canvas to clear\n const tmpCanvas = document.createElement(\"canvas\");\n const tmpCanvasContext = tmpCanvas.getContext(\"2d\");\n\n tmpCanvas.width = resultPageWidth;\n tmpCanvas.height = resultPageHeight;\n\n tmpCanvasContext.fillStyle = \"white\";\n tmpCanvasContext.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);\n\n const edgeMargin = CROP_MARK_LENGTH + this.options.cropMarksMargin;\n const cropMarksThickness = this.options.cropMarksThickness ?? 2;\n\n // copy original canvas\n tmpCanvasContext.drawImage(pageCanvas, edgeMargin, edgeMargin);\n\n tmpCanvasContext.strokeStyle = \"#000\";\n tmpCanvasContext.lineWidth = cropMarksThickness;\n\n // top left |\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(edgeMargin, 0);\n tmpCanvasContext.lineTo(edgeMargin, CROP_MARK_LENGTH);\n tmpCanvasContext.stroke();\n\n // top left —\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(0, edgeMargin);\n tmpCanvasContext.lineTo(CROP_MARK_LENGTH, edgeMargin);\n tmpCanvasContext.stroke();\n\n // top right |\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(pageContentWidth + edgeMargin, 0);\n tmpCanvasContext.lineTo(pageContentWidth + edgeMargin, CROP_MARK_LENGTH);\n tmpCanvasContext.stroke();\n\n // top right —\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(edgeMargin + pageContentWidth + edgeMargin, edgeMargin);\n tmpCanvasContext.lineTo(edgeMargin + pageContentWidth + this.options.cropMarksMargin, edgeMargin);\n tmpCanvasContext.stroke();\n\n // bottom left |\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(edgeMargin, edgeMargin + pageContentHeight + edgeMargin);\n tmpCanvasContext.lineTo(edgeMargin, edgeMargin + pageContentHeight + this.options.cropMarksMargin);\n tmpCanvasContext.stroke();\n\n // bottom left —\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(0, edgeMargin + pageContentHeight);\n tmpCanvasContext.lineTo(CROP_MARK_LENGTH, edgeMargin + pageContentHeight);\n tmpCanvasContext.stroke();\n\n // bottom right |\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(pageContentWidth + edgeMargin, edgeMargin + pageContentHeight + edgeMargin);\n tmpCanvasContext.lineTo(pageContentWidth + edgeMargin, edgeMargin + pageContentHeight + this.options.cropMarksMargin);\n tmpCanvasContext.stroke();\n\n // bottom right —\n tmpCanvasContext.beginPath();\n tmpCanvasContext.moveTo(edgeMargin + pageContentWidth + edgeMargin, edgeMargin + pageContentHeight);\n tmpCanvasContext.lineTo(edgeMargin + pageContentWidth + this.options.cropMarksMargin, edgeMargin + pageContentHeight);\n tmpCanvasContext.stroke();\n\n pageCanvas.width = tmpCanvas.width;\n pageCanvas.height = tmpCanvas.height;\n\n const canvasCtx = pageCanvas.getContext(\"2d\");\n\n canvasCtx.drawImage(tmpCanvas, 0, 0);\n };\n\n public static renderTextList = async (pdf: jsPDF, textListGroups: ITextListGroup[]): Promise<[number, number]> => {\n // font files are big, only load them on demand\n if (!pdf.getFontList()[\"Lato\"]) {\n const { font: latoRegular } = await import(\"./jsPdfFonts/Lato-Regular\");\n const { font: latoBold } = await import(\"./jsPdfFonts/Lato-Bold\");\n\n pdf.addFileToVFS(\"Lato-Normal.ttf\", latoRegular);\n pdf.addFont(\"Lato-Normal.ttf\", \"Lato\", \"normal\");\n pdf.addFileToVFS(\"Lato-Bold.ttf\", latoBold);\n pdf.addFont(\"Lato-Bold.ttf\", \"Lato\", \"bold\");\n\n }\n\n const PAGE_WIDTH = pdf.internal.pageSize.getWidth();\n const PAGE_HEIGHT = pdf.internal.pageSize.getHeight();\n\n // values in mm\n const EDGE_MARGIN = 10;\n const GROUP_MARGIN = 13;\n const BIG_TEXT_MARGIN = 8;\n const SMALL_TEXT_MARGIN = 1;\n const COLUMN_WIDTH = 56;\n // values in pt\n const BIG_TEXT_SIZE = 12;\n const SMALL_TEXT_SIZE = 10;\n const LINE_HEIGHT = 1.2;\n\n let cursorY = EDGE_MARGIN;\n let cursorX = EDGE_MARGIN;\n\n pdf.setTextColor(\"#4b4a4b\");\n\n const fnRenderText = (text: string, textSize: number, nextLine?: string, nextLineTextSize: number = SMALL_TEXT_SIZE) => {\n pdf.setFontSize(textSize);\n\n const textHeight = ptToMm(textSize) * LINE_HEIGHT;\n const lines = pdf.splitTextToSize(text, COLUMN_WIDTH);\n let linesHeight = textHeight * lines.length;\n\n // we want to ensure that headers are not last line on the page (orphans)\n if (nextLine) {\n const nextLineTextHeight = ptToMm(nextLineTextSize) * LINE_HEIGHT;\n const nextLines = pdf.splitTextToSize(nextLine, COLUMN_WIDTH);\n linesHeight += nextLineTextHeight * nextLines.length + SMALL_TEXT_MARGIN;\n }\n\n if (cursorY + linesHeight > PAGE_HEIGHT - EDGE_MARGIN) {\n cursorY = EDGE_MARGIN;\n cursorX += COLUMN_WIDTH + EDGE_MARGIN;\n\n if (cursorX + COLUMN_WIDTH > PAGE_WIDTH - EDGE_MARGIN) {\n cursorX = EDGE_MARGIN;\n pdf.addPage();\n }\n }\n\n pdf.text(lines, cursorX, cursorY);\n\n cursorY += textHeight * lines.length;\n };\n\n\n for (let i = 0; i < textListGroups.length; i++) {\n const group = textListGroups[i];\n\n pdf.setFont(\"Lato\", \"bold\");\n fnRenderText(group.label, BIG_TEXT_SIZE, group.subGroups[0].label ?? group.subGroups[0].values[0]);\n cursorY += BIG_TEXT_MARGIN;\n\n for (let j = 0; j < group.subGroups.length; j++) {\n const subgroup = group.subGroups[j];\n\n if (subgroup.label) {\n pdf.setFont(\"Lato\", \"bold\");\n fnRenderText(subgroup.label, SMALL_TEXT_SIZE, subgroup.values[0]);\n cursorY += SMALL_TEXT_MARGIN;\n }\n\n pdf.setFont(\"Lato\", \"normal\");\n\n for (const value of subgroup.values) {\n fnRenderText(value, SMALL_TEXT_SIZE);\n cursorY += SMALL_TEXT_MARGIN;\n }\n\n if (j < group.subGroups.length - 1) {\n cursorY += BIG_TEXT_MARGIN;\n }\n }\n\n if (i < textListGroups.length - 1) {\n cursorY += GROUP_MARGIN;\n }\n }\n\n return [cursorX, cursorY];\n };\n\n public static renderEvalaLogo = async (pdf: jsPDF, positionY: number): Promise => {\n const PAGE_WIDTH = pdf.internal.pageSize.getWidth();\n const PAGE_HEIGHT = pdf.internal.pageSize.getHeight();\n // in mm\n const EDGE_MARGIN = 10;\n const logoWidthMM = 22;\n const spacer = pxToMm(33);\n\n pdf.setFont(\"Lato\", \"bold\");\n pdf.setFontSize(8);\n pdf.setTextColor(\"#a7a6a7\");\n\n const text = \"Vyexportovala\";\n const textWidth = pdf.getTextWidth(text);\n const cursorX = PAGE_WIDTH - EDGE_MARGIN - logoWidthMM;\n const cursorY = PAGE_HEIGHT - EDGE_MARGIN;\n\n pdf.text(text, cursorX - textWidth - spacer, cursorY);\n\n const promise = new Promise(async (resolve) => {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const img = new Image();\n\n img.src = evalaLogoSignatureSvg;\n img.onload = function() {\n const aspectRatio = img.width / img.height;\n const logoWidthMM = 22;\n const logoHeightMM = logoWidthMM / aspectRatio;\n\n canvas.width = mmToPx(logoWidthMM);\n canvas.height = mmToPx(logoWidthMM);\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const pngDataUrl = canvas.toDataURL(\"image/png\");\n\n pdf.addImage(pngDataUrl, \"image/png\", cursorX, cursorY - logoHeightMM, logoWidthMM, logoHeightMM);\n resolve(null);\n };\n });\n\n await promise;\n\n return;\n };\n\n generatePdf = async (pages?: number[]) => {\n const pdfWidth = pxToMm(this.getResultPageWidth(this.paperWidth));\n const pdfHeight = pxToMm(this.getResultPageHeight(this.paperHeight));\n\n const { default: jsPDF } = await import(\"jspdf\");\n const pdf = new jsPDF({\n orientation: this.options.orientation === PrintOrientation.Landscape ? \"landscape\" : \"portrait\",\n format: [pdfWidth, pdfHeight],\n units: \"mm\"\n });\n\n if (!pages) {\n const maxPageCount = this.getMaxPageCount();\n\n if (maxPageCount <= 0) {\n throw new Error(\"Wrong settings, size of the page is too small to render any content\");\n }\n\n pages = range(maxPageCount).map(page => page + 1);\n }\n\n\n for (let i = 0; i < pages.length; i++) {\n const page = pages[i];\n const pageCanvas = this.getCanvasOfPage(page);\n\n if (this.options.printCropMarks) {\n this.renderCropMarks(pageCanvas, page);\n }\n\n if (i > 0) {\n pdf.addPage();\n }\n\n pdf.addImage(pageCanvas.toDataURL(\"image/jpeg\", 1), \"JPEG\", 0, 0, pdfWidth, pdfHeight);\n }\n\n if (this.options.textListAppendix) {\n pdf.addPage();\n const [cursorX, cursorY] = await PdfPrinting.renderTextList(pdf, this.options.textListAppendix);\n await PdfPrinting.renderEvalaLogo(pdf, cursorY);\n }\n\n return pdf;\n };\n\n public savePdf = async (fileName: string, pages?: number[]) => {\n const pdf = await this.generatePdf(pages);\n\n return pdf.save(fileName, { returnPromise: true });\n };\n\n public getPdf = async (fileName: string, pages?: number[]) => {\n const pdf = await this.generatePdf(pages);\n\n return pdf.output(fileName);\n\n };\n}","import styled from \"styled-components/macro\";\nimport { T_PLAIN_small_hig, T_TITLE_4_NORMAL } from \"../../global.style\";\n\nconst pagesControlsHeight = 26;\n\nexport const CanvasWrapper = styled.div` \n flex: 1 1 auto;\n position: relative;\n margin-bottom: 35px;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const PreviewCanvas = styled.canvas<{ isVisible: boolean }>`\n position: absolute;\n border: 1px solid ${props => props.theme.C_AVATAR_BG_DARK};\n visibility: ${props => props.isVisible ? \"visible\" : \"hidden\"};\n`;\n\nexport const PagesControls = styled.div<{ isVisible: boolean }>`\n height: ${`${pagesControlsHeight}px`};\n display: flex;\n align-items: center;\n justify-content: center;\n visibility: ${props => props.isVisible ? \"visible\" : \"hidden\"};\n`;\n\nexport const PagesCount = styled.div`\n margin: 0 15px;\n white-space: nowrap;\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const SeparatedInputs = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Delimiter = styled.span`\n margin: 0 5px;\n ${T_TITLE_4_NORMAL};\n`;\n\nexport const StyledPrintDialogVariantSelect = styled.div`\n display: flex;\n align-items: center;\n height: 38px;\n`;\n\nexport const VariantLabel = styled.span`\n ${T_PLAIN_small_hig};\n color: ${props => props.theme.C_ACT_main};\n`;","import { CaretIcon, DoubleCaretIcon } from \"@components/icon\";\nimport { SubmittedNumericInput } from \"@components/inputs/field/SubmittedInput\";\nimport { Select } from \"@components/inputs/select\";\nimport { ISelectionChangeArgs } from \"@components/inputs/select/Select.types\";\nimport { SliderLabel } from \"@components/slider/SliderBase\";\nimport {\n IPrintDialogSettings,\n PaperSize,\n PaperSizes,\n PRINT_DIALOG_DEFAULT_SETTINGS,\n PrintMargin,\n PrintOrientation,\n PrintPageSelection,\n PrintType\n} from \"@utils/pdfPrinting/Print.types\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { useTranslation, WithTranslation, withTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport BusyIndicator from \"../../components/busyIndicator/BusyIndicator\";\nimport { Button, IconButton } from \"../../components/button\";\nimport CollapsibleSection from \"../../components/collapsibleSection/CollapsibleSection\";\nimport CustomResizeObserver from \"../../components/customResizeObserver/CustomResizeObserver\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport DialogTwoColumnContentView from \"../../components/dialog/DialogTwoColumnContentView\";\nimport GroupedField from \"../../components/groupedFields/GroupedField\";\nimport Checkbox, { ICheckboxChange } from \"../../components/inputs/checkbox/Checkbox\";\nimport Field from \"../../components/inputs/field/Field\";\nimport FieldsWrapper from \"../../components/inputs/field/FieldsWrapper\";\nimport Input, { IInputOnChangeEvent } from \"../../components/inputs/input\";\nimport RadioButtonGroup from \"../../components/inputs/radioButtonGroup/RadioButtonGroup\";\nimport IconSelect from \"../../components/inputs/select/IconSelect\";\nimport Switch, { SwitchType } from \"../../components/inputs/switch/Switch\";\nimport Slider from \"../../components/slider/Slider\";\nimport {\n BasicInputSizes,\n FastEntryInputSizes,\n FieldType,\n LabelStatus,\n SizeUnit,\n ValidationErrorType\n} from \"../../enums\";\nimport { TRecordType } from \"../../global.types\";\nimport { IValidationError, ValidationMessage } from \"../../model/Validator.types\";\nimport TestIds from \"../../testIds\";\nimport animationFrameThrottle from \"../animationFrameThrottle\";\nimport { clamp, isDefined, isObjectEmpty, isOverflowing } from \"../general\";\nimport memoize from \"../memoize\";\nimport { removeWhiteSpace } from \"../string\";\nimport PdfPrinting, { ITextListGroup, PdfPrintOptions } from \"./PdfPrinting\";\nimport {\n convertFromPxToUnit,\n convertFromUnitToPx,\n customPagesRangeRegex,\n fitRectangle,\n mmToPx,\n parsePagesRange,\n ptToPx,\n pxToMm\n} from \"./Print.utils\";\nimport {\n CanvasWrapper,\n Delimiter,\n PagesControls,\n PagesCount,\n PreviewCanvas,\n SeparatedInputs,\n StyledPrintDialogVariantSelect,\n VariantLabel\n} from \"./PrintDialog.styles\";\n\nexport interface IProps extends WithTranslation {\n element: HTMLElement;\n onClose?: () => void;\n onConfirm?: () => void;\n\n fileName?: string;\n textListAppendix?: ITextListGroup[];\n\n /** Settings for all the possible variants, excluding the Default one, which uses values from DEFAULT_VARIANT */\n variants?: TRecordType;\n /** Ids of the variants currently shown in selection. If not used, only DEFAULT_VARIANT is shown. */\n visibleVariants?: string[];\n /** Id of the current variant in selection dialog */\n variant?: string;\n /** Called on variant selection change */\n onVariantChange?: (variant: string) => void;\n /** Called when save variant button is clicked on */\n onVariantSave?: (currentVariant: IPrintDialogSettings) => void;\n /** Called whenever some field has changed */\n onSettingsChanged?: (currentSettings: IPrintDialogSettings) => void;\n}\n\nexport interface IPrintDialogVariant {\n id: string;\n label: string;\n settings: IPrintDialogSettings;\n}\n\nexport interface IPrintDialogSettingsErrors {\n paperWidth?: IValidationError;\n paperHeight?: IValidationError;\n customPageSelection?: IValidationError;\n marginTop?: IValidationError;\n marginBottom?: IValidationError;\n marginLeft?: IValidationError;\n marginRight?: IValidationError;\n cropMarksIndentation?: IValidationError;\n cropMarksThickness?: IValidationError;\n}\n\ninterface IState extends IPrintDialogSettings {\n busy: boolean;\n currentPreviewPage: number;\n errors: IPrintDialogSettingsErrors;\n // errors coming from PdfPrinting instead from validation\n printingErrors: IPrintDialogSettingsErrors;\n}\n\ninterface IPrintDialogValidationSchema {\n paperWidth: number;\n paperHeight: number;\n customPageSelection?: string;\n marginTop?: number;\n marginBottom?: number;\n marginLeft?: number;\n marginRight?: number;\n cropMarksIndentation?: number;\n cropMarksThickness?: number;\n}\n\nexport const PRINT_DIALOG_DEFAULT_VARIANT_ID = \"default\";\n\n\nclass PrintDialog extends React.PureComponent {\n static defaultProps = {\n variant: PRINT_DIALOG_DEFAULT_VARIANT_ID,\n fileName: \"export\"\n };\n\n state: IState;\n\n canvasRef = React.createRef();\n wrapperRef = React.createRef();\n pdfPrinting: PdfPrinting;\n yupSchema: yup.ObjectSchema;\n\n constructor(props: IProps) {\n super(props);\n\n const settings: IPrintDialogSettings = props.variant && props.variant !== PRINT_DIALOG_DEFAULT_VARIANT_ID ? props.variants[props.variant]?.settings : PRINT_DIALOG_DEFAULT_SETTINGS;\n\n // we removed internal cloning from yup schema => use callback instead of object to always create new schema\n // const getNumberSchema = () => yup.number().nullable().min(0, ValidationMessage.SmallNumber).typeError(ValidationMessage.NotANumber);\n // const getRequiredNumberSchema = () => getNumberSchema().required(ValidationMessage.Required);\n const enhanceNumberSchema = (schema: yup.NumberSchema) => schema.nullable().min(0, ValidationMessage.SmallNumber).typeError(ValidationMessage.NotANumber);\n const enhanceRequiredNumberSchema = (schema: yup.NumberSchema) => enhanceNumberSchema(schema).required(ValidationMessage.Required);\n // margin can be max half of the current page width/height\n const marginSchema = enhanceNumberSchema(yup.number()).test(\"margin\", ValidationMessage.BigNumber, function(this: yup.TestContext, value) {\n let size = [\"Right\", \"Left\"].includes(this.path.replace(\"margin\", \"\")) ? this.parent.paperWidth : this.parent.paperHeight;\n size = pxToMm(convertFromUnitToPx(size, this.parent.sizeUnit));\n // try to remove trailing zeroes caused by javascript floating point imprecision\n const max = parseFloat((size / 2).toFixed(3));\n\n if (isNaN(size) || value <= max) {\n return true;\n }\n\n return this.createError({\n params: {\n max\n }\n });\n });\n const cropMarksSchema = yup.number()\n .when(\"printCropMarks\", {\n is: true,\n then: (schema) => {\n return enhanceRequiredNumberSchema(schema).max(100, ValidationMessage.BigNumber);\n }\n });\n\n this.yupSchema = yup.object().shape({\n paperWidth: enhanceRequiredNumberSchema(yup.number()),\n paperHeight: enhanceRequiredNumberSchema(yup.number()),\n customPageSelection: yup.string()\n .when([\"pageSelection\", \"printType\"], {\n is: (pageSelection: PrintPageSelection, printType: PrintType) => pageSelection !== PrintPageSelection.All && printType !== PrintType.SinglePage,\n then: (schema) => {\n return schema.nullable().test(\"customPageSelection\", ValidationMessage.InvalidValue, (value) => {\n if (!value) {\n return true;\n }\n\n return customPagesRangeRegex.test(removeWhiteSpace(value));\n });\n }\n }),\n marginTop: marginSchema,\n marginBottom: marginSchema,\n marginLeft: marginSchema,\n marginRight: marginSchema,\n cropMarksIndentation: cropMarksSchema,\n cropMarksThickness: cropMarksSchema\n });\n\n this.state = {\n ...settings,\n busy: true,\n currentPreviewPage: 1,\n errors: {},\n printingErrors: {}\n };\n }\n\n componentDidMount() {\n if (this.props.element && this.canvasRef.current) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps: IProps, prevState: IState) {\n if (!prevProps.element && this.props.element && this.canvasRef.current) {\n this.init();\n }\n }\n\n init = async () => {\n // give the element content time to rerender (SimpleBar inside table otherwise has zero height)\n setTimeout(async () => {\n this.pdfPrinting = new PdfPrinting(this.getPrintOptions());\n\n await this.pdfPrinting.init(this.props.element);\n this.updatePreviewSize(this.state.paperWidth, this.state.paperHeight);\n this.updatePreview(this.state.currentPreviewPage);\n\n this.setState({\n busy: false\n });\n });\n };\n\n getPrintOptions = (): PdfPrintOptions => {\n return {\n width: this.convertFromUnitToPx(this.state.paperWidth),\n height: this.convertFromUnitToPx(this.state.paperHeight),\n orientation: this.state.orientation,\n printType: this.state.printType,\n\n scale: this.state.scale / 100,\n\n header: this.state.printHeader ? this.state.header : \"\",\n footer: this.state.printFooter ? this.state.footer : \"\",\n printPageNumbers: this.state.printPageNumbers,\n\n printCropMarks: this.state.printCropMarks,\n cropMarksMargin: mmToPx(this.state.cropMarksIndentation),\n cropMarksThickness: ptToPx(this.state.cropMarksThickness),\n\n marginTop: mmToPx(this.state.marginTop),\n marginBottom: mmToPx(this.state.marginBottom),\n marginLeft: mmToPx(this.state.marginLeft),\n marginRight: mmToPx(this.state.marginRight),\n\n textListAppendix: this.state.printFilterSettings ? this.props.textListAppendix : null\n };\n };\n\n getCurrentSettings = (): IPrintDialogSettings => {\n return Object.entries(this.state).reduce((variant, [name, value]) => {\n if (![\"currentPreviewPage\", \"busy\"].includes(name)) {\n (variant as any)[name as keyof IPrintDialogSettings] = value;\n }\n\n return variant;\n }, {} as IPrintDialogSettings);\n };\n\n setSettings = (variant: IPrintDialogSettings) => {\n this.setState({\n ...variant\n }, () => {\n // wait for the settings to be stored in state, so that we can collect everything with \"getPrintOptions\"\n this.updateOptions(this.getPrintOptions());\n this.updatePreviewSize(this.state.paperWidth, this.state.paperHeight);\n // we need to cause one more rerender after \"updateOptions\" was called\n // otherwise \"getMaxPageCount\" wouldn't return correct value\n this.forceUpdate();\n });\n };\n\n updateSettings = (settings: Pick) => {\n this.setState(settings as IState);\n\n const newSettings = {\n ...this.getCurrentSettings(),\n ...settings\n };\n\n const noError = this.validateSettings(newSettings);\n\n if (noError && this.getMaxPageCount() > 0) {\n this.props.onSettingsChanged?.(newSettings);\n }\n };\n\n validateSettings = (settings: IPrintDialogSettings) => {\n let noError = true;\n const errors: IPrintDialogSettingsErrors = {};\n\n try {\n this.yupSchema.validateSync(settings, { abortEarly: false });\n } catch (error) {\n noError = false;\n for (const err of error.inner) {\n errors[err.path as keyof IPrintDialogSettingsErrors] = {\n params: err.params,\n errorType: err.type,\n message: err.message\n };\n }\n }\n\n this.setState({\n errors\n });\n\n return noError;\n };\n\n hasErrors = () => {\n return !isObjectEmpty(this.state.errors);\n };\n\n handleVariantChange = (variantId: string) => {\n let settings = null;\n\n if (variantId === PRINT_DIALOG_DEFAULT_VARIANT_ID) {\n settings = PRINT_DIALOG_DEFAULT_SETTINGS;\n } else if (this.props.variants?.[variantId]) {\n settings = this.props.variants[variantId]?.settings;\n }\n\n this.setSettings(settings);\n this.props.onVariantChange?.(variantId);\n };\n\n handleVariantSave = () => {\n this.animateSaving();\n\n this.props.onVariantSave?.(this.getCurrentSettings());\n };\n\n // prone to change\n animateSaving = () => {\n const ghost = this.wrapperRef.current.cloneNode(true) as HTMLDivElement;\n const wrapperDiv = document.createElement(\"div\");\n const canvas = ghost.querySelectorAll(\"canvas\")[0];\n\n canvas.parentElement?.removeChild?.(canvas);\n\n const lengthMs = 700;\n\n wrapperDiv.style.zIndex = \"100\";\n wrapperDiv.style.boxShadow = \"0 0 12.7px 0.3px rgb(0 0 0 / 15%)\";\n wrapperDiv.style.position = \"absolute\";\n wrapperDiv.style.width = \"calc(100% - 38px)\";\n wrapperDiv.style.transition = `${lengthMs}ms transform`;\n wrapperDiv.style.transformOrigin = \"top left\";\n wrapperDiv.style.transform = \"scale(1)\";\n wrapperDiv.append(ghost);\n\n this.wrapperRef.current.parentElement.prepend(wrapperDiv);\n\n setTimeout(() => {\n wrapperDiv.style.transform = \"scale(0)\";\n });\n setTimeout(() => {\n this.wrapperRef.current.parentElement?.removeChild?.(wrapperDiv);\n }, lengthMs);\n };\n\n // js is the only way i found to have responsive canvas with correct proportions\n // and have border directly around it\n updatePreviewSize = (paperWidth: number, paperHeight: number) => {\n // dialog could get closed during pdfPrinting.init\n if (!this.canvasRef.current) {\n return;\n }\n\n const paperWidthPx = this.convertFromUnitToPx(paperWidth);\n const paperHeightPx = this.convertFromUnitToPx(paperHeight);\n const canvasParent = this.canvasRef.current.parentElement;\n const [canvasWidth, canvasHeight] = fitRectangle(paperWidthPx, paperHeightPx, canvasParent.offsetWidth, canvasParent.offsetHeight);\n\n this.canvasRef.current.style.width = `${Math.round(canvasWidth)}px`;\n this.canvasRef.current.style.height = `${Math.round(canvasHeight)}px`;\n };\n\n handleResize = animationFrameThrottle((entries: readonly ResizeObserverEntry[]) => {\n if (!this.wrapperRef.current || this.wrapperRef.current.children.length !== 3) {\n return;\n }\n\n const [previewElement, lineElement, formElement] = Array.from(this.wrapperRef.current.children) as HTMLDivElement[];\n\n previewElement.style.display = \"flex\";\n lineElement.style.display = \"block\";\n formElement.style.flexGrow = \"0\";\n\n if (isOverflowing(this.wrapperRef.current)) {\n previewElement.style.display = \"none\";\n lineElement.style.display = \"none\";\n formElement.style.flexGrow = \"1\";\n }\n\n this.updatePreviewSize(this.state.paperWidth, this.state.paperHeight);\n });\n\n updatePreview = (page: number) => {\n this.pdfPrinting.getCanvasOfPage(page, this.canvasRef.current);\n };\n\n updateOptions = (options: Partial) => {\n this.pdfPrinting.updateOptions(\n { ...options }\n );\n\n let previewPage = this.state.currentPreviewPage;\n const maxPage = this.getMaxPageCount();\n\n if (maxPage <= 0) {\n this.setState({\n printingErrors: {\n paperHeight: {\n errorType: ValidationErrorType.TypeError,\n message: this.props.t(\"Components:PrintDialog.HeightTooSmall\")\n }\n }\n });\n } else {\n this.setState({ printingErrors: {} });\n if (previewPage > maxPage) {\n previewPage = maxPage;\n this.setState({\n currentPreviewPage: previewPage\n });\n }\n\n this.updatePreview(previewPage);\n }\n };\n\n getMaxPageCount = () => {\n const maxPageCount = this.pdfPrinting?.getMaxPageCount();\n\n return maxPageCount;\n };\n\n handleExport = async () => {\n if (this.hasErrors()) {\n return;\n }\n\n let pages;\n\n if (this.state.printType === PrintType.SinglePage) {\n pages = [1];\n } else {\n pages = this.state.pageSelection === PrintPageSelection.Custom && this.state.customPageSelection ? parsePagesRange(this.state.customPageSelection) : null;\n }\n\n this.setState({\n busy: true\n });\n\n await this.pdfPrinting.savePdf(`${this.props.fileName}.pdf`, pages);\n\n this.setState({\n busy: false\n });\n this.props.onConfirm?.();\n };\n\n handlePrintTypeChange = (id: string) => {\n const printType = id as PrintType;\n\n this.updateOptions({ printType });\n\n this.updateSettings({\n printType\n });\n };\n\n handleOrientationChange = (id: string) => {\n const orientation = id as PrintOrientation;\n let paperWidth = this.state.paperWidth;\n let paperHeight = this.state.paperHeight;\n\n if (this.state.orientation !== orientation) {\n // noinspection JSSuspiciousNameCombination\n paperWidth = this.state.paperHeight;\n // noinspection JSSuspiciousNameCombination\n paperHeight = this.state.paperWidth;\n }\n\n this.updateOptions({\n orientation,\n width: this.convertFromUnitToPx(paperWidth),\n height: this.convertFromUnitToPx(paperHeight)\n });\n this.updatePreviewSize(paperWidth, paperHeight);\n\n this.updateSettings({\n orientation,\n paperWidth,\n paperHeight\n });\n };\n\n handlePaperSizeChange = (event: ISelectionChangeArgs) => {\n const paperSize = event.value as PaperSize;\n // can return nulls for Custom size, values are in mm\n const { width, height } = PaperSizes[paperSize];\n\n let newWidth = (width && this.convertFromPxToUnit(mmToPx(width))) ?? this.state.paperWidth;\n let newHeight = (height && this.convertFromPxToUnit(mmToPx(height))) ?? this.state.paperHeight;\n\n if (this.state.orientation === PrintOrientation.Landscape) {\n const tmp = newWidth;\n\n // noinspection JSSuspiciousNameCombination\n newWidth = newHeight;\n newHeight = tmp;\n }\n\n this.updateOptions({\n width: this.convertFromUnitToPx(newWidth),\n height: this.convertFromUnitToPx(newHeight)\n });\n this.updatePreviewSize(newWidth, newHeight);\n\n this.updateSettings({\n paperSize,\n paperWidth: newWidth,\n paperHeight: newHeight\n });\n };\n\n getMatchingPaperSize = (width: number, height: number, orientation: PrintOrientation): PaperSize => {\n const paperSizeType = Object.entries(PaperSizes)\n .find(([paperType, paperTypeSize]) => {\n const paperWidth = orientation === PrintOrientation.Portrait ? paperTypeSize.width : paperTypeSize.height;\n const paperHeight = orientation === PrintOrientation.Portrait ? paperTypeSize.height : paperTypeSize.width;\n\n return mmToPx(paperWidth) === this.convertFromUnitToPx(width) && mmToPx(paperHeight) === this.convertFromUnitToPx(height);\n })?.[0] as PaperSize;\n\n return paperSizeType ?? PaperSize.Custom;\n };\n\n getPaperOrientation = (width: number, height: number) => {\n return height > width ? PrintOrientation.Portrait : PrintOrientation.Landscape;\n };\n\n handlePaperWidthChange = (event: IInputOnChangeEvent) => {\n const width = event.value as any;\n const orientation = this.getPaperOrientation(width, this.state.paperHeight);\n const paperSizeType = this.getMatchingPaperSize(width, this.state.paperHeight, orientation);\n\n this.updateOptions({\n width: this.convertFromUnitToPx(width)\n });\n\n this.updateSettings({\n paperWidth: width,\n paperSize: paperSizeType,\n orientation\n });\n\n this.updatePreviewSize(width, this.state.paperHeight);\n };\n\n handlePaperHeightChange = (event: IInputOnChangeEvent) => {\n const height = event.value as any;\n const orientation = this.getPaperOrientation(this.state.paperWidth, height);\n const paperSizeType = this.getMatchingPaperSize(this.state.paperWidth, height, orientation);\n\n this.updateOptions({\n height: this.convertFromUnitToPx(height)\n });\n\n this.updateSettings({\n paperHeight: height,\n paperSize: paperSizeType,\n orientation\n\n });\n\n this.updatePreviewSize(this.state.paperWidth, height);\n };\n\n /** Formats value from pixels into current unit */\n convertFromPxToUnit = (value: number, unit: SizeUnit = this.state.sizeUnit) => {\n return convertFromPxToUnit(value, unit);\n };\n\n /** Parses value from current unit into pixels */\n convertFromUnitToPx = (value: number, unit: SizeUnit = this.state.sizeUnit) => {\n return convertFromUnitToPx(value, unit);\n };\n\n handleSizeUnitChange = (event: ISelectionChangeArgs) => {\n const sizeUnit = event.value as SizeUnit;\n\n if (sizeUnit === this.state.sizeUnit) {\n return;\n }\n\n // this conversion can cause floating point rounding errors, can we do something about it?\n const paperWidth = this.convertFromPxToUnit(this.convertFromUnitToPx(this.state.paperWidth), sizeUnit);\n const paperHeight = this.convertFromPxToUnit(this.convertFromUnitToPx(this.state.paperHeight), sizeUnit);\n\n this.updateSettings({\n sizeUnit,\n paperWidth, paperHeight\n });\n };\n\n setScale = animationFrameThrottle((scale: number) => {\n this.updateOptions({\n scale: scale / 100\n });\n this.updateSettings({\n scale\n });\n });\n\n handleScaleChange = (scale: number) => {\n this.setScale(scale);\n };\n\n handlePageSelectionChange = (id: string) => {\n const pageSelection = id as PrintPageSelection;\n\n this.updateSettings({\n pageSelection\n });\n };\n\n handleCustomPageSelectionChange = (event: IInputOnChangeEvent) => {\n const customPageSelection = event.value as string;\n\n this.updateSettings({\n customPageSelection\n });\n };\n\n handlePrintFilterSettingsChange = (checked: boolean) => {\n this.updateSettings({\n printFilterSettings: checked\n });\n\n this.updateOptions({\n textListAppendix: checked ? this.props.textListAppendix : null\n });\n };\n\n handlePrintPageNumbersChange = (checked: boolean) => {\n this.updateOptions({\n printPageNumbers: checked\n });\n\n this.updateSettings({\n printPageNumbers: checked\n });\n };\n\n handlePrintHeaderChange = (event: ICheckboxChange) => {\n const printHeader = event.value;\n const header = printHeader ? this.state.header : \"\";\n\n this.updateOptions({\n header\n });\n\n this.updateSettings({\n printHeader\n });\n };\n\n handlePrintFooterChange = (event: ICheckboxChange) => {\n const printFooter = event.value;\n const footer = printFooter ? this.state.footer : \"\";\n\n this.updateOptions({\n footer\n });\n\n this.updateSettings({\n printFooter\n });\n };\n\n handleHeaderChange = (event: IInputOnChangeEvent) => {\n const header = event.value as string;\n\n this.updateOptions({\n header\n });\n\n\n this.updateSettings({\n header\n });\n };\n\n handleFooterChange = (event: IInputOnChangeEvent) => {\n const footer = event.value as string;\n\n this.updateOptions({\n footer\n });\n\n this.updateSettings({\n footer\n });\n };\n\n handleMarginTypeChange = (event: ISelectionChangeArgs) => {\n const printMargin = event.value as PrintMargin;\n const defaultMargin = 5;\n\n let marginTop, marginBottom, marginLeft, marginRight;\n\n if (printMargin === PrintMargin.None) {\n marginTop = marginBottom = marginLeft = marginRight = null;\n } else {\n marginTop = marginBottom = marginLeft = marginRight = defaultMargin;\n }\n\n this.updateOptions({\n marginTop: mmToPx(marginTop),\n marginBottom: mmToPx(marginBottom),\n marginLeft: mmToPx(marginLeft),\n marginRight: mmToPx(marginRight)\n });\n\n this.updateSettings({\n printMargin,\n marginTop, marginBottom,\n marginLeft, marginRight\n });\n };\n\n // avoid using anonymous handler functions (thus having different reference on each rerender)\n // by memoizing handle function based on marginPos\n handleMarginChange = memoize((marginName: \"marginTop\" | \"marginBottom\" | \"marginLeft\" | \"marginRight\") =>\n (event: IInputOnChangeEvent) => {\n const margin = event.value as number;\n\n this.updateOptions({\n [marginName]: mmToPx(margin)\n });\n\n const otherMargins = [\"marginTop\", \"marginBottom\", \"marginLeft\", \"marginRight\"].filter(margin => margin !== marginName);\n const printMargin = otherMargins.some(otherMargin => isDefined(this.state[otherMargin as keyof IState])) || isDefined(margin) ? PrintMargin.Custom : PrintMargin.None;\n\n // @ts-ignore\n this.updateSettings({\n [marginName]: margin,\n printMargin\n });\n }\n );\n\n handlePrintCropMarksChange = (checked: boolean) => {\n this.updateOptions({\n printCropMarks: checked\n });\n\n this.updateSettings({\n printCropMarks: checked\n });\n };\n\n handleIndentationChange = (event: IInputOnChangeEvent) => {\n const cropMarksIndentation = event.value as number;\n\n this.updateOptions({\n cropMarksMargin: mmToPx(cropMarksIndentation)\n });\n\n this.updateSettings({\n cropMarksIndentation\n });\n };\n\n handleTensileStrengthChange = (event: IInputOnChangeEvent) => {\n const cropMarksThickness = event.value as number;\n\n this.updateOptions({\n cropMarksThickness: ptToPx(cropMarksThickness)\n });\n\n this.updateSettings({\n cropMarksThickness\n });\n };\n\n setCurrentPage = (page: number) => {\n const currentPreviewPage = clamp(page, 1, this.getMaxPageCount());\n\n this.updatePreview(currentPreviewPage);\n this.setState({\n currentPreviewPage\n });\n };\n\n handleFirstPage = () => {\n this.setCurrentPage(1);\n };\n\n handleLastPage = () => {\n this.setCurrentPage(this.getMaxPageCount());\n };\n\n handlePreviousPage = () => {\n this.setCurrentPage(this.state.currentPreviewPage - 1);\n };\n\n handleNextPage = () => {\n this.setCurrentPage(this.state.currentPreviewPage + 1);\n };\n\n isCurrentPageFirst = () => {\n return this.state.currentPreviewPage === 1;\n };\n\n isCurrentPageLast = () => {\n return this.state.currentPreviewPage === this.getMaxPageCount();\n };\n\n renderPreview = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n {this.state.currentPreviewPage} / {this.getMaxPageCount()}\n \n\n \n \n \n\n \n \n \n \n \n );\n };\n\n renderForm = () => {\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n x\n \n \n \n \n {this.state.printType === PrintType.MultiplePages &&\n \n \n \n }\n\n {this.state.printType === PrintType.MultiplePages && \n \n \n \n \n \n \n }\n \n \n \n {this.state.printType === PrintType.MultiplePages &&\n \n \n \n }\n\n \n
    \n
    \n \n \n
    \n
    \n \n\n \n
    \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n {this.state.printCropMarks &&\n
    \n \n \n \n\n \n \n \n
    \n }\n
    \n
    \n
    \n );\n };\n\n render() {\n return (\n \n \n \n \n }>\n {this.state.busy && }}\n leftContent={this.renderPreview()}\n rightContent={this.renderForm()}\n rightWidth={\"428px\"}\n />\n \n );\n }\n}\n\nexport default withTranslation([\"Components\", \"Common\"])(PrintDialog);\n\ninterface IPrintDialogVariantSelectProps {\n id: string;\n onChange: (id: string) => void;\n variants: TRecordType;\n visibleVariants: string[];\n}\n\nconst PrintDialogVariantSelect: React.FunctionComponent = React.memo((props: IPrintDialogVariantSelectProps) => {\n const { t, ready } = useTranslation([\"Components\"]);\n const items = useMemo(() => {\n return [\n {\n id: PRINT_DIALOG_DEFAULT_VARIANT_ID,\n label: t(\"Components:PrintDialog.VariantDefault\")\n },\n ...(props.visibleVariants ?? []).map(variantId => {\n const variant = props.variants[variantId];\n\n return {\n id: variant.id,\n label: variant.label\n };\n })\n ];\n }, [props.variants, props.visibleVariants, ready]);\n const label = (props.variants ?? {})[props.id]?.label ?? items.find(item => item.id === props.id)?.label;\n const handleChange = useCallback((args: ISelectionChangeArgs) => {\n props.onChange(args.value as string);\n }, []);\n\n return (\n \n \n {label}\n \n }\n items={items}\n value={props.id}\n onChange={handleChange}\n />\n \n );\n});","import React from \"react\";\nimport PrintDialog, {\n IPrintDialogVariant,\n IProps as IPrintDialogProps,\n PRINT_DIALOG_DEFAULT_VARIANT_ID\n} from \"../../utils/pdfPrinting/PrintDialog\";\nimport { TRecordType } from \"../../global.types\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport { getPrintDialogFilterList } from \"./TableView.utils\";\nimport { P13nType } from \"../../enums\";\nimport BusyIndicator from \"../../components/busyIndicator/BusyIndicator\";\nimport { getDefaultLogActionDetail, logAction } from \"@odata/OData.utils\";\nimport { ITextListGroup } from \"@utils/pdfPrinting/PdfPrinting\";\nimport { ActionTypeCode } from \"@odata/GeneratedEnums\";\nimport { AppContext, IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport {IPrintDialogSettings} from \"@utils/pdfPrinting/Print.types\";\n\ninterface IProps extends Pick, WithTranslation {\n storage: TableStorage;\n /** Can be used to pass text groups that will be printed out before applied filters */\n customTextListGroups?: ITextListGroup[];\n logActionDetail?: string;\n}\n\ninterface IState {\n variantId: string;\n settings: TRecordType;\n isLoaded: boolean;\n}\n\nconst CUSTOM_VARIANT_ID = \"custom\";\nconst TMP_VARIANT_ID = \"tmp\";\n\n/**\n * Wrapper around PrintDialog, takes care of loading and saving variants (settings) of the print dialog.\n * We provide three variants, but in dropdown user can only choose from two (default, custom).\n * The third is temporary and is only distinguishable by its label.\n * Every change is immediately stored into the temporary variant.\n * Pressing \"save settings\" button stores values into the custom variant and tmp variant is removed.\n * Tmp variant is also removed everytime default or custom variant is selected in the dropdown.\n * */\nclass TablePrintDialog extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n static defaultProps: Partial = {\n customTextListGroups: []\n };\n\n saveTmpTimeoutId: number = null;\n\n state: IState = {\n variantId: null,\n settings: null,\n isLoaded: false\n };\n\n constructor(props: IProps, context: IAppContext) {\n super(props, context);\n\n this.init(context);\n }\n\n init = async (context: IAppContext) => {\n const storedSettings: TRecordType = await context.p13n.get>(this.tableId, P13nType.PrintDialogSettings) ?? {};\n let initialVariant;\n\n if (storedSettings[TMP_VARIANT_ID]) {\n initialVariant = TMP_VARIANT_ID;\n } else if (storedSettings[CUSTOM_VARIANT_ID]) {\n initialVariant = CUSTOM_VARIANT_ID;\n } else {\n initialVariant = PRINT_DIALOG_DEFAULT_VARIANT_ID;\n }\n\n this.setState({\n variantId: initialVariant,\n settings: storedSettings,\n isLoaded: true\n });\n };\n\n getVariants = memoizeOne(() => {\n const variants: TRecordType = {};\n const storedSettings = this.state.settings;\n\n if (storedSettings[TMP_VARIANT_ID]) {\n variants[TMP_VARIANT_ID] = {\n id: TMP_VARIANT_ID,\n label: `${this.props.t(\"Components:PrintDialog.VariantCustom\")}*`,\n settings: storedSettings[TMP_VARIANT_ID]\n };\n }\n\n if (storedSettings[CUSTOM_VARIANT_ID]) {\n variants[CUSTOM_VARIANT_ID] = {\n id: CUSTOM_VARIANT_ID,\n label: this.props.t(\"Components:PrintDialog.VariantCustom\"),\n settings: storedSettings[CUSTOM_VARIANT_ID]\n };\n }\n\n return variants;\n }, () => [this.state.settings]);\n\n getVisibleVariants = memoizeOne(() => {\n const visibleVariants = [];\n const storedVariants = this.state.settings;\n\n if (storedVariants[CUSTOM_VARIANT_ID]) {\n visibleVariants.push(CUSTOM_VARIANT_ID);\n }\n\n\n // tmp variant is never pushed into visibleVariants,\n // because it is not supposed to be shown in the variant dropdown, just its label\n\n return visibleVariants;\n }, () => [this.state.settings]);\n\n\n uploadSettings = async (settings: TRecordType) => {\n clearTimeout(this.saveTmpTimeoutId);\n\n await this.context.p13n.update(this.tableId, P13nType.PrintDialogSettings, settings);\n };\n\n handleVariantChange = (variantId: string) => {\n const settings = { ...this.state.settings };\n\n delete settings[TMP_VARIANT_ID];\n\n this.setState({\n variantId,\n settings\n });\n\n this.uploadSettings(settings);\n };\n\n handleVariantSave = async (settings: IPrintDialogSettings) => {\n const storeSettings = {\n [CUSTOM_VARIANT_ID]: settings\n };\n\n this.setState({\n variantId: CUSTOM_VARIANT_ID,\n settings: storeSettings\n });\n\n this.uploadSettings(storeSettings);\n\n };\n\n handleSettingsChange = (settings: IPrintDialogSettings) => {\n const storeSettings = {\n ...this.state.settings,\n [TMP_VARIANT_ID]: settings\n };\n\n this.setState({\n variantId: TMP_VARIANT_ID,\n settings: storeSettings\n });\n\n clearTimeout(this.saveTmpTimeoutId);\n\n this.saveTmpTimeoutId = window.setTimeout(() => {\n this.uploadSettings(storeSettings);\n }, 250);\n };\n\n handleConfirm = async () => {\n // CompanyId is automatically added to OData request and thus is not part of 'filter'\n // but we still want Company Id to be part of the log\n const companyFilter = getDefaultLogActionDetail(this.props.storage);\n const logDetail = this.props.logActionDetail ? `${this.props.logActionDetail} AND ${companyFilter}` : companyFilter;\n\n logAction({\n actionId: this.tableId,\n actionType: ActionTypeCode.PDFExport,\n detail: logDetail\n });\n\n this.props.onClose?.();\n };\n\n get tableId() {\n return this.props.storage.id;\n }\n\n getTextListAppendix = memoizeOne(() => {\n return [\n ...this.props.customTextListGroups,\n ...getPrintDialogFilterList(this.props.storage)\n ];\n });\n\n render() {\n if (!this.state.isLoaded) {\n return ;\n }\n\n return (\n \n );\n }\n}\n\nexport default withTranslation([\"Components\"])(TablePrintDialog);","import { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getConfirmationButtonsToolbarDefinition } from \"@components/toolbar/Toolbar.utils\";\nimport { GeneralPermissionCode } from \"@odata/GeneratedEnums\";\nimport { isDefined } from \"@utils/general\";\nimport { pull } from \"lodash\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nimport { Toolbar } from \"../../components/toolbar\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { SessionType } from \"../../contexts/authContext/Auth.utils\";\nimport { WithAuthContext, withAuthContext } from \"../../contexts/authContext/withAuthContext\";\nimport { WithPermissionContext, withPermissionContext } from \"../../contexts/permissionContext/withPermissionContext\";\nimport { TableViewMode, ToolbarItemType } from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { IProps as IConfirmationButtonProps } from \"./ConfirmationButtons\";\nimport {\n exportButtonActionGroup,\n ICustomButtonDefArgs,\n TableActionOrder,\n TableButtonsAction,\n TableButtonsActionType\n} from \"./TableToolbar.utils\";\n\ninterface IProps extends WithTranslation, WithPermissionContext, WithAuthContext {\n activeButtons?: TableButtonsActionType[];\n visibleButtons?: TableButtonsActionType[];\n disabledButtons?: TableButtonsActionType[];\n staticItems?: TToolbarItem[];\n isExpandable?: boolean;\n isDisabled?: boolean;\n onClick: (key: TableButtonsActionType, value?: TValue) => void;\n hasDrafts?: boolean;\n draftsCount?: number;\n documentsCount?: number;\n draftViewMode?: TableViewMode;\n getCustomButtonDef?: (type: TableButtonsActionType, args: ICustomButtonDefArgs) => IToolbarItem;\n /** Can be used to extend the default toolbar button definition. */\n overrideDefaultToolbarButtonDef?: (item: IToolbarItem) => IToolbarItem;\n confirmationButtons?: IConfirmationButtonProps;\n // for custom definitions\n children?: IToolbarItem[];\n}\n\nclass TableToolbar extends React.Component {\n handleClick = (key: TableButtonsActionType, value: TValue) => {\n this.props.onClick(key, value);\n };\n\n handleItemChange = (id: string, value: TValue) => {\n this.handleClick(id as TableButtonsActionType, value);\n };\n\n getButtonDef = (buttonType: TableButtonsActionType): IToolbarItem => {\n let label, iconName, itemType, order;\n const id = buttonType;\n let isDisabled = this.props.isDisabled || this.props.disabledButtons?.includes(buttonType);\n const isActive = this.props.activeButtons?.includes(buttonType);\n let itemProps: TRecordAny = {\n isTransparent: true\n };\n\n // customer doesn't have any permissions like normal user, so export should be enabled by default on every table\n const isInApp = this.props.authContext?.sessionType === SessionType.Application;\n const canExport = this.props.permissionContext.generalPermissions.has(GeneralPermissionCode.CanExportDataFromTheSystem);\n\n switch (buttonType) {\n case TableButtonsAction.Add:\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.AddItem\");\n iconName = \"Add\";\n order = TableActionOrder.Add;\n break;\n case TableButtonsAction.Remove:\n order = TableActionOrder.Remove;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.RemoveItem\");\n iconName = \"Bin\";\n break;\n case TableButtonsAction.MassEdit:\n order = TableActionOrder.MassEdit;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.MassEdit\");\n iconName = \"BulkEdit\";\n break;\n case TableButtonsAction.ExpandCollapseAll:\n order = TableActionOrder.ExpandCollapseAll;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(`Components:Table.${this.props.isExpandable ? \"OpenAll\" : \"CloseAll\"}`);\n iconName = this.props.isExpandable ? \"ExpandAll\" : \"CollapseAll\";\n break;\n case TableButtonsAction.Lock:\n order = TableActionOrder.Lock;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.ColumnLock\");\n iconName = \"Lock\";\n break;\n case TableButtonsAction.FullscreenOpen:\n order = TableActionOrder.Fullscreen;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.FullscreenOpen\");\n iconName = \"FullscreenOpen\";\n break;\n case TableButtonsAction.FullscreenClose:\n order = TableActionOrder.Fullscreen;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.FullscreenClose\");\n iconName = \"FullscreenClose\";\n break;\n case TableButtonsAction.XLSXExport:\n case TableButtonsAction.CSVExport:\n case TableButtonsAction.PdfExport:\n case TableButtonsAction.PdfExportReportFull:\n case TableButtonsAction.PdfExportReportShort:\n order = TableActionOrder.Export;\n itemType = ToolbarItemType.IconSelect;\n label = this.props.t(\"Components:Table.ExportHeader\");\n iconName = \"Export\";\n isDisabled = isDisabled || (!canExport && isInApp);\n itemProps = {\n selectProps: { ...itemProps, width: \"220px\" },\n headerText: this.props.t(\"Components:Table.ExportHeader\"),\n items: exportButtonActionGroup.filter(buttonType => this.props.visibleButtons.includes(buttonType))\n .map(buttonType => this.getExportActionItemDef(buttonType))\n };\n break;\n case TableButtonsAction.Sorting:\n order = TableActionOrder.Sort;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.Sorting\");\n iconName = \"Sorting\";\n break;\n case TableButtonsAction.Settings:\n order = TableActionOrder.Settings;\n itemType = ToolbarItemType.Icon;\n label = this.props.t(\"Components:Table.Settings\");\n iconName = \"Settings\";\n break;\n\n case TableButtonsAction.ToggleDraftView:\n order = TableActionOrder.ToggleDraftView;\n itemType = ToolbarItemType.SegmentedButton;\n itemProps = {\n def: [{\n id: TableViewMode.Saved,\n label: `/${this.props.documentsCount}/`,\n title: `${this.props.t(\"Components:Table.SavedDocs\")} /${this.props.documentsCount}/`,\n iconName: \"DocumentSaved\"\n }, {\n id: TableViewMode.Draft,\n label: `/${this.props.draftsCount ?? DASH_CHARACTER}/`,\n title: `${this.props.t(\"Components:Table.Drafts\")} /${this.props.draftsCount ?? DASH_CHARACTER}/`,\n iconName: \"DocumentDraft\"\n }],\n selectedButtonId: this.props.draftViewMode\n };\n break;\n default:\n return this.props.getCustomButtonDef(buttonType, { isActive, isDisabled });\n }\n\n let toolbarItem: IToolbarItem = {\n id, label, iconName, itemProps, itemType, isDisabled, isActive, order\n };\n\n if (this.props.overrideDefaultToolbarButtonDef) {\n toolbarItem = this.props.overrideDefaultToolbarButtonDef(toolbarItem);\n }\n\n return toolbarItem;\n };\n\n getExportActionItemDef = (buttonType: TableButtonsAction) => {\n switch (buttonType) {\n case TableButtonsAction.XLSXExport:\n return {\n id: buttonType,\n label: this.props.t(\"Components:Table.XLSXExport\"),\n iconName: \"ExportExcel\"\n };\n case TableButtonsAction.CSVExport:\n return {\n id: buttonType,\n label: this.props.t(\"Components:Table.CSVExport\"),\n iconName: \"ExportSvg\"\n };\n case TableButtonsAction.PdfExport:\n return {\n id: buttonType,\n label: this.props.t(\"Components:Table.PdfExport\"),\n iconName: \"ExportPdf\"\n };\n case TableButtonsAction.PdfExportReportFull:\n return {\n id: buttonType,\n label: this.props.t(\"Components:Table.PdfExportReportFull\"),\n iconName: \"ExportPdf\"\n };\n case TableButtonsAction.PdfExportReportShort:\n return {\n id: buttonType,\n label: this.props.t(\"Components:Table.PdfExportReportShort\"),\n iconName: \"ExportPdf\"\n };\n }\n\n return null;\n };\n\n render() {\n const visibleButtons = [...this.props.visibleButtons];\n\n if (exportButtonActionGroup.some((buttonAction) => visibleButtons.includes(buttonAction))) {\n // it's button group, include only once\n pull(visibleButtons, ...exportButtonActionGroup);\n visibleButtons.push(exportButtonActionGroup[0]);\n }\n\n if (isDefined(this.props.hasDrafts)) {\n visibleButtons.push(TableButtonsAction.ToggleDraftView);\n }\n\n const buttonDefs = visibleButtons.map(buttonType => this.getButtonDef(buttonType))\n .sort((a, b) => a.order - b.order);\n\n const itemsDef = [...buttonDefs];\n\n if (this.props.children) {\n itemsDef.unshift(...this.props.children);\n }\n\n if (this.props.confirmationButtons) {\n itemsDef.unshift(getConfirmationButtonsToolbarDefinition(this.props.confirmationButtons));\n }\n\n return (\n \n {itemsDef}\n \n );\n }\n}\n\nexport default withTranslation([\"Common\", \"Components\"])(withAuthContext(withPermissionContext(TableToolbar)));","export enum TableButtonsAction {\n Add = \"Add\",\n CSVExport = \"CSVExport\",\n ExpandCollapseAll = \"ExpandCollapseAll\",\n FullscreenOpen = \"FullscreenOpen\",\n FullscreenClose = \"FullscreenClose\",\n Lock = \"Lock\",\n MassEdit = \"MassEdit\",\n PdfExport = \"PdfExport\",\n PdfExportReportFull = \"PdfExportReportFull\",\n PdfExportReportShort = \"PdfExportReportShort\",\n Remove = \"Remove\",\n Sorting = \"Sorting\",\n Settings = \"Settings\",\n ToggleDraftView = \"ToggleDraftView\",\n XLSXExport = \"XLSXExport\",\n}\n\nexport enum TableActionOrder {\n Add = 10,\n ExpandCollapseAll = 30,\n Remove = 40,\n Lock = 50,\n MassEdit = 60,\n Fullscreen = 70,\n Export = 80,\n Sort = 90,\n Settings = 100,\n ToggleDraftView = 110\n}\n\nexport type TableButtonsActionType = TableButtonsAction | string;\nexport const exportButtonActionGroup = [\n TableButtonsAction.XLSXExport,\n TableButtonsAction.CSVExport,\n TableButtonsAction.PdfExport,\n TableButtonsAction.PdfExportReportShort,\n TableButtonsAction.PdfExportReportFull\n];\n\nexport interface ICustomButtonDefArgs {\n isActive: boolean;\n isDisabled: boolean;\n}","import React from \"react\";\nimport { ButtonExtraCount } from \"@components/button\";\n\n// moved here from TableView.utils to prevent import cycles caused by importing from the .styles file\nexport const getConfirmationActionText = (action: string, count: number): React.ReactElement => (\n <>\n {action}\n /{count}/\n \n);","import { ALERT_BOTTOM_MARGIN, ALERT_TOP_MARGIN } from \"@components/alert/Alert.styles\";\nimport styled, { css } from \"styled-components/macro\";\n\nimport Alert from \"../../components/alert/Alert\";\nimport SmartFilterBar from \"../../components/smart/smartFilterBar/SmartFilterBar\";\nimport Tabs from \"../../components/tabs\";\nimport { TableSizes } from \"../../enums\";\nimport { T_TITLE_2 } from \"../../global.style\";\n\n\nexport const TableWrapper = styled.div<{\n isInTab?: boolean;\n hasMinHeight?: boolean;\n}>`\n min-height: ${props => props.hasMinHeight === false ? 0 : \"100px\"};\n max-height: 100%;\n margin-top: 5px;\n flex: 1;\n position: relative;\n // width: calc(100% + ${`${TableSizes.ShadowPadding}px`});\n // left: ${`${-TableSizes.ShadowPadding}px`};\n`;\n\nexport const FormTableWrapper = styled(TableWrapper) <{\n isInTab?: boolean;\n}>`\n ${props => props.isInTab\n ? css`\n margin-top: 20px;\n `\n : css`\n margin-bottom: 10px;\n min-height: unset;\n `\n }\n`;\n\nexport const TopWrapper = styled.div<{\n _loaded: boolean\n}>`\n opacity: ${props => props._loaded ? \"1\" : \"0\"}\n`;\n\nexport const SmartFilterBarStyled = styled(SmartFilterBar)`\n margin-bottom: 36px;\n`;\n\nexport const TableAlert = styled(Alert)`\n margin-bottom: ${ALERT_BOTTOM_MARGIN}px;\n \n :not(:first-child) {\n margin-top: ${ALERT_TOP_MARGIN}px;\n }\n`;\n\nexport const SecondaryTableViewTitle = styled.div`\n ${T_TITLE_2};\n margin-bottom: 20px;\n`;\nexport const StyledTableTabs = styled(Tabs)`\n margin-top: 24px;\n`;","import React from \"react\";\nimport TableSortingDialog from \"../../table/TableSortingDialog\";\nimport { handleSortChange } from \"../../../views/table/TableView.utils\";\nimport { TSmartODataTableStorage } from \"./SmartODataTableBase\";\nimport { IColumn, ISort } from \"../../table\";\nimport { prepareColumns } from \"./SmartTable.utils\";\nimport { AppContext } from \"../../../contexts/appContext/AppContext.types\";\nimport { isEqual } from \"lodash\";\nimport { FieldVisibility } from \"../../../enums\";\n\nexport interface IProps {\n storage: TSmartODataTableStorage;\n}\n\ninterface IState {\n isLoaded: boolean;\n columns: IColumn[];\n}\n\nclass SmartTableSortingDialog extends React.PureComponent {\n static contextType = AppContext;\n\n state: IState = {\n isLoaded: false,\n columns: []\n };\n\n componentDidMount() {\n this.init();\n }\n\n init = async (): Promise => {\n const columns = this.props.storage.data.mergedColumns\n .filter(column => !column.fieldSettings?.disableSort && column.fieldVisibility !== FieldVisibility.ExportOnly && !column.disableSort);\n\n // TODO change to this, after variants support sort on non-visible columns\n // const columns = Object.entries(this.props.storage.data.definition.columnDefinition)\n // .filter(([name, def]) => def.fieldVisibility !== FieldVisibility.ExportOnly)\n // .map(([name, def]) => ({\n // ...def,\n // id: name\n // }));\n\n const columnsWithLabels = await prepareColumns({\n bindingContext: this.props.storage.data.bindingContext,\n context: this.context,\n columns\n });\n\n this.setState({\n isLoaded: true,\n columns: columnsWithLabels.map(column => ({\n id: column.id,\n label: column.label\n }))\n });\n };\n\n close = (): void => {\n this.props.storage.setCustomData({\n isSortingDialogOpen: false\n });\n this.props.storage.refresh();\n };\n\n getCurrentSort = () => {\n return this.props.storage.getInitialSortOrder();\n };\n\n handleConfirm = (sort: ISort[]): void => {\n if (!isEqual(sort, this.getCurrentSort())) {\n handleSortChange(this.props.storage, sort);\n\n this.props.storage.tableAPI.setState({\n sort\n }, this.props.storage.tableAPI.reloadTable);\n }\n\n\n this.close();\n };\n\n handleCancel = (): void => {\n this.close();\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default SmartTableSortingDialog;","import { getInfoValue, IFieldDef, isVisible } from \"@components/smart/FieldInfo\";\nimport { FieldVisibility } from \"../../enums\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport { IConfigList, IGroupListItemDef } from \"@components/configurationList\";\nimport { TRecordType } from \"../../global.types\";\nimport { prepareColumns } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { TFieldsDefinition } from \"@pages/PageUtils\";\n\nexport const USED_FIELDS_COLUMN_ID = \"used\";\nexport const USED_FIELDS_GROUP_ID = \"usedGroup\";\nexport const AVAILABLE_FIELDS_COLUMN_ID = \"available\";\nexport const AVAILABLE_FIELDS_GROUP_ID = \"_availableFieldsGroup_\";\n\nexport const isCustomizableColumn = (storage: TableStorage, column: IFieldDef): boolean => {\n const useForCustomization = getInfoValue(column?.customizationData, \"useForCustomization\", {\n storage: storage,\n context: storage.context\n });\n // hide not visible columns in the customization dialog as well,\n // user should not be able to see and modify invisible columns, but they have to stay in the variant\n const visible = isVisible({\n info: column,\n storage: storage,\n bindingContext: storage.data.bindingContext,\n context: storage.context\n });\n\n const shouldIgnore = useForCustomization === false || visible === false;\n\n if (shouldIgnore) {\n return false;\n }\n\n return column.fieldVisibility !== FieldVisibility.ExportOnly;\n};\n\nexport const convertDefinitionToConfigList = async (storage: TableStorage): Promise => {\n const items: TRecordType = {};\n\n const fnPrepareGroupItems = async (columns: IFieldDef[]) => {\n const preparedColumns = await prepareColumns({\n columns: columns,\n bindingContext: storage.data.bindingContext,\n context: storage.context\n });\n\n\n const groupItemsIds = [];\n\n for (const column of preparedColumns) {\n items[column.id] = {\n id: column.id,\n value: column.label,\n description: column.description ? `(${column.description})` : \"\",\n isRequired: !!column.isRequired,\n isDisabled: !!column.isDisabled\n };\n groupItemsIds.push(column.id);\n }\n\n return groupItemsIds;\n };\n\n const currentItems = await fnPrepareGroupItems(storage.data.mergedColumns.filter(column => {\n return isCustomizableColumn(storage, column);\n }));\n\n // all columns from \"columnDefinition\" without the already used columns\n const availableColumns: IFieldDef[] = [];\n\n if (storage.data.definition.columnDefinition) {\n const _add = (def: IFieldDef) => {\n if (currentItems.includes(def.id) || !isCustomizableColumn(storage, def)) {\n return;\n }\n\n availableColumns.push(def);\n };\n const _process = async (columnDefinition: TFieldsDefinition) => {\n for (const [columnName, columnDef] of Object.entries(columnDefinition)) {\n\n if (typeof columnDef.factory === \"function\") {\n const extractedDefinitions = await columnDef.factory(storage);\n extractedDefinitions.forEach(def => _add(def));\n continue;\n }\n\n _add({\n id: columnName,\n ...columnDef\n });\n }\n };\n\n await _process(storage.data.definition.columnDefinition);\n }\n\n const availableItems = await fnPrepareGroupItems(availableColumns);\n\n return {\n items: items,\n groups: {\n [USED_FIELDS_GROUP_ID]: {\n id: USED_FIELDS_GROUP_ID,\n itemIds: currentItems,\n isTransparent: true\n },\n [AVAILABLE_FIELDS_GROUP_ID]: {\n id: AVAILABLE_FIELDS_GROUP_ID,\n itemIds: availableItems,\n isTransparent: true,\n shouldSort: true\n }\n },\n columns: {\n used: {\n id: USED_FIELDS_COLUMN_ID,\n label: storage.t(\"Common:Form.VisibleColumns\"),\n groupIds: [USED_FIELDS_GROUP_ID]\n },\n available: {\n id: AVAILABLE_FIELDS_COLUMN_ID,\n label: storage.t(\"Common:Form.AvailableColumns\"),\n groupIds: [AVAILABLE_FIELDS_GROUP_ID]\n }\n }\n };\n};\n\nexport const convertConfigListToDefinition = (storage: TableStorage, configList: IConfigList): IFieldDef[] => {\n const items = configList.items;\n const usedColumnsGroup = configList.groups[USED_FIELDS_GROUP_ID];\n const usedColumnsItems = usedColumnsGroup.itemIds.map(itemId => items[itemId]);\n const newColumnsDef: IFieldDef[] = usedColumnsItems.map(item => {\n return {\n id: item.id\n };\n });\n\n // put back fields from original columns, that weren't used in the customization dialog\n for (let i = 0; i < storage.data.mergedColumns.length; i++) {\n const column = storage.data.mergedColumns[i];\n\n if (!isCustomizableColumn(storage, column)) {\n newColumnsDef.splice(i, 0, column);\n }\n }\n\n return newColumnsDef;\n};","import React from \"react\";\nimport Dialog from \"../../components/dialog/Dialog\";\nimport ConfigurationList, { IConfigList } from \"../../components/configurationList/ConfigurationList\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { TableStorage } from \"../../model/TableStorage\";\nimport ConfirmationButtons from \"./ConfirmationButtons\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { DASH_CHARACTER } from \"../../constants\";\nimport { convertConfigListToDefinition, convertDefinitionToConfigList } from \"./TableCustomizationDialog.utils\";\nimport { isEqual } from \"lodash\";\n\ninterface IProps extends WithTranslation {\n storage: TableStorage;\n title: string;\n}\n\ninterface IState {\n configList?: IConfigList;\n}\n\n\nclass TableCustomizationDialog extends React.PureComponent {\n static contextType = AppContext;\n //sadly, breaks typescript type checking\n //context: React.ContextType;\n\n state: IState = {\n configList: null\n };\n\n componentDidMount() {\n this.init();\n }\n\n init = async () => {\n this.setState({\n configList: await convertDefinitionToConfigList(this.props.storage)\n });\n };\n\n handleConfigListChange = (configListData: IConfigList) => {\n this.setState({\n configList: configListData\n });\n };\n\n handleCancel = () => {\n this.close();\n };\n\n handleConfirm = async () => {\n const variant = this.props.storage.getVariant();\n const variantColumns = variant?.columns;\n const columns = convertConfigListToDefinition(this.props.storage, this.state.configList).map(column => {\n // keep sort from current variant\n const variantColumn = variantColumns?.find(col => col.id === column.id);\n\n return {\n ...column,\n ...variantColumn\n };\n });\n\n const isColumnsSame = isEqual(columns, variantColumns);\n\n if (!isColumnsSame) {\n this.props.storage.setLocalStorageVariant({\n ...variant,\n columns\n });\n await this.props.storage.updateCurrentTableColumns();\n this.props.storage.refresh();\n }\n\n\n this.close();\n };\n\n close = () => {\n this.props.storage.setCustomData({\n isCustomizationDialogOpen: false\n });\n this.props.storage.refresh();\n };\n\n\n render() {\n return (\n }>\n {this.state.configList &&\n \n }\n \n );\n }\n}\n\nexport default withTranslation([\"Common\"])(TableCustomizationDialog);","import { AlertPosition } from \"@components/alert/Alert\";\nimport { ISmartFieldChange } from \"@components/smart/smartField/SmartField\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { TCustomRowAction } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { IRow, IRowAction, ISort, TId } from \"@components/table\";\nimport { IRowProps } from \"@components/table/Rows\";\nimport { ITabValue } from \"@components/tabs\";\nimport { IToolbarItem, TToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getValueTypeFromProperty } from \"@odata/FieldInfo.utils\";\nimport { transformToODataString } from \"@odata/OData.utils\";\nimport { ExportType } from \"@utils/ExcelExport\";\nimport { isDefined, isObjectEmpty } from \"@utils/general\";\nimport { KeyboardShortcut } from \"@utils/keyboardShortcutsManager/KeyboardShorcutsManager.utils\";\nimport { ITextListGroup } from \"@utils/pdfPrinting/PdfPrinting\";\nimport { debounce } from \"lodash\";\nimport React, { Component, ReactElement } from \"react\";\nimport SimpleBar from \"simplebar-react\";\n\nimport { BreadCrumbProvider, THistoryBack } from \"../../components/breadCrumb\";\nimport SmartDrillDownFilters from \"../../components/drillDown/SmartDrillDownFilters\";\nimport { IProps as IIconProps } from \"../../components/icon\";\nimport { IProps as ISmartFilterBarProps } from \"../../components/smart/smartFilterBar/SmartFilterBar\";\nimport { IProps as ISmartTableProps, SmartTable } from \"../../components/smart/smartTable/SmartTable\";\nimport SmartTableSortingDialog from \"../../components/smart/smartTable/SmartTableSortingDialog\";\nimport { INPUT_DEBOUNCE_TIME } from \"../../constants\";\nimport { AppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { PortalRootElementProvider } from \"../../contexts/portalRootElement/PortalRootElementProvider\";\nimport { GroupStatus, QueryParam, RowAction, Status, ValueType } from \"../../enums\";\nimport { IModifierKeys, TRecordAny, TRecordString, TValue } from \"../../global.types\";\nimport { IAfterSaveEventArgs, ModelEvent } from \"../../model/Model\";\nimport { IFilterQuery, ITableStorageDefaultCustomData } from \"../../model/TableStorage\";\nimport BindingContext, { createBindingContext, IEntity, TEntityKey } from \"../../odata/BindingContext\";\nimport { getQueryParameters } from \"../../routes/Routes.utils\";\nimport KeyboardShortcutsManager from \"../../utils/keyboardShortcutsManager/KeyboardShortcutsManager\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport memoizeOne, { IMemoized } from \"../../utils/memoizeOne\";\nimport { FormStorage } from \"../formView/FormStorage\";\nimport { SmartHeaderStyled } from \"../formView/FormView.styles\";\nimport View, { IViewProps } from \"../View\";\nimport { IProps as IConfirmationButtonProps } from \"./ConfirmationButtons\";\nimport TableCustomizationDialog from \"./TableCustomizationDialog\";\nimport TablePrintDialog from \"./TablePrintDialog\";\nimport TableToolbar from \"./TableToolbar\";\nimport { ICustomButtonDefArgs, TableButtonsAction, TableButtonsActionType } from \"./TableToolbar.utils\";\nimport { getConfirmationActionText } from \"./TableView.render.utils\";\nimport { SmartFilterBarStyled, StyledTableTabs, TableAlert, TableWrapper, TopWrapper } from \"./TableView.styles\";\nimport {\n getCachedFilter,\n getRowActionFromTableAction,\n handleExportButton,\n handleSortChange,\n isDraftView,\n ISplitPageTableDef,\n ITableDefTabData,\n SECONDARY_FILTERS_ALL,\n TTableViewTabSettings\n} from \"./TableView.utils\";\n\n\nexport interface ITableViewBaseProps {\n hideDrilldown?: boolean;\n hideBusyIndicator?: boolean;\n storage?: TSmartODataTableStorage;\n // for dialog forms storage of \"bottom\" form, otherwise undef\n rootStorage?: FormStorage;\n formStorage?: FormStorage;\n onFormRefreshNeeded?: () => void;\n onRowSelect?: (bindingContext: BindingContext, props?: IRowProps, params?: TRecordString, customData?: TRecordAny) => void;\n onRemovedRows?: (rows: BindingContext[]) => void;\n onActiveRowActionCountChange?: (count: number) => void;\n onTableLoad?: () => void;\n onAdd?: (type?: string) => void;\n onAddingRowCancel?: () => void;\n parents?: IEntity[];\n parentEntity?: IEntity;\n onParentKeyChange?: (id: TEntityKey) => void;\n onFormDisabledChange?: (disabled: boolean) => void;\n ref?: React.Ref;\n drilldown?: React.ReactElement | ((row: IRow) => React.ReactElement);\n back?: THistoryBack;\n onTableActionChange?: (action: TableButtonsAction | string) => void;\n}\n\nexport interface ITableViewBaseState {\n selectedSecondaryFilter?: string;\n secondaryFilterValues?: ITabValue[];\n tabSettings?: TTableViewTabSettings;\n isTableActionInProgress?: boolean;\n}\n\nexport interface IHandleCustomActionArgs {\n update?: boolean;\n value?: TValue;\n}\n\nclass TableView

    extends Component {\n static contextType = AppContext;\n // context: React.ContextType;\n static defaultProps: Partial;\n\n tableRef = React.createRef();\n _scrollBarInstanceRef = React.createRef();\n _unsubscribeKeyboardShortcuts: () => void;\n\n constructor(props: P) {\n super(props);\n\n // methods that are extended by the inherited classes needs to be created as functions, meaning they need to be bound\n this.handleClearFilter = this.handleClearFilter.bind(this);\n this.getFilter = this.getFilter.bind(this);\n this.getTableSharedProps = this.getTableSharedProps.bind(this);\n this.handleTableLoad = this.handleTableLoad.bind(this);\n this.handleFormAfterSave = this.handleFormAfterSave.bind(this);\n this.handleTabChange = this.handleTabChange.bind(this);\n this.getToolbarButtons = this.getToolbarButtons.bind(this);\n this.getConfirmText = this.getConfirmText.bind(this);\n this.getDisabledButtons = this.getDisabledButtons.bind(this);\n this.rowsFactory = this.rowsFactory.bind(this);\n this.handleTableButtonClick = this.handleTableButtonClick.bind(this);\n this.isLoaded = this.isLoaded.bind(this);\n this.isTableAction = this.isTableAction.bind(this);\n this.setTableAction = this.setTableAction.bind(this);\n this.isRowWithoutAction = this.isRowWithoutAction.bind(this);\n this.handleCustomAction = this.handleCustomAction.bind(this);\n this.handleToolbarConfirm = this.handleToolbarConfirm.bind(this);\n this.handleToolbarCancel = this.handleToolbarCancel.bind(this);\n this.handleKeyboardShortcut = this.handleKeyboardShortcut.bind(this);\n\n if (props.rootStorage) {\n // make root storage available in the dialog page storage, e.g.\n // so that we can access it in callbacks like filters\n props.storage.setCustomData({\n rootStorage: props.rootStorage\n });\n }\n\n this.props.storage.applyFilters();\n\n // tabs functionality\n let selectedSecondaryFilter = getQueryParameters()[QueryParam.DefaultTab] ?? LocalSettings.get(this.props.storage.id).selectedTab ?? this.props.storage.data.definition.tabs?.[0]?.id;\n\n // defensive check - we could've changed id of the filters\n // remove selectedSecondaryFilter if that id doesn't actually exist in definition\n if (!this.props.storage.data.definition.tabs?.find(tab => tab.id === selectedSecondaryFilter)) {\n selectedSecondaryFilter = null;\n }\n\n this.state = {\n ...this.state,\n selectedSecondaryFilter: selectedSecondaryFilter,\n isTableActionInProgress: false,\n tabSettings: {\n data: this.props.storage.data.definition.tabs ?? [],\n additionalData: [],\n ...this.props.storage.data.definition.tabsSettings\n }\n };\n\n this.applySecondaryFilter(selectedSecondaryFilter);\n\n this._unsubscribeKeyboardShortcuts = KeyboardShortcutsManager.subscribe({\n shortcuts: [KeyboardShortcut.ALT_N, KeyboardShortcut.CTRL_Q],\n callback: this.handleKeyboardShortcut\n });\n }\n\n // or handled manually for custom content\n get shouldApplyTabsAsSecondaryFilter(): boolean {\n return this.hasTabs && (!!this.props.storage.data.definition.tabsSettings?.filterFieldName || !!this.props.storage.data.definition.tabsSettings?.customFilter);\n }\n\n get shouldRenderBreadcrumbs(): boolean {\n return true;\n }\n\n get hasTabs(): boolean {\n return !!this.props.storage.data.definition.tabs;\n }\n\n get isAddingRow(): boolean {\n return !!this.props.storage.data.addingRow;\n }\n\n get isAddingNew(): boolean {\n return this.isAddingRow && !getQueryParameters()[QueryParam.DraftId];\n }\n\n get isToolbarDisabled(): boolean {\n return !this.props.storage.tableAPI?.getState().loaded;\n }\n\n applySecondaryFilter = (tabId: string = this.state.selectedSecondaryFilter): void => {\n if (!this.shouldApplyTabsAsSecondaryFilter) {\n return null;\n }\n\n const filter = this.createTabFilterQuery(tabId);\n\n this.props.storage.store({ customSecondaryFilter: filter });\n };\n\n getRowAction: IMemoized<[], TCustomRowAction> = memoizeOne((): TCustomRowAction => {\n if (!this.isTableAction()) {\n return null;\n }\n\n return {\n actionType: this.getRowActionType(),\n isRowWithoutAction: this.isRowWithoutAction,\n ...this.getCustomRowAction()\n };\n }, () => [this.getCustomRowAction(), this.getTableAction()]);\n\n // prepared to be overridden, enforce memoization\n getCustomRowAction: IMemoized<[], TCustomRowAction> = memoizeOne((): TCustomRowAction => {\n return null;\n });\n\n // prepared to be overridden\n // row status icon, the black one when no action is active\n getRowIcon = (id: TId, row: IRowProps, rowAction: IRowAction): React.ComponentType => {\n return null;\n };\n\n isLoaded(): boolean {\n return !this.shouldApplyTabsAsSecondaryFilter || !!this.state.secondaryFilterValues;\n }\n\n shouldComponentUpdate(nextProps: P, nextState: S): boolean {\n return nextState.isTableActionInProgress !== this.state.isTableActionInProgress;\n }\n\n componentDidMount() {\n this.updateSecondaryQueryValues();\n\n this.props.storage.emitter.on(ModelEvent.AfterSave, this.handleFormAfterSave);\n }\n\n componentWillUnmount() {\n this._unsubscribeKeyboardShortcuts?.();\n\n this.props.storage.emitter.off(ModelEvent.AfterSave, this.handleFormAfterSave);\n }\n\n beforeRefresh = async (): Promise => {\n await this.updateSecondaryQueryValues();\n };\n\n createTabFilterQuery = (id: string): string => {\n const { tabSettings } = this.state;\n const data = [...(tabSettings.data || []), ...(tabSettings.additionalData || [])];\n const tabDef = data.find(tabDef => tabDef.id === id);\n return this.getTabQuery(tabDef);\n };\n\n handleKeyboardShortcut(shortcut: KeyboardShortcut, event: KeyboardEvent): boolean {\n if (shortcut === KeyboardShortcut.ALT_N) {\n if (!this.getToolbarButtons()?.includes(TableButtonsAction.Add)) {\n return false;\n }\n this.handleAdd();\n return true;\n } else if (shortcut === KeyboardShortcut.CTRL_Q) {\n this.handleAddingRowCancel();\n return true;\n }\n\n return false;\n }\n\n handleAdd(type?: string): void {\n this.props.onAdd?.(type);\n }\n\n handleTabChange(id: string): void {\n LocalSettings.set(this.props.storage.id, { selectedTab: id });\n this.setState({\n selectedSecondaryFilter: id\n });\n this.applySecondaryFilter(id);\n\n if (this.shouldApplyTabsAsSecondaryFilter) {\n // let value helpers know about the change\n this.props.storage.emitter.emit(ModelEvent.FilterChanged);\n }\n\n this.forceUpdate();\n }\n\n getTabQuery = (tabDef: ITableDefTabData): string => {\n if (!tabDef || tabDef.id === SECONDARY_FILTERS_ALL) {\n return \"\";\n }\n\n if (this.state.tabSettings.customFilter) {\n return this.state.tabSettings.customFilter(tabDef.id, this.props.rootStorage);\n }\n\n if (tabDef.filterNames) {\n return `${this.state.tabSettings.filterFieldName} in (${transformToODataString(tabDef.filterNames, ValueType.String)})`;\n }\n\n if (isDefined(tabDef.value)) {\n const type = getValueTypeFromProperty(this.props.storage.data.bindingContext.navigate(this.state.tabSettings.filterFieldName).getProperty());\n return `${this.state.tabSettings.filterFieldName} eq ${transformToODataString(tabDef.value, type)}`;\n }\n\n return `${this.state.tabSettings.filterFieldName} eq '${tabDef.id}'`;\n };\n\n // tabs in definition can be either automatically used for filtering (if filterFieldName is set)\n\n getSecondaryTabsCount = async (filter = \"\"): Promise => {\n const path = this.props.storage.data.bindingContext.toString();\n\n const query = this.props.storage.oData.fromPath(path).query()\n .filter(filter)\n .groupBy(this.state.tabSettings.filterFieldName)\n .aggregate(\"$count as @odata.count\");\n\n const result = (await query.fetchData())?.value;\n const secondaryFilterValues: ITabValue[] = [];\n\n for (const status of this.state.tabSettings.data) {\n if (status.id === SECONDARY_FILTERS_ALL) {\n secondaryFilterValues.push({\n id: SECONDARY_FILTERS_ALL,\n value: result?.reduce((sum, current) => sum + current._metadata[\"\"].count, 0)\n });\n } else {\n const _getCount = (name: string) => {\n return result?.find(res =>\n res[this.state.tabSettings.filterFieldName]?.toLowerCase?.() === name\n || (isDefined(status.value) && res[this.state.tabSettings.filterFieldName] === status.value)\n )?._metadata[\"\"]?.count ?? 0;\n };\n\n let count = 0;\n if (status.filterNames?.length > 0) {\n count = status.filterNames.reduce((prevValue: number, name: string) => {\n return prevValue + _getCount(name?.toLowerCase());\n }, 0);\n\n } else {\n count = _getCount(status.id?.toLowerCase());\n }\n\n secondaryFilterValues.push({\n id: status.id,\n value: count\n });\n }\n }\n\n return secondaryFilterValues;\n };\n\n updateSecondaryQueryValues = memoizeOne(async (): Promise => {\n if (!this.shouldApplyTabsAsSecondaryFilter) {\n return null;\n }\n\n const filter = this.props.storage.data.filterQuery;\n let secondaryFilterValues: ITabValue[];\n\n if (this.state.tabSettings?.withoutCounts) {\n secondaryFilterValues = [];\n } else if (!filter?.isInvalid) {\n secondaryFilterValues = await this.getSecondaryTabsCount(filter?.secondaryTabsValuesQuery);\n }\n\n if (secondaryFilterValues) {\n this.setState({\n secondaryFilterValues\n });\n\n this.forceUpdate();\n }\n }, () => [this.props.storage.data.uuid, this.shouldApplyTabsAsSecondaryFilter, this.state.tabSettings?.withoutCounts, this.props.storage.data.filterQuery]);\n\n // updateSecondaryQueryValues is memoized,\n // this will clear its cache and call it\n forceUpdateSecondaryQueryValues = (): Promise => {\n this.updateSecondaryQueryValues.reset();\n\n return this.updateSecondaryQueryValues();\n };\n\n reloadTableAndTabsValues = async (): Promise<[void, void]> => {\n return await Promise.all([\n this.props.storage.tableAPI.reloadTable(),\n this.forceUpdateSecondaryQueryValues()\n ]);\n };\n\n performFilterChangeSync = (): void => {\n this.props.storage.applyFilters();\n this.updateSecondaryQueryValues();\n this.forceUpdate();\n };\n\n performFilterChange = debounce(() => {\n this.performFilterChangeSync();\n }, INPUT_DEBOUNCE_TIME);\n\n handleFilterChange = (args: ISmartFieldChange, storeVariantOnChange = true): void => {\n if (args) { // can be called without args, just to refresh filter query value from already changed filter data\n this.props.storage.handleFilterChange(args, storeVariantOnChange);\n }\n this.props.storage.refreshFields();\n this.performFilterChange();\n };\n\n handleExpandFinish = (): void => {\n // when we only filter one or two values in table and the width of the window is small\n // SimpleBar won't show when the filter bar is expanded and user can't scroll to the bottom of the page\n // => manually call recalculate\n this._scrollBarInstanceRef.current?.recalculate();\n };\n\n getFilter(): IFilterQuery {\n const currentQuery = this.props.storage.data.filterQuery;\n\n return getCachedFilter(currentQuery, this.props.storage.data.customSecondaryFilter);\n }\n\n // prepared to be overridden\n getCustomButtonDef(type: TableButtonsActionType, args: ICustomButtonDefArgs): IToolbarItem {\n return null;\n }\n\n // prepared to be overridden\n overrideDefaultToolbarButtonDef(defaultItem: IToolbarItem): IToolbarItem {\n return defaultItem;\n }\n\n getCustomPrintTextListGroups(): ITextListGroup[] {\n const tab = [...(this.state.tabSettings.data ?? []), ...this.state.tabSettings.additionalData].find(tab => tab.id === this.state.selectedSecondaryFilter);\n\n if (!tab || tab?.id === SECONDARY_FILTERS_ALL) {\n return [];\n }\n\n return [\n {\n label: `${this.props.storage.t(\"Common:General.SelectedTab\")}`,\n subGroups: [{\n values: [tab?.title?.toUpperCase() ?? this.state.selectedSecondaryFilter]\n }]\n }\n ];\n }\n\n get customToolbarItems(): IToolbarItem[] {\n // prepared to be overridden\n return null;\n }\n\n handlePdfExport = (): void => {\n // since the TableView is used for inheritance\n // it is more practical to use storage customData instead of state\n this.props.storage.setCustomData({\n isTableReady: false,\n showPdfExport: true\n });\n\n this.forceUpdate();\n };\n\n handleClearFilter(): boolean {\n const filtersChanged = this.props.storage.clearFilters();\n\n if (filtersChanged) {\n this.updateSecondaryQueryValues();\n this.forceUpdate();\n }\n\n return filtersChanged;\n }\n\n isCollapsible = (def: ISplitPageTableDef): boolean => {\n return !!def?.hierarchy;\n };\n\n get isExpandable(): boolean {\n const tableState = this.props.storage.tableAPI?.getState();\n\n return tableState?.allGroupStatus !== GroupStatus.Expanded;\n }\n\n expandAll = (): void => {\n this.props.storage.tableAPI.toggleAllGroups(GroupStatus.Expanded);\n };\n\n collapseAll = (): void => {\n this.props.storage.tableAPI.toggleAllGroups(GroupStatus.Collapsed);\n };\n\n handleGroupToggle = (): void => {\n this.forceUpdate();\n };\n\n async setTableAction(action: TableButtonsAction | string, active?: boolean, shouldDisableForm = true): Promise {\n let tableAction = null;\n\n if (action === null) {\n active = false;\n }\n\n if (active) {\n tableAction = action;\n }\n\n if (shouldDisableForm) {\n this.props.onFormDisabledChange?.(active);\n }\n\n this.props.storage.data.tableAction = tableAction;\n this.props.onTableActionChange?.(tableAction);\n this.props.storage.refresh();\n }\n\n getRowActionType = (): RowAction => {\n return getRowActionFromTableAction(this.getTableAction());\n };\n\n\n isTableAction(action?: TableButtonsAction | string): boolean {\n const tableAction = this.getTableAction();\n\n if (action) {\n return tableAction === action;\n } else {\n return !!tableAction;\n }\n }\n\n getTableAction = (): TableButtonsAction | string => {\n return this.props.storage.tableAction;\n };\n\n getDisabledButtons(disableAll?: boolean): TableButtonsActionType[] {\n const tableAction = this.getTableAction();\n const disabledButtons = [];\n\n const isAddingNew = this.isAddingRow;\n\n if (tableAction || disableAll || isAddingNew) {\n [\n TableButtonsAction.Add,\n TableButtonsAction.Remove,\n TableButtonsAction.Lock,\n TableButtonsAction.MassEdit,\n TableButtonsAction.CSVExport,\n TableButtonsAction.XLSXExport,\n TableButtonsAction.Sorting,\n TableButtonsAction.Settings,\n TableButtonsAction.ToggleDraftView\n ].filter(action => action !== tableAction && (!isAddingNew || (action !== TableButtonsAction.Add))).forEach(action => {\n disabledButtons.push(action);\n });\n }\n\n if (this.props.storage.tableAPI?.getState().allGroupStatus === GroupStatus.Unknown || isAddingNew) {\n disabledButtons.push(TableButtonsAction.ExpandCollapseAll);\n }\n\n if (this.props.storage.tableAPI?.getState().rowCount === 0) {\n disabledButtons.push(\n TableButtonsAction.Remove,\n TableButtonsAction.MassEdit,\n TableButtonsAction.CSVExport,\n TableButtonsAction.XLSXExport,\n TableButtonsAction.ExpandCollapseAll,\n TableButtonsAction.Lock);\n }\n\n return disabledButtons;\n }\n\n async handleToolbarConfirm(): Promise {\n this.setState({\n isTableActionInProgress: true\n });\n\n const refreshNeeded = await this.props.storage.tableAPI.confirmAction();\n\n // often, we need to reload tabs after confirming an action => clear cache\n this.updateSecondaryQueryValues.reset();\n\n await this.setTableAction(null);\n\n this.setState({\n isTableActionInProgress: false\n });\n\n if (refreshNeeded) {\n this.props.onFormRefreshNeeded();\n }\n }\n\n handleToolbarCancel(): void {\n if (this.isTableAction()) {\n this.props.storage.tableAPI.cancelAction();\n this.setTableAction(null);\n this.props.onFormDisabledChange?.(false);\n this.props.onActiveRowActionCountChange?.(0);\n }\n }\n\n isDraftView = (): boolean => {\n return isDraftView(this.props.storage);\n };\n\n getToolbarButtons(): TableButtonsActionType[] {\n const def = this.props.storage.data.definition;\n return [\n TableButtonsAction.Add,\n TableButtonsAction.Remove,\n ...(def.lockProperty ? [TableButtonsAction.Lock] : []),\n ...(def.massEditableDef && !isObjectEmpty(def.massEditableDef) ? [TableButtonsAction.MassEdit] : []),\n TableButtonsAction.CSVExport,\n TableButtonsAction.XLSXExport,\n TableButtonsAction.PdfExport,\n TableButtonsAction.Sorting,\n TableButtonsAction.Settings,\n ...(this.isCollapsible(def) ? [TableButtonsAction.ExpandCollapseAll] : [])\n ];\n }\n\n getStaticToolbarItems = (): TToolbarItem[] => null;\n\n getConfirmText(tableAction: TableButtonsAction | string): string | React.ReactElement {\n // todo this will show wrong number if toggle all checkbox is clicked and not all rows are loaded (when there are more rows than 100)\n const activeRowActionCount = this.props.storage.tableAPI?.getState().activeRows.size;\n\n const text = this.props.storage.t(`Common:TableAction.${tableAction}`);\n\n // we don't display counts when selecting only one row\n if (getRowActionFromTableAction(tableAction) === RowAction.Custom && this.getCustomRowAction()?.isSingleSelect) {\n return text;\n }\n\n return getConfirmationActionText(text, activeRowActionCount);\n }\n\n canConfirmToolbarAction = (): boolean => {\n return this.props.storage.tableAPI?.getState().changedRows.size > 0;\n };\n\n handleTableButtonClick(key: TableButtonsActionType, value: TValue): void {\n switch (key) {\n case TableButtonsAction.Add:\n this.handleAdd();\n break;\n case TableButtonsAction.Lock:\n case TableButtonsAction.MassEdit:\n case TableButtonsAction.Remove:\n if (!this.isTableAction(key)) {\n this.setTableAction(key, true);\n }\n break;\n case TableButtonsAction.XLSXExport:\n handleExportButton(this.props.storage, ExportType.XLSX, this.getFilter()?.query);\n break;\n case TableButtonsAction.CSVExport:\n handleExportButton(this.props.storage, ExportType.CSV, this.getFilter()?.query);\n break;\n case TableButtonsAction.PdfExport:\n this.handlePdfExport();\n break;\n case TableButtonsAction.ExpandCollapseAll:\n if (this.isExpandable) {\n this.expandAll();\n } else {\n this.collapseAll();\n }\n break;\n case TableButtonsAction.Sorting:\n this.props.storage.setCustomData({\n isSortingDialogOpen: true\n });\n this.props.storage.refresh();\n break;\n case TableButtonsAction.Settings:\n this.props.storage.setCustomData({\n isCustomizationDialogOpen: true\n });\n this.props.storage.refresh();\n break;\n default:\n this.handleCustomAction(key, { value });\n }\n }\n\n // prepared to be overridden\n customToolbarContent = (): IToolbarItem[] => this.customToolbarItems;\n\n getCustomFilterBarProps(): Partial {\n return {};\n }\n\n getActiveButtons(): TableButtonsActionType[] {\n const tableAction = this.getTableAction() as TableButtonsAction;\n return this.isAddingRow && !getQueryParameters()[QueryParam.DraftId] ? [TableButtonsAction.Add] : this.isTableAction() ? [tableAction] : null;\n }\n\n getSelectedRowsCount = (): number => {\n return this.props.storage.tableAPI?.getState()?.changedRows?.size;\n };\n\n getConfirmationButtonsProps = memoizeOne<[], IConfirmationButtonProps>(() => {\n const tableAction = this.getTableAction() as TableButtonsAction;\n\n if (!tableAction) {\n return null;\n }\n\n const isConfirmDisabled = !this.canConfirmToolbarAction();\n const isBothDisabled = this.state.isTableActionInProgress;\n const isLoadingCount = this.props.storage.tableAPI?.getState().loadingActionCount;\n\n return {\n confirmText: this.getConfirmText(tableAction),\n onCancel: this.handleToolbarCancel,\n onConfirm: this.handleToolbarConfirm,\n isDisabled: isConfirmDisabled || isBothDisabled,\n cancelButtonProps: isBothDisabled ? {\n isDisabled: true\n } : null,\n confirmButtonProps: isLoadingCount ? {\n isBusy: isLoadingCount\n } : null\n };\n }, () => {\n const tableAction = this.getTableAction() as TableButtonsAction;\n const tableState = this.props.storage.tableAPI?.getState();\n return [tableAction, this.getSelectedRowsCount(), this.state.isTableActionInProgress, this.getConfirmText(tableAction), tableState?.loadingActionCount];\n });\n\n renderToolbar(visibleButtons = this.getToolbarButtons()): React.ReactElement {\n\n return (\n \n {this.customToolbarContent()}\n \n );\n }\n\n renderFilterBar(): React.ReactElement {\n return (\n <>\n \n \n \n );\n }\n\n renderCustomizationDialog = (): ReactElement => {\n return this.props.storage.getCustomData().isCustomizationDialogOpen &&\n ;\n };\n\n renderSortingDialog = (): ReactElement => {\n return this.props.storage.getCustomData().isSortingDialogOpen &&\n ;\n };\n\n renderTabs(tabData = this.state.tabSettings?.data): ReactElement {\n return (\n \n );\n }\n\n handleFormAfterSave(args: IAfterSaveEventArgs): void {\n // prepared for redefinition when some table view want to handle the event\n }\n\n handleTableLoad(): void {\n if (!this.props.storage.getCustomData().isTableReady) {\n this.props.storage.setCustomData({\n isTableReady: true\n });\n\n // todo: do we want to call this only for the first time? We can call it always and if someone want only for\n // first time, he may check the isTableReady flag (if we change order of this method call and setting the flag)\n this.props.storage.getCustomData().customOnAfterLoadFn?.();\n }\n this.props.onTableLoad?.();\n // we need to rerender in case table has no data (toolbar items gets disabled)\n // -> needs to be done always, not only on first load, so if user deletes last item\n // or add first item, toolbar gets disabled or stop being disabled\n this.forceUpdate();\n }\n\n handleToolbarRefreshNeeded = (): void => {\n this.forceUpdate();\n };\n\n handleRowSelect = (bindingContext: BindingContext, props?: IRowProps, modifiers?: IModifierKeys): void => {\n this.props.onRowSelect?.(bindingContext);\n };\n\n handleActiveRowActionCountChange = (count: number): void => {\n this.props.onActiveRowActionCountChange?.(count);\n // refresh would reload secondary query filters, we just need to rerender confirmation buttons\n this.forceUpdate();\n };\n\n onBeforeFetch = async (): Promise => {\n // prepared to be overridden\n };\n\n rowsFactory(rows: IRow[]): IRow[] {\n // prepared to be overridden\n return rows;\n }\n\n isRowWithoutAction(rowId: TId, action: RowAction, row: IRow): boolean {\n // prepared to be overridden\n return null;\n }\n\n handleCustomAction(action: string, { update = true, value }: IHandleCustomActionArgs = {}): void {\n // prepared to be overridden\n this.setTableAction(action, true, true);\n }\n\n getChildColumns = memoizeOne(() => {\n return this.props.storage.data.definition.childColumns\n ?.filter(\n (col) => this.props.storage.data.mergedColumns.find(mergedColumn => {\n return mergedColumn.id === col.id || mergedColumn.id.split(\"/\").slice(-1)[0] === col.id;\n })\n );\n }, () => [this.props.storage.data.definition.childColumns, this.props.storage.data.mergedColumns]);\n\n handleSortChange = (sort: ISort[]): void => {\n handleSortChange(this.props.storage, sort);\n };\n\n getSelectedRows = memoizeOne(() => {\n const bc = this.props.storage.data.rowBindingContext;\n\n return bc ? [bc] : [];\n }, () => [this.props.storage.data.rowBindingContext]);\n\n getAdditionalProperties = memoizeOne((isDraft: boolean) => {\n return this.props.storage.data.definition.additionalProperties ?? [];\n }, () => [this.props.storage.data.definition.additionalProperties]);\n\n getDraftBindingContextMemoized = memoizeOne(() => {\n const draftDef = this.props.storage.data.definition.draftDef;\n return createBindingContext(draftDef.draftEntitySet, this.props.storage.oData.metadata);\n });\n\n handleAddingRowCancel = (): void => {\n this.props.onAddingRowCancel?.();\n };\n\n // !WARNING! none of the references can't change between renders (everything has to keep same reference - be memoized)\n // otherwise infinite re-render loop will happen (e.g. on pdf export)\n getTableSharedProps(): ISmartTableProps & { key: string } {\n const { storage } = this.props;\n const { definition } = storage.data;\n return {\n rowsFactory: this.rowsFactory,\n rowAction: this.getRowAction(),\n getRowIcon: this.getRowIcon,\n additionalProperties: this.getAdditionalProperties(this.isDraftView()),\n storage,\n formStorage: this.props.formStorage,\n onBeforeFetch: this.onBeforeFetch,\n onAddingRowCancel: this.handleAddingRowCancel,\n addingRow: !!getQueryParameters()[QueryParam.DraftId] || !!getQueryParameters()[QueryParam.Drafts] ? null : storage.data.addingRow,\n addingRowParent: this.props.formStorage?.data.customData?.Parent?.toString(),\n bindingContext: this.isDraftView() ? this.getDraftBindingContextMemoized() : storage.data.bindingContext,\n initialSortBy: storage.getInitialSortOrder(),\n onSortChange: this.handleSortChange,\n columns: storage.getMergedColumns(this.isDraftView()),\n // child columns don't have own columnDefinition that would add them into table configuration dialog\n // => use columns that are already add in mergedColumns\n // so far, only used in LabelsHierarchyDef\n childColumns: this.getChildColumns(),\n hierarchy: definition.hierarchy,\n filter: this.getFilter(),\n querySettings: storage.data.definition.querySettings,\n lockProperty: definition.lockProperty,\n key: storage.data.uuid,\n onRowSelect: this.handleRowSelect,\n onRemovedRows: this.props.onRemovedRows,\n onActiveRowActionCountChange: this.handleActiveRowActionCountChange,\n selectedRows: this.getSelectedRows(),\n hideDrilldown: this.props.hideDrilldown,\n hideBusyIndicator: this.props.hideBusyIndicator,\n tableId: definition.id,\n onAfterTableLoad: this.handleTableLoad,\n onToolbarRefreshNeeded: this.handleToolbarRefreshNeeded,\n onGroupToggle: this.handleGroupToggle,\n isForPrint: storage.getCustomData().showPdfExport,\n loadAll: storage.getCustomData().showPdfExport,\n passRef: this.tableRef,\n groupedRows: storage.getCustomData().groupedRows,\n groupBy: definition.groupBy,\n drilldown: this.props.drilldown\n };\n }\n\n handlePrintDialogClose = (): void => {\n this.props.storage.setCustomData({\n showPdfExport: false\n });\n\n this.forceUpdate();\n };\n\n renderPrintDialog = (): React.ReactElement => {\n if (!this.props.storage.getCustomData().showPdfExport) {\n return null;\n }\n\n return (\n \n );\n };\n\n renderDefaultDialogs(): React.ReactElement {\n return (\n <>\n {this.renderPrintDialog()}\n {this.renderCustomizationDialog()}\n {this.renderSortingDialog()}\n \n );\n }\n\n renderAlert = (): React.ReactElement => {\n // otherwise render alert from storage\n const { alert } = this.props.storage.data;\n if (!alert) {\n return null;\n }\n const _close = () => {\n delete this.props.storage.data.alert;\n this.forceUpdate();\n };\n\n const isSuccess = alert?.status === Status.Success;\n const position = alert?.position ?? (isSuccess ? AlertPosition.CenteredBottom : AlertPosition.Default);\n const useFade = alert?.useFade ?? isSuccess;\n const isFullWidth = alert?.isFullWidth ?? (position === AlertPosition.Default);\n\n return (\n <>\n {alert &&\n \n }\n \n );\n };\n\n renderSmartHeader(): React.ReactNode {\n return (\n \n );\n }\n\n renderTable(): React.ReactNode {\n return (\n \n \n \n );\n }\n\n renderBreadCrumbs(): React.ReactNode {\n return (\n \n );\n }\n\n getViewProps(): Partial {\n return {};\n }\n\n render() {\n const viewProps = this.getViewProps();\n\n return (\n <>\n {this.shouldRenderBreadcrumbs && this.renderBreadCrumbs()}\n \n \n \n {this.renderSmartHeader()}\n {this.renderFilterBar()}\n {this.renderAlert()}\n {this.hasTabs && this.renderTabs()}\n {this.renderToolbar()}\n \n {this.renderTable()}\n \n {this.renderDefaultDialogs()}\n \n \n );\n }\n}\n\nexport default TableView;","import { getFilterBarItemRenderValue } from \"@components/filterBar/FilterBar.utils\";\nimport { IFieldDef, TInfoValue } from \"@components/smart/FieldInfo\";\nimport { IFilterGroupDef } from \"@components/smart/smartFilterBar/SmartFilterBar.types\";\nimport { TSmartODataTableStorage } from \"@components/smart/smartTable/SmartODataTableBase\";\nimport { prepareColumns } from \"@components/smart/smartTable/SmartTable.utils\";\nimport { ICellValueObject, IColumn, ISort } from \"@components/table\";\nimport { ITabData, ITabsProps } from \"@components/tabs\";\nimport { IToolbarItem } from \"@components/toolbar/Toolbar.types\";\nimport { getNestedValue } from \"@odata/Data.utils\";\nimport { getFieldInfo, IFieldInfo } from \"@odata/FieldInfo.utils\";\nimport { EntitySetName, EntityTypeName } from \"@odata/GeneratedEntityTypes\";\nimport { ActionTypeCode } from \"@odata/GeneratedEnums\";\nimport {\n getDefaultLogActionDetail,\n getFilterSentence,\n IFormatOptions,\n IPrepareQuerySettings,\n logAction,\n prepareQuery\n} from \"@odata/OData.utils\";\nimport { IFetchDefinition, TFieldsDefinition } from \"@pages/PageUtils\";\nimport { ReportId } from \"@pages/reports/ReportIds\";\nimport { isNotDefined } from \"@utils/general\";\nimport { ITextListGroup, ITextListSubGroup } from \"@utils/pdfPrinting/PdfPrinting\";\nimport { saveAs } from \"file-saver\";\nimport { TFunction } from \"i18next\";\n\nimport {\n ConditionType,\n IComplexFilter,\n isComplexFilterArr,\n isValueHelperField\n} from \"../../components/smart/smartValueHelper\";\nimport { IAppContext } from \"../../contexts/appContext/AppContext.types\";\nimport { LogicOperator, RowAction, TableViewMode, ToolbarItemType } from \"../../enums\";\nimport { TRecordAny, TValue } from \"../../global.types\";\nimport { StorageModel } from \"../../model/StorageModel\";\nimport { IFilterQuery, TableStorage } from \"../../model/TableStorage\";\nimport BindingContext, { IEntity } from \"../../odata/BindingContext\";\nimport ExcelExport, { ExportType } from \"../../utils/ExcelExport\";\nimport LocalSettings from \"../../utils/LocalSettings\";\nimport memoizeOne from \"../../utils/memoizeOne\";\nimport { TableButtonsAction } from \"./TableToolbar.utils\";\n\nexport const SECONDARY_FILTERS_ALL: string = null;\nexport const SECONDARY_FILTER_ALL_URL_NAME = \"%00\";\n\nexport interface IChangedFilter {\n info: IFieldInfo;\n value: TValue;\n bindingContext: BindingContext;\n}\n\nexport interface ISplitPageTableDef extends ITableDef {\n filterBarDef?: IFilterGroupDef[];\n parentDefinition?: IFetchDefinition;\n // definition for tabs shown above table\n tabs?: ITableDefTabData[];\n // additional settings for tabs\n tabsSettings?: TITableDefTabSettings;\n massEditableDef?: TFieldsDefinition;\n lockProperty?: string;\n // disable variant load and storing localStorage variant, mainly for pairing tableViews\n preventStoreVariant?: boolean;\n draftDef?: IDraftTableSettings;\n}\n\ninterface IDraftTableSettings {\n draftEntitySet: EntitySetName;\n draftProperty: keyof E;\n draftFilter?: string;\n draftPropsBlacklist?: string[];\n draftAdditionalProps?: IFieldDef[];\n}\n\nexport interface ITableDefTabData extends ITabData {\n // adds multiple ids into filter instead of just the one tab id\n filterNames?: string[];\n}\n\nexport type TTableViewTabSettings =\n Partial>\n & {\n data?: ITableDefTabData[];\n // if present, tabs are automatically used for filtering\n filterFieldName?: string;\n // use instead of filterFieldName to build custom filter for selected tab\n customFilter?: (selectedTab: string, storage: StorageModel) => string;\n withoutCounts?: boolean;\n};\nexport type TITableDefTabSettings = Omit;\n\nexport interface ITableDef {\n // used for personalization service and local storage\n // string template is used to enforce that EntityType of the definition can be inferred from the id\n id: `${EntityTypeName}Table` | `${string}SpecialTable` | ReportId;\n // those properties which are always needed without dependence on columns\n additionalProperties?: IFieldDef[];\n // definition for all possible columns for this table\n columnDefinition?: TFieldsDefinition;\n // columns that are shown, based on current configuration\n columns?: string[];\n childColumns?: IFieldDef[];\n hierarchy?: string;\n groupBy?: string;\n initialSortBy?: ISort[];\n filterOperator?: LogicOperator;\n // filter that will be applied in every table request (e.g. to specify company)\n filter?: TInfoValue;\n // custom settings passed to prepareQuery\n querySettings?: IPrepareQuerySettings;\n title?: string;\n entitySet?: EntitySetName;\n // used in PureForm to construct a filter for the table, based on the current selected row\n parentKey?: string;\n}\n\nexport const handleExportButton = async (storage: TSmartODataTableStorage, exportType: ExportType, filter?: string): Promise => {\n const columnDefs = storage.getMergedColumns(false);\n const columns = await prepareColumns({\n bindingContext: storage.data.bindingContext,\n columns: columnDefs,\n context: storage.context\n });\n\n const sortColumns = storage.tableAPI?.getSort() ?? storage.data.definition.initialSortBy;\n const sort: ISort[] = [];\n\n for (const sortColumn of sortColumns) {\n const sortColumnInfo = columns.find((col) => col.id === sortColumn.id);\n const sortId = sortColumnInfo?.bindingContext.getNavigationBindingContext(sortColumnInfo.fieldSettings?.displayName).getEntityPath();\n\n sort.push({\n id: sortId,\n sort: sortColumn.sort\n });\n }\n\n const query = prepareQuery({\n oData: storage.oData,\n bindingContext: storage.data.bindingContext,\n fieldDefs: [...columnDefs, ...(storage.data.definition.additionalProperties ?? [])],\n settings: {\n \"\": {\n filter,\n sort: sort.length > 0 ? sort : undefined\n }\n }\n });\n const res = await query.fetchData() as TRecordAny;\n const { rows, columns: preparedColumns } = await prepareDataForExport({\n rows: res.value, columns, bindingContext: storage.data.bindingContext,\n context: storage.context, translate: storage.t,\n hierarchy: storage.data.definition.hierarchy,\n storage\n });\n\n const file = await ExcelExport.export({\n columns: preparedColumns as unknown as IColumn[],\n tableName: storage.data.definition.title,\n rows: rows,\n type: exportType\n });\n\n // CompanyId is automatically added to OData request and thus is not part of 'filter'\n // but we still want Company Id to be part of the log\n const companyFilter = getDefaultLogActionDetail(storage);\n const logDetail = filter ? `${filter} AND ${companyFilter}` : companyFilter;\n\n logAction({\n actionId: storage.data.bindingContext.getFullPath(),\n actionType: exportType === ExportType.CSV ? ActionTypeCode.CsvExport : ActionTypeCode.ExcelExport,\n detail: logDetail\n });\n\n saveAs(file);\n};\n\nexport interface IPrepareDataForExport {\n rows: IEntity[];\n columns: IFieldInfo[];\n bindingContext: BindingContext;\n context: IAppContext;\n translate: TFunction;\n storage?: TableStorage;\n hierarchy?: string;\n}\n\nexport const prepareDataForExport = async ({\n rows,\n columns,\n bindingContext,\n context,\n hierarchy,\n translate,\n storage\n }: IPrepareDataForExport): Promise<{ rows: IEntity[], columns: IFieldInfo[] }> => {\n let preparedColumns = [...columns];\n\n // add currency as standalone columns\n for (let i = 0; i < preparedColumns.length; i++) {\n const column = preparedColumns[i];\n const currency = column.bindingContext.getProperty()?.getCurrency();\n\n if (currency) {\n const currencyColumn = await getFieldInfo({\n bindingContext: bindingContext.navigate(currency),\n context,\n fieldDef: { id: currency }\n });\n\n currencyColumn.label = `${currencyColumn.label} (${column.label})`;\n i += 1;\n preparedColumns.splice(i, 0, currencyColumn);\n }\n }\n\n const { rows: allRows, maxLevel } = unrollRows({\n rows, hierarchy,\n firstColumn: preparedColumns[0]?.id\n });\n\n for (let i = 0; i < maxLevel; i++) {\n preparedColumns.splice(i + 1, 0, {\n ...preparedColumns[0],\n id: `${preparedColumns[0].id}${i + 1}`,\n label: `${preparedColumns[0].label} - ${i + 1}.${translate(\"Components:Table.Level\")}`\n });\n }\n\n const _getFormattedRowValue = (column: IFieldInfo, row: IEntity, value: TValue) => {\n const formattedValue = column.formatter?.(value, {\n entity: row,\n item: row,\n info: { id: column.id, bindingContext: column.bindingContext },\n storage\n });\n return typeof formattedValue !== \"object\" ? formattedValue : (formattedValue as ICellValueObject)?.tooltip;\n };\n\n const _exportedColumnId = (column: { id: string }, exportedCol: { id: string }): string =>\n `${column.id}_${exportedCol.id}`;\n\n const preparedRows = allRows.map((row: IEntity) => {\n const newRow: IEntity = {};\n\n for (const column of preparedColumns) {\n if (column.exportFormatter) {\n column.exportFormatter({\n entity: row,\n info: { id: column.id, bindingContext: column.bindingContext },\n storage\n }).forEach(exportedCol => {\n newRow[_exportedColumnId(column, exportedCol)] = exportedCol.value;\n });\n } else if (column.bindingContext.isLocal()) {\n newRow[column.id] = _getFormattedRowValue(column, row, null);\n } else {\n let value;\n if (column.bindingContext.isNavigation()) {\n const prop = column.fieldSettings?.displayName ? column.fieldSettings.displayName : column.bindingContext.getKeyPropertyName();\n value = getNestedValue(column.id, row)?.[prop];\n } else {\n value = getNestedValue(column.id, row);\n }\n if (column.formatter && !column.bindingContext.getProperty()?.getCurrency()) {\n newRow[column.id] = _getFormattedRowValue(column, row, value);\n } else {\n newRow[column.id] = value;\n }\n }\n }\n\n return newRow;\n });\n\n // columns with export formatter may multiply itself to more columns -> duplicate also preparedColumns\n preparedColumns = preparedColumns.reduce((prepared, column) => {\n if (column.exportFormatter) {\n column.exportFormatter({\n info: { id: column.id, bindingContext: column.bindingContext },\n storage\n }).forEach(exportedCol => prepared.push({\n ...column,\n id: _exportedColumnId(column, exportedCol),\n label: exportedCol.label\n }));\n } else {\n prepared.push(column);\n }\n return prepared;\n }, []);\n\n return {\n rows: preparedRows, columns: preparedColumns\n };\n};\n\ninterface IUnrollRows {\n rows: IEntity[];\n allRows?: IEntity[];\n level?: number;\n hierarchy?: string;\n firstColumn?: string;\n parentValues?: TValue[];\n}\n\nconst unrollRows = ({ rows, allRows = [], level = 0, hierarchy, firstColumn, parentValues = [] }: IUnrollRows) => {\n let maxLevel = level;\n\n for (let row of rows) {\n const newParentValues = [...parentValues];\n row = { ...row };\n allRows.push(row);\n\n if (firstColumn) {\n if (parentValues.length > 0) {\n row[`${firstColumn}${parentValues.length}`] = row[firstColumn];\n\n for (let i = 0; i < parentValues.length; i++) {\n let colName;\n\n if (i === 0) {\n colName = firstColumn;\n } else {\n colName = `${firstColumn}${i}`;\n }\n\n row[colName] = parentValues[i];\n }\n }\n\n newParentValues.push(row[firstColumn]);\n }\n\n if (hierarchy && row[hierarchy]) {\n for (const hierarchyRow of row[hierarchy]) {\n for (const [property, value] of Object.entries(row)) {\n if (property !== hierarchy && !hierarchyRow.hasOwnProperty(property)) {\n hierarchyRow[property] = value;\n }\n }\n }\n const { maxLevel: innerMaxLevel } = unrollRows({\n rows: row[hierarchy], allRows, level: level + 1,\n hierarchy, firstColumn, parentValues: newParentValues\n });\n\n maxLevel = innerMaxLevel;\n }\n }\n\n return { rows: allRows, maxLevel };\n};\n\nexport const getPrintDialogFilterList = (storage: TableStorage): ITextListGroup[] => {\n const changedFilters = storage.getChangedFilters();\n const subGroups: ITextListSubGroup[] = [];\n\n changedFilters.changedFields\n ?.filter(filter => isNotDefined(filter.info.isVisible) || filter.info.isVisible)\n ?.forEach((filter) => {\n const label = filter.info.label;\n let values: string[] = [];\n\n // for value helper complex values, display values are supposed to be different from filter bar read only values\n // and has to be split into two subgroups based on exclusion/inclusion\n if (isValueHelperField(filter.info, storage) && isComplexFilterArr(filter.value)) {\n const includedValues: string[] = [];\n const excludedValues: string[] = [];\n const complexValues = filter.value as IComplexFilter[];\n\n const options: IFormatOptions = {\n entity: storage.data.entity\n };\n\n for (const complexValue of complexValues) {\n const stringValue = getFilterSentence(complexValue, filter.info, options);\n\n if (complexValue.type === ConditionType.Included) {\n includedValues.push(stringValue);\n } else {\n excludedValues.push(stringValue);\n }\n }\n\n if (includedValues.length > 0) {\n subGroups.push({\n label: `${label} (${storage.t(\"Components:ValueHelper.Include\").toLowerCase()}):`,\n values: includedValues\n });\n }\n\n if (excludedValues.length > 0) {\n subGroups.push({\n label: `${label} (${storage.t(\"Components:ValueHelper.Exclude\").toLowerCase()}):`,\n values: excludedValues\n });\n }\n } else {\n const { value } = getFilterBarItemRenderValue({\n bindingContext: filter.bindingContext,\n value: filter.value,\n storage: storage\n });\n\n if (Array.isArray(value)) {\n values = [...values, ...((value as string[]).map((val) => val.toString()))];\n\n } else {\n values.push(value.toString());\n }\n\n subGroups.push({\n label: `${label}:`,\n values\n });\n }\n });\n\n if (subGroups.length === 0) {\n subGroups.push({\n label: storage.t(\"Components:PrintDialog.NoFilters\"),\n values: []\n });\n }\n\n return [\n {\n label: storage.t(\"Components:PrintDialog.AppliedFilters\"),\n subGroups: subGroups\n }\n ];\n};\n\ninterface IAddToFilters {\n bc: BindingContext;\n tableId: string;\n filterName: string;\n}\n\nexport const addToTableFilters = (args: IAddToFilters): void => {\n const filters = LocalSettings.get(args.tableId)?.filters;\n const currentFilters = filters?.[args.filterName] as string[];\n if (currentFilters?.length > 0) {\n currentFilters.push(args.bc.getKey() as string);\n LocalSettings.set(args.tableId, {\n filters: {\n ...filters,\n [args.filterName]: currentFilters as string[]\n }\n });\n }\n};\n\nexport function getRowActionFromTableAction(tableAction: TableButtonsAction | string): RowAction {\n switch (tableAction) {\n case TableButtonsAction.Lock:\n return RowAction.Lock;\n case TableButtonsAction.Remove:\n return RowAction.Remove;\n case TableButtonsAction.MassEdit:\n return RowAction.MassEdit;\n default:\n return RowAction.Custom;\n }\n}\n\ninterface ICreateCustomTableToolbarItem {\n tableAction: TableButtonsAction | string;\n id: string;\n iconName: string;\n label: string;\n forceDisabled?: boolean;\n}\n\nexport const createCustomTableToolbarItem = (args: ICreateCustomTableToolbarItem): IToolbarItem => {\n const isDisabled = (!!args.tableAction && args.tableAction !== args.id) || args.forceDisabled;\n const isActive = args.tableAction === args.id;\n return {\n itemType: ToolbarItemType.Icon,\n id: args.id,\n iconName: args.iconName,\n label: args.label,\n isDisabled,\n isActive\n };\n};\n\n/** Prevent rerendering by keeping the same filter object, if possible */\nexport const getCachedFilter = memoizeOne((currentQuery: IFilterQuery, secondaryQuery: string) => {\n const query = { ...currentQuery };\n\n if (secondaryQuery) {\n if (query.query) {\n query.query += \" AND \";\n }\n\n query.query += secondaryQuery;\n }\n\n return query;\n});\n\nexport const isDraftView = (storage: TSmartODataTableStorage): boolean => {\n return storage.data.tableViewMode === TableViewMode.Draft;\n};\n\nexport const handleSortChange = (storage: TSmartODataTableStorage, sort: ISort[]): void => {\n const variant = storage.getVariant();\n const variantColumns = variant?.columns;\n\n storage.setLocalStorageVariant({\n ...variant,\n columns: storage.createVariantColumns(variantColumns?.map(col => col.id), sort)\n });\n\n};","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\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;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

    =\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

    | void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

    (\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer[]\r\n> extends Array {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore, A, M> &\r\n ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

    = PayloadActionCreator

    \r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\nexport type GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason,\r\n parentBlockingPromises: Promise[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (\r\n taskExecutor: ForkedTaskExecutor,\r\n opts?: ForkOptions\r\n ): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

    >(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","/*!\n\tautosize 4.0.4\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['module', 'exports'], factory);\n\t} else if (typeof exports !== \"undefined\") {\n\t\tfactory(module, exports);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod, mod.exports);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});","var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n||!n.length||1===n.length&&!n[0]||1===n.length&&Array.isArray(n[0])&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=(n=n.filter((function(e){return e})))[0];for(var i=1;i0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","import {\n EqualityComparator,\n InternalEqualityComparator,\n TypeEqualityComparator,\n} from '../index.d';\n\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nexport function createDefaultIsNestedEqual(\n comparator: EqualityComparator,\n): InternalEqualityComparator {\n return function isEqual(\n a: A,\n b: B,\n _indexOrKeyA: any,\n _indexOrKeyB: any,\n _parentA: any,\n _parentB: any,\n meta: Meta,\n ) {\n return comparator(a, b, meta);\n };\n}\n\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular cache, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nexport function createIsCircular<\n AreItemsEqual extends TypeEqualityComparator,\n>(areItemsEqual: AreItemsEqual): AreItemsEqual {\n return function isCircular(\n a: any,\n b: any,\n isEqual: InternalEqualityComparator>,\n cache: WeakMap,\n ) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, isEqual, cache);\n }\n\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n\n cache.set(a, b);\n cache.set(b, a);\n\n const result = areItemsEqual(a, b, isEqual, cache);\n\n cache.delete(a);\n cache.delete(b);\n\n return result;\n } as AreItemsEqual;\n}\n\n/**\n * Targeted shallow merge of two objects.\n *\n * @NOTE\n * This exists as a tinier compiled version of the `__assign` helper that\n * `tsc` injects in case of `Object.assign` not being present.\n */\nexport function merge(a: A, b: B): A & B {\n const merged: Record = {};\n\n for (const key in a) {\n merged[key] = a[key];\n }\n\n for (const key in b) {\n merged[key] = b[key];\n }\n\n return merged as A & B;\n}\n\n/**\n * Whether the value is a plain object.\n *\n * @NOTE\n * This is a same-realm compariosn only.\n */\nexport function isPlainObject(value: any): boolean {\n return value.constructor === Object || value.constructor == null;\n}\n\n/**\n * When the value is `Promise`-like, aka \"then-able\".\n */\nexport function isPromiseLike(value: any): boolean {\n return typeof value.then === 'function';\n}\n\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nexport function sameValueZeroEqual(a: any, b: any): boolean {\n return a === b || (a !== a && b !== b);\n}\n","import { isPlainObject, isPromiseLike, sameValueZeroEqual } from './utils';\n\nimport type {\n CreateComparatorCreatorOptions,\n EqualityComparator,\n} from '../index.d';\n\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATE_TAG = '[object Date]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\n\nconst { toString } = Object.prototype;\n\nexport function createComparator({\n areArraysEqual,\n areDatesEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n createIsNestedEqual,\n}: CreateComparatorCreatorOptions): EqualityComparator {\n const isEqual = createIsNestedEqual(comparator as EqualityComparator);\n\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n function comparator(a: any, b: any, meta: Meta): boolean {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n\n // If the items are not non-nullish objects, then the only possibility\n // of them being equal but not strictly is if they are both `NaN`. Since\n // `NaN` is uniquely not equal to itself, we can use self-comparison of\n // both objects, which is faster than `isNaN()`.\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return a !== a && b !== b;\n }\n\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid the `toString.call()` cost unless necessary.\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n // `isArray()` works on subclasses and is cross-realm, so we can again avoid\n // the `toString.call()` cost unless necessary by just checking if either\n // and then both are arrays.\n const aArray = Array.isArray(a);\n const bArray = Array.isArray(b);\n\n if (aArray || bArray) {\n return aArray === bArray && areArraysEqual(a, b, isEqual, meta);\n }\n\n // Since this is a custom object, use the classic `toString.call()` to get its\n // type. This is reasonably performant in modern environments like v8 and\n // SpiderMonkey, and allows for cross-realm comparison when other checks like\n // `instanceof` do not.\n const aTag = toString.call(a);\n\n if (aTag !== toString.call(b)) {\n return false;\n }\n\n if (aTag === DATE_TAG) {\n // `getTime()` showed better results compared to alternatives like `valueOf()`\n // or the unary `+` operator.\n return areDatesEqual(a, b, isEqual, meta);\n }\n\n if (aTag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, isEqual, meta);\n }\n\n if (aTag === MAP_TAG) {\n return areMapsEqual(a, b, isEqual, meta);\n }\n\n if (aTag === SET_TAG) {\n return areSetsEqual(a, b, isEqual, meta);\n }\n\n // If a simple object tag, then we can prioritize a simple object comparison because\n // it is likely a custom class. If an arguments tag, it should be treated as a standard\n // object.\n if (aTag === OBJECT_TAG || aTag === ARGUMENTS_TAG) {\n // The exception for value comparison is `Promise`-like contracts. These should be\n // treated the same as standard `Promise` objects, which means strict equality.\n return isPromiseLike(a) || isPromiseLike(b)\n ? false\n : areObjectsEqual(a, b, isEqual, meta);\n }\n\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (aTag === BOOLEAN_TAG || aTag === NUMBER_TAG || aTag === STRING_TAG) {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n }\n\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n }\n\n return comparator as EqualityComparator;\n}\n","import { createIsCircular } from './utils';\n\nimport type { InternalEqualityComparator } from '../index.d';\n\n/**\n * Whether the arrays are equal in value.\n */\nexport function areArraysEqual(\n a: any[],\n b: any[],\n isEqual: InternalEqualityComparator,\n meta: any,\n): boolean {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], index, index, a, b, meta)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the arrays are equal in value, including circular references.\n */\nexport const areArraysEqualCircular = createIsCircular(areArraysEqual);\n","import { sameValueZeroEqual } from './utils';\n\n/**\n * Whether the dates passed are equal in value.\n *\n * @NOTE\n * This is a standalone function instead of done inline in the comparator\n * to allow for overrides.\n */\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n","import { createIsCircular } from './utils';\n\nimport type { InternalEqualityComparator } from '../index.d';\n\n/**\n * Whether the `Map`s are equal in value.\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n isEqual: InternalEqualityComparator,\n meta: any,\n): boolean {\n let isValueEqual = a.size === b.size;\n\n if (!isValueEqual) {\n return false;\n }\n\n if (!a.size) {\n return true;\n }\n\n // The use of `forEach()` is to avoid the transpilation cost of `for...of` comparisons, and\n // the inability to control the performance of the resulting code. It also avoids excessive\n // iteration compared to doing comparisons of `keys()` and `values()`. As a result, though,\n // we cannot short-circuit the iterations; bookkeeping must be done to short-circuit the\n // equality checks themselves.\n\n const matchedIndices: Record = {};\n\n let indexA = 0;\n\n a.forEach((aValue, aKey) => {\n if (!isValueEqual) {\n return;\n }\n\n let hasMatch = false;\n let matchIndexB = 0;\n\n b.forEach((bValue, bKey) => {\n if (\n !hasMatch &&\n !matchedIndices[matchIndexB] &&\n (hasMatch =\n isEqual(aKey, bKey, indexA, matchIndexB, a, b, meta) &&\n isEqual(aValue, bValue, aKey, bKey, a, b, meta))\n ) {\n matchedIndices[matchIndexB] = true;\n }\n\n matchIndexB++;\n });\n\n indexA++;\n isValueEqual = hasMatch;\n });\n\n return isValueEqual;\n}\n\n/**\n * Whether the `Map`s are equal in value, including circular references.\n */\nexport const areMapsEqualCircular = createIsCircular(areMapsEqual);\n","import { createIsCircular } from './utils';\n\nimport type { InternalEqualityComparator } from '../index.d';\n\ninterface Dictionary {\n [key: string]: Value;\n $$typeof?: any;\n}\n\nconst OWNER = '_owner';\nconst { hasOwnProperty } = Object.prototype;\n\n/**\n * Whether the objects are equal in value.\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n isEqual: InternalEqualityComparator,\n meta: any,\n): boolean {\n const keysA = Object.keys(a);\n\n let index = keysA.length;\n\n if (Object.keys(b).length !== index) {\n return false;\n }\n\n let key: string;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n const reactElementA = !!a.$$typeof;\n const reactElementB = !!b.$$typeof;\n\n if ((reactElementA || reactElementB) && reactElementA !== reactElementB) {\n return false;\n }\n }\n\n if (\n !hasOwnProperty.call(b, key) ||\n !isEqual(a[key], b[key], key, key, a, b, meta)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value, including circular references.\n */\nexport const areObjectsEqualCircular = createIsCircular(areObjectsEqual);\n","/**\n * Whether the regexps passed are equal in value.\n *\n * @NOTE\n * This is a standalone function instead of done inline in the comparator\n * to allow for overrides. An example of this would be supporting a\n * pre-ES2015 environment where the `flags` property is not available.\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp): boolean {\n return a.source === b.source && a.flags === b.flags;\n}\n","import { createIsCircular } from './utils';\n\nimport type { InternalEqualityComparator } from '../index.d';\n\n/**\n * Whether the `Set`s are equal in value.\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n isEqual: InternalEqualityComparator,\n meta: any,\n): boolean {\n let isValueEqual = a.size === b.size;\n\n if (!isValueEqual) {\n return false;\n }\n\n if (!a.size) {\n return true;\n }\n\n // The use of `forEach()` is to avoid the transpilation cost of `for...of` comparisons, and\n // the inability to control the performance of the resulting code. It also avoids excessive\n // iteration compared to doing comparisons of `keys()` and `values()`. As a result, though,\n // we cannot short-circuit the iterations; bookkeeping must be done to short-circuit the\n // equality checks themselves.\n\n const matchedIndices: Record = {};\n\n a.forEach((aValue, aKey) => {\n if (!isValueEqual) {\n return;\n }\n\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue, bKey) => {\n if (\n !hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch = isEqual(aValue, bValue, aKey, bKey, a, b, meta))\n ) {\n matchedIndices[matchIndex] = true;\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n });\n\n return isValueEqual;\n}\n\n/**\n * Whether the `Set`s are equal in value, including circular references.\n */\nexport const areSetsEqualCircular = createIsCircular(areSetsEqual);\n","import { createComparator } from './comparator';\nimport { areArraysEqual, areArraysEqualCircular } from './arrays';\nimport { areDatesEqual } from './dates';\nimport { areMapsEqual, areMapsEqualCircular } from './maps';\nimport { areObjectsEqual, areObjectsEqualCircular } from './objects';\nimport { areRegExpsEqual } from './regexps';\nimport { areSetsEqual, areSetsEqualCircular } from './sets';\nimport { createDefaultIsNestedEqual, merge, sameValueZeroEqual } from './utils';\n\nimport type {\n BaseCircularMeta,\n CreateComparatorCreatorOptions,\n EqualityComparator,\n GetComparatorOptions,\n} from '../index.d';\n\nexport { sameValueZeroEqual };\n\nconst DEFAULT_CONFIG: CreateComparatorCreatorOptions = Object.freeze(\n {\n areArraysEqual,\n areDatesEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n createIsNestedEqual: createDefaultIsNestedEqual,\n },\n);\nconst DEFAULT_CIRCULAR_CONFIG: CreateComparatorCreatorOptions =\n Object.freeze({\n areArraysEqual: areArraysEqualCircular,\n areDatesEqual,\n areMapsEqual: areMapsEqualCircular,\n areObjectsEqual: areObjectsEqualCircular,\n areRegExpsEqual,\n areSetsEqual: areSetsEqualCircular,\n createIsNestedEqual: createDefaultIsNestedEqual,\n });\n\nconst isDeepEqual = createComparator(DEFAULT_CONFIG);\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nexport function deepEqual(a: A, b: B): boolean {\n return isDeepEqual(a, b, undefined);\n}\n\nconst isShallowEqual = createComparator(\n merge(DEFAULT_CONFIG, { createIsNestedEqual: () => sameValueZeroEqual }),\n);\n\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nexport function shallowEqual(a: A, b: B): boolean {\n return isShallowEqual(a, b, undefined);\n}\n\nconst isCircularDeepEqual = createComparator(DEFAULT_CIRCULAR_CONFIG);\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nexport function circularDeepEqual(a: A, b: B): boolean {\n return isCircularDeepEqual(a, b, new WeakMap());\n}\n\nconst isCircularShallowEqual = createComparator(\n merge(DEFAULT_CIRCULAR_CONFIG, {\n createIsNestedEqual: () => sameValueZeroEqual,\n }),\n);\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nexport function circularShallowEqual(a: A, b: B): boolean {\n return isCircularShallowEqual(a, b, new WeakMap());\n}\n\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nexport function createCustomEqual(\n getComparatorOptions: GetComparatorOptions,\n): EqualityComparator {\n return createComparator(\n merge(DEFAULT_CONFIG, getComparatorOptions(DEFAULT_CONFIG as any)),\n );\n}\n\n/**\n * Create a custom equality comparison method that handles circular references. This is very\n * similar to `createCustomEqual`, with the only difference being that `meta` expects to be\n * populated with a `WeakMap`-like contract.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `WeakMap` out of the box.\n */\nexport function createCustomCircularEqual<\n Meta extends BaseCircularMeta = WeakMap,\n>(getComparatorOptions: GetComparatorOptions): EqualityComparator {\n const comparator = createComparator(\n merge(\n DEFAULT_CIRCULAR_CONFIG,\n getComparatorOptions(DEFAULT_CIRCULAR_CONFIG as any),\n ),\n );\n\n return ((a: any, b: any, meta: any = new WeakMap()) =>\n comparator(a, b, meta)) as EqualityComparator;\n}\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n factory(root.IBAN = {});\n }\n}(this, function(exports){\n\n // Array.prototype.map polyfill\n // code from https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map\n if (!Array.prototype.map){\n Array.prototype.map = function(fun /*, thisArg */){\n \"use strict\";\n\n if (this === void 0 || this === null)\n throw new TypeError();\n\n var t = Object(this);\n var len = t.length >>> 0;\n if (typeof fun !== \"function\")\n throw new TypeError();\n\n var res = new Array(len);\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n for (var i = 0; i < len; i++)\n {\n // NOTE: Absolute correctness would demand Object.defineProperty\n // be used. But this method is fairly new, and failure is\n // possible only if Object.prototype or Array.prototype\n // has a property |i| (very unlikely), so use a less-correct\n // but more portable alternative.\n if (i in t)\n res[i] = fun.call(thisArg, t[i], i, t);\n }\n\n return res;\n };\n }\n\n var A = 'A'.charCodeAt(0),\n Z = 'Z'.charCodeAt(0);\n\n /**\n * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to\n * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.\n *\n * @param {string} iban the IBAN\n * @returns {string} the prepared IBAN\n */\n function iso13616Prepare(iban) {\n iban = iban.toUpperCase();\n iban = iban.substr(4) + iban.substr(0,4);\n\n return iban.split('').map(function(n){\n var code = n.charCodeAt(0);\n if (code >= A && code <= Z){\n // A = 10, B = 11, ... Z = 35\n return code - A + 10;\n } else {\n return n;\n }\n }).join('');\n }\n\n /**\n * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064.\n *\n * @param iban\n * @returns {number}\n */\n function iso7064Mod97_10(iban) {\n var remainder = iban,\n block;\n\n while (remainder.length > 2){\n block = remainder.slice(0, 9);\n remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);\n }\n\n return parseInt(remainder, 10) % 97;\n }\n\n /**\n * Parse the BBAN structure used to configure each IBAN Specification and returns a matching regular expression.\n * A structure is composed of blocks of 3 characters (one letter and 2 digits). Each block represents\n * a logical group in the typical representation of the BBAN. For each group, the letter indicates which characters\n * are allowed in this group and the following 2-digits number tells the length of the group.\n *\n * @param {string} structure the structure to parse\n * @returns {RegExp}\n */\n function parseStructure(structure){\n // split in blocks of 3 chars\n var regex = structure.match(/(.{3})/g).map(function(block){\n\n // parse each structure block (1-char + 2-digits)\n var format,\n pattern = block.slice(0, 1),\n repeats = parseInt(block.slice(1), 10);\n\n switch (pattern){\n case \"A\": format = \"0-9A-Za-z\"; break;\n case \"B\": format = \"0-9A-Z\"; break;\n case \"C\": format = \"A-Za-z\"; break;\n case \"F\": format = \"0-9\"; break;\n case \"L\": format = \"a-z\"; break;\n case \"U\": format = \"A-Z\"; break;\n case \"W\": format = \"0-9a-z\"; break;\n }\n\n return '([' + format + ']{' + repeats + '})';\n });\n\n return new RegExp('^' + regex.join('') + '$');\n }\n\n /**\n *\n * @param iban\n * @returns {string}\n */\n function electronicFormat(iban){\n return iban.replace(NON_ALPHANUM, '').toUpperCase();\n }\n\n\n /**\n * Create a new Specification for a valid IBAN number.\n *\n * @param countryCode the code of the country\n * @param length the length of the IBAN\n * @param structure the structure of the underlying BBAN (for validation and formatting)\n * @param example an example valid IBAN\n * @constructor\n */\n function Specification(countryCode, length, structure, example){\n\n this.countryCode = countryCode;\n this.length = length;\n this.structure = structure;\n this.example = example;\n }\n\n /**\n * Lazy-loaded regex (parse the structure and construct the regular expression the first time we need it for validation)\n */\n Specification.prototype._regex = function(){\n return this._cachedRegex || (this._cachedRegex = parseStructure(this.structure))\n };\n\n /**\n * Check if the passed iban is valid according to this specification.\n *\n * @param {String} iban the iban to validate\n * @returns {boolean} true if valid, false otherwise\n */\n Specification.prototype.isValid = function(iban){\n return this.length == iban.length\n && this.countryCode === iban.slice(0,2)\n && this._regex().test(iban.slice(4))\n && iso7064Mod97_10(iso13616Prepare(iban)) == 1;\n };\n\n /**\n * Convert the passed IBAN to a country-specific BBAN.\n *\n * @param iban the IBAN to convert\n * @param separator the separator to use between BBAN blocks\n * @returns {string} the BBAN\n */\n Specification.prototype.toBBAN = function(iban, separator) {\n return this._regex().exec(iban.slice(4)).slice(1).join(separator);\n };\n\n /**\n * Convert the passed BBAN to an IBAN for this country specification.\n * Please note that \"generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account\".\n * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits\n *\n * @param bban the BBAN to convert to IBAN\n * @returns {string} the IBAN\n */\n Specification.prototype.fromBBAN = function(bban) {\n if (!this.isValidBBAN(bban)){\n throw new Error('Invalid BBAN');\n }\n\n var remainder = iso7064Mod97_10(iso13616Prepare(this.countryCode + '00' + bban)),\n checkDigit = ('0' + (98 - remainder)).slice(-2);\n\n return this.countryCode + checkDigit + bban;\n };\n\n /**\n * Check of the passed BBAN is valid.\n * This function only checks the format of the BBAN (length and matching the letetr/number specs) but does not\n * verify the check digit.\n *\n * @param bban the BBAN to validate\n * @returns {boolean} true if the passed bban is a valid BBAN according to this specification, false otherwise\n */\n Specification.prototype.isValidBBAN = function(bban) {\n return this.length - 4 == bban.length\n && this._regex().test(bban);\n };\n\n var countries = {};\n\n function addSpecification(IBAN){\n countries[IBAN.countryCode] = IBAN;\n }\n\n addSpecification(new Specification(\"AD\", 24, \"F04F04A12\", \"AD1200012030200359100100\"));\n addSpecification(new Specification(\"AE\", 23, \"F03F16\", \"AE070331234567890123456\"));\n addSpecification(new Specification(\"AL\", 28, \"F08A16\", \"AL47212110090000000235698741\"));\n addSpecification(new Specification(\"AT\", 20, \"F05F11\", \"AT611904300234573201\"));\n addSpecification(new Specification(\"AZ\", 28, \"U04A20\", \"AZ21NABZ00000000137010001944\"));\n addSpecification(new Specification(\"BA\", 20, \"F03F03F08F02\", \"BA391290079401028494\"));\n addSpecification(new Specification(\"BE\", 16, \"F03F07F02\", \"BE68539007547034\"));\n addSpecification(new Specification(\"BG\", 22, \"U04F04F02A08\", \"BG80BNBG96611020345678\"));\n addSpecification(new Specification(\"BH\", 22, \"U04A14\", \"BH67BMAG00001299123456\"));\n addSpecification(new Specification(\"BR\", 29, \"F08F05F10U01A01\", \"BR9700360305000010009795493P1\"));\n addSpecification(new Specification(\"BY\", 28, \"A04F04A16\", \"BY13NBRB3600900000002Z00AB00\"));\n addSpecification(new Specification(\"CH\", 21, \"F05A12\", \"CH9300762011623852957\"));\n addSpecification(new Specification(\"CR\", 22, \"F04F14\", \"CR72012300000171549015\"));\n addSpecification(new Specification(\"CY\", 28, \"F03F05A16\", \"CY17002001280000001200527600\"));\n addSpecification(new Specification(\"CZ\", 24, \"F04F06F10\", \"CZ6508000000192000145399\"));\n addSpecification(new Specification(\"DE\", 22, \"F08F10\", \"DE89370400440532013000\"));\n addSpecification(new Specification(\"DK\", 18, \"F04F09F01\", \"DK5000400440116243\"));\n addSpecification(new Specification(\"DO\", 28, \"U04F20\", \"DO28BAGR00000001212453611324\"));\n addSpecification(new Specification(\"EE\", 20, \"F02F02F11F01\", \"EE382200221020145685\"));\n addSpecification(new Specification(\"EG\", 29, \"F04F04F17\", \"EG800002000156789012345180002\"));\n addSpecification(new Specification(\"ES\", 24, \"F04F04F01F01F10\", \"ES9121000418450200051332\"));\n addSpecification(new Specification(\"FI\", 18, \"F06F07F01\", \"FI2112345600000785\"));\n addSpecification(new Specification(\"FO\", 18, \"F04F09F01\", \"FO6264600001631634\"));\n addSpecification(new Specification(\"FR\", 27, \"F05F05A11F02\", \"FR1420041010050500013M02606\"));\n addSpecification(new Specification(\"GB\", 22, \"U04F06F08\", \"GB29NWBK60161331926819\"));\n addSpecification(new Specification(\"GE\", 22, \"U02F16\", \"GE29NB0000000101904917\"));\n addSpecification(new Specification(\"GI\", 23, \"U04A15\", \"GI75NWBK000000007099453\"));\n addSpecification(new Specification(\"GL\", 18, \"F04F09F01\", \"GL8964710001000206\"));\n addSpecification(new Specification(\"GR\", 27, \"F03F04A16\", \"GR1601101250000000012300695\"));\n addSpecification(new Specification(\"GT\", 28, \"A04A20\", \"GT82TRAJ01020000001210029690\"));\n addSpecification(new Specification(\"HR\", 21, \"F07F10\", \"HR1210010051863000160\"));\n addSpecification(new Specification(\"HU\", 28, \"F03F04F01F15F01\", \"HU42117730161111101800000000\"));\n addSpecification(new Specification(\"IE\", 22, \"U04F06F08\", \"IE29AIBK93115212345678\"));\n addSpecification(new Specification(\"IL\", 23, \"F03F03F13\", \"IL620108000000099999999\"));\n addSpecification(new Specification(\"IS\", 26, \"F04F02F06F10\", \"IS140159260076545510730339\"));\n addSpecification(new Specification(\"IT\", 27, \"U01F05F05A12\", \"IT60X0542811101000000123456\"));\n addSpecification(new Specification(\"IQ\", 23, \"U04F03A12\", \"IQ98NBIQ850123456789012\"));\n addSpecification(new Specification(\"JO\", 30, \"A04F22\", \"JO15AAAA1234567890123456789012\"));\n addSpecification(new Specification(\"KW\", 30, \"U04A22\", \"KW81CBKU0000000000001234560101\"));\n addSpecification(new Specification(\"KZ\", 20, \"F03A13\", \"KZ86125KZT5004100100\"));\n addSpecification(new Specification(\"LB\", 28, \"F04A20\", \"LB62099900000001001901229114\"));\n addSpecification(new Specification(\"LC\", 32, \"U04F24\", \"LC07HEMM000100010012001200013015\"));\n addSpecification(new Specification(\"LI\", 21, \"F05A12\", \"LI21088100002324013AA\"));\n addSpecification(new Specification(\"LT\", 20, \"F05F11\", \"LT121000011101001000\"));\n addSpecification(new Specification(\"LU\", 20, \"F03A13\", \"LU280019400644750000\"));\n addSpecification(new Specification(\"LV\", 21, \"U04A13\", \"LV80BANK0000435195001\"));\n addSpecification(new Specification(\"MC\", 27, \"F05F05A11F02\", \"MC5811222000010123456789030\"));\n addSpecification(new Specification(\"MD\", 24, \"U02A18\", \"MD24AG000225100013104168\"));\n addSpecification(new Specification(\"ME\", 22, \"F03F13F02\", \"ME25505000012345678951\"));\n addSpecification(new Specification(\"MK\", 19, \"F03A10F02\", \"MK07250120000058984\"));\n addSpecification(new Specification(\"MR\", 27, \"F05F05F11F02\", \"MR1300020001010000123456753\"));\n addSpecification(new Specification(\"MT\", 31, \"U04F05A18\", \"MT84MALT011000012345MTLCAST001S\"));\n addSpecification(new Specification(\"MU\", 30, \"U04F02F02F12F03U03\", \"MU17BOMM0101101030300200000MUR\"));\n addSpecification(new Specification(\"NL\", 18, \"U04F10\", \"NL91ABNA0417164300\"));\n addSpecification(new Specification(\"NO\", 15, \"F04F06F01\", \"NO9386011117947\"));\n addSpecification(new Specification(\"PK\", 24, \"U04A16\", \"PK36SCBL0000001123456702\"));\n addSpecification(new Specification(\"PL\", 28, \"F08F16\", \"PL61109010140000071219812874\"));\n addSpecification(new Specification(\"PS\", 29, \"U04A21\", \"PS92PALS000000000400123456702\"));\n addSpecification(new Specification(\"PT\", 25, \"F04F04F11F02\", \"PT50000201231234567890154\"));\n addSpecification(new Specification(\"QA\", 29, \"U04A21\", \"QA30AAAA123456789012345678901\"));\n addSpecification(new Specification(\"RO\", 24, \"U04A16\", \"RO49AAAA1B31007593840000\"));\n addSpecification(new Specification(\"RS\", 22, \"F03F13F02\", \"RS35260005601001611379\"));\n addSpecification(new Specification(\"SA\", 24, \"F02A18\", \"SA0380000000608010167519\"));\n addSpecification(new Specification(\"SC\", 31, \"U04F04F16U03\", \"SC18SSCB11010000000000001497USD\"));\n addSpecification(new Specification(\"SE\", 24, \"F03F16F01\", \"SE4550000000058398257466\"));\n addSpecification(new Specification(\"SI\", 19, \"F05F08F02\", \"SI56263300012039086\"));\n addSpecification(new Specification(\"SK\", 24, \"F04F06F10\", \"SK3112000000198742637541\"));\n addSpecification(new Specification(\"SM\", 27, \"U01F05F05A12\", \"SM86U0322509800000000270100\"));\n addSpecification(new Specification(\"ST\", 25, \"F08F11F02\", \"ST68000100010051845310112\"));\n addSpecification(new Specification(\"SV\", 28, \"U04F20\", \"SV62CENR00000000000000700025\"));\n addSpecification(new Specification(\"TL\", 23, \"F03F14F02\", \"TL380080012345678910157\"));\n addSpecification(new Specification(\"TN\", 24, \"F02F03F13F02\", \"TN5910006035183598478831\"));\n addSpecification(new Specification(\"TR\", 26, \"F05F01A16\", \"TR330006100519786457841326\"));\n addSpecification(new Specification(\"UA\", 29, \"F25\", \"UA511234567890123456789012345\"));\n addSpecification(new Specification(\"VA\", 22, \"F18\", \"VA59001123000012345678\"));\n addSpecification(new Specification(\"VG\", 24, \"U04F16\", \"VG96VPVG0000012345678901\"));\n addSpecification(new Specification(\"XK\", 20, \"F04F10F02\", \"XK051212012345678906\"));\n\n\n // The following countries are not included in the official IBAN registry but use the IBAN specification\n\n // Angola\n addSpecification(new Specification(\"AO\", 25, \"F21\", \"AO69123456789012345678901\"));\n // Burkina\n addSpecification(new Specification(\"BF\", 27, \"F23\", \"BF2312345678901234567890123\"));\n // Burundi\n addSpecification(new Specification(\"BI\", 16, \"F12\", \"BI41123456789012\"));\n // Benin\n addSpecification(new Specification(\"BJ\", 28, \"F24\", \"BJ39123456789012345678901234\"));\n // Ivory\n addSpecification(new Specification(\"CI\", 28, \"U02F22\", \"CI70CI1234567890123456789012\"));\n // Cameron\n addSpecification(new Specification(\"CM\", 27, \"F23\", \"CM9012345678901234567890123\"));\n // Cape Verde\n addSpecification(new Specification(\"CV\", 25, \"F21\", \"CV30123456789012345678901\"));\n // Algeria\n addSpecification(new Specification(\"DZ\", 24, \"F20\", \"DZ8612345678901234567890\"));\n // Iran\n addSpecification(new Specification(\"IR\", 26, \"F22\", \"IR861234568790123456789012\"));\n // Madagascar\n addSpecification(new Specification(\"MG\", 27, \"F23\", \"MG1812345678901234567890123\"));\n // Mali\n addSpecification(new Specification(\"ML\", 28, \"U01F23\", \"ML15A12345678901234567890123\"));\n // Mozambique\n addSpecification(new Specification(\"MZ\", 25, \"F21\", \"MZ25123456789012345678901\"));\n // Senegal\n addSpecification(new Specification(\"SN\", 28, \"U01F23\", \"SN52A12345678901234567890123\"));\n\n // The following are regional and administrative French Republic subdivision IBAN specification (same structure as FR, only country code vary)\n addSpecification(new Specification(\"GF\", 27, \"F05F05A11F02\", \"GF121234512345123456789AB13\"));\n addSpecification(new Specification(\"GP\", 27, \"F05F05A11F02\", \"GP791234512345123456789AB13\"));\n addSpecification(new Specification(\"MQ\", 27, \"F05F05A11F02\", \"MQ221234512345123456789AB13\"));\n addSpecification(new Specification(\"RE\", 27, \"F05F05A11F02\", \"RE131234512345123456789AB13\"));\n addSpecification(new Specification(\"PF\", 27, \"F05F05A11F02\", \"PF281234512345123456789AB13\"));\n addSpecification(new Specification(\"TF\", 27, \"F05F05A11F02\", \"TF891234512345123456789AB13\"));\n addSpecification(new Specification(\"YT\", 27, \"F05F05A11F02\", \"YT021234512345123456789AB13\"));\n addSpecification(new Specification(\"NC\", 27, \"F05F05A11F02\", \"NC551234512345123456789AB13\"));\n addSpecification(new Specification(\"BL\", 27, \"F05F05A11F02\", \"BL391234512345123456789AB13\"));\n addSpecification(new Specification(\"MF\", 27, \"F05F05A11F02\", \"MF551234512345123456789AB13\"));\n addSpecification(new Specification(\"PM\", 27, \"F05F05A11F02\", \"PM071234512345123456789AB13\"));\n addSpecification(new Specification(\"WF\", 27, \"F05F05A11F02\", \"WF621234512345123456789AB13\"));\n\n var NON_ALPHANUM = /[^a-zA-Z0-9]/g,\n EVERY_FOUR_CHARS =/(.{4})(?!$)/g;\n\n /**\n * Utility function to check if a variable is a String.\n *\n * @param v\n * @returns {boolean} true if the passed variable is a String, false otherwise.\n */\n function isString(v){\n return (typeof v == 'string' || v instanceof String);\n }\n\n /**\n * Check if an IBAN is valid.\n *\n * @param {String} iban the IBAN to validate.\n * @returns {boolean} true if the passed IBAN is valid, false otherwise\n */\n exports.isValid = function(iban){\n if (!isString(iban)){\n return false;\n }\n iban = electronicFormat(iban);\n var countryStructure = countries[iban.slice(0,2)];\n return !!countryStructure && countryStructure.isValid(iban);\n };\n\n /**\n * Convert an IBAN to a BBAN.\n *\n * @param iban\n * @param {String} [separator] the separator to use between the blocks of the BBAN, defaults to ' '\n * @returns {string|*}\n */\n exports.toBBAN = function(iban, separator){\n if (typeof separator == 'undefined'){\n separator = ' ';\n }\n iban = electronicFormat(iban);\n var countryStructure = countries[iban.slice(0,2)];\n if (!countryStructure) {\n throw new Error('No country with code ' + iban.slice(0,2));\n }\n return countryStructure.toBBAN(iban, separator);\n };\n\n /**\n * Convert the passed BBAN to an IBAN for this country specification.\n * Please note that \"generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account\".\n * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits\n *\n * @param countryCode the country of the BBAN\n * @param bban the BBAN to convert to IBAN\n * @returns {string} the IBAN\n */\n exports.fromBBAN = function(countryCode, bban){\n var countryStructure = countries[countryCode];\n if (!countryStructure) {\n throw new Error('No country with code ' + countryCode);\n }\n return countryStructure.fromBBAN(electronicFormat(bban));\n };\n\n /**\n * Check the validity of the passed BBAN.\n *\n * @param countryCode the country of the BBAN\n * @param bban the BBAN to check the validity of\n */\n exports.isValidBBAN = function(countryCode, bban){\n if (!isString(bban)){\n return false;\n }\n var countryStructure = countries[countryCode];\n return countryStructure && countryStructure.isValidBBAN(electronicFormat(bban));\n };\n\n /**\n *\n * @param iban\n * @param separator\n * @returns {string}\n */\n exports.printFormat = function(iban, separator){\n if (typeof separator == 'undefined'){\n separator = ' ';\n }\n return electronicFormat(iban).replace(EVERY_FOUR_CHARS, \"$1\" + separator);\n };\n\n exports.electronicFormat = electronicFormat;\n /**\n * An object containing all the known IBAN specifications.\n */\n exports.countries = countries;\n\n}));\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

    ' + func(text) + '

    ';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

    fred, barney, & pebbles

    '\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '

    \n
    {t(\"CustomerSupport.Phone\")}:
    \n
    +420 549 522 523
    \n
    {t(\"CustomerSupport.PIN\")}:
    \n
    {CustomerSupportPin}
    \n